数据封装的过程

数据的封装过程

传输层

UDP

直接将数据封装为UDP数据报​,添加UDP头部(8B)。

要点:

  1. UDP首部简单,无连接不可靠、无重传、无拥塞控制,适用于实时性要求较高的通讯;
  2. 不需要源端口或不想计算检验和时,可让相应字段全部为0。

TCP

将数据分割为数据段(Segment)​,每个段添加TCP头部(20B-60B)。

  • 序号seq。占4B,共2^{32}个序号。 
  • 确认号ack累计确认,若确认号为N,表明到N-1为止的序号已经全部收到。
  • 数据偏移。即首部长度,不要被名字迷惑,单位4B
  • URG。URG=1表示紧急字段有效,表示数据紧急应尽快传送。
  • ACK。ACK=1确认号字段才有效,只有握手1的ACK字段为0
  • PSH。PSH=1表示接收方需尽快交付此报文到应用进程。
  • RST。RST=1表示需要释放连接。
  • SYN。SYN=1表示这是一个连接请求或者连接接受报文,只有握手1,2的SYN字段为1
  • FIN。FIN=1表示此报文段的发送方已发送完毕,需要释放连接,只有挥手1,3的FIN字段为1
  • 窗口。告诉对方目前允许对方发送的数据量,有流量控制的作用。

要点:

  1. TCP是有连接,可靠的传输,支持分段,不支持广播;
  2. 握手1、2,挥手1、3即使不携带数据,也需要占用一个序号。

网络层

IPv4

传输层数据段被封装为IP数据包​,添加IP头部(20B-60B)。

  • 版本。IPv4为4,IPv6为6 。
  • 首部长度。单位4B,最常用的首部长度为5。在题目中通常IP数据报的开头为45(16进制)。
  • 总长度。单位1B。数据报理论最大长度65535B,以太网的最大传送单元为1500B
  • 标识。最低位为MF,MF=1表示后面还有分片;中间位为DF,只有DF=0才允许分片。
  • 片偏移单位8B除最后一个分片,每个分片一定是8B的整数倍
  • TTL。路由器转发数据前先将TTL-1,若此时TTL变为0,则丢弃该数据报。

数据链路层

以太网MAC帧

IP数据包被封装为数据帧。以太网帧的范围64B-1518B。

无线局域网MAC帧

主要关注3个地址字段

去往AP=0,来自AP=1。地址1=目的地址,地址2=AP地址,地址3=源地址。

去往AP=1,来自AP=0。地址1=AP地址,地址2=源地址,地址3=目的地址。

简单来说,地址1=本次发送的接收方地址,地址2表示发送方地址。

题目解析

一般说来,45开头直接可以判断是IP数据报了。那么第一行第4块(c0 a8 00 08就是源IP地址)。

1)将主机H的IP换成16进制,为c0a80008,在13-16字节处,因此1、3、4为H发送的IP分组。

TCP建立过程为握手1、2、3,握手1的ACK为1,握手1、2的SYN为1,这两个字段都在34字节里,将每个字段的34字节换成二进制,发现1的ACK=0,SYN=1;2的ACK=1,SYN=1,那么1就是握手1,2就是握手2。握手3的ack应该是握手2的seq+1。发现握手3应该是3。综上1,2,3完成了TCP的连接建立。

以太网的最短长度为64B,其中IP数据报部分为46B,本题应找到长度小于46B的IP分组。总长度字段在3,4字节处,发现3,5的总长度为28,换成10进制为40B<46B,而其他都大于46B,因此3,5通过时进行了填充。

2)5中的ack序号为84 6b 41 d6,说明84 6b 41 d5及之前序号的数据全收到了,题1知道发送的第一个字节应该是握手3中的seq序号,为84 6b 41 c6。收到的字节数为(HEX)d5-c6+1=(DEC)16。

3)通过比较发现来自S的分组应该对应的是到达H的5,S分组的TTL为(HEX)40(9字节处),5的TTL为(HEX)31。通过的路由器个数为(HEX)40-31=15个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/904459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向AGI的语言认知操作系统形式化模型

邹晓辉融智学语言数据库体系的数学表达 ——面向AGI的语言认知操作系统形式化模型 1. 基础定义与符号系统 设语言宇宙 L 为所有语言要素的集合&#xff0c;其结构可分解为&#xff1a; LY(言)U(语)A(用) 其中&#xff1a; YPGS &#xff08;音/形/义三元组&#xff09; U⋃…

基于 Spring Boot 瑞吉外卖系统开发(十)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;十&#xff09; 修改菜品 修改菜品是在原有的菜品信息的上对菜品信息进行更新&#xff0c;对此修改菜品信息之前需要将原有的菜品信息在修改界面进行展示&#xff0c;然后再对菜品信息进行修改。 修改菜品分为回显菜品信息和更…

Three.js和WebGL区别、应用建议

Three.js 和 WebGL 是用于在浏览器中创建 3D 图形的两种技术,它们之间有明显的区别和适用场景。 对于一般数据展示和模型展示而言,应用更多的是three.js,毕竟相对学习成本来说webGL跟高,需要投入更多的精力和基础功能的开发和验证上。而three.js封装了webGL的功能,开发相对…

【Vue】移动端开发(Uni-app、Taro)

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Vue 文章目录 1. Uni-app 与 Taro 简介1.1 什么是 Uni-app&#xff1f;1.2 什么是 Taro&#xff1f;1.3 Uni-app vs Taro&#xff08;对比图&#xff09; 2. 项目初始化与目录结构2.1 初始化 Uni-app 项目2.2 初始化 Taro 项目&…

自定义SpringBoot Starter-笔记

SpringBoot Starter的介绍参考&#xff1a; Spring Boot Starter简介-笔记-CSDN博客。这里介绍如何自定义一个springBoot Starter。 1. 项目结构 创建一个 Maven 项目&#xff0c;结构如下&#xff1a; custom-spring-boot-starter-demo/ ├── custom-hello-jdk/ # jdk模…

linux >!

Linux 中 >! 符号的含义与用法 ‌基本定义‌在 Linux Shell 中,>! 是由 > 和 ! 组合的特殊符号,主要用于 ‌强制覆盖文件‌。其行为与常规的 > 类似,但额外添加了忽略潜在限制的功能。 ‌典型场景‌绕过 noclobber 限制‌: 若 Shell 启用了 noclobber 选项(默…

共铸价值:RWA 联合曲线价值模型,撬动现实资产生态

摘要 本文提出了一种针对真实资产&#xff08;RWA&#xff09;产业的联合曲线激励模型&#xff0c;将劳动与数据贡献映射为曲线价值&#xff0c;并基于固定档位与指数衰减奖励发放总计 2.1亿积分。该模型结合了去中心化定价与平滑递减机制&#xff0c;不仅为早期贡献者提供更高…

java安全入门

文章目录 java基础知识this变量方法可变参数构造方法继承的关键字protected super阻止继承方法重载向上转型和向下转型多态抽象接口static静态字段default方法 包final内部类 java序列化与反序列化反射urldns链动态代理类加载器&#xff08;ClassLoader&#xff09;双亲委派模型…

前端基础之《Vue(14)—组件通信(1)》

一、什么是组件通信 1、通信是组件或模块之间的数据交互。 2、组件多重通信就形成了数据流&#xff0c;数据流管理的优劣决定了产品能否上线&#xff0c;返工是否频繁的问题。 3、Vue中有哪些常见的通信方案&#xff1f; 组件树的概念&#xff1a; 在Vue中&#xff0c;组件…

el-row el-col

参考layout布局 Element - The worlds most popular Vue UI frameworkElement&#xff0c;一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库https://element.eleme.cn/#/zh-CN/component/layout#row-attributes 一行可以看做24个 Element UI 中的 el-row 是…

Socket-TCP

在TCP/ip协议中&#xff0c;用源IP、源端口号、目的IP、目的端口号、协议号这样一个五元组来标识一个通信&#xff01; 端口号范围划分 0 - 1023: 知名端口号&#xff0c;HTTP&#xff0c;FTP&#xff0c;SSH 等这些广为使用的应用层协议&#xff0c;他们的端口号都是固定的。…

大数据Spark(五十八):Spark Pi介绍

文章目录 Spark Pi介绍 Spark Pi介绍 Spark Pi是Apache Spark官方提供的一个示例程序&#xff0c;该案例使用 Spark 进行分布式计算&#xff0c;通过蒙特卡罗方法估算圆周率&#xff08;π&#xff09;的值&#xff0c;其估算π原理如下&#xff1a; 上图中&#xff0c;正方形…

Doris索引机制全解析,如何用高效索引加速数据分析

在当今大数据时代&#xff0c;企业对于实时数据分析的需求呈现爆发式增长。面对动辄PB级的数据量和秒级响应的业务诉求&#xff0c;传统数据库系统往往力不从心。Apache Doris作为新一代MPP分析型数据库&#xff0c;凭借其独特的索引机制&#xff0c;在京东、美团等企业的实时数…

基于SpringBoot + Vue 的作业管理系统

产品包含&#xff1a; 项目源码数据库文件论文ppt 技术栈 架构: B/S、MVC 系统环境&#xff1a;Windows/Mac 开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql 技术栈&#xff1a;Java、Mysql、SpringBoot、Mybatis、Vue 功能模块 用户模块&#xff1a;学生用户、管理员、…

HCL(HashiCorp Configuration Language)是一种结构化配置语言

HCL&#xff08;HashiCorp Configuration Language&#xff09;是一种结构化配置语言&#xff0c;语法简洁且可读性强&#xff0c;广泛用于 Docker Buildx Bake、Terraform、Nomad 等工具的配置。以下是其核心语法规则和示例&#xff1a; 1. 基础结构 HCL 使用 块&#xff08;…

《AI大模型应知应会100篇》第50篇:大模型应用的持续集成与部署(CI/CD)实践

第50篇&#xff1a;大模型应用的持续集成与部署&#xff08;CI/CD&#xff09;实践 &#x1f9fe; 摘要 在AI大模型开发中&#xff0c;随着模型版本迭代频繁、依赖复杂、部署环境多样&#xff0c;构建一套高效可靠的持续集成与持续交付&#xff08;CI/CD&#xff09;流程显得尤…

【Linux深入浅出】之全连接队列及抓包介绍

【Linux深入浅出】之全连接队列及抓包介绍 理解listen系统调用函数的第二个参数简单实验实验目的实验设备实验代码实验现象 全连接队列简单理解什么是全连接队列全连接队列的大小 从Linux内核的角度理解虚拟文件、sock、网络三方的关系回顾虚拟文件部分的知识struct socket结构…

DB-GPT V0.7.1 版本更新:支持多模态模型、支持 Qwen3 系列,GLM4 系列模型 、支持Oracle数据库等

V0.7.1版本主要新增、增强了以下核心特性 &#x1f340;DB-GPT支持多模态模型。 &#x1f340;DB-GPT支持 Qwen3 系列&#xff0c;GLM4 系列模型。 &#x1f340; MCP支持 SSE 权限认证和 SSL/TLS 安全通信。 &#x1f340; 支持Oracle数据库。 &#x1f340; 支持 Infini…

2025五一数学建模竞赛A题完整分析论文(共45页)(含模型、可运行代码、数据)

2025年五一数学建模竞赛A题完整分析论文 摘 要 一、问题分析 二、问题重述 三、模型假设 四、符号定义 五、 模型建立与求解 5.1问题1 5.1.1问题1思路分析 5.1.2问题1模型建立 5.1.3问题1参考代码 5.1.4问题1求解结果 5.2问题2 5.2.1问题2思路分析 …

[学习]RTKLib详解:pntpos.c与postpos.c

文章目录 RTKLib详解&#xff1a;pntpos.c与postpos.cPart A: pntpos.c一、概述二、整体工作流程三、主要函数说明1. pntpos()2. satposs()3. estpos()4. rescode()5. prange()6. ionocorr()7. tropcorr()8. valsol()9. raim_fde()10. estvel() 四、函数调用关系图&#xff08;…