基于UDP的穿越NAT设备的方法及系统.pdf

上传人:g**** 文档编号:1104098 上传时间:2018-03-31 格式:PDF 页数:15 大小:523.18KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010284135.7

申请日:

2010.09.17

公开号:

CN101938532A

公开日:

2011.01.05

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/12申请日:20100917|||公开

IPC分类号:

H04L29/12; H04L29/06

主分类号:

H04L29/12

申请人:

北京神州泰岳软件股份有限公司

发明人:

崔晓宇; 马昭

地址:

100089 北京市海淀区万泉庄路28号万柳新贵大厦A座5层

优先权:

专利代理机构:

北京路浩知识产权代理有限公司 11002

代理人:

王莹

PDF下载: PDF下载
内容摘要

本发明公开了一种基于UDP的穿越NAT设备的方法,包括:客户端通过位于公网的探测服务器获取经过NAT映射后的IP地址和端口,并探测自身的NAT类型,NAT类型包括:开放型、防火墙型、堵塞型、对称型、全锥型、IP限制锥型及端口限制锥型;发送方客户端将经过NAT映射后的IP地址和端口及NAT类型通过位于公网的SIP服务器发送给接收方客户端;接收方客户端根据双方的NAT类型决策出双方各自的穿越策略,并将穿越策略通过所述SIP服务器发送给发送方客户端;发送方客户端和接收方客户端根据穿越策略进行穿越,以建立双方客户端的UDP连接。本发明还公开了一种基于UDP的穿越NAT设备的系统。本发明在不同类型NAT之间建立UDP通路,在传输大文件时减小服务器的负荷。

权利要求书

1: 一种基于 UDP 的穿越 NAT 设备的方法, 其特征在于, 包括以下步骤 : S1 : 客户端通过位于公网的探测服务器获取经过 NAT 映射后的 IP 地址和端口, 并探测 自身的 NAT 类型 ; S2 : 发送方客户端将经过 NAT 映射后的 IP 地址和端口及 NAT 类型通过位于公网的 SIP 服务器发送给接收方客户端 ; S3 : 所述接收方客户端根据双方的 NAT 类型决策出双方各自的穿越策略, 并将穿越策 略通过所述 SIP 服务器发送给发送方客户端 ; S4 : 发送方客户端和接收方客户端根据穿越策略进行穿越, 以建立发送方客户端和接 收方客户端的 UDP 连接。
2: 如权利要求 1 所述的基于 UDP 的穿越 NAT 设备的方法, 其特征在于, 所述步骤 S1 中 对 NAT 类型的探测在所述客户端登录服务端时进行, 并将探测到的 NAT 类型缓存到客户端 本地。
3: 如权利要求 1 或 2 所述的基于 UDP 的穿越 NAT 设备的方法, 其特征在于, 所述步骤 S1 中获取经过 NAT 映射后的 IP 地址和端口的步骤包括 : 所述客户端向所述探测服务器发送数据包 ; 所述探测服务器收到所述数据包后将所述经过 NAT 映射后的 IP 地址和端口发送给所 述客户端。
4: 如权利要求 1 或 2 所述的基于 UDP 的穿越 NAT 设备的方法, 其特征在于, 所述 NAT 类 型包括 : 开放型、 防火墙型、 堵塞型、 对称型、 全锥型、 IP 限制锥型及端口限制锥型, 所述步 骤 S1 中客户端探测自身 NAT 类型的步骤包括 : S101 : 向所述探测服务器发送探测请求, 要求探测服务器返回给客户端数据所使用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都相同 ; S102 : 判断是否收到探测服务器的回应数据包, 若未收到探测服务器的回应数据包, 则 NAT 类型为堵塞类型, 若收到探测服务器的回应数据包, 则执行步骤 S103 ; S103 : 检查所述回应数据包中的 IP 是否和客户端本地 IP 相同, 若相同, 则执行步骤 S104, 否则执行步骤 S106 ; S104 : 再次向所述探测服务器发送探测请求, 要求探测服务器返回给客户端数据所使 用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都不相同 ; S105 : 判断是否收到探测服务器的回应数据包, 若收到回应数据包, 则 NAT 类型为开放 类型, 否则为防火墙型 ; S106 : 记录步骤 S103 的回应数据包中的端口, 并检测 NAT 属性 ; S107 : 再次向所述探测服务器发送探测请求, 要求探测服务器返回给客户端数据所使 用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都不相同 ; S108 : 判断是否收到探测服务器的回应数据包, 若收到回应数据包, 则 NAT 类型为全锥 形, 否则执行步骤 S109 ; S109 : 向另一台探测服务器发送探测请求, 要求探测服务器返回给客户端数据所使用 的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都相同 ; S110 : 判断端口是否和步骤 S106 记录的端口相同, 若端口和步骤 S106 记录的端口不相 同, 则 NAT 类型为对称型, 否则执行步骤 S111 ; 2 S111 : 再次向所述另一台探测服务器发送探测请求, 要求探测服务器返回给客户端数 据所使用的 IP 和端口, 与客户端连接的探测服务器的 IP 相同但端口不相同 ; S112 : 判断是否收到探测服务器的回应数据包, 若收到回应数据包, 则 NAT 类型为 IP 限 制锥型, 否则为端口限制锥型。
5: 如权利要求 4 所述的基于 UDP 的穿越 NAT 设备的方法, 其特征在于, 所述步骤 S4 中 根据穿越策略穿越过程中, 当客户端 A 的 NAT 为开放型, 客户端 B 的 NAT 为除了防火墙型的 其它类型时, 包括以下步骤 : B 端向 A 端发送探测包, 等待探测回应 ; A 端收到探测包后向 B 端发送探测回应 ; B 端收到探测回应后, 探测结束。
6: 如权利要求 4 所述的基于 UDP 的穿越 NAT 设备的方法, 其特征在于, 所述步骤 S4 中 根据穿越策略穿越过程中, 当客户端 A 的 NAT 为全锥型或 IP 限制锥形, 客户端 B 的 NAT 为 除了防火墙型的其它类型时, 包括以下步骤 : A 端向 B 端任一端口发送打洞包, 以在 NAT 设备上建立 A 到 B 的路由表 ; B 端向 A 端发送探测包, 等待探测回应 ; A 端收到探测包后向 B 端发送探测回应 ; B 端收到探测回应后, 探测结束。
7: 如权利要求 4 所述的基于 UDP 的穿越 NAT 设备的方法, 其特征在于, 所述步骤 S4 中 根据穿越策略穿越过程中, 当客户端 A 和 B 的 NAT 都为端口限制锥型或防火墙型时, 包括以 下步骤 : B 端向 A 端对应的应用程序端口发送打洞包, 以在 NAT 设备上建立 B 到 A 的路由表 ; A 端向 B 端发送探测包, 等待探测回应 ; B 端收到探测包后向 A 端发送探测回应 ; A 端收到探测回应后, 探测结束。
8: 如权利要求 4 所述的基于 UDP 的穿越 NAT 设备的方法, 其特征在于, 所述步骤 S4 中 根据穿越策略穿越过程中, 当客户端 A 的 NAT 为端口限制锥形或防火墙型, 客户端 B 的 NAT 为对称型时, 包括以下步骤 : A 端向 B 端对应的应用程序端口及所述应用程序端口的临近端口发送打洞包, 以在 NAT 设备上建立 A 到 B 的路由表, 所述临近端口为按端口号顺序在所述应用程序端口的前后各 5 个端口 ; B 端向 A 端发送探测包, 等待探测回应 ; A 端收到探测包后向 B 端发送探测回应 ; B 端收到探测回应后, 探测结束。
9: 一种基于 UDP 的穿越 NAT 设备的系统, 其特征在于, 包括 : 探测模块, 用于客户端通过位于公网的探测服务器获取经过 NAT 映射后的 IP 地址和端 口, 并探测自身的 NAT 类型 ; 地址及 NAT 类型传输模块, 用于发送方客户端将经过 NAT 映射后的 IP 地址和端口及 NAT 类型通过位于公网的 SIP 服务器发送给接收方客户端 ; 穿越策略制定模块, 用于所述接收方客户端根据双方的 NAT 类型决策出双方各自的穿 3 越策略, 并将穿越策略通过所述 SIP 服务器发送给发送方客户端 ; 穿越模块, 用于发送方客户端和接收方客户端根据穿越策略进行穿越, 以建立发送方 客户端和接收方客户端的 UDP 连接。

说明书


基于 UDP 的穿越 NAT 设备的方法及系统

    【技术领域】
     本发明涉及计算机网络通信技术领域, 特别涉及一种基于 UDP 的穿越 NAT 设备的 方法及系统。背景技术
     计算机网络技术是通信技术与计算机技术相结合的产物。近年来, 计算机网络通 信在人们的日常生活中有着越来越重要的地位, 用户可以在计算机网络上进行文字、 声音 和视频的交流, 共享文件、 图片和视频信息等, 从而方便用户的生活、 工作和学习。 在使用计 算机网络进行沟通交流的过程中, 服务器压力非常巨大, 为了降低服务器的压力, 文件传输 及音视频传输常采用端到端 (peer to peer, P2P) 的传输方式。如果两个节点间存在 NAT 设备, 就会给传输造成很大障碍, 因此需要在 NAT 设备之间建立通路, 而 ITEF RFC3489 制定 了一些分类方法并对 NAT 进行了简单分类, 但是并未针对不同的 NAT 设备及其组合给出可 建立通路的方法。 发明内容 ( 一 ) 要解决的技术问题
     本发明要解决的技术问题是 : 如何穿越 NAT 设备, 并在不同的 NAT 类型设备之间建 立通路。
     ( 二 ) 技术方案
     为解决上述技术问题, 本发明提供了一种基于 UDP 的穿越 NAT 设备的方法, 其特征 在于, 包括以下步骤 :
     S1 : 客户端通过位于公网的探测服务器获取经过 NAT 映射后的 IP 地址和端口, 并 探测自身的 NAT 类型 ;
     S2 : 发送方客户端将经过 NAT 映射后的 IP 地址和端口及 NAT 类型通过位于公网的 SIP 服务器发送给接收方客户端 ;
     S3 : 所述接收方客户端根据双方的 NAT 类型决策出双方各自的穿越策略, 并将穿 越策略通过所述 SIP 服务器发送给发送方客户端 ;
     S4 : 发送方客户端和接收方客户端根据穿越策略进行穿越, 以建立发送方客户端 和接收方客户端的 UDP 连接。
     其中, 所述步骤 S1 中对 NAT 类型的探测在所述客户端登录服务端时进行, 并将探 测到的 NAT 类型缓存到客户端本地。
     其中, 所述步骤 S1 中获取经过 NAT 映射后的 IP 地址和端口的步骤包括 :
     所述客户端向所述探测服务器发送数据包 ;
     所述探测服务器收到所述数据包后将所述经过 NAT 映射后的 IP 地址和端口发送 给所述客户端。
     其中, 所述 NAT 类型包括 : 开放型、 防火墙型、 堵塞型、 对称型、 全锥型、 IP 限制锥型
     及端口限制锥型, 所述步骤 S1 中客户端探测自身 NAT 类型的步骤包括 :
     S101 : 向所述探测服务器发送探测请求, 要求探测服务器返回给客户端数据所使 用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都相同 ;
     S102 : 判断是否收到探测服务器的回应数据包, 若未收到探测服务器的回应数据 包, 则 NAT 类型为堵塞类型, 若收到探测服务器的回应数据包, 则执行步骤 S103 ;
     S103 : 检查所述回应数据包中的 IP 是否和客户端本地 IP 相同, 若相同, 则执行步 骤 S104, 否则执行步骤 S106 ;
     S104 : 再次向所述探测服务器发送探测请求, 要求探测服务器返回给客户端数据 所使用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都不相同 ;
     S105 : 判断是否收到探测服务器的回应数据包, 若收到回应数据包, 则 NAT 类型为 开放类型, 否则为防火墙型 ;
     S106 : 记录步骤 S103 的回应数据包中的端口, 并检测 NAT 属性 ;
     S107 : 再次向所述探测服务器发送探测请求, 要求探测服务器返回给客户端数据 所使用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都不相同 ;
     S108 : 判断是否收到探测服务器的回应数据包, 若收到回应数据包, 则 NAT 类型为 全锥形, 否则执行步骤 S109 ; S109 : 向另一台探测服务器发送探测请求, 要求探测服务器返回给客户端数据所 使用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都相同 ;
     S110 : 判断端口是否和步骤 S106 记录的端口相同, 若端口和步骤 S106 记录的端口 不相同, 则 NAT 类型为对称型, 否则执行步骤 S111 ;
     S111 : 再次向所述另一台探测服务器发送探测请求, 要求探测服务器返回给客户 端数据所使用的 IP 和端口, 与客户端连接的探测服务器的 IP 相同但端口不相同 ;
     S112 : 判断是否收到探测服务器的回应数据包, 若收到回应数据包, 则 NAT 类型为 IP 限制锥型, 否则为端口限制锥型。
     其中, 所述步骤 S4 中根据穿越策略穿越过程中, 当客户端 A 的 NAT 为开放型, 客户 端 B 的 NAT 为除了防火墙型的其它类型时, 包括以下步骤 :
     B 端向 A 端发送探测包, 等待探测回应 ;
     A 端收到探测包后向 B 端发送探测回应 ;
     B 端收到探测回应后, 探测结束。
     其中, 所述步骤 S4 中根据穿越策略穿越过程中, 当客户端 A 的 NAT 为全锥型或 IP 限制锥形, 客户端 B 的 NAT 为除了防火墙型的其它类型时, 包括以下步骤 :
     A 端向 B 端任一端口发送打洞包, 以在 NAT 设备上建立 A 到 B 的路由表 ;
     B 端向 A 端发送探测包, 等待探测回应 ;
     A 端收到探测包后向 B 端发送探测回应 ;
     B 端收到探测回应后, 探测结束。
     其中, 所述步骤 S4 中根据穿越策略穿越过程中, 当客户端 A 和 B 的 NAT 都为端口 限制锥型或防火墙型时, 包括以下步骤 :
     B 端向 A 端对应的应用程序端口发送打洞包, 以在 NAT 设备上建立 B 到 A 的路由 表;
     A 端向 B 端发送探测包, 等待探测回应 ;
     B 端收到探测包后向 A 端发送探测回应 ;
     A 端收到探测回应后, 探测结束。
     其中, 所述步骤 S4 中根据穿越策略穿越过程中, 当客户端 A 的 NAT 为端口限制锥 形或防火墙型, 客户端 B 的 NAT 为对称型时, 包括以下步骤 :
     A 端向 B 端对应的应用程序端口及所述应用程序端口的临近端口发送打洞包, 以 在 NAT 设备上建立 A 到 B 的路由表, 所述临近端口为按端口号顺序在所述应用程序端口的 前后各 5 个端口 ;
     B 端向 A 端发送探测包, 等待探测回应 ;
     A 端收到探测包后向 B 端发送探测回应 ;
     B 端收到探测回应后, 探测结束。
     本发明还提供了一种基于 UDP 的穿越 NAT 设备的系统, 包括 :
     探测模块, 用于客户端通过位于公网的探测服务器获取经过 NAT 映射后的 IP 地址 和端口, 并探测自身的 NAT 类型 ;
     地址及 NAT 类型传输模块, 用于发送方客户端将经过 NAT 映射后的 IP 地址和端口 及 NAT 类型通过位于公网的 SIP 服务器发送给接收方客户端 ; 穿越策略制定模块, 用于所述接收方客户端根据双方的 NAT 类型决策出双方各自 的穿越策略, 并将穿越策略通过所述 SIP 服务器发送给发送方客户端 ;
     穿越模块, 用于发送方客户端和接收方客户端根据穿越策略进行穿越, 以建立发 送方客户端和接收方客户端的 UDP 连接。
     ( 三 ) 有益效果
     本发明通过公网的探测服务器和 SIP 服务器获得经过 NAT 转换后的 IP 和端口, 并 制定不同 NAT 类型之间了穿越策略, 建立了不同 NAT 类型的通路, 以该通路传输大文件 ( 如 音视频文件 ) 时降低了服务器的负荷, 提高了传输效率。
     附图说明
     图 1 是本发明实施例的一种基于 UDP 的穿越 NAT 设备的方法流程图 ;
     图 2 是图 1 方法中探测 NAT 类型的流程图 ;
     图 3 是图 1 方法中穿越不同 NAT 类型设备建立通路的流程图 ;
     图 4 本发明实施例的一种基于 UDP 的穿越 NAT 设备的系统结构示意图。 具体实施方式
     下面结合附图和实施例, 对本发明的具体实施方式作进一步详细描述。以下实施 例用于说明本发明, 但不用来限制本发明的范围。
     如图 1 所示, 本发明实施例的基于用户数据报协议 (User DatagramProtocol, UDP) 的跨网络地址转换 (Network Address Translation, NAT) 设备的文件传输方法流程 图。包括 :
     步骤 S1, 客户端通过位于公网的探测服务器获取经过 NAT 映射后的 IP 地址和端 口, 并探测自身的 NAT 类型, NAT 类型包括 : 开放型 (open)、 防火墙型 (firewall)、 堵塞型(block)、 对称型 (symmetrical)、 全锥型 (full cone)、 IP 限制锥型 (IP restrict cone) 及端口限制锥型 (portrestrict cone)。其中, 探测服务器为 STUN(Simple Traversal of UDPover NATs) 服务器。获取经过 NAT 映射后的 IP 地址和端口的步骤包括 : 客户端向 STUN 服务器发送 stun 格式数据包 ; STUN 服务器收到该数据包后将经过 NAT 映射后的 IP 地址和 端口发送给客户端, 具体地, 发送一个 stun 格式数据包, 其中包含经过 NAT 映射后的 IP 地 址和端口, 客户端收到该数据包后就可得到经过 NAT 映射后的 IP 地址和端口。探测 NAT 类 型时, 客户端通过与 STUN 服务器的多次交互, 获得自己的 NAT 类型, 具体步骤如图 2 所示, 包括 :
     S201 : 向所述探测服务器发送探测请求, 要求探测服务器返回给客户端数据所使 用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都相同 ( 探测服务器可以配置多 个 IP 和端口, 客户端也可以要求探测服务器将已配置的其他 IP 和端口返回数据给客户 端 )。
     S202 : 判断是否收到探测服务器的回应数据包, 若未收到探测服务器的回应数据 包, 则 NAT 类型为堵塞类型, 若收到探测服务器的回应数据包, 则执行步骤 S203。
     S203 : 检查所述回应数据包中的 IP 是否和客户端本地 IP 相同, 若相同, 表明客户 端没有位于 NAT 设备之后, 则检查防火墙, 即执行步骤 S204, 否则执行步骤 S206。 S204 : 再次向所述探测服务器发送探测请求, 要求探测服务器返回给客户端数据 所使用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都不相同。
     S205 : 判断是否收到探测服务器的回应数据包, 若收到回应数据包, 则 NAT 类型为 开放类型, 否则为防火墙型。
     S206 : 记录步骤 S203 的回应数据包中的端口, 并检测 NAT 属性。
     S207 : 再次向所述探测服务器发送探测请求, 要求探测服务器返回给客户端数据 所使用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都不相同。
     S208 : 判断是否收到探测服务器的回应数据包, 若收到回应数据包, 则 NAT 类型为 全锥形, 否则执行步骤 S209。
     S209 : 向另一台探测服务器发送探测请求, 要求探测服务器返回给客户端数据所 使用的 IP 和端口, 与客户端连接的探测服务器的 IP 和端口都相同。
     S210 : 判断端口是否和步骤 S206 记录的端口相同, 若端口和步骤 S206 记录的端口 不相同, 则 NAT 类型为对称型, 否则执行步骤 S211。
     S211 : 再次向所述另一台探测服务器发送探测请求, 要求探测服务器返回给客户 端数据所使用的 IP 和端口, 与客户端连接的探测服务器的 IP 相同但端口不相同。
     S212 : 判断是否收到探测服务器的回应数据包, 若收到回应数据包, 则 NAT 类型为 IP 限制锥型, 否则为端口限制锥型。
     客户端获得自身的经过 NAT 映射后的 IP 地址和端口优选在登录服务器时进行, 并 把 NAT 类型缓存在本地, 避免重复探测。
     步骤 S2, 发送方客户端将经过 NAT 映射后的 IP 地址和端口及 NAT 类型通过位于公 网的 SIP 服务器发送给接收方客户端。
     步骤 S3, 接收方客户端根据双方的 NAT 类型决策出双方各自的穿越策略, 并将穿 越策略通过 SIP 服务器发送给发送方客户端。
     步骤 S4, 发送方客户端和接收方客户端根据穿越策略进行穿越。穿越步骤如图 3所示。 当客户端 A 的 NAT 为开放型, 客户端 B 的 NAT 为除了堵塞型的其它类型时, 如图 3 中 (a) 所示, 包括步骤 :
     B 端向 A 端发送探测包, 等待探测回应 ;
     A 端收到探测包后向 B 端发送探测回应 ;
     B 端收到探测回应后, 探测结束。
     当客户端 A 的 NAT 为全锥型或 IP 限制锥形, 客户端 B 的 NAT 为除了堵塞型的其它 类型时, 如图 3 中 (b) 所示, 包括步骤 :
     A 端向 B 端任一端口发送打洞包, 以在 NAT 设备上建立 A 到 B 的路由表, 发送打洞 包是因为 NAT 下的客户端 A 必须向客户端 B 发送过数据或建立过连接, 否则, NAT 会过滤 B 发给 A 的所有数据包 ;
     B 端向 A 端发送探测包, 等待探测回应 ;
     A 端收到探测包后向 B 端发送探测回应 ;
     B 端收到探测回应后, 探测结束。
     当客户端 A 和 B 的 NAT 都为端口限制锥型或防火墙型时, 如图 3 中 (c) 所示, 包括 步骤 :
     B 端向 A 端对应的应用程序端口发送打洞包, 以在 NAT 设备上建立 B 到 A 的路由 表;
     A 端向 B 端发送探测包, 等待探测回应 ;
     B 端收到探测包后向 A 端发送探测回应 ;
     A 端收到探测回应后, 探测结束。
     当客户端 A 的 NAT 为端口限制锥形或防火墙型, 客户端 B 的 NAT 为对称型时, 如图 3 中 (d) 所示, 包括步骤 :
     A 端向 B 端对应的应用程序端口及对应的应用程序端口的临近端口发送打洞包, 以在 NAT 设备上建立 A 到 B 的路由表, 所述临近端口为按端口号顺序在对应的应用程序端 口的前后各 5 个端口, 如: 80 端口的前后为 : 75、 76、 77、 78、 79 和 81、 82、 83、 84、 85 端口 ;
     B 端向 A 端发送探测包, 等待探测回应 ;
     A 端收到探测包后向 B 端发送探测回应 ;
     B 端收到探测回应后, 探测结束。
     其中, 上述打洞包, 探测包, 探测回应都为 stun 格式数据包。上述探测结束后即建 立了客户端 A 和 B 的跨 NAT 设备的 UDP 连接。
     本发明还公开了一种基于 UDP 的穿越 NAT 设备的系统, 如图 4 所示, 包括 : 探测模 块, 用于客户端通过位于公网的探测服务器获取经过 NAT 映射后的 IP 地址和端口, 并探测 自身的 NAT 类型 ; 地址及 NAT 类型传输模块, 用于发送方客户端将经过 NAT 映射后的 IP 地 址和端口及 NAT 类型通过位于公网的 SIP 服务器发送给接收方客户端 ; 穿越策略制定模块, 用于所述接收方客户端根据双方的 NAT 类型决策出双方各自的穿越策略, 并将穿越策略通 过所述 SIP 服务器发送给发送方客户端 ; 穿越模块, 用于发送方客户端和接收方客户端根 据穿越策略进行穿越, 以建立发送方客户端和接收方客户端的 UDP 连接。
     本发明广泛用在位于 NAT 设备后的计算机节点大量交互数据的情形, 尤其用于即 时通信软件的客户端位于 NAT 设备之后, 且要传输视频、 音频等文件时能够穿越 NAT 设备建 立 UDP 连接, 以传输文件。
     以上实施方式仅用于说明本发明, 而并非对本发明的限制, 有关技术领域的普通 技术人员, 在不脱离本发明的精神和范围的情况下, 还可以做出各种变化和变型, 因此所有 等同的技术方案也属于本发明的范畴, 本发明的专利保护范围应由权利要求限定。

基于UDP的穿越NAT设备的方法及系统.pdf_第1页
第1页 / 共15页
基于UDP的穿越NAT设备的方法及系统.pdf_第2页
第2页 / 共15页
基于UDP的穿越NAT设备的方法及系统.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《基于UDP的穿越NAT设备的方法及系统.pdf》由会员分享,可在线阅读,更多相关《基于UDP的穿越NAT设备的方法及系统.pdf(15页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101938532A43申请公布日20110105CN101938532ACN101938532A21申请号201010284135722申请日20100917H04L29/12200601H04L29/0620060171申请人北京神州泰岳软件股份有限公司地址100089北京市海淀区万泉庄路28号万柳新贵大厦A座5层72发明人崔晓宇马昭74专利代理机构北京路浩知识产权代理有限公司11002代理人王莹54发明名称基于UDP的穿越NAT设备的方法及系统57摘要本发明公开了一种基于UDP的穿越NAT设备的方法,包括客户端通过位于公网的探测服务器获取经过NAT映射后的IP地址和端口。

2、,并探测自身的NAT类型,NAT类型包括开放型、防火墙型、堵塞型、对称型、全锥型、IP限制锥型及端口限制锥型;发送方客户端将经过NAT映射后的IP地址和端口及NAT类型通过位于公网的SIP服务器发送给接收方客户端;接收方客户端根据双方的NAT类型决策出双方各自的穿越策略,并将穿越策略通过所述SIP服务器发送给发送方客户端;发送方客户端和接收方客户端根据穿越策略进行穿越,以建立双方客户端的UDP连接。本发明还公开了一种基于UDP的穿越NAT设备的系统。本发明在不同类型NAT之间建立UDP通路,在传输大文件时减小服务器的负荷。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书。

3、3页说明书6页附图5页CN101938535A1/3页21一种基于UDP的穿越NAT设备的方法,其特征在于,包括以下步骤S1客户端通过位于公网的探测服务器获取经过NAT映射后的IP地址和端口,并探测自身的NAT类型;S2发送方客户端将经过NAT映射后的IP地址和端口及NAT类型通过位于公网的SIP服务器发送给接收方客户端;S3所述接收方客户端根据双方的NAT类型决策出双方各自的穿越策略,并将穿越策略通过所述SIP服务器发送给发送方客户端;S4发送方客户端和接收方客户端根据穿越策略进行穿越,以建立发送方客户端和接收方客户端的UDP连接。2如权利要求1所述的基于UDP的穿越NAT设备的方法,其特征。

4、在于,所述步骤S1中对NAT类型的探测在所述客户端登录服务端时进行,并将探测到的NAT类型缓存到客户端本地。3如权利要求1或2所述的基于UDP的穿越NAT设备的方法,其特征在于,所述步骤S1中获取经过NAT映射后的IP地址和端口的步骤包括所述客户端向所述探测服务器发送数据包;所述探测服务器收到所述数据包后将所述经过NAT映射后的IP地址和端口发送给所述客户端。4如权利要求1或2所述的基于UDP的穿越NAT设备的方法,其特征在于,所述NAT类型包括开放型、防火墙型、堵塞型、对称型、全锥型、IP限制锥型及端口限制锥型,所述步骤S1中客户端探测自身NAT类型的步骤包括S101向所述探测服务器发送探测。

5、请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都相同;S102判断是否收到探测服务器的回应数据包,若未收到探测服务器的回应数据包,则NAT类型为堵塞类型,若收到探测服务器的回应数据包,则执行步骤S103;S103检查所述回应数据包中的IP是否和客户端本地IP相同,若相同,则执行步骤S104,否则执行步骤S106;S104再次向所述探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都不相同;S105判断是否收到探测服务器的回应数据包,若收到回应数据包,则NAT类型为开放类型,否则为防火墙型;。

6、S106记录步骤S103的回应数据包中的端口,并检测NAT属性;S107再次向所述探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都不相同;S108判断是否收到探测服务器的回应数据包,若收到回应数据包,则NAT类型为全锥形,否则执行步骤S109;S109向另一台探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都相同;S110判断端口是否和步骤S106记录的端口相同,若端口和步骤S106记录的端口不相同,则NAT类型为对称型,否则执行步骤S111;权利要求书CN101938。

7、532ACN101938535A2/3页3S111再次向所述另一台探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP相同但端口不相同;S112判断是否收到探测服务器的回应数据包,若收到回应数据包,则NAT类型为IP限制锥型,否则为端口限制锥型。5如权利要求4所述的基于UDP的穿越NAT设备的方法,其特征在于,所述步骤S4中根据穿越策略穿越过程中,当客户端A的NAT为开放型,客户端B的NAT为除了防火墙型的其它类型时,包括以下步骤B端向A端发送探测包,等待探测回应;A端收到探测包后向B端发送探测回应;B端收到探测回应后,探测结束。6如权利要求。

8、4所述的基于UDP的穿越NAT设备的方法,其特征在于,所述步骤S4中根据穿越策略穿越过程中,当客户端A的NAT为全锥型或IP限制锥形,客户端B的NAT为除了防火墙型的其它类型时,包括以下步骤A端向B端任一端口发送打洞包,以在NAT设备上建立A到B的路由表;B端向A端发送探测包,等待探测回应;A端收到探测包后向B端发送探测回应;B端收到探测回应后,探测结束。7如权利要求4所述的基于UDP的穿越NAT设备的方法,其特征在于,所述步骤S4中根据穿越策略穿越过程中,当客户端A和B的NAT都为端口限制锥型或防火墙型时,包括以下步骤B端向A端对应的应用程序端口发送打洞包,以在NAT设备上建立B到A的路由表。

9、;A端向B端发送探测包,等待探测回应;B端收到探测包后向A端发送探测回应;A端收到探测回应后,探测结束。8如权利要求4所述的基于UDP的穿越NAT设备的方法,其特征在于,所述步骤S4中根据穿越策略穿越过程中,当客户端A的NAT为端口限制锥形或防火墙型,客户端B的NAT为对称型时,包括以下步骤A端向B端对应的应用程序端口及所述应用程序端口的临近端口发送打洞包,以在NAT设备上建立A到B的路由表,所述临近端口为按端口号顺序在所述应用程序端口的前后各5个端口;B端向A端发送探测包,等待探测回应;A端收到探测包后向B端发送探测回应;B端收到探测回应后,探测结束。9一种基于UDP的穿越NAT设备的系统,。

10、其特征在于,包括探测模块,用于客户端通过位于公网的探测服务器获取经过NAT映射后的IP地址和端口,并探测自身的NAT类型;地址及NAT类型传输模块,用于发送方客户端将经过NAT映射后的IP地址和端口及NAT类型通过位于公网的SIP服务器发送给接收方客户端;穿越策略制定模块,用于所述接收方客户端根据双方的NAT类型决策出双方各自的穿权利要求书CN101938532ACN101938535A3/3页4越策略,并将穿越策略通过所述SIP服务器发送给发送方客户端;穿越模块,用于发送方客户端和接收方客户端根据穿越策略进行穿越,以建立发送方客户端和接收方客户端的UDP连接。权利要求书CN101938532。

11、ACN101938535A1/6页5基于UDP的穿越NAT设备的方法及系统技术领域0001本发明涉及计算机网络通信技术领域,特别涉及一种基于UDP的穿越NAT设备的方法及系统。背景技术0002计算机网络技术是通信技术与计算机技术相结合的产物。近年来,计算机网络通信在人们的日常生活中有着越来越重要的地位,用户可以在计算机网络上进行文字、声音和视频的交流,共享文件、图片和视频信息等,从而方便用户的生活、工作和学习。在使用计算机网络进行沟通交流的过程中,服务器压力非常巨大,为了降低服务器的压力,文件传输及音视频传输常采用端到端PEERTOPEER,P2P的传输方式。如果两个节点间存在NAT设备,就会。

12、给传输造成很大障碍,因此需要在NAT设备之间建立通路,而ITEFRFC3489制定了一些分类方法并对NAT进行了简单分类,但是并未针对不同的NAT设备及其组合给出可建立通路的方法。发明内容0003一要解决的技术问题0004本发明要解决的技术问题是如何穿越NAT设备,并在不同的NAT类型设备之间建立通路。0005二技术方案0006为解决上述技术问题,本发明提供了一种基于UDP的穿越NAT设备的方法,其特征在于,包括以下步骤0007S1客户端通过位于公网的探测服务器获取经过NAT映射后的IP地址和端口,并探测自身的NAT类型;0008S2发送方客户端将经过NAT映射后的IP地址和端口及NAT类型通。

13、过位于公网的SIP服务器发送给接收方客户端;0009S3所述接收方客户端根据双方的NAT类型决策出双方各自的穿越策略,并将穿越策略通过所述SIP服务器发送给发送方客户端;0010S4发送方客户端和接收方客户端根据穿越策略进行穿越,以建立发送方客户端和接收方客户端的UDP连接。0011其中,所述步骤S1中对NAT类型的探测在所述客户端登录服务端时进行,并将探测到的NAT类型缓存到客户端本地。0012其中,所述步骤S1中获取经过NAT映射后的IP地址和端口的步骤包括0013所述客户端向所述探测服务器发送数据包;0014所述探测服务器收到所述数据包后将所述经过NAT映射后的IP地址和端口发送给所述客。

14、户端。0015其中,所述NAT类型包括开放型、防火墙型、堵塞型、对称型、全锥型、IP限制锥型说明书CN101938532ACN101938535A2/6页6及端口限制锥型,所述步骤S1中客户端探测自身NAT类型的步骤包括0016S101向所述探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都相同;0017S102判断是否收到探测服务器的回应数据包,若未收到探测服务器的回应数据包,则NAT类型为堵塞类型,若收到探测服务器的回应数据包,则执行步骤S103;0018S103检查所述回应数据包中的IP是否和客户端本地IP相同,若相同,则执行。

15、步骤S104,否则执行步骤S106;0019S104再次向所述探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都不相同;0020S105判断是否收到探测服务器的回应数据包,若收到回应数据包,则NAT类型为开放类型,否则为防火墙型;0021S106记录步骤S103的回应数据包中的端口,并检测NAT属性;0022S107再次向所述探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都不相同;0023S108判断是否收到探测服务器的回应数据包,若收到回应数据包,则NAT类型为全锥形。

16、,否则执行步骤S109;0024S109向另一台探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都相同;0025S110判断端口是否和步骤S106记录的端口相同,若端口和步骤S106记录的端口不相同,则NAT类型为对称型,否则执行步骤S111;0026S111再次向所述另一台探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP相同但端口不相同;0027S112判断是否收到探测服务器的回应数据包,若收到回应数据包,则NAT类型为IP限制锥型,否则为端口限制锥型。0028其中,所述步骤。

17、S4中根据穿越策略穿越过程中,当客户端A的NAT为开放型,客户端B的NAT为除了防火墙型的其它类型时,包括以下步骤0029B端向A端发送探测包,等待探测回应;0030A端收到探测包后向B端发送探测回应;0031B端收到探测回应后,探测结束。0032其中,所述步骤S4中根据穿越策略穿越过程中,当客户端A的NAT为全锥型或IP限制锥形,客户端B的NAT为除了防火墙型的其它类型时,包括以下步骤0033A端向B端任一端口发送打洞包,以在NAT设备上建立A到B的路由表;0034B端向A端发送探测包,等待探测回应;0035A端收到探测包后向B端发送探测回应;0036B端收到探测回应后,探测结束。0037其。

18、中,所述步骤S4中根据穿越策略穿越过程中,当客户端A和B的NAT都为端口限制锥型或防火墙型时,包括以下步骤0038B端向A端对应的应用程序端口发送打洞包,以在NAT设备上建立B到A的路由表;说明书CN101938532ACN101938535A3/6页70039A端向B端发送探测包,等待探测回应;0040B端收到探测包后向A端发送探测回应;0041A端收到探测回应后,探测结束。0042其中,所述步骤S4中根据穿越策略穿越过程中,当客户端A的NAT为端口限制锥形或防火墙型,客户端B的NAT为对称型时,包括以下步骤0043A端向B端对应的应用程序端口及所述应用程序端口的临近端口发送打洞包,以在NA。

19、T设备上建立A到B的路由表,所述临近端口为按端口号顺序在所述应用程序端口的前后各5个端口;0044B端向A端发送探测包,等待探测回应;0045A端收到探测包后向B端发送探测回应;0046B端收到探测回应后,探测结束。0047本发明还提供了一种基于UDP的穿越NAT设备的系统,包括0048探测模块,用于客户端通过位于公网的探测服务器获取经过NAT映射后的IP地址和端口,并探测自身的NAT类型;0049地址及NAT类型传输模块,用于发送方客户端将经过NAT映射后的IP地址和端口及NAT类型通过位于公网的SIP服务器发送给接收方客户端;0050穿越策略制定模块,用于所述接收方客户端根据双方的NAT类。

20、型决策出双方各自的穿越策略,并将穿越策略通过所述SIP服务器发送给发送方客户端;0051穿越模块,用于发送方客户端和接收方客户端根据穿越策略进行穿越,以建立发送方客户端和接收方客户端的UDP连接。0052三有益效果0053本发明通过公网的探测服务器和SIP服务器获得经过NAT转换后的IP和端口,并制定不同NAT类型之间了穿越策略,建立了不同NAT类型的通路,以该通路传输大文件如音视频文件时降低了服务器的负荷,提高了传输效率。附图说明0054图1是本发明实施例的一种基于UDP的穿越NAT设备的方法流程图;0055图2是图1方法中探测NAT类型的流程图;0056图3是图1方法中穿越不同NAT类型设。

21、备建立通路的流程图;0057图4本发明实施例的一种基于UDP的穿越NAT设备的系统结构示意图。具体实施方式0058下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。0059如图1所示,本发明实施例的基于用户数据报协议USERDATAGRAMPROTOCOL,UDP的跨网络地址转换NETWORKADDRESSTRANSLATION,NAT设备的文件传输方法流程图。包括0060步骤S1,客户端通过位于公网的探测服务器获取经过NAT映射后的IP地址和端口,并探测自身的NAT类型,NAT类型包括开放型OPEN、防火墙型FIREWALL、堵。

22、塞型说明书CN101938532ACN101938535A4/6页8BLOCK、对称型SYMMETRICAL、全锥型FULLCONE、IP限制锥型IPRESTRICTCONE及端口限制锥型PORTRESTRICTCONE。其中,探测服务器为STUNSIMPLETRAVERSALOFUDPOVERNATS服务器。获取经过NAT映射后的IP地址和端口的步骤包括客户端向STUN服务器发送STUN格式数据包;STUN服务器收到该数据包后将经过NAT映射后的IP地址和端口发送给客户端,具体地,发送一个STUN格式数据包,其中包含经过NAT映射后的IP地址和端口,客户端收到该数据包后就可得到经过NAT映射。

23、后的IP地址和端口。探测NAT类型时,客户端通过与STUN服务器的多次交互,获得自己的NAT类型,具体步骤如图2所示,包括0061S201向所述探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都相同探测服务器可以配置多个IP和端口,客户端也可以要求探测服务器将已配置的其他IP和端口返回数据给客户端。0062S202判断是否收到探测服务器的回应数据包,若未收到探测服务器的回应数据包,则NAT类型为堵塞类型,若收到探测服务器的回应数据包,则执行步骤S203。0063S203检查所述回应数据包中的IP是否和客户端本地IP相同,若相同,表明。

24、客户端没有位于NAT设备之后,则检查防火墙,即执行步骤S204,否则执行步骤S206。0064S204再次向所述探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都不相同。0065S205判断是否收到探测服务器的回应数据包,若收到回应数据包,则NAT类型为开放类型,否则为防火墙型。0066S206记录步骤S203的回应数据包中的端口,并检测NAT属性。0067S207再次向所述探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都不相同。0068S208判断是否收到探测服务器的。

25、回应数据包,若收到回应数据包,则NAT类型为全锥形,否则执行步骤S209。0069S209向另一台探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP和端口都相同。0070S210判断端口是否和步骤S206记录的端口相同,若端口和步骤S206记录的端口不相同,则NAT类型为对称型,否则执行步骤S211。0071S211再次向所述另一台探测服务器发送探测请求,要求探测服务器返回给客户端数据所使用的IP和端口,与客户端连接的探测服务器的IP相同但端口不相同。0072S212判断是否收到探测服务器的回应数据包,若收到回应数据包,则NAT类型为IP限。

26、制锥型,否则为端口限制锥型。0073客户端获得自身的经过NAT映射后的IP地址和端口优选在登录服务器时进行,并把NAT类型缓存在本地,避免重复探测。0074步骤S2,发送方客户端将经过NAT映射后的IP地址和端口及NAT类型通过位于公网的SIP服务器发送给接收方客户端。0075步骤S3,接收方客户端根据双方的NAT类型决策出双方各自的穿越策略,并将穿越策略通过SIP服务器发送给发送方客户端。说明书CN101938532ACN101938535A5/6页90076步骤S4,发送方客户端和接收方客户端根据穿越策略进行穿越。穿越步骤如图3所示。0077当客户端A的NAT为开放型,客户端B的NAT为除。

27、了堵塞型的其它类型时,如图3中A所示,包括步骤0078B端向A端发送探测包,等待探测回应;0079A端收到探测包后向B端发送探测回应;0080B端收到探测回应后,探测结束。0081当客户端A的NAT为全锥型或IP限制锥形,客户端B的NAT为除了堵塞型的其它类型时,如图3中B所示,包括步骤0082A端向B端任一端口发送打洞包,以在NAT设备上建立A到B的路由表,发送打洞包是因为NAT下的客户端A必须向客户端B发送过数据或建立过连接,否则,NAT会过滤B发给A的所有数据包;0083B端向A端发送探测包,等待探测回应;0084A端收到探测包后向B端发送探测回应;0085B端收到探测回应后,探测结束。。

28、0086当客户端A和B的NAT都为端口限制锥型或防火墙型时,如图3中C所示,包括步骤0087B端向A端对应的应用程序端口发送打洞包,以在NAT设备上建立B到A的路由表;0088A端向B端发送探测包,等待探测回应;0089B端收到探测包后向A端发送探测回应;0090A端收到探测回应后,探测结束。0091当客户端A的NAT为端口限制锥形或防火墙型,客户端B的NAT为对称型时,如图3中D所示,包括步骤0092A端向B端对应的应用程序端口及对应的应用程序端口的临近端口发送打洞包,以在NAT设备上建立A到B的路由表,所述临近端口为按端口号顺序在对应的应用程序端口的前后各5个端口,如80端口的前后为75、。

29、76、77、78、79和81、82、83、84、85端口;0093B端向A端发送探测包,等待探测回应;0094A端收到探测包后向B端发送探测回应;0095B端收到探测回应后,探测结束。0096其中,上述打洞包,探测包,探测回应都为STUN格式数据包。上述探测结束后即建立了客户端A和B的跨NAT设备的UDP连接。0097本发明还公开了一种基于UDP的穿越NAT设备的系统,如图4所示,包括探测模块,用于客户端通过位于公网的探测服务器获取经过NAT映射后的IP地址和端口,并探测自身的NAT类型;地址及NAT类型传输模块,用于发送方客户端将经过NAT映射后的IP地址和端口及NAT类型通过位于公网的SI。

30、P服务器发送给接收方客户端;穿越策略制定模块,用于所述接收方客户端根据双方的NAT类型决策出双方各自的穿越策略,并将穿越策略通过所述SIP服务器发送给发送方客户端;穿越模块,用于发送方客户端和接收方客户端根据穿越策略进行穿越,以建立发送方客户端和接收方客户端的UDP连接。说明书CN101938532ACN101938535A6/6页100098本发明广泛用在位于NAT设备后的计算机节点大量交互数据的情形,尤其用于即时通信软件的客户端位于NAT设备之后,且要传输视频、音频等文件时能够穿越NAT设备建立UDP连接,以传输文件。0099以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。说明书CN101938532ACN101938535A1/5页11图1说明书附图CN101938532ACN101938535A2/5页12图2说明书附图CN101938532ACN101938535A3/5页13说明书附图CN101938532ACN101938535A4/5页14图3说明书附图CN101938532ACN101938535A5/5页15图4说明书附图CN101938532A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1