Chinaunix首页 | 论坛 | 博客
  • 博客访问: 773178
  • 博文数量: 111
  • 博客积分: 3895
  • 博客等级: 中校
  • 技术积分: 1300
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-29 21:26
文章分类

全部博文(111)

文章存档

2014年(22)

2013年(8)

2010年(14)

2009年(21)

2008年(46)

我的朋友

分类: LINUX

2009-12-24 11:03:17

Ping的通信过程

                    PC1------------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、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

 


                    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

 

 

 

            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、传输层接到上层请求的数据,将数据分段并加上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回应报文给PC1

阅读(502) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~