封装和分用(网络原理)

发布于:2025-05-12 ⋅ 阅读:(15) ⋅ 点赞:(0)


UDP/TCP协议知识及相关机制

优质好文推荐👆👆


我们如果想要了解封装与分用,先需要了解TCP/IP五层协议~~

该图的右边就是TCP/IP五层协议~~需要先理解一下各层是什么含义~


应用层:直接为用户应用程序提供网络服务和通信协议。它定义了应用程序如何交换数据和特定应用的规则

传输层:负责在源主机和目标主机和应用程序之间提供端到端的通信服务。主要有两种协议:UDP协议(不可靠,无连接),TCP协议(可靠,有连接)。简单地来说,负责两台主机之间的数据传输

网络层:负责将数据包从源主机跨越多个网络路由到目标主机~~使用逻辑地址进行寻址,并找到数据包传输的最好路径~~

数据链路层:负责在同一物理网络内的节点之间可靠地传输数据帧。它处理物理地址

(MAC地址)、帧的封装、错误检测和对物理层传输地比特流的访问控制~~

物理层:负责在物理通信媒介(如电缆、光纤)上传输原始地二进制比特流~确保比特能从一个设备传输到另一个设备~~


那我们举个示例来说明封装和分用~~大家都用过QQ吧,QQ怎么把你发送的数据发送到对端的~~这里其实就涉及到了封装和分用~~

封装的过程

首先你编辑了一条消息,假如说:你好,同学! 此时,你正在处在应用层~~


应该程序就会调用操作系统的API进而把数据传输到传输层

传输层对其封装 

UDP报头中包含的内容


传输层调用操作系统内核中的API把数据传输到网络层

网络层对其封装

IP报头中包含的内容


网络层调用操作系统内核中的API把数据传输到数据链路层

数据链路层对其封装

以太网帧头通常包含源MAC地址、目的MAC地址、类型/长度


数据链路层调用操作系统内核中的API把数据传输给物理层

把上述这样二进制数据转换成光信号、电信号、电磁波,然后进行发送给对端


忽略中间传输的过程~~

假设数据已经到达了网卡~~应该怎么样处理,这个过程就叫做分用

假设发送方为A,接收方为B

B的物理层

B的物理层收到了光信号/电信号/电磁波,就会把这些信号转化成二进制,得到一个以太网数据帧,然后把这个数据帧,交给数据链路层~~

B的数据链路层

按照以太网协议对其数据进行解析,也就是去掉以太网数据帧,得到其中的内容~~然后上传给网络层

这个解析的过程:

目标MAC地址的校验~如果地址不匹配,将会被舍弃~~

帧校验序列检查

规则:

读取帧尾部的4字节FCS值

接收到的整个帧(除了FCS本身)使用相同的CRC(循环冗余校验)算法进行计算,得到一个新的FCS值

如果新的FCS值和FCS值不匹配,则会舍弃

最后去掉封装~~以太网帧头


B的网络层

按照IP协议对其数据进行解析,得到IP报头中的内容,然后上传给传输层~~

这个解析的过程:

IP报头检验,如果不匹配,则会被舍弃

目标IP地址检验  如果不匹配,则会被舍弃

处理分片与重组 如果不匹配,则会被舍弃

解封装:去掉IP报头

协议字段判断 :这个主要是判断载荷中封装的是哪种传输层协议的数据段/数据报


B的传输层

按照UDP协议对其数据进行解析,得到UDP报头中的内容,然后上传给应用层~~

这个解析的过程:

UDP报头解析与校验~~

分用至目标应用程序   

                这是传输层“分用”的关键步骤,UDP模块会读取UDP报头中的目标端口号~

                根据这个目标的端口号,UDP模块会将UDP载荷放入到接收队列中或直接给

                应用程序~~

解封装  :去掉UDP报头~~


B的应用层

按照自己约定号的格式对其进行解析,得到数据,然后到达了B,最后对端就收到了你发的消息


以上就是封装和分用的过程~~


网站公告

今日签到

点亮在社区的每一天
去签到