(1)源端口和目的端口
各占2字节,端口是运输层与应用层的服务接口,运输层的复用和分用功能都要通过端口才能实现
(2)序号字段
占4字节,TCP连接中传送的数据流中的每一个字节都编上一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号
(3)确认号
占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号
(4)数据偏移(首部长度)
占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远
(5)保留字段
占6位,保留为今后使用,目前应置为0
(6)紧急URG
当URG=1时,表明紧急指针字段有效,它告诉系统此报文中有紧急数据,应尽快传送(相当于高优先级的数据)
(7)确认ACK
只有当ACK=1时确认号字段才有效,当ACK=0时,确认号无效
(8)推送PSH(PuSH)
接收TCP收到PSH=1的报文段,就尽快的交付接收应用进程,而不再等到整个缓存都填满了后再向上交付
(9)复位RST(ReSeT)
当RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接
(10)同步SYN
同步SYN=1表示这是一个连接请求或连接接受报文
(11)终止FIN(FINish)
用来释放一个连接,FIN=1表明此报文的发送端的数据已发送完毕,并要求释放运输连接
(12)窗口字段
占2字节,用来让对方设置发送窗口的依据
(13)检验和
占2字节,检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部
(14)紧急指针字段
占16位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)
(15)选项字段
长度可变,TCP最初只规定了一种选项,即最大报文段长度MSS
①MSS与接收窗口值没有关系
②若选择较小的MSS长度,网络的利用率就降低
③若TCP报文段非常长,那么在IP层传输时就有可能要分解成多个短数据报片。在终点要把收到的各个短数据报片装配成原来的TCP报文段,当传输出错时还要进行重传,这些也都会使开销增大
④MSS应尽可能大些,只要在IP层传输时不需要再分片就行,最佳的MSS是很难确定的
其他选项
①窗口扩大选项
占3字节,其中有一个字节表示位移值S。新的窗口值等于TCP首部中的窗口位数增大到(16+S),相当于把窗口值向左移动S位后获得实际的窗口大小
②时间戳选项
占10字节,其中最主要的字段时间戳值字段(4字节)和时间戳回送回答字节(4字节)
③选择确认选项