[发明专利]一种基于KCP协议的NAT穿透方法有效
申请号: | 201811059853.7 | 申请日: | 2018-09-12 |
公开(公告)号: | CN109194778B | 公开(公告)日: | 2021-11-05 |
发明(设计)人: | 汪小益;徐才巢;李启雷;李伟;邱炜伟;梁秀波;尹可挺 | 申请(专利权)人: | 杭州趣链科技有限公司 |
主分类号: | H04L29/12 | 分类号: | H04L29/12;H04L29/06;H04L29/08 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 贾玉霞;邱启旺 |
地址: | 310012 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于KCP协议的NAT穿透方法,首先P2P网络中的节点需要向一个位于公网的辅助NAT穿透的服务节点进行NAT信息注册,然后当节点需要连接另一个使用TCP协议无法连接的节点时,先把NAT穿透请求发给服务节点,服务节点根据两个节点的NAT信息给双方返回对方的网络地址和NAT穿透策略。双方节点根据收到的信息执行NAT穿透逻辑,即先用UDP协议进行NAT穿透,如果穿透成功则使用KCP协议进行连接,否则,此次NAT穿透失败。本发明解决了使用TCP进行NAT穿透难度大的问题,使用UDP进行NAT穿透提高成功率,同时使用KCP协议作为传输层协议从一定程度上解决了UDP协议传输不可靠的问题。 | ||
搜索关键词: | 一种 基于 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进行中继服务。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811059853.7/,转载请声明来源钻瓜专利网。