铁通用户访问不同的网络,IP地址和端口都可能会不一样,是否有办法实现UDP穿透呢?

解决方案 »

  1.   

    NAT穿透与否于什么ISP供应商没有关系,取决于NAT穿透本身貌似不是说铁通是个大的局域网,你可以试试直接连接
      

  2.   

    我测试过,有铁通A和B,有一个服务器S,A访问S,得到IP1:Port1,B访问S,得到IP2:Port2,这时让A根据这个信息发送UDP包到IP2:Port2,B那里没有收到任何数据。同样,B发送信息给A,A也得不到任何数据
      

  3.   

    也试过双方同时向从服务器得到的对方IP:Port发送数据,同样是没办法穿透
      

  4.   

    你先去看看NAT的原理吧
    在服务器交换A和B两个地址后,A和B是需要向对方发送连接消息的(俗称打洞),知道双方都收到对方的链接消息了,才能算是穿透成功
      

  5.   

    http://www.cnblogs.com/yrh2847189/archive/2007/06/20/790013.html
    看下这个,希望对你理解上有帮助~
      

  6.   

    NAT原理已经非常认真的看过,在四楼也提到,A和B已经同时向对方发送连接消息了。
    普通的电信,联通,一般的小区宽带也都打洞成功。一方是电信/网通,准确的说是Cone NAT,而另一方是铁通的话,也已经成功实现打洞。剩下的问题就是双方都是铁通的话,我实在是没办法实现穿透,所以才上来提问的。
      

  7.   

    你用的是铁通给分给你的IP还是你转接了一个路由,用的路由的IP?
    还有就是你的接入IP是什么形式的?局域网还是广域网?
    你说如果两个都是铁通的,就实现不了穿透,是不是铁通做了什么P2P之类的限制?
      

  8.   

    铁通宽带是这样的,比如有个位于铁通内网之内的普通家庭用户C,C访问一台电信的公网服务器S1,S1看到C的是IP1:Port1,C访问一台联通的公网服务器S2,S2看到C的是IP2:Port2。C访问另一台电信的公网服务器S3,S3看到C的是IP3:Port3。IP1,IP2,IP3大部分情况下是三个不同的IP地址,偶尔会是三个里面有两个一样。Port的话肯定是不一样的。也就是说,无法通过S来获取对方的IP和Port,从而导致无法实现穿透
      

  9.   

    仅仅是IP不同的不同的话,可以通过花生壳之类的动态域名解析来搞,端口也不一样的话,就麻烦了,你的这个NAT穿透很头疼呀
      

  10.   

    你这么说的话,可能是铁通是通过代理服务器去访问公网的,不同的ISP用不同的代理服务器
      

  11.   


    A前面的NAT设备是基于五元组的,例如:A--NAT---Server(固定IP).经过NAT之后是这样的:(IP1:Port1 --- IP2:80)
    IP1是NAT之后的IP、Port1是NAT之后的Port。IP2、80是你固定IP的端口和IP。此时,你让B给A发消息的时候,IP是这样的:
    IPb:PORT2----IP1:Port1(IP1、PORT1是你在Server上记录下来的)。但是,A前面的NAT设备发现IPb、PORT2不是由A访问过的地址和端口,因此是不让进入,这种属于一种严格的地址转化方式,现在大部分设备都是这样的。因此,你必须让B有能力伪造固定IP的源地址和端口对A发送报文。采用如下的报文发送:
    IP2:80---->IP1:Port1。这个报文是能穿越NAT的。但是麻烦的问题是这样的:运营商网络中,很可能会禁止非本机IP地址发出的报文。所以,NAT穿越是很困难的。尤其是两台处于私网的主机的穿越。