一、首先了解TCP报文格式
其中必须了解的字段有:
1、源端口与目的端口:16位,标识出发送端与接收端的端口号。
2、序号:32位,也叫顺序号、seg序号,本报文段所发送的数据的第一个字节的序号,用来标记数据报顺序。
3、确认号:32位,ack序号,用来标记期待收到对方下一个报文段的第一个数据字节的序号,确认信号ack=发送过来的seg+1,收发两端配对。
4、标志位:共有6个。
ACK起应答作用,占1位;仅当ACK=1时,确认号字段才有效,ACK=0时,确认号无效。
SYN起同步作用;当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。
FIN用来释放一个连接;FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接。
PSH表示接收方应将报文交给应用层,
RST表示连接重置,
URG表示紧急指针,不常用。
二、“三次握手”
概念:所谓“三次握手”就是TCP连接建立的过程,即需要客户端与服务端总共发送三个包(所以着重记忆这三个包就可以了)以确认连接的建立。