To LeeChange:
如果NAT给每个senssion分配不同的端口的话,“简单的程序处理”可能不能解决问题,因为如果NAT B也为每个senssion分配不同的端口,那么,Client A发给Client B与Server建立的会话的端口的消息根本不会到达Client B,因为对于NAT B而言,Client A的会话请求是不被信任的,这个时候可能需要采用端口猜测的办法,如果Client A、Client B与Server的session请求时间间隔比较短,端口猜测的准确率可以达到90%以上(没有详细的测试:)。
其实问题的关键是只要Client A和Client B能够建立一次会话,那么其他都可以解决了。