首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果UDP不可靠,为什么要在传输层使用它

如果UDP不可靠,为什么要在传输层使用它
EN

Stack Overflow用户
提问于 2012-08-14 10:08:00
回答 3查看 10.9K关注 0票数 5

对于这个愚蠢的问题,我很抱歉。

传输层的功能是可靠地传递消息。UDP本质上是不可靠的,那么我们为什么要在传输层使用它?

谢谢

编辑:只是为了澄清,我已经阅读了Wiki和其他来源。我的问题是

UDP是不可靠的(我知道为什么,它的优点和使用位置等),为什么不在其他层使用它(UDP),而不是传输层,这意味着可靠性。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-14 10:12:11

有时,快速、无停顿地发送数据比保证流的可靠性更重要。DNS使用UDP,因为DNS服务器和客户端之间的事务只包含一个数据包。如果数据包丢失,将根据客户端的请求进行重传。

同样,视频流通常使用UDP作为传输协议,因为偶尔丢失数据包是可以接受的。优选地,由于丢失分组而使图像质量受损,而不是由于TCP同步而使视频流遭受抖动或停顿(滞后)。

游戏也经常使用UDP,牺牲引擎精度来提高速度/用户体验。

可以在wikipedia article.的相关部分中找到这些和更多示例

编辑

UDP用于传输层,因为它是传输层协议。它提供“为应用程序提供端到端通信服务”(RFC1122)。

对于传输层协议,可靠性服务是可选的。

票数 13
EN

Stack Overflow用户

发布于 2012-08-14 10:21:12

之所以在传输层使用UDP,是因为这些层的设置方式。UDP本质上是用于将数据从点A传输到点B的协议,而不是作为应用程序或在硬件层传输数据。

在传输层,没有可靠性的假设,而是UDP是用于传输数据的协议。在7层网络风格下,它属于网络层和会话层之间的接口。传输层这个名字简单地说明了它的作用。有关开放系统互连模型的更多信息,请参阅wikipedia

UDP TLDR之所以在传输层,是因为它是用于数据传输的协议,因此它在传输层。所有处理数据传输的协议都属于这一类

票数 2
EN

Stack Overflow用户

发布于 2021-07-14 15:55:02

传输层类

代码语言:javascript
复制
Class 0 - Simple class
Class 1 - Basic error recovery class
Class 2 - Multiplexing class
Class 3 - Error Recovery and multiplexing class
Class 4 - Error detection and recovery class
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11944825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档