Java开发-面试题-0028-TCP 和 UDP 的区别

更多内容欢迎关注我(持续更新中,欢迎Star✨)

Github:CodeZeng1998/Java-Developer-Work-Note

(技术)微信公众号:CodeZeng1998

(生活)微信公众号:好锅

其他平台:CodeZeng1998好锅

UDP(用户数据报协议)和 TCP(传输控制协议)是两种常见的传输层协议,它们有以下主要区别:

  1. 连接方式
    • TCP 是面向连接的协议。在数据传输前,需要建立一个可靠的连接(三次握手)。传输完成后,还要断开连接(四次挥手)。因此,TCP 适用于需要高可靠性的数据传输,如网页浏览、文件传输等。
    • UDP 是无连接的协议。在数据传输前不需要建立连接,也不保证数据的可靠性,因此传输速度较快。UDP 常用于实时应用,如视频直播、在线游戏、DNS查询等。
  2. 传输可靠性
    • TCP 提供可靠的数据传输。通过序列号、确认应答和重传机制,TCP 确保数据包按照正确顺序到达接收端,且不会丢失、重复或损坏。
    • UDP 不保证数据传输的可靠性。UDP 只负责将数据发送出去,不关心数据是否成功到达接收端,也没有重传机制。
  3. 数据传输顺序
    • TCP 保证数据按顺序传输和接收,数据包乱序到达时会进行排序
    • UDP 不保证数据的顺序。如果数据包顺序混乱,接收端直接处理,不进行重排
  4. 流量控制与拥塞控制
    • TCP 具有流量控制和拥塞控制机制,可以根据网络状况调整数据的发送速度,避免网络拥塞。
    • UDP 没有流量控制和拥塞控制,发送方会以恒定速度发送数据,不管网络状况如何。
  5. 传输效率
    • TCP 由于其可靠性和连接管理,传输效率相对较低,但适合需要精确、完整数据传输的场景。
    • UDP 传输效率高,因为它不需要维护连接状态,也没有重传机制,但适合对数据完整性要求不高的应用。
  6. 应用场景
    • TCP 常用于需要==准确传输和顺序传输==的数据,如HTTP、HTTPS、FTP、SMTP等。
    • UDP 常用于对==实时性要求较高但对数据可靠性要求不高==的场景,如VoIP、视频会议、流媒体、在线游戏、DNS查询等。

总结来说,TCP 适合对数据传输可靠性和顺序有高要求的场景,而 UDP 则适合对速度要求高且能够容忍部分数据丢失的场景。在这里插入图片描述


以上就是本文相关的所有内容了,如果发现有误欢迎评论指正,更多内容欢迎各位关注。

上图是由 Pic 生成的

关键词:Clearing the warehouse and running away


更多内容欢迎关注我(持续更新中,欢迎Star✨)

Github:CodeZeng1998/Java-Developer-Work-Note

(技术)微信公众号:CodeZeng1998

(生活)微信公众号:好锅

其他平台:CodeZeng1998好锅

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值