千家信息网

TCP协议的常见面试题

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,1. 为什么连接的时候是三次握手,关闭的时候却是四次握手?因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步
千家信息网最后更新 2026年11月03日TCP协议的常见面试题1. 为什么连接的时候是三次握手,关闭的时候却是四次握手?

因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

2. 为什么不能用两次握手进行连接?

这主要是为了防止已失效的连接请求报文段突然又传到了B,因而产生错误。

现假定一种异常情况,即A发出的第一个连接请求报文段并没有丢失,而是在某些网络节点长时间滞留了,以致延误到连接释放后的某个时间才到达B。本来这是一个早已失效的报文段。但B受到此失效的连接请求报文段后,就误以为是A又发出一次新的连接请求,于是就向A发出确认报文段,同意建立连接。假定不采用第三次报文握手,那么只要B发出确认,新的连接就建立了。

由于现在A并没有发出建立连接的请求,因此不会理睬B的确认,也不会向B发送数据,但B却以为新的运输连接已经建立了,并一直等待A发来的数据。B的许多资源就这样白白浪费了。

采用三次握手连接,可以防止上述现象的发生。例如在刚才的异常情况下,A不会向B的确认发出确认,B由于收不到确认,就知道A并没有要求建立连接,于是B就不会再建立连接。

3. 为什么TIME_WAIT状态需要经过2MSL才能返回到CLOSE状态?
  • 第一,为了保证A发送的最后一个ACK报文段能够到达B。假设网络是不可靠的,有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。在Client发送出最后的ACK回复,但该ACK可能丢失。Server如果没有收到ACK,将不断重复发送FIN片段。所以Client不能立即关闭,它必须确认Server接收到了该ACK。Client会在发送出ACK之后进入到TIME_WAIT状态。Client会设置一个计时器,等待2MSL的时间。如果在该时间内再次收到FIN,那么Client会重发ACK并再次等待2MSL。所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被Server成功接收,则结束TCP连接。
  • 第二,防止"已失效的连接请求报文段"出现在本连接中。A在发送完最后一个ACK报文段后,再经过时间2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。
4. 如果已经建立了连接,但是客户端突然出现故障了怎么办?

TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75分钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。

原文链接: https://www.linuxprobe.com/tcp-usually-question.html

报文 时间 客户 服务器 状态 网络 服务 再次 客户端 故障 数据 端的 最大 可以使 小时 就是 情况 时候 片段 计时器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 为想互联网科技怎么样 互联网金融监管科技数据 没上市的科技互联网公司 北京互联网络科技有限公司 广州互联网络科技有限公司 智慧科技互联网 互联网之后的科技是什么 恒银科技与互联网金融 福州新华互联网科技学校 知乎 互联网还是高科技吗 晓花互联网科技有限公司网址 青海科技产业互联网发展 国大互联网教育科技有限公司工作 浙南科技城互联网大厦建设工程 济南有互联网科技公司吗 众安科技工业互联网合作 合肥互联网科技公司公章图片 互联网安防科技感 互联网硬科技公司 网互联网络科技 湖北九亚互联网络科技有限公司 互联网与科技发展 火传媒上海互联网科技 互联网科技公司名称 山东吉时兔互联网科技有限公司 互联网科技产业特征 中国科技创新与世界互联网大会 长沙渺峰互联网科技有限公司 互联网科技职业技能培训学校 科技信息时代互联网发展
0