一、TCP三次握手和四次挥手
参考博客:
TCP三次握手和四次挥手
TCP三次握手四次挥手详解 - zmlctt - 博客园
TCP/IP中MSL详解
1. 三次握手
TCP连接是通过三次握手来连接的。
第一次握手
当客户端向服务器发起连接请求时,客户端会发送同步序列标号SYN到服务器,在这里我们设SYN(发送序列号)为m,等待服务器确认,此时SYN置1,表明需要服务的同步回应。这时客户端的状态为SYN_SENT。
第二次握手
当服务器收到客户端发送的SYN后,服务器要做的是确认客户端发送过来的SYN,在这里服务器发送确认包ACK,这里的ACK(接收序列号)为m+1,意思是说“我收到了你发送的SYN了”,同时,服务器也会向客户端发送一个SYN包,这里我们设SYN为n(发送序列号)。同时ACK置1,表面回应了客户端;SYN置1,表面需要客户端同步回应。这时服务器的状态为SYN_RECV。
一句话,服务器端发送SYN和ACK两个包。
第三次握手
客户端收到服务器发送的SYN和ACK包后,需向服务器发送确认包ACK,“我也收到你发送的SYN了,我这就给你发个确认过去,然后我们即能合体了”,这里的ACK为n+1(接收序列号)。同时,ACK置1,表明是回应。发送完毕后,客户端和服务器的状态为ESTABLISH,即TCP连接成功。