网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

TCP中的服务与分段结构

更新时间:2026年03月27日   作者:spoto   标签(Tag):

传输控制协议是最常用的传输层协议。它与IP协议协同工作,为使用IP协议提供的网络层服务的各个进程之间提供可靠的传输服务。TCP为应用层提供的各种服务如下:

过程间通信:TCP通过使用16位的端口号来实现进程间的通信,这些端口号用于标识发送方和接收方进程。
2. 以流媒体为导向:TCP以字节流的形式发送数据,将数据分组为带有头部的数据段,然后再将这些数据段封装成IP数据包。
3. 全双工服务:这意味着,通信可以同时进行双向传输。
4.面向连接的服务:与UDP不同,TCP提供了一种面向连接的服务。它定义了三个不同的阶段:

  • 连接建立
  • 数据传输
  • 连接终止

5. 可靠性:TCP通过校验和、重传机制、确认机制、序列化处理以及拥塞控制等方式来确保数据传输的可靠性。
6. 多路复用:TCP在发送端和接收端分别进行多路复用与解复用操作。因为可以通过物理连接来建立多个逻辑连接,这些逻辑连接可以通过不同的端口号来表示。

TCP头部中的组成部分

TCP头部主要由三个组成部分构成:

1. 字节数

  • 在TCP连接中,每个字节都被分配了一个唯一的编号。
  • 编号的起始值是从连接开始时随机选定的一个数值开始的。

2. 序列号

  • 表示当前段中第一个字节的字节数。
  • 即使各个数据段到达的顺序混乱,也能帮助接收者正确地重新组装这些数据。

3. 致谢部分,数字部分

  • 表示来自发送方的下一个预期接收字节数。
  • 确认到这个数值为止的所有字节都已被成功接收。

在上面的图中,如果A发送了ACK 1001,这意味着它已经接收到了最多1000个字节的数据,并且接下来会继续接收1001个字节的数据。同样地,B在接收到最多13001个字节的数据之后,也会发送ACK 13002。

TCP段结构

一个TCP段由需要发送的数据字节以及由TCP添加到数据中的头部组成,具体结构如图所示:

TCP段的首部大小可以在20到60字节之间。其中,40字节用于存放各种选项。如果不存在任何选项的话,那么首部的长度就是20字节;否则,首部的长度可以达到60字节。

头部字段

源端口地址:这是一个16位的字段,用于存储发送数据段的应用程序的端口地址。

2. 目标端口地址:这是一个16位的字段,用于存储接收数据段的宿主系统中应用程序的端口地址。

3. 序列号:这是一个32位的字段,用于存储序列号,即在该段数据中首先被发送的字节的编号。它用于在接收端重新组装那些顺序混乱的段数据。

4. 致谢编号:这是一个32位的字段,用于存储确认号码,即接收方期望接下来接收到的字节编号。它实际上是对之前已成功接收的字节的确认。

5. 头部长度(HLEN):这是一个4位的字段,用于表示TCP头部的大小。具体来说,该字段的值等于头部中4字节的单词数量。例如,如果TCP头部的长度为20字节(最小长度),那么该字段的值就为5(因为5×4=20);而当TCP头部的长度达到60字节时,该字段的值则变为15(因为15×4=60)。因此,该字段的值始终介于5到15之间。

6. 控制标志:这些共有6个1位控制位,用于控制连接的建立、终止、中断、流量控制以及传输方式等。它们的功能如下:

  • 紧急:紧急提示是有效的。
  • ACK:确认编号是有效的(在累积确认的情况下会使用该编号)。
  • PSH:请求推送功能
  • RST:重置连接状态
  • SYN:同步序列号
  • 结束:终止连接。

7. 窗口大小:该字段表示发送方的TCP窗口大小,单位为字节。

8. 校验和:该字段包含了用于错误控制的校验和。在TCP协议中,这个字段是必需的,而在UDP协议中则不是必需的。

9. 紧急指针:该字段仅在设置了URG控制标志的情况下才有效。它用于指向那些需要立即被传输到接收进程的数据。该字段的值会与序列号一起相加,从而得到最后一个紧急数据的字节编号。

注意:TCP是一种面向连接的协议。TCP连接是由…所建立的三路握手协议.

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料