三次握手过程
1.客户端处于close状态,向服务器发送建立连接的请求SYN和初始序列号
2.服务器处于LISTEN状态,收到客户端发来的请求后回复SYN,服务器的初始序列号,ACK和确认应答序号为客户端初始序列号+1,服务器变为SYN_REVD状态
3.客户端收到服务器后,恢复ACK和确认应答号为服务器初始序列号+1,客户端变为ESTABLISHED状态,本次握手可以携带数据
4.服务器收到客户端的确认应答后,变为ESTABLISHED状态
为什么要三次握手而不是两次?
防止已失效的报文突然又传到服务器,引起错误;如果是两次的话,客户端第一次发的SYN包失效,又发了SYN2包。服务器发回SYN2+ACK;SYN1包突然恢复,发送给了服务器,服务器会认为是客户端又发起了新链接;服务器认为是两个连接,客户端认为是一个链接;
三次握手本质在不可靠的网络信道上建立起可靠的连接
标签:必问,ACK,握手,SYN,TCP,面试,服务器,序列号,客户端 From: https://blog.csdn.net/liiiiiiiiii123/article/details/137081981