TCP在IP数据报中的封装
IP头部
TCP头部
可看到,IP数据报即 = P头部协议 + TCP报文段,这也称为TCP在IP数据报中的封装。有趣的是,TCP报文段中的数据部分并不是必须的,当一个连接被建立和终止时,交换的报文段只包含了TCP头部而没有数据,一个不带任何数据的头部会被用于确认接收到的数据,也称为一个纯ACK。
接下来重点看TCP头部。
TCP头部的标准长度是20字节,除非出现选项,常见选型包括最大段大小、时间戳、窗口缩放和选择性ACK。
源和目的端口号与IP头部中的源和目的IP地址一起唯一标识了每个连接,这个IP地址和端口的组合也被称为端点或套接字,即每个TCP连接由一对套接字或端点(客户机IP地址、客户机端口号、服务器IP地址、服务器端口号)唯一标识。
序列号字段标识了TCP发送端到TCP接收端的数据流的一个字节,可认为是一个编号。
确认号字段包含的值是该确认号的发送方期待接收的下一个序列号,即最后被成功接收的数据字节的序列号+1,这个字段只有在ACK位字段被