UDP协议为什么比TCP协议快的原理

2 篇文章 0 订阅
订阅专栏

一直以来,大家知道相对于TCP协议,UDP协议快,但是具体快在哪里呢,怀着好奇的心态,研究一番,记录下来供大家学习。

 

1.工作位置:

    首先,在OSI七层模型中,TCP,UDP工作在传输层,使源端主机和目标主机上提供端到端的会话,也就是我们常说的端口号,因为ip协议可能分组经过不同的路由路径传输,因此主机的ip层不保证顺序,也不保证一定收到,因此我们在传输层就需要做到一些事情:

  • 提供端到端的数据传递
  • 顺序保证
  • 可靠性保证

 

2.TCP与UDP的区别

  • 首先为什么TCP需要连接呢?

TCP协议需要保证数据传输可靠,那么我们通过连接(三次握手)这个过程确定,双方都可以收发数据。如果连接都连接不上,那么就可以确定双方的通信不可达,建立连接失败,没办法可靠的传输。

  • UDP为什么不需要连接呢?

UDP只提供端到端的数据传递,不做可靠性校验,因此不需要连接去确认

  • UDP广播机制

广播UDP与单播UDP的区别就是IP地址不同,广播使用广播地址255.255.255.255,将消息发送到在同一广播网络上的每个主机。值得强调的是:本地广播信息是不会被路由器转发。当然这是十分容易理解的,因为如果路由器转发了广播信息,那么势必会引起网络瘫痪。这也是为什么IP协议的设计者故意没有定义互联网范围的广播机制。

  • 数据传输格式

UDP使用数据报的方式传递数据,TCP使用数据流的方式传递数据,所谓数据报,数据流,其实是一种承载数据的方式。这其实与这两个协议本身的传输机制有关,tcp提供可靠的传输机制,也就是说只要是被发送的数据都会被接收方接收到,并且双方也知道被正确接收了,这就有一种现象:一段比较大的数据被分段传送出去,对于接收方而言,就像一股水流一样不断地并且一滴不漏的被接收(这个过程中有确认机制,更加形象地类似水流)。而udp不负责可靠传输,他只知道尽最大的努力把数据发送出去,并不关心数据是否被接收方实际接收,对于接收方而言,他接收数据的情形是:来一个我接受一个,并不关心中间是否有丢失的数据报,就像飞机空投物资一样,并不是投一包东西,然后地面确认一下,再投第二包东西(这种方式在无形中使得物资之间有了一种默契),而是多架飞机一起往下投物资,没有顺序可言,哪个先下来我先接那个,并且投下的物资是否在半空被老鹰叼走了地面并不关心(这种方式下,不同物资之间似乎相互独立,从传输层理解的话就是每个udp报文独立存在,他们的联系是发生在他的高层应用层)。再结合到数据的发送和接收上,对于接收端而言并无顺序可言,数据报之间没有约定的连接格式,每个udp数据报之间就像独立的个体一样。因此数据报是直接打包,直接发送,而数据流有可能分包发送,然后顺序到达。从这里可以看出来,数据报适合小的数据,数据流可以进行大文件传输。

  • TCP可靠性保证:

1.三次握手,四次分手,保证连接,断开连接正常。

图形来源:https://baijiahao.baidu.com/s?id=1654225744653405133&wfr=spider&for=pc

2.流量控制——滑动窗口

来源: https://zhuanlan.zhihu.com/p/145260638

TCP滑动窗口技术通过动态改变窗口大小来实现对端到端设备之间的数据传输进行流量控制。

如图所示,主机A和服务器A之间通过滑动窗口来实现流量控制。为方便理解,此例中只考虑主机A发送数据给服务器A时,接收端服务器A通过滑动窗口进行的流量控制。主机A向服务器发送4个长度为1024字节的数据段,其中主机A的窗口大小为4096个字节。服务器A收到第3个数据段后,缓存区满,第4个数据段被丢弃。服务器以ACK3073响应,窗口大小调整为3072,表明服务器的缓冲区只能处理3072个字节的数据段。于是主机A改变其发送速率,发送窗口大小为3072的数据段。这样子,主机A下次发送的数据段的窗口大小都是3072。

3.拥塞控制

当一个网络面对的负载超过了它了处理能力时,拥塞就会发生。若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降

来源: https://www.bilibili.com/video/BV1kJ41177r8?from=search&seid=10801519207461868811

慢开始:当cwnd < ssthresh时,让cwnd从1开始指数增加拥塞窗口的值

拥塞避免:当cwnd > ssthresh时, 通过线性增长cwnd的值,降低拥塞的概率

快重传:在丢包发生的情况下,接收端重复发送上一次接受的重复确认,发送方收到了累计3个连续的报文段的重复确认,立即重传之后的报文段

快恢复:收到3个重复确认,不启动慢开始,执行快恢复

来源: https://www.bilibili.com/video/BV1kJ41177r8?from=search&seid=6560779749311999079

 

  • 首部开销

UDP:

TCP:

由上图可见,UDP报头,大小为8字节,TCP为固定头20字节,以及选项最多可达40字节。

 

3.UDP为什么比TCP快:

从上面的分析,我们可以得出以下结论:

1.当代网络远距离采用光纤传输,给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性(基于TCP/IP协议开发出来是在1973年,而真正的大面积应用是在1983年。现状的网络状况以及有了很大的改善)。

2.TCP为了可靠性保证,增加了3次握手4次挥手,复杂的拥塞控制,以及流量控制,让网络传输的延迟进一步增加。

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

4.基于滑动窗口,接收方因为需要对保证顺序,因此前面的包没到,不会继续去处理后续的包。

5.TCP头部的大小,进一步增加了,传输的数据量。

TCP-UDP协议详解
12-08
TCP协议基本原理,UCP协议基本原理,Netsat实验。
UDPTCP的对比
热门推荐
编程鸟
10-01 3万+
1、报头 (1)TCP协议报头 TCP指传输控制协议,其报头格式如下: TCP协议中的六个标志分别是,URG、ACK、PSH、RST、SYN、FIN。 1)UGR(紧急):UGR=1表示紧急指针字段有效。它告诉系统此报文段有紧急数据,应当尽传送。从报文段的开头,到紧急指针指向的地方就是紧急数据。 2)ACK(确认):ACK=1时,确认号字段才有效。 3)PSH(推送):让对方立即收到响应。与U...
TCPUDP协议
qq_55936261的博客
12-14 2317
TC P协议是面向连接的协议。而UDP协议是无连接的协议TCP协议的传输是可靠的,而UDP协议的传输“尽力而为”; TCP协议可以实现流控,而UDP不行; TCP协议可以实现分段,而UDP不行; TCP传输速度较慢,占用资源较大;而UDP传输速度,占用资源小; 面向连接 设备在正式传输数据之前,先使用预备的协议建立点到点的连接,之后再传输数据。 TCP协议---是可变长头部 URG 紧急标记位 紧急指针 ACK 确认标记位 PSH push标记位...
面试官问你 TCP/IP 协议了吗?
zone_的博客
06-21 462
久违的原创,哈哈,最近太难了,有空跟大家闲聊一下。TCP/IP 协议族通常我说 TCP/IP 是指 TCP/IP 协议族。它是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议...
UDPTCP 相比,为什么前者会更一些?
只作为个人备忘录
09-26 7175
单纯说UDP是没道理的,UDP是个数据报协议TCP是面向连接的协议,这两个东西可比性不像你想象的那么强。 一定要说UDPTCP的地方无非就是UDP没有流控,没有握手,没有成功确认,一个数据包发过去就不管,从这个角度上说TCP是开销大一点。 但UDP的“”带来的问题是它不可靠,的确有些场景就足够了,比如流媒体,偶尔丢失错乱几个包不是大问题,但更多的情况下,数据的正确性是一个必选项,此
为什么 UDP 有时比 TCP 更有优势
云满笔记
06-16 2326
随着网络技术飞速发展, 网速已不再是传输的瓶颈, UDP 协议以其简单、传输的优势, 在越来越多场景下取代了 TCP。CDN 服务商 Akamai(NASDAQ: AKAM) 报告从 2008 年到 2015 年 7 年时间, 各个国家网络平均速率由 1.5Mbps 提升为 5.1Mbps, 网速提升近 4 倍。网络环境变好, 网络传输的延迟、稳定性也随之改善, UDP 的丢包率低于 5%, 如果再使用应用层重传, 能够完全确保传输的可靠性。为了提升浏览速度, Google 基于 TCP 提出了 SPDY
UDP广播概述
anton_99的博客
06-21 1538
网络信息传输主要有4种方式:单播、任播、组播、广播。在之前章节的介绍中,采用的都是单播(唯一的发送方和接收方)的方式。但实际很多时候,需要把数据同时发送给局域网中的所有主机。广播(与组播)可以为应用程序提供两种服务,包括数据分组发送至多个目的地,以及通过客户端请求发现服务器。发送到多个目的地,指的是应用程序将信息发送至多个收件方。例如,邮件或新闻分发给多个收件方。如果没有广播(或组播)这些...
TCPUDP的区别
w259149的博客
09-25 1130
TCP协议TCP协议是传输控制协议,它是面向连接的可靠传输层协议,在传输数据之前必须建立连接UDP协议UDP协议是用户数据报协议,它是无连接的不可靠传输层协议,在传输数据之前不需要建立连接。
UDP广播原理及步骤
peijian1998的专栏
05-19 1万+
UDP收/发广播包原理及步骤       如果网络中两个主机上的应用程序要相互通信,其一要知道彼此的IP,其二要知道程序可监听的端口。因为同一主机上的程序使用网络是通过端口号来区分的。 UDP Socket的使用过程: 1. 初始化网络库 2. 创建SOCK_DGRAM类型的Socket。 3. 绑定套接字。 4. 发送、接收数据。 5. 销毁套接字。 6. 释放网络库。 广播数
TCPUDP的区别是什么?哪种协议
weixin_44810982的博客
11-25 2205
TCP(传输控制协议)是最常见的在线网络协议TCP是非常可靠的,它被用于从浏览网页(HTTP),发送电子邮件(SMTP)和传输文件(FTP)的所有事情。TCP用于这样的情况:一个设备发送的所有数据都必须被另一个设备完整地接收。例如,当您访问一个网站时,TCP用于确保呈现页面所需的文本、图像和代码的所有内容都到达。如果没有TCP,图像或文本可能会丢失,或以错误的顺序到达,从而破坏页面。TCP是一种面向连接的协议,这意味着它在传输数据之前在两台设备之间建立连接,并在整个传输过程中保持该连接。
TCP协议簇及UDP的工作原理.docx
08-18
该文档中讲述了IP、TCPUDP协议,描述了TCP的三次握手以及四次挥手过程。
基于C#UDP协议的同步通信实现代码
12-31
总结基于C#UDP协议的同步通信。  二、实验平台 Visual Studio 2010  三、实验原理 UDP传输协议TCP传输协议的区别可查阅相关文档,此处不再赘述。  四、实例 4.1 采用socket实现UDP 由于UDP是一种无连接的协议...
传输层:深入研究传输层的工作原理和技术,包括TCPUDP协议.md
10-28
传输层:深入研究传输层的工作原理和技术,包括TCPUDP协议
计算机网络——TCPUDP协议分析
01-16
掌握TCPUDP协议原理,理解TCPUDP协议的分组格式。
X00010006 第6章 TCPUDP基本原理
09-14
X00010006 第6章 TCPUDP基本原理
UDP就一定比TCP吗?
代码时光
05-26 848
TCP为了实现可靠性,引入了重传机制、流量控制、滑动窗口、拥塞控制、分段以及乱序重排机制。而UDP则没有实现,因此一般来说TCPUDP慢。TCP是面向连接的协议,而UDP是无连接的协议。这里的”连接“其实是,操作系统内核在两端代码里维护的一套复杂状态机。大部分项目,会在基于UDP的基础上,模仿TCP,实现不同程度的可靠性机制。比如王者农药用的KCP其实就在基于UDP在应用层里实现了一套重传机制。
大文件传输小知识 | UDPTCP哪个传输速度
最新发布
镭速的博客
11-07 815
通过这种动态智能切换协议的机制,镭速可以根据实际网络状况,自动选择最佳的数据传输方式,实现更好的用户体验和数据传输效率。同时,由于TCPUDP协议具有不同的特点,镭速的智能切换也使得它可以适应不同的业务场景和需求,提高了其应用的灵活性和适用性。当网络质量较好时,镭速会自动选择TCP协议进行传输,保障数据的稳定和可靠性,当网络质量较差,镭速会自动切换到UDP协议,以实现更低的延迟和更高的传输速度性。总之,无论是马加鞭的实时传输,还是稳如泰山的可靠传输,UDPTCP都各有所长。数据包越小,传输速度
TCPUDP的最完整的区别
Aplumage的专栏
06-15 131
TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致T
关于udptcp的一些比较
谢谢考拉的专栏
02-07 6369
作者:hailiang huang 链接:https://www.zhihu.com/question/20292749/answer/85286488 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 QQ为什么实用udp         很多人提到keepalive,TCP无法感知网络中断这些问题。。。这个算是TCP一个容易踩的坑,但这并不能说明UDP就比TCP好(或者
TCP/UDP/IP等网络通信协议的基本原理
10-19
TCP/IP是一组协议,包括TCPUDP、IP等,用于在网络上进行通信。其中,IP协议负责将数据包从源地址传输到目的地址,而TCPUDP协议则负责在源地址和目的地址之间建立连接并传输数据。TCP协议是面向连接的,可靠的,基于字节流的传输层通信协议,它通过三次握手建立连接,保证数据的可靠传输。UDP协议则是面向无连接的,不可靠的,基于数据报的传输层通信协议,它不需要建立连接,直接发送数据包,适用于实时性要求高的场景。在网络编程中,我们需要根据具体的需求选择合适的协议进行通信

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 腾讯游戏unity客户端面试题 13798
  • Unity URP中的Post-processing 12861
  • svn update 遇到 None of the targets are working copies问题的解决 12236
  • 腾讯2020 unreal虚幻面试题 9668
  • Unity中的Compute Shader 9115

分类专栏

  • 语言 2篇
  • 错误记录 6篇
  • 性能分析 3篇
  • unity 18篇
  • 动画 1篇
  • 架构 10篇
  • bug 4篇
  • 渲染 10篇
  • 面试 2篇
  • 工具 3篇
  • 网络 2篇
  • lua 2篇
  • 打包自动部署 5篇
  • c#性能 7篇
  • 帧同步 1篇
  • 物理 1篇

最新评论

  • 网络游戏外挂与反外挂的研究

    2301_81738921: 厉害啊,我想拜入你门下

  • 网络游戏外挂与反外挂的研究

    popcorn丶: 语言基础的话,汇编得学习一下

  • 网络游戏外挂与反外挂的研究

    popcorn丶: 得学习底层原理,可以推荐给你一本书,《逆向工程核心原理》

  • 网络游戏外挂与反外挂的研究

    海の味²º¹9: 逆向怎么学习啊 新手

  • 网络游戏外挂与反外挂的研究

    2301_80262287: 大神大神,传奇辅助能帮忙破解么?可以有偿

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • c# #if 与 Conditional属性宏的区别
  • VS代码编译和运行能通过,#include,命名空间,类名等代码显示红线
  • c# string字符串连接原理
2024年1篇
2023年1篇
2022年6篇
2021年11篇
2020年23篇
2019年21篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司崇左SEO按天计费龙岩网站优化按天计费推荐延安优化玉溪网站建设设计价格清远百度网站优化排名公司资阳模板推广推荐龙华网页设计公司丽水至尊标王价格泉州关键词排名包年推广价格观澜网站排名优化价格长春seo排名泰安网站推广工具推荐兴安盟SEO按天收费哪家好焦作网站优化推广公司梧州网站制作设计推荐吴忠网站推广哪家好长治网站优化按天收费推荐柳州网站开发公司常德建网站推荐鹰潭网站优化排名公司本溪企业网站制作哪家好安顺百度网站优化排名漯河模板制作眉山模板网站建设哪家好石家庄网站优化排名公司黄石网页设计哪家好吕梁企业网站建设潮州网站推广工具推荐松岗SEO按天收费价格朝阳设计公司网站价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化