谈谈你对 TCP 三次握手和四次挥手的理解 By @mark on Feb 14, 2020原文:谈谈你对 TCP 三次握手和四次挥手的理解 - 每天一个JavaScript小知识@Js中文网 · 码农进阶题库原文地址:https://www.javascriptc.com/interview-tips/zh_cn/javascript/TCP-three-handshakes-and-four-waves/题目描述:谈谈你对 TCP 三次握手和四次挥手的理解解题:思路一:当A告诉B,要关闭的时候,B可能还有一个包正在传输中,所以是等正在传输中的这个包传输完毕之后再回复A一下,图中表述的有点问题假设4次挥手中,如果没有(稍等,还有最后一个包),那是不是就是三次挥手???由于TCP连接是全双工的,因此每个方向都必须单独进行关闭,所以即使没有最后一个包,也需要先回复断开连接的请求,然后再发送关闭请求思路二:趣味答题男:我要挂了哦女:等哈,我还要敷面膜女:我敷完了,现在可以挂了男:我舍不得挂,你挂吧女:好吧,我挂了男:等了2MSL听见嘟嘟嘟的声音后挂断思路三:三次握手之所以是三次是保证client和server均让对方知道自己的接收和发送能力没问题而保证的最小次数。第一次client => server 只能server判断出client具备发送能力第二次 server => client client就可以判断出server具备发送和接受能力。此时client还需让server知道自己接收能力没问题于是就有了第三次第三次 client => server 双方均保证了自己的接收和发送能力没有问题其中,为了保证后续的握手是为了应答上一个握手,每次握手都会带一个标识 seq,后续的ACK都会对这个seq进行加一来进行确认。扩展阅读:为什么 TCP 建立连接需要三次握手 · Why’s THE Design?九个问题从入门到熟悉 HTTPSTCP协议】(1)—TCP协议详解原文标题:谈谈你对 TCP 三次握手和四次挥手的理解 - 码农题库@Js中文网 · 前端进阶资源教程原文地址:https://www.javascriptc.com/interview-tips/zh_cn/javascript/TCP-three-handshakes-and-four-waves/