一种网络地址转换方法

文档序号:7970695阅读:151来源:国知局
专利名称:一种网络地址转换方法
技术领域
本发明涉及计算机网络技术,特别涉及到网络地址转换的实现。
背景技术
随着宽带技术的成熟,家庭网络化将成为了整个社会信息化的一个重要部分,为了适应这种持续激增的宽带业务需求,提出了“数字家庭”这一新的概念。“数字家庭”类的业务可以分为四种类型1、家庭娱乐和通信类通过机顶盒提供数字电视、视音频点播、时移电视、网络游戏,视频电话,以及远程教育等业务;2、家庭安全类为家庭提供监控和告警,例如,闯入警报、户外警报、烟雾/溢水监测和告警等;3、家庭自动控制类利用网络进行家电控制,照明控制,门窗控制等;4、家庭医疗保健类作为一个远期方案,家庭医疗业务能够对家庭成员进行远程日常健康检查,心电图/血压/血糖/体重/肺量测量、实施药疗计划、视频会诊等。
“数字家庭”在实现时的一个技术障碍是现有的计算机网络已经不能很好的支持数字化网络向家庭内部设备的渗透,其中IP地址的紧缺就是其中所遇到的一个重要问题。现在普遍使用的IPv4是于20世纪70年代末期设计的IP协议,IPv4的IP地址只有32位,随着全球计算机用户的增加,以及早期IP地址的分类及分配方法的不足,IP地址的紧缺现象十分严重。虽然新提出的IPv6将IP地址从32位扩展为128位,可以从根本上解决IP地址紧缺的问题,但对已经成熟运行的现有网络体系结构(包括网络硬件设备和运行的网络协议软件等)影响较大,很难在短期内取代IPv4。
解决IP地址短缺的一种方法是采用网络地址转换(NAT)技术,只要在专用网和因特网连接的路由设备上运行一个NAT程序,就能以很小的代价解决IPv4地址紧缺的问题。在“数字家庭”中也可以用网络地址转换技术解决IP地址的短缺,使得现在成熟的计算机网络技术的价值链得到延伸,且不改变现有的计算机网络的体系结构。
在数字家庭中,实现网络地址转换的相应NAT程序安装在家庭网关上。家庭网关是连接公网和家庭私网的喉舌,它既负责家庭私网内部对公网的访问和交互,又负责用户从公网上对于家庭网络的访问和控制,另外还需要负责家庭私网内部设备的互联,互控等操作。一个具备实用价值的家庭网关应当具备宽带接入、业务识别、控制信息转发等功能。
现有NAT技术为了适应广泛的适用性,必须对硬件层的差异进行很好的屏蔽,这就意味着要增加上层软件的复杂性。然而,对于数字家庭中的家庭网关来说,由于应用环境比较固定,也比较单一,所以并不需要具备很强的灵活性,而是需要实现简单和较高效率。因此,为家庭网关提供一种简单、高效的网络地址转换方法对数字家庭的实现具有重大的意义。

发明内容
本发明的目的是克服现有的路由设备的上层软件过于复杂,网络地址转换效率较低的缺陷,从而提供一种简单、高效的网络地址转换方法。
为了实现上述目的,本发明提供了一种网络地址转换方法,在网络地址转换时采用处理控制块,所述处理控制块包括6个子块,分别为路由设备上某个内部网络接口的IP地址、内部网络接口的端口号、私网中与内部网络接口相连的内部终端设备的IP地址、用于组织数据结构的信息、全局唯一的端口号以及超时信息;所述的网络地址转换方法用于实现私网IP地址到公网IP地址的转换,具体包含以下步骤步骤11)、路由设备的内部网络接口接收私网发来的数据帧;步骤12)、判断数据帧接收是否正确,若正确,执行下一步,否则删除所接收到的数据帧;步骤13)、根据数据帧的目的IP地址,判断数据帧是否发往外部的公网,若发往外部的公网,则执行下一步,否则,执行步骤18);步骤14)、将数据帧的源地址与路由设备中所保存的关于处理控制块的表进行比较,若源地址与某一处理控制块所记录的内部终端设备的IP地址相同,则本次数据转发已建立过连接,执行步骤16),否则执行下一步;
步骤15)、在路由设备所保存的关于处理控制块的表中建立新的处理控制块;步骤16)、将数据帧中的内部网络接口的端口号修改为全局唯一的端口号,将数据帧的源IP地址修改为路由设备的外部网络接口的IP地址,同时修改校验和;步骤17)、调用外部网络接口的驱动程序的发送处理进程发送数据帧;步骤18)、结束本次发送操作。
本发明还提供了一种网络地址转换方法,在网络地址转换时采用处理控制块,所述处理控制块包括6个子块,分别为路由设备上某个内部网络接口的IP地址、内部网络接口的端口号、私网中与内部网络接口相连的内部终端设备的IP地址、用于组织数据结构的信息、全局唯一的端口号以及超时信息;所述的网络地址转换方法用于实现公网IP地址到私网IP地址的转换,具体包含以下步骤步骤21)、路由设备的外部网络接口接收外部网络发来的数据帧;步骤22)、判断数据帧接收是否正确,若正确,执行下一步,否则删除所接收到的数据帧;步骤23)、根据数据帧中的目的端口号,判断该数据帧是否发往私网,若目的端口号与保存在路由设备中的处理控制块中的全局唯一端口号相同,则该数据帧发往私网,执行下一步;否则执行步骤27);步骤24)、根据查找到的与目的端口号相同的全局唯一端口号,找到该全局唯一端口号所在处理控制块;步骤25)、利用步骤24)中所查找到的处理控制块中的内部终端设备的IP地址修改数据帧中的目的IP地址,利用处理控制块中的内部网络接口的端口号修改数据帧中的目的端口号,同时还更改数据帧中的校验和;步骤26)、利用步骤24)中所查找到的处理控制块中内部网络接口的IP地址,调用该接口的驱动程序的发送处理进程转发该数据帧;步骤27)、结束操作。
上述技术方案中,所述的网络地址转换方法实现公网IP地址到私网IP地址的转换前,对所述处理控制块作配置操作,为所述处理控制块的6个子块添加相应的信息。
本发明又提供了一种网络地址转换方法,在网络地址转换时采用处理控制块,所述处理控制块包括6个子块,分别为路由设备上某个内部网络接口的IP地址、内部网络接口的端口号、私网中与内部网络接口相连的内部终端设备的IP地址、用于组织数据结构的信息、全局唯一的端口号以及超时信息;所述网络地址转换方法包括私网IP地址转换到公网IP地址,以及公网IP地址转换到私网IP地址;其中,所述的私网IP地址转换到公网IP地址具体包括以下步骤步骤11)、路由设备的内部网络接口接收私网发来的数据帧;步骤12)、判断数据帧接收是否正确,若正确,执行下一步,否则删除所接收到的数据帧;步骤13)、根据数据帧的目的IP地址,判断数据帧是否发往外部的公网,若发往外部的公网,则执行下一步,否则,执行步骤18);步骤14)、将数据帧的源地址与路由设备中所保存的关于处理控制块的表进行比较,若源地址与某一处理控制块所记录的内部终端设备的IP地址相同,则本次数据转发已建立过连接,执行步骤16),否则执行下一步;步骤15)、在路由设备所保存的关于处理控制块的表中建立新的处理控制块;步骤16)、将数据帧中的内部网络接口的端口号修改为全局唯一的端口号,将数据帧的源IP地址修改为路由设备的外部网络接口的IP地址,同时修改校验和;步骤17)、调用外部网络接口的驱动程序的发送处理进程发送数据帧;步骤18)、结束本次发送操作;其中,所述的公网IP地址转换到私网IP地址具体包含以下步骤步骤21)、路由设备的外部网络接口接收外部网络发来的数据帧;步骤22)、判断数据帧接收是否正确,若正确,执行下一步,否则删除所接收到的数据帧;步骤23)、根据数据帧中的目的端口号,判断该数据帧是否发往私网,若目的端口号与保存在路由设备中的处理控制块中的全局唯一端口号相同,则该数据帧发往私网,执行下一步;否则执行步骤27);步骤24)、根据查找到的与目的端口号相同的全局唯一端口号,找到该全局唯一端口号所在处理控制块;步骤25)、利用步骤24)中所查找到的处理控制块中的内部终端设备的IP地址修改数据帧中的目的IP地址,利用处理控制块中的内部网络接口的端口号修改数据帧中的目的端口号,同时还更改数据帧中的校验和;
步骤26)、利用步骤24)中所查找到的处理控制块中内部网络接口的IP地址,调用该接口的驱动程序的发送处理进程转发该数据帧;步骤27)、结束操作。
上述技术方案中,在所述的步骤15)中,在建立新的处理控制块时,将发送数据帧的内部终端的IP地址作为所述的私网中与内部网络接口相连的内部终端设备的IP地址;将与发送数据帧的内部终端相连的内部网络接口的IP地址作为所述的路由设备上某个内部网络接口的IP地址;将与发送数据帧的内部终端相连的内部网络接口的端口号作为所述的内部网络接口的端口号;分配一个只属于所述发送数据帧的内部终端的端口号作为所述的全局唯一的端口号。
上述技术方案中,在所述的步骤17)中,在发送数据帧时,在数据链路层上实现数据帧的转发。
本发明的优点在于1、本发明的网络地址转换方法针对家庭网关的特定应用,原理简单,地址转换效率高。
2、本发明的网络地址转换方法在链路层做数据转发操作,简化了IP层代码的实现复杂度,并提高了数据的转发效率。


图1为本发明的网络地址转换方法中的处理控制块的数据结构图;图2为本发明的网络地址转换方法中数据流在网络协议中所处的位置;图3为本发明的网络地址转换方法中私网IP地址转换到公网IP地址的流程图;图4为本发明的网络地址转换方法中公网IP地址转换到私网IP地址的流程图。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步的说明。
实施例1以一个家庭局域网为例,对本发明的方法进行说明。在一个家庭局域网中,多台带有网络接口的家用电器与一个家庭网关的内部网络接口相连,连接在该家庭网关上的所有家用电器形成家庭局域网。在家庭网关上还有一个外部网络接口,家庭网关通过该外部网络接口连接到互联网上,从而实现家庭局域网与互联网间的连接。假设在本实施例中的家庭局域网中,家用电器包括一个空调、一台洗衣机、一台家用电脑。这些电器都和家庭网关上的内部网络接口连接。
家庭局域网中的家用电器要与互联网中的某台外部主机进行交互需要实现网络地址的转换。本发明构造了一种新的数据结构“处理控制块”(Processing ControlBlock,以下可简称PCB)来实现网络地址的转换。如图1所示,处理控制块可以分成六个子块,其中,①表示路由设备上某个内部网络接口的IP地址;②表示内部网络接口的端口号;③表示内部网络中与①所表示的内部网络接口相连的内部终端设备的IP地址;④表示用于组织数据结构的信息,该项用于将记录项连接成一个链表,以便管理;⑤表示全局唯一的端口号,家庭局域网中的不同电器有不同的端口号⑤,对同一个电器在不同时间有同样的端口号⑤;⑥表示超时信息,用于将长时间没有用到的某个PCB数据结构删除,以便动态维护整个地址转换所需的信息。
下面假设家庭局域网中的一台电脑与外部一台主机进行交互,对本发明的网络地址转换方法作进一步的说明。家庭局域网中的电脑与外部主机交互可以分成两大部分,即内部网络发出对外部网络的访问请求,外部网络回应内部网络的访问请求,下面分别进行说明一、内部网络提出对外部网络的访问请求,如图3所示,包含以下步骤。
步骤11、家庭网关的内部网络接口接收内部网络发来的数据帧;步骤12、判断数据帧接收是否正确,若正确,执行下一步,否则删除所接收到的数据帧;步骤13、解析数据帧的结构,根据IP地址所距数据帧开始位置的偏移量取出目的IP地址,判断该帧数据是不是发往外部网络;如果目的IP地址是本内部网络的某台终端的IP,则数据帧不是发往外部网络的,转步骤18;否则认为是发往外部网络,执行下一步;例如,当家庭网关接收到家庭局域网中的电脑所发送来的数据帧以后,判断数据帧中的目的IP地址,若该目的IP地址是家庭局域网中的洗衣机的IP地址或标识,就把该数据帧发送到洗衣机上,否则通过家庭网关将该数据帧发送到互联网上。
步骤14、将数据帧的源地址与PCB表项的③域作比较,查找PCB表,看是否有符合的PCB表项可用,即检查本次数据转发是否已经建立过连接,如果有匹配的表项可用,则执行步骤16,否则执行下一步;步骤15、建立新的PCB表项,然后执行下一步;例如,假设家庭局域网中的电脑的网络标识为private_ip,该电脑与家庭网关相连接的内部网络接口的网络标识为local_ip,该家庭网关与local_ip,该家庭网关与互联网相连的外部网络接口的IP地址为external_ip,该IP地址是一个合法的IP地址。当电脑通过local_ip将数据发送给家庭网关时分配了一个端口号,记为local_port。假设家庭网关的全局唯一端口号为Ass_port,设定超时时间tmr(在这里超时机制的运用与网络地址转换的机制没有关系,为了突出重点和简单起见,下面将不予考虑),最后给组织数据结构的数据项赋一个有效的指针next,用于将有效的PCB数据结构组织成一个链表。家庭局域网中的电脑第一次向外发送数据时,所建立的PCB数据表如表1所示

表1建立PCB数据表以后,根据数据表中的相关内容,修改数据帧。例如,当家庭局域网中的电脑要将数据发送到互联网上时,将数据帧中的源IP修改为external_ip;将Local_port修改为ass_port,并修改校验和。
步骤16、将数据帧的源IP地址段改为外部网络接口的IP地址,将原端口号改为全局唯一端口号⑤,步骤17、调用外部网络接口的驱动程序的发送处理进程发送数据帧;在转发数据帧时,如图2所示,数据帧在数据链路层上实现转发。数据之所以在链路层转发,是因为本发明的网络地址转换的实现是嵌入在网络接口的硬件驱动程序里的,可以看成是硬件驱动的一部分,而不是通过硬件驱动的接口调用驱动层提供的服务,这也就意味着不需要修改IP层,提高了数据转发的效率。
步骤18、结束本次发送操作。
二、外部网络回应内部网络的访问请求,如图4所示,包含以下步骤。
步骤21、家庭网关的外部网络接口接收外部网络发来的数据帧;步骤22、判断数据帧接收是否正确,若正确,执行下一步,否则删除所接收到的数据帧;步骤23、解析数据帧的结构,根据目的端口号所处位置距数据帧开始位置的偏移量取出目的端口号,根据目的端口号判断该帧数据是不是发往该内部网络的;用目的端口号与PCB表中的表项中的⑤逐个匹配,如果不存在匹配的PCB表项,则数据帧不是发往内部网络,执行步骤27;否则是发往该内部网络,执行下一步;步骤24、根据查找到的与目的端口号相同的全局唯一端口号,找到该全局唯一端口号所在PCB;步骤25、根据PCB表项中的③域更改数据帧中的目的IP地址,利用②域更改数据帧中的目的端口号,并修改相应的校验位;例如,当互联网中的终端向家庭局域网中的电脑发送数据帧时,该数据帧中的目的端口号应为ass_port,通过对PCB表的查找,家庭网关可知该数据帧是发送到它所连接的家庭局域网中的,根据PCB表项中所填写的内容,将数据帧中的目的地址由external_ip修改为private_ip,将数据帧中的目的端口号由ass_port修改为local_port。
步骤26、根据匹配PCB表项的①找出相应的内部网络接口,调用该接口的驱动程序的发送处理进程转发该数据帧;由于在PCB表项中,与电脑相连的内部网络接口的网络标识为local_ip,调用其驱动程序将数据帧发送到电脑上。
步骤27、结束操作。
实施例2在一些私网中,某些内部终端不会主动提出访问网络的请求,例如在“数字家庭”一台具有联网功能的空调并不能访问公网中的终端。但用户需要对其进行远程控制,因此需要对其进行配置操作。
在具体实现时,就是为私网中的内部终端分配一些保留的全局唯一的端口号。例如将65000~65530范围的端口号作为保留端口号,分配给空调等“被动式”的设备使用,由用户通过计算机对家庭网关进行配置,具体配置内容就是为类似的“被动式”设备建立PCB数据结构。例如,某个空调的终端IP地址为IP_aircondition;连接到家庭网关的内部网络接口的地址为IP_local_air;为其分配的全局唯一的端口号为65001;由于这种被动设备不会同时出现多个会话(session),所以内部网络结构的端口号理论上可以不用,但为了保持一致性,也为了计算校验和方便,可以将其设为与全局唯一端口号相同即65001;并且超时计时器tmr可设为无穷大,即此项PCB数据结构不会由于时间过久没有使用而失效。则建立的PCB数据结构如表2所示

表2建立上述处理控制块后,数据转发的操作流程与实施例1中所描述的正常的处理流程相同。在本实施例中不再作进一步的说明。
上述的实施例1和实施例2以家庭局域网为例,对本发明的网络地址转换方法进行说明,但本领域的普通技术人员应当明白,在其他涉及公网IP地址与私网IP地址转换的应用场景中,本发明的网络地址转换方法同样适用。
权利要求
1.一种网络地址转换方法,在网络地址转换时采用处理控制块,其特征在于,所述处理控制块包括6个子块,分别为路由设备上某个内部网络接口的IP地址、内部网络接口的端口号、私网中与内部网络接口相连的内部终端设备的IP地址、用于组织数据结构的信息、全局唯一的端口号以及超时信息;所述的网络地址转换方法用于实现私网IP地址到公网IP地址的转换,具体包含以下步骤步骤11)、路由设备的内部网络接口接收私网发来的数据帧;步骤12)、判断数据帧接收是否正确,若正确,执行下一步,否则删除所接收到的数据帧;步骤13)、根据数据帧的目的IP地址,判断数据帧是否发往外部的公网,若发往外部的公网,则执行下一步,否则,执行步骤18);步骤14)、将数据帧的源地址与路由设备中所保存的关于处理控制块的表进行比较,若源地址与某一处理控制块所记录的内部终端设备的IP地址相同,则本次数据转发已建立过连接,执行步骤16),否则执行下一步;步骤15)、在路由设备所保存的关于处理控制块的表中建立新的处理控制块;步骤16)、将数据帧中的内部网络接口的端口号修改为全局唯一的端口号,将数据帧的源IP地址修改为路由设备的外部网络接口的IP地址,同时修改校验和;步骤17)、调用外部网络接口的驱动程序的发送处理进程发送数据帧;步骤18)、结束本次发送操作。
2.一种网络地址转换方法,在网络地址转换时采用处理控制块,其特征在于,所述处理控制块包括6个子块,分别为路由设备上某个内部网络接口的IP地址、内部网络接口的端口号、私网中与内部网络接口相连的内部终端设备的IP地址、用于组织数据结构的信息、全局唯一的端口号以及超时信息;所述的网络地址转换方法用于实现公网IP地址到私网IP地址的转换,具体包含以下步骤步骤21)、路由设备的外部网络接口接收外部网络发来的数据帧;步骤22)、判断数据帧接收是否正确,若正确,执行下一步,否则删除所接收到的数据帧;步骤23)、根据数据帧中的目的端口号,判断该数据帧是否发往私网,若目的端口号与保存在路由设备中的处理控制块中的全局唯一端口号相同,则该数据帧发往私网,执行下一步;否则执行步骤27);步骤24)、根据查找到的与目的端口号相同的全局唯一端口号,找到该全局唯一端口号所在处理控制块;步骤25)、利用步骤24)中所查找到的处理控制块中的内部终端设备的IP地址修改数据帧中的目的IP地址,利用处理控制块中的内部网络接口的端口号修改数据帧中的目的端口号,同时还更改数据帧中的校验和;步骤26)、利用步骤24)中所查找到的处理控制块中内部网络接口的IP地址,调用该接口的驱动程序的发送处理进程转发该数据帧;步骤27)、结束操作。
3.根据权利要求2所述的网络地址转换方法,其特征在于,所述的网络地址转换方法实现公网IP地址到私网IP地址的转换前,对所述处理控制块作配置操作,为所述处理控制块的6个子块添加相应的信息。
4.一种网络地址转换方法,其特征在于,在网络地址转换时采用处理控制块,所述处理控制块包括6个子块,分别为路由设备上某个内部网络接口的IP地址、内部网络接口的端口号、私网中与内部网络接口相连的内部终端设备的IP地址、用于组织数据结构的信息、全局唯一的端口号以及超时信息;所述网络地址转换方法包括私网IP地址转换到公网IP地址,以及公网IP地址转换到私网IP地址;其中,所述的私网IP地址转换到公网IP地址具体包括以下步骤步骤11)、路由设备的内部网络接口接收私网发来的数据帧;步骤12)、判断数据帧接收是否正确,若正确,执行下一步,否则删除所接收到的数据帧;步骤13)、根据数据帧的目的IP地址,判断数据帧是否发往外部的公网,若发往外部的公网,则执行下一步,否则,执行步骤18);步骤14)、将数据帧的源地址与路由设备中所保存的关于处理控制块的表进行比较,若源地址与某一处理控制块所记录的内部终端设备的IP地址相同,则本次数据转发已建立过连接,执行步骤16),否则执行下一步;步骤15)、在路由设备所保存的关于处理控制块的表中建立新的处理控制块;步骤16)、将数据帧中的内部网络接口的端口号修改为全局唯一的端口号,将数据帧的源IP地址修改为路由设备的外部网络接口的IP地址,同时修改校验和;步骤17)、调用外部网络接口的驱动程序的发送处理进程发送数据帧;步骤18)、结束本次发送操作;其中,所述的公网IP地址转换到私网IP地址具体包含以下步骤步骤21)、路由设备的外部网络接口接收外部网络发来的数据帧;步骤22)、判断数据帧接收是否正确,若正确,执行下一步,否则删除所接收到的数据帧;步骤23)、根据数据帧中的目的端口号,判断该数据帧是否发往私网,若目的端口号与保存在路由设备中的处理控制块中的全局唯一端口号相同,则该数据帧发往私网,执行下一步;否则执行步骤27);步骤24)、根据查找到的与目的端口号相同的全局唯一端口号,找到该全局唯一端口号所在处理控制块;步骤25)、利用步骤24)中所查找到的处理控制块中的内部终端设备的IP地址修改数据帧中的目的IP地址,利用处理控制块中的内部网络接口的端口号修改数据帧中的目的端口号,同时还更改数据帧中的校验和;步骤26)、利用步骤24)中所查找到的处理控制块中内部网络接口的IP地址,调用该接口的驱动程序的发送处理进程转发该数据帧;步骤27)、结束操作。
5.根据权利要求1或4所述的网络地址转换方法,其特征在于,在所述的步骤15)中,在建立新的处理控制块时,将发送数据帧的内部终端的IP地址作为所述的私网中与内部网络接口相连的内部终端设备的IP地址;将与发送数据帧的内部终端相连的内部网络接口的IP地址作为所述的路由设备上某个内部网络接口的IP地址;将与发送数据帧的内部终端相连的内部网络接口的端口号作为所述的内部网络接口的端口号;分配一个只属于所述发送数据帧的内部终端的端口号作为所述的全局唯一的端口号。
6.根据权利要求1或4所述的网络地址转换方法,其特征在于,在所述的步骤17)中,在发送数据帧时,在数据链路层上实现数据帧的转发。
全文摘要
本发明公开了一种网络地址转换方法,实现公网与私网间网络地址的转换,在网络地址转换时采用了处理控制块,网络地址转换方法包括私网IP地址转换到公网IP地址,以及公网IP地址转换到私网IP地址;私网IP地址转换到公网IP地址时,在家庭网关中建立处理控制块,并修改所发送数据帧的端口号和源IP地址后,将数据帧发送到公网;公网IP地址转换到私网IP地址时,为所接收到的数据帧在家庭网关中查找对应的处理控制块,根据处理控制块中的信息修改数据帧的目的IP地址和目的端口号。
文档编号H04L12/66GK1996945SQ200610144248
公开日2007年7月11日 申请日期2006年11月30日 优先权日2006年11月30日
发明者鄢贵海, 付斌章, 韩银和, 张飞飞, 刘彤, 雷韶华, 李晓维 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1