首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在线游戏如何在互联网上发送UDP数据包?

在线游戏如何在互联网上发送UDP数据包?
EN

Server Fault用户
提问于 2021-08-08 01:50:29
回答 1查看 996关注 0票数 1

使用UDP的在线多人游戏是如何通过互联网在网络之间传递数据包的?据我所知,客户端必须启用路由器上的端口转发,才能使数据包到达他们的计算机。这是大型在线游戏(WoW,暗黑破坏神等)需要玩家做的吗?

例如,我最近创建了一个处理udp流量的服务器。不管发件人寄了什么,它都会回音。我把它部署到互联网上的一个服务器上。我只能在启用端口转发后才能将回波返回给发送方,但是如果同一本地网络上有两个发件人,则这将无法工作。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2021-08-08 05:10:12

简短回答: NAT连接跟踪

需要记住的一点是,IPv4互联网上绝大多数路由器都是NAT路由器。

大多数NAT实现都是智能跟踪的,当您将UDP从内部客户端发送到某个地方时,您将有一个目的地端口和一个源端口。如果通信量与反向端口一起进入,则该通信量将被路由回您的客户端,并允许在大多数防火墙中使用。

具有跟踪功能的NAT/防火墙检测这些数据包是否相关,并将它们转发回来。

基于server在端口5000 UDP上注释的示例

  • 客户端为server:5000 (源client:5001 )发送数据包
  • 首先,NAT路由器将看到一个具有源ip和client:5001端口以及目的地server:5000的数据包。
  • 路由器在它的路上发送这个,并且将有NATip:NATport
  • 服务器接收到此消息,并创建对具有NATip:NATport源的server:5000的响应。
  • NAT接收到它,并具有源server:5000目的地NATip:NATport,它与发送出去的数据包相匹配(但源和目的地相反)
  • NAT仍然使用源client:5001将其发送给server:5000

源ip+port和目标ip+port创建可以跟踪的组合。(还有更多的细节,但这是最基本的)

更多的阅读,但我应该在这方面找到更好的文档,而不仅仅是引用我所见过的轶事证据。

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

https://serverfault.com/questions/1073855

复制
相关文章

相似问题

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