面试最常问面试冲刺 · 网络与操作系统
三次握手和四次挥手的过程是怎样的?为什么 TIME_WAIT 要等 2MSL?
先自己想一想,再看参考要点
参考要点
- 握手:A 发 SYN(序号 x),B 回 SYN + ACK(确认号 x + 1、序号 y),A 回 ACK(确认号 y + 1),双方进入 ESTABLISHED,三次是为了让双方的初始序号都得到确认,并防止滞留的旧请求建立连接
- 挥手:A 发 FIN,B 确认后进入 CLOSE_WAIT 发完数据再发 FIN,A 确认后进入 TIME_WAIT
- 等 2MSL 一是确保最后的 ACK 能到达(丢失时 B 会重传 FIN),二是让本连接的旧报文从网络中消失
学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。