small_planet 2024-05-20 12:36 采纳率: 16.7%
浏览 4

端口限制型与对称型为什么不能打洞

NAT打洞
关于端口限制型与对称型打洞,假如A是端口限制性NAT,B是对称型NAT,C是服务器
1、A与C、B与C进行一次通讯,假设A发给C的IP和端口是IPA:PORTA,B发给C的IP和端口是IPB:PORTB1
2、C给B发消息,让B与A进行一次通讯,假设B发给A的IP和端口是IPB:PORTB2,B就有A的映射关系了,B能给A发了,B等A的回复
3、C给A发消息,让A给B回复,A给B的回复的IP和端口是IPA:PORTA,A也能给B发了
这样不是也能打洞吗,为什么其他地方都说端口限制型与对称型不能打洞,哪里有问题吗

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-05-20 12:36
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您想要解决的问题:

    您提问的目的是想要理解端口限制型NAT(Port Restricted Cone NAT)和对称型NAT(Symmetric NAT)为什么不能实现NAT穿透(NAT Hole Punching),以及在您提供的通信场景中,为什么这种打洞方式不能成功。

    问题出现原因:

    在端口限制型NAT和对称型NAT中,NAT设备会根据会话的发起者和目标来创建和维护映射关系。端口限制型NAT只允许从内部网络发起的特定外部端口的流量,而对称型NAT则要求每个会话的源地址和目的地址都必须是唯一的,即每次通信都需要建立一个新的映射。

    在您描述的场景中,A和B分别与C通信,C尝试协助A和B建立直接的通信连接。然而,由于端口限制型NAT和对称型NAT的限制,直接使用A和B之间通信的IP和端口可能无法成功建立连接。

    1. 端口限制型NAT:它只允许从内部网络发起的特定外部端口的流量。如果B没有主动向A发起连接,那么A的端口限制型NAT可能不会为B的IP和端口创建映射,从而导致B无法向A发送数据。

    2. 对称型NAT:它要求每个会话都必须是唯一的,这意味着即使B知道了A的IP和端口,由于没有主动从B发起到A的会话,对称型NAT也不会为这种通信创建映射。

    问题解决方案:

    要解决这个问题,通常需要使用第三方服务器(如C)来协助建立连接。然而,由于端口限制型和对称型NAT的限制,这种方法可能不总是有效。以下是一些可能的解决方案:

    1. 使用第三方中继服务:通过一个支持NAT穿透的中继服务,A和B可以通过该服务交换数据,而不是直接通信。

    2. 使用UPnP或NAT-PMP协议:这些协议可以帮助NAT设备自动配置端口映射,从而允许A和B之间的直接通信。

    3. 使用STUN/TURN/ICE协议:这些协议是专门为NAT穿透设计的,可以动态地发现和建立通信路径。

    提供代码:

    由于这个问题主要涉及网络层面的配置和协议,而不是具体的编程代码,因此不提供具体的代码示例。

    代码运行方式:

    这个问题的解决方案通常涉及网络配置和协议的使用,而不是运行代码。如果需要实现上述解决方案,可能需要在网络设备上进行配置,或者使用支持这些协议的软件。

    代码预期运行结果:

    由于没有具体的代码示例,无法提供预期的运行结果。但是,如果成功实现了NAT穿透,预期结果是A和B能够直接通信,无需通过第三方服务器。

    推荐相关链接:

    1. NAT穿透技术详解
    2. STUN, TURN, and ICE: Understanding WebRTC NAT Traversal
    3. Understanding NAT Types: Full Cone, Restricted, Port Restricted, and Symmetric
    4. NAT穿透技术研究
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月20日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上