用于透明地交换数据包的方法
本发明涉及通过网络节点单元与一个网络外部设备按需要透明地交换布置在一个面向分组网络中的网络单元的数据的方法和装置。
面向分组的网络中的现代化的通信协议、譬如因特网协议IP为网络单元的编址和数据包在起点和目的地之间的路径确定(在专业领域中也称为“路由”)使用一种目标地址。对于因特网协议IP来说,这个地址由一个IP地址和一个UPD或TCP端口号码(用户数据报协议或传输控制协议)构成。下面,联系IP地址和所属的端口号码简要地谈一下网络单元的地址。这样的编址使得全球通信和可达性变得容易,但是却需要大量的全球范围内唯一的地址。
由于这个原因,通常采用一些方法来减少世界范围的通信所需的全球地址的数量。一种可能性是分配专用的地址、也即本地网(也称为LAN(局域网))中只在本地唯一的并因此只在本地有效的地址。
对于与处于本地网之外的通信伙伴的通信来说,必须将本地地址转换成其它的本地的或全球的地址。这种方法在专业领域中称为地址转换或也称为NAT(网络地址翻译)或NPAT(网络和端口地址翻译)。两种转换方法譬如都在IETF(因特网工程任务组)的文献RFC1631(Request for Comment请求注释)中作出定义。
为了确定数据包的路径(路由),在使用地址转换方法的情况下,将本地网的地址转换成公开注册的全球地址。
当面向分组的网络中的所有网络单元的地址被转换到唯一的一个地址的时候,存在地址转换的特殊形式。由此,可通过以下方式隐藏一个或多个网络单元的地址(在专业领域中因此也称为“伪装”),即一个面向分组的网络向外譬如只由唯一的一个地址来代表。
对于LAN内部的数据通信来说,只在LAN内彼此进行通信的网络单元、譬如像工作站计算机那样的组网的计算机系统不需要分配全球地址。通过保留的网络单元(以下称为网络节点设备)根据分配表为与在LAN以外、特别是在因特网中建立本地化的端点的网络单元进行的通信分配一个全球地址。这种网络节点设备的功能大多由为此所设的路由器或也为了网络管理而采用的计算机系统(也称为代理服务器或网关)承担。下面,所有的这种网络节点设备都简化地称为“路由器”。
这种路由器按照待连接的网络在拓扑结构、通信协议、接入方法方面的特性配备有专用的功能。下面研究将LAN与一个数据通信业务提供者、即一个所谓的供应商相连接的路由器。该供应商一般在通信连接的持续时间内给所连接的网络节点设备分配一个全球地址,通过该全球地址借助所提到的地址转换来处理LAN中的网络单元的连接愿望。
供应商在给定的地方也称为“外部设备”,以便强调其在拓扑结构方面是作为与路由器进行点对点通信的端点。概念“数据通信”可理解为面向分组的数据的交换,这些面向分组的数据譬如服务于计算机支持的数据交换或者也服务于通信设备的数据交换。
可以利用各式各样的接入可能性连接到供应商的网络上。出于一目了然的原因,下面示范性地说明基于点对点通信协议的接入(也简称为PPP)。PPP能够通过同步和异步的拨号线路或专用线路进行数据交换,并且在存在透明的具有全双工能力的线路的前提下不依赖于分别使用的物理接口而进行工作。
在PPP协议的扩展方面,IETF在文献RFC2516中描述了一种协议,利用该协议使得通过传输媒体、特别是所谓的以太网的、具有多个通信伙伴的接入的PPP会议成为可能。在此,将PPP数据包封装在以太网帧中。这个协议在下面被称为概念PPPoE(基于以太网的PPP)。利用扩展的面向分组的协议PPPoE能够实现通过此外无连接的媒体、即以太网进行逻辑的点对点连接。
按照IP(因特网协议)的数据包通过以下方式被转换成按照PPPoE协议的数据包,即给所谓的IP数据报(原IP数据包)配备一个PPP报头项(“报头”)以及一个PPPoE报头。最后,该数据包被封装在一个以太网帧中,以便通过LAN进行传输。
在使用PPPoE协议的情况下的数据连接的一个应用例子譬如是一个由多个工作站计算机和一个路由器构成的LAN,其中工作站计算机与路由器的数据包交换不仅可按照PPPoE协议实现而且可在使用因特网协议的情况下实现。上述两个可能的协议的数据作为数据包通过以太网进行传送。为此,数据被封装在所谓的以太网帧中,路由器将该以太网帧转送给一个与其连接的调制/解调设备(也缩写为调制解调器(Modem))。
该调制解调器将这些数据包调制成一个数据流,并且譬如通过固定的通信连接将这个数据流转送给供应商。在反方向上,该供应商以类似的方式将该数据流解调成数据包。
上述PPPoE通信连接特别是在xDSL数据连接(数字用户线,其中“x”代表不同的变型方案、例如不对称DSL、即ADSL或对称的比特率DSL、即SDSL)的情况下使用。
通过文章开头所提到的地址转换,即使在所提到的使用情况下也产生以下优点,即具有不同的仅在LAN内部有效的IP地址的多个工作站计算机通过路由器的唯一的IP地址参与数据通信。这个IP地址通常由供应商分配以用于相应的数据通信会议。
通常,地址转换由路由器在IP层内进行,该IP层从最广泛的意义上来说被定位到ISO/OSI层模型(国际标准化组织、开放式系统互连)的第三层上。通过这种地址转换产生以下问题,即其阻止无限制地使用不同的应用,下面简要地说一下其中的一些问题。
在上级协议层中进行应用、譬如“active ftp”或“Netmeeting”所需的或由规范所要求的IP和/或端口地址的交换时产生一些问题。因为传统的路由器不处理这些协议层,所以在地址分配唯一的情况下产生冲突。
当在LAN内应建立到一个网络单元、也即到其所谓的逻辑端口的入站连接时,该通信连接不是从同一个端口上的正在进行的连接建立出发,则产生另一个问题。在这种情况下,路由器不能从接收到的端口地址中识别出LAN内待响应的网络单元。因此,定位在LAN内的网络单元的服务器工作不能没有困难地实现。
当路由器在朝LAN方向上不提供PPPoE协议时,不能使用在一个LAN网络单元内的PPPoE驱动器上建立的某个应用。
本发明的任务是提供一种方法和一种装置,在使用该方法和装置时避免出现上述问题。
该任务的解决方案在其方法方面通过具有权利要求1所述的特征的方法来实现,并且在其装置方面通过具有权利要求11所述的特征的装置来实现。
由多个网络单元组成的面向分组的网络通过网络节点设备与外部设备、譬如所谓的因特网服务提供商(ISP)连接。在第一网络单元和外部设备之间的连接建立过程中(连接建立一般都随着向外部设备传递用户名以及必要时传递密码而出现),第一网络单元或网络节点单元从外部设备获得将为该连接而使用的地址。网络单元的地址尤其可理解为因特网协议地址(IP地址)。第一网络单元的以前分配的、只在面向分组的网络内有效的地址(本地地址)在连接建立过程中譬如用从外部设备获得的地址来改写。
按照本发明,检验在外部设备和网络单元之间交换的数据包的消息报头项。如果在一个数据包的表征项中检测到扩展的面向分组的协议,则在所属的网络单元和外部设备之间建立暂时透明的连接,其中代替在面向分组的网络中分配给该网络单元的地址而使用由外部设备转送给网络节点设备的地址。作为扩展的面向分组的协议,譬如使用按照PPPoE(基于以太网的点对点协议)的通信协议。
本发明方法的一个主要优点在于,自动地实现按需要“透明”的连接。由此,譬如在使用所谓的“应用层网关”(已在文献RFC3027和RFC3022中说明)的情况下,迄今所使用的方法、譬如在网络节点设备中进行的费力的通信协议内较高协议层的协议分析都取消了。
在连接透明时,为了在参与的网络单元和外部设备之间进行通信,使用PPPoE协议,其中在网络节点设备中不发生地址转换。取而代之,网络单元使用在连接建立时从外部设备获得的地址,并且通过网络节点设备不加改变地转送到外部设备上。
有利地,可通过面向分组的网络内的每个网络单元来执行透明连接的建立。于是,网络节点设备不必像迄今为止通常那样将入站连接的数据包根据“新”的端口地址引向固定配置的计算机系统。这种在现有技术中已知的配置也称为“Exposed Machines”。
因此有利地,尽管使用一个路由确定的网络节点设备、特别是路由器,但可以在网络单元中使用PPPoE驱动器。由此可以有利地使用外部设备、特别是所谓的ISP(因特网服务提供商)的业务,这些业务取决于用户在网络单元上的注册。
有利地,在不采取其他措施的情况下可实现通过透明连接与外部设备连接的网络单元作为服务器的工作。
有利地,除大多由外部设备确定的透明连接的最大数目以外,此外可以管理其余网络单元的“传统”的、即利用地址转换和路由控制实现的连接。
本发明的有利的改进方案在从属权利要求中给出。
有利地,在为一个网络单元建立透明连接之前,检验是否对于至少一个其他的网络单元来说已经有一个这种透明连接。这种透明连接和/或“传统”的连接的最大数目(参见上面)譬如取决于外部设备的规定值。
有利地,只要检测到连接拆除请求(在专业领域内也称为PPPoE激活发现结束(Active Discovery Terminate)过程),就导致透明连接的结束。这种连接拆除请求譬如通过在表征项中具有保留结构(也称为连接控制单元)的数据包进行传递。
有利地,如果超过了可预定义的时间周期(在专业领域内也称为“超时”)时,则也触发这种连接拆除请求,在该时间周期内没有按照扩展的面向分组的协议进行数据包的交换。这种措施在由于传输错误而造成传输连接拆除请求的连接控制单元未到达的情况下避免占用透明连接。
本发明的一个实施例将在下面结合附图进行详细说明。
其中:
图1示出了用于示意性地说明一个面向分组的网络和一个外部设备之间的数据通信连接的结构图,以及
图2示出了用于示意性地说明本发明的网络节点设备的结构图。
在图1中示出了具有第一网络单元PC1、第二网络单元PC2以及第三网络单元PC3的面向分组的网络LAN。
网络单元PC1、PC2、PC3相互连接以及通过一个公共传输媒体、譬如以太网连接到一个网络节点设备ROU上。网络节点设备ROU拥有用于连接到面向分组的网络LAN上的第一网络接口IF1以及拥有连接网络节点设备ROU与调制/解调设备MOD(也称为调制解调器)的输入端的第二网络接口IF2。在第二网络接口IF2和调制解调器MOD的输入端之间同样象在面向分组的网络LAN中一样交换基于面向分组的数据。
在一个替代的实施方案中,调制/解调功能被集成到网络节点设备ROU中,因此调制解调器MOD的使用成为多余。
网络节点设备ROU譬如作为路由器或替代地也作为网关或代理服务器实现。
调制解调器MOD与一个外部设备H连接。调制解调器MOD到外部设备H的连接譬如通过固定分配的电信线路实现。
另外,本发明方法不限于物理传输方法。替代固定设置的电信线路,譬如也可在使用ATM(异步传输模式)或无线电路径技术的情况下实现实施方案。
给面向分组的网络LAN内的每个相应的网络单元PC1、PC2、PC3分配一个本地的、也即只在面向分组的网络LAN内唯一的相应地址A1、A2、A3。譬如以动态方式通过(未示出的)主计算机或服务器或者以固定设置方式在一个分配给相应的网络单元PC1、PC2、PC3(未示出)的网卡上实现分配相应的地址A1、A2、A3给相应的网络单元PC1、PC2、PC3。为了动态地分配相应的地址A1、A2、A3,譬如使用协议DHCP(动态主机配置协议)。
一般来说,在连接建立的范围内又由外部设备H给网络节点设备ROU分配一个(未示出的)地址,该地址在外部设备H所连接的(未示出的)网络中是唯一的或有效的。
网络单元PC1、PC2、PC3彼此的通信以及与网络节点设备ROU的通信在面向分组的网络LAN内通过数据包、譬如以所谓的以太网帧的形式来实现。这种以太网帧由一个以太网消息报头项(也称“报头”)以及一个校验和字段组成。这种数据包的以太网消息报头项以及校验和字段包括一个数据报,下面将对该数据报做详细说明。
在按照因特网协议(IP)进行通信的情况下,所属的以太网帧包括一个由IP消息报头项来表征的IP数据报。在按照PPPoE协议(基于以太网的点对点协议)进行通信的情况下,封装在以太网帧内的数据报包括一个由PPPoE消息报头项来表征的PPPoE数据报。PPPoE数据报在其本身包括一个按照PPP协议(点对点协议)具有相应的PPP消息报头项的数据报。此外,PPPoE数据报还包括一个有用数据项(也称为“用户数据”),该有用数据项又包括一个具有上述结构的IP数据报。
下面从外部设备H通过调制解调器MOD以及通过网络节点设备ROU与面向分组的网络LAN的网络单元PC1、PC2、PC3的通信出发。在此,网络单元PC1、PC2、PC3在第一步骤中按照因特网协议与交换的网络节点设备ROU进行通信。为了对相应的网络设备PC1、PC2、PC3进行编址,由网络节点设备ROU执行在由外部设备H分配的地址(特别是以因特网协议地址、即IP地址的形式)和相应的只在面向分组的网络LAN中有效的地址A1、A2、A3之间的地址转换(也称网络地址翻译NAT)。
在第二步骤中,出发点是,第一网络单元PC1改变通信协议,也即代替因特网协议现在启动PPPoE通信连接。网络节点设备ROU以还需说明的方式检测这种改变,并且随后建立一个透明连接TC(在附图中用虚线象征性地表示)。在图中所示出的象征透明连接TC的虚线只是出于一目了然的原因才在网络节点设备ROU旁延伸。事实上,这条透明连接TC是在网络节点设备ROU的主动参与下实现的。
为了建立透明连接TC,考虑或更改唯一识别第一网络单元PC1或网络节点设备ROU的相应的(未示出的)网络接口的地址。
这种唯一识别相应的网络接口的地址作为MAC地址(媒体访问控制)而已知。MAC地址是一种用于在世界范围内唯一地识别一个节点(譬如一个网络接口的硬件地址)的不变的硬件地址。
网络节点设备ROU在连接网络节点设备与面向分组的网络LAN的第一网络接口IF1上从第一网络单元PC1接收数据包。由第一网络单元PC1发送的数据包的表征的消息报头项具有作为源MAC地址的第一网络单元PC1的MAC地址,以及作为目标MAC地址的网络节点设备ROU的第一网络接口IF1的MAC地址。网络节点设备ROU将这些数据包在内部转交给连接网络节点设备ROU与外部设备H的第二网络接口IF2,其中事先就进行源或目标MAC地址的改变。外部设备H的将作为目标使用的MAC地址在第一网络单元PC1和外部设备H之间的连接建立期间已被发送到网络节点设备ROU上,其中进行传递的网络节点设备ROU存储这个MAC地址。网络节点设备ROU将第二网络接口IF2的MAC地址设置为源MAC地址,并且将以前存储的外部设备H的MAC地址设置为目标MAC地址。对于由外部设备H发送的数据包来说,将相应的MAC地址相应地转换成相反意义的地址。
在建立透明连接TC的过程中,由外部设备H给第一网络单元PC1分配一个新地址A1(IP地址),用该新地址A1改写以前有效的地址A1。
此外,为控制透明连接TC,在外部设备H和第一网络节点设备PC1之间商定一个所谓的“会话ID”,该所谓的“会话ID”明确地标明透明连接TC的数据连接层(“会话”)。
为了在第一网络单元PC1和外部设备H之间基于透明连接TC进行通信,使用PPPoE协议,其中在网络节点设备ROU侧不进行地址转换。取而代之,在建立连接(参见上面)时,与透明连接TC有关的网络单元PC1的地址A1通过网络节点设备ROU不加改变地经调制解调器MOD转交给外部设备H。
如果譬如由第一网络单元PC1促使透明连接的建立,则通过第一网络单元PC1中的(未示出的)PPPoE驱动器实现数据交换。透明连接TC双向地实现,也即外部设备H的反向包(Rueckpaket)也通过网络节点设备ROU在不进行地址转换或不进行协议转换的情况下转接到第一网络单元PC1。
网络节点设备ROU根据PPPoE消息报头项检测现有的透明连接TC,并且必要时根据譬如连接拆除请求的保留的协议单元(也称为连接控制单元)促使拆除透明连接TC。除通过连接控制单元所进行的确定的连接拆除请求之外,只要在预定义的时期内没有按照PPPoE协议进行数据包的交换,就也由网络节点设备ROU触发一个事件(“超时”)。网络节点设备ROU以这个事件结束基于透明连接TC的数据连接(“会话”)。随着第一网络单元与外部设备H的透明连接TC的结束,对于网络单元PC1、PC2、PC3来说都可建立与外部设备H的(未示出的)透明连接。
下面将在另一个实施方案中阐述网络单元PC1、PC2、PC3与外部设备H之间的通信连接的管理。外部设备H、譬如因特网供应商通常只支持有限数量的同时的连接,在现有情况下是来自面向分组的网络LAN的连接。
如果供应商譬如只支持PPPoE连接,则必要时可按照PPPoE协议中断现有的其他透明通信连接,以便在透明连接PC的持续时间内给有关的网络单元PC1提供专有的通信接入。
对于以下情况,即网络单元PC1想建立通向外部设备H的透明连接TC,而第二网络单元PC2已经在维持这种(未示出的)透明连接,则可拒绝借助第一网络单元的透明连接TC的专有接入。这是按照所谓的“先到先服务”原则的(譬如在网络节点设备ROU中实现的)优先规则的一个例子。如果外部设备H能够实现与面向分组的网络LAN的较大数量的连接,那么必要时可在网络节点设备ROU中执行用于实现优先规则的广泛的策略。
除透明连接TC外,此外可以基于网络单元PC1、PC2、PC3的“传统的”(也即利用地址转换和路由控制实现的)连接通过网络节点设备ROU与外部设备H进行通信。
下面在进一步参考图1的功能单元的情况下详细说明网络节点设备ROU的示意结构。
在图2中示出了具有第一网络接口IF1和第二网络接口IF2的网络节点单元ROU。第一网络接口IF1(与图1相比)与面向分组的网络LAN的网络单元PC1、PC2、PC3连接,第二网络接口IF2则与调制/解调设备MOD连接。另外,这两个为双向通信所设置的接口IF1、IF2尽可能相同地来构造。
网络节点设备ROU的第一和第二网络接口IF1、IF2与相应的接口转接单元LI1、LI2连接。接口转接单元LI1、LI2用于通过相应的网络接口IF1、IF2交换网络节点设备ROU的数据包,以及用于转接到下面阐述的网络节点设备ROU的其他内部单元。
第一接口转接单元LI1与监控单元MON连接。监控单元MON检验所交换的数据包的消息报头项。此外,监控单元MON还控制第一和第二桥接单元BDP1、BDP2,该桥接单元BDP1、BDP2控制在网络节点设备ROU内的数据包的路由。
如果监控单元MON检测到作为具有PPPoE消息报头项的连接控制单元的、通过接口转接单元LI1传输的数据包,则这个数据包由监控单元MON传输给第一桥接单元BDP1并通过路径SC传输到第二桥接单元BDP2,该数据包从该第二桥接单元BDP2被转交给接口转接单元LI2,并且最后被转交给网络接口IF2。在监控单元MON中或在两个桥接单元BDP1、BDP2的一个中进行上述的数据包中的MAC地址的更改。对此作为替代方案,在一个(未示出的)协议单元内进行这种交换。
如果与此相反监控单元MON没有检测到PPPoE消息报头项,则在纳入下面将进一步说明的其他功能单元的情况下还将该数据包转换成按照PPPoE协议的数据包。
为此,有关的数据包又被引导到第一桥接单元BDP1,从该处有关的数据包这次(在附图中用一个垂直的双箭头示出)被转送到路由单元IPR。在此,涉及基于纯因特网协议(“纯IP”)的通信的没有PPPoE数据报的数据包,对该数据包需进行IP地址的地址转换以及必要时进行TCP端口号码(传输控制协议)的地址转换。只要在前字段(Vorfeld)中已建立通向外部设备H的连接,就在所述的路由单元IPR中进行这种地址转换。在这种地址转换时,通过以下方式处理包含在以太网数据包中的IP数据报的因特网协议消息报头项,即相应地改变IP消息报头项的数据字段中的IP地址项以及必要时TCP端口号码项。
接着,数据包被转交给一个PPP转换单元PPP,在该单元中为IP数据报配备一个PPP数据报头项。
接着,数据包被转交给一个PPPoE转换单元,在该单元中利用PPPoE消息报头项进行类似的处理步骤。
最后,数据包被转交给第二桥接单元BDP2,受监控单元MON控制的第二桥接单元BDP2促使到第二接口转接单元LI2上的转交。最后再由这个第二接口转接单元LI2将数据包转交到第二网络接口IF2。
由于存在双向通信,所以数据包的路由也在反方向上进行,该路由类似于前面的描述而实现。