资讯动态

TCP 与 UDP:传输层的 “靠谱老大哥” 与 “闪电跑腿员”

发布时间:2026/8/11 20:09:46 来源:尧图企业网站定制
一、TCP面向连接的 “可靠传输专家”TCP 就像寄重要快递会打电话确认对方收货丢了还会重发全程 “稳” 字当头。1. 核心特性面向连接传输前必须 “三次握手” 建连接结束后 “四次挥手” 断连接像打电话 “喂 - 能听到 - 开始说” 和 “挂了啊 - 好的 - 真挂了 - 拜拜”。可靠传输通过 “序列号 确认应答” 保证数据不丢、不乱。比如发送方发 1、2、3 号数据包接收方收到 1 和 3会回复 “确认收到 1等 2”发送方就重发 2。流量控制接收方会告诉发送方 “我现在最多能收 1000 字节”避免发送太快 “撑爆” 对方缓冲区类似 “你慢点说我记不过来了”。拥塞控制如果网络堵车TCP 会主动减速等路况好再加速防止 “添堵”比如高速上堵车时大家会慢慢开。面向字节流把数据当成连续的字节序列没有 “数据包” 边界接收方会按顺序拼接适合大文件传输。2. 三次握手如何 “安全建连接”第一次客户端发 “SYN1seqx”说 “我想连你”。第二次服务端回 “SYN1ACK1seqyackx1”说 “我同意连你发的 x 我收到了”。第三次客户端回 “ACK1seqx1acky1”说 “好的那我们开始传数据吧”。为什么三次防止 “已失效的连接请求” 突然传到服务端导致错误建连。比如客户端发的第一个请求堵车了超时后又发了一个新的结果旧请求后来到了服务端如果两次握手服务端会直接建连但客户端已经不管旧请求了浪费资源。三次握手时客户端会验证服务端的应答发现是旧请求就拒绝避免这种情况。3. 四次挥手如何 “优雅断连接”第一次客户端发 “FIN1sequ”说 “我数据发完了想断开”。第二次服务端回 “ACK1acku1”说 “我知道了你等我一下我还有数据没发完”。第三次服务端发 “FIN1ACK1seqvacku1”说 “我数据也发完了现在可以断了”。第四次客户端回 “ACK1sequ1ackv1”说 “收到断开吧”然后等 2MSL 确保服务端收到自己再断。为什么四次因为服务端收到断开请求时可能还有数据没发给客户端所以需要先回复 “知道了”等数据发完再发 “我也断” 的请求两次应答拆成了两次包。4. 适用场景对 “可靠性” 要求高不那么急的场景网页浏览、文件下载、邮件收发、在线支付。二、UDP无连接的 “高速传输闪电侠”UDP 就像发微信消息不管对方在不在直接发快但可能丢主打一个 “效率至上”。1. 核心特性无连接直接发数据不用建连接省了握手时间像喊人 “喂东西给你放桌上了”不等对方回应就走。不可靠传输没有序列号和确认应答丢包了不重发顺序乱了也不管比如发 1、2、3 号包对方可能收到 3、1或者只收到 2。面向数据报每个 UDP 包都是独立的 “数据报”有明确边界接收方不会拼接比如发两个 100 字节的包对方会收到两个 100 字节而不是一个 200 字节。开销小头部只有 8 字节比 TCP 的 20 字节 更轻量传输速度更快。2. 头部结构极简主义UDP 头部只有 4 个字段共 8 字节源端口、目标端口长度校验和。3. 适用场景对 “实时性” 要求高偶尔丢包能接受的场景视频通话、语音聊天在线游戏直播DNS 查询。三、TCP vs UDP怎么选一句话总结重要的数据找 TCP快的数据找 UDP。谢谢

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价