缃戝伐瀛︿範绗旇 (缃戝伐鎴愰暱绗旇)

前言

今天是第七节分享了,不知道大家看完前六篇内容感觉怎么样? 应该留言的朋友不多,所以我也不知道大家的一个观感如何,只能尽力地来更新了

好吧!话不多说,开始今天的内容~

数据的封装数据的解封装

数据转发过程

如图,主机A想访问服务器A由一个数据传输过程:

缃戝伐鎴愰暱绗旇,缃戝伐瀛︿範绗旇

数据的封装

传输层的封装

主机A会对待发送的应用数据首先执行加密和压缩等相关操作,之后进行传输层封装。然后将数据从应用层下放到传输层,以传输层TCP封装为例:

缃戝伐鎴愰暱绗旇,缃戝伐瀛︿範绗旇

当主机建立了到达目的地的TCP连接后,开始对应用层数据进行封装,将数据段的源端口号为主机A随机选择的1027号端口,目的端口号为服务器A的TCP知名端口80(源端口:使用动态端口 目的端口:根据所需要的服务来封装 HTTP=80)

网络层的封装

主机A完成传输层封装后,一般会进行网络层数据封装,以IP封装为例:

缃戝伐鎴愰暱绗旇,缃戝伐瀛︿範绗旇

在使用IP进行封装时,需要明确IP报文的源和目的地址。如果IP报文的大小大于网络的最大传输单元(MTU),则该报文有可能在传输过程中被分片。

生存时间(TTL)字段用来减少网络环路造成的影响。默认TTL值为255。路由器转发一个数据包时,该值会被减1,如果路由器发现该值被减为0,就会丢弃该数据包

本例中,Protocol:根据上层的协议来决定取值 TCP=6/UDP=17,SIP:自己的IP地址,DIP:目标服务器的IP地址

查找路由表

缃戝伐鎴愰暱绗旇,缃戝伐瀛︿範绗旇

主机A在发送数据前需要先检查是否能够到达目的端,这个过程是通过查找路由来完成的。

在此示例中,主机A拥有一条到达“任何网络”的路由,它发往其他网络的数据都会通过IP地址为10.1.1.1的接口转发到下一跳,即网关10.1.1.254。

查找ARP缓存

缃戝伐鎴愰暱绗旇,缃戝伐瀛︿範绗旇

接下来,由于数据包要被封装成数据帧,所以主机A需要获取下一跳的MAC地址,也就是网关的MAC地址。主机首先会查询ARP缓存表。本例中,主机A的ARP缓存表中存在网关MAC地址的表项。如果没有查找到网关的MAC地址表项,主机A会通过发送ARP请求来获取网关的MAC地址。

数据链路层的封装

缃戝伐鎴愰暱绗旇,缃戝伐瀛︿範绗旇

DMAC:根据路由表查找下一跳,封装去往服务器的下一跳的MAC地址 SMAC:自己的MAC地址

此时数据封装完毕,就可以在网络中进行转发

数据的解封装

数据链路层的解封装

缃戝伐鎴愰暱绗旇,缃戝伐瀛︿範绗旇

当下一跳的设备收到报文后,对数据帧进行封装发现目的MAC是自己,则继续处理发现目的MCA不是自己,则丢弃报文

网络层的解封装

缃戝伐鎴愰暱绗旇,缃戝伐瀛︿範绗旇

此时继续处理报文,对IP报文进行解封装发现IP地址是自己,则会送往上层协议处理发现IP地址不是自己,则会路由表查找去往该网段的下一跳地址。如果存在转发路径,会为数据包添加一个新的二层帧头和帧尾部 DMAC:自己的MAC SMAC:下一跳的MAC

此时继续处理报文,对IP报文进行解封装发现IP地址是自己,则会送往上层协议处理发现IP地址不是自己,则会路由表查找去往该网段的下一跳地址。如果存在转发路径,会为数据包添加一个新的二层帧头和帧尾部 DMAC:自己的MAC SMAC:下一跳的MAC

传输层的解封装

缃戝伐鎴愰暱绗旇,缃戝伐瀛︿範绗旇

服务器检查TCP头部的目的端口,然后将数据段发送给应用层相应的协议进行处理

说点想说的

我整理了一个40G的学习大文件。【包含了:华为认证考证、网工视频、子网计算器、HCIA题库、网工面试、网工项目、网工职业规划咨询、e n s p安装包/命令/实验、网工必备软件安装包、经典面试题、零基础必看十大书籍电子版、视频等】

需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦!

缃戝伐鎴愰暱绗旇,缃戝伐瀛︿範绗旇