数据包解析

article/2025/10/8 14:59:05

数据包解析

  • 数据包理解
    • 七层协议详解
    • OSI七层协议中每一层的特征
    • 数据包解析
    • 如何改变文本的样式
    • TCP数据包结构:

数据包理解

从专业的角度来说,(网络协议)OSI就是一个开放的通信系统互联参考模型,也是一个定义的很好的协议规范。OSI模型有7层结构,每层都可以有几个子层。OSI的7层从下到上分别是7-应用层、6-表示层、5-会话层、4-传输层、3-网络层、2-数据链路层、1-物理层。

七层协议详解

物理层:是参考模型的最低层。该层是网络通信的数据传输介质,由连接不同结点的电缆与设备共同构成。主要跟功能是:利用传输介质为数据链路层提供物理连接,负责处理数据传输并监控数据出错率,以便数据流的透明传输。
数据链路层:四参考模型的第二层。主要功能是:在物理层提供的服务基础上,在通信的实体间建立数据链路连接,传输以“帧”为单位的数据包,并采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。
网络层:是参考模型的第三层。主要功能是:为数据在节点之间传输创建逻辑链路,通过路由选择算法为分组通过通信子网选择最适当的路径,以及实现拥塞控制、网络互连等功能。
传输层:是参考模型的第四层。主要功能是:向用户提供可靠地端到端服务,处理数据包错误、数据包次序,以及其他一些关键传输问题。传输层向高层屏蔽了下层数据通信的细节。因此,它是计算机通信体系结构中关键的一层。
会话层:是参考模型的第五层。主要功能是:负责维扩两个结点之间的传输连接,以便确保点到点传输不中断,以及管理数据交换等功能。
表示层:是参考模型的第六层。主要功能是:用于处理在两个通信系统中交换信息的表示方法,主要包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。
应用层:是参考模型的最高层。主要功能是:为应用软件提供了很多服务,比如文件服务器、数据库服务、电子邮件与其他网络软件服务。

OSI七层协议中每一层的特征

第一层:物理层
机械性能:接口的形状,尺寸的大小,引脚的数目和排列方式等;
电气性能:接口规定信号的电压、电流、阻抗、波形、速率好平衡特性等;
工程规范:接口引脚的意义、特性、标准。
工作方式:确定数据位流的传输方式,如:半双工、全双工等。
物理层协议:美国电子工业协会(EIA)的RS232/RS422/RS423等;
国际电报电话咨询委员会(CCITT)的X.25/X.21等;
物理层的数据单位是位(BIT),典型设备时集线器HUB。
这主要是和硬件有关,与软件关系不大。
第二层:链路层
链路层屏蔽传输介质的物理特征,使数据可靠传送。
内容包括介质访问控制、连接控制、顺序控制、流量控制、差错控制和仲裁协议等。
链路层协议有:协议有面向字符的通讯协议(PPP)和面向位的通讯协议(HDLC)。
仲裁协议:CSMA/CD(Carrier Sense Multiple Access with Collision Detection)、Token Bus、Token Ring
链路层数据单位是帧,实现对MAC地址的访问,典型设备是交换机SWITCH。
第三层:网络层
网络层管理连接方式和路由选择。
连接方式:虚电路和数据报服务。
虚电路是面向连接的,数据通讯一次路由,通过会话建立的一条通路。数据报是非连接的,每个数据报都有路由能力。网络层的数据单位是包,使用的是IP地址,典型设备时路由器Router。
这一层可以进行流量控制,但流量控制更多的是使用第二层或第四层。
第四层:传输层
提供端到端的服务,可以实现流量控制、负载均衡。
传输层信息包括端口、控制字和校验和。
传输层协议主要是TCP和UDP。
传输层位于OSI的第四层,这层使用的设备时主机本身。
第五层:会话层
会话层主要内容时通过 绘画进行身份验证、绘画管理和确定通讯方式。一旦建立连接,会话层的任务就是管理会话。
第六层:表示层
表示层主要是解释通讯数据的意义,如代码转换、格式变换等,使不同的终端可以表示。
还包括加密与解密、压缩与解压等。
第七层:应用层
应用层应该是直接面向用户的程序或服务,包括系统程序和用户程序,比如www、FTP、DNS、POP3和SMTP等都是应用层服务。
数据再发送时是数据从应用层至物理层的一个大包的过程,接收时是数据从物理层至应用层的一个解包过程。
从功能角度可以分为三组:1/2层解决网络通信问题,3/4层解决传输问题,5/6/7层处理对应用进程的访问。
从控制角度可分为二组:1/2/3层是通信子网,4/5/6/7是主机控制层。

数据包解析

在这里插入图片描述

如何改变文本的样式

如图,一个刻度表示1个二进制位(比特)。

1-1.版本号4位,表示版本号号,眼下最广泛的是4=B1000,即常说的IPv4;相信IPv6以后会广泛应用,它能给世界上每一个纽扣都分配

   一个IP地址。

1-2.头长4位,数据包头部长度。它表示数据包头部包含多少个32位长整型,也就是多少个4字节的数据。无选项则为5(红色部分)。

1-3.服务类型,包含8个二进制位,每一个位的意义例如以下:

   过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)延迟字段:1位,取值:0(正常)、1(期特低的延迟)流量字段:1位,取值:0(正常)、1(期特高的流量)可靠性字段:1位,取值:0(正常)、1(期特高的可靠性)成本字段:1位,取值:0(正常)、1(期特最小成本)保留字段:1位 ,未使用

1-4.包裹总长16位,当前数据包的总长度,单位是字节。当然最大仅仅能是65535,及64KB。

2-1.重组标识16位,发送主机赋予的标识,以便接收方进行分片重组。

2-2.标志3位,他们各自的意义例如以下:

   保留段位(2):1位,未使用不分段位(1):1位,取值:0(同意数据报分段)、1(数据报不能分段)很多其它段位(0):1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有很多其它的包)

2-3.段偏移量13位,与很多其它段位组合,帮助接收方组合分段的报文,以字节为单位。

3-1.生存时间8位,常常ping命令看到的TTL(Time To Live)就是这个,每经过一个路由器,该值就减一,到零丢弃。

3-2.协议代码8位,表明使用该包裹的上层协议,如TCP=6,ICMP=1,UDP=17等。

3-3.头检验和16位,是IPv4数据包头部的校验和。

4-1.源始地址,32位4字节,我们常看到的IP是将每一个字节用点(.)分开,如此而已。

5-1.目的地址,32位,同上。

6-1.可选选项,主要是给一些特殊的情况使用,往往安全路由会当作攻击而过滤掉,普联(TP_LINK)的TL-ER5110路由就能这么做。

7-1.用户数据。
强调文本 强调文本

TCP数据包结构:

在这里插入图片描述

1-1.源始port16位,范围当然是0-65535啦。

1-2.目的port,同上。

2-1.数据序号32位,TCP为发送的每一个字节都编一个号码,这里存储当前数据包数据第一个字节的序号。

3-1.确认序号32位,为了安全,TCP告诉接受者希望他下次接到数据包的第一个字节的序号。

4-1.偏移4位,类似IP,表明数据距包头有多少个32位。

4-2.保留6位,未使用,应置零。

4-3.紧急比特URG—当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。

4-3.确认比特ACK—仅仅有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。參考TCP三次握手

4-4.复位比特RST(Reset) —当RST=1时,表明TCP连接中出现严重差错(如因为主机崩溃或其它原因),必须释放连接,然后再又一次

   建立运输连接。參考TCP三次握手

4-5.同步比特SYN—同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。參考TCP三次握手

4-6.终止比特FIN(FINal)—用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完成,并要求释放运输连接。

4-7.窗体字段16位,窗体字段用来控制对方发送的数据量,单位为字节。TCP连接的一端依据设置的缓存空间大小确定自己的接收窗体

   大小,然后通知对方以确定对方的发送窗体的上限。

5-1.包校验和16位,包含首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。

5-2.紧急指针16位,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。

6-1.可选选项24位,类似IP,是可选选项。

6-2.填充8位,使选项凑足32位。

7-1.用户数据……

能够看出,每一个IP包至少要20字节的头部长度,这些与下载内容无关,加上眼下多数传输,包含http协议(就是IE直接下载),都是基于

TCP协议的,所以IP包裹还要从用户数据中扣除20字节的TCP包头,这里已经是40字节,加上其它程序的连接,状态确认等等包裹,因

而算出来要比理论值要小。

另外网络环境(包含稳定因素和传输节点的转发率)也是影响下载速度的重要原因……

python链接:https://www.cnblogs.com/baihualin/p/10730513.html
转自:https://baijiahao.baidu.com/s?id=1623342279899809678&wfr=spider&for=pc
转自:https://blog.csdn.net/qq_36607836/article/details/88627956


http://chatgpt.dhexx.cn/article/xQ4t613D.shtml

相关文章

HTTP数据包详解

1. HTTP报文格式 HTTP由请求和响应两部分组成,所以对应的也有两种报文格式。下面分别介绍HTTP请求报文格式和HTTP响应报文格式。 HTTP请求报文格式 以上表格中,第1行为“请求行”,第2、3、4行为“请求头部”,第5行为空行&#xff…

python构造数据包库_scapy构造数据包

一、进入scapy交互界面 在终端下输入:scapy ,进入交互界面: 二、查看scapy已经实现的网络协议 ls()         列出scapy中已实现的网络协议 ls(协议类型)     查看某个协议头部字段格式 lsc()        列出scapy中可以使用的命令或函数,比如嗅探时,我们经常…

Netty自定义数据包

自定义数据包 粘包现象:两个数据包连在一起,导致无法区分。 分包现象:一个数据包中的数据被间隔。 粘包和分包出现的原因是:没有一个稳定数据结构。 数据包的结构: 自定义数据包包头模块号命令号长度数据 包头&#…

数据包知识

ARP 全称:Address Resolution Protocol 地址解析协议 ARP请求 数据包的目的地址是(ff:ff:ff:ff:ff:ff),这是以太网中的广播地址, 所有发送到这个地址的数据包都会被广播到当前网段中的所有设备。这个数据 包中以太网…

数据帧和数据包解读

数据帧和数据包解读 文章目录 数据帧和数据包解读一、数据帧1.什么是数据帧2.数据帧的组成 二、数据包1.什么是数据包2.数据包的组成 一、数据帧 1.什么是数据帧 就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾…

路径规划(一) —— 环境描述(Grid Map Feature Map) 全局路径规划(最优路径规划(DijkstraA*star) 概率路径规划(PRMRRT))

路径规划问题就是把机器人的工作环境量化的描述出来,让机器人知道哪里可以走,哪里不可以走,从而规划出一条可行的轨迹,并且对于轨迹本身进行优化 环境的描述 对于环境的描述,我们一般使用两种方法——Grid map 和 Fe…

路径规划基本理论

路径规划有三个组成部分:空间表示、搜索和启发式算法, 空间表示 空间表示意思就是在执行路径规划之前,为目标构建地图环境。执行任何类型的路径规划,都需要先将地图环境离散化为图形。为了提高路径规划的效果,可以将地…

导航和路径规划

导航技术前言: 导航技术的移动机器人技术的核心和关键技术。自主移动机器人的导航就是让机器人可以自主按照内部预定的信息,或者依据传感器获取外部环境进行相应的引导,从而规划出一条适合机器人在环境中行走的路径。定位,就是机器…

基于采样的路径规划方法

与基于图搜索的方法相比,基于采样的路径规划算法不需要显式构建整个配置空间和边界。 0.概念 Complete Planner(完备规划器) Probabilistic Complete Planner(概率完备的规划器) Resolution Complete Planner&#xf…

路径规划算法:动态规划

如上图所示的实例中,寻找点A到点E代价最小的路径,这是典型的动态规划的应用场景,逆向寻优,正向求解一般分为3步,即三层循环: 第一层循环:遍历每一个阶段; 第二层循环:遍…

ROS 路径规划

目录 一、ROS路径规划算法【转】 二、机器人局部避障的动态窗口法(dynamic window approach) 三、自动驾驶路径规划DWA算法原理解析【转】 0、采样速度 1、oscillation cost function: 2、twirling cost function 3、obstacle function ​4、goal cost function 5. go…

路径规划算法概论

前言:真实世界中人类的路径规划是对记忆信息和实时感知信息综合分析的过程,在虚拟技术中属于行为控制层级的技术。 一,机器人路径规划分类: 1.全局路径规划(环境完全已知) 2.局部路径规划(环境未…

自动驾驶路径规划概况

文章目录 前言介绍1. 路径规划在自动驾驶系统架构中的位置2. 全局路径规划的分类2.1 基础图搜索算法2.1.1 Dijkstra算法2.1.2 双向搜索算法2.1.3 Floyd算法 2.2 启发式算法2.2.1 A*算法2.2.2 D*算法 2.3 基于概率采样的算法2.3.1 概率路线图(PRM)2.3.2 快…

利用matlab来进行路径规划,matlab路径规划系列

前言:本博客将结合常用的路径规划算法进行matlab讲解。 一、路径规划问题所需操作 1.生成地图 告诉电脑你的当前地图环境。比如一个迷宫。这里面就涉及一些图像处理的内容,以及如何把地图转换为matlab数据 例子: 有一张原始地图: 现在要将这图片导入matlab中,转换为matlab…

AGV路径规划方法——A*算法

一、简单理解 它用来表示从当前方块到终点方块大概需要走多少步 b站视频链接 二、文献描述 1、基于时间窗的多AGV调度策略研究 冯鲁波. 基于时间窗的多AGV调度策略研究[D].四川大学,2021.DOI:10.27342/d.cnki.gscdu.2021.000278. 2.AGV自动运输系统调度及路径规划的研…

路径规划基本介绍(一)

一、路径规划的作用 路径规划主要是让目标对象在规定范围内的区域内找到一条从起点到终点的无碰撞安全路径。路径规划中有静态路径规划以及动态路径规划。这里仅针对静态路径规划方法进行简单的介绍,以下路径规划仅指在静态环境下的路径规划。 在进行路径规划的时候…

java 路径规划_应用内路径规划的简单实现

前言 华为Map Kit提供的路径规划API是一套以HTTPS形式提供的步行、骑行、驾车路径规划以及行驶距离计算接口,通过JSON格式返回路径查询数据,提供路径规划能力。 路径规划具体提供如下功能: 步行路径规划 API提供100km以内的步行路径规划能力。…

协同路径规划

目录 1. 背景介绍2. 现有的解决方案2.1. 遗传算法解决组合优化问题2.2. DARP STC 规划多车协同路径2.2.1. DARP: Divide Areas Algorithm for Optimal Multi-Robot Coverage Path Planning2.2.2. STC : Spanning Tree Coverage (STC) Algorithm 1. 背景介绍 区别与点对点的路…

arcgis发布路网路径规划服务

1、准备路网数据 导入文件地理数据库中(个人地理数据库会出问题) 2、开启编辑后打断相交处 我的数据带高度字段,所以是分高度打断 当然再用CG工具箱的工具更完美 2.1 如果需要路径返回高程才需要这一步

路径规划(path planning)

智能车辆有了行驶任务,智能车辆的路径规划就是在进行环境信息感知并确定车辆在环境中位置的基础上,按照一定的搜索算法,找出一条可通行的路径,进而实现智能车辆的自主导航。 路径规划的方法根据智能车辆工作环境信息的完整程度&a…