TCP和UDP的区别和优缺点
区别
- TCP面向连接,UDP无连接,即发送数据前不需要建立连接
- TCP提供可靠的服务,也就是说TCP传输的数据无差错,不丢失,不重复,且按时序到达(TCP通过校验和,重传控制,序号标识,滑动窗口,确认应答实现可靠传输,如丢包时的重发控制,还可以对次序混乱的分包进行顺序控制),UDP尽最大努力交付,即不保证一个可靠的交付
- UDP实时性强,工作效率比TCP高,适用于对高速传输和实时性有较高要求的通信。
- 每一条TCP连接只能是点对点的,UDP支持一对一,一对多,多对一,多对多的交互通信。
- TCP对系统资源的要求较多,UDP对系统资源的要求较少
- 编程流程上的区别
- 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的区别和优缺点相关推荐
- TCP和UDP的区别及优缺点
转载自:https://blog.csdn.net/li_ning_/article/details/52117463 TCP UDP TCP与UDP基本区别 1.基于连接与无连接 2.TCP ...
- 传输层协议TCP和UDP的区别详解
一.TCP协议 1.TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认.窗口.重传.拥塞控制机制,在数据传完后,还会断开连接用来节约系 ...
- TCP与UDP的区别!
TCP和UDP的优缺点及区别 TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认.窗口.重传.拥塞控制机制,在数据传完后,还会断开连接 ...
- TCP和UDP的区别整理
TCP和UDP的区别 TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认.窗口.重传.拥塞控制机制,在数据传完后,还会断开连接用来节约 ...
- TCP和UDP的区别(转)
TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信 ...
- 5.TCP和UDP的区别
定义:TCP(Transmission ControlProtocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络OSI模型 ...
- 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 ...
- 【转】TCP和UDP的区别
TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UDP协议与TCP/IP协议的联系,很多人犯糊涂了, 一直都是说TCP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/ ...
- udp 使用connect优点_一文搞懂TCP和UDP的区别
TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol ,用户数据报协议)都属于TCP/IP协议簇.TCP/IP协议集包括了超 ...
- TCP和UDP的区别(Socket)
TCP和UDP区别 TCP和UDP编程区别 TCP编程的服务器端一般步骤是: 1.创建一个socket,用函数socket(): 2.设置socket属性,用函数setsockopt(); * 可选 ...
最新文章
- favorites 不是一个有效的短文件名
- 940mx黑苹果驱动_专业黑苹果系统安装 win macos双系统10.13/14/15
- jpa映射json_如何使用JPA和Hibernate映射JSON集合
- 华为(英国)招聘CPU/GPU架构及系统软件工程师
- python底层源码_大师兄的Python机器学习笔记:统计学基础之底层代码实现(一)...
- .net core精彩实例分享 -- LINQ
- hung task日志linux,Linux Kernel Crash--hung_task_timeout_secs
- bash编程初体验之if
- JS杂谈系列-jquery-插件开发小记
- 为了中性含义替换man,英文可以引入拼音ren
- CAM350自动开短路检查教程
- MMKV_mmkv之基本介绍
- PyQt5实现局域网聊天工具
- ResultSet获取记录条数
- 计算机死机按什么恢复出厂设置,电脑怎么恢复出厂设置?win7恢复出厂设置教程...
- 【毕业设计/图像识别系列】基于凸包检测和重心距离法的指尖检测和识别【含Python源码】
- 5分钟超快速写,快写练习讲究快准狠~
- 【JVM】Object obj = new Object()
- Spring三大核心思想详解
- Kerbose 原理
热门文章
- 购物网站的设计与实现论文
- 侠客工具盒 v5.0 build 0313 bt
- 课设错误调试(一)No qualifying bean of type
- 产品读书《小米生态链战地笔记》
- 业务数据双中台助力实现大型医药集团
- STM32-RTC实时时钟-毫秒计时实现
- 网络编程在线英英词典之查询模块(五)
- Machine Learning: A Probabilistic Perspective——Chapter 1
- GAEA Winsieve v1.2 1CD(快速输入和打印结晶粒度分析曲线)
- java messagedigest_Java MessageDigest.getInstance返回的实例非线程安全