CN104243283A - 一种基于nat的即时通讯方法 - Google Patents

一种基于nat的即时通讯方法 Download PDF

Info

Publication number
CN104243283A
CN104243283A CN201410471208.1A CN201410471208A CN104243283A CN 104243283 A CN104243283 A CN 104243283A CN 201410471208 A CN201410471208 A CN 201410471208A CN 104243283 A CN104243283 A CN 104243283A
Authority
CN
China
Prior art keywords
nat
reply
port1
illustrate
penetrate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410471208.1A
Other languages
English (en)
Inventor
王朝红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HEFEI XIEZHIXING INFORMATION SYSTEM ENGINEERING Co Ltd
Original Assignee
HEFEI XIEZHIXING INFORMATION SYSTEM ENGINEERING Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HEFEI XIEZHIXING INFORMATION SYSTEM ENGINEERING Co Ltd filed Critical HEFEI XIEZHIXING INFORMATION SYSTEM ENGINEERING Co Ltd
Priority to CN201410471208.1A priority Critical patent/CN104243283A/zh
Publication of CN104243283A publication Critical patent/CN104243283A/zh
Pending legal-status Critical Current

Links

Abstract

本发明公开一种基于NAT的即时通讯方法,包括NAT探测和NAT穿透,所述NAT穿透的方案是根据所述NAT探测的结果来选择。本发明所公开的基于NAT的即时通讯方法,实现集文字通信、在线消息、文件传输、广播消息及多方会议于一体的即时通讯,利用NAT穿透技术来解决NAT与P2P技术间的冲突问题,具有很强的适应性。

Description

一种基于NAT的即时通讯方法
技术领域
本发明涉及一种即时通讯方法,具体是一种基于NAT的即时通讯方法。
背景技术
计算机对点互连网(Peer-to-Peer,简称P2P),或称为对等联网。P2P直接将人们联系起来,让人们通过互联网直接交互。目前。P2P技术已被应用于即时通讯领域。关于P2P对等网的分类,大致可以分为纯P2P网络和混合P2P网络两类。一是纯P2P网络,各个节点同时作为客户端和服务器端,链状的节点之间构成一个分散式网络,节点之间不必通过服务器,就可以直接建立连接;二是混合P2P网络,通过服务器集中认证,建立索引机制,一旦连接成功,服务器将会不再起作用,对等节点之间直接。
网络地址转换(Network Address Translation,NAT)是在IP地址日益缺乏的情况下产生的,通过端口映射技术使得私网中的结点,不需要一个真正可寻址的IP地址,也能访问Intemet,从而实现网络地址复用。NAT技术可以隐藏内部网络地址信息,使外界无法直接访问内部网络设备,同时保护了内部网络。
NAT是为了解决IPv4地址匮乏,使多台主机共用一个或几个地址而产生的,但是在P2P技术被广泛应用的今天,两者之间必然出现矛盾,即信息不能有效抵达目的地址,因此NAT穿透P2P是即时通讯系统需要解决的问题。
发明内容
针对现有技术的不足,本发明的目的在于提供一种基于NAT的即时通讯方法,来解决NAT与P2P技术间的冲突问题。
为了达到上述目的,本发明提供了一种基于NAT的即时通讯方法,包括NAT探测和NAT穿透,所述NAT穿透的方案是根据所述NAT探测的结果来选择。
所述NAT探测是利用报文收发功能完成探测,具体包括以下步骤:
1)检测是否使用NAT:从消息的载荷中读取内部全局地址和外部端口号,并与自己的IP地址进行比较,如果相同则说明客户机在外网中,没有使用NAT设备,否则说明客户端位于内网中,需要检测NAT类型;
2)检测NAT是否可以穿透:以一内部端口向服务器端IP1/Port1发送报文,要求使用IP1/Port1回复,如果收到回复说明NAT可穿透,如果发送3次请求都无法收到回复,则说明该NAT无法穿透;
3)检测NAT具体类型:以同一内部端口向服务器端IP1/Port1发送报文,要求使用IP2/Port1回复,如果收到回复,则说明NAT类型是Full Cone;若不是Full Cone,从同一内部端口向服务器端IP2/Port1发送报文,要求使用IP2/Port1回复,收到回复后,从载荷中读出端口号,与步骤2)中获取的端口号比较,如果不相同说明NAT类型是Symmetricl,如果相同说明NAT类型是Cone;若无结果,则从同一内部端口向服务器端IP1/Port1发送报文,要求使用IP1/Port2回复,如果收到回复,则说明NAT类型是Restricted Cone,如果发送3次请求都收不到响应消息,则说明NAT类型是Port Restricted Cone。
所述NAT穿透是通过调用穿透模块接口函数来实现穿透功能,具体步骤包括:从探测模块读取方案号、对方案号进行判断以及相匹配时调用相应的方案。
NAT探测是一种请求/应答式的协议,利用报文收发功能完成探测,针对不同类型的NAT设备有不同的穿透策略,减小服务器的压力。NAT设备在端口分配和映射记录等细节上差异很大,因此对所使用的NAT进行类型探测是非常必要的。
NAT穿透是利用穿透模块向通信双方发出穿透消息,消息中包含有对端子系统在登录时使用的内部全局地址和端口号。穿透成功后,双方同时向控制模块返回穿透成功的消息,其中包括对端的内部全局地址和外部端口号。通信双方的NAT类型不同时,实施方法不同,双方的NAT类型相同时,由被叫方负责打洞,负责打洞的一方为主动穿透方,另一方为协助穿透方。
本发明的有益效果是:本发明所公开的基于NAT的即时通讯方法,实现集文字通信、在线消息、文件传输、广播消息及多方会议于一体的即时通讯,利用NAT穿透技术来解决NAT与P2P技术间的冲突问题,具有很强的适应性。
附图说明
图1是本发明所述NAT探测的流程示意图;
图2是本发明所述NAT穿透的流程示意图;
图中:C代表Cone型;S代表Symmetric型;S1代表Symmetric2型(可预测型);S2代表Symmetric2型(不可预测型)。
具体实施方式
下面通过实施例结合附图对本发明作进一步的描述。
如图1、2所示,一种基于NAT的即时通讯方法,包括NAT探测和NAT穿透,其特征在于:所述NAT穿透的方案是根据所述NAT探测的结果来选择。
所述NAT探测是利用报文收发功能完成探测,具体包括以下步骤:
1)检测是否使用NAT:从消息的载荷中读取内部全局地址和外部端口号,并与自己的IP地址进行比较,如果相同则说明客户机在外网中,没有使用NAT设备,否则说明客户端位于内网中,需要检测NAT类型;
2)检测NAT是否可以穿透:以一内部端口向服务器端IP1/Port1发送报文,要求使用IP1/Port1回复,如果收到回复说明NAT可穿透,如果发送3次请求都无法收到回复,则说明该NAT无法穿透;
3)检测NAT具体类型:以同一内部端口向服务器端IP1/Port1发送报文,要求使用IP2/Port1回复,如果收到回复,则说明NAT类型是Full Cone;若不是Full Cone,从同一内部端口向服务器端IP2/Port1发送报文,要求使用IP2/Port1回复,收到回复后,从载荷中读出端口号,与步骤2)中获取的端口号比较,如果不相同说明NAT类型是Symmetricl,如果相同说明NAT类型是Cone;若无结果,则从同一内部端口向服务器端IP1/Port1发送报文,要求使用IP1/Port2回复,如果收到回复,则说明NAT类型是Restricted Cone,如果发送3次请求都收不到响应消息,则说明NAT类型是Port Restricted Cone。
所述NAT穿透是通过调用穿透模块接口函数来实现穿透功能,具体步骤包括:从探测模块读取方案号、对方案号进行判断以及相匹配时调用相应的方案。

Claims (3)

1.一种基于NAT的即时通讯方法,包括NAT探测和NAT穿透,其特征在于:所述NAT穿透的方案是根据所述NAT探测的结果来选择。
2.如权利要求1所述的基于NAT的即时通讯方法,其特征在于:所述NAT探测是利用报文收发功能完成探测,具体包括以下步骤:
1)检测是否使用NAT:从消息的载荷中读取内部全局地址和外部端口号,并与自己的IP地址进行比较,如果相同则说明客户机在外网中,没有使用NAT设备,否则说明客户端位于内网中,需要检测NAT类型;
2)检测NAT是否可以穿透:以一内部端口向服务器端IP1/Port1发送报文,要求使用IP1/Port1回复,如果收到回复说明NAT可穿透,如果发送3次请求都无法收到回复,则说明该NAT无法穿透;
3)检测NAT具体类型:以同一内部端口向服务器端IP1/Port1发送报文,要求使用IP2/Port1回复,如果收到回复,则说明NAT类型是Full Cone;若不是Full Cone,从同一内部端口向服务器端IP2/Port1发送报文,要求使用IP2/Port1回复,收到回复后,从载荷中读出端口号,与步骤2)中获取的端口号比较,如果不相同说明NAT类型是Symmetricl,如果相同说明NAT类型是Cone;若无结果,则从同一内部端口向服务器端IP1/Port1发送报文,要求使用IP1/Port2回复,如果收到回复,则说明NAT类型是Restricted Cone,如果发送3次请求都收不到响应消息,则说明NAT类型是Port Restricted Cone。
3.如权利要求1所述的基于NAT的即时通讯方法,其特征在于:所述NAT穿透是通过调用穿透模块接口函数来实现穿透功能,具体步骤包括:从探测模块读取方案号、对方案号进行判断以及相匹配时调用相应的方案。
CN201410471208.1A 2014-09-16 2014-09-16 一种基于nat的即时通讯方法 Pending CN104243283A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410471208.1A CN104243283A (zh) 2014-09-16 2014-09-16 一种基于nat的即时通讯方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410471208.1A CN104243283A (zh) 2014-09-16 2014-09-16 一种基于nat的即时通讯方法

Publications (1)

Publication Number Publication Date
CN104243283A true CN104243283A (zh) 2014-12-24

Family

ID=52230673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410471208.1A Pending CN104243283A (zh) 2014-09-16 2014-09-16 一种基于nat的即时通讯方法

Country Status (1)

Country Link
CN (1) CN104243283A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027689A (zh) * 2016-04-29 2016-10-12 上海斐讯数据通信技术有限公司 一种通信方法和通信装置
CN108092876A (zh) * 2017-11-23 2018-05-29 湖北大学 一种基于即时通讯应用的nat检测方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825828A (zh) * 2005-02-24 2006-08-30 北京风行在线技术有限公司 一种两端均处于不同nat下直接穿透通信的控制方法和设备
CN1866880A (zh) * 2005-08-05 2006-11-22 华为技术有限公司 下一代网络中的故障检测方法
CN103024097A (zh) * 2012-12-24 2013-04-03 瑞斯康达科技发展股份有限公司 探测网络地址转换服务器老化时间的方法、装置及系统
CN103873600A (zh) * 2012-12-10 2014-06-18 中兴通讯股份有限公司 一种网络地址转换穿透方法及设备
CN103957287A (zh) * 2014-04-25 2014-07-30 浙江大学城市学院 一种基于nat穿透适配器的物联网设备p2p连接方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825828A (zh) * 2005-02-24 2006-08-30 北京风行在线技术有限公司 一种两端均处于不同nat下直接穿透通信的控制方法和设备
CN1866880A (zh) * 2005-08-05 2006-11-22 华为技术有限公司 下一代网络中的故障检测方法
CN103873600A (zh) * 2012-12-10 2014-06-18 中兴通讯股份有限公司 一种网络地址转换穿透方法及设备
CN103024097A (zh) * 2012-12-24 2013-04-03 瑞斯康达科技发展股份有限公司 探测网络地址转换服务器老化时间的方法、装置及系统
CN103957287A (zh) * 2014-04-25 2014-07-30 浙江大学城市学院 一种基于nat穿透适配器的物联网设备p2p连接方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张静颐等: "《基于NAT穿透P2P即时通讯系统的设计与实现》", 《电子设计工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027689A (zh) * 2016-04-29 2016-10-12 上海斐讯数据通信技术有限公司 一种通信方法和通信装置
CN106027689B (zh) * 2016-04-29 2020-04-10 上海斐讯数据通信技术有限公司 一种通信方法和通信装置
CN108092876A (zh) * 2017-11-23 2018-05-29 湖北大学 一种基于即时通讯应用的nat检测方法及系统

Similar Documents

Publication Publication Date Title
JP6054484B2 (ja) 割り当てられたネットワークアドレスを有するデバイスにアクセスするクライアントローカルプロキシサーバを使用したシステムおよび方法
US9143421B2 (en) Network system capable of implementing stun with the assistance of two network devices and method thereof
RU2543304C2 (ru) Способ и устройство, для ретрансляции пакетов
CN103108089B (zh) 网络系统的连线建立管理方法及其相关系统
CN105376299B (zh) 一种网络通信方法、设备及网络附属存储设备
CN103957287A (zh) 一种基于nat穿透适配器的物联网设备p2p连接方法
US8978126B2 (en) Method and system for TCP turn operation behind a restrictive firewall
CN106604119B (zh) 一种用于智能电视私有云设备的网络穿透方法及系统
CN101977249B (zh) 穿透nat设备的方法
CN101895590A (zh) 基于udt实现nat穿越的系统和方法
US10178015B2 (en) Methods, systems, and computer readable media for testing network equipment devices using connectionless protocols
CN102201996B (zh) 网络地址转换环境中报文转发的方法及设备
WO2016082627A1 (zh) 多用户共享上网的检测方法及装置
CN103023818B (zh) 媒体接入控制强制转发arp报文的方法及装置
CN104243283A (zh) 一种基于nat的即时通讯方法
CN104348731A (zh) 社区虚拟网络连线建立方法及网络通信系统
CN104506405B (zh) 跨域访问的方法及装置
CA2884382C (en) Method and system for tcp turn operation behind a restrictive firewall
CN115022281B (zh) 一种nat穿透的方法、客户端及系统
CN102457580A (zh) Nat穿越方法及系统
CN105049300B (zh) 一种检测nat网络类型的方法及装置
CN103036789A (zh) 报文发送方法、装置和网络出口设备
TWI555357B (zh) Effectively maintain the NAT channel service method
US20180063255A1 (en) Method and Apparatus for Terminal Application Accessing NAS
CN107454178B (zh) 数据传输方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141224

WD01 Invention patent application deemed withdrawn after publication