计算机网络 (35)TCP报文段的首部格式

news2025/1/14 3:07:08

前言

       计算机网络中的TCP(传输控制协议)报文段的首部格式是TCP协议的核心组成部分,它包含了控制TCP连接的各种信息和参数。

一、TCP报文段的结构

       TCP报文段由首部和数据两部分组成。其中,首部包含了控制TCP连接的各种字段,而数据部分则是实际传输的数据。

二、TCP报文段首部格式

       TCP报文段首部的前20个字节是固定的,后面还可以根据需要增加最多40字节的选项部分。因此,TCP报文段首部的最小长度是20个字节,最大长度可以达到60个字节(当选项部分被完全使用时)。

1. 源端口和目的端口
  • 位置:报文段的前4个字节(源端口2个字节,目的端口2个字节)。
  • 作用:端口是传输层和应用层的服务接口,用于实现传输层的复用和分用功能。源端口是发送方进程的端口号,目的端口是接收方进程的端口号。
2. 序号
  • 位置:第5到第8个字节。
  • 作用:序号用于标识TCP连接中传送的字节流中的每一个字节。它是一个32位的无符号整数,范围从0到2^32-1。TCP在建立连接时,会为整个字节流设置一个起始序号,然后每个报文段都会携带一个序号,表示该报文段中数据的第一个字节在字节流中的位置。
3. 确认号
  • 位置:第9到第12个字节。
  • 作用:确认号用于表示接收方期望收到的下一个报文段的第一个数据字节的序号。它是接收方对发送方的确认,告诉发送方已经收到了哪些数据。确认号的值等于上一个已成功接收的报文段的序号加上该报文段的数据长度再加1。
4. 数据偏移
  • 位置:第13到第16个字节中的前4位(实际上是第13个字节的高半字节)。
  • 作用:数据偏移用于指示TCP报文段的首部长度,单位是32位字(即4字节)。由于首部中可能包含长度不确定的选项字段,因此数据偏移字段是必要的。数据偏移的最大值是15,对应的首部长度是60字节。
5. 保留字段
  • 位置:第13到第16个字节中的后6位。
  • 作用:保留字段用于今后可能的扩展,目前应置为0。
6. 控制位
  • 位置:第17个字节。

  • 作用:控制位包含了6个标志位,用于控制TCP连接的状态和行为。它们分别是:

    • URG(紧急位):当URG=1时,表示报文段中有紧急数据,应尽快传送。此时,紧急指针字段有效。
    • ACK(确认位):当ACK=1时,确认号字段有效。在连接建立后,所有的报文段都必须把ACK置为1。
    • PSH(推送位):当PSH=1时,接收方应尽快将报文段交付给应用进程,而不需要等到接收缓存满后再交付。
    • RST(复位位):当RST=1时,表示TCP连接中出现了严重错误,必须释放连接并重新建立。
    • SYN(同步位):在连接建立时用来同步序号。当SYN=1而ACK=0时,表示这是一个连接请求报文段;当SYN=1而ACK=1时,表示接受连接请求。
    • FIN(终止位):当FIN=1时,表示发送方已经没有数据要发送了,要求释放连接。
7. 窗口
  • 位置:第18到第19个字节。
  • 作用:窗口字段用于流量控制,表示接收方允许发送方发送的数据量(以字节为单位)。它是接收方根据自己的缓存空间大小来设置的。
8. 检验和
  • 位置:第20到第21个字节。
  • 作用:检验和字段用于检验TCP报文段的首部和数据部分在传输过程中是否发生变化。它是通过对首部和数据进行加和(通常采用补码和)来计算的。接收方在收到报文段后,也会进行相同的计算,并将结果与检验和字段进行比较,以验证数据的完整性。
9. 紧急指针
  • 位置:第22到第23个字节。
  • 作用:紧急指针字段仅在URG=1时有效,它表示报文段中紧急数据的字节数(从报文段数据的第一个字节开始计算)。紧急数据结束后就是普通数据。当接收方收到紧急数据后,会优先处理这些数据。
10. 选项
  • 位置:紧跟在紧急指针字段之后,长度可变,最长可达40字节。
  • 作用:选项字段用于扩展TCP的功能,可以包含多种选项,如最大报文段长度(MSS)、窗口扩大字段、时间戳、选择确认信息等。当选项字段的长度不是4字节的整数倍时,会使用填充字段来补齐。

总结

       TCP报文段的首部格式是TCP协议的核心组成部分,它包含了控制TCP连接的各种信息和参数。通过了解和分析这些字段,可以更好地理解TCP协议的工作原理和特性,从而更有效地进行网络编程和故障排查。

 结语     

不幸往往是性格的试金石

最强有力的人是能控制自己的人

!!!

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

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

相关文章

GelSight Mini视触觉传感器凝胶触头升级:增加40%耐用性,拓展机器人与触觉AI 应用边界

马萨诸塞州沃尔瑟姆-2025年1月6日-触觉智能技术领军企业Gelsight宣布,旗下Gelsight Mini视触觉传感器迎来凝胶触头的更新。经内部测试,新Gel凝胶触头耐用性提升40%,外观与触感与原凝胶触头保持一致。此次升级有效满足了客户在机器人应用中对设…

burpsiute的基础使用(2)

爆破模块(intruder): csrf请求伪造访问(模拟攻击): 方法一: 通过burp将修改,删除等行为的数据包压缩成一个可访问链接,通过本地浏览器访问(该浏览器用户处于登陆状态&a…

【ASP.NET学习】ASP.NET MVC基本编程

文章目录 ASP.NET MVCMVC 编程模式ASP.NET MVC - Internet 应用程序创建MVC web应用程序应用程序信息应用程序文件配置文件 用新建的ASP.NET MVC程序做一个简单计算器1. **修改视图文件**2. **修改控制器文件** 用新建的ASP.NET MVC程序做一个复杂计算器1.创建模型(…

Git 命令代码管理详解

一、Git 初相识:版本控制的神器 在当今的软件开发领域,版本控制如同基石般重要,而 Git 无疑是其中最耀眼的明珠。它由 Linus Torvalds 在 2005 年创造,最初是为了更好地管理 Linux 内核源代码。随着时间的推移,Git 凭借…

OpenCV实现基于交叉双边滤波的红外可见光融合算法

1 算法原理 CBF是*Cross Bilateral Filter(交叉双边滤波)*的缩写,论文《IMAGE FUSION BASED ON PIXEL SIGNIFICANCE USING CROSS BILATERAL FILTER》。 论文中,作者使用交叉双边滤波算法对原始图像 A A A, B B B 进行处理得到细节&#xff0…

项目实战--网页五子棋(用户模块)(1)

接下来我将使用Java语言,和Spring框架,实现一个简单的网页五子棋。 主要功能包括用户登录注册,人机对战,在线匹配对局,房间邀请对局,积分排行版等。 这篇文件讲解用户模块的后端代码 1. 用户表与实体类 …

机器学习之随机森林算法实现和特征重要性排名可视化

随机森林算法实现和特征重要性排名可视化 目录 随机森林算法实现和特征重要性排名可视化1 随机森林算法1.1 概念1.2 主要特点1.3 优缺点1.4 步骤1.5 函数及参数1.5.1 函数导入1.5.2 参数 1.6 特征重要性排名 2 实际代码测试 1 随机森林算法 1.1 概念 是一种基于树模型的集成学…

MySQL存储引擎、索引、索引失效

MySQL Docker 安装 MySQL8.0,安装见docker-compose.yaml 操作类型 SQL 程序语言有四种类型,对数据库的基本操作都属于这四种类,分为 DDL、DML、DQL、DCL DDL(Dara Definition Language 数据定义语言),是负责数据结构定义与数据…

WPF基础(1.1):ComboBox的使用

本篇文章介绍ComboBox的基本使用。 本篇文章的例子实现的功能:后端获取前端复选框中的选项之后,点击“确定”按钮,弹出一个MessageBox,显示用户选择的选项。 文章目录 1. 效果展示2. 代码逻辑2.1 前端代码2.2 后端代码 1. 效果展…

前端炫酷动画--文字(二)

目录 一、弧形边框选项卡 二、零宽字符 三、目录滚动时自动高亮 四、高亮关键字 五、文字描边 六、按钮边框的旋转动画 七、视频文字特效 八、立体文字特效让文字立起来 九、文字连续光影特效 十、重复渐变的边框 十一、磨砂玻璃效果 十二、FLIP动画 一、弧形边框…

android 官网刷机和线刷

nexus、pixel可使用google官网线上刷机的方法。网址:https://flash.android.com/ 本文使用google线上刷机,将Android14 刷为Android12 以下是失败的线刷经历。 准备工作 下载升级包。https://developers.google.com/android/images?hlzh-cn 注意&…

25/1/12 嵌入式笔记 学习esp32

了解了一下位选线和段选线的知识: 位选线: 作用:用于选择数码管的某一位,例如4位数码管的第1位,第2位) 通过控制位选线的电平(高低电平),决定当前哪一位数码管处于激活状…

探秘block原理

01 概述 在iOS开发中,block大家用的都很熟悉了,是iOS开发中闭包的一种实现方式,可以对一段代码逻辑进行封装,使其可以像数据一样被传递、存储、调用,并且可以保存相关的上下文状态。 很多block原理性的文章都比较老&am…

【Docker】入门教程

目录 一、Docker的安装 二、Docker的命令 Docker命令实验 1.下载镜像 2.启动容器 3.修改页面 4.保存镜像 5.分享社区 三、Docker存储 1.目录挂载 2.卷映射 四、Docker网络 1.容器间相互访问 2.Redis主从同步集群 3.启动MySQL 五、Docker Compose 1.命令式安装 …

Bootstrap 前端 UI 框架

Bootstrap官网:Bootstrap中文网 铂特优选 Bootstrap 下载 点击进入中文文档 点击下载 生产文件是开发响应式网页应用,源码是底层逻辑代码,因为是要制作响应式网页,所以下载开发文件 引入 css 文件, bootstrap.css 和 …

Docker与微服务实战2-基础篇

1.学习一门新技术的理念 1.是什么 2.能干吗 3.去哪下载 4.怎么玩 5.永远的helloworld跑起来一次 AB法则 before 与 after 的对比 2.为什么会有Docker出现 3.docker理念 解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化…

蓝桥杯_B组_省赛_2022(用作博主自己学习)

题目链接算法11.九进制转十进制 - 蓝桥云课 进制转换 21.顺子日期 - 蓝桥云课 时间与日期 31.刷题统计 - 蓝桥云课 时间与日期 41.修剪灌木 - 蓝桥云课 思维 51.X 进制减法 - 蓝桥云课 贪心 61.统计子矩阵 - 蓝桥云课 二维前缀和 71.积木画 - 蓝桥云课 动态规划 82.扫雷 - 蓝桥…

CES 2025|美格智能高算力AI模组助力“通天晓”人形机器人震撼发布

当地时间1月7日,2025年国际消费电子展(CES 2025)在美国拉斯维加斯正式开幕。美格智能合作伙伴阿加犀联合高通在展会上面向全球重磅发布人形机器人原型机——通天晓(Ultra Magnus)。该人形机器人内置美格智能基于高通QC…

PyMysql 01|(包含超详细项目实战)连接数据库、增删改查、异常捕获

目录 一、数据库操作应用场景 二、安装PyMysql 三、事务的概念 四、数据库的准备 五、PyMysql连接数据库 1、建立连接方法 2、入门案例 六、PyMysql操作数据库 1、数据库查询 1️⃣查询操作流程 2️⃣cursor游标 ​3️⃣查询常用方法 4️⃣案例 5️⃣异常捕获 …

了解Node.js

Node.js是一个基于V8引擎的JavaScript运行时环境,它允许JavaScript代码在服务器端运行,从而实现后端开发。Node.js的出现,使得前端开发人员可以利用他们已经掌握的JavaScript技能,扩展技能树并成为全栈开发人员。本文将深入浅出地…