[发明专利]一种基于UPnP和STUN技术相结合的NAT穿越方法无效
申请号: | 200810103849.6 | 申请日: | 2008-04-11 |
公开(公告)号: | CN101557388A | 公开(公告)日: | 2009-10-14 |
发明(设计)人: | 王劲林;任浩;鲁逸峰;苏少炜;冯侦探 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/56 |
代理公司: | 北京法思腾知识产权代理有限公司 | 代理人: | 杨小蓉 |
地址: | 100190北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 upnp stun 技术 相结合 nat 穿越 方法 | ||
1.一种基于UPnP和STUN技术相结合的NAT穿越方法,其步骤包括:
(1)加入P2P流媒体系统的用户节点,首先通过简单服务发现协议SSDP在内 网中广播搜索UPnP设备的消息:
void Search(char*name,const char*type);
根据UPnP标准要求,name为“WANIPConnection”,type为“service”,表示搜索 UPnP服务;
(2)如果搜索UPnP服务成功,则通过简单对象访问协议SOAP向NAT网关的 控制URL发送添加端口映射的请求:
void InvokeCommand(char*name,char*args);
其中,name为向UPnP设备下达的控制命令AddPortMapping,args为UPnP标 准要求的若干参数,填加端口映射后用户节点就可与外网节点建立连接进行数据交 互,从而实现NAT穿越;
(3)如果搜索失败,则用户节点启动STUN功能模块对NAT进行二次穿越:
void GetMapAddr(int& extIP,int& extPort,NatType& natType);
其中,extIP和extPort为STUN穿越获得的NAT外部IP和端口,natType是在 穿越过程中判断的NAT类型;
所述(3)步骤进一步包括:
1)如果NAT是锥形NAT,该用户节点用得到的外部地址端口与其它节点通信, 实现NAT穿越;
2)若NAT是对称NAT,则该用户节点采用端口添加样本估计法实行对NAT穿 越;
所述端口添加样本估计法,其步骤包括:
位于对称NAT后的用户节点向位于外网的STUN服务器依次发起三次连接,并 通过服务器反馈得到三次连接添加的映射端口,设为P1,P2,P3,根据这三个数的变 化规律做如下处理:
2a)若P1,P2,P3为等差数列,则对称NAT添加端口映射为依次递增等差数列的 公差d,位于对称NAT后的用户节点在原外部端口的基础上递增d作为自己新的外 部通信端口,并填入数据交互的负载中,就可与其它节点进行通信;
2b)若P1,P2,P3不是等差数列,则添加的端口映射是随机的,用户节点根据添加 端口样本值对端口映射的总体X进行估计:
用户节点再次向STUN服务器发起N-3次连接,与开始得到的三个映射端口 共同组成容量为N的样本观察值,设样本观察值都包含在[a,b]区间内,将区间分 成M个子区间(M<N)
a=n0<n1<...<nM-1<nM=b
设每个子区间(ni,ni+1](i=1,...,M-1)包含ti个观察值,第1个区间为[n0,n1], 根据贝努里大数定律和概率密度的定义得到:
的图形就是端口映射总体X在[a,b]上的分布直方图,通过分析 的图形取值较大时所在的Δni区间就可判断NAT映射端口一般分布在该子 区间,在该范围较小的子区间内,再采用遍历的方法猜测对称NAT下次会话添加的 端口映射,可有效提高猜测的命中率。
2.根据权利要求1所述基于UPnP和STUN技术相结合的NAT穿越方法,其 特征在于,还包括节点中继辅助方法,如果P2P流媒体系统中通信双方都位于NAT 后,用户节点用部分带宽充裕位于外网的普通通信节点充当辅助中继节点;
所述节点中继辅助方法,其步骤包括:
1)加入P2P流媒体系统的外网节点首先向中继服务器注册,中继服务器保留一 份外网节点的列表;
2)中继服务器采用心跳机制对注册的外网节点进行探测,并选择往返时延最小 的M个外网节点作为中继辅助候选节点;
3)内网用户节点向中继服务器注册,中继服务器注册用户节点信息的同时,向 用户节点传送一份外网节点的列表;
4)用户节点随机选择N(N<M)个外网节点发起连接,并选择往返时延最小的节 点作为自己的辅助中继节点,同时向辅助中继节点发送注册信息;
5)用户节点确定自己辅助中继节点的同时,得到在该辅助中继节点上注册的其 它通信节点信息,用户节点与其他NAT后节点通信时,首先查询自己中继辅助节点 的注册列表,若待通信节点在中继辅助节点的注册列表中,就用该辅助中继节点中 继,否则用中继服务器中继。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810103849.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:以手持通讯装置浏览网络信息的方法
- 下一篇:蒙古文词的字形生成方法