gpt4 book ai didi

tcp - 当某些协议(protocol)直接通过 IP 时,为什么还需要 UDP?

转载 作者:可可西里 更新时间:2023-11-01 02:33:55 26 4
gpt4 key购买 nike

据我所知,TCP 是拥塞控制和错误恢复或将信息从一个节点可靠地传递到另一个节点所必需的,它并不是传递信息最快的协议(protocol)。

某些路由协议(protocol)(例如 EIGRP 和 OSPF)直接运行在 IP 之上。甚至 ICMP 也直接通过 IP。

为什么甚至需要 UDP?它是否只是为了让开发人员/程序员可以根据数据包中包含的目标端口号来识别入站数据包应该发送到哪个应用程序?

如果是这种情况,那么在没有端口号信息的情况下,如何从直接位于 IP 之上的协议(protocol)收集的信息发送到适当的进程?

为什么语音和视频通过UDP发送?为什么不直接通过IP?

(请注意,我确实完全理解 TCP 的用例。我不是在问为什么要在 TCP 上使用 UDP,反之亦然。我是在问为什么要使用 UDP,以及某些协议(protocol)如何直接使用 IP 层。什么是UDP over IP 的附加优势或目的?)

最佳答案

您的问题在为什么 UDP 有用(比为什么需要 UDP)方面更有意义。

UDP 是 Internet Assigned Numbers Authority 认可的协议(protocol).如果您想编写基于数据报的网络协议(protocol)并且希望更好地使用 Internet 设备,UDP 会很有用。

路由器可以有规则来做一些事情,例如丢弃任何没有意义的数据包。因此,如果您尝试在由一台或多台路由器分隔的主机之间使用未分配的 IP 协议(protocol)号发送数据包,则数据包可能永远不会按您的预期交付。来自无法识别的 UDP 协议(protocol)的数据包可能会发生同样的情况,但这至少可以减少一扇门来担心您的数据包是否可以通过。

互联网端点(如主机)也可能进行类似的过滤。如果你想编写你自己的基于数据报的协议(protocol)并使用典型的主机操作系统,你更有可能需要将你的软件编写为一个特权进程,而不是内核扩展,如果你试图将它作为自己的IP 协议(protocol)(​​与使用 UDP 相比)。

希望这个回答有用!

关于tcp - 当某些协议(protocol)直接通过 IP 时,为什么还需要 UDP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47931830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com