CN108989488B - 网络地址转换设备的穿越方法、装置及存储介质 - Google Patents

网络地址转换设备的穿越方法、装置及存储介质 Download PDF

Info

Publication number
CN108989488B
CN108989488B CN201811039709.7A CN201811039709A CN108989488B CN 108989488 B CN108989488 B CN 108989488B CN 201811039709 A CN201811039709 A CN 201811039709A CN 108989488 B CN108989488 B CN 108989488B
Authority
CN
China
Prior art keywords
media server
network address
address translation
network
address
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.)
Active
Application number
CN201811039709.7A
Other languages
English (en)
Other versions
CN108989488A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811039709.7A priority Critical patent/CN108989488B/zh
Publication of CN108989488A publication Critical patent/CN108989488A/zh
Application granted granted Critical
Publication of CN108989488B publication Critical patent/CN108989488B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • 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
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明实施例公开了一种网络地址转换设备的穿越方法、装置及存储介质,其中,所述网络地址转换设备的穿越方法,适用于位于第一网络中的终端,所述网络地址转换设备的穿越方法包括:伪造第二网络中的网络地址转换设备的虚假本地地址;利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址;根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试;在连通性测试成功时,穿越所述网络地址转换设备从所述媒体服务器拉取媒体流。本发明实施例能够精简系统架构,降低服务器成本,减少连接耗时。

Description

网络地址转换设备的穿越方法、装置及存储介质
技术领域
本发明实施例涉及通信技术领域,具体涉及一种网络地址转换设备的穿越方法、装置及存储介质。
背景技术
随着互联网的高速发展和普及,联网设备(比如:智能手机、平板电脑、个人计算机)数量激增,从而带来了公网地址资源短缺的问题,在这种情况下,NAT(Network AddressTranslation,网络地址转换)技术应运而生。NAT技术可以将多个私网地址映射为一个合法公网地址,借助于NAT,私网设备通过NAT设备向公网设备发送数据包时,NAT设备会将数据包中的私网地址(即私网设备的本地地址)映射成公网地址(即NAT设备的本地地址),从而完美解决了公网地址资源短缺的问题,而且还能够隐藏并保护私网设备。但另一方面,NAT设备的存在,却阻碍了处于不同私网中的设备之间进行P2P(peer to peer,点对点)通信,比如,处于私网中的终端从处于另一私网中的服务器拉取媒体流,因此,需要解决NAT设备穿越问题。
ICE(Interactive Connectivity Establishment,交互式连接建立)是一种灵活可靠的NAT设备穿越解决方案,其综合利用已有的STUN(Simple Traversal of UDP overNATs,即UDP对NAT的简单穿越)和TURN(Traversal Using Relay NAT,即通过中继方式穿越NAT)等协议实现NAT设备穿越,可以解决各种网络拓扑下的NAT设备穿越问题。在采用ICE方案实现NAT设备穿越时,可以根据NAT设备类型的不同,采用不同的穿越方案。常见的NAT设备类型可分为四种,分别是:完全圆锥型NAT,受限圆锥型NAT、端口受限圆锥型NAT,以及对称型NAT。如果通信的双方均位于对称型NAT设备之后,或者通信的双方一方位于对称型NAT设备之后,另一方位于端口受限圆锥型NAT设备之后,则需要借助TURN服务器进行数据转发,从而实现通信;除上述两种情况外,其他情况下,通信双方可以借助STUN服务器,获知自身的私网地址被NAT设备映射成的公网地址,从而实现通信。即现有的使用ICE方案实现NAT设备穿越时,需要借助STUN服务器或TURN服务器,系统架构复杂,服务器成本高,且比较耗时。
发明内容
有鉴于此,本发明实施例提供了一种网络地址转换设备的穿越方法、装置及存储介质,能够精简系统架构,降低服务器成本,减少连接耗时。
本发明实施例提供的网络地址转换设备的穿越方法,适用于位于第一网络中的终端,所述网络地址转换设备的穿越方法包括:
伪造第二网络中的网络地址转换设备的虚假本地地址;
利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址;
根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试;
在连通性测试成功时,穿越所述网络地址转换设备从所述媒体服务器拉取媒体流。
本发明实施例提供的网络地址转换设备的穿越装置,位于第一网络,所述网络地址转换设备的穿越装置包括:
伪造单元,用于伪造第二网络中的网络地址转换设备的虚假本地地址;
交换单元,用于利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址;
测试单元,用于根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试;
拉取单元,用于在连通性测试成功时,穿越所述网络地址转换设备从所述媒体服务器拉取媒体流。
此外,本发明实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于由处理器进行加载,以执行本发明实施例所提供的任一种网络地址转换设备的穿越方法中的步骤。
本发明实施例中,第一网络可以为私网,第二网络可以为公网,改变媒体服务器所处的网络环境,将媒体服务器置于公网,避免了终端与媒体服务器同时位于私网时,在部分情况下需要借助TURN服务器实现网络地址转换设备的穿越,在架构上减少了TURN服务器;另外,通过伪造网络地址转换设备的本地地址,利用所述网络地址转换设备的虚假本地地址与位于公网的媒体服务器进行地址交换,得到媒体服务器的本地地址,根据得到的媒体服务器的本地地址从所述媒体服务器拉取媒体流,避免了需要通过STUN服务器获取网络地址转换设备的本地地址实现穿越,在架构上减少了STUN服务器;进一步地,原有ICE方案,在借助STUN服务器实现穿越时,由于需要向STUN服务器发包获取网络地址转换设备的本地地址,有等待回包耗时,而本发明实施例中,终端直接伪造网络地址转换设备的本地地址,因此无需等待STUN服务器的回包,可以减少连接耗时。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的网络地址转换设备的穿越系统的场景示意图。
图2是本发明实施例提供的网络地址转换设备的穿越方法的流程示意图。
图3是现有技术的网络地址转换设备的穿越系统的场景示意图。
图4是本发明实施例提供的网络地址转换设备的穿越系统的另一场景示意图。
图5是本发明实施例提供的网络地址转换设备的穿越方法的另一流程示意图。
图6是本发明实施例提供的信令交互示意图。
图7是本发明实施例提供的网络地址转换设备的穿越装置的结构示意图。
图8是本发明实施例提供的网络地址转换设备的穿越装置的另一结构示意图。
图9是本发明实施例提供的终端的结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
在以下的说明中,本申请的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本申请原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本文所使用的术语“模块”可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法可以以软件的方式进行实施,当然也可在硬件上进行实施,均在本申请保护范围之内。
本申请中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
由于现有的使用ICE实现NAT设备穿越的方案,需要借助STUN服务器或TURN服务器,系统架构复杂,服务器成本高,且比较耗时。因而,本发明实施例提供了一种NAT设备的穿越方法,能够精简系统架构,降低服务器成本,减少连接耗时。本发明实施例提供的NAT设备的穿越方法,可以实现在终端或者其他具备储存单元并安装有微处理器而具有运算能力的设备中。
以NAT设备的穿越方法实现在终端中为例,请参阅图1,图1是本发明实施例提供的NAT设备的穿越系统的场景示意图,NAT设备的穿越系统中可以包括终端、NAT设备和媒体服务器。其中,终端例如可以为:手机、平板电脑等终端,NAT设备例如可以为防火墙、路由器等设备,媒体服务器例如可以为WebRTC(Web Real-Time Communication,网页实时通信)服务器。本发明实施例中,所述终端位于第一网络,所述NAT设备和所述媒体服务器位于第二网络,第一网络可以是私网或内网,第二网络可以是公网。
本发明实施例中,位于第一网络的终端想要穿越NAT设备从位于第二网络的媒体服务器拉取媒体流,但在通信开始时,终端并不知道媒体服务器的本地地址,而要得到媒体服务器的本地地址,需要终端使用NAT设备的本地地址与媒体服务器进行地址交换,但因为本发明实施例的系统架构中也没有可以用来获得NAT设备的本地地址的STUN服务器,因此,本发明实施例提出让终端伪造一个虚假的公网地址作为NAT设备的本地地址,终端可以利用伪造的NAT设备的虚假本地地址与媒体服务器进行地址交换,得到媒体服务器的本地地址,在得到媒体服务器的本地地址之后,终端可以根据媒体服务器的本地地址对所述媒体服务器进行连通性测试,在连通性测试成功时,终端穿越所述NAT设备从所述媒体服务器拉取媒体流,所拉取的媒体流可以包括音频流和视频流,终端可以利用浏览器对音频流和视频流进行渲染,并通过览器的视频标签展示所述音频流和视频流。即本发明实施例通过将媒体服务器置于公网,并伪造NAT设备的本地地址的方式,实现了穿越NAT设备从媒体服务器拉取媒体流,不需要借助STUN服务器和TURN服务器,降低了服务器成本,减少了连接耗时。
需要说明的是,图1所示的NAT设备的穿越系统的场景示意图仅仅是一个示例,本发明实施例描述的NAT设备的穿越系统及场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着NAT设备的穿越系统的演变和新业务平台的出现,本发明实施例的技术方案对于类似的技术问题,同样适用。
以下分别进行详细说明。
本实施例将从NAT设备的穿越装置的角度,描述本发明实施例提供的NAT设备的穿越方法,该NAT设备的穿越装置可以集成在终端中,终端位于NAT设备的穿越系统中,NAT设备的穿越系统还可以包括NAT设备和媒体服务器,其中,终端处于第一网络,NAT设备和媒体服务器处于第二网络,第一网络可以是私网或内网,第二网络可以是公网,即终端需要穿越NAT设备从位于公网的媒体服务器拉取媒体流,如图2所示,本实施例的NAT设备的穿越方法可以包括以下步骤:
步骤S101,伪造第二网络中的网络地址转换设备的虚假本地地址。
在执行本步骤之前,终端需要创建PeerConnection(对等连接)对象,PeerConnection对象是用来进行媒体流传输和数据通信的API(Application ProgrammingInterface,应用程序编程接口),在创建PeerConnection对象之后,终端需要在PeerConnection对象中设置服务器路径,以利用设置的服务器路径协助进行通信连接。
在现有的使用ICE实现NAT穿越的方案中,通常会在PeerConnection对象中设置STUN服务器路径及TURN服务器路径,即分别将STUN服务器的IP(Internet ProtocolAddress,互联网协议地址)地址和port(端口号),以及TURN服务器的IP地址和端口号设置在PeerConnection对象中。具体在本实施例中,由于精简了系统架构,在系统中去掉了STUN服务器和TURN服务器,因此,可以将PeerConnection对象中的STUN服务器路径及TURN服务器路径设置为空,即本实施例所创建的PeerConnection对象将不再会向STUN服务器发包询问NAT设备的本地地址,也不再会请求TURN服务器协助进行数据转发。
本实施例中,在通信开始时,终端并不知道媒体服务器的本地地址,而要得到媒体服务器的本地地址,需要终端使用NAT设备的本地地址与媒体服务器进行地址交换,但因为本实施例的系统架构中已经没有可以用来获得NAT设备的本地地址的STUN服务器,因此,本实施例提出让终端伪造一个虚假的公网地址作为NAT设备的本地地址,终端可以利用伪造的NAT设备的虚假本地地址与媒体服务器进行地址交换,以得到媒体服务器的本地地址。具体的伪造方法可以是:终端通过运行预设代码(可以是预先编写好的用于生成公网地址的代码)产生虚假公网地址,将所述虚假公网地址作为所述NAT设备的虚假本地地址。
步骤S102,利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址。
具体在进行地址交换的时候,终端可以借助位于第二网络上的信令服务器,终端及媒体服务器可以预先向信令服务器进行注册,向信令服务器提供自己的标识符(比如用户名),一旦双方都注册了,他们就可以相互调用。
即终端可以向信令服务器发送地址交换信令,地址交换信令中可以包括终端希望调用的媒体服务器的标识符以及伪造的NAT设备的虚假本地地址,信令服务器在接收到该地址交换信令之后,一方面:信令服务器可以根据终端希望调用的媒体服务器的标识符将该地址交换信令转发给媒体服务器,媒体服务器也可以创建PeerConnection对象,媒体服务器可以从地址交换信令中取出NAT设备的虚假本地地址,将NAT设备的虚假本地地址添加至媒体服务器创建的PeerConnection对象中;或者此时媒体服务器可以直接忽略地址交换信令中包括的NAT设备的本地地址,而在后续接收到NAT设备直接发送的数据包时,再从数据包(比如:包头)中提取NAT设备的本地地址,这个时候提取的NAT设备的本地地址必然是真实地址,这个时候可以将提取的NAT设备的本地地址添加至自身创建的PeerConnection对象中;另一方面:信令服务器可以接收媒体服务器发送的地址交换响应,地址交换响应中包括媒体服务器的本地地址,信令服务器可以将地址交换响应转发给终端,终端在接收到地址交换响应之后,可以得到媒体服务器的本地地址,将媒体服务器的本地地址添加至自身创建的PeerConnection对象中。
步骤S103,根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试。
具体地,终端可以向媒体服务器发送绑定请求信息,绑定请求信息中的源地址是终端的本地地址,目的地址是媒体服务器的本地地址,由于终端处于私网或内网,位于NAT设备之后,终端发送的绑定请求信息必然需要借助NAT设备才能发送出去,在绑定请求信息经过NAT设备时,NAT设备会将绑定请求信息中的源地址,修改为自身的本地地址(即NAT设备的真实本地地址),然后将该绑定请求信息转发给媒体服务器,这样,NAT设备上就建立起了如下地址关系:终端的本地地址->NAT设备的本地地址(即反射地址)->媒体服务器的本地地址,如此一来,相当于终端在NAT设备上为媒体服务器打了一个“洞”。
媒体服务侧,在收到该绑定请求信息之后,可以从该绑定请求信息中提取源地址,即NAT设备的真实本地地址,将媒体服务器创建的PeerConnection对象中添加的所述NAT设备的虚假本地地址,更新为所述NAT设备的真实本地地址,至此,媒体服务器得到了NAT设备的真实本地地址。媒体服务器根据NAT设备的真实本地地址向NAT设备发送绑定响应信息,NAT设备在接收到该绑定响应信息之后,可以根据所建立的地址关系,将绑定响应信息发送给终端,终端接收到绑定响应信息之后,即认为对媒体服务器的连通性测试成功。
本实施例中,由于终端处于私网或内网,NAT设备及媒体服务器处于公网,因此,本实施例所提及的终端的本地本地为私网地址,NAT设备的本地地址及媒体服务器的本地地址,均为公网地址,无论是私网地址,还是公网地址,其中均可以包括IP地址和端口号信息。
本实施例中,在进行连通性测试时,只是由终端向媒体服务器发送绑定请求信息,只要终端接收到媒体服务器反馈的绑定响应信息,就认为连通性测试成功,实际上,这只是进行了接收性测试,测试成功,只能说明终端的本地地址及媒体服务器的本地地址,这一地址对是可接收的。完整的连通性测试包括接收性测试和发送性测试,因此,实际应用中,在对媒体服务器进行连通性测试时,还可以进行发送性测试,即终端还可以接收媒体服务器发送的绑定请求信息,并向媒体服务器发送绑定响应信息,如果绑定响应信息成功发送给媒体服务器,则说明终端的本地地址及媒体服务器的本地地址,这一地址对是可发送的,当这一地址对即是可接收的,也是可发送的时,可以认为对媒体服务器的连通性测试成功,可以进行媒体流传输。
步骤S104,在连通性测试成功时,穿越所述网络地址转换设备从所述媒体服务器拉取媒体流。
在连通性测试成功时,服务器通过自己创建的PeerConnection对象向终端传输音频流和视频流,终端通过自身创建的PeerConnection对象穿越所述NAT设备,从所述媒体服务器拉取音频流和视频流,并通过浏览器的视频标签展示所述音频流和视频流。
下面以直播授课场景为例,说明本发明实施例的NAT设备的穿越方法,在举例说明本发明实施例的NAT设备的穿越方法之前,先介绍借助STUN服务器和TURN服务器实现NAT设备穿越的方法。借助STUN服务器和TURN服务器实现NAT设备穿越的方法,在直播授课场景下的系统架构图可如图3所示,其系统架构中,学生端(即终端)及媒体服务器均处于私网或内网,且处于不同的私网或内网,在该场景下,老师端将授课媒体流同步至媒体服务器,学生端需要穿越NAT设备从媒体服务器拉取授课媒体流,具体实现方法如下:
首先,学生端及媒体服务器分别创建PeerConnection对象,在各自创建的PeerConnection对象中设置STUN服务器的本地地址及TURA服务器的本地地址,学生端与媒体服务器利用各自创建的PeerConnection对象向STUN服务器询问自己的NAT设备的本地地址。
在学生端及媒体服务器得到各自的NAT设备的本地地址之后,学生端与媒体服务器通过信令服务器交换各自的NAT设备的本地地址,并将交换得到的对端的NAT设备的本地地址添加至各自创建的PeerConnection对象中。
接下来,学生端与媒体服务器在STUN服务器的协调下,在各自的NAT设备上为对方打洞。
媒体服务器可实时从老师端同步授课媒体流,如果打洞成功,则媒体服务器可以通过自身创建的PeerConnection对象穿越自身的NAT设备向学生端传输授课媒体流,学生端通过自身创建的PeerConnection对象穿越自身的NAT设备,即可从所述媒体服务器拉取到授课媒体流,学生端可以通过浏览器(比如HTML5浏览器)的视频标签展示所述媒体流。如果打洞失败,则学生端通过TURN服务器的中转,从媒体服务器拉取媒体流。
NAT设备可以分为四种类型:
1)完全圆锥型NAT。
这种情况下,一旦一个私网地址(IP1:port1)映射到公网地址(IP2:port2),所有发自(IP1:port1)的包都经由(IP2:port2)向外发送。任意外部主机都能通过给(IP2:port2)发包到达(IP1:port1)。
2)受限圆锥型NAT。
这种情况下,一旦一个私网地址(IP1:port1)映射到公网地址(IP2:port2),所有发自(IP1:port1)的包都经由(IP2:port2)向外发送。在私网地址(IP1:port1)之前发送过包到任意外部主机(hostIP:any)的情况下,任意外部主机(hostIP:any)都能通过给(IP2:port2)发包到达(IP1:port1),其中,“any”也就是说端口不受限制。
3)端口受限圆锥型NAT。
这种情况下,一旦一个私网地址(IP1:port1)映射到公网地址(IP2:port2),所有发自(IP1:port1)的包都经由(IP2:port2)向外发送。在私网地址(IP1:port1)之前发送过包到外部主机(hostIP:port3)的情况下,只有这个外部主机(hostIP:port3)能够发包到达(IP1:port1)。
4)对称型NAT。
这种情况下,每一个来自相同私网IP与port的请求到一个特定公网IP和端口,都被映射到一个独特的公网来源的IP地址和端口。同一个私网主机发出一个信息包到不同的目的端,将使用不同的映射。
通常情况下,当学生端或媒体服务器,双方均位于对称型NAT设备之后,或者学生端或媒体服务器中一方位于对称型NAT设备之后,另一方位于端口受限圆锥型NAT设备之后,会出现打洞失败的情况,需要借助TURN服务器进行数据转发。其他情况下,一般可以打洞成功。
本发明提出了不需要借助STUN服务器和TURN服务器实现NAT设备穿越的方法,在直播授课场景下的系统架构图可如图4所示,在该系统架构中,将媒体服务器均置于公网,学生端(即终端)处于私网或内网,在该场景下,学生端需要穿越NAT设备从媒体服务器拉取授课媒体流,具体实现方法可如图5所示,包括以下步骤:
步骤S201,学生端创建对等连接对象,并将对等连接对象中的STUN服务器路径及TURN服务器路径设置为空。
设置的目的是让所创建的PeerConnection对象不再向STUN服务器发包询问NAT设备的本地地址,也不再请求TURN服务器协助进行数据转发
步骤S202,学生端伪造所述NAT设备的虚假本地地址。
具体的伪造方法可以是:终端通过运行预设代码(可以是预先编写好的用于生成公网地址的代码)产生虚假公网地址,将所述虚假公网地址作为所述NAT设备的虚假本地地址。
步骤S203,学生端通过所述信令服务器向所述媒体服务器发送地址交换信令。
步骤S204,学生端通过所述信令服务器接收所述媒体服务器发送的地址交换响应。
具体地,学生端及媒体服务器可以预先向信令服务器进行注册,向信令服务器提供自己的标识符,一旦双方都注册了,他们就可以相互调用。
即学生端可以向信令服务器发送地址交换信令,地址交换信令中可以包括终端希望调用的媒体服务器的标识符以及伪造的NAT设备的虚假本地地址,信令服务器在接收到该地址交换信令之后,一方面:信令服务器可以根据终端希望调用的媒体服务器的标识符将该地址交换信令转发给媒体服务器,媒体服务器也可以创建PeerConnection对象,媒体服务器可以从地址交换信令中取出NAT设备的虚假本地地址,将NAT设备的虚假本地地址添加至媒体服务器创建的PeerConnection对象中;或者此时媒体服务器可以直接忽略地址交换信令中包括的NAT设备的本地地址,而在后续接收到NAT设备直接发送的数据包时,再从数据包中提取NAT设备的本地地址,这个时候提取的NAT设备的本地地址必然是真实地址,这个时候可以将提取的NAT设备的本地地址添加至自身创建的PeerConnection对象中;另一方面:信令服务器可以接收媒体服务器发送的地址交换响应,地址交换响应中包括媒体服务器的本地地址,信令服务器可以将地址交换响应转发给终端,终端在接收到地址交换响应之后,可以得到媒体服务器的本地地址,将媒体服务器的本地地址添加至自身创建的PeerConnection对象中。
步骤S205,学生端将所述媒体服务器的本地地址添加至所述学生端创建的对等连接对象中。
步骤S206,学生端通过NAT设备向所述媒体服务器发送绑定请求信息。
步骤S207,学生端判断是否通过所述NAT设备接收到所述媒体服务器发送的所述绑定响应信息,若学生端接收到所述媒体服务器发送的绑定响应信息,则对所述媒体服务器的连通性测试成功。
具体地,学生端可以向NAT设备发送源地址是学生端的本地地址,目的地址是媒体服务器的本地地址的绑定请求信息,NAT设备会将绑定请求信息中的源地址,修改为自身的本地地址(即NAT设备的真实本地地址),然后将该绑定请求信息转发给媒体服务器,这样,NAT设备上就建立起了如下地址关系:终端的本地地址->NAT设备的本地地址(即反射地址)->媒体服务器的本地地址,如此一来,相当于终端在NAT设备上为媒体服务器打了一个“洞”。
媒体服务侧,在收到该绑定请求信息之后,可以从该绑定请求信息中提取源地址,即NAT设备的真实本地地址,将媒体服务器创建的PeerConnection对象中添加的所述NAT设备的虚假本地地址,更新为所述NAT设备的真实本地地址,至此,媒体服务器得到了NAT设备的真实本地地址。媒体服务器根据NAT设备的真实本地地址向NAT设备发送绑定响应信息,NAT设备在接收到该绑定响应信息之后,可以根据所建立的地址关系,将绑定响应信息发送给终端,终端接收到绑定响应信息之后,即认为对媒体服务器的连通性测试成功。
比如,学生端的本地地址为(192.168.0.4:5000),NAT设备的虚假本地地址是(0.0.0.0:80),NAT设备的真实本地地址(210.21.12.140:8000),媒体服务器的本地地址是(210.15.27.166:2000)。
在学生端通过NAT设备向媒体服务器发送绑定请求信息时,绑定请求信息的源地址可以为(192.168.0.4:5000),目的地址可以为(210.15.27.166:2000),该绑定请求信息在经过NAT设备时,NAT设备将绑定请求信息的源地址(192.168.0.4:5000)映射为(210.21.12.140:8000),并将修改源地址后的绑定请求信息发送给媒体服务器,此时NAT设备上存在这样地址关系:学生端(192.168.0.4:5000)->NAT设备(映射后210.21.12.140:8000)->媒体服务器(210.15.27.166:2000)。
媒体服务器在接收到绑定请求信息之后,提取源地址(210.21.12.140:8000),将在自身创建的PeerConnection对象中添加的地址(0.0.0.0:80),更新为(210.21.12.140:8000),然后向NAT设备发送绑定请求响应,绑定响应信息中的目的地址为(210.21.12.140:8000),在NAT设备接收到该绑定响应信息时,会根据自身保存的地址关系,将绑定响应信息转发给学生端。
步骤S208,学生端通过自身创建的对等连接对象穿越所述NAT设备,从所述媒体服务器拉取音频流和视频流,并通过浏览器的视频标签展示所述音频流和视频流。
不借助STUN服务器和TURN服务器实现NAT穿越的方法,在直播授课场景下各设备之间的信令交互过程可如图6所示。
首先,学生端进入直播间,媒体服务器从老师端同步媒体流,学生端创建一个PeerConnection对象,通过PeerConnection对象的createOffer(创建请求)方法,创建一个包含学生端本地的音视频编码分辨率等SDP(会话描述协议)描述信息的offer信令(请求信令),通过setLocalDescription(设置本地描述信息)将offer信令添加到自身创建的PeerConnection对象中,并将offer信令经过信令服务器中转后发送给媒体服务器。媒体服务器接收到学生端发过来的offer信令后,从offer信令中提取出学生端的SDP描述信息,并使用PeerConnection对象的setRemoteDescription(设置远程描述信息)方法保存学生端的SDP描述信息。然后通过createAnswer(创建应答)方法创建一个包含媒体服务器的音视频编码分辨率等SDP描述信息的answer信令(应答信令),通过setLocalDescription将answer信令添加到自身创建的PeerConnection对象中,并将answer信令经过信令服务器中转后发送给学生端,学生端接收到answer信令之后,从answer信令中提取出老师端的SDP描述信息,调用setRemoteDescription方法保存提取出来的老师端的SDP描述信息。
接下来,学生端会伪造NAT设备的虚假本地地址,将虚假本地地址携带在candidate信令(地址交换信令)中,通过信令服务器将candidate信令中转发送给媒体服务器,媒体服务器把学生端发过来的NAT设备的虚假本地地址通过addIceCandidate(添加候选地址)添加到自身创建的PeerConnection对象中。另外,媒体服务器会将自己的本地地址携带在candidate响应(地址交换响应)中,通过信令服务器将candidate响应中转发送给学生端,学生端接收到candidate响应后,通过addIceCandidate方法,将媒体服务器的本地地址添加到自身创建的PeerConnection对象中。
在添加服务器的本地地址之后,学生端可以通过NAT设备向媒体服务器发送binding request(绑定请求信息),binding request在通过NAT设备时,NAT设备会将binding request中的源地址,从学生端的本地地址映射为NAT设备的本地地址,然后将binding request转发给媒体服务器,媒体服务器接收到binding request之后,从中提取NAT设备的本地地址,即NAT设备的真实本地地址,媒体服务器将自身创建的PeerConnection对象中添加的NAT设备的虚假本地地址,更新为NAT设备的真实本地地址,然后根据NAT设备的真实本地地址向NAT发送binding response(绑定响应信息),NAT设备根据地址映射将binding response发送给学生端,连通性测试成功,媒体服务器通过自身创建的PeerConnection对象向学生端传输授课媒体流,学生端通过自身创建的PeerConnection对象穿越所述NAT设备,从所述媒体服务器拉取授课媒体流,并通过浏览器的视频标签展示所述媒体流。
本实施例中,因为媒体服务器处于公网,媒体服务器的本地地址不会改变,学生端在NAT设备上为媒体服务器打了一个专门的洞之后,无论NAT设备是什么类型,媒体服务器都可以通过这个专门的洞向学生端传输媒体流,学生端就可以穿越NAT设备从媒体服务器拉到媒体流。
本实施例中,第一网络可以为私网,第二网络可以为公网,改变媒体服务器所处的网络环境,将媒体服务器置于公网,避免了终端与媒体服务器同时位于私网时,在部分情况下需要借助TURN服务器实现网络地址转换设备的穿越,在架构上减少了TURN服务器;另外,通过伪造网络地址转换设备的本地地址,利用所述网络地址转换设备的虚假本地地址与位于公网的媒体服务器进行地址交换,得到媒体服务器的本地地址,根据得到的媒体服务器的本地地址从所述媒体服务器拉取媒体流,避免了需要通过STUN服务器获取网络地址转换设备的本地地址实现穿越,在架构上减少了STUN服务器;进一步地,原有ICE方案,在借助STUN服务器实现穿越时,由于需要向STUN服务器发包获取网络地址转换设备的本地地址,有等待回包耗时,而本实施例中,终端直接伪造网络地址转换设备的本地地址,因此无需等待STUN服务器的回包,可以减少连接耗时。
为了更好地实施以上方法,本发明实施例提供了一种网络地址转换设备的穿越装置,所述网络地址转换设备的穿越装置位于第一网络,如图7所示,该网络地址转换设备的装置包括伪造单元301、交换单元302、测试单元303及拉取单元304,如下:
伪造单元301,用于伪造第二网络中的网络地址转换设备的虚假本地地址;
交换单元302,用于利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址;
测试单元303,用于根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试;
拉取单元304,用于在连通性测试成功时,穿越所述网络地址转换设备从所述媒体服务器拉取媒体流
其中,第一网络可以为私网或内网,第二网络可以为公网。
一实施例中,所述伪造单元301具体用于:
运行预设代码产生虚假公网地址,将所述虚假公网地址作为所述网络地址转换设备的虚假本地地址。
一实施例中,如图8所示,所述装置还包括:
创建单元305,用于创建对等连接对象,并将对等连接对象中的STUN服务器路径及TURN服务器路径设置为空。
一实施例中,所述NAT穿越系统中还包括位于第二网络的信令服务器,如图8所示,所述交换单元302包括:
发送子单元3021,用于通过所述第二网络中的信令服务器向所述媒体服务器发送地址交换信令,所述地址交换信令中包括所述网络地址转换设备的虚假本地地址,以使得所述媒体服务器将所述网络地址转换设备的虚假本地地址添加至所述媒体服务器创建的对等连接对象中;
接收子单元3022,用于通过所述信令服务器接收所述媒体服务器发送的地址交换响应,所述地址交换响应中包括所述媒体服务器的本地地址;
添加子单元3023,用于将所述媒体服务器的本地地址添加至所述创建单元305创建的对等连接对象中。
一实施例中,如图8所示,所述测试单元303包括:
请求子单元3031,用于根据所述媒体服务器的本地地址向所述媒体服务器发送绑定请求信息;
确定子单元3032,用于判断是否接收到所述媒体服务器发送的绑定响应信息,若接收到所述媒体服务器发送的绑定响应信息,则对所述媒体服务器的连通性测试成功。
一实施例中,所述请求子单元3031具体用于:
向所述网络地址转换设备发送源地址为所述终端的本地地址、目的地址为所述媒体服务器的本地地址的所述绑定请求信息,所述网络地址转换设备将所述绑定请求信息中的源地址,修改为所述网络地址转换设备的真实本地地址,并在修改后将所述绑定请求信息转发给所述媒体服务器,以使得所述媒体服务器根据所述绑定请求信息将所述媒体服务器创建的对等连接对象中添加的所述网络地址转换设备的虚假本地地址,更新为所述网络地址转换设备的真实本地地址;
所述确定子单元3032具体用于:
判断是否通过所述网络地址转换设备接收到所述媒体服务器发送的所述绑定响应信息,所述媒体服务器根据所述网络地址转换设备的真实本地地址向所述网络地址转换设备发送所述绑定响应信息,所述网络地址转换设备将所述绑定响应信息转发给所述终端。
一实施例中,所述拉取单元304具体用于:
通过所述创建单元305创建的对等连接对象穿越所述网络地址转换设备,从所述媒体服务器拉取音频流和视频流,并通过浏览器的视频标签展示所述音频流和视频流。
需要说明的是,上述实施例提供的NAT设备的穿越装置在穿越NAT设备时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的NAT设备的穿越装置与NAT设备的穿越方法属于同一构思,其具体实现过程详见方法实施例,此处不再赘述。
本实施例中,改变媒体服务器所处的网络环境,将媒体服务器置于公网,避免了终端与媒体服务器同时位于私网时,在部分情况下需要借助TURN服务器实现网络地址转换设备的穿越,在架构上减少了TURN服务器;另外,通过伪造单元伪造网络地址转换设备的本地地址,交换单元利用所述网络地址转换设备的虚假本地地址与位于公网的媒体服务器进行地址交换,得到媒体服务器的本地地址,拉取单元根据得到的媒体服务器的本地地址从所述媒体服务器拉取媒体流,避免了需要通过STUN服务器获取网络地址转换设备的本地地址实现穿越,在架构上减少了STUN服务器;进一步地,原有ICE方案,在借助STUN服务器实现穿越时,由于需要向STUN服务器发包获取网络地址转换设备的本地地址,有等待回包耗时,而本实施例中,终端直接伪造网络地址转换设备的本地地址,因此无需等待STUN服务器的回包,可以减少连接耗时。
相应地,本发明实施例还提供了一种终端,终端位于第一网络,如图9所示,其示出了本发明实施例所涉及的终端的结构示意图,具体来讲:
该终端可以包括射频(RF,Radio Frequency)电路401、包括有一个或一个以上计算机可读存储介质的存储器402、输入单元403、显示单元404、包括有一个或者一个以上处理核心的处理器405等部件。本领域技术人员可以理解,图9中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路401可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器408处理;另外,将涉及上行的数据发送给基站。通常,RF电路401包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路401还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器402可用于存储软件程序以及模块,处理器408通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器408和输入单元403对存储器402的访问。
输入单元403可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元403可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接终端。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器408,并能接收处理器408发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元403还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元404可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元404可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器408以确定触摸事件的类型,随后处理器408根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图9中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
处理器405是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器405可包括一个或多个处理核心;优选的,处理器405可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器405中。
尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器405会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器405来运行存储在存储器402中的应用程序,从而实现各种功能:
伪造第二网络中的网络地址转换设备的虚假本地地址;
利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址;
根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试;
在连通性测试成功时,穿越所述网络地址转换设备从所述媒体服务器拉取媒体流,
其中,第一网络可以是私网或内网,第二网络可以是公网。
在一些实施例中,在伪造所述网络地址转换设备的虚假本地地址时,处理器405具体用于执行以下步骤:
运行预设代码产生虚假公网地址,将所述虚假公网地址作为所述网络地址转换设备的虚假本地地址。
在一些实施例中,在伪造所述网络地址转换设备的虚假本地地址之前,处理器405还用于执行以下步骤:
创建对等连接对象,并将对等连接对象中的STUN服务器路径及TURN服务器路径设置为空。
在一些实施例中,在利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址时,处理器405具体用于执行以下步骤:
通过所述第二网络中的信令服务器向所述媒体服务器发送地址交换信令,所述地址交换信令中包括所述网络地址转换设备的虚假本地地址,以使得所述媒体服务器将所述网络地址转换设备的虚假本地地址添加至所述媒体服务器创建的对等连接对象中;
通过所述信令服务器接收所述媒体服务器发送的地址交换响应,所述地址交换响应中包括所述媒体服务器的本地地址;
将所述媒体服务器的本地地址添加至所述终端创建的对等连接对象中。
在一些实施例中,在根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试时,处理器405具体用于执行以下步骤:
根据所述媒体服务器的本地地址向所述媒体服务器发送绑定请求信息;
判断是否接收到所述媒体服务器发送的绑定响应信息;
若接收到所述媒体服务器发送的绑定响应信息,则对所述媒体服务器的连通性测试成功。
在一些实施例中,在根据所述媒体服务器的本地地址向所述媒体服务器发送绑定请求信息时,处理器405具体用于执行以下步骤:
向所述网络地址转换设备发送源地址为所述终端的本地地址、目的地址为所述媒体服务器的本地地址的所述绑定请求信息,所述网络地址转换设备将所述绑定请求信息中的源地址,修改为所述网络地址转换设备的真实本地地址,并在修改后将所述绑定请求信息转发给所述媒体服务器,以使得所述媒体服务器根据所述绑定请求信息将所述媒体服务器创建的对等连接对象中添加的所述网络地址转换设备的虚假本地地址,更新为所述网络地址转换设备的真实本地地址;
在判断是否接收到所述媒体服务器发送的绑定响应信息时,处理器405具体用于执行以下步骤:
判断是否通过所述网络地址转换设备接收到所述媒体服务器发送的所述绑定响应信息,所述媒体服务器根据所述网络地址转换设备的真实本地地址向所述网络地址转换设备发送所述绑定响应信息,所述网络地址转换设备将所述绑定响应信息转发给所述终端。
在一些实施例中,在穿越所述网络地址转换设备从所述媒体服务器拉取媒体流时,处理器405具体用于执行以下步骤:
通过所述终端创建的对等连接对象穿越所述网络地址转换设备,从所述媒体服务器拉取音频流和视频流,并通过浏览器的视频标签展示所述音频流和视频流。
本实施例中,改变媒体服务器所处的网络环境,将媒体服务器置于公网,避免了终端与媒体服务器同时位于私网时,在部分情况下需要借助TURN服务器实现网络地址转换设备的穿越,在架构上减少了TURN服务器;另外,通过伪造网络地址转换设备的本地地址,利用所述网络地址转换设备的虚假本地地址与位于公网的媒体服务器进行地址交换,得到媒体服务器的本地地址,根据得到的媒体服务器的本地地址从所述媒体服务器拉取媒体流,避免了需要通过STUN服务器获取网络地址转换设备的本地地址实现穿越,在架构上减少了STUN服务器;进一步地,原有ICE方案,在借助STUN服务器实现穿越时,由于需要向STUN服务器发包获取网络地址转换设备的本地地址,有等待回包耗时,而本实施例中,终端直接伪造网络地址转换设备的本地地址,因此无需等待STUN服务器的回包,可以减少连接耗时。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种网络地址转换设备的穿越方法中的步骤。例如,该指令可以执行如下步骤:
伪造第二网络中的网络地址转换设备的虚假本地地址;
利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址;
根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试;
在连通性测试成功时,穿越所述网络地址转换设备从所述媒体服务器拉取媒体流。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种网络地址转换设备的穿越方法中的步骤,因此,可以实现本发明实施例所提供的任一种网络地址转换设备的穿越方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

Claims (16)

1.一种网络地址转换设备的穿越方法,适用于位于第一网络中的终端,其特征在于,所述网络地址转换设备的穿越方法包括:
伪造第二网络中的网络地址转换设备的虚假本地地址;
利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址;
根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试;
在连通性测试成功时,穿越所述网络地址转换设备从所述媒体服务器拉取媒体流。
2.根据权利要求1所述的网络地址转换设备的穿越方法,其特征在于,所述伪造所述网络地址转换设备的虚假本地地址,包括:
运行预设代码产生虚假公网地址,将所述虚假公网地址作为所述网络地址转换设备的虚假本地地址。
3.根据权利要求1或2所述的网络地址转换设备的穿越方法,其特征在于,在伪造所述网络地址转换设备的虚假本地地址之前,还包括:
创建对等连接对象,并将对等连接对象中的STUN服务器路径及TURN服务器路径设置为空。
4.根据权利要求3所述的网络地址转换设备的穿越方法,其特征在于,所述利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址,包括:
通过所述第二网络中的信令服务器向所述媒体服务器发送地址交换信令,所述地址交换信令中包括所述网络地址转换设备的虚假本地地址,以使得所述媒体服务器将所述网络地址转换设备的虚假本地地址添加至所述媒体服务器创建的对等连接对象中;
通过所述信令服务器接收所述媒体服务器发送的地址交换响应,所述地址交换响应中包括所述媒体服务器的本地地址;
将所述媒体服务器的本地地址添加至所述终端创建的对等连接对象中。
5.根据权利要求4所述的网络地址转换设备的穿越方法,其特征在于,所述根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试,包括:
根据所述媒体服务器的本地地址向所述媒体服务器发送绑定请求信息;
判断是否接收到所述媒体服务器发送的绑定响应信息;
若接收到所述媒体服务器发送的绑定响应信息,则对所述媒体服务器的连通性测试成功。
6.根据权利要求5所述的网络地址转换设备的穿越方法,其特征在于,所述根据所述媒体服务器的本地地址向所述媒体服务器发送绑定请求信息,包括:
向所述网络地址转换设备发送源地址为所述终端的本地地址、目的地址为所述媒体服务器的本地地址的所述绑定请求信息,所述网络地址转换设备将所述绑定请求信息中的源地址,修改为所述网络地址转换设备的真实本地地址,并在修改后将所述绑定请求信息转发给所述媒体服务器,以使得所述媒体服务器根据所述绑定请求信息将所述媒体服务器创建的对等连接对象中添加的所述网络地址转换设备的虚假本地地址,更新为所述网络地址转换设备的真实本地地址;
所述判断是否接收到所述媒体服务器发送的绑定响应信息,包括:
判断是否通过所述网络地址转换设备接收到所述媒体服务器发送的所述绑定响应信息,所述媒体服务器根据所述网络地址转换设备的真实本地地址向所述网络地址转换设备发送所述绑定响应信息,所述网络地址转换设备将所述绑定响应信息转发给所述终端。
7.根据权利要求4所述的网络地址转换设备的穿越方法,其特征在于,所述穿越所述网络地址转换设备从所述媒体服务器拉取媒体流,包括:
通过所述终端创建的对等连接对象穿越所述网络地址转换设备,从所述媒体服务器拉取音频流和视频流,并通过浏览器的视频标签展示所述音频流和视频流。
8.一种网络地址转换设备的穿越装置,所述网络地址转换设备的穿越装置位于第一网络,其特征在于,所述网络地址转换设备的穿越装置包括:
伪造单元,用于伪造第二网络中的网络地址转换设备的虚假本地地址;
交换单元,用于利用所述网络地址转换设备的虚假本地地址与所述第二网络中的媒体服务器进行地址交换,得到所述媒体服务器的本地地址;
测试单元,用于根据所述媒体服务器的本地地址对所述媒体服务器进行连通性测试;
拉取单元,用于在连通性测试成功时,穿越所述网络地址转换设备从所述媒体服务器拉取媒体流。
9.根据权利要求8所述的网络地址转换设备的穿越装置,其特征在于,所述伪造单元具体用于:
运行预设代码产生虚假公网地址,将所述虚假公网地址作为所述网络地址转换设备的虚假本地地址。
10.根据权利要求8或9所述的网络地址转换设备的穿越装置,其特征在于,所述装置还包括:
创建单元,用于创建对等连接对象,并将对等连接对象中的STUN服务器路径及TURN服务器路径设置为空。
11.根据权利要求10所述的网络地址转换设备的穿越装置,其特征在于,所述交换单元包括:
发送子单元,用于通过所述第二网络中的信令服务器向所述媒体服务器发送地址交换信令,所述地址交换信令中包括所述网络地址转换设备的虚假本地地址,以使得所述媒体服务器将所述网络地址转换设备的虚假本地地址添加至所述媒体服务器创建的对等连接对象中;
接收子单元,用于通过所述信令服务器接收所述媒体服务器发送的地址交换响应,所述地址交换响应中包括所述媒体服务器的本地地址;
添加子单元,用于将所述媒体服务器的本地地址添加至所述创建单元创建的对等连接对象中。
12.根据权利要求11所述的网络地址转换设备的穿越装置,其特征在于,所述测试单元包括:
请求子单元,用于根据所述媒体服务器的本地地址向所述媒体服务器发送绑定请求信息;
确定子单元,用于判断是否接收到所述媒体服务器发送的绑定响应信息,若接收到所述媒体服务器发送的绑定响应信息,则对所述媒体服务器的连通性测试成功。
13.根据权利要求12所述的网络地址转换设备的穿越装置,其特征在于,所述网络地址转换设备的穿越装置位于第一网络中的终端,所述请求子单元具体用于:
向所述网络地址转换设备发送源地址为所述终端的本地地址、目的地址为所述媒体服务器的本地地址的所述绑定请求信息,所述网络地址转换设备将所述绑定请求信息中的源地址,修改为所述网络地址转换设备的真实本地地址,并在修改后将所述绑定请求信息转发给所述媒体服务器,以使得所述媒体服务器根据所述绑定请求信息将所述媒体服务器创建的对等连接对象中添加的所述网络地址转换设备的虚假本地地址,更新为所述网络地址转换设备的真实本地地址;
所述确定子单元具体用于:
判断是否通过所述网络地址转换设备接收到所述媒体服务器发送的所述绑定响应信息,所述媒体服务器根据所述网络地址转换设备的真实本地地址向所述网络地址转换设备发送所述绑定响应信息,所述网络地址转换设备将所述绑定响应信息转发给所述终端。
14.根据权利要求11所述的网络地址转换设备的穿越装置,其特征在于,所述拉取单元具体用于:
通过所述创建单元创建的对等连接对象穿越所述网络地址转换设备,从所述媒体服务器拉取音频流和视频流,并通过浏览器的视频标签展示所述音频流和视频流。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于储存多条指令,所述指令适于由处理器加载并执行如权利要求1至7任一项所述的步骤。
16.一种终端,其特征在于,所述终端包括存储器和处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7任一项所述的步骤。
CN201811039709.7A 2018-09-06 2018-09-06 网络地址转换设备的穿越方法、装置及存储介质 Active CN108989488B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811039709.7A CN108989488B (zh) 2018-09-06 2018-09-06 网络地址转换设备的穿越方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811039709.7A CN108989488B (zh) 2018-09-06 2018-09-06 网络地址转换设备的穿越方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN108989488A CN108989488A (zh) 2018-12-11
CN108989488B true CN108989488B (zh) 2020-07-07

Family

ID=64544962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811039709.7A Active CN108989488B (zh) 2018-09-06 2018-09-06 网络地址转换设备的穿越方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN108989488B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111479121B (zh) * 2020-04-08 2021-05-25 北京智能工场科技有限公司 一种基于流媒体服务器的直播方法及系统
CN113489717A (zh) * 2021-07-02 2021-10-08 北京飞讯数码科技有限公司 基于sip协议的内外网互通方法、装置、设备及存储介质
CN113676540B (zh) * 2021-08-23 2023-04-25 北京奇艺世纪科技有限公司 一种连接建立方法及装置
CN114500062B (zh) * 2022-01-30 2024-04-02 北京百度网讯科技有限公司 一种nat穿越方法、装置、电子设备及存储介质
CN114666306B (zh) * 2022-02-18 2024-06-11 阿里巴巴(中国)有限公司 WebRTC网络连接建立方法和服务器、电子设备及计算机可读存储介质
CN115022279B (zh) * 2022-06-02 2024-04-16 京东科技信息技术有限公司 内网穿透方法和装置
US11863631B1 (en) 2023-02-23 2024-01-02 Cisco Technology, Inc. Secure access App Connectors
CN116436929B (zh) * 2023-06-14 2023-09-08 深圳市玩物科技有限公司 利用服务器组装udp报文的辅助p2p打洞方法和服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101056271A (zh) * 2007-06-06 2007-10-17 杭州华三通信技术有限公司 穿越nat的方法及相应的通信终端和nat设备
CN104378355A (zh) * 2014-10-16 2015-02-25 江苏博智软件科技有限公司 一种面向安全虚拟网络的nat双向穿透方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060072569A1 (en) * 2004-10-04 2006-04-06 Wizzysoft Corporation Network address translation protocol for transmission control protocol connections
CN101800781B (zh) * 2009-02-11 2013-07-03 中国科学院计算机网络信息中心 一种穿越nat的隧道过渡方法及系统
CN103516729A (zh) * 2013-10-25 2014-01-15 深圳创维-Rgb电子有限公司 一种流媒体传输方法以及系统
CN105827748B (zh) * 2016-05-12 2019-03-15 东莞市南星电子有限公司 一种基于ICE的SIP穿越Symmetric NAT设备的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101056271A (zh) * 2007-06-06 2007-10-17 杭州华三通信技术有限公司 穿越nat的方法及相应的通信终端和nat设备
CN104378355A (zh) * 2014-10-16 2015-02-25 江苏博智软件科技有限公司 一种面向安全虚拟网络的nat双向穿透方法

Also Published As

Publication number Publication date
CN108989488A (zh) 2018-12-11

Similar Documents

Publication Publication Date Title
CN108989488B (zh) 网络地址转换设备的穿越方法、装置及存储介质
CN110365491B (zh) 业务处理方法、装置、设备、存储介质以及数据共享系统
US10673680B2 (en) Electronic device providing dialog contents, server and method thereof
EP2787696A1 (en) Method and device for transferring web real-time communication session
CN104253857A (zh) 背靠背虚拟web实时通信代理以及相关的方法、系统
EP3179693B1 (en) Method, apparatus, storage medium and computer program product for establishing a data connection
CN104125145B (zh) 基于网页浏览器的通信方法、设备和系统
CN110716850A (zh) 页面测试方法、装置、系统及存储介质
CN101883056B (zh) 基于udt和tcp中转实现nat穿越的方法
CN106357697A (zh) 一种基于WebSocket属性同步的多终端页面同步方法
US20230321530A1 (en) Method for game data acceleration and system, and electronic device
CN102520850A (zh) 一种无线传屏中输入操作的处理方法及设备
CN105009549B (zh) 一种同步方法及终端、服务器
CN104683403B (zh) 用于资源共享的方法、资源服务器和系统
CN115103320B (zh) 消息的传输方法、装置、电子设备及存储介质
CN112242972B (zh) 网络请求处理方法、装置、存储介质及终端
CN104601649A (zh) 提供关于web应用的起源洞察的方法和系统
CN111367444A (zh) 应用功能执行方法、装置、电子设备及存储介质
CN102594886A (zh) 浏览器与浏览器直通的方法、装置和通信系统
CN111615694B (zh) 一种服务器节点的选择方法和终端设备
CN112398685B (zh) 基于移动终端的主机设备加速方法、装置、设备及介质
CN110109594A (zh) 一种绘图数据分享方法、装置、存储介质以及设备
US20230413349A1 (en) Call establishment method and apparatus, electronic device, and readable storage medium
WO2019119280A1 (zh) 业务处理方法、云服务器和终端设备
CN107155083B (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
GR01 Patent grant
GR01 Patent grant