当咱们在七层协议最上层,主机A想和其它主机通讯, 好比telnet到主机B,各层都为数据打包后再封装上本身能识别的数据标签,如今咱们只说四层如下的通讯过程。缓存
1、当一个高层的数据包到达传输层,因为telnet使用TCP协议,传输层将上层传过来的数据不变再封装TCP的包头以便目标主机能够正确解包,继续向下层(网络层)传递。网络
2、网络层一样不会改变以前的数据包,固然也包括以前封装的任何包头,首先主机A要对目标主机做判断,他会用本身的IP地址和本身的子网掩码进行与运算结果是172.16.12.0,而后在拿本身的掩码和主机B的IP地址做与运算,倘若结果是172.16.12.0,这个时候他知道他们在同一网段内,这时他会封装本身的IP及目标的IP地址,同上层传下来的数据一下向下传。倘若是61.152.251.0,发现不在同一个网段,注意:这时也是用本身IP和目标IP进行封装,而后向下层传递。ide
3.在数据链路层这时就不会封装目的的MAC地址,他也不知道目的MAC地址是什么,这时他会封装网关的MAC地址,而让网关将数据转发出去。网站
同时在网关收到数据时候,他会查看目标IP地址,固然不是他本身的IP地址了,因此他知道这个数据包是要由他路由出去的,而后路由器查找本身的路由表,若存在到该网络的路由便按路由表从对应接口发出去,若路由表中没有到该网络的路由则检查是否存在默认路由,若是没有则丢弃数据包,并向源主机发送网络不可达icmp消息。若一切正常,路由器会把数据包发给了他的邻居或网络运营商的路由器上去,重复以上动做,在TTL值为0以前将数据传递给某X官方网站,数据传递成功! spa
数据链路层其实包括两个子层,一是LLC子层另外一个是MAC子层。咱们知道在以太网中通讯是物理寻址的,在这层中会封装本身的MAC地址及对方的MAC地址。固然用户是没有通知他MAC地址是多少的,这时主机会查本身的缓存表,看有没有主机B的MAC地址,若是有就封装,不然他会发一个ARP的地址解析广播包,该包虽然能够向全部处在同一广播域中的主机发送,,但只会传递到不一样网络的主机的数据链路层,更确切的说传递到了不一样一网络的主机的数据链路层的高层后就被丢弃了。blog
4、接着该数据会从咱们的网线等传输介质传出去,主机B当收到数据的时候进行相同的工做可是做相反的操做接口
计算机在接收到数据帧后,须要去掉为了传输而添加的附加信息,这称为解封装,是上述封装操做的逆向过程。路由