TCP三次握手、四次挥手及UDP核心知识

TCP核心是面向连接、可靠传输三次握手建立连接,四次挥手释放连接;UDP为无连接、低延迟传输,二者流程、应用及核心重点如下,简洁好记,适配知识梳理。

一、TCP三次握手(建立连接,传递连接请求/确认包)

核心目的:确保客户端和服务器双方都能正常收发数据,避免无效连接,流程如下(含传递的信息包):


image.png

关键说明:仅3次握手可避免“已失效的连接请求包”被服务器误认,确保连接双向可达

二、TCP四次挥手(释放连接,传递终止/确认包)

核心目的:确保双方数据都传输完毕,优雅释放连接,流程如下(含传递的信息包):

image.png

关键说明:分4次是因为服务器收到FIN后,可能还有未发完的数据,需先确认、再终止,无法合并为3次。

三、UDP核心介绍(精简版)

核心特性:无连接、不可靠、低开销、低延迟,无需握手/挥手,直接发送数据报(无重传、无确认)。

关键补充:头部仅8字节,支持一对多传输,少量丢包不影响核心使用,与TCP形成互补

四、TCP与UDP核心应用场景(精简版)

协议 核心优缺点 核心应用场景
TCP 优点:可靠、有序;缺点:高开销、延迟高 网页、文件传输、支付、数据库(需可靠无丢失
UDP 优点:低开销、低延迟;缺点:不可靠、易丢包 直播、游戏、视频通话、DNS(需低延迟,可容忍少量丢包)

五、核心重点梳理(必记)

  • 基础重点:TCP三次/四次流程及信息包?
    答:三次握手:客户端发SYN包(序号x,请求建连)→服务器回SYN+ACK包(序号y,确认x+1并同步y)→客户端发ACK包(确认y+1,建连完成);四次挥手:客户端发FIN包(序号x,请求终止)→服务器回ACK包(确认x+1,可续发数据)→服务器发FIN包(序号y,数据发完请求终止)→客户端回ACK包(确认y+1,超时后释放)。

  • 核心重点:为什么三次握手?
    答:为确认客户端和服务器双方收发能力均正常(双向可达),避免已失效的连接请求包被服务器误认,两次无法确认客户端接收能力,四次多余增加开销,三次最优。

  • 核心重点:为什么四次挥手?
    答:服务器收到客户端FIN包后,可能还有未传输完毕的数据,需先回复ACK包确认收到终止请求,待数据发完后再发FIN包请求终止,无法将ACK和FIN合并,故需四次。

  • 延伸重点:三次握手最后ACK丢失?
    答:服务器会触发超时重传机制,重新发送SYN+ACK包,客户端收到后再次发送ACK包,直至服务器确认,完成连接建立。

  • 对比重点:TCP与UDP区别及场景?
    答:区别:TCP面向连接、可靠(有重传/确认机制)、高开销;UDP无连接、不可靠(无保障)、低开销、低延迟。场景:TCP用于网页、支付、文件传输(需可靠无丢失);UDP用于游戏、直播、DNS(需低延迟,可容忍少量丢包)。

  • 拓展重点:挥手后客户端等待2MSL?
    答:MSL是报文最大生存时间,等待2MSL可确保服务器收到最后一个ACK包,避免服务器因未收到ACK而重发FIN包,同时清理客户端自身残留的连接资源。

总结:核心重点围绕流程+原理+区别,记住核心逻辑和关键细节,结合应用场景,可快速掌握TCP与UDP核心知识。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容