首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UDP、TCP和端口转发

UDP、TCP和端口转发
EN

Stack Overflow用户
提问于 2022-09-05 09:05:42
回答 1查看 117关注 0票数 -1

我想建立一个对等连接(在C#中),而不需要来自任何客户端的网络配置(端口转发等等)。

我看到很多人说,NAT but是一种中间服务器的解决方案,它对我的需求很好,但留下了一个问题:为什么TCP需要端口转发,而UDP不需要端口转发?

当RUDP (可靠的udp)存在时,端口转发是否过时,因为它拥有TCP的优点,但不需要转发端口?

我很少看到任何人谈论UDP相对于TCP的这一优势。(这可能是一种劣势,但对我的需求来说是一种优势)。

我很想得到一个解释因为我在网上什么都找不到

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-05 09:54:06

TCP建立了两个主机之间的连接,另一方面UDP是火和遗忘。

NAT将重写传出数据包的IP地址(可能还有端口),并保留所有TCP连接的表,以便特定端口上的传入数据包可以转换为正确的IP/数据包。TCP连接使这更容易,因为NAT知道连接何时建立和断开。

因此,只有传入连接才需要显式端口转发。

在使用UDP时,NAT的工作方式大致相同,但是由于NAT确实有连接的概念,NAT可能会使用超时机制,因此主机需要不时发送数据包以重置超时并保持连接打开。由于缺乏连接,UDP孔穿孔工作,即一旦NAT映射被创建,主机就可以接收来自任何主机的UDP数据包,而不仅仅是它发送原始数据包给的主机。

然而,对于某些类型的NAT,UDP穿孔可能会失败,因此声称端口转发过时可能是一个夸张的说法。这将取决于具体的目的。

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

https://stackoverflow.com/questions/73606959

复制
相关文章

相似问题

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