TCP协议
数据包头
源端口:占16位,也就是说最大端口数65535个
目标端口:占16位,也就是说最大端口数65535个
序列号:seq序号,占32位,用来表示从tcp源端像目标端发送的字节流,发起方发送数据时对此进行标识。
确认号:ack序号,占32位,只有ACK标识位为1时,确认序号字段才有效。
数据偏移:占4位,表示数据开始的地方离TCP段的起始处有多远。实际上就是TCP段首部的长度。由于首部长度不固定,因此数据偏移字段是必要的。
标识位:共6个,即URG、ACK、PSH、RST、SYN、FIN,具体含义如下:
-
URG:紧急位,为1时,紧急指针(urgent pointer)有效,表示数据需要优先处理。紧急指针指出在TCP段中的紧急数据的最后一个字节的序号,使接收方可以知道紧急数据共有多长。
-
ACK:确认位,为1时,确认序号有效。
-
PSH:推位,为1时,接收方应该尽快将这个报文交给应用层。
-
RST:复位标志,为1时,复位连接,一般在出错或关闭连接时使用。
-
SYN:同步位,在建立连接时使用,当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,在发回的报文段中使SYN=1和ACK=1。
-
FIN:结束位,为1时,表示发送方完成了数据发送。
窗口:占16位,表示报文段发送方期望接收的字节数,可接收的序号范围是从接收方的确认号开始到确认号加上窗口大小之间的数据。
检验和:占16位,包含了伪首部、TCP首部和数据,校验和是TCP强制要求的,由发送方计算,接收方验证。
紧急指针:URG标志为1时,紧急指针有效&#