一种通信方法和通信装置制造方法及图纸

技术编号:13837557 阅读:49 留言:0更新日期:2016-10-15 23:16
本发明专利技术提供一种通信方法,通过判断客户端本身的地址是否与服务器上接收到的客户端的地址相同来确定链路上是否存在NAT设备,以及通过判断客户端连接的网络设备的地址与服务器上接收到的客户端的地址判断是否为多级NAT串联,并由此采用UPnP或长连接方式在所述客户端与所述服务器之间通信。本发明专利技术还提供一种通信装置。本发明专利技术的方案结合多种NAT穿透方式的优点,可以穿透所有NAT类型,既保证了穿透效率,还提高了系统性能。

【技术实现步骤摘要】

本专利技术涉及计算机通信,具体涉及一种用于在客户端与服务器进行通信的方法和装置。
技术介绍
NAT(Network Address Translation)又称\网络地址转换\,它是一种把内部私有网络地址翻译成合法网络IP地址的技术。NAT就是在局域网内部使用私有地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口)处将内部地址替换成公用地址,从而在公网(internet)上正常使用.通过这种方法,可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。在这样的体系中,设备的私有地址在公网上是不能被路由。这样,NAT不仅解决了IPv4地址资源不足的问题,还能够有效避免来自网络外部的攻击,隐藏并保护网络内部的计算机。同时,NAT也阻碍了外网到内网的直接访问,设备必须通过NAT设备才能访问外网,外网上的设备也必须通过NAT才能访问内网的设备。而P2P通信是两台设备直接通信,这样当有一个设备处于NAT设备下的内网时,这两个设备之间就不能进行P2P通信。于是,人们就需要采用一种方法能够使得消除NAT的障碍,称为NAT穿透。NAT穿透是P2P通信的主要问题。已知的一种NAT穿透方法是使用UPnP。UPnP是微软提出的通用即插即用协议簇,用于全网络嵌入式设备的点到点互联通信。当NAT设备支持UPnP时,利用UPnP能够把P2P通信的端口号自动映射到公网上,
从而公网上的设备能够对NAT私网侧发起连接。然而,使用UPnP只能穿透一层NAT。也就是,如果NAT设备本身也处于另一NAT设备的私网上,则UPnP就不能起到作用。长连接是一种TCP连接,是具有保活通信的TCP连接,可以穿透TCP NAT和对称型,支持多级串联的NAT穿透,是当前互联网常用的TCP穿透方法。长连接的应用缺陷是服务器负载和带宽占用较高。
技术实现思路
本专利技术的目的提供一种可用于NAT穿透的新的通信方案。按照本专利技术的一个方面,一种通信方法,用于在客户端与服务器之间的通信,包括如下步骤:S10,在所述客户端与所述服务器之间建立连接;S20,判断所述客户端的第一地址是否与所述服务器上存储的所述客户端的第二地址相同;S30,如果所述第一地址与所述第二地址不同,则,判断所述客户端连接的网络设备的地址与所述第二地址是否相同;S40,如果所述第二地址与所述网络设备的地址相同,则在所述客户端与所述服务器之间基于UPnP协议的通信;S50,如果所述第二地址与所述网络设备的地址不同,则在所述客户端与所述服务器之间基于长连接方式进行通信。在一个实施例中,该方法还包括:将所述第二地址从所述服务器传输到所述客户端,以及在所述客户端完成步骤S20。在一个实施例中,该方法还包括:将所述第一地址从所述客户端发送到所述服务器,以及在所述服务器完成步骤S20。在一个实施例中,该方法还包括:将所述网络设备的地址发送到所述客户端,以及在所述客户端完成所述步骤S30。在一个实施例中,该方法还包括:将所述网络设备的地址发送到所述服务器,以及在所述服务器完成所述步骤S30。按照本专利技术另一方面,一种通信装置,其用于在客户端与服务器之间的通信,包括:第一判断单元,其判断所述客户端的第一地址与所述服务器上存储的所述客户端的第二地址是否相同;第二判断单元,其判断所述第二地址与所述客户端连接的网络设备的地址是否相同;第一通信单元,其构造为基于UPnP协议在所述客户端与所述服务器之间进行通信;第二通信单元,其构造为基于长连接方式在所述客户端与所述服务器之间进行通信;其中,当所述第二地址与所述网络设备的地址相同时,所述第一通信单元运行,当所述第二地址与所述网络设备的地址不同时,所述第二通信的运行。进一步,该装置还包括信息获取单元,其获取所述第一地址、第二地址和所述网络设备的地址,并将所述第一地址和第二地址发送至所述第一判断单元,以及将所述第二地址和所述网络设备的地址发送至所述第二判断单元。在本专利技术中,网路设备可以是路由器或者网关。其中,客户端可以为任何能够接入网络的设备,服务器是连接在公网上并且提供网络服务的计算设备,例如存储或其他信息服务。本专利技术的方案结合多种NAT穿透方式的优点,可以穿透所有NAT类型,既保证了穿透效率,还提高了系统性能。附图说明下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、优点及其实现方式予以进一步说明。图1示出客户端设备通过网关与服务器的网络连接。图2示出按照本专利技术的通信装置的实施例的示意图。附图标号说明:10移动设备 20网关 30服务器 40计算机 50路由器60网关100第一比较单元 200第二比较单元 300第一通信单元 400第二通信单元 500信息获取单元具体实施方式为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对照附图说明本专利技术的具体实施方式。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。如前所述,NAT是将私网内的设备的地址转换为公网上的地址。例如,当客户端处于NAT设备的内网时,连接到服务器上的地址实际上是NAT设备映射的地址,而不是客户端从内网的DHCP服务器获取的地址作为客户端本身的地址。当客户端与服务器通信时,NAT设备会将客户端本身的地址映射为公网上的地址(映射地址),例如,可以是NAT设备在公网上分配到的地址。客户端发出报文时,其报头的源地址是客户端本身的地址。当到达NAT设备时,报头中的源地址就被修改为前述映射后的地址。服务器接收到的报文的报头中的源地址就是该映射地址。也就是,在服务器接收到的数据报文的报头中的源地址实际上是NAT设备在建立连接时分配给客户端的映射地址,而不是客户端发出上述数据报文时写入报头的地
址。在本说明书中,术语“私网”与“内网”的含义相同,而术语“公网”与“外网”的含义相同,均为本领域公知的术语。在图1示出的网络拓扑结构中,移动设备10通过网关20与服务器30连接。网关20是NAT设备,此时,移动设备10实际上处于网关20的私网中。同时,如图1所示,计算机40通过路由器50、网关60连接到服务器30。路由器50为NAT设备,此时计算机40处于路由器50的内网中。同时,当网关60也是NAT设备时,则路由器50的整个内网实际上也是处于网关60的内网中。这就形成了两级串联的NAT拓扑结构。在这种情况下,移动设备10的地址是所处的网关20的内网中的DHCP服务器分配给移动设备10的地址。DHCP服务器可以是集成在网关20上的模块,也可以是单独的服务器。当移动设备10与服务器30通信时,服务器30接收到的数据报文的报头中的源地址实际上是网关20的分配给移动设备10的地址,而不是移动设备10本身的地址。类似地,计算机40从路由器50的内网上的DHCP服务器分配到IP地址作为计算机40本身的地址。通常,路由器50本身会具有DHCP服务端的功能。也就是,路由器50会将一个IP地址分配给计算机40作为其本身的地址。而路由器50本身的地址是网关60的内网上的DHCP服务器分配给路由器50的地址。当计算机40与服务器30通信时,计算机本文档来自技高网
...

【技术保护点】
一种通信方法,用于在客户端与服务器之间的通信,其特征在于,该方法包括如下步骤:S10,在所述客户端与所述服务器之间建立连接;S20,判断所述客户端的第一地址是否与所述服务器上存储的所述客户端的第二地址相同;S30,如果所述第一地址与所述第二地址不同,则,判断所述客户端连接的网络设备的地址与所述第二地址是否相同;S40,如果所述第二地址与所述网络设备的地址相同,则在所述客户端与所述服务器之间基于UPnP协议的通信;S50,如果所述第二地址与所述网络设备的地址不同,则在所述客户端与所述服务器之间基于长连接方式进行通信。

【技术特征摘要】
1.一种通信方法,用于在客户端与服务器之间的通信,其特征在于,该方法包括如下步骤:S10,在所述客户端与所述服务器之间建立连接;S20,判断所述客户端的第一地址是否与所述服务器上存储的所述客户端的第二地址相同;S30,如果所述第一地址与所述第二地址不同,则,判断所述客户端连接的网络设备的地址与所述第二地址是否相同;S40,如果所述第二地址与所述网络设备的地址相同,则在所述客户端与所述服务器之间基于UPnP协议的通信;S50,如果所述第二地址与所述网络设备的地址不同,则在所述客户端与所述服务器之间基于长连接方式进行通信。2.根据权利要求1所述的通信方法,其特征在于,还包括:将所述第二地址从所述服务器传输到所述客户端,以及在所述客户端完成步骤S20。3.根据权利要求1所述的通信方法,其特征在于,还包括:将所述第一地址从所述客户端发送到所述服务器,以及在所述服务器完成步骤S20。4.根据权利要求1所述的通信方法,其特征在于,还包括:将所述网络设备的地址发送到所述客户端,以及在所述客户端...

【专利技术属性】
技术研发人员:张享达
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1