CN102420774A - 使用igmp实现内网穿透的方法和内网穿透系统 - Google Patents

使用igmp实现内网穿透的方法和内网穿透系统 Download PDF

Info

Publication number
CN102420774A
CN102420774A CN201210002998XA CN201210002998A CN102420774A CN 102420774 A CN102420774 A CN 102420774A CN 201210002998X A CN201210002998X A CN 201210002998XA CN 201210002998 A CN201210002998 A CN 201210002998A CN 102420774 A CN102420774 A CN 102420774A
Authority
CN
China
Prior art keywords
terminal
server
router
igmp
intranet
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.)
Granted
Application number
CN201210002998XA
Other languages
English (en)
Other versions
CN102420774B (zh
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.)
Shenzhen Gongjin Electronics Co Ltd
Original Assignee
Shenzhen Gongjin Electronics 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 Shenzhen Gongjin Electronics Co Ltd filed Critical Shenzhen Gongjin Electronics Co Ltd
Priority to CN201210002998.XA priority Critical patent/CN102420774B/zh
Publication of CN102420774A publication Critical patent/CN102420774A/zh
Application granted granted Critical
Publication of CN102420774B publication Critical patent/CN102420774B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开一种使用IGMP实现内网穿透的方法,为解决使用SymmetricNAT的系统无法用一终端主动访问另一终端的缺陷而设计。该方法主要包括下述步骤:第一终端发送请求至服务器,两者之间保持连接;第二终端发送IGMP报文,建组播域并归入该组,本地建立UDP套接字,并在一端口上监听;第二终端将组播域值和端口值发送至服务器,提出访问请求;服务器将访问请求转发给第一终端;第一终端将数据发送至第二路由器,由其转发给第二终端。本发明还公开了一种内网穿透系统,至少包括两个终端、一个路由器和一服务器。本发明方法适用于用一终端主动访问另一终端的各种系统,尤其是使用Symmetric NAT的系统。

Description

使用IGMP实现内网穿透的方法和内网穿透系统
技术领域
本发明涉及一种使用IGMP实现内网穿透的方法和内网穿透系统。
背景技术
目前大部分用户上网都是通过路由器(router)拨号,用户的电脑(PC)在路由器(router)后,电脑(PC)使用私网地址。如图1所示。
当PC需要访问外部网络时,路由器将PC的ip(网络之间互连的协议)地址进行NAPT(Network Address Port Translation)转换为公网的地址,并为此记录一个session,记录了数据的源地址、源端口、目的地址和目的端口等信息。此后,当外部网络相应数据发回来时,路由器根据会话(session)记录进行匹配。匹配成功则将数据转发到内部相应的PC上。
这样的机制下,如果外部网络想主动访问内网的PC,会被路由器丢掉。因为此时路由器内部并没有相应的session记录,路由器内部防火墙一般会将这种没有记录的“不请自来”的数据包丢弃,保证内部网络的安全性。外部网络需要主动访问路由器后面的一台主机时,一般有两种方法解决。
第一种方法是在路由器上手动添加端口映射规则,将外部来的某种指定的数据转到内网指定的PC。这种方法需要修改路由器,需要对路由器有一定的了解才能配置。
第二种方法即通常说的“打洞”,是利用了路由器中的NAPT机制。使用这种“打洞”的方法要求路由器使用的NAT是Cone NAT。如果路由器使用的NAT是Symmetric NAT,这种“打洞”方法就不管用了。
发明内容
为了克服上述的缺陷,本发明提供一种可用于Symmetric NAT路由器的使用IGMP实现内网穿透的方法。
为达到上述目的,一方面,本发明提供一种使用IGMP实现内网穿透的方法,所述方法令第一终端能够通过外部网络主动访问内网的第二终端,所述方法包括下述步骤:
所述第一终端发送请求至服务器,第一终端和服务器之间通过心跳机制长期保持此连接;
所述第二终端发送IGMP报文,建组播域并归入该组;本地建立UDP套接字,并在一端口上监听;
所述第二终端经过第二路由器发送消息至服务器,将组播域值和端口值发送至服务器,提出访问所述第一终端的请求;
服务器将访问请求转发给第一终端;
第一终端将数据通过UDP的方式发送至第二路由器,目的地址为所述组播域值,目的端口为所述端口值;
第二路由器将数据转发给第二终端。
另一方面,本发明提供一种内网穿透系统,至少包括依次连接的第一终端、服务器、第二路由器和第二终端,所述系统在使用上述方法后第二终端能够通过所述服务器主动访问第一终端。
本发明使用IGMP实现内网穿透的方法中,IGMP使用组播地址传输,且IGMP不需要使用端口号,可以绕开Symmetric NAT转换端口号的问题。实现了对包括Symmetric NAT路由器系统在内的多种系统的内网穿透,效果良好。
本发明内网穿透系统通过网络实现一终端访问另一终端,使用IGMP实现了内网穿透。结构合理,使用方便,性能良好。
附图说明
图1为现有PC上网的原理示意图。
图2为Cone NAT的工作原理示意图。
图3“打洞”的工作原理示意图。
图4图3所示“打洞”的步骤示意图。
图5本发明使用IGMP实现内网穿透的方法的步骤示意图。
具体实施方式
下面结合说明书附图和实施例对本发明做详细描述。
当客户端(例如PC)向互连网上一台服务器A发送请求时,路由器(router)为其分配一个session,并分配一个端口号。路由器记录下本次session的源IP、源端口、目的IP和目的端口。如果此时客户端向另外一台服务器B发送一个同样的请求,路由器会为其再分配一个session。如果分配的端口号不变,此类型的NAT叫Cone NAT,如图2所示。如果路由器为其分配了另外一个端口,此类型的NAT叫Symmetric NAT。
在Cone NAT路由器的情况下可以通过“打洞”来实现一个客户端通过外网主动访问另一个客户端。这种“打洞”操作需要一个具有固定互连网IP地址的主机作为服务器,即作为连接建立的中转站。
如图3和图4所示,“打洞”方法主要包括下述步骤:
1.PC A先发一个请求到服务器(server);经过router A转换后,源地址和端口改为50.50.50.50:3000;server收到后将此信息保存下来,PC A和server之间通过心跳机制长期保持此连接,用来传输命令。
2.PC B向服务器A发请求,查询router A对外开放的端口。
3.server记录下PC B对外的IP地址和端口号40.40.40.40:2000。同时向PC A发送请求,要求PC A使用原来的socket向40.40.40.40的2000端口发送请求。
4.server向PC B发送PC A的IP地址和端口号50.50.50.50:3000。
5.PC A向PC B发送请求,目的端口为2000。在router A中生成一个session,源IP、源端口、目的ip和目的端口分别为50.50.50.50:3000、40.40.40.40:2000。对于Router B来讲,此数据报没有相应的session匹配,将其丢弃。
6.PC B向PC A的3000端口发起数据请求。
7.PC B的请求到达routerA后,routerA查找session,发现可以匹配,将数据转发到内网PC A上,这样一条数据链路就建立起来了。
如果路由器使用的NAT是Symmetric NAT,“打洞”方法就不管用了,因为Router做NAPT后端口是不固定的。虽然一般情况下是递增的,但仅仅是一般情况,不能保证100%正确。这一特点令应用“打洞”方法易出现错误。
本发明使用IGMP实现内网穿透的方法可以解决这一问题。IGMP使用组播地址传输。相比UDP,IGMP不需要使用端口号,可以绕开Symmetric NAT转换端口号的问题。其原理和UDP的打洞技术类似,只是借用了组播地址。
该方法令第二终端能够通过外部网络主动访问内网的第一终端,无需满足端口固定的要求。该方法包括下述步骤:
第一终端发送请求至服务器,第一终端和服务器之间通过心跳机制期保持此连接;
第二终端发送IGMP报文,建组播域并归入该组;本地建立UDP套接字,并在一端口上监听;
第二终端经过第二路由器发送消息至服务器,将组播域值和端口值发送至服务器,提出访问第一终端的请求;
服务器将访问请求转发给第一终端;
第一终端将数据通过UDP的方式发送至第二路由器,目的地址为所述组播域值,目的端口为所述端口值;
第二路由器将数据转发给第二终端。
通过上述步骤,本发明使用IGMP实现内网穿透的方法成功地实现了一终端通过外部网络主动访问内网的另一终端。而且不限于使用的为何种NAT,ConeNAT和Symmetric NAT均可。适用性更广,性能更好。
优选实施例:如图5所示,使用IGMP实现内网穿透的方法的步骤为:
1.PC A首先先发一个请求到服务器(server),PC A和server之间通过心跳机制长期保持此连接,用来传输命令。
2.PC B发送一个IGMP report报文,加入一个组:234.5.6.7。
3.PC B本地建立udp socket在1234端口上监听,然后发送消息到server,通知server自己加入组播域234.5.6.7,并希望访问PCA的数据,自己使用1234端口接收。
4.server将消息转发给PC A。
5.PC A将数据通过UDP的方式发送,目的地址为234.5.6.7,目的端口为1234。
如果PC B也在路由器后,当PC B发送IGMP report报文时,路由器会建立一个规则允许目的IP为234.5.6.7的包进入,并转发给PC B。这样PC B就可以接收到PC A的数据了。
此方法中UDP端口可以随机产生,每次传完数据后释放端口,下次再请求数据时另外申请组播域和UDP端口,避免和公网上的其他组播服务冲突。
本发明内网穿透系统至少包括依次连接的第一终端、服务器、第二路由器和第二终端,该系统在使用上述方法后第二终端能够通过所述服务器主动访问第一终端。
上述使用IGMP实现内网穿透的方法可以令本发明内网穿透系统实现一终端通过外部网络主动访问内网的另一终端,解决了使用Symmetric NAT的系统无法主动访问的问题。
以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。

Claims (2)

1.一种使用IGMP实现内网穿透的方法,所述方法令第一终端能够通过外部网络主动访问内网的第二终端,其特征在于,所述方法包括下述步骤:
所述第一终端发送请求至服务器,第一终端和服务器之间通过心跳机制保持此连接;
所述第二终端发送IGMP报文,建组播域并归入该组;本地建立UDP套接字,并在一端口上监听;
所述第二终端经过第二路由器发送消息至服务器,将组播域值和端口值发送至服务器,提出访问所述第一终端的请求;
服务器将访问请求转发给第一终端;
第一终端将数据通过UDP的方式发送至第二路由器,目的地址为所述组播域值,目的端口为所述端口值;
第二路由器将数据转发给第二终端。
2.一种内网穿透系统,至少包括依次连接的第一终端、服务器、第二路由器和第二终端,其特征在于:所述系统在使用权1所述方法后第二终端能够通过所述服务器主动访问第一终端。
CN201210002998.XA 2012-01-06 2012-01-06 使用igmp实现内网穿透的方法和内网穿透系统 Active CN102420774B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210002998.XA CN102420774B (zh) 2012-01-06 2012-01-06 使用igmp实现内网穿透的方法和内网穿透系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210002998.XA CN102420774B (zh) 2012-01-06 2012-01-06 使用igmp实现内网穿透的方法和内网穿透系统

Publications (2)

Publication Number Publication Date
CN102420774A true CN102420774A (zh) 2012-04-18
CN102420774B CN102420774B (zh) 2014-04-30

Family

ID=45945014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210002998.XA Active CN102420774B (zh) 2012-01-06 2012-01-06 使用igmp实现内网穿透的方法和内网穿透系统

Country Status (1)

Country Link
CN (1) CN102420774B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105049543A (zh) * 2015-06-02 2015-11-11 上海斐讯数据通信技术有限公司 智能路由器间穿越非对称nat进行p2p通信的系统及方法
CN107077699A (zh) * 2014-06-30 2017-08-18 Cfph 有限责任公司 金融网络
CN108092993A (zh) * 2017-12-29 2018-05-29 税友软件集团股份有限公司 一种网络数据传输控制方法和系统
CN109391551A (zh) * 2017-08-14 2019-02-26 中兴通讯股份有限公司 一种多端口组播方法、设备及计算机可读存储介质
CN109981367A (zh) * 2019-03-28 2019-07-05 湖南大学 基于内网穿透的虚机paas服务管理的方法
CN112615946A (zh) * 2020-12-24 2021-04-06 苏州摩联通信技术有限公司 一种终端监控方法、装置和存储介质
CN113835911A (zh) * 2021-11-23 2021-12-24 深圳市明源云科技有限公司 内网穿透代理方法、系统、主机及计算机可读存储介质
WO2022143127A1 (zh) * 2020-12-31 2022-07-07 华为技术有限公司 一种访问局域网服务设备的方法及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107231362B (zh) * 2017-06-12 2020-03-20 国网信息通信产业集团有限公司 一种实现协同工作的控制方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101442564A (zh) * 2008-12-25 2009-05-27 杭州华三通信技术有限公司 组播数据转发的方法和nat设备
CN101442492A (zh) * 2008-12-26 2009-05-27 中国科学院计算技术研究所 一种p2p网络中实现nat穿越的方法和系统
CN101741914A (zh) * 2010-02-03 2010-06-16 上海悠络客电子科技有限公司 一种p2p网络中穿透nat建立覆盖网的方法和系统
CN101895590A (zh) * 2010-07-23 2010-11-24 华南理工大学 基于udt实现nat穿越的系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101442564A (zh) * 2008-12-25 2009-05-27 杭州华三通信技术有限公司 组播数据转发的方法和nat设备
CN101442492A (zh) * 2008-12-26 2009-05-27 中国科学院计算技术研究所 一种p2p网络中实现nat穿越的方法和系统
CN101741914A (zh) * 2010-02-03 2010-06-16 上海悠络客电子科技有限公司 一种p2p网络中穿透nat建立覆盖网的方法和系统
CN101895590A (zh) * 2010-07-23 2010-11-24 华南理工大学 基于udt实现nat穿越的系统和方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077699A (zh) * 2014-06-30 2017-08-18 Cfph 有限责任公司 金融网络
CN107077699B (zh) * 2014-06-30 2021-03-12 Cfph 有限责任公司 用于通信网络的设备
CN105049543A (zh) * 2015-06-02 2015-11-11 上海斐讯数据通信技术有限公司 智能路由器间穿越非对称nat进行p2p通信的系统及方法
CN105049543B (zh) * 2015-06-02 2018-06-19 上海斐讯数据通信技术有限公司 智能路由器间穿越非对称nat进行p2p通信的系统及方法
CN109391551B (zh) * 2017-08-14 2021-10-12 中兴通讯股份有限公司 一种多端口组播方法、设备及计算机可读存储介质
CN109391551A (zh) * 2017-08-14 2019-02-26 中兴通讯股份有限公司 一种多端口组播方法、设备及计算机可读存储介质
CN108092993B (zh) * 2017-12-29 2020-12-18 税友软件集团股份有限公司 一种网络数据传输控制方法和系统
CN108092993A (zh) * 2017-12-29 2018-05-29 税友软件集团股份有限公司 一种网络数据传输控制方法和系统
CN109981367A (zh) * 2019-03-28 2019-07-05 湖南大学 基于内网穿透的虚机paas服务管理的方法
CN109981367B (zh) * 2019-03-28 2021-05-07 湖南大学 基于内网穿透的虚机paas服务管理的方法
CN112615946A (zh) * 2020-12-24 2021-04-06 苏州摩联通信技术有限公司 一种终端监控方法、装置和存储介质
CN112615946B (zh) * 2020-12-24 2023-03-24 苏州摩联通信技术有限公司 一种终端监控方法、装置和存储介质
WO2022143127A1 (zh) * 2020-12-31 2022-07-07 华为技术有限公司 一种访问局域网服务设备的方法及电子设备
CN113835911A (zh) * 2021-11-23 2021-12-24 深圳市明源云科技有限公司 内网穿透代理方法、系统、主机及计算机可读存储介质

Also Published As

Publication number Publication date
CN102420774B (zh) 2014-04-30

Similar Documents

Publication Publication Date Title
CN102420774B (zh) 使用igmp实现内网穿透的方法和内网穿透系统
CN102984289B (zh) 促进nat穿透的方法以及移动设备
TWI441493B (zh) 網路位址轉換的系統與方法
CN101741914B (zh) 一种p2p网络中穿透nat建立覆盖网的方法和系统
CN102571749B (zh) 使用中继服务器的数据传输系统和方法
US9143421B2 (en) Network system capable of implementing stun with the assistance of two network devices and method thereof
CN101582856B (zh) 一种门户服务器与宽带接入设备的会话建立方法及其系统
CN102790811B (zh) 一种在监控网络中穿越nat设备的方法和装置
CN104427010A (zh) 应用于动态虚拟专用网络的网络地址转换方法和装置
CN103475750A (zh) 一种适用于多出口网络的地址转换方法及设备
KR101240552B1 (ko) 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법
CN103248720A (zh) 一种查询物理地址的方法及装置
CN104811371A (zh) 一种全新的即时通信系统
CN103763407A (zh) 二层虚拟局域网实现地址解析协议代理方法及局域网系统
CN109379291A (zh) 一种组网中服务请求的处理方法及装置
WO2023173720A1 (zh) 应用访问方法、云端代理及节点代理组件、设备、介质
US8873569B2 (en) User centric virtual network and method of establishing the same
WO2016107269A1 (zh) 虚拟可扩展本地区域网络中数据传输的设备和方法
CN102201996A (zh) 网络地址转换环境中报文转发的方法及设备
US11716222B2 (en) Communications bridge
CN104660728A (zh) 基于智能家居控制系统的nat穿透方法
CN109639565B (zh) 一种去中心化的即时通信多服务节点互联互通系统
JP6990647B2 (ja) ReNAT通信環境を提供するシステム及び方法
JP2019050628A5 (zh)
CN102377834B (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
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Yan Ruixuan

Inventor after: Wang Jingui

Inventor after: Ma Jianjun

Inventor before: Yan Ruixuan

Inventor before: Wang Jingui

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: YAN RUIXUAN WANG JINGUI TO: YAN RUIXUAN WANG JINGUI MA JIANJUN

C14 Grant of patent or utility model
GR01 Patent grant