基本二层通信(1)

73 阅读2分钟

如图网络拓扑:PC1与PC2连接LSW1,PC1与PC2之间是如何进行通信的?

image.png

配置PC1 IP:192.168.10.1/24

配置PC2 IP:192.168.10.2/24

LSW1不做任何配置

当PC1 ping PC2,如图:

image.png

是通的,具体看看之间发生了什么事情,通过抓包工具,如图:

image.png 发现先广播发送了ARP包,然后才是ICMP包 ARP协议:地址解析协议(Address Resolution Protocol)根据IP地址获取MAC地址的协议

我们展开ARP包,如图:

image.png

二层头解析

source:MAC地址为54:89:98:8f:0d:eb,是PC1的E1口的MAC地址

destination:ff:ff:ff:ff:ff:ff,是一个二层广播MAC地址

再展开ARP头,如图:

image.png

sender MAC address:MAC地址为54:89:98:8f:0d:eb,是PC1的E1口的MAC地址

sender IP address:IP地址为192.168.10.1

Target MAC address:ff:ff:ff:ff:ff:ff,是一个二层广播MAC地址

Target IP address:IP地址为192.168.10.2

小结:ARP请求包的二层头的source为请求接口的MAC地址,destination是二层广播MAC地址,再里面的ARP头也有一个MAC地址为请求接口的MAC地址,也有一个目的MAC地址target为ff:ff:ff:ff:ff:ff,同时比二头层多了源IP地址和目的IP地址

再来看PC2响应的包,如图:

image.png

image.png

PC2响应的ARP包二层头

source:MAC地址为54:89:98:05:48:2b,是PC2的E1口的MAC地址 destination:54:89:98:8f:0d:eb,是PC1的E1口的MAC地址

PC2响应的ARP头

sender MAC address:MAC地址为54:89:98:05:48:2b,是PC2的E1口的MAC地址

sender IP address:IP地址为192.168.10.2,是PC2的IP地址

Target MAC address:54:89:98:8f:0d:eb,是PC1的E1口的MAC地址

Target IP address:IP地址为192.168.10.1,是PC1的IP地址

小结:目的地址收到后,发送一个单播的回复包。

疑问,因为交换机发送的是广播包,如果此时再添加一台PC3连接到交换机上,还是PC1 ping PC2会发生什么?如图:

image.png 此时我抓包交换机的E0/0/3口,如图:

image.png 交换机会发送出一个广播包,但是并没有收到来自PC3的回复

总结:整体流程就是PC1 ping PC2的时候,会在二层头的source填上发送接口的MAC地址,会在destination填上广播MAC地址,发送一个二层广播包,然后目的地址收到后,发送一个单播包,如果不是目的IP地址,则PC不会回复单播包。同时交换机记录在MAC表中,两个PC也会分别维护自身的ARP表,之后再ping就不需要再发送ARP广播直到ARP表失效