TCP头部结构

article/2025/6/8 15:45:23

TCP头部信息出现再每个TCP报文段中,用于指定通信的 源端端口,目的端口,管理TCP连接等。

1、TCP固定头部结构

                                            

16位端口号:告知主机该报文段是来自哪里(源端口)以及传给哪个上层协议或应用程序(目的端口)的。请注意:进行TCP通信时,客户端通常使用系统自动选择的临时端口号,而服务器则使用知名服务端口号。

32位序号(seq):一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号。

 

前面一张图是相对值,后面是真正的序号,图中的7是1+6("hello"6个字节)就是所说的字节流的每个字节的编号

32位确认号(ack):用作对另一方发送来的TCP报文段的响应。其值是收到的TCP报文段的序号值加1。

4位头部长度:标识该TCP头部有多少个32bit字(4字节)。因为4位最大能表示15,所以TCP头部最长是60字节。

6位标志位:1)URG:表示紧急指针是否有效  2)ACK:表示确认号是否有效  3)PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间(如果应用程序不将接收到的数据读走,它们就会一直停留在TCP接收缓冲区中) 4)RST:表示要求对方重新建立连接,我们称携带RST标志的TCP报文段为复位报文段   5)SYN:表示请求建立一个连接。我们称携带SYN标志的TCP报文段为同步报文段   6)FIN:表示:通知对方本端要关闭连接了,我们称携带FIN的TCP报文段为结束报文段

16位窗口大小:是TCP流量控制的一个手段,该处的窗口指的是接收通告窗口。它告诉对方本端的TCP接收缓冲区还能容纳多少字节的数据,这样对方就可以控制发送数据的速度

16位校验和:由发送端填充,接收端对TCP报文段执行CRC算法以检验TCP报文段在传输过程中是否损坏。注意:这个校验不仅包括TCP头部,也包括数据部分,这也是TCP可靠传输的一个重要保障

16位紧急指针:是一个正的偏移量。TCP的紧急指针是发送端向接收端发送紧急数据的方法

2、TCP头部选项:TCP头部的最后一个选项字段是可变长的可选信息。这部分最多包含40字节,因为TCP头部最长是60字节(其中还包含前面讨论的20字节的固定部分),下图是TCP头部选项结构

                             

选项的第一个字段kind说明选项的类型。有的TCP选项没有后面的两个字段,仅包含1个字节的kind字段。第二个字段length(如果有的话)指定该选项的总长度,该长度包括kind字段和length字段占据的2字节。第三个字段info(如果有的话)是选项的具体信息。常见的TCP选项有7种,如下:

                                      

kind = 0 是选项表结束选项。

kind = 1 是空操作(nop)选项,没有特殊含义,一般用于将TCP选项的总长度填充为4字节的整数倍

kind = 2 是最大报文段长度选项

kind = 3 是窗口扩大因子选项,该选项只能出现在同步报文段中,否则将被忽略

kind = 4 是选择确认选项,该选项用在连接初始化时,表示是否支持SACK技术,因为TCP通信时,如果某个TCP报文段丢失,则TCP模块会重传最后被确认的TCP报文段后续的所有报文段,这样原先已经正确传输的YCP报文段也可能重复发送,从而降低了TCP性能,所以利用SACK技术,使TCP模块只重新发送丢失的TCP报文段,不用发送所有未被确认的TCP报文段

kind = 5 是SACK实际工作的选项,该选项的参数告诉发送方本端已经接收到并缓存的不连续的数据块,从而让发送端可以据此检查并重复丢失的数据块

kind = 8 是时间戳选项,该选项提供了较为准确的计算通信双方之间的回路时间的方法,从而为TCP流量控制提供重要的信息。

 

 

 


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

相关文章

TCP头部解析

一一解析 SourcePort(源端口)和DestinationPort(目的端口):各占2个字节,端口是运输层与应用层的服务接口,运输层的复用和分用功能都要通过端口才能实现。 注:TCP的包是没有IP地址的,那是IP层上的事。但是有源端口和目标端口。 SequenceNumber(序号):占4个字节,TCP连…

以太网,IP, TCP, UDP头部格式

1.以太网帧的格式 以太网封装格式 2.IP报头格式 IP是TCP/IP协议簇中最为重要的协议。所有的TCP,UDP, ICMP和IGMP数据都以IP数据报格式传输。IP提供的是不可靠、无连接的协议。 普通的IP首部长为20个字节,除非含有选项字段。 4位版本:目前协…

网络知识入门,什么是以太网包,TCP/IP包,MAC头部,IP头部以及TCP头部(六)

目录 一、以太网包 二、协议栈中IP模块的工作方式 1.TCP委托IP模块 2.IP模块的工作方式 三、mac头部 四、何为以太网 1.以太网的定义 2.如何收发以太网包 3.以太网接收网络包详细 4.收到网络包后,协议如何工作 一、以太网包 TCP 模块在执行连接、收发、断开…

IP、TCP、UDP、HTTP头部信息

IP头部信息 ip报文段格式 版本: 占4位,表明IP协议实现的版本号,当前一般为IPv4,即0100。报头长度 : 占4位,因为头部长度不固定(Option可选部分不固定),所以需要标识…

为什么TCP头部没有数据长度信息而UDP有

先让我们看看IP,TCP,UDP的头部结构 1. IPv4 头部 2. TCP和UDP头部 可以看到IP的头部包换数据的长度,TCP的头部不包含数据长度,UDP的头部则包含。 从信息冗余的角度来看,UDP的长度信息是不需要的。 因为IPv4的头部…

TCP头部格式和封装

文章目录 12.3 TCP头部和封装12.3.1 端口号12.3.2 序列号12.3.3 头部长度12.3.4 相关控制位12.3.5 窗口大小12.3.6 校验和12.3.7 选项字段 12.3 TCP头部和封装 ​ 下图显示了TCP在IP数据报中的封装: ​ TCP头部紧跟着IP头部或者IPv6扩展头部,经常是20字…

封装与解封装(TCP头部格式)

封装和解封装: 应用层---HTTP --超文本传输协议--- TCP 80 HTTPS --- TCP 443 FTP ---文件传输协议---TCP 20/21 ITFTP ---简单文件传输协议--- UDP 69 TELNET---远程控制协议---TCP23 SSH ---TCP 22 DNS---域名解析协议---UDP和TCP 53 HDCP---动态主机配置…

TCP头部信息与UDP头部信息

TCP头部信息 源端口号以及目的端口号: 各占2个字节,端口是传输层和应用层的服务接口,用于寻找发送端和接收端的进程,通过这两个端口号和IP头部的ip发送和接收号,可以唯一的确定一个连接。    一般来讲,通…

TCP协议--TCP头部

《Linux高性能服务器编程》阅读笔记: 1. TCP协议的概念 TCP和UDP是传输层的两个主要协议。TCP相对于UDP来说,是面向连接、字节流和可靠传输。 (1) 面向连接   使用TCP通信的双方必须先建立起连接,然后才能开始数据的读写。建立连接后双方…

#TCP/IP# TCP头部选项功能详解

简单回顾下TCP报文格式 1)TCP报文:由 TCP首部 和 TCP数据 组成。2)TCP首部:由 20字节的固定长度 和 可变长字段(选项和填充)组成。3)TCP首部总长度:由TCP头中的“数据偏移”字段决定…

TCP头部格式的了解

tcp头部格式如下图所示: 1.源端口号,16位,发送方的端口号。 2.目标端口号,16位,发送方的目标端口号。 3. 32为序列号,sequence number,保证网络传输数据的顺序性。 4. 32位确认号,acknowledgment num…

TCP头部结构信息

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

计算机网络—IP头部结构,TCP头部结构,UDP头部结构

文章目录 IP头部结构TCP头部结构UDP头部结构TCP和UDP的区别MAC地址、IP地址、端口号数据传输过程图解 IP头部结构 IP头部结构图如下 注意:一行32bit为4字节,扩展的时候总是一行一行的拓展,也就是4个字节4个字节的扩展 版本号(Ve…

TCP的头部格式,详细信息都在这

重要的TCP头部格式来啦: 序列号:在建立连接时,由计算机生成的随机数作为初始值,通过SYN包传给接收方主机,每发送一次数据,就会累加一次这个数据字节数的大小,用来解决网络包乱序问题。确认应答号…

tcp 头部格式是怎样的?都有哪些字段?TCP 与 UDP 的区别

传输控制协议(Transmission Control Protocol,TCP)是一种传输层协议。TCP使数据包从源到目的地的传输更加顺畅。它是一种面向连接的端到端协议。每个数据包由TCP包裹在一个报头中,该报头由10个强制字段共20个字节和一个0到40 字节的可选数据字段组成 1…

【网络】TCP报文头部

目录 源端口、目的端口 序号()Seq 确认号 数据偏移(头部长度) URG ACK PSH RST SYN FIN 窗口大小 校验和 紧急指针 选项部分 最大报文段长度 MSS 窗口扩大 时间戳 最大报文段长度(MSS) 窗口…

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…