TCP --- 传输控制协议
报头格式:
(1)源端口和目的端口:与UDP类似,TCP的分用是通过端口实现的。
(2)序号:TCP是面向字节流的,在TCP连接中传送的字节流的每一个字节都是有顺序的,整个要传送的字节流的起始序号必须要在连接建立时设置。首部中的序号字段值表示本报文段的数据的第一个字节的序号。该字段也称为“报文段序号”。
(3)确认号:是期望收到对方下一个报文段的第一个数据字节的序号。
(4)4位首部长度:它指出TCP报文段的数据起始处距离TCP报文段起始处有多远,因此也称为“数据偏移”。由于4位二进制数最大能表示十进制数字是15,因此数据偏移最大值是60,则选项长度最大为40字节。
(5)保留:占6位,为今后使用,目前置为0
(6)设置位:
紧急URG:当URG=1时,表明紧急指针有效,它告诉系统此报文段中有紧急数据,应尽快传送,而不需要按原来的顺序排列等待。发送方会将紧急数据插入到本报文段最前面,在紧急数据之后的仍是普通数据。这是需要与首部紧急指针(Urgent Point)配合使用。
确认ACK:仅当ACK=1时确认字段有效,建立连接后所有传输的报文段必须将ACK置为1。
推送PSH:PSH=1时表示,该报文段希望到达对端时,将这个报文以及缓存区之间缓存尚未交付的数据一并交给进程。
复位RST:当RST=1时表明,TCP链接出现严重差错,必须释放连接,然后再重新建立连接。当其为 1 的时候也可以用来拒绝一个非法的