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 字节的伪首部。

在计算检验和时,临时把 12 字节的“伪首部”和 TCP 报文段连接在一起。伪首部仅仅是为了计算检验和。

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

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

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

为什么要规定 MSS ?

MSS 与接收窗口值没有关系。 若选择较小的 MSS 长度,网络的利用率就降低。 若 TCP 报文段非常长,那么在 IP 层传输时就有可能要分解成多个短数据报片。在终点要把收到的各个短数据报片装配成原来的 TCP 报文段。当传输出错时还要进行重传。这些也都会使开销增大。 因此,MSS 应尽可能大些,只要在 IP 层传输时不需要再分片就行。 但最佳的 MSS 是很难确定的。

其他选项:

窗口扩大选项 ——占 3 字节,其中有一个字节表示移位值 S。新的窗口值等于 TCP 首部中的窗口位数增大到 (16 + S),相当于把窗口值向左移动 S 位后获得实际的窗口大小。

时间戳选项——占 10 字节,其中最主要的字段时间戳值字段(4 字节)和时间戳回送回答字段(4 字节)。

选择确认选项

TCP 报文段之首部格式相关推荐

  1. TCP报文段的首部格式

    首部20个字节的的固定部分,40个字节的可选部分 (1)源端口和目的端口 (2)序号(是字节流的编号,0-2^32-1),如果超过了mod2^32 (3)确认号:目的主机希望源主机收到的下一个字节序号 ...

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

    文章目录 1.TCP协议特点 2.TCP报文段的首部格式 3.TCP连接管理 (1)连接的建立 - - - 三次握手 (2)SYN泛洪攻击 4.TCP连接释放----四次握手 5.TCP连接建立和释放 ...

  3. TCP、UDP的首部格式及其含义

    一.TCP报文段的首部格式 TCP是面向字节流的 TCP在发送数据时,从发送缓存中取出一部分或全部字节并给其加上一个TCP首部,使其成为TCP报文段然后交给网络层(TCP是运输层,其下层是网络层) ​ ...

  4. TCP报文段中URG和PSH的区别

    TCP报文段首部最小长度是20个字节 TCP报文段的首部格式 紧急URG(URGent): 当URG = 1时表明紧急指针字段有效,他告诉系统此报文段中有紧急数据,应尽快传送,而不要按原来的排队顺序来 ...

  5. TCP报文段中的URG和PSH

    一:TCP报文段的首部格式 首先明白TCP虽然是面向字节流的,但TCP传输的数据单元确实报文段,一个TCP报文段分为首部和数据两部分,而TCP的全部功能都体现在它首部中的个字段的作用,因此只有弄清楚T ...

  6. 详解TCP和UDP数据段的首部格式

    TCP数据段的首部格式: 源端口号(16) 目的端口号(16) 序列号(32) 确认应答号(32) 数据偏移(4) 保留(6) 代码位(6) 窗口(16) 校验和(16) 紧急指针 选项(长度可变) ...

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

    文章目录 一.TCP 协议 特点 二.TCP 报文段首部格式 三.TCP 报文段首部 666 控制位 一.TCP 协议 特点 TCP 协议 特点 : ① 面向连接 : TCP 协议的连接是 " ...

  8. TCP报文段首部格式详解

    TCP首部格式 格式字段详解 源端口.目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要 ...

  9. TCP报文格式和三次握手——三次握手三个tcp包(header+data),此外,TCP 报文段中的数据部分是可选的,在一个连接建立和一个连接终止时,双方交换的报文段仅有 TCP 首部。...

    from:https://blog.csdn.net/mary19920410/article/details/58030147 TCP报文是TCP层传输的数据单元,也叫报文段. 1.端口号:用来标识 ...

  10. TCP/IP学习笔记(九)TCP报文段首部格式

    TCP为了实现稳定可靠的传输,自然是需要在发送数据时附带一些信息,对端接收到报文段后将用户数据分离开存放在接收缓冲区,然后根据附加信息决定接下来的行为.所以即使TCP是面向字节流的传输协议,但是传输的 ...

最新文章

  1. 在VS下用C语言连接SQLServer2008
  2. 电子科技大学技术交流报道
  3. [置顶] AMF序列化为对象和AMF序列化为二进制字节流
  4. Github Pages+Hexo+阿里云域名绑定
  5. UVALive 6093 Emergency Room --优先队列实现的模拟
  6. mybatis框架入门程序:演示通过mybatis实现数据库的插入操作中实现返回结果的获取...
  7. Golang的time包:秒、毫秒、纳秒时间戳输出
  8. window安装python3装环境变量_Windows下的Python安装与环境变量的配置
  9. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲
  10. 大数据学习(07)--MapReduce
  11. 非关型数据库之Hbase
  12. iOS教程:详解iOS多图下载的缓存机制
  13. HTML pattern
  14. C++基础知识(二)命名空间
  15. Flask: windows下flask + tornado+ nginx组合
  16. 计算机检索系统常用的运算符,计算机信息检索过程中常用的检索表达式 计算机信息检索系统.doc...
  17. PowerBI应用案例:杜邦分析图动态观察财务指标
  18. Ubuntu18.04安装realsense d435i SDK和ROS Wrapper以及相机标定全过程
  19. 与表达式p =0等价的c语言表达式是,2015年3月全国计算机二级C语言选择第1套
  20. 工信部信息技术发展司谢少锋司长高度评价华云数据“自主创新”的钻研精神

热门文章

  1. 排水管网计算机模拟,基于SWMM的城市合流制排水管网计算机模拟方法.ppt
  2. Python进行Excel数据处理
  3. C#逆向反编译工具:JetBrains dotPeek
  4. linux反编译lua工具,lua脚本编译及反编译工具下载
  5. 3dmax电脑配置要求(3dmax需要什么样的笔记本配置?)
  6. RAW到底比JPG强在哪里
  7. windows关闭端口方法
  8. springboot-bean生命周期
  9. 云MAS中CMPP3.0协议封装与移动短信状态报告状态码说明
  10. LIVE MINI ESP32开发板教程系列(四)NeoPixel + ws2812b实现炫彩显示