网络地址转换加速的机构与方法

文档序号:6440566阅读:305来源:国知局
专利名称:网络地址转换加速的机构与方法
技术领域
本发明涉及网络地址转换,特别是利用处理信息包的表头以加速网络地址的转换的机构与方法。
利用一台地址分享器(IP sharing device),可使家庭的数台计算机或公司的内部计算机由相同的一个地址与网络联系。其原理为家庭的数台计算机或公司的内部计算机自成一局域网络(Local AreaNetwork,LAN),利用地址分享器与外部的广域网络(Wide AreaNetwork,WAN)联系,参考

图1,网络服务提供者所提供的地址(例如图1的140.112.233.246)指到这台地址分享器,任何传送到网络服务提供者所提供的地址的信息包都将送到地址分享器来判断而传送到局域网络需要此信息包的计算机。局域网络内部的每台计算机都有各自的私人地址(Private IP),例如图1的192.168.1.2到4,这地址由地址分享器来提供,且仅能在此局域网络间使用。当局域网络内任一台计算机发出一信息包到广域网络时,会通过地址分享器再传送到外部。此时地址分享器将会将信息包内记录的虚拟地址等相关来源的数据取代为网络服务提供者所提供的地址(因为局域网络内使用的虚拟地址在广域网络无法判别),例如图1中的第一台计算机的信息包内虚拟地址数据192.168.1.2会变为网络服务提供者所提供的地址140.112.233.246,且地址分享器也接记录此信息包由哪一台计算机所传出,如此传出的信息包外部的广域网络会判断为由地址分享器所拥有的地址所传出的。当外部的广域网络传回了响应的信息包也会传回到地址分享器,而地址分享器依的前的记录,可将信息包适当传回需要此信息包数据的计算机。由如此的转换过程,除可使多台计算机用同一个地址外,而且可以由这转换过程,使外界无法轻易得知内部的数据而加强网络的安全性。目前共定义三个区段为私人地址的区段,分别为10.0.0.0-10.255.255.255、172.16.0.0-172.31.255.255、192.168.0.0-192.168.255.255。
利用地址分享器,可以使多台计算机使用同一个网络服务提供者所提供的地址来与外部网络联系,而目前的地址分享器是利用软件的方式来处理虚拟地址与网络服务提供者所提供的广域网络中的的应对与转换,相对上有时会因转换速度不及造成传输的信息包数据需等待地址分享器的网络地址转换处理的完成,因此本发明将现有技术中的网络地址转换过程以硬件处理,并将网络地址转换方法加以改进,使网络的数据传输不因网络地址转换而造成延迟的问题。
本发明的另一目的为,提供一种网络地址转换加速器,利用新的网络地址转换方法,可以减少网络地址转换表的面积和相对应的码体,并加快处理的速度。
根据以上所述的目的,本发明提供了一种网络地址转换加速器。本发明利用网络地址转换加速器,使转换过程所需处理的数据可以分成数份同时处理,减少处理所需时间,处理效能最佳化,增进处理效能,并采用新的网络地址转换方法,可以减少网络地址转换表的面积和相对应的码体,并加快处理的速度,确保处理所需的时间短于网络数据传输所需的时间,避免网络数据的传输因网络地址转换所造成的延迟。
图中符号说明
10 比较引擎12 取代引擎14 存储器16 语法解析引擎18 地址转换表20-40 网络地址转换加速器的运作步骤42-62 取代引擎的运作步骤方块70 编码器72 计数器处理中心74 登录器76 直接存储器存取器78 有限状态器80 静态存储器控制器82 嵌入式静态存储器84 加总值器90-94 区块102-146联系信号150联系一152联系二154联系三156联系四Rx 接收引擎Tx 传送引擎本发明的一较佳实施例的流程图如图2所示,为由局域网络传至广域网络的流程图。本发明的网络地址转换加速器所包含的组件有比较引擎10、取代引擎12。其操作流程说明如下。
信息包由广域网络传至局域网络或由局域网络传至广域网络时,如步骤20,经过媒体独立接口(media independent interface,MII)传至接收引擎Rx。信息包中含有欲传送的数据的一小段及通讯协议所要求的来源、目的地信息等的讯息,利用语法解析引擎16将信息包数据拆为欲传送的数据及来源、目的地信息等的讯息两部分,其中欲传送的数据经步骤30送至存储器14暂存,来源、目的地信息等的讯息经步骤22送至比较引擎10,比较引擎10再通过步骤24,于地址转换表中查询,查询结果经步骤26传回至比较引擎10。比较引擎10再将查询的结果经步骤28传至语法分析引擎16,使语法分析引擎16确认查询的数据为哪一个信息包的数据,再将数据传送或阻挡。信息包与描述数据(descriptor)由接收引擎Rx经步骤30储存至存储器14。如果经地址转换表18查询后确认需更换,则经步骤32激活取代引擎12,而取代引擎12经步骤34通过系统总线将储存于存储器14中需取代的部分数据的信息包的数据读出,取代后经步骤36通过系统总线写回到存储碞器14。以取代的信息包数据经步骤38送至传送引擎Tx等待送出,再经步骤40通过MII接口将信息包数据送出。上述的步骤中,有些步骤可以同时进行,例如步骤22、24及26可以与步骤30在同一时间内同时处理。
现有技术中的网络地址转换表则包含了三个部分虚拟信息(masquerading information)、私人信息(private information)及公共信息(public information)。由于目前网络传输的数据大部分都以互联网络通讯协议(Internet Protocol,IP)来传输,本发明的地址转换表含有的内容可分为两部分,一部分是虚拟信息,另一部份为私人信息,而去除了公共信息。如此可减少三分的一的转换表大小,因此查询过程所需时间可以减少,提高查询地址转换表的效率。而由于缺乏公共信息部分的数据,当响应的信息包来源并非由原先信息包传送的目的地传回时,例如有人假造一个信息包,其信息包的目的地为我们的真实的网络地址时,则由于缺乏公共信息来比对,硬件会错认而接收。因此,我们将传送到广域网络的信息包的目的地的端口(port)为根据,利用额外的软件来排列虚拟信息的端口,使响应的信息包的来源的端口因不符虚拟信息的排序而送错端点,以免接收不正确的信息包影响网络的安全性等问题。
在网络地址转换加速器,查询网络地址转换表的时间必须短于信息包完整储存好的时间才不会影响信息包的储存过程。也就是说,一个信息包传送网络地址转换加速器,语法解析的过程,包含步骤22、24、26及28必须在储存的步骤30完成前完成。一个最糟糕的信息包的情况为如图3所示,包含表头(header)、16位的数据(data),和除错码(CRC)。文件头部分的数据长度为60字节,而内部(即在总线内部每个周期)每周期传送T位的数据,故需时60/T。而数据与除错码的传输速度规定媒体独立接口为每周期1/2字节的传输速率(媒体独立接口的传输速率为100兆位模式,运算频率为25百万赫兹,所以每周期传输4位,即1/2字节),在此例子(最糟糕的情况)中,数据长度为2字节(16位),除错码的长度为4字节(32位),故共需(2+4)x2,共12个周期。而总线内部与媒体独立接口的频率不同,假设媒体独立接口与总线内部一个周期所需的时间比为F,所以媒体独立接口的12个周期时间和总线内部的12*F的周期时间相等。故传送信息包共需60/T+12*F个总线内部周期时间。
而比较引擎同时间同时必须查询P个端口,即P个周期时间,以及若此时正好比较引擎被要求读写,所以同时必须多花一个周期时间,所以查询网络地址转换表内的个体数据(entry)时间最糟糕的情况需P+1个周期时间。当网络地址转换表内共有E笔的个体数据,就需E*(P+1)个周期时间,而同步处理时有P个端口就需再多需P个周期时间。故查询过程共需E*(P+1)+P。假设必须使用W个比较引擎来同时处理,故比较过程共需[E*(P+1)+P]/W。此时必须满足 /W<60/T+12*F (1)假设E为16,F为75/25=3,P为2,T为4(一次传一个字符,为4字节),因此可得W>0.98,则需要一个比较引擎。若有64笔的个体数据,使用四个比较引擎,则每个比较引擎处理其中的16笔,就可确保查询网络地址转换表的时间短于信息包储存的时间。因此在不同设计环境,可依需求使用更多的比较引擎来同时处理,就可确保查询网络地址转换表的时间短于信息包储存的时间而不会影响信息包的储存过程。
表头可分为四大部分,参考图4,分别是MAC、PPP、IP、UDP。MAC代表以太网络媒体储存控制表头(Ethernet MAC Header)、PPP代表以太网络上的点对点表头及点对点协议(PPPoE Header+PPPProtocol)、IP代表互联网络通讯协议表头(IP Header)及UDP代表使用者数据电报协议表头(UDP header)。在步骤40中,可以调整传送引擎Tx而有删除与增加的功能,使信息包在以太网络(etherent)与点对点(point-to-point,PPP)区域间传送时,可删除或增加以太网络上的点对点表头(PPPoE Header)。在传送了最初的12字节后,即来源媒体储存控制地址及目的地媒体储存控制地址(source MACaddress and destination MAC address)后,改变以太网络类型的部分(ethernet type field)及增加或移除7(点对点8位,PPP8)或8(点对点16位,PPP16)字节数据。
对于不连续的信息包(fragment packet),信息包的表头没有显示传输控制协议/使用者数据电报协议表头(TCP/UDP)的表头,所以可以传送一个信号通知网络地址转换加速器的个体比较器(entrycomparator)不需比对端口的数值。
参考图5,信息包由局域网络传至广域网络时,取代引擎需将来源的地址和端口的数据由私人地址和端口的数据变为虚拟地址和端口的数据,使广域网络可判断此信息包的来源,或者由广域网络传至局域网络时,取代引擎需将目的地的地址和端口的数据由虚拟地址和端口的数据变为私人地址和端口的数据,使局域网络正确传给内部的计算机。取代引擎的运作步骤34与36的详细运作流程请参考图6,方块42代表取代引擎开始运作,这过程需两个周期时间,即可取得描述符号(descriptor)的地址及起始位(start bit)的信息。而方块44代表读取信息包数据的地址(packet data address)的信息,需时一个周期时间。接下来方块46依方块42中得知的读取描述符号的地址而读取读取描述符号的信息,包括(1)互联网络通讯协议表头(IPHeader)的长度,大小为4位、(2)传输控制协议/使用者数据电报协议表头(TCP/UDP),大小为1位、(3)命中个体数目(hit entrynumber),可以以5位来描述32笔个体、(4)比对的方向(directionof comparator),大小为位及(5)传输控制协议的架构(TCPconfiguration),大小为位,这过程需要一个周期时间。方块48为由静态随机存储器(SRAM)来抓取个体的数据(entry information),所需的时间与静态随机存储器有关,一般需2到4个周期时间。方块50是读取信息包信息内的互联网络通讯协议的加总值(IP checksum),需一个周期的时间。方块52为重新计算互联网络通讯协议的加总值,需两个周期的时间。方块54为确认使用者数据电报协议的加总值加总值是否为0,若是则略过传输控制协议/使用者数据电报协议的计算(方块58),直接进入方块60,若非则进行方块58。方块56是读取信息包信息内的互联网络通讯协议的加总值(IP checksum),需一个周期的时间。方块58为为重新计算传输控制协议/使用者数据电报协议的加总值,需三个周期的时间。方块60为写回数据的过程,包含(1)写入媒体存取控制地址(MAC address)、(2)写入媒体存取控制端口的数值地址(MAC port number address)、(3)写入新的地址(IP address)及(4)写入新的地址的端口(port number address),需六个周期的时间。方块62为写回新的互联网络通讯协议的加总值及新的传输控制协议/使用者数据电报协议的加总值。如此,即完成了信息包的网络地址转换的动作。
图7为网络地址转换加速器各组件间的硬件架构示意图。包含编码器(NAT EMAC Decoder)70、计数器处理中心(NAT Countermanager)72、登录器(NAT registers)74、直接存储器存取器(DirectMemory Access,DMA)76、有限状态器(Finite State Machine,FSM)78、静态存储器控制器(NAT SRAM Controller)80、以及加总值器(NAT Checksum)84。而其中AHB(advanced high-performance bus)代表高效能总线,网络地址转换加速器通过总线与计算机等取得联系。例如当信号一的计数需求102与信号二的计数需求104通过编码器70,通知计数器处理中心72而增加计数需求(counter request)及计数的数值(counter value)。而计数器处理中心72向登录器74登录,并接受登录器74的清除计数118的要求。区块90相当于比较引擎的相关运作的部分,当信号一的读取需求106与信号二的读取需求108进来时,通知静态存储器控制器80做读取需求114,而静态存储器控制器80而将做读取响应116并向嵌入式静态存储器(EmbeddedSRAM)82读取数据126。而静态存储器控制器80也可接收计数器处理中心72的登录读写需求122而执行登录的读与写的动作。因此嵌入式静态存储器82利用登录读写需求122来建立网络地址转换表,而以读取需求114、读取响应116来执行比较的动作。区块92则相当于取代引擎的相关运作部分,有限状态器78向静态存储器控制器80做网络地址转换的需求128并接收网络地址转换的响应130,也对加总值器84要求加总值的计算132,而加总值器84也响应加总值的计算的响应134给有限状态器78。而有限状态器78将对计数器处理中心72做减少计数的要求124。而区块94为相当于存储器的相关运作部分,登录器74对有限状态器78做登录设定的指令136,而接收有限状态器78的设定中断状态的登录138,并通过总线响应信号140与外在系统(个人计算机等)取得联系,而直接存储器存取器76由有限状态器78接收驱动总线的控制信号142,响应信号146给有限状态器78,且通过总线响应信号144与外在系统取得联系。
因此,网络地址转换加速器通过总线与外在系统的联系可分为四个部分,参考图8,包含联系一150、联系二152、联系三154以及联系四156。联系一150包含外在系统对网络地址转换加速器的网络地址转换表的计数增加位、网络地址转换表的计数增加个体位等,以及网络地址转换加速器响应网络地址转换表可计数数值增加状态等。联系二152为比较引擎的部分,由外在系统传给网络地址转换加速器包含网络地址转换表的读取要求、媒体储存控制方向位、网络地址转换表查询数据、不连续位、网络地址转换表查询确认信号等,而网络地址转换加速器响应命中的网络地址转换表的地址、命中的网络地址转换表的端口、路地址转换表的反向位等。联系三154为取代引擎的部分,由外在系统传给网络地址转换加速器包含信息包取代要求、信息包取代个体、信息包取代认可等,而网络地址转换加速器响应信息包取代中断(interrupt)、信息包取代差错中断(error interrupt)。
网络地址转换加速器除上述的组件外,亦可以增加一组件来处理网络地址转换以外的动作,例如防火墙(Fireware)、虚拟服务器(Virtual Server)等。防火墙基本上是为了预防别人来存取局域网络,进而管制网络上数据的进出。防火墙为进入局域网络的唯一信道,因此任何进出的数据都要经过防火墙,再经由防火墙来决定是否能够通行,因此可以增加安全性。而虚拟服务器为提供架设服务器功能,可指定内部局域网络的特定主机为Web、Mail、FTP.....等类型的服务器。通过连接端口(port)即可与局域网络及广域网络进行数据的传送或接收。
综合以上所述,本发明揭露了一种网络地址转换加速器。根据本发明的网络地址转换加速器,其网络地址转换表的数据只包含虚拟信息及私人信息,较一般网络地址转换表少了公共信息,如此可以减少网络地址转换表的面积和相对应的码体,并加快处理的速度。而且可使网络地址的转换由硬件来处理,可使处理速率较现有技术中使用软件处理为快,而且可将信息包分成数份给多个比较引擎处理,如此可确保网络地址转换所需的时间短于网络数据传输所需的时间,避免网络数据的传输因网络地址转换所造成的延迟。
以上所述仅为本发明的较佳实施例,并非用以限定本发明的保护范围;凡其它为脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在权利要求书的范围内。
权利要求
1.一种网络地址转换加速器,其特征在于,包含一第一处理器,用以处理网络地址转换,使一信息包的一表头的地址与端口数据与一网络地址转换表进行比对以得到相对应的一地址与端口数据,在将该信息包的该表头的地址与端口数据取代为相对应的该地址与端口数据;一第二处理器,处理非网络地址转换的复数个动作;复数个端口接口,用以连接该网络地址转换加速器至一局域网络及一广域网络,以传送或接收该网络地址转换加速器与该局域网络及该广域网络的传送数据。
2.如权利要求1所述的网络地址转换加速器,其特征在于,上述的第一处理器包含至少一比较引擎,同时将一信息包的一表头的地址与端口数据与一网络地址转换表进行比对以得到相对应的一地址与端口数据;以及一取代引擎,依该相对应的地址与端口数据将该信息包的该表头的数据进行取代动作。
3.如权利要求2所述的网络地址转换加速器,其特征在于,上述的网络地址转换表包含虚拟信息(masquerading information)及私人信息(private information)。
4.如权利要求3所述的网络地址转换加速器,其特征在于,上述的网络地址转换表的私人信息的端口的顺序依传送至广域网络的一目的地的端口来排序。
5.如权利要求2所述的网络地址转换加速器,其特征在于,上述的网络地址转换表的复数个个体(entries)数据分割成与该至少一比较引擎数目相等的数量。
6.如权利要求5所述的网络地址转换加速器,其特征在于,上述的至少一比较引擎一对一对应于该分割的网络地址转换表的复数个个体,并同时进行查询。
7.如权利要求6所述的网络地址转换加速器,其特征在于,上述的查询的时间少于一含数据最少一信息包完整储存于一存储器的时间;其中该最糟糕情况为该信息包包含一60字节的表头、一二字节的数据及一四字节的除错码。
8.如权利要求2所述的网络地址转换加速器,其特征在于,更包含至少一传送引擎,该传送引擎有删除与增加的功能,使该信息包在一以太网络(etherent)与一点对点(point-to-point,PPP)区域间传送时,可删除或增加该信息包的以太网络上的点对点表头(PPPoEHeader)。
9.如权利要求2所述的网络地址转换加速器,其特征在于,上述的至少一比较引擎,在该信息包为一不连续信息包(fragmentpacket)时,不去比较该信息包的端口的数值。
10.一种网络地址转换加速的方法,其特征在于,包含用一比较法,将一信息包的一表头的地址与端口数据与一网络地址转换表进行比对以得到相对应的一地址与端口数据;以及用一取代法,依该相对应的地址与端口数据将该信息包的该表头的数据进行取代动作。
全文摘要
使用软件处理网络地址转换经常会因处理速率不及网络的传输而使数据的储存速率受到影响,本发明利用硬件来处理网络地址转换,并可根据环境设计多个比较引擎加快网络地址转换,使即使在最糟糕的情况,信息包的网络地址转换的时间仍快于信息包储存至存储器所需的时间,故可确保网络地址转换的动作不影响网络的数据传输。
文档编号G06F12/10GK1431600SQ0310359
公开日2003年7月23日 申请日期2003年1月29日 优先权日2003年1月29日
发明者江明融, 庄智傑, 陈俊裕, 李俊男, 张恒恺 申请人:华邦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1