CN108833433A - 一种依据nat穿透的共享方法 - Google Patents

一种依据nat穿透的共享方法 Download PDF

Info

Publication number
CN108833433A
CN108833433A CN201810704838.7A CN201810704838A CN108833433A CN 108833433 A CN108833433 A CN 108833433A CN 201810704838 A CN201810704838 A CN 201810704838A CN 108833433 A CN108833433 A CN 108833433A
Authority
CN
China
Prior art keywords
customer end
port
server
nat
tunnel
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.)
Withdrawn
Application number
CN201810704838.7A
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.)
Anhui He Soft Information Technology Co Ltd
Original Assignee
Anhui He Soft Information Technology 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 Anhui He Soft Information Technology Co Ltd filed Critical Anhui He Soft Information Technology Co Ltd
Priority to CN201810704838.7A priority Critical patent/CN108833433A/zh
Publication of CN108833433A publication Critical patent/CN108833433A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及计算机网络领域,提供了一种依据NAT穿透的共享方法,通过建立基于TCP协议的隧道,使得分别位于不同私网中的两个客户端可以穿透各自的NAT设备,而进行稳定可靠的数据传输。本发明的方法不仅可以很灵活地实现不同网络间的数据收发,实现不同网段间的通信,更进一步地还可支持不同私网用户之间安全可靠地共享应用。

Description

一种依据NAT穿透的共享方法
技术领域
本发明涉及计算机网络领域,特别涉及一种依据NAT穿透的共享方法。
背景技术
随着Internet的普及和网络设备的飞速发展,接入互联网的用户和 设备正在呈几何级数地增长着,然而依照现行的IPv4协议,每个 Internet的主机都有一个唯一的IP地址,IP地址用一个32位二进制的数 来表示。由于32位的二进制数仅仅是十亿级别的数值,随着接入 Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见 肘。事实上,除了中国教育和科研计算机网(CERNET)外,一般用户 几乎申请不到整段的C类IP地址。在其他ISP那里,即使是拥有几百台 计算机的大型局域网用户,当申请IP地址时,所分配的地址也不过只 有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用 户的需求。
与此同时,虽然下一代互联网协议IPv6已经被讨论制定,但由于 新的协议需要众多的设备厂商的支持,同时需要对现有的基础网络设 施进行大规模地升级或换代,所需的时间和成本都难以估量,因而短 期内也无法大规模地实施。
于是,目前的互联网企业普遍采用网络地址转换(NAT,Network AddressTranslation)方式来解决这一问题,网络地址转换属接入广域 网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技 术,被广泛应用于各种类型Internet接入方式和各种类型的网络中。 NAT设备允许处于同一NAT后的多台主机共享一个公网(处于同一NAT后的网络称为私网,处于NAT前的网络称为公网)IP地址。一个私 网IP地址通过NAT设备与公网的其他主机通信。NAT不仅完美地解决 了IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击, 隐藏并保护网络内部的计算机。
一个通常的基于NAT技术的公网和私网IP地址域构成如图1所 示,一般来说都是由私网内主机,如图1中的设备A-01,主动发起连 接,数据包经过NAT地址转换后送给公网上的服务器Server,连接建 立以后可双向传送数据。NAT设备允许私网内主机主动向公网内主机 发送数据,但却禁止反方向的主动传递,使得一些特殊场合需要不同 私网内的主机进行互联的活动(例如P2P软件、网络会议、视频传输 等)无法进行,这明显制约了互联网应用的发展。
尽管通常使用UDP协议就能够穿透NAT,但是UDP数据虽然速度 快,却没有保障,而且NAT为UDP准备的临时端口号有生命周期的限 制,使用起来不够方便。在需要保证传输质量的应用上(如文件传输 等)TCP连接还是首选,基于TCP协议的众多网络应用,尤其是不同私网内主机之间的共享应用无法在NAT环境中实施,极大地影响了互 联网企业中的用户使用。因而目前,TCP穿透NAT的问题亟待解决。
发明内容
(一)要解决的技术问题
针对现有技术的缺点,本发明为了解决一种依据NAT穿透的共享方法应用的问题,通过互联网中服务器主机的协助,在两不同私网 中的客户端之间建立直接的TCP连接,使得不同私网内客户端的共享 应用可以穿透NAT进行实施。
(二)技术方案
为此解决上述技术问题,本发明具体地采用如下技术方案进行:
首先,本发明提供一种基于NAT穿透的共享方法,私网中客户 端A通过NAT路由器NAT-A与公网上服务器S通信,另一私网中客 户端B通过NAT路由器NAT-B与服务器S通信,所述方法包括步骤:
S1,服务器S开启两个网络端口,主连接端口和隧道协助端口;
S2,客户端A和客户端B分别与服务器S的主连接端口保持联 系;
S3,当客户端A需要和客户端B建立直接的TCP连接时,首先 连接服务器S的隧道协助端口,并发送协助连接请求,同时在该端口 上启动监听;
S4,服务器S的隧道协助端口接收到客户端A的连接请求后通 过主连接端口通知客户端B,并将客户端A经过路由器NAT-A转换 后的公网IP地址和端口信息告诉客户端B;
S5,客户端B收到服务器S的通知后首先与服务器S的隧道协 助端口连接,发送一些随机数据后立即断开;
S6,客户端B尝试与客户端A经过路由器NAT-A转换后的公网 IP地址和端口进行连接;
S7,客户端B建立隧道的同时在相同的端口上启动监听,客户 端B在一切准备就绪以后向服务器S的主连接端口回复“准备就绪” 消息,服务器S在收到该消息后将客户端B经过路由器NAT-B转换 后的公网IP和端口号告诉给A;
S8,客户端A收到服务器S回复的客户端B的公网IP和端口号 等信息以后,开始连接到客户端B的公网IP和端口号,在客户端A 和客户端B之间建立起直接的TCP连接;
S9,基于所述直接的TCP连接在客户端A和客户端B之间进行 共享应用。
优选地,步骤S9中,所述共享应用为共享桌面,具体包括步骤:
客户端A发送共享桌面请求,客户端B接收;
客户端A将压缩的桌面字节流通过TCP连接实时发送;
客户端B接收并显示。
优选地,步骤S9中,所述共享应用为共享画板,具体包括步骤:
客户端A发送共享画板请求,客户端B接收;
客户端A和客户端B各自显示一个画板,用来进行操作;
任意一方在画板的变化通过TCP连接发送到对方的画板上,实 时进行显示。
(三)有益效果
本发明通过利用公网上的服务器协助在不同私网中的两个客户 端之间建立基于TCP协议的隧道,使得客户端可以穿透各自的NAT设备,而进行稳定可靠的数据传输。
附图说明
图1为现有技术中常见的基于NAT技术的组网方式示意图;
图2为本发明中基于TCP协议穿透NAT的示意图;
图3为本发明中基于TCP协议穿透NAT进行共享的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方 案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分 实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通 技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例, 都属于本发明保护的范围。
首先,参见图2,服务器S在公网上有一个IP,两个私网分别通 过NAT路由器NAT-A和NAT-B连接到公网,NAT-A后面的私网中 有一台客户端A,NAT-B后面的私网中有一台客户端B,现在,我们 需要借助服务器S在客户端A和客户端B之间建立直接的TCP连接, 即由客户端B向客户端A建立一个隧道,让客户端A可以沿这个隧 道直接连接到客户端B,就好像路由器NAT-B不存在一样。其方法 具体的流程图如图3所示:
S1,服务器S开启两个网络端口,主连接端口和隧道协助端口。
S2,客户端A和客户端B分别与服务器S的主连接端口保持联 系。
S3,当客户端A需要和客户端B建立直接的TCP连接时,首先 连接服务器S的隧道协助端口,并发送协助连接请求,同时在该端口 上启动监听;注意由于要在相同的网络终端上绑定到不同的套接字 上,所以必须为这些套接字设置SO_REUSEADDR属性(即允许重用),否则监听会失败。
S4,服务器S的隧道协助端口接收到客户端A的连接请求后通 过主连接端口通知客户端B,并将客户端A经过路由器NAT-A转换 后的公网IP地址和端口等信息告诉客户端B。
S5,客户端B收到服务器S的通知后首先与服务器S的隧道协 助端口连接,发送一些随机数据后立即断开,使服务器S获知客户端 B经过路由器NAT-B转换后的公网IP和端口号。
S6,客户端B尝试与客户端A经过路由器NAT-A转换后的公网 IP地址和端口进行连接;此步骤根据不同的路由器会有不同的结果, 某些路由器(如TP-Link R402)在此步骤能够建立连接,但绝大多数 路由器会直接丢弃这类并非由自身网络内部首先发起的SYN请求包,进而导致客户端B此次尝试连接失败;但路由器NAT-A会记录 此次连接的源地址和端口号,这为接下来真正的连接做好了准备,这 就是所谓的隧道,即由客户端B向客户端A打通了一个隧道,下次 客户端A就能直接连接到客户端B刚才使用的IP地址和端口号。
S7,客户端B建立隧道的同时在相同的端口上启动监听,客户 端B在一切准备就绪以后向服务器S的主连接端口回复“准备就绪” (I’m Ready)消息,服务器S在收到该消息后将客户端B经过路由 器NAT-B转换后的公网IP和端口号告诉给A。
S8,客户端A收到服务器S回复的客户端B的公网IP和端口号 等信息以后,开始连接到客户端B的公网IP和端口号,由于在步骤 S6中客户端B曾经尝试连接过客户端A的公网IP地址和端口,且路 由器NAT-A已记录了此次连接的信息,所以当客户端A主动连接客 户端B时,路由器NAT-B会认为是合法的SYN数据,并允许通过, 从而在客户端A和客户端B之间建立起了直接的TCP连接。
S9,基于所述直接的TCP连接在客户端A和客户端B之间进行 共享应用。
更进一步地,通过已经建立的TCP的连接,可以利用此隧道来传 输具体的数据或文件,实现客户端A和客户端B之间的共享应用。客 户端A和客户端B之间共享桌面(通过此功能不同用户可以查看对方 的电脑桌面,观察对方的操作)的实现方法为:
1)首先客户端A和客户端B之间建立连接;
2)客户端A发送共享桌面请求,客户端B接收;
3)客户端A将压缩的桌面字节流通过TCP连接实时发送;
4)客户端B接收并显示。
客户端A和客户端B之间共享画板(通过此功能不同客户端可以 实时协作绘画,增强客户端之间的互动性)的实现方法为:
1)首先客户端A和客户端B之间建立连接;
2)客户端A发送共享画板请求,客户端B接收;
3)客户端A和客户端B都会显示一个画板,用来进行操作;
4)任意一方在画板的变化都会及时通过TCP连接发送到对方的 画板上,达到双方的操作互动性。
本发明通过上述方案可以很灵活地实现不同网络间的数据发送, 使得客户可以不仅与在同一网段的客户通信,也可实现不同网段间的 通信,使用TCP协议增强了数据发送的可靠性,稳定性。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关 技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下, 还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明 的范畴,本发明的发明保护范围应由权利要求限定。

Claims (1)

1.一种依据NAT穿透的共享方法,其特征在于,所述方法包括步骤:
S1,服务器S开启两个网络端口,主连接端口和隧道协助端口;
S2,客户端A和客户端B分别与服务器S的主连接端口保持联 系;
S3,当客户端A需要和客户端B建立直接的TCP连接时,首先 连接服务器S的隧道协助端口,并发送协助连接请求,同时在该端口 上启动监听;
S4,服务器S的隧道协助端口接收到客户端A的连接请求后通 过主连接端口通知客户端B,并将客户端A经过路由器NAT-A转换 后的公网IP地址和端口信息告诉客户端B;
S5,客户端B收到服务器S的通知后首先与服务器S的隧道协 助端口连接,发送一些随机数据后立即断开;
S6,客户端B尝试与客户端A经过路由器NAT-A转换后的公网 IP地址和端口进行连接;
S7,客户端B建立隧道的同时在相同的端口上启动监听,客户 端B在一切准备就绪以后向服务器S的主连接端口回复“准备就绪” 消息,服务器S在收到该消息后将客户端B经过路由器NAT-B转换 后的公网IP和端口号告诉给A;
S8,客户端A收到服务器S回复的客户端B的公网IP和端口号 等信息以后,开始连接到客户端B的公网IP和端口号,在客户端A 和客户端B之间建立起直接的TCP连接;
S9,基于所述直接的TCP连接在客户端A和客户端B之间进行 共享应用。
CN201810704838.7A 2018-07-01 2018-07-01 一种依据nat穿透的共享方法 Withdrawn CN108833433A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810704838.7A CN108833433A (zh) 2018-07-01 2018-07-01 一种依据nat穿透的共享方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810704838.7A CN108833433A (zh) 2018-07-01 2018-07-01 一种依据nat穿透的共享方法

Publications (1)

Publication Number Publication Date
CN108833433A true CN108833433A (zh) 2018-11-16

Family

ID=64134189

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810704838.7A Withdrawn CN108833433A (zh) 2018-07-01 2018-07-01 一种依据nat穿透的共享方法

Country Status (1)

Country Link
CN (1) CN108833433A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113824803A (zh) * 2021-11-24 2021-12-21 飞狐信息技术(天津)有限公司 一种多媒体文件共享的方法及相关装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113824803A (zh) * 2021-11-24 2021-12-21 飞狐信息技术(天津)有限公司 一种多媒体文件共享的方法及相关装置

Similar Documents

Publication Publication Date Title
CN102231763B (zh) 一种基于nat穿透的共享方法
CN105376299B (zh) 一种网络通信方法、设备及网络附属存储设备
CN103957287A (zh) 一种基于nat穿透适配器的物联网设备p2p连接方法
CN104427010A (zh) 应用于动态虚拟专用网络的网络地址转换方法和装置
CN105072213B (zh) 一种IPSec NAT双向穿越方法、系统及VPN网关
CN102420774B (zh) 使用igmp实现内网穿透的方法和内网穿透系统
CN102845123A (zh) 虚拟私云的连接方法及隧道代理服务器
CN101217482A (zh) 一种穿越nat下发策略的方法和一种通信装置
CN101895590A (zh) 基于udt实现nat穿越的系统和方法
CN112637364A (zh) 建立p2p连接的方法、客户端及系统
CN107071079B (zh) 一种私网终端获取公网ip的方法及系统
CN106331187A (zh) 一种nat穿透方法、装置及系统
CN111800341B (zh) 一种跨路由器终端通信方法及装置
CN102647432A (zh) 一种认证信息传输方法、装置及认证中间件
WO2015117454A1 (zh) 一种IPv4与IPv6之间的翻译方法及装置
CN101083594A (zh) 一种网络设备的管理方法及装置
CN108833433A (zh) 一种依据nat穿透的共享方法
CN103944760B (zh) 一种穿越nat的网络管理方法及装置
CN111182071A (zh) 一种内网穿透与服务发布的方法
CN105516382A (zh) Ipv4网络与ipv6物联网节点的通信方法及系统
CN101426030A (zh) 一种获取网络地址的方法和终端
CN110620783B (zh) 一种基于nat内网穿透的互联网络串口透传通信方法
CN110380947B (zh) 一种基于p2p技术的二级网络架构和vpn组网方法
CN104104740B (zh) 一种分散式网络信息的交换方法
CN103516795B (zh) 分布式网络连通性改善方法以及使用该方法的分布式网络

Legal Events

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

Application publication date: 20181116