最通俗的ping原理

来源:互联网 发布:资源分配软件 编辑:程序博客网 时间:2024/05/23 18:49
 

pc10 ping pc1
10.10 20.1
首先此数据在pc10上网络层进行封装,封装格式如下
10.10 20.1 protocol icmp ping
判断目标IP和我源IP是否在一个网段里面,结果发现不在一个网段里面,此时由于我pc10上配置来一个默认网关,由于pc机又是一台简单到路由器,就会在他到路由表里面会自动生成一个路由条目,格式为
0.0.0.0 0.0.0.0 192.168.10.254
这条路由称之为默认路由,也就是说当结果发现不在一个网段里面的时候,此时PC10查它到路由表转发,怎么查?拿目标IP和默认路由的子网掩码做位与结果,结果0.0.0.0,这个就是目标IP到网络号,正好符号默认路由的目标网段,一旦符合,就沿此路由将数据进行转发,转发的方式就是把数据送往下一跳192.168.10.254,这个信息是网络层推断出来到信息,接着将此信息下发给数据链路层,接着就去数据链路层进行封装,封装到格式如下
MR M10 type 10.10 20.1 protocol icmp ping
接着在物理层转换为比特流通过本地网卡出去,抵达交换机F0/10口,进入交换机,查mac地址表进行转发,发现目标MAC对应的是F0/21,此时将数据从F0/21口转发出去,由于f0/21打为了trunk,里面有dot1q协议,此时改写这个原始帧,由于这个帧从vlan 10来的,所以改写的方式如下
MR M10 vlan10 type 10.10 20.1 protocol icmp ping
然后从F0/21发出去,抵达上面交换机的F0/21口,由于此接口也打为了trunk,当它收到这个帧的时候,查看目标MAC,再查源MAC,看到里面有一个vlan 10,就把vlan 10到标签干掉
MR M10 type 10.10 20.1 protocol icmp ping
把此帧丢给本交换机到vlan 10管理域, 进入来本交换机的vlan 10,再查MAC地址表转发,结果就从f0/10端口出去,由于此接口也打为了trunk,又要继续封装
MR M10 vlan10 type 10.10 20.1 protocol icmp ping
封装完后从f0/1口出去把,抵达路由器到f0/0.10子接口,此子接口首先收到到是比特流,再查数据帧头部,目标MAC是MR,就是我的嘛!既然是我的,我就把目标MAC拆掉,再读源MAC,并把它拆掉,然后再读vlan 10,由于为子接口也封装来dot1q,就可以识别vlan 10,并且为子接口也关联的是vlan 10,所以就把vlan 10拆掉
10.10 20.1 protocol icmp ping
接着看数据包,首先看源IP,是10.10,再看目标IP是20.1,这些地址都不是我路由器的地址吧,既然这个数据包不是发给我的,我只能查看,而不能拆,由于我是路由器,我有路由表, 我可以想办法尽量将此包通过我的路由表转发出去,怎么转发?拿目标20.1和我路由表中到每一条路由条目的子网掩码作位与运算,看是否符合该路由条目到目标网络号,发现,正好有一条符合把,通过查路由表,发现此数据包就可以从f0/0.20口出去,没有说明目标要去往哪里把,这个是路由器网络层得出到结论,然后继续开始去二层封装
M1 MR type 10.10 20.1 protocol icmp ping
此时将数据帧通过f0/0.20口发出去把,由于此接口封装来802.1q,它关联到是vlan 20,所以在此帧中还要打标记,结果如下
M1 MR vlan20 type 10.10 20.1 protocol icmp ping
离开路由器之后,抵达交换机的f0/1口,由于此接口是trunk,首先查看目标mac,发现不是自己的,然后再查看源MAC,再把vlan 20干掉把
M1 MR type 10.10 20.1 protocol icmp ping
把此帧丢给此交换机的vlan 20,然后进入交换机,查mac地址表转发,发现通过f0/21口出去,由于此接口也是trunk,改写此数据帧
M1 MR vlan20 type 10.10 20.1 protocol icmp ping
通过f0/21进入下面的交换机,由于此接口也是trunk,改写数据帧,把vlan 20干掉
M1 MR type 10.10 20.1 protocol icmp ping
把此数据丢给本交换机到vlan 20
再查mac地址表转发,发现要从此交换机到f0/1口把数据转发出去,由于此接口是access口,不对数据帧做任何操作,此时此数据帧就可以通过f0/1离开交换机,抵达pc1,然后pc1首先收到比特流,再看帧,发现目标MAC是我,就拆掉,再看源MAC,记下来,拆掉,然后再拆掉type字段,然后再看数据包,源IP记下来,再看目标IP是我,然后就可以将源目标IP都拆掉,在拆掉protocol字段,发现里面是一个ping包,此时我就收到来这个ping包,然后我再回应,过程同上!


0 0
原创粉丝点击