封装---关于计算机下楼买菜的步骤

Day 1,365, 00:06 Published in China Japan by Elandias

比如你现在打算去超市买菜,首先你要做些什么?
我相信你肯定拎着包想也不想就出门下楼左拐上了公共汽车,然后下车进了超市。那么,恭喜您比计算机聪明得多了。我想,如果是计算机,他会先超市的位置跟家的范围比对,发现超市不在家里,于是它必须出门,那么首先要找到出去的门在哪里。出门下楼之后,楼下的老大爷告诉它左拐有间公交车站,到了车站,它搜索站牌,再选择乘坐哪路公交去超市……

那么今天我们就来讨论一下封装,看看计算机去超市这个过程究竟是如何实现的。这次我们使用了一个叫做Packet Tracert的软件,它是Cisco公司开发的一款供网络初学者使用的模拟软件。
首先是拓扑图,左边是你的电脑,我们假设它的IP地址是192.168.0.2,它通过某个坑爹的ISP上网,再经过千山万水到达加利福尼亚来访问erepublik的服务器(假设它的IP地址为172.16.0.2)。


我们还是拿上次的ICMP报文作为例子,我从你的电脑来ping这个"erep服务器",使用这个软件的Simulation功能我们还可以看到报文经过每一站的情况,为方便起见我只截取了报文在第一站时的情况。


红色箭头所指的区域告诉了我们这个报文的下三层封装的情况,我们看到在网络层封装中,它的源IP地址为192.168.0.2,目的IP地址是172.16.0.2。而数据链路层封装告诉我们这是一个以太网络而且能看见源和目标两个MAC地址。这里我要说明一下,这里的源MAC地址是你的PC,而目的MAC是你的网关。也就是你的ISP的路由器。因为数据链路层传输是强调相邻节点之间的。如果你的PC不知道网关的MAC地址,它就需要使用ARP广播来查询。而物理层则告诉我们数据是通过一条百兆UTP线路传输之类的信息。

数据被发送到网关路由后,路由器会发现这个数据包的目的MAC地址为自己,于是解开二层封装,在三层封装中它查询路由表发现要去往172.16.0.0/24网段的下一跳是California路由器,于是重新给数据包封上二层和底层封装(我们看到这条红色的链路是一条广域网PPP协议链路,注意MAC地址只存在与以太网中,PPP协议由于是点对点传输,所以是不需要这样的东西的)并将数据发送出去。

California路由器接收到信息后,它的处理方式与你的ISP路由相同,也是解开二层封装后查看路由表,发现172.16.0.0/24网段正是它的直连网络,于是给数据封上以太网封装,这里的源MAC地址为California路由,而目的MAC为erep服务器。

当erep服务器接受到报文后,它发现这是一个ICMP Echo报文,于是它会给你的PC回复一个返还信息,这样你在你的电脑上才能看到“来自172.16.0.2的回复:字节😶X 时间😶Xms TTL😶X”。

现在我们已经看完了数据包在网络上一整个来回的过程。要注意,在整个过程中,源和目标IP地址都没有改变,而MAC地址则在不同的节点之间都有变化。

那么在下一期,我们会看到路由表是如何在路由器中产生的,我会讲到静态路由和动态的rip协议。最后,感谢大家的关注。如果你喜欢这篇文章,请您务必vote+subscribe,最好还能留下你的shout。这对我帮助很大。