当前位置: 首页 > news >正文

封装和分用(网络原理)


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,最后对端就收到了你发的消息


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

相关文章:

  • 【常用算法:排序篇】4.高效堆排序:线性建堆法与蚂蚁问题的降维打击
  • Kafka的基本概念和Dokcer中部署Kafka
  • B 端电商数据接口开发:1688 商品详情页实时数据抓取技术解析
  • 组合模式(Composite Pattern)详解
  • Docker拉取ubuntu22.04镜像使用ROS2 humble及仿真工具可视化进行导航
  • [案例四] 智能填写属性工具(支持装配组件还有建模实体属性的批量创建、编辑)
  • NoSQL数据库技术与应用复习总结【看到最后】
  • MySQL为什么选择B+树
  • MCP:重塑AI交互的通用协议,成为智能应用的基础设施
  • JUC并发编程(上)
  • Qt—多线程基础
  • 《Redis应用实例》学习笔记,第一章:缓存文本数据
  • Python----神经网络(基于Alex Net的花卉分类项目)
  • 设计模式学习整理
  • vs2022配置opencv
  • Go语言运算符详解
  • 深入理解反序列化攻击:原理、示例与利用工具实战
  • 缓存(5):常见 缓存数据淘汰算法/缓存清空策略
  • 蓝桥杯14届 数三角
  • 网址为 http://xxx:xxxx/的网页可能暂时无法连接,或者它已永久性地移动到了新网址
  • java做网站和php/swot分析
  • 长葛做网站/seo推广系统
  • pc端网站怎么做自适应/汕头网站推广
  • asp做网站用什么写脚本/网站优化及推广
  • 沧州网络推广/信息流优化师面试常见问题
  • 室内设计培训班有用吗/seo的中文意思