CN104243283A - 一种基于nat的即时通讯方法 - Google Patents
一种基于nat的即时通讯方法 Download PDFInfo
- 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
Links
Abstract
本发明公开一种基于NAT的即时通讯方法,包括NAT探测和NAT穿透,所述NAT穿透的方案是根据所述NAT探测的结果来选择。本发明所公开的基于NAT的即时通讯方法,实现集文字通信、在线消息、文件传输、广播消息及多方会议于一体的即时通讯,利用NAT穿透技术来解决NAT与P2P技术间的冲突问题,具有很强的适应性。
Description
技术领域
本发明涉及一种即时通讯方法,具体是一种基于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穿透是通过调用穿透模块接口函数来实现穿透功能,具体步骤包括:从探测模块读取方案号、对方案号进行判断以及相匹配时调用相应的方案。
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)
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)
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连接方法 |
-
2014
- 2014-09-16 CN CN201410471208.1A patent/CN104243283A/zh active Pending
Patent Citations (5)
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)
Title |
---|
张静颐等: "《基于NAT穿透P2P即时通讯系统的设计与实现》", 《电子设计工程》 * |
Cited By (3)
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 |