一、TCP报头详解:
1、源端口:16位,标识源端口号;
2、目的端口:16位,标识目的端口号;
3、序号:32位,随机生成,每发送一次数据,该序号+1后发送给对方;
4、确认序号:32位,确认的是序号,即下一次自己应该收到的数据的序列号。接收端收到确认应答后,表明这个序列号以前的数据都被正常接收;
5、数据偏移(首部长度):4位,由于首部可能含有选项和填充项内容,因此TCP的报头长度是不确定的。报头不包含任何选项字段长度为20 字节。4位的数据偏移字段,可以表示的最大值1111,转换成10进制=15(即头部15行,每行32位),15*32/8=60,报头包含可选选项时最大长度为60字节;
6、保留位:6位,保留为了以后使用,一般置0,即使收到的包中该字段不为0也不丢弃;
7、标志位:6位,共六个标志位。
(1)URG:紧急指针标志,为1时紧急指针有效,表明该包中有紧急需要处理的数据;为0忽略;
(2)ACK:确认序号标志,为1时确认号有效;为0时表示该包中不含确认信息,忽略确认号字段;
(3)PSH:push标志,为1表示是带有push标志的数据,指示接收方在收到该报文段以后,应尽快将这个报