1、为什么需要三次握手
在OSI七层参考模型中的第四层传输层中存在TCP(面向连接的可靠传输协议)和UDP(非面向链接的不可靠传输协议)协议.
三次握手是建立连接的过程,Client(客户端)向Server(服务端)发送SYN包,Server同意后会回复SYN+ACK包之后Client再次发送ACK包建立连接。
三次握手为了防止因为已失效的请求报文,突然被又传到服务器而引发的错误。
本质:为了解决网络信道不可靠的问题 (建立可靠的连接),因为在传输一包数据是有可能会被拆成多包发送 (丢包问题)(乱序问题)。
2、为什么是四次挥手
第一次挥手:Client主动向Server发送FIN包,表示关闭要连接,自己进入等待状态1。
第二次挥手:Server回复ACK包表示自己进入关闭等待状态,Clien进入等待状态2。
(Server此时还可以发送未发送的数据,客户端还可以接受数据)
第三次挥手:Server完成数据发送后,会想Clien发送送FIN包进入最后确认状态。
第四次挥手:Client回复ServerACK包,Server立即关闭,自己进入超时等待状态后关闭连接,
机制:保证在不可靠的网络链路中,Client与Server进行可靠的连接断开