TCP头部20个字节
URG 紧急指针,告诉接收TCP模块紧要指针域指着紧要数据。
ACK 置1时表示确认号(为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。
PSH 置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。
RST 置1时重建连接。如果接收到RST位时候,通常发生了某些错误。
SYN 置1时用来发起一个连接。
FIN 置1时表示发端完成发送任务。用来释放连接,表明发送方已经没有数据发送了。
其中URG不能和PSH标志位同时使用。
URG为紧急数据标志,如果URG为1,表示本数据包中包含紧急数据。此时紧急数据指针表示的值有效,它表示在紧急数据之后的第一个字节的偏移值(即紧急数据的总长度)。
ACK 为确认标志位。如果 ACK 为1,表示数据包中的确认号有效。
PSH 位,表示强迫数据传输。
RST 标志位用来复位一条连接。当 RST=1时,表示出现严重错误,必须释放连接,然后再重新建立。
SYN 标志位用来建立连接,如果 SYN =1而 ACK =0,表明它是一个连接请求;如果 SYN=1 且ACK=1,则表示同意建立一个连接。
FIN 为1时,表示数据已经发送完毕,希望释放连接。
不合法的标志位组合。
1、所有标志位都为0。
2、SYN 和 FIN 同时被置1。
3、SYN 和 RST 同时被置1。
4、FIN 和 RST 同时被置1。
5、FIN 位被置1,但 ACK 位没有被置1。
6、PSH 位被置1,但 ACK 位没有被置1。
7、URG 位被置1,但 ACK位没有被置1。