TCP报文段的首部格式

TCP传送的数据单元称为报文段,既可以用来运载数据,又可以用来建立连接、释放连接和应答

一个TCP报文段可以分为首部和数据部分,整个TCP报文段作为IP数据报的数据部分封装在IP数据报中。首部的固定长度为20B,因此最短为20B,后面有4N字节是根据需要而增加的选项,长度为4B的整数倍

TCP报文段的各字段意义如下:

  • 源端口和目的端口: 各占2字节,端口号是传输层与应用层的服务接口,传输层的复用和分用都是通过端口号来实现的

  • 序号: 占4字节,共 2 32 2^{32} 232个序号,范围为(0 ~ 2 32 − 1 2^{32} -1 2321)。序号增加到最后一个后,下一个序号又回到0;用来指出本报文段所发送的数据部分的第一个字节的序号 例如数据长度为100B,上一个数据的序号为301那么该TCP报文段首部中的序号为401

  • 确认号: 占4字节,共 2 32 2^{32} 232个序号,范围为(0 ~ 2 32 − 1 2^{32} -1 2321)。确认号增加到最后一个后,下一个确认号又回到0;用来指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据进行确认 例如,若确认号为 n,则表明到序号 n - 1 为止的所有数据都已经正确接收,期望接收序号为 n 的数据

  • 数据偏移(即首部长度): 占4位,以四字节为单位,指出TCP报文段的数据载荷起始处距离TCP报文段的起始处有多远(其实就是TCP报文段的首部长度),首部长度固定为20B,因此数据偏移字段的最小值为 ( 0101 ) 2 (0101)_2 (0101)2 ,首部最大长度则为60B,数据偏移字段的最大值为 ( 1111 ) 2 (1111)_2 (1111)2

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

  • 紧急位URG: 当URG= 1时,表明紧急指针字段有效,反之无效

  • 确认标志位ACK: 只有在ACK = 1时表示确认号字段有效,取值为0时表示确认号字段无效,TCP规定,在连接建立后所有传送的TCP报文段都必须把ACK置1

  • 推送标志位PSH: 接收方TCP收到PSH = 1的报文段,就尽快地交付给接收应用进程, 而不再等到整个缓存都填满了后再向上交付

  • 复位标志位RST: 用来复位TCP连接,当RST = 1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接【还可以用来拒绝一个非法的报文段或者拒绝打开一个TCP连接】

  • 同步标志位SYN: 在TCP建立连接时用来同步序号,【当SYN = 1时表示这是一个连接请求或连接接受报文,当SYN = 1, ACK = 0时,表明这是一个连接请求报文,对方若同意建立连接,则应在响应报文中使用SYN = 1, ACK = 1】

  • 终止标志位FIN: 用来释放一个连接。当FIN = 1时,表明此报文段的发送方的数据已发送完毕,并要求释放运输连接

  • **窗口:**占16位,以字节为单位。指出发送本报文段的一方的接收窗口 【窗口值作为接收方让发送方设置其发送窗口的依据,这是以接收方的接受能力来控制发送方的发送能力,称为流量控制

  • 校验和: 占16位,校验和字段检验的范围包括首部和数据两部分。在计算校验和时,和UDP一样,要在TCP报文段的前面加上12B的伪首部

  • **紧急指针:**占16位,**紧急指针仅在URG = 1时才有意义;**以字节为单位,用来指明紧急数据的长度 【但发送方有紧急数据时,可以将紧急数据插队到发送缓存的最前面,并立刻封装到一个TCP报文段中进行发送,紧急指针会指出本报文段数据载荷部分包含了多长的紧急数据,紧急数据之后就是普通数据】

  • 选项:长度可变。TCP最初只规定了一种选项,即最大报文段长度(Maximum Segment Size, MSS),MSS是TCP报文段中的数据字段的最大长度(注意仅仅是数据字段)

  • 填充:这是为了使整个首部长度是4B的整数倍。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

He_xj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值