上一篇文章中,我们聊到了有个朋友面头条被问及到大量网络通信的基础知识,其中聊到了TIME_WAIT状态相关的问题,TIME_WAIT相关知识点涉及到了TCP的四次握手。为什么这块的内容经常被面试官问及到呢,因为这块体现的不仅仅是基础扎不扎实的问题,还涉及到了你未来在实战当中解决棘手问题的潜力有多少。
TCP的四次握手在我们开发中经常被使用到,例如HTTP通信、数据库连接等等各种通信连接。有时候这类通信在线上环境经常出现性能瓶颈或异常,特别是网络通信异常,所以知道如何分析底层的网络通信状态是我们解决问题的方法之一。
今天我们从以下几个问题入手,将这类问题了解透彻:
什么是TCP四次握手;
那为什么TCP断开连接又是四次握手呢;
为什么需要TIME_WAIT状态;
服务端为什么会出现大量TIME_WAIT;
大量TIME_WAIT状态会造成什么影响;
如何优化TIME_WAIT过多的场景。