STORE
Home
Discovery Queue
Wishlist
Points Shop
News
Stats
COMMUNITY
Home
Discussions
Workshop
Market
Broadcasts
About
SUPPORT
Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
Store Page
Stellaris
All
Discussions
Screenshots
Artwork
Broadcasts
Videos
Workshop
News
Guides
Reviews
All
Discussions
Screenshots
Artwork
Broadcasts
Videos
Workshop
News
Guides
Reviews
Stellaris
Store Page
Stellaris
> Guides
> Codexvn's Guides
This item has been removed from the community because it violates Steam Community & Content Guidelines. It is only visible to you. If you believe your item has been removed by mistake, please contact Steam Support.
This item is incompatible with Stellaris. Please see the instructions page for reasons why this item might not work within Stellaris.
Not enough ratings
Steam的P2P联机优化
By Codexvn
Steam的P2P联机优化
Award
Favorite
Favorited
Unfavorite
Share
This item has been added to your Favorites.
Created by
Codexvn
Offline
Category: MultiplayerLanguages: Simplified Chinese
Posted
Updated
Dec 5, 2024 @ 11:06pm
Sep 2 @ 7:00am
268
Unique Visitors
6
Current Favorites
Guide Index
Overview
P2P实现的原理
检查Steam是否真的使用了P2P
优化思路
相关链接
更新日志
Comments
P2P实现的原理
Steam 数据报中继https://partner.steamgames.com/doc/features/multiplayer/steamdatagramrelay?l=schinesehttps://partner.steamgames.com/doc/api/ISteamNetworkingSockets#CreateListenSocketP2Phttps://partner.steamgames.com/doc/api/ISteamNetworkingSockets#ConnectP2PSteam的SDK中提供了可以直接用于P2P的接口,游戏只需要实现接口就实现P2P连接Steam中的对等网络及共享IP 地址https://help.steampowered.com/zh/faqs/view/1433-AD20-F11D-B71E参考这篇文章介绍 使用中继进行对等连接在建立直接连接时,视防火墙配置而定,NAT 遍历不一定总能成功。 如果失败,玩家就需要利用中继来和彼此交流。 每个玩家的防火墙都将接收来自中继的数据包。 (这篇文章很好地详细描述了这一流程。) 使用中继不需要和另一玩家分享您的 IP 地址,这是其好处之一。 通常,只有在无法建立直接连接的情况下,才会使用中继作为最后的方案,因为这项服务开销相对较大。 在这种情况下,即使不可能建立直接连接,双方也已经相互交换了 IP 地址,因此还是有可能发生 DoS 攻击。 如果一方或双方对等端拒绝分享 IP 地址,那么就不可能建立直接连接,NAT 遍历将会请求使用中继。 双方对等端必须都分享其 IP 地址,才能建立直接连接。使用 Steam 网络 API 的游戏又如何呢?如果游戏使用了最新的网络 API(ISteamNetworkingSockets 和 ISteamNetworkingMessages),那么流量将会通过 Steam 数据报中继(SDR)进行中继。这是 Valve 遍布全球的主干和中继网络,您可以决定何时允许某款应用分享您的 IP 地址。 在 “Steam”/“设置”/“游戏中”/“Steam 网络”中,有可以控制何时分享您 IP 地址的选项: 从不永不和任何玩家分享您的 IP。 永远中继对等流量。 始终始终允许应用和所有玩家分享您的 IP。 如果另一玩家也分享了其地址,则可能会建立直接连接; 否则,进行中继。 默认除非出现必须避免 Ping 时间过长的情况,否则此选项不会分享您的 IP 地址。 仅限好友仅与您好友列表中的用户分享您的 IP。 也就是说如果相互之间允许IP分享,Steam会自动检测NAT,如果NAT能够打通那么就会直接建立P2P连接,否则会使用服务器进行中继。
检查Steam是否真的使用了P2P
在这一步,我们使用了Easytier进行了组网,使用NetLimiter检查进程所连接的IP和端口,P社的Stellaris进行验证开启共享IPSteam -> 设置 -> 游戏中 -> Steam网络 -> 分享IP改为始终不太确定是不是实时生效,所以这一步改完了之后再把Steam退掉组网后进入游戏,加入房间 这一步需要注意,一定要先组网并验证相互之间已经连接成功,然后再开Steam然后进游戏使用NetLimiter检查进程所连接的IP和端口10.144.6.xxx是N2N组网后的虚拟内网网段可以看到确实是走了内网,同时在同步存档的时候可以观察到内网的大流量,不过是Steam建立了链接,推测是群星使用了Steam的SDK后由Steam转发了流量
优化思路
已经确定Steam的P2P可以走虚拟局域网,接下来就是优化组网的效果 可以阿里云的按量计费机器,2H2G,100Mbps带宽的流量,同时支持停机不计费和定时释放实例。会赠送20G的免费流量,按照6H小时开一把群星来算的话,6H*0.11/H+免费流量,费用很低,而且在用完之后可以停掉实例,后续使用的时候再开。 有时候就算P2P打通隧道,但是由于跨省结算的原因,可能会导致UDP不稳,此时可以考虑强制走中继模式来提升稳定性,个人是推荐直接走中继模式
相关链接
https://github.com/EasyTier/Easytier https://easytier.cn/
更新日志
2025-09-02 将N2N换成了更易用且性能更高的Easytier
5 Comments
<
>
Codexvn
[author]
Sep 2 @ 6:49am
@8080 这个功能是起什么作用的?我发现界面上没有东西
Codexvn
[author]
Sep 2 @ 6:49am
@uʍoi radmin没试过zerotier不太推荐,因为没法强制中继,p2p由于qos的原因大概率效果不会特别好,就算自己搭建plant如果打通了p2p反而有可能是坏效果EasyTier我比较推荐,使用简单而且性能也高这个教程我后续会更新成EasyTier,不再推荐n2n
umoi
Sep 1 @ 9:01pm
radmin zerotier这类软件会有帮助吗
isanybodythere
Jan 6 @ 8:56pm
谢谢你对我帮助很大
8080
Dec 22, 2024 @ 9:54am
如果游戏是通过steam匹配的话直接在库界面按ctrl+\即可查看连接详情
<
>
Share to your Steam activity feed
Link:
You need to sign in or create an account to do that.
Sign In
Create an Account
Cancel
Update
© Valve Corporation. All rights reserved. All trademarks are property of their respective owners in the US and other countries.Some geospatial data on this website is provided by geonames.org.
Privacy Policy
| Legal
| Accessibility
| Steam Subscriber Agreement
| Cookies
View mobile website