简述两个主机如何实现通讯
首先我们先看一个图:
如果主机A想和主机B通讯,链路层会把IP数据报加上以太网首部封装成以太网帧在以太网上传输。以太网首部的目的地址、源地址全是MAC地址,标识某个网卡。
它怎么知道目的主机的MAC地址?
链路层中有ARP,RARP,查找ARP缓存表,里面有IP地址与MAC地址的对应项。如果未找到,它会把一个ARP数据报封装成FF.FF.FF.FF.FF.FF的MAC地址,ARP的类型的以太网帧,广播向同一网段内的所有主机发出询问,其它主机不应答,匹配IP的主机做出应答,告诉自己的MAC地址。源主机更新自己的ARP缓存表。ARP缓存表采用了老化机制,这样可以减少缓存表的长度,加快查询速度。
主机中还有个route表,它处于网络层,根据IP地址与route表中子网掩码按位与,得到此IP所属网段,确定从那个网络接口发出。
当然我们是先route表,再ARP缓存表。