TCP首部格式_基本知识

news2024/11/27 4:40:05

TCP首部格式

表格索引:

源端口目的端口
序号
确认号
数据偏移保留 ACK等 窗口
检验和紧急指针

在这里插入图片描述

TCP报文段首部格式图


源端口与目的端口:
各占16位

序号:占32比特,取值范围0~232-1。当序号增加到最后一个时,下一个序号又回到0。用来指出本TCP报文段数据载荷的第一个字节的序号

确认号:占32比特,取值范围0~232-1。当序号增加到最后一个时,下一个序号又回到0。用来指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认


数据偏移:

  • 占4比特,该字段的取值以4字节为单位
  • 指出TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处有多远,这实际上指出了TCP报文段的首部长度
    在这里插入图片描述

保留:

  • 占6比特
  • 保留为今后使用
  • 目前置为0




窗口:

  • 占16比特,该字段的取值以字节为单位
  • 指出发送本报文段的一方的接收窗口的大小,即接收缓存的可用空间大小,这用来表征接收方的接收能力.
  • 在计算机网络中,经常用接收方的接收能力的大小来控制发送方的数据发送量,这就是所谓的流量控制

检验和:
  • 占16比特
  • 用来检查整个TCP报文段在传输过程中是否出现了误码

在这里插入图片描述

发送方检验和计算方法:

(1)将TCP首部中检验和字段的值置为0。
(2)将伪首部、TCP首部以及数据载荷这三部分划分成若干个2字节的字。若伪首部、TCP首部以及数据载荷这三部分的总长度不是偶数个字节,则在最后添加1个“全0”字节。
(3)对划分出的全部2字节的字进行反码算数运算求和,并将求和结果取反码。
(4)将步骤③得到的结果写入TCP首部中的检验和字段。

与IPv4数据报首部检验和的计算方法类似,

差别仅在于前者只对首部进行检验。

接收方通过检验和字段的值判断TCP报文段在传输过程中是否误码的方法:

(1)给接收到的TCP报文段前面添加一个12字节的伪首部。
(2)将伪首部、TCP首部以及数据载荷这三部分划分成若干个2字节的字。
(3)对划分出的全部2字节的字进行反码算数运算求和,并将求和结果取反码。
(4)若步骤③得到的结果为0,则表示TCP报文段在传输过程中没有误码。否则,表示出现了误码。




确认标志位ACK:只有当ACK取值为1时,确认号字段才有效。ACK取值为0时,确认号字段无效。TCP规定:在TCP连接建立后,所有传送的TCP报文段都必须把ACK置1


同步标志位SYN:

  • 用于TCP“三报文握手”建立连接
  • SYN=1且ACK=0时,表明这是一个TCP连接请求报文段
  • 对方若同意建立连接,则应在响应的TCP报文段的首部中使SYN=1且ACK=1
  • 综上所述,SYN为1的TCP报文段要么是一个连接请求报文段,要么是一个连接响应报文段。

终止标志位FIN:

  • 用于TCP“四报文挥手”释放连接
  • FIN=1时,表明此TCP报文段的发送方已经将全部数据发送完毕,现在要求释放TCP连接

复位标志位RST:

  • 用于复位TCP连接
  • RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立连接
  • RST置1还用来拒绝一个非法的TCP报文段或拒绝打开一个TCP连接

推送标志位PSH:

  • 发送方TCP把PSH置1,并立即创建一个TCP报文段发送出去,而不需要积累到足够多的数据再发送。
  • 接收方TCP收到PSH为1的TCP报文段,就尽快地交付给应用进程,而不再等到接收到足够多的数据才向上交付。
出于效率的考虑,TCP的发送方可能会延迟发送数据,而TCP的接收方可能会延迟向应用进程交付数据。这样可以一次处理更多的数据。
但是当两个应用进程进行交互式通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下,应用进程可以通知TCP使用推送(PUSH)操作。

紧急标志位URG:
  • 当URG=1时,紧急指针字段有效。
  • 当URG=0时,紧急指针字段无效。

紧急指针:
  • 占16比特,以字节为单位,用来指明紧急数据的长度。
  • 发送方有紧急数据时,可将紧急数据“插队”到发送缓存的最前面,并立刻封装到一个TCP报文段中进行发送。紧急指针会指出本报文段数据载荷部分包含了多长的紧急数据,紧急数据之后是普通数据。
  • 接收方收到紧急标志位为1的TCP报文段,会按照紧急指针字段的值从报文段数据载荷中取出紧急数据并直接上交应用进程,而不必在接收缓存中排队

选项与填充:
  • 选项是一些可选择添加的字段,如窗口扩大选项等等
  • 填充是若选项字段的长度加上20字节固定首部的长度不能被4字节整除时,需要填充相应数量的比特0,以确保首部长度能被4字节整除。

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

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

相关文章

监测tcp连接状态

using System; using System.Collections.Generic; using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks;namespace 检测tcp连接状态 {public class TCPClient{private TcpClient client;private bool con…

【优选算法系列】【专题三二分查找】第二节.35. 搜索插入位置和69. x 的平方根

文章目录 前言一、搜索插入位置 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写 1.2.3 题目总结二、x 的平方根 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写 …

一文7个步骤教你搭建测试web测试项目实战环境,

​今天小编,给大家总结下web 测试实战的相关内容,一起来学习下吧! web项目实战可按顺序依次为:【搭建测试环境】、【需求评审】、【编写测试计划】、【分析测试点.编写测试用例】、【用例评审】、【执行用例提bug】、【测试报告】…

SQL Server的安装和首个库的创建

一、熟悉SQL Server的安装环境; 1.安装Microsoft的数据库管理系统SQL Server 2022 先把SQL Server 2022下载好后进行解压后出现以下界面然后点击基本进行安装 然后会出现以下界面: 一步步按照提示往下走即可,把SQL Server 2022安装完成后再…

深入浅出之中央空调体系架构及楼宇自控系统

一、关于建筑节能 1、建筑能耗 在中国,建筑能耗占社会总能耗45.5%。来源:《中国建筑能耗研究报告(2022)》 2、空调、采暖、照明占比最高 建筑节能是指在保证、提高建筑舒适性和生活质量的条件下,在建筑物使用的全过…

ctfshow sql 186-190

186大小写绕过 1 order by 3-- 发现union select被过滤,用大小写来绕过 1 union seleCT 1,2,database() --1 union seleCT 1,2,table_name from information_schema.tables where table_schemactfshow_web --1 union seleCT 1,2,column_name from information_schem…

EasyRecovery14破解版 v14.0.0.4 官方免费版(含激活码)

软件介绍 EasyRecovery14高级版是一款功能强大的数据恢复软件,软件对比家庭版本它的使用更加广泛,在恢复数据方面软件可以做到最完整的损失恢复,无论是文档、音乐、软件都可以一键恢复,同时软件还可以对文件的名字、后缀进行修改…

Fluent常见问题:获取在某个范围内物理量的分布

问题: 需要获得在某个范围内物理量的分布情况,例如有多少体积的流体在某个速度区间内,以及分布位置,需要如何操作? 解决方案: 曲面上的分布 1 创建等值切面(iso-clip) 在等值切面…

Photoshop最新版PS2024安装使用 Ver25.0.0

Photoshop,这个是长红了几十年的软件,我大概从它的3.0版本开始用,目前已迭代到25.0,但一直还在用CS4/11.0版本,一直秉持着够用即可的原则,因为不是专业的平面设计人员,能够简单PP图片就行。&…

12.5 作业

1, 以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在,动物园里有…

文件管理和操作工具Path Finder mac功能介绍

Path Finder mac是一款Mac平台上的文件管理和操作工具,提供了比Finder更丰富的功能和更直观的用户界面。它可以帮助用户更高效地浏览、复制、移动、删除和管理文件,以及进行各种高级操作。 Path Finder mac软件功能 - 文件浏览:可以快速浏览文…

Vue--第六天

vuex概述: 组件通信感觉有点白雪。。。。。。。。。。 创建项目: 为了学习简介,先选几个,后续是要勾选很多的 建好后再进行组件导入 创建空仓库: 使用: 上面是store访问,下面是辅助函数的方式…

凯捷对汽车数字化的思考

标题凯捷(中国)对汽车行业数字化转型的探索 凯捷中国数字化研发团队有超过1200名专业顾问致力于数字化相关项目,分布在北京、天津、沈阳、呼和浩特、上海、昆山、杭州、广州、深圳等地,运用Rightshore交付模式和通过专业顾问为客…

2023-12-05 Qt学习总结 (AI辅助) 未完待续

点击 <C 语言编程核心突破> 快速C语言入门 Qt学习总结 前言一 Qt是什么二 Qt开发工具链三 Qt编程涉及的术语和名词四 Qt Creator使用五 hello Qt!六 Qt控件和事件七 Qt信号和槽八 Qt自定义信号和槽九 Qt QObject基类十 QWidget基类十一 QMainWindow基类十二 QLabel文本框…

Pandas,一个Python办公神器?

微信公众号&#xff1a;愤怒的it男&#xff0c;超多Python技术干货文章。 Pandas库基于NumPy库开发&#xff0c;是一个免费、开源的第三方Python库&#xff0c;与Numpy、Matplotlib并称Python数据分析三剑客。Pandas提供了两种数据结构&#xff0c;分别是Series&#xff08;一维…

SeaTunnel引擎下的SQL Server CDC解决方案:构建高效数据管道

在快速发展的数据驱动时代&#xff0c;实时数据处理已经成为企业决策和运营的关键因素。特别是在处理来自各种数据源的信息时&#xff0c;如何确保数据的及时、准确和高效同步变得尤为重要。本文着重介绍了如何利用 SqlServer CDC 源连接器在 SeaTunnel 框架下实现 SQL Server …

arcgis投影栅格不可用

1、使用【投影栅格】工具进行栅格数据投影转换时报错。 解决方法&#xff1a;如果使用的是arcgis10.5及以下的版本&#xff0c;则需要更换更高的版本&#xff0c;因为这个是软件问题&#xff0c;需要更换到arcgis10.6及以上版本&#xff0c;更高级别的版本已经修复了这个问题。…

Selenium自动化测试 —— 模拟鼠标键盘的操作事件

鼠标操作事件 在实际的web产品测试中&#xff0c;对于鼠标的操作&#xff0c;不单单只有click()&#xff0c;有时候还要用到右击、双击、拖动等操作&#xff0c;这些操作包含在ActionChains类中。 ActionChains类中鼠标操作常用方法&#xff1a; 首先导入ActionChains类&#…

基于Springboot的社区医院管理服务系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的社区医院管理服务系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

关于神舟-战神TA5NS系统重装问题

加装固态卡在log处无法开机问题 下面是我的步骤 1.按f7选择pe安装系统&#xff0c;然后发现卡在战神log处不转动 2.下载驱动 TA5NS驱动地址 下载RAID驱动&#xff08;如果没有私信我&#xff0c;我网盘里有&#xff09;&#xff0c;拷到u盘中&#xff0c;然后进入pe系统里面…