TCP报文首部格式

TCP报文段由两部分组成

  • 首部
  • 数据载荷

TCP的全部功能体现在首部
首部分为:固定首部 扩展首部
TCP报文首部格式_第1张图片
固定首部 20字节

  1. 源端口:16bit,表示发送方的应用进程
  2. 目的端口:16bit,表示接收方的应用进程
  3. 序号:32bit,指出本TCP报文段数据载荷的第一个字节的序号。(数据载荷的每一个字节都有自己的序号
  4. 确认号:32bit,期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认。

例如
如果确认号 为n 说明到之前接收到了总共到序列号到n的所有数据,都已经正确接收,期望收到序号为n的数据。

  1. ACK:1bit,确认标志位,取值为1时,确认号字段有效。

TCP规定,建立连接后,所有传送的TCP报文都必须把ACK置1

  1. 数据偏移:4bit,数据载荷字段距离首部开始的距离。

二进制值(byte )* 4
最小为 0101
最大 1111
5 * 4 byte ~ 15 * 4 byte

  1. 保留字:暂时保留不适用,置为0;

  2. 窗口:16bit, 以字节为单位,指出发送本报文段的一方的接收窗口。

窗口值作为接收方让发送方设置其发送窗口的依据。
这是以接收方的接收能力来控制发送方的发送能力,称为流量控制。
发送窗口的大小还去取决于拥塞窗口的大小
实际发送窗口的大小 去两者中的较小者。

  1. 校验和:占16比特,检查范围包括TCP报文段的首部和数据载荷两部分。
    在计算校验和时,要在TCP报文段的前面加上12字节的伪首部。

  2. SYN :同步标志位,在TCP连接建立时作为同步序号。

  3. FIN: 终止标志位,用来释放TCP连接。

  4. 复位标志位RST:用来复位TCP连接。

当RST=1时,表明TCP连接出现了异常,必须释放连接,然后再重新建立连接。
RST置1还用来拒绝一个非法的报文段或拒绝打开一个TCP连接。

  1. 推送标志位PSH:接收方的TCP收到该标志位为1的报文段会尽快上交应用进程,
    而不必等到接收缓存都填满后再向上交付。
  2. 紧急标志位URG:取值为1时紧急指针字段有效;取值为0时紧急指针字段无效
  3. 紧急指针:占16比特,以字节为单位,用来指明紧急数据的长度。

当发送方有紧急数据时,可将紧急数据插队到发送缓存的最前面,并立刻封装到一个TCP报文段中进行
发送。紧急指针会指出本报文段数据载荷部分包含了多长的紧急数据,紧急数据之后是普通数据。

扩展首部(最大40byte)
16. 填充:由于选项的长度可变,因此使用填充来确保报文段首部能被4整除
(因为数据偏移字段,也就是首部长度字段,是以4字节为单位的)
17. 选项:扩展TCP功能。

使用http协议的web服务器进程默认监听:80端口号

你可能感兴趣的:(tcp/ip)