我们要知道TCP协议是要提供可靠的连接服务,采用三次握手来建立连接。一个完整的三次握手就是请求---应答---再次确认。
我们还应该学习到Tcp协议的报文格式。
(1)序号:Seq(Sequence Number)序号占32位,用来标识从计算机A发送到计算机B的数据包的序号,计算机发送数据时对此进行标记。
(2)确认号:Ack(Acknowledge Number)确认号占32位,客户端和服务器端都可以发送,Ack = Seq + 1。
(3)标志位:每个标志位占用1Bit,共有6个,分别为 URG、ACK、PSH、RST、SYN、FIN,具体含义如下:URG:紧急指针有效。
ACK:确认序号有效。
PSH:接收方应该尽快将这个报文交给应用层。
RST:重置连接。
SYN:建立一个新连接。
FIN:断开一个连接。
刚开始客户端处于 Closed 状态,服务端处于 Listen 状态。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态(就是请求连接状态),等待服务器确认。
第二次握手:服务器收到syn包&#x