四、ARP
1、ARP地址解析过程
以太网中,发送IP包前判断目标主机是否在同一子网,如果是同一子网,请求目标主机MAC,如果是不同子网,请求网关/下一跳MAC。
源主机查看 ARP 缓存,是否存在要解析的IP—MAC的ARP映射表项。如果有,利用该表项对IP包进行封装并发送以太网帧。如果没
有,则缓存该IP包,并建立ARP临时表项。
以广播方式发送ARP请求报文。ARP请求报文中的Sender IP和Sender MAC为源主机A的IP地址和MAC地址,Target IP和Target MAC地址
为被请求节点的IP地址和全0的MAC地址。
同一个广播域内的所有主机都可以则接收到该请求,但只有被请求的节点会对该请求进行处理。
被请求节点比较自己的IP地址和请求报文中的Target IP,如果相同将ARP请求报文中的Sender IP和Sender MAC存入自己的ARP表
中,并以单播方式发送ARP响应报文给源主机,其中Sender IP和Sender MAC是自己的IP和MAC。
源主机 收到ARP响应报文后,将被请求节点的MAC地址加入到自己的ARP缓存中,同时将 IP包进行封装后发送出去。
处理流程如下图所示:
2、免费ARP
免费ARP报文是一种特殊的ARP报文,该报文携带的发送端IP地址和目标IP的地址都是本机的IP地址,报文的源MAC地址是本机的MAC
地址,目的MAC地址是广播地址。
功能:
(1)确定其他设备IP地址是否与本机的IP地址冲突
(2)设备改变了硬件地址,通过发送免费ARP报文通知其他设备更新ARP表项
五、交换机
1、交换机的三种转发方式
(1)cut-Through(直通式):交换机收到目的地址即开始转发
优点:不需要存储,延迟非常小,交换非常快
缺点:由于数据包内容没有被交换机存储下来,所以无法检查所传送的数据包是否有误,不能提供错误检测能力。由于没有缓存,
不能将具有不同速率的输入/输出端口直接接通,而且容易丢包。
(2)store-and-Forward(存储转发):交换机将全部的内容接收才转发,是计算机网络领域中应用最为广泛的方式。
它把输入端的数据包检查,在对错误包处理后才取出数据包的目的地址,通过查找表转换成输出端口送出包,正因为如此,存储转
发方式在数据处理时延时大,这是它的不足,但是它可以对进入交换机的数据包进行错误检测,有效的改善网络性能。尤其重要的
是它可以支持不同端口间的切换,保持高速端口与低速端口之间的协同工作。
(3)Frag-free(碎片隔离):交换机接收完数据包的前64个字节(一个最短帧长),然后根据头信息查表转发。
它是介于前两者之间的一种解决方案,它检查数据包的长度是否够64个字节,如果小于64个字节,说明是假包,则丢弃该包,如果
大于64个字节,则发送该包,这种方式也不提供数据检查,它的数据处理速度比存储转发方式快,但比直通式慢。
附加一个问题:为啥最小帧长是64字节?
最小数据帧的设计原因和以太网电缆长度有关,为的是让两个相距最远的站点能够感知到双方的数据发生了碰撞;最远两端数据的往
返时间就是争用期,以太网的争用期是51.2微妙,正好发送64byte数据。
2、交换机工作流程
(1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
(2)再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
(3)如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
(4)如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个
端口对应,在下次传送数据时就不再需要对所有端口进行广播了。