本帖最后由 VisualEleven 于 2012-01-07 20:49:22 编辑

解决方案 »

  1.   

    先看路由器原理 在看RFC NAT 在来提问,别太相信打洞!
    没多大区别 只是在路由表上留条记录而已。归根到底 我们是通过端口找到应用的 如果没有这条记录 路由器不知道这是谁的,也不会转发你的消息 UDP P2P NAT 只适用于一种模型,打洞是个技术活!
    上面说的已经回答了你这个问题!
      

  2.   

    我的问题不是路由表留记录,我是对文中的描述有疑惑。第一个问题,请大家看我对文中描述的理解是否正确
    1、内网机A向服务器发数据,服务器得到A的外网地址
    2、内网机B向服务器发数据,服务器得到B的外网地址
    3、内网机B想与内网机A通信,它告诉服务器
    4、服务器告诉内网机A,B要和它通信,于是A向B的外网地址发包
    5、根据文章的说法,此时A就可以和B的外网地址通信了。第二个问题是:
    这篇文章前面说“是不是Client A向这个地址发送信息Client B就能收到了呢?答案是不行”,而解决办法是“如果Client A想向Client B发送信息,那么Client A发送命令给Server S,请求Server S命令Client B向Client A方向打洞”“Server S命令Client B向Client A方向打洞”不就是B给A发信息么?
    前面说A给B发收不到,B给A发能收到么?
      

  3.   

    �ڶ������⣬B��A������Ϣһ�������ղ�����������ʱB���͵���Ϣ����·�����������¼�¼����¼��B�Ķ˿ں��ڲ�IP��Ȼ��A����B������Ϣ����ʱ·�����ͻ���ΪA�ǿ��ŵģ����Ǿ�ת���˴����ݰ��������������ģ���֪��·�����᲻����������£����Ե���ָ����
      

  4.   

    Client A与Client B如果都是内网,为什么要通过NAT呢,如果他两在一个网段可以直接通信,不在同一个网段需要建立路由。
    如果Client A与Client B一个是内网,一个是外网,当然需要通过NAT转换。做为外网的机器访问内网机器时,他只能看到NAT的地址,NAT通过端口映射与相应的内网机器建立连接
      

  5.   

    ClientA与ClientB是不同NAT后的内网机
      

  6.   

    楼上的都说完了, 很多NAT 是无法穿透的