-
Notifications
You must be signed in to change notification settings - Fork 215
Open
Description
场景1:
例如客户端A处于内网,地址192.168.2.10:8001,第一次发送消息至公网服务S时,客户端A外网端口为10.0.0.1: 52000,有的NAT端口存活时间就30s,30s不持续向发送UDP数据包保活,则端口会被回收,则公网服务S再向62000发送数据时,端口已经被回收,导致客户端A无法正常收到数据,下次客户端A再次发送至S可能端口变为52001 ,服务S只能再向52001才能正常通信。
此处暂时是通过客户端频繁向公网服务S,定时30s发送数据包,保持端口存活,但同时服务S也会收到该数据包,但不进行回复。
请问有别的方式保活吗?能让NAT识别进行保活,但服务器端可不用收到保活消息。
P2P场景2:
服务S公网IP端口(18.181.0.31:1235),客户端A的内网地址(10.0.0.1:1234),外网地址(155.99.25.11:62000),客户端B内网地址(10.1.1.3:12345),外网地址(138.76.29.7:31000)。
当客户端A与服务S建立链接时,映射为18.181.0.31:1235 - 155.99.25.11:62000,客户端B与服务S建立链接映射为18.181.0.31:1235 - 138.76.29.7:31000。
服务S和客户端A和客户端B都可以正常通信,但客户端A和客户端B不能正常通信,当服务S告知客户端A,需要进行打通,打洞的目标地址为客户端B的地址(138.76.29.7:31000),此时客户端B这个外网分配的端口仅仅是NAT分配给客户端B与服务S进行通信的端口,而并不是客户端B应用程序所运行的真实端口,导致双方频繁进行打洞和发送消息,双方也无法进行交互。
请问如何解决?
Metadata
Metadata
Assignees
Labels
No labels