网络编程——数据包的组装和拆解

news2024/10/7 2:22:46

数据包的组装和拆解

一、数据包在各个层之间的传输

在这里插入图片描述

二、各个层的封包格式

1、链路层封包格式

在这里插入图片描述

+------------------+------------------+----------------------+--------------------+---------------------+-----------------------------------+
| 目标MAC地址(6字节) | 源MAC地址(6字节) | 类型/长度字段(2字节) | 数据(46-1500字节) | 帧校验序列(4字节) | 没有数据填充(0-46字节) |
+------------------+------------------+----------------------+--------------------+---------------------+-----------------------------------+

目的地址:目标MAC地址(6字节),这是数据帧要发送到的目标设备的MAC地址。它唯一标识了数据帧的目的地。

源地址:源MAC地址(6字节), 这是数据帧的发送者的MAC地址。它唯一标识了数据帧的来源。

类型:类型/长度字段(2字节),确定以太网头后面跟的是哪个协议
0x0800 ip协议
0x0806 arp协议
0x0835 rarp协议

数据(46-1500字节): 这是实际要传递的数据,它的长度可以在46字节到1500字节之间。如果数据不足46字节,会被填充至46字节,确保帧的最小长度。

帧校验序列(4字节): 这是用于检测数据传输中可能发生的错误的冗余校验码。校验码可以检测数据在传输过程中是否发生了损坏。

没有数据填充(0-46字节): 如果数据字段的长度不足46字节,可能需要添加填充来保持帧的最小长度。

注意
1、IEEE802.2/802.3封装常用在无线
2、以太网封装常用在有线局域网

2、网络层封包格式(IPV4)

在这里插入图片描述

版本/头部长度: 这个字段包含IP协议版本号和IP头部的长度。版本通常是IPv4(4位),头部长度指示IP头部的字节数,通常为20字节,但可能会因选项字段的存在而变化。

服务类型: 这个字段用于指示数据包的服务质量和优先级。

总长度(2字节): 这个字段表示整个IP数据报的长度,包括头部和数据。

标识: 这个字段用于标识数据报的顺序和重组。

标志/片偏移: 这个字段包含分片数据报的标志位和数据片的偏移。

生存时间: 这个字段用于防止数据包在网络中永远循环,通过逐跳减少来实现。

协议: 这个字段表示传输层协议,例如TCP(6)、UDP(17)等。

校验和(2字节): 这个字段用于检测头部字段的错误。

源IP地址和目标IP地址(各4字节): 这些字段表示源和目标设备的IP地址。

可选项和填充(可选): 这个字段包含可选的IP选项,以及填充字段,以确保IP头部长度为32位的倍数。

数据: 这个字段是实际要传递的数据。

3、传输层封包格式(TCP和UDP)

①TCP封包格式:
在这里插入图片描述

源端口和目标端口(各2字节): 这些字段指示数据的源端口和目标端口。

序列号和确认号(各4字节): 这些字段用于TCP的流控制和确认机制。

首部长度/保留位: 首部长度字段指示TCP首部的长度,保留位用于未来的扩展。

控制标志(2字节): 这个字段包含TCP控制标志,如ACK、SYN、FIN等,用于管理连接状态和数据传输。

窗口大小(2字节): 这个字段表示接收方能够接受的数据量。

校验和(2字节): 这个字段用于校验TCP头部和数据的完整性。

紧急指针(2字节): 这个字段用于指示紧急数据的位置。

选项(可选): 这个字段包含可选的TCP选项,如窗口扩大因子、时间戳等。

数据: 这个字段是实际要传递的数据。

+----------------+----------------+----------------+----------------+
| 源端口(2字节)  | 目标端口(2字节) | 序列号(4字节)  | 确认号(4字节)  |
+----------------+----------------+----------------+----------------+
| 首部长度/保留位  | 控制标志(2字节) | 窗口大小(2字节)  | 校验和(2字节)  |
+----------------+----------------+----------------+----------------+
| 紧急指针(2字节) | 选项(可选)         | 数据(可变长度)   |
+----------------+----------------+----------------+----------------+

②UDP封包格式

在这里插入图片描述

+----------------+----------------+----------------+----------------+
| 源端口(2字节)  | 目标端口(2字节) | 长度(2字节)    | 校验和(2字节)  |
+----------------+----------------+----------------+----------------+
| 数据(可变长度)   |
+----------------+

源端口和目标端口(各2字节): 这些字段指示数据的源端口和目标端口。

长度(2字节): 这个字段表示UDP数据报的长度,包括头部和数据。

校验和(2字节): 这个字段用于校验UDP头部和数据的完整性。

数据: 这个字段是实际要传递的数据。

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

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

相关文章

Java实现电影信息查询系统

Java实现电影信息查询系统 需求分析代码实现小结Time 需求分析 首先每一部电影,都包含这部电影的相关信息,比如:电影的编号(id)、电影的名称(name)、电影的价格(price)、…

数据结构: 线性表(带头双向循环链表实现)

之前一章学习了单链表的相关操作, 但是单链表的限制却很多, 比如不能倒序扫描链表, 解决方法是在数据结构上附加一个域, 使它包含指向前一个单元的指针即可. 那么怎么定义数据结构呢? 首先我们先了解以下链表的分类 1. 链表的分类 链表的结构非常多样, 以下情况组合起来就有…

Plecs最新安装免费版下载链接/Plecs 电力仿真软件4.7.5版本下载/实测能用

Plecs最新安装免费版下载链接 Plecs 电力仿真软件4.7.5版本下载 实测能用:

信息安全:认证技术原理与应用.

信息安全:认证技术原理与应用. 认证机制是网络安全的基础性保护措施,是实施访问控制的前提,认证是一个实体向另外一个实体证明其所声称的身份的过程。在认证过程中,需要被证实的实体是声称者,负责检查确认声称者的实体…

校园跑腿小程序为什么这么受欢迎呢?

校园跑腿小程序是一种在校园内提供快递、代购、代拿快递、代办事项等服务的手机应用程序。它通常由学生或校园内的志愿者组成,通过该应用程序接受用户的委托,并且根据用户的需求完成任务。校园跑腿小程序通过与学校或社区合作,提供便利的服务…

关于SQL查询面试题,测试会这些基本够用了

Sutdent表的定义 Score表的定义 1、创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表…

大数据-玩转数据-Flink-Transform

一、Transform 转换算子可以把一个或多个DataStream转成一个新的DataStream.程序可以把多个复杂的转换组合成复杂的数据流拓扑. 二、基本转换算子 2.1、map(映射) 将数据流中的数据进行转换, 形成新的数据流,消费一个元素并产出一个元素…

研究人员发现特斯拉汽车能被越狱,可免费解锁付费功能

Bleeping Computer 网站披露,柏林工业大学(Technical University of Berlin)的研究人员开发出一种新技术,可以破解特斯拉近期推出所有车型上使用的基于 AMD 的信息娱乐系统,并使其运行包括付费项目在内的任何软件。 实…

22、springboot的Profile(通过yml配置文件配置 profile,快速切换项目的开发环境)

springboot的Profile ★ 何谓Profile 应用所在的运行环境发生切换时,配置文件常常就需要随之修改。Profile:——就是一组配置文件及组件的集合。可以整个应用在不同的profile之间切换(设置活动profile),整个应用都将使…

QGIS二次开发三:显示Shapefile

Shapefile 为 OGR 所支持的最重要的数据格式之一&#xff0c;自然可以被 QGIS 加载。那么该如何显示Shapefile呢&#xff1f; 一、先上代码 #include <qgsapplication.h> #include <qgsproviderregistry.h> #include <qgsmapcanvas.h> #include <qgsvec…

HDFS中snapshot快照机制

HDFS中snapshot快照机制 介绍作用功能实现相关命令和操作相关命令 介绍 snapshot是数据存储的某一时刻的状态记录&#xff0c;备份&#xff08;backup&#xff09;则是数据存储的某一个时刻的副本HDFS snapshot快照是整个文件系统或某个目录在某个时刻的镜像&#xff0c;该镜像…

黑马机器学习day1

1.sklearn数据集 sklearn.datasets datasets.load_*() 获取小规模的数据集 datasets.fetch_*(data_homeNone) 获取大规模数据集 函数的第一个参数是data_home,标识数据集下载目录&#xff0c;默认/scikit_learn_data/ 1.1sklearn小数据集 sklearn.da…

无涯教程-Perl - fcntl函数

描述 该函数是系统fcntl()函数的Perl版本。使用FILEHANDLE上的SCALAR执行FUNCTION指定的功能。 SCALAR包含函数要使用的值,或者是任何返回信息的位置。 语法 以下是此函数的简单语法- fcntl FILEHANDLE, FUNCTION, SCALAR返回值 该函数返回0,但如果fcntl()的返回值为0,则返…

Vue2:组件高级(下)

Vue2&#xff1a;组件高级&#xff08;下&#xff09; Date: May 25, 2023 Sum: 自定义指令、插槽、商品列表、动态组件 目标&#xff1a; 自定义指令 基础概念&#xff1a; 概念&#xff1a; 内置指令&#xff1a;vue 官方提供了 v-for、v-model、v-if 等常用的内置指令。…

整数规划——第七章 分支定界算法

整数规划——第七章 分支定界算法 目前大部分整数规划商业软件如CPLEX&#xff0c;Gurobi和BARON等都是基于分枝定界算法框架的。 7.1 最优性条件和界 考虑下列一般线性整数规划问题&#xff1a; (IP) min ⁡ c T x , s . t . A x ≤ b , x ∈ Z n (7.1) \text{(IP)}\quad…

部署-打包并提交代码到Git服务器

前期准备工作 vue.config.js const { defineConfig } require(vue/cli-service) module.exports defineConfig({// 项目出Bug,点击错误可以跳到对应的位置&#xff0c;实际生成环境是不需要的 默认为trueproductionSourceMap: false,lintOnSave: false,publicPath: process.…

720度全视角!VR直播遇上法院庭审,你体验过吗?

在元宇宙发展背景之下&#xff0c;VR直播技术同样驶入了发展的快车道&#xff0c;以沉浸式、交互式体验为特点的VR技术&#xff0c;将原本就受欢迎的直播变得更加立体、真实、可靠&#xff0c;观众只需要一部手机就可以实现全方位、无死角地观看直播现场&#xff0c;体验宛如身…

小白带你学习linux的Redis基础(三十二)

目录 前言 一、概述 1、NoSQL 2、Redis 二、安装 1、基础配置 2、编译安装 3、RPM安装网络源安装 三、目录结构 1、rpm -ql redis 2、/etc/redis.conf 四、命令解析 1、redis-server 2、redis-cli 2、redis-check-rdb 3、redis-check-aof 五、redis登录更改 …

ES面试题

前言 1、面试突击正确的学习姿势 老师在给你讲面试突击的时候&#xff0c;是有课件的&#xff0c;而且是有准备的。你在面试的时候&#xff0c;是没有笔记课件的&#xff0c;而且问题是由面试官提问的&#xff0c;具有一定的随机性面试突击课程的目标不是听懂&#xff0c;而是…

文件上传漏洞(webshell)

一、防护 1、防护 1、判断文件后缀&#xff0c;为图片的话才让上传成功。 2、解析文件内容&#xff08;文件幻数&#xff09;判断文件头和文件尾部是否一致 幻数 常见的 3、隐藏按钮&#xff08;带上code唯一值&#xff09; 4、二次渲染&#xff08;类似拿着你的图片&#xff…