TCP
上一节
下一节
一、定义:
TCP协议:传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,保证了端到端数据传输的可靠性。
面向连接。TCP连接的建立采用的是一种客户机/服务器工作模型。
提供全双工数据传输服务。一对一,点对点
提供面向字节流的服务
二、报文结构与封装

格式说明:20-60B
伪首部:与UDP报文一致,协议号是6
序列号(sn):本报文段所发送数据的第一个字节的编号,32位,数据过大时有回绕
确认号(ack):下一个报文段的第一个字节数据的编号(下一个报文的序列号)
偏移(首部长度):该字段的单位是32bit,即:4个字节。
标志位(flags):控制字段,用于TCP的流量控制、连接的建立和终止以及表示数据的传送方式

窗口大小:配合TCP中的流量控制算法实现流量控制
校验和:校验伪首部+首部+数据
紧急指针:相对与当前数据段第一个字节的偏移量
可变部分:最多40B。最大报文段长度 MSS(4B —— 0204 05B4)、窗口扩大选项(3B——0303 01) 、时间戳选项(STT,10B——080A XXXX XXXX YYYY YYYY)、选择确认选项

三、数据编号与TCP分段
1、编号:应用层数据进入缓存,产生随机数作为第一字节的编号
2、TCP分段:应用层数据过大时,通信双方在建立连接时会协商出MSS(最大报文段长度),对应用层数据进行分段发送,形成多个TCP报文段。每个报文段中第一个字节的编号即为当前报文段的序号。
MSS——链路MTU与接收缓存

