TCP 数据包结构 TCP 提供一种面向连接的、全双工的、可靠的字节流服务
在一个 TCP 连接中,仅有两方进行彼此通信
广播和多播不能用于TCP
TCP 的接收端必须丢弃重复的数据
TCP 对字节流的内容不作任何解释
对字节流的解释由TCP 连接双方的应用层解释
TCP 通过下列方式来提供可靠性: 应用数据被分割成TCP 认为最适合发送的数据块,称为报文段或段
TCP 协议中采用自适应的超时及重传策略
TCP 可以对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层
TCP 的接收端必须丢弃重复的数据
TCP 还能提供流量控制
TCP 报文段格式 源端口和目的端口字段——各占2 字节
端口是传输层与应用层的服务接口
传输层的复用和分用功能都要通过端口才能实现
序号字段——占4 字节
TCP 连接中传送的数据流中的每一个字节都编上一个序号
序号字段的值则指的是本报文段所发送的数据的第一个字节的序号
确认号字段——占4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号
数据偏移——占4bit,它指出 TCP 报文段的数据起始处距离 CP 报文段的起始处有多远
“数据偏移”的单位不是字节而是32bit 字(4 字节为计算单位)
保留字段——占6bit,保留为今后使用,但目前应置为0
紧急比特 URG——当 URG=1 时,表明紧急指针字段有效
它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)
确认比特 ACK——只有当 ACK=1 时确认号字段才有效
当 ACK=0 时,确认号无效
复位比特 RST(Reset) —— 当 RST=1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接
同步比特 SYN——同步比特 SYN 置为 1,就表示这是一个连接请求或