前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货 | PING通信详细过程讲解,通俗易懂,看完可以给同事开课!

干货 | PING通信详细过程讲解,通俗易懂,看完可以给同事开课!

作者头像
网络技术联盟站
发布2019-08-28 15:44:01
1.7K0
发布2019-08-28 15:44:01
举报

PING通信详细过程

代码语言:javascript
复制
         PC1------------PC2
    PC1IP:192.168.1.1      PC2IP:192.168.1.2

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

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

3、网络层接收来处上层的数据后,根据ICMP协议进行封装,添加PC1的IP为源IP为和PC2IP为目标IP后封装成数据包。下传到网络接口层。

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

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

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

7、PC2接收这个帧后,在数据链路层查看目标mac地址是否指向自己。是,PC2则将帧头去掉,向上层传输。

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

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

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

代码语言:javascript
复制
      PC1---F0/1-Switch-F0/24----PC2
    PC1IP:192.168.1.1      PC2IP:192.168.1.2

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

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

3、网际层接收来处上层的数据后,根据ICMP协议进行封装,添加PC1的IP为源IP为和PC2IP为目标IP后封装成数据包。下传到网络接口层。

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

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

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

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

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

9、PC2接收这个帧后,在网络接口层查看目标mac地址是否指向自己。是,PC2则将帧头去掉,向上层传输。

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

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

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

代码语言:javascript
复制
 PC1--F0/1-Switch1-F0/24---e0-Router-e1---F0/1-Switch2-F0/24---PC2
     PC1IP:192.168.1.1                                      PC2IP:192.168.2.2

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

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

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回应报文给PCI

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络技术联盟站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档