计算机网络:TCP 报文段的首部格式

TCP协议(1)--TCP首部 TCP首部格式: TCP首部中没有表示包长度和数据长度的字段。可由IP层计算出TCP包长。 即IP首部的数据包长度-IP首部长度 由TCP包长可知数据的长度。 1.源端口号:表示发送端端口号,字段长度16位 2.目标端口号:表示接收端端口号,字段长度16位 3.序列号:序列号是指发送数据的位置。每发送一次数据,就累加一次该数据字节数的大小。字段长度32位 4.确认应答号:是指下一... 阅读详情


✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭
❤~✨✨

🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。

我是Srlua小谢,在这里我会分享我的知识和经验。🎥

希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮

记得先点赞👍后阅读哦~ 👏👏

📘📚 所属专栏:计算机网络

欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙

​​

​​

目录

TCP 报文段的首部格式

源端口和目的端口字段

序号字段

确认号字段

数据偏移(即首部长度)

保留字段

控制位字段

紧急 URG

确认 ACK

推送 PSH (PuSH)

复位 RST (ReSeT)

同步 SYN

终止 FIN (FINish)

窗口字段

检验和

紧急指针字段

选项字段

为什么要规定 MSS ?

填充字段

总结:


TCP 报文段的首部格式

TCP 虽然是面向字节流的,但 TCP 传送的数据单元却是报文段。

一个 TCP 报文段分为首部和数据两部分,而 TCP 的全部功能都体现在它首部中各字段的作用。

TCP 报文段首部的前 20 个字节是固定的,后面有 4n 字节是根据需要而增加的选项 (n 是整数)。因此 TCP 首部的最小长度是 20 字节。

源端口和目的端口字段

——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。  

序号字段

——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。

确认号字段

——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。

数据偏移(即首部长度)

——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。  

保留字段

——占 6 位,保留为今后使用,但目前应置为 0。

控制位字段

紧急 URG

—— 当 URG= 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。

确认 ACK

—— 只有当 ACK = 1 时确认号字段才有效。当 ACK  0 时,确认号无效。

推送 PSH (PuSH)

—— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。  

复位 RST (ReSeT)

—— 当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。

同步 SYN

—— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。

终止 FIN (FINish)

—— 用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

窗口字段

—— 占 2 字节,用来让对方设置发送窗口的依据,单位为字节。

检验和

—— 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。

紧急指针字段

—— 占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。  

选项字段

—— 长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”

MSS (Maximum Segment Size) 是 TCP 报文段中的数据字段的最大长度。 数据字段加上 TCP 首部才等于整个的 TCP 报文段。 所以,MSS是“TCP 报文段长度减去 TCP 首部长度”。

为什么要规定 MSS ?

  • MSS 与接收窗口值没有关系。
  • 若选择较小的 MSS 长度,网络的利用率就降低。
  • 当 TCP 报文段只含有 1 字节的数据时,在 IP 层传输的数据报的开销至少有 40 字节(包括 TCP 报文段的首部和 IP 数据报的首部)。这样,对网络的利用率就不会超过 1/41。到了数据链路层还要加上一些开销。
  • 若 TCP 报文段非常长,那么在 IP 层传输时就有可能要分解成多个短数据报片。在终点要把收到的各个短数据报片装配成原来的 TCP 报文段。当传输出错时还要进行重传。这些也都会使开销增大。

因此,MSS 应尽可能大些,只要在 IP 层传输时不需要再分片就行。 由于 IP 数据报所经历的路径是动态变化的,因此在这条路径上确定的不需要分片的 MSS,如果改走另一条路径就可能需要进行分片。

因此最佳的 MSS 是很难确定的。

填充字段

—— 这是为了使整个首部长度是 4 字节的整数倍。

总结:

TCP 报文段的首部分为两部分:固定的前 20 个字节和根据需要增加的选项。主要字段包括源端口和目的端口(标识通信双方)、序列号和确认号(保证数据顺序和可靠传输)、数据偏移(指示首部长度)、控制位(如连接建立、终止等标志)、窗口大小(流量控制)、校验和(确保数据完整性)和紧急指针(处理紧急数据)。这些字段共同协作,实现了可靠的数据传输和连接管理。

​​

希望对你有帮助!加油!

若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!

TCP/IP学习笔记(九)TCP报文段首部格式 TCP为了实现稳定可靠的传输,自然是需要在发送数据时附带一些信息,对端接收到报文段后将用户数据分离开存放在接收缓冲区,然后根据附加信息决定接下来的行为。所以即使TCP是面向字节流的传输协议,但是传输的基本单元却是报文段。 报文段由报文首部和数据组成,报文首部最小占20字节最多占60字节,固定的20字节包含各种连接信息,可扩展的40字节存放各种选项值 源端口和目的端口 各占2个字节... 阅读详情

相关推荐

Linux网络协议之TCP - 首部

计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节数;TCP 是面向字节流的协议,通过 TCP 传输的字节流的每个字节都分配了序列号,序列号(Sequence number)指的是本报文段第一个字节的序列号。TCP 的报文里是没有源 ip 和目标 ip 的,因为那是 IP 层协议的事情,TCP 层只有源端口和目标端口。

m0_74282605的博客 324

TCP报文头(首部)详解

TCP协议传输的数据单元是报文段,一个报文段由TCP首部(报文头)和TCP数据两部分组成,其中TCP首部尤其重要,首部用于控制(新建、断开)连接、流量和拥塞等。TCP首部的固定长度是20B,最大长度是60B,其中可变选项长度最长为40B(4B×10)。

ShenDaiSun的博客 1万+

TCP学习(1)--报文段首部格式

TCP学习(1)--报文段首部格式

小胜爱捣鼓 1971

tcp-首部

例如,B正确收到了A发送过来的一个报文段,其序号字段值是501,而数据长度是200字节(序号501~700),这表明B正确收到了A发送的到序号700为止的数据。因此,B期望收到A的下一个数据序号是701,于是B在发送给A的确认报文段中把确认号置为701。例如,发送了一个报文段,其确认号是701,窗口字段是1000.这就是告诉对方:“从701算起,我(即发送方报文段的一方)的接收缓存空间还可接受1000个字节数据(字节序号是701~1700),你在给我发数据时,必须考虑到这一点。在连接建立时用来同步序号。

wwwlyj123321的博客 5557

(考研湖科大教书匠计算机网络)第五章传输层-第九节:TCP报文段的首部格式

TCP报文段首部:为了实现可靠传输,TCP采用了面向字节流的传输方式,但是TCP在发送数据时,是从发送缓存中取出一部分或全部字节并给其添加一个首部使之成为TCP报文段后再进行发送。一个TCP报文段由首部和数据载荷两部分构成,TCP全部功能都由其首部中的各字段体现和IP数据报首部格式类似,TCP报文段首部格式也是有固定首部(20字节)和扩展首部(最大40字节)构成源端口占16比特,写入源端口号,用来标识发送该TCP报文段的应用进程目的端口占16比特,写入目的端口号,用来标识接收该TCP报文段的应用进程。

快乐江湖的博客 658

CP2102 USB 转 UART 模块 PCB 设计项目

不幸的是,我的笔记本电脑只有 USB 端口,所以我需要在 USB 端口和 UART 接口之间进行转换。PCB 布局将足够小,因此我们不一定需要高速布线 USB 线路,但我们将在此将其作为一个简单的示例来实现,以展示如何在这种类型的电路板上实现它。相反,我们只使用屏幕左侧的电路。在这里,我们利用对之间的间距和到 L1 上的铜灌注的距离将差分阻抗设置为目标值。初始布局分为两个部分:USB 连接器和 USB 线路的 TVS 二极管放置在电路板左侧,带有二极管 D4 和 D5 的引脚接头放置在电路板右侧。

jkh920184196的博客 2402

TCP - 首部

TCP - 首部 这篇文章来讲讲 TCP 报文首部相关的概念,这些头部都是支撑TCP复杂功能的基石 我们通过网络抓包 Wireshark 来抓一个TCP包 源端口、目标端口 计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个 (源IP,源端口,目的IP,目的端口) 四元组确定唯一一个TCP连接;(IP,端口)也称为一个插口(soc

浪人与酒 4314

生信入门(六)——单细胞分析(Seurat)

生信入门(六)——单细胞分析(Seurat) 文章目录生信入门(六)——单细胞分析(Seurat)一、数据导入1、数据来源2、数据导入二、标准预处理1、QC和选择细胞进行进一步分析2、规范化数据3、识别高度可变的特征(特征选择)4、缩放数据三、主成分分析(PCA)1、线性降维2、确定数据集的“维度”四、聚类细胞五、非线性降维(UMAP/tSNE)六、寻找差异表达的特征(簇生物标志物) 一、数据导入 1、数据来源 点击此处下载数据 数据说明:分析10X Genomics提供的外周血单细胞(PBMC)数据集,有

羊羊的博客 6万+

计算机网络:运输层 —— TCP 协议概述与 TCP 报文段首部格式

传输控制协议(Transmission Control Protocol,TCP)协议是互联网上最常用的传输层协议之一,它负责提供可靠的端到端数据传输服务。TCP 协议采用连接导向的通信方式,通过三次握手建立连接,使用序号和确认机制确保数据的可靠传输。

热带鱼的技术博客 1786

SuperPoint + LightGlue实战:低纹理墙面重建保姆级教程(附完整代码)

本文提供了一份针对低纹理墙面三维重建的实战教程。通过详细解析SuperPoint与LightGlue的核心参数调优,指导读者如何有效提取并匹配低纹理目标的特征点,并结合COLMAP完成从稀疏到稠密的重建流程,最终实现高精度建模。

weixin_29034963的博客 225

【LaTeX】IEEE会议模板中使用BibTex插入文献(解决报错:Something‘s wrong--perhaps a missing \item. \end{thebibliography}

使用IEEE会议论文LaTeX模板时遇到的一个错误,问题描述为:使用Texstudio编译LaTeX模板报错,报错信息提示为。出现的原因为IEEE会议论文模板自带的参考文献引用方式为手动插入,即不使用格式的参考文献,手动将参考文献调整为合适格式,然后粘贴到文本中,我准备将其换成方法引用参考文献。我的替换步骤为删除原始参考文献对应内容,即模板中的: 将以下函数添加到原始参考文献对应位置,对应上文新建的文件。 再次编译出现报错 删除文件夹中的文件 修改模板中的引用名称 引用方法为: 将 替换为 再次编译——

TangPlusHPC的博客 9923

【计算机网络】传输层 : TCP 协议 ( TCP 协议特点 | TCP 报文段首部格式 | TCP 报文段控制位 )

一、TCP 协议 特点、 二、TCP 报文段首部格式、 三、TCP 报文段首部 66 控制位、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1854

从AI画稿到3D虚拟时装:Illustrator与Substance 3D的服装设计工作流

本文旨在解决传统服装与纺织品设计师在产品开发流程中,面临的“2D印花图案无法直观预见3D上身效果”、“物理打样成本高昂且周期漫长”的核心痛点。我们将介绍一套纯数字化的3D可视化工作流,核心是利用 Adobe Illustrator 进行矢量印花图案创作,通过 Adobe Substance 3D Sampler 将其转化为逼真的PBR(基于物理渲染)布料材质,并最终在 Adobe Substance 3D Stager 中,将该材质应用于3D服装模型,渲染出照片级的虚拟样衣。本指南将帮助设计师以极低的成本和

Kingsdesigner的博客 1402

计算机网络:(十四)传输层(下)详细讲解TCP报文段的首部格式,TCP 可靠传输的实现与TCP 的流量控制

本文深入解析TCP协议的核心机制,包括报文格式、可靠传输和流量控制。TCP报文首部包含源/目的端口、序号、确认号等20字节固定字段,以及可选字段,通过SYN、ACK等控制位管理连接。可靠传输依靠滑动窗口机制,允许连续发送多个数据段,通过序号和确认号确保有序接收。发送方和接收方各自维护动态窗口,随传输情况调整范围。二者还设有缓存区暂存数据,支持乱序暂存和累积确认。流量控制通过窗口字段实现,接收方告知剩余缓存空间。若数据丢失,TCP会触发超时重传机制,确保数据可靠送达。

2402_83322742的博客 2186

基于IC617下Layout XL的使用

基于IC617下Layout XL的使用

weixin_43816759的博客 1万+

scRNA-seq | 吐血整理的单细胞入门教程(从原理到代码实操)(二)

scRNA-seq | 吐血整理的单细胞入门教程(从原理到代码实操)(二)

m0_72224305的博客 4306

计算机网络(五)—— 运输层(9):TCP报文段的首部格式

9. TCP报文段的首部格式9.1 课后练习 9. TCP报文段的首部格式   ■ 为了实现可靠传输,TCP采用了面向字节流的方式。   ■ 但TCP在发送数据时,是从发送缓存取出一部分或全部字节并给其添加一个首部使之成为TCP报文段后进行发送。    ⋄\diamond⋄ 一个TCP报文段由首部和数据载荷两部分构成;    ⋄\diamond⋄ TCP的全部功能都体现在它首部中各字段的作用。   ■ TCP报文段的首部格式:   源端口: 占16比特,写入源端口号,用来标识发送该TCP报文段的应用进.

大彤小忆的博客 2938

openbmc mctp i3c适配步骤

本文介绍了在Intel OKS平台下,BMC作为I3C从设备如何适配MCTP over I3C的实现方法。主要内容包括:1)关键术语解释,如MDB(Mandatory Data Byte)值为0xAE,DCR(Device Characteristics Register)和BCR(Bus Characteristics Register)的设置;2)适配流程说明,包括BMC作为控制器主节点分配地址后成为MCTP端点,CPU作为总线所有者的角色转换;3)测试验证步骤,展示通过mctp-client工具发送指

wit_yuan的专栏 132

【计算机网络】湖科大微课堂笔记 p64-66 TCP的运输连接管理:TCP的连接建立与释放、TCP报文段的首部格式

文章目录TCP的运输连接管理——TCP的连接建立小结一些例题TCP的运输连接管理——TCP的连接释放TCP报文段的首部格式小结 TCP的运输连接管理——TCP的连接建立 TCP的连接建立要解决以下三个问题: TCP使用“三报文握手”建立连接: 为什么TCP客户进程最后还要发送一个TCP普通确认报文段呢? 我们举一个最后不发送TCP普通确认报文段的,使用“两报文握手”建立连接的例子: 因此,TCP客户进程最后还要发送一个TCP普通确认报文段的原因是: 为了防止已失效的连接请求报文段突然又传送到了TCP

karshey的博客 1075

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

5.3 计算机网络传输层之TCP协议(tcp协议特点、tcp报文段首部格式、tcp连接---三次握手、tcp连接释放---四次握手)

文章目录1.TCP协议特点2.TCP报文段的首部格式3.TCP连接管理(1)连接的建立 - - - 三次握手(2)SYN泛洪攻击4.TCP连接释放----四次握手5.TCP连接建立和释放的总结如下 1.TCP协议特点 2.TCP报文段的首部格式 TCP传送的数据单元称为报文段。一个TCP报文段分为TCP首部和TCP数据两部分,整个TCP报文段作为IP数据报的数据部分封装在IP数据报中 其...

BitHachi 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TCP首部报文段格式

最近《计算机网络》这本书看到了传输层的 TCP 协议,因为TCP 的全部功能都体现在它的首部中,因此觉得有必要将这些知识梳理一下。 首先TCP 是面向字节流的。这个流指的是流入到进程或从进程流出的字节序列。面向字节流的含义是:应用程序与 TCP 的交互是一次一个数据块(大小不等),但是 TCP 把应用程序交下来数据仅仅看成是一连串的无结构字节流。而 TCP 不知道所传送字节流的含义。 一、...

点滴记录 8380

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

计算机网络——TCP报文段的首部格式篇

m0_73399576的博客 1281

4.5 TCP 报文段的首部格式

本篇文章详细分析了 TCP 报文段首部的结构,并介绍其各字段的作用与相关选项,进一步理解 TCP 如何在不可靠的网络环境中实现可靠的数据传输。

2302_80253507的博客 1400

【计算机网络】——TCP协议

1.防止已失效的连接请求报文段突然又传送到了TCP服务器进程因而导致错误和资源浪费。●假设采用两报文握手,TCP客户进程发出一个TCP连接请求报文段,但是该报文段由于网络原因滞留了,这必然会造成该报文段的超时重传。●假设重传的报文段被TCP服务器进程正常接收,TCP服务器进程给TCP客户进程发送一个TCP连接请求确认报文段,并进入连接已建立状态。他们可以相互传输数据,之后可以通过四报文挥手来释放连接,TCP双方都进入了关闭状态。

2301_80092713的博客 4821

【计算机网络】TCP报文段详解

本文为借阅书籍资料,观看他人博客总结得出,欢迎提问: 一.前期说明 TCP虽然是面向字节流的,但是在网络中的传输单元确实是报文段的格式,一个TCP报文段分为首部和数据两个部分,而协议的全部实现都在TCP报文段的首部体现出来的 。只有先理解首部各个字段的含义,才能正确的理解TCP的工作原理。 如上图,前20个字节是固定的,后面的4n是可变的,所以,TCP首部最小为20字节。 二. 各个字段含义...

写写平时的技术与感想 6339

计算机网络——TCP报文段的首部格式

    为了实现可靠传输,TCP采用了面向字节流的方式。但TCP在发送数据时,是从发送缓存取出一部分或全部字节并给其添加一个首部使之成为TCP报文段后进行发送。 一个TCP报文段由首部和数据载荷两部分组成。 TCP的全部功能都体现在它首部中各字。     下面来介绍报文段中首部的具体格式: 源端口:占16比特,写入端口号,用来标识发送该TCP报文段的应用进程。 目的端口:占16比特,写入目的端口号,用来标识接收该TCP报文段的应用进程。 序号:占32比特,取值范围[0,232-1],序号增加到最后一个.

m0_56561130的博客 2282
上一篇: 计算机网络传输中的三部曲:连接、通信与释放
下一篇: 计算机网络:TCP 的拥塞控制的一般原理
Srlua小谢
Srlua小谢 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域
博客等级 码龄4年 8963粉丝 332原创
评论 44
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值