基于网络地址转换的通信方法和装置制造方法

文档序号:7775322阅读:158来源:国知局
基于网络地址转换的通信方法和装置制造方法
【专利摘要】本发明提供了一种基于网络地址转换的通信方法和装置。其中,该方法包括:当网络设备接收的数据包是第一网络向第二网络发送的数据包时,将数据包的第一网络的IP地址和第一端口号转换为第二网络的IP地址和第二端口号,并存储数据包中的协议号、MAC地址、第一网络的IP地址和第一端口号、以及第二网络的IP地址和第二端口号的对应关系;当数据包是第二网络发送给第一网络时,将该数据包中的第二网络的IP地址和第二端口号,转换为第一网络的IP地址和第一端口号,并将对应关系中的MAC地址封装在数据包中;以及基于转换后的数据包进行通信。本发明解决了多个内网终端的IP地址相同时,无法基于NAT技术与公网进行正常通信的问题。
【专利说明】基于网络地址转换的通信方法和装置
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及基于网络地址转换的通信方法和装置。
【背景技术】
[0002]网络地址转换(NAT,Network Address Translation)属于接入广域网(WAN, WideArea Network)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet (互联网)接入方式和各种类型的网络中。NAT是将IP数据包头中的IP地址转换为另一个IP地址的过程。
[0003]参见图1所示的基于NAT技术的通信方法示意图。首先,终端(Client)的网关(gateway)设定为NAT主机,当终端要连接互联网时,发送的数据包会被送到NAT主机,假设该数据包的包头(Header)中的源IP (source IP)为:192.168.1.100。然后,该数据包到达NAT主机,NAT主机将该终端发送给外联机的数据包的源IP (192.168.1.100)伪装成PPPO (假设,该NAT主机通过拨号方式接入互联网)接口所具有的公共IP,通过该公共IP,该终端的数据包就可以通过互联网发送到指定设备。同时,上述NAT主机会存储上述数据包是由哪一个终端传送来的,通常记录该终端的源IP (192.168.1.100)与公共IP (pppO)的对应关系。再次,由互联网传送回来的数据包,由该NAT主机接收,此时,NAT主机会去查询原本记录的路由信息,并将目标IP由PPPO的公共IP改回原来的192.168.1.100 ;最后,由NAT主机将该数据包传送给192.168.1.100地址对应的终端。
[0004]由上述基于NAT技术通信的方法可知,目前NAT技术均采用内部IP地址与外部IP地址来进行绑定关系,即每一个用户通过其自身不同的内部IP地址进行区分。该方式建立在内部网络中的用户不会同时使用同一个IP地址的前提下。但是,随着网络架构的不断发展,已经出现内部网络为层二(MAC层,即Media Access Control,媒体接入控制层)星状通信的架构,即所有用户都通过层二数据包与网关(NAT主机)进行一对一通信,用户之间无相互通信的场景,如图2所示的层二星状通信架构示意图。在该架构中,4个用户终端(即终端
1、终端2、终端3和终端4)均可采用相同的IP地址(192.168.1.2);此时,在NAT主机上,如果仍然采用内部IP地址和外部IP地址绑定的NAT转换方式,将出现用户终端辨识不明的问题,进而无法基于NAT技术进行正常通信。

【发明内容】

[0005]本发明的目的在于提供了一种基于网络地址转换的通信方法和装置,以解决上述的问题。
[0006]在本发明的实施例中提供了一种基于网络地址转换的通信方法,包括:当网络设备接收的数据包是第一网络向第二网络发送的数据包时,网络设备将数据包的源地址和源端口号中的第一网络的IP地址和第一端口号转换为第二网络的IP地址和第二端口号,并存储该数据包携带的协议号、MAC地址、第一网络的IP地址和第一端口号、以及第二网络的IP地址和第二端口号的对应关系;当网络设备接收的数据包是第二网络发送给第一网络的数据包时,该网络设备将该数据包的目的地址和目的端口号中的第二网络的IP地址和第二端口号,转换为对应关系中的第一网络的IP地址和第一端口号,并将对应关系中的MAC地址封装在数据包中;网络设备基于转换后的数据包进行通信。
[0007]在本发明的实施例中还提供了一种基于网络地址转换的通信装置,包括:第一转换模块,用于当接收的数据包是第一网络向第二网络发送的数据包时,将所述数据包的源地址和源端口号中的第一网络的IP地址和第一端口号转换为第二网络的IP地址和第二端口号,并存储所述数据包携带的协议号、MAC地址、所述第一网络的IP地址和第一端口号、以及所述第二网络的IP地址和第二端口号的对应关系;第二转换模块,用于当接收的数据包是第二网络发送给第一网络的数据包时,将所述数据包的目的地址和目的端口号中的第二网络的IP地址和第二端口号,转换为所述对应关系中的第一网络的IP地址和第一端口号,并将所述对应关系中的MAC地址封装在所述数据包中;通信模块,用于基于所述第一转换模块或所述第二转换模块转换后的所述数据包进行通信。
[0008]本发明实施例提供的方法和装置通过对数据包中的地址进行相应的转换,并存储这种转换关系和MAC地址的对应关系,使该网络设备能够正确地辨识网络中的终端,进而能够完成数据包的正确转发,解决了相关NAT技术在网络为星状通信架构时,无法进行正常通信的问题,提升了设备的性能。
【专利附图】

【附图说明】
[0009]图1示出了相关技术的基于NAT技术的通信方法示意图;
[0010]图2示出了相关技术的层二星状通信架构示意图;
[0011]图3示出了本发明实施例提供的基于网络地址转换的通信方法流程图;
[0012]图4示出了本发明实施例提供的终端向AP查询信息的方法流程图;
[0013]图5示出了本发明实施例提供的基于网络地址转换的通信装置的结构框图。
【具体实施方式】
[0014]下面通过具体的实施例子并结合附图对本发明做进一步的详细描述。
[0015]考虑到层二(MAC层)星状通信架构中,各个内网终端的内部IP地址均相同,无法基于内部IP地址辨识各个内网终端,影响内网终端通过NAT技术与公网的正常通信,本发明实施例提供了一种基于网络地址转换的通信方法和装置,该方法和装置适用于各种组网情况,采用基于MAC地址的NAT转换技术,通过引入MAC地址这一标识信息,来辨别不同的用户终端。具体通过以下实施例进行描述。
[0016]本实施例提供了一种基于网络地址转换的通信方法,参见图3,该方法包括以下步骤:
[0017]步骤S302,当网络设备接收的数据包是第一网络向第二网络发送的数据包时,网络设备将数据包的源地址和源端口号中的第一网络的IP地址和第一端口号转换为第二网络的IP地址和第二端口号,并存储该数据包携带的协议号、MAC地址、第一网络的IP地址和第一端口号、以及第二网络的IP地址和第二端口号的对应关系;
[0018]步骤S304,当网络设备接收的数据包是第二网络发送给第一网络的数据包时,该网络设备将该数据包的目的地址和目的端口号中的第二网络的IP地址和第二端口号,转换为对应关系中的第一网络的IP地址和第一端口号,并将对应关系中的MAC地址封装在数据包中;
[0019]步骤S306,网络设备基于转换后的数据包进行通信。
[0020]本实施例的网络设备通过对数据包中的地址进行相应的转换,并存储这种转换关系和MAC地址的对应关系,使该网络设备能够正确地辨识网络中的终端,进而能够完成数据包的正确转发,解决了相关NAT技术在网络为星状通信架构时,无法进行正常通信的问题,提升了设备的性能。
[0021]通过上述方法,上述网络设备上存储了数据包的五元组(源地址、源端口号、协议号、目的IP地址和目的端口号)信息和该数据包携带的MAC地址的对应关系;对于第一网络中的设备,可能多次向同一个目的地址发送数据包,为了避免上述网络设备多次重复地存储上述对应关系,上述方法还包括:当该网络设备从第一网络接收到的数据包中携带的源地址、源端口号、目的IP地址、目的端口号、协议号和MAC地址均与所述对应关系中的信息匹配时,该网络设备根据该对应关系,将此次接收的数据包的源地址和源端口号中的第一网络的IP地址和第一端口号转换为第二网络的IP地址和第二端口号,然后基于转换后的数据包进行通信。
[0022]上述第一网络为基于MAC层传输协议的网络;第二网络为基于IP层传输协议的网络;基于此,上述方法简单举例如下:
[0023]I)当数据包由第一网络向第二网络发送,到达网络设备时,该网络设备将该数据包中在第一网络的源IP地址(如:IP1)和源端口号(如:A)转换为在第二网络的IP地址(如:IP2)和端口号(如B);并存储该数据包携带的协议号、该网络终端的MAC地址与上述源IP地址和源端口,以及第二网络中的IP地址和端口号的对应关系;例如,将该对应关系存储在网络地址转换表中;
[0024]2)当数据包由第二网络返回第一网络时,该网络设备根据网络地址转换表中存储的对应关系对该数据包进行地址转换,具体为:将该数据包中的目标IP地址(IP2)和目标端口号(B),替换为存储在网络地址转换表中的IPl和A ;将转换后的数据包进行MAC包封装,在该MAC包包头的目标MAC地址处填写存储在网络地址转换表的对应关系中的MAC地址。
[0025]3)上述网络设备基于转换后的数据包进行通信。
[0026]上述网络设备可以是私网(即多个用户终端组成的内部网络)中的网关等设备。
[0027]上述步骤S306中的网络设备基于转换后的数据包进行通信可以是:网络设备直接转发转换后的数据包;也可以根据实际网络情况,对转换后的数据包进行封装等操作,再转发该数据包。例如:如果是私网终端(支持MAC层传输协议)发送给公网(支持IP层传输协议)的数据包,则可以根据公网支持的通信协议封装该数据包;如果是公网发送给私网终端的数据包,则可以将该数据包封装为私网通信协议支持的数据包形式,例如,封装为层二数据包,即MAC层数据包;
[0028]上述通信方法尤其适用于W1-Fi网络的Emergency Alert System(EAS,紧急报警系统),该系统用于在紧急时刻向用户通过W1-Fi途径自动推送紧急消息通知,使用户能够即时获知紧急信息,达到安全应急的目的。
[0029]相关技术中,允许用户终端在与AP (Access Point,接入点)未关联或者已经关联的状态下,与W1-Fi网络进行信息交互的架构,称为Generic Advertisement SystemCGAS,通用广告系统),如图4所示的终端向AP查询信息的方法流程图。用户终端(RequestingSTA (Service Trigger Agent,业务触发代理))向接入站点(Responding STA)发送 GAS 初始查询消息(GAS Initial Request),接入站点再按照用户终端的查询内容,向广告服务器(Advertisement Server)进一步获取相关信息;具体为:接入站点向广告服务器发送请求(Query Request)消息,广告服务器通过返回响应(Query Response)消息,将相关信息发给接入站点,接入站点再将所得的相关信息通过GAS初始响应(GAS Initial Response)消息返回给用户终端。
[0030]如果当前W1-Fi网络支持EAS系统,将会在Beacon (警告)和Probe Response(侦测响应)信令中携带有Emergency Alert Identifier Element (紧急告警标识信元)。通过Element (信元)ID注明该信息元是Emergency Alert Identifier (紧急告警标识),Length表明该信息元的长度,Alert Identifier Hash (紧急标识哈希值)则是EAS信息的标志。每一个不同的EAS消息,都有一个不同的Alert Identifier Hash值与之对应,以便用户终端可以通过该Alert Identifier Hash值判断是否已经接受过该EAS信息。另外,当W1-Fi网络有多个EAS信息需要推送时,会在其Beacon和Probe Response信令中携带多个Emergency Alert Identifier Element,每一个Emergency Alert Identifier Element中的Alert Identifier Hash值均对应一个不同的EAS消息。
[0031]当用户终端发现W1-Fi网络侧有新的EAS消息需要推送,将主动通过GAS系统发起EAS信息获取。主要获取的方式有两种,即文字信息直接获取和通过网址信息间接获取。本发明实施例在实现过程中,发现获取EAS的这两种方式存在以下缺陷:首先,基于文字信息的查询机制由于仅能传输文字信息,存在有信息形式单一,信息表现不直观的问题。例如,当有突发紧急避险需求时,网络侧在向用户推送避险地址信息时,如果用文字信息推送,就无法达到通过图片信息传递的直观性和准确性。而网址信息间接获取方式,虽然能通过网页向用户推送包括文字,图片,以及多媒体等多种形式的信息,但需要用户能够通过IP层通信获取。而这对于未与网络关联的用户终端,则要求用户先接入网络,然后通过繁琐的身份验证,以及网址分配过程,在获得IP地址后,方可访问目标EAS信息。这样将导致用户终端EAS信息获取的大量时延,未能实现EAS信息的及时推送。
[0032]基于上述问题,本发明实施例将上述通信方法应用在获取EAS信息上,即上述数据包为第一网络与第二网络间的EAS消息。该EAS消息中至少携带有图片、语音或文字信息中的一种。这样就能够及时向用户提供丰富EAS图文多媒体信息,有效避免由于用户未接入网络而没有IP地址导致的EAS信息获取时延。
[0033]对应于上述方法,本发明实施例还提供了一种基于网络地址转换的通信装置,该装置可以设置在上述网络设备内,参见图5,该装置包括以下模块:
[0034]第一转换模块52,用于当接收的数据包是第一网络向第二网络发送的数据包时,将数据包的源地址和源端口号中的第一网络的IP地址和第一端口号转换为第二网络的IP地址和第二端口号,并存储数据包携带的协议号、MAC地址、第一网络的IP地址和第一端口号、以及第二网络的IP地址和第二端口号的对应关系;
[0035]第二转换模块54,用于当接收的数据包是第二网络发送给第一网络的数据包时,将数据包的目的地址和目的端口号中的第二网络的IP地址和第二端口号,转换为上述对应关系中的第一网络的IP地址和第一端口号,并将该对应关系中的MAC地址封装在数据包中;
[0036]通信模块56,用于基于第一转换模块52或第二转换模块54转换后的数据包进行通信。
[0037]本实施例的装置通过对数据包中的地址进行相应的转换,并存储这种转换关系和MAC地址的对应关系,使该网络设备能够正确地辨识网络中的终端,进而能够完成数据包的正确转发,解决了相关NAT技术在网络为星状通信架构时,无法进行正常通信的问题,提升了设备的性能。
[0038]上述装置还包括:后续数据包处理模块,用于当从第一网络接收到的数据包中携带的源地址、源端口号、目的IP地址、目的端口号、协议号和MAC地址均与对应关系中的信息匹配时,根据上述对应关系,将数据包的源地址和源端口号中的第一网络的IP地址和第一端口号转换为第二网络的IP地址和第二端口号;以及基于转换后的数据包进行通信。
[0039]其中,上述第一网络为基于MAC层传输协议的网络;第二网络为基于IP层传输协议的网络。基于此,上述第二转换模块还包括:封装单元,用于将转换地址后的数据包封装为MAC包,并在MAC包的包头中的目标MAC地址处填写对应关系中的MAC地址。
[0040]上述装置为EAS中内网终端的网关,例如:为NAT设备或AC (Access Control,访问控制)网关。
[0041]以上实施例采用基于MAC地址的地址转换通信方式,解决了相关NAT技术不支持相同内部IP地址终端的地址转换的问题,从而使网络允许多用户使用相同IP地址,进一步节约了 IP地址资源;同时,将其应用于EAS环境中,可以向用户提供丰富EAS图文多媒体信息,又可有效避免由于用户未接入网络而没有IP地址导致的EAS信息获取时延,增加了设备的性能。
[0042]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0043]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于网络地址转换的通信方法,其特征在于,包括: 当网络设备接收的数据包是第一网络向第二网络发送的数据包时,所述网络设备将所述数据包的源地址和源端口号中的第一网络的IP地址和第一端口号转换为第二网络的IP地址和第二端口号,并存储所述数据包携带的协议号、媒体接入控制MAC地址、所述第一网络的IP地址和第一端口号、以及所述第二网络的IP地址和第二端口号的对应关系; 当所述网络设备接收的数据包是第二网络发送给第一网络的数据包时,所述网络设备将所述数据包的目的地址和目的端口号中的第二网络的IP地址和第二端口号,转换为所述对应关系中的第一网络的IP地址和第一端口号,并将所述对应关系中的MAC地址封装在所述数据包中; 所述网络设备基于转换后的所述数据包进行通信。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 当所述网络设备从所述第一网络接收到的数据包中携带的源地址、源端口号、目的IP地址、目的端口号、协议号和MAC地址均与所述对应关系中的信息匹配时,所述网络设备根据所述对应关系,将所述数据包的源地址和源端口号中的所述第一网络的IP地址和第一端口号转换为所述第二网络的IP地址和第二端口号,然后基于转换后的所述数据包进行通信。
3.根据权利要求1所述的方法,其特征在于,所述第一网络为基于MAC层传输协议的网络;所述第二网络为 基于IP层传输协议的网络。
4.根据权利要求3所述的方法,其特征在于,将所述对应关系中的MAC地址封装在所述数据包包括:将转换地址后的所述数据包封装为MAC包,并在所述MAC包的包头中的目标MAC地址处填写所述对应关系中的MAC地址。
5.根据权利要求1所述的方法,其特征在于,所述数据包为所述第一网络与第二网络间的紧急告警系统EAS消息。
6.根据权利要求5所述的方法,其特征在于,所述EAS消息中至少携带有图片、语音或文字信息中的一种。
7.一种基于网络地址转换的通信装置,其特征在于,包括: 第一转换模块,用于当接收的数据包是第一网络向第二网络发送的数据包时,将所述数据包的源地址和源端口号中的第一网络的IP地址和第一端口号转换为第二网络的IP地址和第二端口号,并存储所述数据包携带的协议号、媒体接入控制MAC地址、所述第一网络的IP地址和第一端口号、以及所述第二网络的IP地址和第二端口号的对应关系; 第二转换模块,用于当接收的数据包是第二网络发送给第一网络的数据包时,将所述数据包的目的地址和目的端口号中的第二网络的IP地址和第二端口号,转换为所述对应关系中的第一网络的IP地址和第一端口号,并将所述对应关系中的MAC地址封装在所述数据包中; 通信模块,用于基于所述第一转换模块或所述第二转换模块转换后的所述数据包进行通信。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 后续数据包处理模块,用于当从所述第一网络接收到的数据包中携带的源地址、源端口号、目的IP地址、目的端口号、协议号和MAC地址均与所述对应关系中的信息匹配时,根据所述对应关系,将所述数据包的源地址和源端口号中的所述第一网络的IP地址和第一端口号转换为所述第二网络的IP地址和第二端口号;以及基于转换后的所述数据包进行通信。
9.根据权利要求7所述的装置,其特征在于,所述第一网络为基于MAC层传输协议的网络;所述第二网络为基于IP层传输协议的网络。
10.根据权利要求9所述的装置,其特征在于,所述第二转换模块包括:封装单元,用于将转换地址后的所述数据包封装为MAC包,并在所述MAC包的包头中的目标MAC地址处填写所述对应关系中的MAC 地址。
【文档编号】H04L29/12GK103533103SQ201310533599
【公开日】2014年1月22日 申请日期:2013年10月31日 优先权日:2013年10月31日
【发明者】黄开缔, 雷永成 申请人:成都西加云杉科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1