im即时通讯开发:快速理解TCP和UDP的差异

本文详细介绍了TCP的三次握手建立连接过程和UDP的无连接特性,对比了两者在数据发送、有序性、可靠性和使用场景的差异。在实时性要求高和多点通信的场景中,UDP更具优势;而在对数据可靠性要求较高的情况下,TCP是更好的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于即时通讯开者新手来说,在开始着手编写IM或消息推送系统的代码前,最头疼的问题莫过于到底该选TCP还是UDP作为传输层协议。

TCP

说到 TCP 建立连接,相信大多数人脑海里肯定可以浮现出一个词,没错就是--“三次握手”。TCP 通过“三次握手”来建立连接,再通过“四次挥手”断开一个连接。在每次挥手中 TCP 做了哪些操作呢?

我们可以先明确一下 TCP 建立连接并且初始化的目标是什么呢?

1)初始化资源;

2)告诉对方我的序列号。

所以三次握手的次序是这样子的:

1)client端首先发送一个SYN包告诉Server端我的初始序列号是X;

2)Server端收到SYN包后回复给client一个ACK确认包,告诉client说我收到了;

3)接着Server端也需要告诉client端自己的初始序列号,于是Server也发送一个SYN包告诉client我的初始序列号是Y;

4)Client收到后,回复Server一个ACK确认包说我知道了。

其中的 2 、3 步骤可以简化为一步,也就是说将 ACK 确认包和 SYN 序列化包一同发送给 Client 端。到此我们就比较简单的解释了 TCP 建立连接的“三次握手”。

 

UDP

我们都知道 TCP 是面向连接的、可靠的、有序的传输层协议,而 UDP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值