TCP和UDP的区别

如何理解 TCP 和 UDP?各自的应用场景有哪些?

UDP(User Dategram Protocol),用户数据包协议,是一个简单的面向数据报的通信协议,即对应用层交下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层

也就是说无论应用层交给 UDP 多长的报文,他统统发送法,一次发送一个报文

而对接收方,接到后直接去除首部,交给上面的应用层就完成任务

UDP 包头包括4个字段,每个字段占用2个字节(即16个二进制位),标题短,开销小

特点如下:,

1、UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的服务

2、传输中出现丢包,UDP 也不负责重发

3、当包的到达顺序出现乱序时,UDP 也没有纠正功能

4、并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制,即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥堵行为

TCP(Transmission Control Protocol) 传输控制协议,是一种可靠的、面向字节流的通信协议,把上面应用层交下来的数据看成无结构的字节流来发送

可以想象成流水形式的,发送方 TCP 会将数据放入 “蓄水池“(缓冲区),等到可以发送的时候就发送,不能发送就等着,TCP 会根据当前网络的拥塞状态来确定每个报文段的大小

TCP 报文首部有20 个字节,额外开销大

特点如下

1、TCP充分地实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在 UDP 中都没有

2、此外,TCP 作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量浪费

3、根据 TCP 的这些机制,在 IP 这种无连接的网络上也能实现高可靠性的通信(主要通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现)

区别:

1、TCP 是面向连接的协议,建立连接 3 次握手、断开连接 4 次挥手,UDP 是面向无连接,数据传输前后不能连接连接,发送端只负责将数据发送到网络,接收端从消息队列读取

2、TCP 提供可靠的服务,传输过程采用流量控制、编号与确认、计时器等手段(开销)确保数据无差错,不丢失。UDP则尽可能传递数据,则不保证传递交付给对方

3、TCP面向字节流,将应用层报文看成一串无结构的字节流,分解为多个TCP报文段传输后,在目的站重新装配,UDP 协议面向报文,不拆分应用层报文,只保留报文边界,一次发送一个报文,接收方去除报文首部后,原封不动将报文交给上层应用

4、TCP 只能点对点双全工通信。UDP 支持一对一、一对多、多对一和多对多的交互通信

可以看到:TCP 应用场景适用于对效率要求低,对准确性要求高或者要求有连接的场景,而 UDP 使用场景为对效率要求高,对准确性要求低的场景

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值