TCP头部详解

article/2025/4/26 1:55:57

1. TCP的定义

TCP提供一种面向连接的、可靠的字节流服务。

面向连接: 两个使用TCP的应用(通常是一个客户和一个服务)在彼此交换数据之前必须建立一个TCP连接。

TCP提供可靠性的方式:

1)应用数据被分割成TCP认为最适合发送的数据块;

2)当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段;

3)当TCP收到来自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒;(Delayed-ACK)

4)TCP将保持它首部和数据的校验和;

5)既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能失序,因此TCP报文段的到达也可能失序。如果有必要,TCP将对收到的数据进行重新排序;

6)IP数据报可能会发生重复,TCP的接收端必须丢弃重复的数据;

7)TCP提供流量控制;TCP连接的每一方都有固定大小的缓冲控件,TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这将防止较快主机致使减慢主机的缓冲区溢出;

TCP的字节流:

两个应用程序通过TCP连接交换8bit字节构成的字节流,TCP不在字节流中插入记录标识符,这就是字节流服务。

2. TCP头部详解

1)源端口和目的端口:用于寻找发端和收端的应用程序。这两个值加上IP首部的源端IP和目的端IP唯一确定一个TCP连接;

2)序号(Seq):标识从TCP发端向TCP收端发送的数据字节流,它标识在这个报文段中的第一个数据字节的序号。如果将字节流看作在两个应用程序间的单向流动,

则TCP用序号对每个字节进行计数。序号是32bit的无符号数,序号到达2的32次方减一后又从0开始。SYN标志消耗一个序号;

3)确认序号(ACK):如果上次成功收到数据字节序号加一。只有ACK标志为1时确认序号才有效,ACK = Seq + 1

4)数据偏移:标识该TCP头部有多少个32bit(4字节),4比特最大表示15,TCP头部最长为60字节

5)窗口:TCP流量控制的手段,告诉对方,我的TCP接收端缓冲区还能容纳多少个字节,这样对方能控制发送数据的速度;

6)校验和:由发送端填充,接收端对TCP报文执行CRC算法,以检验TCP报文段是否损毁。不仅校验头部,还包括数据部分;

7)紧急指针:也称为紧急偏移。紧急指针是一个正的偏移量,和序号字段的值相加表示最后一个紧急指针的下一字节的序号。是相对于当前序号的偏移。紧急指针

是发送端向接收端发送紧急数据的方法;

8)六个标志位:

        a)URG:表示紧急指针是否有效;

        b)ACK:表示确认号是否有效,携带ACK标志的数据报文段为确认报文段

        c)PSH:提示接收端的应用程序应该立即从TCP接受缓冲区中读走数据,为接受后数据腾出空间;

        d)RST:表示要求对方重新建立连接,携带RST标志位的TCP报文段称为复位报文段

        e)SYN:  表示请求建立一个连接,携带SYN标志的TCP报文段称为同步报文段

        f)FIN:通知对方本端要关闭了,带FIN标志的TCP报文段称为结束报文段

9)TCP头部选项:头部选项是一个可变长的信息,这部分最多包含40个字节(前面20字节是固定的)

头部选项的实际运用:

        a)最大报文传输段(Maxinum Segment Size——MSS,后续进行详解

        b)窗口扩大选项(window scaling)

        c)选择确认选项(Selective Acknowledgements——SACK)

        d)NOP


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

相关文章

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 …

将默认打开方式改成Office后,桌面办公软件图标变成白板

(注意:修改注册表有风险,请谨慎使用) 通过注册表解决。关键看图标是否仍然关联WPS,如果有则删除相关关联参数 步骤1:同时按WinR键,输入regedit打开注册表 步骤2:在注册表中打开HKEY_CLASSES_ROOT​文件夹…

新建文件没有word、ppt、excel,office图标显示为白色,不能正常显示

新建文件没有word、ppt、excel,office图标显示为白色,不能正常显示 解决办法: 1、按“winR”输入“regedit”运行,打开系统注册表; 2、找到HKEY_CLASSES_ROOT下的.doc、.docx、.ppt、.pptx、.xls、.xlsx,删…