区别

  1. TCP面向连接,UDP无连接,即发送数据前不需要建立连接
  2. TCP提供可靠的服务,也就是说TCP传输的数据无差错,不丢失,不重复,且按时序到达(TCP通过校验和,重传控制,序号标识,滑动窗口,确认应答实现可靠传输,如丢包时的重发控制,还可以对次序混乱的分包进行顺序控制),UDP尽最大努力交付,即不保证一个可靠的交付
  3. UDP实时性强,工作效率比TCP高,适用于对高速传输和实时性有较高要求的通信。
  4. 每一条TCP连接只能是点对点的,UDP支持一对一,一对多,多对一,多对多的交互通信。
  5. TCP对系统资源的要求较多,UDP对系统资源的要求较少
  6. 编程流程上的区别
  7. TCp报头20个字节,开销大,UDP报头八个字节

UDP比TCP有优势的原因

UDP以其简单传输快的优势,在越来越多场景下取代了TCP,如实时游戏。

(1)网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性。

(2)TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。

(3)采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送延时越来越大,基于UDP对实时性要求较为严格的情况下,采用自定义重传机制,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成影响。

UDP应用场景

1.面向数据报方式
2.网络数据大多为短消息
3.拥有大量Client
4.对数据安全性无特殊要求
5.网络负担非常重,但对响应速度要求高

TCP和UDP的区别和优缺点相关推荐

  1. TCP和UDP的区别及优缺点

    转载自:https://blog.csdn.net/li_ning_/article/details/52117463 TCP UDP TCP与UDP基本区别   1.基于连接与无连接   2.TCP ...

  2. 传输层协议TCP和UDP的区别详解

    一.TCP协议 1.TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认.窗口.重传.拥塞控制机制,在数据传完后,还会断开连接用来节约系 ...

  3. TCP与UDP的区别!

    TCP和UDP的优缺点及区别 TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认.窗口.重传.拥塞控制机制,在数据传完后,还会断开连接 ...

  4. TCP和UDP的区别整理

    TCP和UDP的区别 TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认.窗口.重传.拥塞控制机制,在数据传完后,还会断开连接用来节约 ...

  5. TCP和UDP的区别(转)

    TCP协议与UDP协议的区别     首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信 ...

  6. 5.TCP和UDP的区别

    定义:TCP(Transmission ControlProtocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络OSI模型 ...

  7. tcp和udp的区别和三次 四次挥握手 http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html...

    小结TCP与UDP的区别: 1.基于连接与无连接: 2.对系统资源的要求(TCP较多,UDP少): 3.UDP程序结构较简单: 4.流模式与数据报模式 : 5.TCP保证数据正确性,UDP可能丢包,T ...

  8. 【转】TCP和UDP的区别

    TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UDP协议与TCP/IP协议的联系,很多人犯糊涂了, 一直都是说TCP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/ ...

  9. udp 使用connect优点_一文搞懂TCP和UDP的区别

    TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol ,用户数据报协议)都属于TCP/IP协议簇.TCP/IP协议集包括了超 ...

  10. TCP和UDP的区别(Socket)

    TCP和UDP区别 TCP和UDP编程区别 TCP编程的服务器端一般步骤是: 1.创建一个socket,用函数socket(): 2.设置socket属性,用函数setsockopt(); * 可选 ...

最新文章

  1. favorites 不是一个有效的短文件名
  2. 940mx黑苹果驱动_专业黑苹果系统安装 win macos双系统10.13/14/15
  3. jpa映射json_如何使用JPA和Hibernate映射JSON集合
  4. 华为(英国)招聘CPU/GPU架构及系统软件工程师
  5. python底层源码_大师兄的Python机器学习笔记:统计学基础之底层代码实现(一)...
  6. .net core精彩实例分享 -- LINQ
  7. hung task日志linux,Linux Kernel Crash--hung_task_timeout_secs
  8. bash编程初体验之if
  9. JS杂谈系列-jquery-插件开发小记
  10. 为了中性含义替换man,英文可以引入拼音ren
  11. CAM350自动开短路检查教程
  12. MMKV_mmkv之基本介绍
  13. PyQt5实现局域网聊天工具
  14. ResultSet获取记录条数
  15. 计算机死机按什么恢复出厂设置,电脑怎么恢复出厂设置?win7恢复出厂设置教程...
  16. 【毕业设计/图像识别系列】基于凸包检测和重心距离法的指尖检测和识别【含Python源码】
  17. 5分钟超快速写,快写练习讲究快准狠~
  18. 【JVM】Object obj = new Object()
  19. Spring三大核心思想详解
  20. Kerbose 原理

热门文章

  1. 购物网站的设计与实现论文
  2. 侠客工具盒 v5.0 build 0313 bt
  3. 课设错误调试(一)No qualifying bean of type
  4. 产品读书《小米生态链战地笔记》
  5. 业务数据双中台助力实现大型医药集团
  6. STM32-RTC实时时钟-毫秒计时实现
  7. 网络编程在线英英词典之查询模块(五)
  8. Machine Learning: A Probabilistic Perspective——Chapter 1
  9. GAEA Winsieve v1.2 1CD(快速输入和打印结晶粒度分析曲线)
  10. java messagedigest_Java MessageDigest.getInstance返回的实例非线程安全