一次完整的Ping过程

来源:互联网 发布:js定义数组并赋值 编辑:程序博客网 时间:2024/06/05 19:14

一次完整的PIng过程

涉及到的协议:

UDP ICMP  ARP OSPF


ICMP报文:

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用







1、Pc1在应用层发起个目标IP为192.168.2.2的Ping请求。

2、传输层接到上层请求的数据,将数据分段并加上UDP报头。下传到Internet层。  

3、网际层接收来处上层的数据后,根据ICMP协议进行封装,添加PC1的IP为源IP为和PC2IP为目标IP后封装成数据包。下传到网络接口层,因Pc1ip与pc2ip不在同一网段,所以数据包将发往网关Router E0口。  

4、网络接口层接收数据包后,进行封装,源MAC地址为PC1的MAC地址,目标MAC地址则查询自己的ARP缓存表以获取网关MAC地址。如果PC1 arp缓存表中没有网关对应的MAC地址,则PC1发出一个ARP广播报文。ARP报文中源MAC地址为Pc1mac地址,源IP地址为PC1 IP,所要请求的是网关IP对应的MAC地址  

5、交换机1从F0/1接收到ARp帧后,检查自己Arp缓存表中是否有与F0/1口相对应PC1的mac地址。没有,则将PC1Mac地址与F0/1接口对应起来,存储到交换机1的arp缓存表中。然后将该ARP请求报文进行除F0/1口以外的所有端口进行泛洪。 

6、Router收到ARP广播后,进行解封装,发现所要请求的MAC地址是自己的。则Router将PC1的mac地址写入arp缓存表中。然后向PC1发送一个ARP应答单播。该单播消息包括目标IP为PC1ip,目标Mac为pc1mac地址,源IP为Router的E0口IP,源Mac为Router的E0的Mac。  

7、ARP帧F0/24口传给交换机,交换机同样检查MAC表,然后将F0/24口与Router的E0的MaC地址对应起来,存入MAC缓存表中,然后转发该帧。  

8、Pc1接收到Router的arp应答帧后,将Router的E0的MAC地址存入arp缓存中,并将Router的E0的Mac地址作为目标地址封装到数据帧中。发给下层进行网络传输。 

9、Router的E0接收这个帧后,看目标mac地址是否指向自己。是,PC2则将帧头去掉,然后检查目标ip地址,发现这个目标ip不是自己,刚不再进行解封装。  

10、Router在自己的route表中检查自己的是否有去往目标地址的路由,没有则丢弃该帧。有,路由器经检查发现是去往与E1口直连的网段。则路由器对数据包进行二层封装成帧,源IP为pc1的IP,源mac地址为routerE1口的Mac地址,目标IP为Pc2的ip,目标Mac地址则检查自己的arp缓存表获取。如果没有,则发送ARp请求报文。  

11、交换机收到报文后也检查ARp缓存表,然后存储对应接口的MAC地址后进行除接收端口外的泛洪。  

12、PC2收到ARP广播后,进行解封装,发现所请求的MAC地址是自己的。则RouterE1的mac地址写入arp缓存表中。然后向PC1发送一个ARP应答单播。该单播消息包括目标IP为RouterE1的ip,目标Mac为RouterE1的mac地址,源IP为PC2的IP,源Mac为pc2的Mac。  

13、ARP帧经F0/24口传给交换机,交换机同样检查MAC表,然后将F0/24口与PC2的MaC地址对应起来,存入MAC缓存表中,然后转发该帧。  

14、RouterE1口接收到PC2的arp应答帧后,将Pc2的MAC地址存入arp缓存中,并将Pc2的Mac地址作为目标地址封装到数据帧中,然后转发。  

15、Pc2网际层接收到这个信息包,查看包头,发现目标IP和自己匹配,则解封装,将数据向上层传输。  

16、传输层接收来自下层的Ping请求的UDP报文,则去掉UDP报头,向应用层传送。  

17、应用层收到ping请求后,发送一个PIng回应报文给PC

0 0