区分同一NAT后面的多个客户端

时间:2011-08-04 05:27:38

标签: c sockets nat

我有一个服务器X和2个客户端A和B在同一个NAT后面。 A和B需要在同一出站端口上分别与X形成10个TCP连接。 X应该只接受来自单个客户端的最多10个连接。所以我需要X在accept()之后立即从B告诉A. 是否有任何方法只使用TCP数据包中的信息来执行此操作,或者是否必须让客户端在建立连接后向服务器发送一些唯一ID?

1 个答案:

答案 0 :(得分:3)

在IP中,客户端仅通过其IP地址进行标识。如果两者之间存在NAT,则无法知道连接来自哪个客户端。

实际上,不同操作系统和操作系统版本的TCP / IP堆栈的工作方式略有不同,并且可能对客户端进行指纹识别。这很可能对你没用。