首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么I2P使用UDP?

为什么I2P使用UDP?
EN

Network Engineering用户
提问于 2023-04-21 08:45:39
回答 2查看 45关注 0票数 0

UDP是不可靠的,为什么I2P (大蒜路由,一个替代Tor)使用UDP而不是可靠的替代: TCP?I2P不会因为UDP而变得不可靠吗?

EN

回答 2

Network Engineering用户

发布于 2023-04-21 11:33:54

除了Zac之外,我不能代表I2C的开发人员发言,但是这里有一些一般性的想法。

(1) UDP添加一个包含端口号和校验和的报头。您需要一个端口号来标识套接字。否则,它提供与发送原始IP数据包相同的服务类型。是的,这是最大的努力/不可靠。

(2)在不可靠服务的基础上建立可靠的服务。这基本上就是TCP所做的。然而,TCP有一种非常具体的方法来实现这种可靠性,这可能是不必要的和/或不适合某些应用程序的。除了可靠性之外,TCP还有许多其他机制,这些机制可能适合或不适合应用程序,最显著的是拥塞控制。

(3) UDP的大多数用法实际上涉及在UDP之上实现另一个协议,这更适合于所讨论的任务。正如Zac67所说,由于防火墙和NAT盒以及传输协议通常是OS内核的一部分,在UDP之上有另一个协议更容易。其中一个非常著名的例子就是QUIC。另一个例子是RTP (用于VoIP流量)。

(4)最后,如果你考虑建造隧道的任务,以隧道网络流量。Web流量是TCP,它旨在运行在不可靠的IP服务之上。不需要有可靠的隧道(因为TCP无论如何都会处理它),在某些情况下,可能会产生更多的问题,然后才能解决(堆栈中的两个TCP实例可能会相互不利地交互)。

票数 1
EN

Network Engineering用户

发布于 2023-04-21 10:26:13

一般答案:如果你需要/想要更多的控制传输,并愿意忍受送货跟踪和无序求助,那么你使用UDP。

TCP确保可靠的传递,但引入了您可能希望避免的额外开销和延迟。

可靠的UDP是一件事,但是由于IPv4 NAT的普遍存在以及在开放的互联网上几乎不可能使用TCP和UDP以外的其他协议,所以您可以在这两种协议之间进行选择。

至于xyz为什么使用UDP而不是TCP,您需要使用开发人员。还请注意,传输层上的协议在这里显式地脱离了主题。

票数 0
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/82974

复制
相关文章

相似问题

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