【网络】TCP报文头部

article/2025/4/25 16:05:06

目录

源端口、目的端口

序号()Seq

确认号

数据偏移(头部长度)

URG

ACK

PSH

RST

SYN

FIN

窗口大小

校验和

紧急指针

选项部分

                最大报文段长度 MSS

                窗口扩大

                时间戳

最大报文段长度(MSS)

窗口扩大

时间戳


源端口、目的端口

        告知主机该报文段是来自哪里,以及传给那个上层协议或者应用程序的

序号()Seq

        表示该报文段所发送数据的第一个字节的编号,在TCP连接中所传输字节流的每一个字节都会按顺序编号,由于序列号是由32位表示,所以每2^32个字节,就会产生序列号回绕,再次从0开始

        ACK=Seq+1

确认号

        表示接收方期望收到发送方下一个报文段的第一个字节数据的编号,也就是告诉发送方:我希望你下次发送的数据的第一个字节数据的编号为此确认号

数据偏移(头部长度)

        表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要制定这个TCP报文段到底有多长,他指出TCP报文段的数据起始距离距离TCP报文段的起始处有多远

URG

        表示本报文中发送的数据是否包含紧急数据,后面的紧急指针字段周游荡URG=1才有效

ACK

        确认序号有效,只有ACK=1的时候,前面的确认号字段才有效,TCP规定,建立连接后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段

PSH

        表示接收方应该尽快将这个报文交给应用层,为后续数据腾出空间。如果为1,表示对方应当立即吧数据交给上层应用,而不是缓存起来,如果应用程序不将收到的数据读走,就会一直停留在TCP接收缓冲区中

RST

        如果收到RST=1的报文,说明与主机的连接出现严重错误(如主机崩溃),必须释放连接,然后重新建立连接

SYN

        建立一个新连接。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段,当SYN=1,ACK=1时,表示对方同意建立连接。

        SYN=1,说明这是一个请求建立连接或同意建立连接的报文

FIN

        断开一个连接,表示通知告知对方本段要关闭连接了,标记数据是否发送完毕,当FIN=1,表示告诉对方“我的数据已经发送完毕,你可以释放连接了”,代FIN标志的TCP报文段称为结束报文段

窗口大小

        表示现在允许对方发送的数据量,也就是告诉对方,本报文段确认号开始允许对方发送的数据量,到达此值,需要ACK确认后才能继续发送数据

校验和

        通过CRC算法提供额外的可靠性

紧急指针

        标记紧急数据在数据字段中的位置

选项部分

        最大长度可以格局TCP首部长度进行推算

                最大报文段长度 MSS

                窗口扩大

                时间戳

最大报文段长度(MSS)

        指明自己期望对方发送的TCP报文段时那个数据字段的长度。数据字段的长度加上TCP首部的长度才等于整个TCP报文段的长度。

窗口扩大

        由于TCP首部的窗口大小字段长度是16位,但是随着时延和带宽比较大的通信产生,需要更大的窗口来满足性能和吞吐率,所以产生了这个窗口扩大选项

时间戳

        可以用于计算RTT(往返时间),对方发送TCP报文时,吧当前的书剑值放入时间戳字段,接受方收到后发送确认报文时,把这个时间错字段的值复制到确认报文中,当发送方收到确认报文后即可计算出RTT。

        也可以用于防止回绕序号PAWS,因为序列号用32位表示,每2^32个序列号就会产生回绕,那么使用时间戳字段就很容易区分相同序列号的不同报文

参考文章

TCP报文头部_wdirdo的博客-CSDN博客_tcp报文头

TCP协议详解(一):TCP头部结构_baidu_17611285的博客-CSDN博客_tcp头部

https://blog.csdn.net/weixin_45393094/article/details/104965561?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164523439216781685368699%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164523439216781685368699&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-104965561.pc_search_insert_ulrmf&utm_term=%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E5%92%8C%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B&spm=1018.2226.3001.4187


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

相关文章

TCP头部结构详解

tcp头部信息出现在每个tcp报文段中,用于指定通信的源端端口,目的端口,管理tcp连接等。tcp头部结构如下图所示: tcp头部结构 1、16位端口号:告知主机该报文段来自哪里(源端口)以及传给哪个上层协议或应用程…

TCP头部详解

1. TCP的定义 TCP提供一种面向连接的、可靠的字节流服务。 面向连接: 两个使用TCP的应用(通常是一个客户和一个服务)在彼此交换数据之前必须建立一个TCP连接。 TCP提供可靠性的方式: 1)应用数据被分割成TCP认为最适合发送的数据块; 2)当…

TCP协议详解(一):TCP头部结构

TCP字节流服务 网络传输层中,TCP是面向连接、可靠的、字节流传输。 TCP协议通信双方必须先建立连接,通信双方必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP是全双工的,即双方的数据读写可通过一个连接…

Python 变量的命名规范

引言 混乱或错误的命名不仅让我们对代码难以理解,更糟糕的是,会误导我们的思维,导致对代码的理解完全错误。相反,良好的命名,则可以让我们的代码非常容易读懂,也能向读者正确表达事物以及逻辑的本质&#x…

matlab中变量命名规则,Matlab变量及命名规则

Matlab变量及命名规则 Matlab变量及命名规则 Matlab中所有的变量都是用矩阵形式来表示的,即所有的变量都表示一个矩阵或者一个向量。其命名规则如下: (1)变量名对大小写敏感; (2)变量名的第一个字符必须为英文字母,其长度不能超过…

matlab变量名的命名规则

简述Java中变量的命名的规则? 首字母只能是字母下划线‘_’‘$’符号(变量名首字母不能是数字!!!) 其余部分任意多的:数字字母下划线‘_’‘$’符号 Java命名规则 局部变量和成员变量 我说我知道的约定俗成&#xff1a…

vb变量名的命名规则

求十分详细的的java变量命名规范 您好,提问者: 在java编程中命名规范是统一的,而且老外发明的东西是没有中文的,严格区分大小写。 规范:以字母、下划线、$符号组成,不能以数字开头,声明类跟变量…

python变量名有哪些_python变量名命名规则

原博文 2020-03-21 11:07 − 一.python变量名命名规则: 1.变量名通常由字母,数字,下划线组成; 2.数字不能作为变量名开头; 3.不能以python中的关键字命名; 4.变量名要有意义; 5.不要用汉字和拼音去命名; 6.变量名要区分大小写; 7.推荐使用驼峰型(GuessAge或guessAge)和…

Tips:一个字符占几个字节?

《JAVA啃骨头》之 Javascript 章节 Tips:一个字符占几个字节? ASCII码:   一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,…

字节与字符的区别 一个字母占一个字节(学习记录)

字节(Byte):字节是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。 字符(Character):计算机中使用的字母、数字、字和符号,比如’A’、‘B’、‘$’、…

一个指针占几个字节?原理是什么呢?

一个指针占几个字节的问题,感觉会C语言的同学都知道。但是在面试过程中,面了几个同学,不是答忘记了,就是两个、四个的瞎蒙。。。 那么,一个指针到底占几个字节呢? 其实,这个问题很简单&#x…

一个汉字几个字符?几个字节?字符与字节关系傻傻分不清

一个汉字一个字符!不信你去java输入char ch 汉’看看报不报错 学习java也有段时间了,一直都是毛里毛糙的学习,但都是停留在略懂阶段,似乎会,实际上差得远了,,还是要沉下来心一点一点学呀&…

Office 2016更新后 Word 2016、Excel 2016、Power 2016、Visio 2016、OneNote 2016图标全部消失问题解决

【问题描述】 打开办公软件后显示Office在更新,更新完成后开始屏幕固定的 Word 2016、Excel 2016、Power 2016、Visio 2016、OneNote 2016图标全部消失了。 全局搜索只能搜索到Word、Excel、Power、Visio、OneNote,但已经不是2016版的了,而是…

关于修复Office图标白色的问题

问题: Offcie的Word和Excel的文件的部分后缀文件(.doc .docx .xls .xlsx)变成白色,且无法通过默认打开方式修改图标 可能原因: 以前使用过WPS,卸载后,在注册表没有删除干净 这个E:\Software\WPS Office\....目录和指…

卸载wps后桌面上的office文件图标变成了白色

文章目录 卸载wps后桌面上的office文件图标变成了白色第一步:第二步 卸载wps后桌面上的office文件图标变成了白色 作者:wyf 第一步: **win(图标)R,输入regedit,点击确定**第二步 2、找到HKEY_CLASSES_RO…

提取 Office 2016 工具栏图标

Office 图标精美漂亮,作为微软的官方图标,与 Windows 具有一致的风格,但我们若想把这些图标用在自己的程序中,却并不容易,使用常规的提取程序资源的方法,根本得不到这些图标。 微软虽然没有把这些图标开放给…

office图标异常解决办法

问题描述: 前不久才重装过系统,可是没多久就出现了一个很恶心的问题:word文档、excel文档图标异常,显示的是下面这样: (造成这样的原因一般是装了 wps,卸载后又装了office) 打开…

office图标显示异常和新建时图标没有显示等问题解决

1.office图标显示异常问题解决方法 1>点击“开始” 2>在在运行命令行中输入“regedit”,找到regedit.exe执行文件,点击进入注册表 3>在左侧找到HKEY_CLASSES_ROOT目录,并展开: 4>删除其中一些注册表选项&#xff1…

卸载office后桌面上的word文件图标变成了白色

如图所示; 解决办法:适用Office2016/365中的Word、PowerPoint、Excel文件图标因安装WPS造成图标异常,显示为无法识别的程序图标,卸载、重装都不能修复,但能正常使用。 解决办法: 1、运行regedit&#xff0c…

修复Microsoft Office的Word、Excel、PPT丢失图标

文章目录 打开注册表Word注册表Excel注册表PPT注册表修复 使用注册表方式修复,删除Word、Excel、PPT的对应文件夹,那个丢失,就删除那个,然后修复 打开注册表 Windows R 打开电脑中的运行界面,输入命令回车: regedit …