发明名称 |
一种基于UPnP和STUN技术相结合的NAT穿越方法 |
摘要 |
本发明涉及一种基于UPnP和STUN技术相结合的NAT穿越方法,该方法将UPnP和STUN进行有效结合,在UPnP穿越NAT失败后再采用STUN方法对NAT进行二次穿越,通过汲取两种穿越方法各自的优点有效提高穿越成功率;对于对称NAT的穿越,提出采用基于NAT添加端口映射的样本值估计端口映射分布的方法进行端口猜测,以避免由于第三方代理转发造成的缺陷和简单端口递增猜测方法的盲目性;对于P2P流媒体系统中通信双方都位于NAT后的情况,提出采用让部分带宽充裕位于外网的普通通信节点充当辅助中继节点的方法来缓解中继服务器的压力,从而有效消除系统通信瓶颈。 |
申请公布号 |
CN101557388A |
申请公布日期 |
2009.10.14 |
申请号 |
CN200810103849.6 |
申请日期 |
2008.04.11 |
申请人 |
中国科学院声学研究所 |
发明人 |
王劲林;任浩;鲁逸峰;苏少炜;冯侦探 |
分类号 |
H04L29/06(2006.01)I;H04L12/56(2006.01)I |
主分类号 |
H04L29/06(2006.01)I |
代理机构 |
北京法思腾知识产权代理有限公司 |
代理人 |
杨小蓉 |
主权项 |
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类型。 |
地址 |
100190北京市海淀区北四环西路21号中国科学院声学研究所 |