[发明专利]一种基于KCP协议的NAT穿透方法有效
申请号: | 201811059853.7 | 申请日: | 2018-09-12 |
公开(公告)号: | CN109194778B | 公开(公告)日: | 2021-11-05 |
发明(设计)人: | 汪小益;徐才巢;李启雷;李伟;邱炜伟;梁秀波;尹可挺 | 申请(专利权)人: | 杭州趣链科技有限公司 |
主分类号: | H04L29/12 | 分类号: | H04L29/12;H04L29/06;H04L29/08 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 贾玉霞;邱启旺 |
地址: | 310012 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kcp 协议 nat 穿透 方法 | ||
1.一种基于KCP协议的NAT穿透方法,其特征在于,该方法中需要得到NAT穿透协助的客户端为C1,C1想要连接的客户端为C2,该方法具体包括如下步骤:
S1:C1向服务端发起NAT穿透C2的请求;
S2:服务端根据客户端C1的情况作出如下回复:
(1)如果C2不存在,则服务端向C1回复C2不存在的消息,C1结束本次NAT穿透;
(2)如果C2存在,且C1是公网节点,服务端则通知C2去反连C1,C1持续一段时间等待对方的连接,如果连接成功,此次穿透成功;否则,穿透失败;
(3)如果C2存在,且C1不是公网节点,且C2不是对称型NAT,则服务端通知C1进行NAT穿透,连接C2,C1首先判断C2是否存在UPNP端口,如果存在,则C1先使用C2的UPNP端口进行TCP连接,如果连接成功,则此次穿透成功,如果连接失败,C1使用UDP协议进行NAT穿透,如果穿透失败,则此次穿透失败;如果穿透成功,则使用KCP协议进行连接,如果连接成功,则此次穿透成功,否则穿透失败;
(4)如果C2存在且是对称型NAT,但C1不是公网节点也不是对称型NAT,则服务端通知C1进行NAT穿透,C1使用UDP协议进行NAT穿透,然后持续一段时间等待C2的连接,如果连接成功,那么此次NAT穿透成功,否则失败;
(5)如果都不是上面的情况,则服务端通知C1和C2进行中继服务。
2.根据权利要求1所述的基于KCP协议的NAT穿透方法,其特征在于,所述的客户端C1在启动时通过STUN协议探测自己的NAT类型,并向服务端注册自己的NAT类型,所述的服务端根据这些NAT信息进行策略选择;所述的NAT类型包括对称型、端口限制型、地址限制型和全锥型。
3.根据权利要求1所述的基于KCP协议的NAT穿透方法,其特征在于,所述的客户端C1启动时,向自己的网关设备绑定UPNP端口。
4.根据权利要求1所述的基于KCP协议的NAT穿透方法,其特征在于,如果存在客户端C2不存在或者没有注册的情况,则由服务端连接上该客户端C2并通知它进行注册。
5.根据权利要求1所述的基于KCP协议的NAT穿透方法,其特征在于,所述的步骤S2的情况(3)中,如果C2存在UPNP端口,那么C1需要尝试使用该UPNP端口去连接C2,如果连接成功,那么此次NAT穿透成功,否则还需C1判断自己有没有UPNP端口,如果没有,那么此次NAT穿透失败,否则,C1需要等待C2的连接,如果连接成功,那么此次NAT穿透成功,否则失败。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811059853.7/1.html,转载请声明来源钻瓜专利网。