一种nat网络类型检测方法及装置的制造方法

文档序号:9870458阅读:528来源:国知局
一种nat网络类型检测方法及装置的制造方法
【技术领域】
[0001]本发明涉及NAT检测领域,特别涉及一种NAT网络类型检测方法及装置。
【背景技术】
[0002]在对等计算P2P网络中由于网络地址转换NAT设备的存在,P2P节点一般需要先检测NAT网络类型,从而选择有效的NAT穿透技术。
[0003]现有技术中,国际互联网工程任务组IETF推荐使用RFC3489中描述的STUN(SimpleTraversal of UDP over NATs,NAT的UDP简单穿越)协议,在RFC3489文档中描述了STUN协议的详细规格,它定义的捆绑请求包含会话ID、消息类型、消息码、置换地址和消息属性,它定义的捆绑应答包含会话ID、消息类型、消息码、置换地址、映射地址和消息属性,根据消息类型和消息属性的不同,捆绑请求和捆绑应答包含的字节由28变化到60个字节不等。这些STUN消息格式的定义在实际业务处理中占用系统资源多,使得网络开销较大。

【发明内容】

[0004]本发明实施例的目的在于提供一种NAT网络类型检测方法及装置,以简化STUN协议,从而减小网络开销。具体技术方案如下:
[0005]本发明提供了一种NAT网络类型检测方法,应用于客户端,所述方法包括:
[0006]在预定网络类型检测时刻,向P2P网络中的服务器的第一地址的第一端口发送第一捆绑请求消息要求所述服务器从第一地址的第一端口反馈第一捆绑应答消息,并监听所述服务器的第一地址的第一端口反馈的第一捆绑应答消息,其中,所述服务器包括第一地址、第二地址、第一端口和第二端口,所述第一捆绑请求中携带消息码,所述第一捆绑应答消息中携带映射地址Mapped-Address和置换地址Changed-Address ;
[0007]当第一预设捆绑响应时间段监听到所述服务器的第一地址的第一端口反馈的第一捆绑应答消息时,如果所监听到的第一捆绑应答消息所携带的Mapped-Address与自身的网络地址不相同,则确定存在NAT设备,并且,向所述服务器的第一地址的第一端口发送第二捆绑请求消息要求所述服务器从第二地址的第二端口反馈第二捆绑应答消息;
[0008]获得在第二预设捆绑响应时间段内的监听结果,基于所述监听结果,确定自身的NAT网络类型。
[0009]可选的,所述方法还包括:
[0010]向所述服务器的第一地址的第一端口发送所述第一捆绑请求消息之后,当所述第一预设捆绑响应时间段未监听到所述服务器的第一地址的第一端口反馈的第一捆绑应答消息时,重新向所述服务器的第一地址的第一端口发送所述第一捆绑请求消息要求所述服务器从第一地址的第一端口反馈第一捆绑应答消息;
[0011]在重发发送的次数达到预定次数阈值后,如果未监听到所述服务器的第一地址的第一端口反馈的第一捆绑应答消息,则确定自身的NAT网络类型为BLOCKED类型。
[0012]可选的,所述获得在第二预设捆绑响应时间段内的监听结果,基于所述监听结果,确定自身的NAT网络类型,包括:
[0013]当所述第二预设捆绑响应时间段监听到所述服务器的第二地址的第二端口反馈的第二捆绑应答消息时,则确定自身的NAT网络类型为FULLC0NE类型。
[0014]可选的,所述方法还包括:
[0015]当第二预设捆绑响应时间段未监听到所述服务器的第二地址的第二端口反馈的第二捆绑应答消息时,重新向所述服务器的第一地址的第一端口发送第二捆绑请求消息要求所述服务器从第二地址的第二端口反馈第二捆绑应答,在重发发送的次数达到预定次数阈值后,如果未监听到所述服务器的第二地址的第二端口反馈的第二捆绑应答消息,则向所述第一捆绑应答消息中携带的Changed-Address发送第三捆绑请求消息要求所述服务器从第二地址的第二端口反馈第三捆绑应答消息;
[0016]当第三预设捆绑响应时间段监听到所述服务器的第二地址的第二端口反馈的第三捆绑应答消息,基于所监听到的该第三捆绑应答消息,确定自身的NAT网络类型。
[0017]可选的,所述基于所监听到的该第三捆绑应答消息,确定自身的NAT网络类型,包括:
[0018]判断第一捆绑应答消息和第三捆绑应答消息中所携带的Mapped-Address是否相同,如果是,则向所述服务器的第一地址的第一端口发送第四捆绑请求消息要求所述服务器从第一地址的第二端口反馈第四捆绑应答消息,如果否,则确定自身的NAT网络类型为SYMMETRIC 类型;
[0019]在第四预设捆绑响应时间段内,判断是否监听到所述服务器的第一地址的第二端口反馈的第四捆绑应答消息,如果是,确定自身的NAT网络类型为RESTRICTED类型,如果否,重新向所述服务器的第一地址的第一端口发送第四捆绑请求消息要求所述服务器从第一地址的第二端口反馈第四捆绑应答消息;
[0020]在重发发送的次数达到预定次数阈值后,如果未监听到所述服务器的第一地址的第二端口反馈的第四捆绑应答消息,则确定自身的NAT网络类型为PORTRESTRICTED类型。
[0021]可选的,所述方法还包括:
[0022]当所述第一预设捆绑响应时间段监听到所述服务器的第一地址的第一端口反馈的第一捆绑应答消息时,如果所监听到的所述第一捆绑应答消息所携带的映射地址Mapped-Address与自身的网络地址相同,则确定不存在NAT设备,并且,向所述服务器的第一地址的第一端口发送第五捆绑请求消息要求所述服务器从第二地址的第二端口反馈第五捆绑应答消息;
[0023]当第五预设捆绑响应时间段监听到所述服务器的第二地址的第二端口反馈的第五捆绑应答消息,则确定自身的NAT网络类型为PUBLIC类型。
[0024]可选的,所述方法还包括:
[0025]向所述服务器的第一地址的第一端口发送第五捆绑请求消息之后,当第五预设捆绑响应时间段未监听到所述服务器的第二地址的第二端口反馈的第五捆绑应答消息时,重新向所述服务器的第一地址的第一端口发送第五捆绑请求消息要求所述服务器从第二地址的第二端口反馈第五捆绑应答消息;
[0026]在重发发送的次数达到预定次数阈值后,如果未监听到所述服务器的第二地址的第二端口反馈的第五捆绑应答消息,则确定自身的NAT网络类型为FIREWALL类型。
[0027]本发明实施例提供了一种NAT网络类型检测装置,应用于客户端,所述装置包括:
[0028]消息发送模块,用于在预定网络类型检测时刻,向P2P网络中的服务器的第一地址的第一端口发送第一捆绑请求消息要求所述服务器从第一地址的第一端口反馈第一捆绑应答消息,并监听所述服务器的第一地址的第一端口反馈的第一捆绑应答消息,其中,所述服务器包括第一地址、第二地址、第一端口和第二端口,所述第一捆绑请求中携带消息码,所述第一捆绑应答消息中携带映射地址Mapped-Address和置换地址Changed-Address ;
[0029]第一消息分析模块,用于当第一预设捆绑响应时间段监听到所述服务器的第一地址的第一端口反馈的第一捆绑应答消息时,如果所监听到的第一捆绑应答消息所携带的Mapped-Address与自身的网络地址不相同,则确定存在NAT设备,并且,向所述服务器的第一地址的第一端口发送第二捆绑请求消息要求所述服务器从第二地址的第二端口反馈第二捆绑应答消息;
[0030]第一确定模块,用于获得在第二预设捆绑响应时间段内的监听结果,基于所述监听结果,确定自身的NAT网络类型。
[0031]可选的,所述装置还包括:
[0032]第一消息重发模块,用于所述消息发送模块向所述服务器的第一地址的第一端口发送所述第一捆绑请求消息之后,当所述第一预设捆绑响应时间段未监听到所述服务器的第一地址的第一端口反馈的第一捆绑应答消息时,重新向所述服务器的第一地址的第一端口发送所述第一捆绑请求消息要求所述服务器从第一地址的第一端口反馈第一捆绑应答消息;
[0033]第二确定模块,用于在重发发送的次数达到预定次数阈值后,如果未监听到所述服务器的第一地址的第一端口反馈的第一捆绑应答消息,则确定自身的NAT网络类型为BLOCKED 类型。
[0034]可选的,所述第一确定模块,包括:
[0035]网络类型确定单元,用于当所述第二预设捆绑响应时间段监听到所述服务器的第二地址的第二端口反馈的第二捆绑应答消息时,则确定自身的NAT网络类型为FULIX0NE类型。
[0036]可选的,所述装置还包括:
[0037]第二消息重发模块,用于当第二预设捆绑响应时间段未监听到所述服务器的第二地址的第二端口反馈的第二捆绑应答消息时,重新向所述服务器的第一地址的第一端口发送第二捆绑请求消息要求所述服务器从第二地址的第二端口反馈第二捆绑应答,在重发发送的次数达到预定次数阈值后,如果未监听到所述服务器的第二地址的第二端口反馈的第二捆绑应答消息,则向所述第一捆绑应答消息中携带的Changed-Address发送第三捆绑请求消息要求所述服务器从第二地址的第二端
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1