CN101411160A - 在不同的互联网通信栈实例之间对数据包路由的方法和设备 - Google Patents
在不同的互联网通信栈实例之间对数据包路由的方法和设备 Download PDFInfo
- Publication number
- CN101411160A CN101411160A CN200780010969.5A CN200780010969A CN101411160A CN 101411160 A CN101411160 A CN 101411160A CN 200780010969 A CN200780010969 A CN 200780010969A CN 101411160 A CN101411160 A CN 101411160A
- Authority
- CN
- China
- Prior art keywords
- stack
- internet
- packet
- internet communications
- communications stack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 121
- 238000000034 method Methods 0.000 title claims description 25
- 230000006870 function Effects 0.000 claims abstract description 46
- 238000005538 encapsulation Methods 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims 2
- 238000004364 calculation method Methods 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 abstract description 6
- 238000003860 storage Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000006872 improvement Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000009987 spinning Methods 0.000 description 2
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 235000019013 Viburnum opulus Nutrition 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/325—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/164—Implementing security features at a particular protocol layer at the network layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种计算机系统包含多个互联网通信栈实例,其可以共享或可以不共享共同硬件网络适配器。使用互联网协议(IP)寻址在计算机系统中内部的不同互联网通信栈实例之间对包路由。使用IP转发,将到达一个栈并且具有与另一个栈关联的目的IP地址的包转发至其他栈。优选地,包的栈间路由可使用全局定义的互联网IP地址或局部内联网(封装的)IP地址,并且可采用输入或输出包。示例性实施例是具有全范围的TCP/IP功能的工作栈,以及具有有限范围的TCP/IP功能的服务栈。可使用栈间接口来获得改进功能的操作,以用于来到的并且由绑定至服务栈的应用发送的包。
Description
技术领域
本发明总的涉及数字数据处理,更具体地,涉及在计算机系统中对互联网通信栈(例如TCP/IP栈)的使用。
背景技术
在二十世纪后期,开始出现一种已知为信息革命的现象。尽管信息革命是一种历史发展,其范围比任意一个事件或机器更广泛,但是没有一个设备比数字电子计算机更能表现信息革命了。计算机系统的发展无疑是一个革命。每年,计算机系统增长越来越快,存储越来越多的数据,以及向它们的用户提供越来越多应用。与此同时,计算资源的成本一直在降低,从而在几年前因为太昂贵而不能够收集、存储和处理的信息如今可经济地通过计算机进行管理。由于产品设计、制造工艺、资源调度、管理工作以及许多其它因素变得更加高效,所以信息处理的更低成本使得生产率以滚雪球效应逐渐增加。
计算的更低成本以及数字设备的通用版本使得这些设备中存储的信息量剧增。使用数字形式存储的这些信息,自然地,期望获得从计算机系统对信息的更宽的访问。信息量使得任一个设备的存储能力变得相形见绌。为了改善信息访问,开发出了允许计算设备与另一个设备通信和交换信息的各种技术。或许,这种分布式计算机的最突出实例是万维网(通常,简称为“web”),即在使用互联网的世界范围内可用的资源集合。从学童到老年人都学习使用web,并且在它们家或工作单位可以方便地找到几乎无止境的各种信息。商业、政府、组织甚至普通个人使得信息在web上可用,以至于达到这样的程度,即现在期望任意有价值的相关信息可在web上的某处得到。
在多个数字系统中为web以及为电子邮件和其它形式的通信和分布式处理提供支持的互联网是通过多个链路连接的数字设备(节点)的异构网络,从而在网络的任意两个节点之间,典型地存在多个路径,从而给互联网带来了一定程度的冗余。在包中发送数据,在多个连续的节点之间对每个包路由,直到它到达它的目的地。为了支持在与互联网耦合的任意两个随机节点之间的通信,使用全局命名规则对每个节点分配唯一名称。这种命名规则已知为域名系统或DNS。仅具有目标节点的全局DNS名称的与互联网连接的源节点可向目标发送数据包。各个DNS服务器和其它设备将全局DNS名称转换成互联网协议(IP)地址,使得互联网上的各个路由器和其它设备正确确定对于数据包到达其最终目的节点的路径。
在对包路由的基本层,互联网能够从一个节点向另一个节点传输任意随机数据,因此可看作通信介质。然而,互联网的用途取决于在源节点和目的节点处理数据交换的应用。因此,web浏览器和其它web应用的出现使得基础信息传输技术在独立、交互基础上对于不具有广泛计算机编程技术的人们可用,所以这极大地扩大了互联网的使用。
在与互联网连接的计算机系统中,一组低级别进程从互联网连接接收输入(inbound)数据包,组合包中的数据,向一个或多个高级别应用提供数据;类似地,所述一组低级别进程从高级应用接收输出(outbound)消息、文件或类似的结构,构成体现每个这种结构的一个或多个输出数据包,对数据包寻址,以及在互联网连接之间发送数据包。这里,这些进程称为互联网通信栈或TCP/IP栈,其中TCP/IP是传输控制协议/互联网协议的已知首字母缩写。
互联网通信栈或TCP/IP栈(或“栈实例”)是用于执行上述低级别互联网通信功能的计算机程序代码的进程实例。对于任意不同原因,有时,期望在一个计算机系统中采用多个互联网通信栈。尽管不是必须的,但是所述多个互联网通信栈可使用相同的基础TCP/IP或相同的基础TCP/IP的部分,或其它计算机编程代码,但是每个互联网通信栈具有其自己独立的状态数据,并且每个互联网通信栈具有其自己的IP地址(或IP地址组)。
使用这种多个互联网通信栈的一个实例是这样一种计算机系统,其具有:一个(或多个)栈,用于代表用户执行有用的应用,这里称为工作栈(production stack);以及分开的一个(或多个栈),用于远程管理、保持和控制计算机系统本身的任务,这里称为服务栈。因为各种原因,期望将用户应用从系统管理功能分离。例如,即使工作栈过载或无效,也可以通过服务栈执行系统维护和控制操作;可通过服务栈执行并行维护,而不干扰在工作栈中正在进行的操作等。
互联网通信栈必须根据主管协议执行网络通信所需的某些核心功能,但是按需要也可执行任意不同的改进或可选功能。其中计算机系统包含多个互联网通信栈,例如在工作栈和分开的服务栈的情况下,在多个栈之间存在核心功能的至少一些副本。然而,由于副本需要附加资源,所以不必复制改进或可选功能,并且这些功能并非在所有栈中可用。如果需要在不支持该功能的栈中访问用于处理通信的改进功能,则可通过在局域网(LAN)连接上将数据路由到另一个栈来调用其它栈中的功能。遗憾地是,这种方案只是空想。这样消耗LAN上的网络资源,并且每个栈需要它自己的专用网络适配器执行这种操作。
此外,还可通过定义与不同栈相关的端口并将指定端口用作数据的目的地而在不同的互联网通信栈之间对数据进行内部地路由。端口转发使得一个适配器被两个栈共享。然而,由于某些数据包不包括端口标识(或者端口不可访问),所以端口转发不是始终可用。例如,在对数据加密以用于虚拟专用网络中的某些包中,端口也被加密,并且不可用于使用传统端口转发的栈间路由。
期望提供在计算机系统中的互联网通信栈之间传送数据的改进技术,以避免现有技术中的某些缺点。具体地,期望提供栈间通信设施,其不在LAN上施加附加流量,支持单硬件LAN适配器的共享,以及可容易地集成在支持互联网通信协议的现有软件中。
发明内容
一种计算机系统包含多个互联网通信栈实例,其可以共享共同硬件网络适配器或与单独的各自硬件网络适配器关联。对于多个栈实例定义系统内部软件通信路径,从而使用互联网协议(IP)寻址在计算机系统中的不同互联网通信栈实例之间对包路由。使用IP转发,将到达一个栈并且具有与另一个栈关联的目的IP地址的包转发至其他栈。
在优选实施例中,包的栈间路由可使用全局定义的互联网IP地址或局域内联网(封装的)IP地址,并且可采用输入或输出包。例如,对于输入包可到达第一栈,使用全局IP地址将其转发至第二栈,以及使用局部内联网IP地址将其重新转发回第一栈。对于输出包可到达第一栈,使用局部内联网IP地址将其转发至第二栈,以及使用全局IP地址将其重新转发回第一栈。也存在许多其他用途。
在优选实施例的示例性环境中,第一栈是具有全范围的TCP/IP功能的工作栈,以支持在通用计算机系统中的各种用户应用,第二栈是具有有限范围的TCP/IP功能的服务栈,其的存在主要用以支持从远程控制台的系统控制,并行维护操作等。可使用栈间接口来获得改进功能的操作,以用于来到的并且由绑定至服务栈的应用发送的包。
在优选实施例的一个变形中,栈间接口还可用于支持由多个栈对共同硬件网络适配器的共享。栈间接口可作为选择性能够或禁止共享的开关运行。在另一个变形中,当在工作栈上执行例程维护时,可使用栈间接口临时地将数据路由到备用栈实例。
因此,本发明提供一种使用IP寻址的简单内部栈间接口,其能够进行栈间通信,而不使用网络设施,不需要专用软件的开发成本,以处理栈间通信或在所有栈实例中提供期望水平的功能。
可参照附图从结构和操作方面更好地理解本发明的细节,其中类似的标号表示类似的部分,其中:
附图说明
图1是互联网的高级表示。
图2是根据优选实施例的主机计算机系统的主要硬件组件的高级框图。
图3是根据优选实施例的主机计算机系统的主要软件组成的概念示图。
图4是示出根据优选实施例的在互联网通信栈实例中处理输入数据包的高级过程的整体流程图。
图5是示出根据优选实施例的在互联网通信栈实例中处理输出数据包的高级过程的整体流程图。
图6是示出根据优选环境对输入数据包的处理的流程图,其中根据优选实施例将为服务应用而绑定的封装数据包路由到用于IPSec处理的工作栈。
图7是示出根据图6的示例性环境对输出数据包的处理的流程图。
具体实施方式
互联网概况
在讨论本发明实施例的操作之前,这里提供了互联网的简单概述。
术语“互联网”是“互联网网络”的缩写版,一般指的是利用在计算机网络领域中公知的TCP/IP和相关协议族的计算机网络的集合。TCP/IP是“传输控制协议/互联网协议”(即便于计算机之间的通信的软件协议)的首字母缩写。
图1是互联网的高级概念图。互联网不是预先建立的拓扑结构,而是通过增加新的节点和链路无限扩展的。节点可具有将其与其它节点连接的任意数目的链路,这些链路可使用任意不同的通信技术,所述技术具有不同的数据容量和其它特征。因此,互联网的拓扑结构变为极端复杂的互连网络,其中典型地在任意两个节点之间存在大量可能的通路。
网络的中心部分(有时称为“骨干网”)包含多个高速路由器101,其接收数据包,并将这些数据包继续转发到网络中的其它节点。典型地,每个路由器具有与其它路由器的多个连接,并且这些连接具有高数据容量。例如,在高速路由器101之间通常使用光纤链路。与高速路由器连接的是这样的节点,其用作对于高速路由器的互联网“骨干网”的访问点,如图1中所示的节点102。由于访问节点102用作在高速路由器101和其它网络节点之间对数据包路由,所以访问节点102也是路由器,但是它们典型地采用低速连接。访问节点可以是例如公共互联网服务提供商(其通过电话线路或其它连接在付费的情况下提供对互联网的访问),或可以是用于其内部系统的大型公司的访问节点。通常,每个访问节点102连接至多个高速路由器101,以提供冗余,尽管这不是必要的。典型地,每个访问节点提供对多个主机计算机系统103A、103B(共同表示为标号103)的访问,图1中仅示出2个。主机103是连接至互联网的计算机系统,并且其作为源端生成或作为最终目的地接收在互联网上发送的数据包。主机103可以是从大型主机系统到PC到手持便携式设备的任意类型计算机系统,并且一个主机可代表系统的集群。通常,主机具有用于访问互联网的仅一个访问节点102(在这种情况下是非冗余的),但是主机也可具有多个这种访问节点用于冗余。在主机和访问节点之间的连接通常是相对低速的(例如电话线或射频链路),但是也可以是高速链路。在一些计算机系统的情况下,例如主要用于在互联网上提供信息的大型互联网服务器,主机可直接连接至高速路由器101,因此主机用作其自身的访问节点。
可以理解,图1用作互联网的概念示图,实际上在互联网上节点和连接的数目可以与图1中所示的有极大的不同,并且连接的拓扑结构可以改变。此外,可以理解,可以存在其它层次的连接类型和访问形式,为了图示的清楚在图1中没有示出。即,可以存在多种类型或等级的访问节点102,其中主机通过这些节点连接以到达骨干网的高速路由器101,并且不同的主机可以在不同层次的访问节点连接。严格地讲,互联网包括与其耦合的所有设备,并且当在互联网上登入例如PC的小型计算机系统时,从其作为互联网节点并具有互联网协议(IP)地址(尽管IP地址仅是暂时的)的意义上,其是互联网的一部分。通常,互联网骨干网和访问节点的路由器和连接都称为互联网,即,与计算机系统的分布式处理网络相对将互联网看成通信介质。一般地,使用在后者含义中的“互联网”描述通信介质,但是根据上下文,也可采用前者的含义。
为了能够在任意网络中从一个随机节点向另一个进行数据通信,发送节点必须指定接收节点的目的地。对于很小的网络,例如局域以太网,可以向网络中的所有节点广播数据,通过简单的寻址方案识别所期望的接收方。互联网的大小使得这种方案不现实。对于发送方仍旧必须指定目的地,但是向网络中的每个节点发送数据直到找到目的地这是不现实的。这意味着,发送方以及在通路中的发送方和接收方之间的每个节点必须能够确定将数据包向哪里路由,而使其到达其目的地。然而在通路中的每个节点必须能够确定在下一个中间链路上将包向哪里路由,而不必让通路中的每个节点知道最终目的地。一般地,存在多个可能的路由,并且路由器可基于各个因素确定使用哪个。
在路由器硬件的层次,通过多位数字地址(称为互联网协议(IP)地址)指定互联网目的节点。将使用32位IP地址的原始互联网寻址系统分成分别为8位的4个部分或“八位字节(octet)”。这些八位字节通常通过句点分开,例如IP地址可写为:90.4.63.18。八位字节是寻址的分级形式,对于每个单独的路由器,不必知道所有互联网地址的最终目的地。将承载远处地址的数据包路由到更近的路由器,并且因此能够进一步对地址细分,以此类推直到数据包到达其最终目的地。尽管原始寻址系统使用32位IP地址,但是近年来,互联网地址空间受到限制,并且已经采用已知为IPv6的新标准用于互联网IP地址。IPv6支持128位的IP地址。目前,IPv6是同相的,并且许多互联网设备硬件使用旧的32位IP寻址协议,已知为IPv4。
IP地址允许发送节点将数据包路由到接收节点,但是在通过使用互联网来使用数字IP地址用于更高级的进程间通信时,可具有缺陷。首先,数字地址对于人们来说很难记得。此外,某些IP地址可在多个节点之间共享,或者可因为网络配置的改变而改变。对于这些和其他原因,存在用于互联网节点的更高级命名约定,称为域名系统(DNS)。在具有任意字母字符的DNS中对互联网节点给定名称,然后将它们转换成IP地址。因此,节点的DNS名称更容易记得,并且不需要因为某些硬件改变而简单地改变。例如,一个人可建立客户端可能记得的具有类似DNS名称的web服务器,并且可保持相同的DNS名称,即使因为硬件更新等造成web服务器的实际IP地址改变。DNS服务器的分布式系统记录DNS名称和它们对应的IP地址,并且提供用于将DNS名称转换成IP地址的机构。
由于路由器用于根据包的IP地址对给定数据包选择多个通信链路中的一个(直接目的地),所以多个IP地址可以与每个链路关联。由于连接的路由器或多个路由器简单地将所有IP地址与一个目的地节点关联,所以在架构中不存在禁止一个主机节点具有多个IP地址的装置。典型地,用作客户端并执行例如交互式web浏览器的应用的个人工作站或个人计算机将仅具有一个IP地址。然而,某些更大的计算机系统可具有多个IP地址,其中每个与内部进行的不同各自集合关联。
在耦合至互联网的主机节点计算机系统中,等级进程组接收来自应用的输出数据,并且将其适当地格式化在数据包中,其具有适当的IP地址指定,用于在互联网上的传输。类似地,等级进程组从互联网接收数据包,提取和组合数据,并将其提供给应用。所述等级进程组通常称为“互联网通信栈”。在行业中,通常成为“TCP/IP栈”,尽管由栈处理的互联网通信不需要限制在TCP/IP协议中,并且可包括例如UDP/IP、ICMP/IP等的其他协议。一个主机计算机可包含互联网通信栈的多个实例,其中所使用的每个具有各自的目的。在一个主机计算机系统中,多个互联网通信栈实例是激活的,每个栈典型地具有其自己的不同IP地址(或IP地址组)。
详细描述
参照附图,其中在几个示图中,类似的标号指定类似的部件,图2是根据优选实施例的通过互联网与其他系统通信的主机计算机系统200的主要硬件组件的高级框图。CPU 201是执行指令和处理来自主存储器202的数据的至少一个通用可编程处理器。优选地,主存储器202是使用任意不同存储器技术的随机存取存储器,其中从存储装置或其他通过CPU 201处理的装置加载数据。
一个或多个通信总线205提供用于在CPU 201、主存储器202和各种I/O接口单元211-214(还已知为I/O处理器(IOP)或I/O适配器(IOA))之间传送数据的数据通信路径。I/O接口单元支持与各种存储装置和I/O设备的通信。例如,终端接口单元211支持一个或多个用户终端221-224的连接。存储接口单元212支持一个或多个直接存取存储设备(DASD)225-227(典型地,其是旋转磁盘驱动存储设备,但是它们或者可以是其他设备,包括盘驱动器阵列,其可被配置为作为对于主机的单独大型存储设备出现)的连接。I/O设备接口单元213支持任意各种其他类型I/O设备(例如打印机228和传真机229)的连接,可以理解,可使用其他或附加类型的I/O设备。
网络接口(或“网络适配器”)214支持用于与一个或多个其他数字设备通信的一个或多个外部网络230的连接。网络230包括互联网,但是网络接口214不必直接耦合至互联网,其可连接至局域网(未示出),其随后通过网关与互联网连接。优选实施例的主机计算机系统200包含至少一个网络适配器214。其可选地包含多个网络适配器。其中系统200包含多个适配器,一个或多个可直接或间接耦合至互联网,这些适配器可连接至相同或不同的局域网,或者相同或不同路由器或网关。
可以理解,图2旨在示出高级的系统200的代表性主要组件,其中各个组件可具有比图2中所示的更高复杂度,可提供不同于图2中所示的或附加的组件,并且这种组件的数目、类型和配置可改变,典型地,大型计算机系统可具有比图2更多的组件。这里公开了这种附加复杂度或附加变化的几个特定实例,可以理解,仅通过实例存在而不仅仅是这种改变。
尽管在图2中为了图示的目的仅示出一个CPU 201,但是计算机系统200可包含多个CPU,这是本领域已知的。尽管在图2中示出主存储器202为一个单一性实体,但是实际上,存储器202可以是分布式的和/或分等级的,这是本领域已知的。例如,存储器可存在于多等级缓存中,并且这些缓存可进一步按功能划分,使得一个缓存保存指令,而另一个保存由处理器或多个处理器使用的非指令数据。此外,存储器也可以是分布式的,并且可以与不同CPU或CPU组关联,这是在各种所谓的非统一存储器存取(NUMA)计算机架构中已知的。尽管图2中示出通信总线205为一个实体,但是实际上,典型地通过复杂的总线等级、接口等实现在各种系统组件中的通信,其中使用更高速路径在CPU 201和存储器202之间通信,使用更低速路径与I/O接口单元211-214通信。总线205可以以任意各种形式排列,例如按等级的点对点链接、星型或网型配置、多个等级总线、并行和冗余路径等。例如,在NUMA架构中已知的,在节点基础上排列通信路径。总线可使用例如行业标准PCI总线、或任意其他适合的总线技术。尽管示出多个I/O接口单元(它们将系统总线205从对于各种I/O设备运行的各种通信路径分离),但是可选择地,也可以将I/O设备中的某些或所有直接连接至一个或多个系统总线。
图2中所示的计算机系统200具有多个连接终端221-224,例如可以是典型地多个用户的“大型”计算机系统。连接设备的实际数目可以改变,并且本发明不限于任意特定大小的系统。可选择地,计算机系统200可以是单用户系统,例如“个人计算机”。访问计算机系统200的用户工作站或终端可以通过网络230连接至系统200或与系统200通信。可选择地,计算机系统200可以这样的系统,即,其包含无连接终端或仅具有一个用户显示器和键盘输入的一个操作者平台。此外,尽管为了在一个计算机系统中实现的示例性目的在这里描述了本发明的某些功能,但是这些功能可选择地可使用与彼此通信的计算机系统的分布式网络实现,其中在不同的计算机系统上执行这里描述的不同功能或步骤。
尽管高级地描述和示出各种系统组件,但是可以理解,典型的计算机系统包含对于本发明的理解不重要的未示出的许多其他组件。在优选实施例中,计算机系统200是基于IBM i/SeriesTM架构的计算机系统,可以理解,本发明可以在其他计算机系统上实施。
图3是根据优选实施例的主机计算机系统200的主要软件组成(由存储器202的组成表示)的概念示图。操作系统301是可执行代码,以及提供各种低级软件功能(例如设备接口、存储页管理、多个任务的管理和分派等)的状态数据,这是本领域已知的。具体地,操作系统301包括用于系统200的每个网络适配器214的各自网络适配器设备驱动器。图3表示第一网络适配器设备驱动器302和可选第二网络适配器设备驱动器303,可选网络适配器设备驱动器303用虚线表示,以指示该特征代表可选实施例。在系统200包含仅一个网络适配器214的情况下,存在仅一个对应的网络适配器设备驱动器302;在系统200包含第二网络适配器(图2中未示出)的情况下,存在对应的附加网络适配器设备驱动器303.
根据优选实施例的主机计算机系统包含多个互联网通信栈实例。在图3所示的特定示例性实施例中,其包含两个互联网通信栈实例,其中一个是服务栈304,另一个是工作栈305。然而,主机系统200可包含多于两个的互联网通信栈实例。两个栈执行用于互联网上的通信所必须的TCP/IP的核心组和/或其他互联网协议功能,特别地包括IP路由。然而,除了这些核心协议之外,工作栈305支持基本全范围的TCP/IP和/或其他互联网协议改进功能,而服务栈支持少数的改进功能或不支持。这些改进功能是仅由某些应用或环境所需的功能。这种改进功能的实例包括IPSec、IP过滤、网络地址转换(NAT)和入侵检测,可以理解,工作栈可支持其他或附加的改进功能。
通常,使用工作栈305支持用于在计算机系统200上执行的生产工作的多种用户应用。由于某些用户应用可需要特定的改进功能,并且难以预先预测用户应用的特征,以及将由系统200上执行的用户应用所需的是哪些功能,所以期望支持大范围的改进TCP/IP或其他互联网协议功能。服务栈的存在主要用于维护和控制的目的。例如,服务栈可用于支持与远程控制台的网络通信,以控制系统200的操作;在系统200上执行并行维护操作;以及用于类似的管理功能。
此外,系统200还包含一个或多个用户应用311-313(图3中表示的,可以理解,实际数目可以改变,典型地可以更大)。用户应用311-313通过互联网与远程进程通信,以代表用户执行生产工作,并且优选地与工作栈305关联,以根据TCP/IP或某些其他可用互联网协议处理互联网通信。此外,系统200还包含一个或多个服务应用314-315(图3中表示的,可以理解,实际数目可以改变,典型地可以更大)。服务应用与远程进程通信,以执行管理功能,并且优选地与服务栈304关联,以根据TCP/IP或某些其他可用互联网协议处理互联网通信。在图3的实例中,服务应用314表示为操作系统301的一部分,而服务应用315表示为与操作系统301分离,以示出服务应用可以是操作系统的一部分也可以不是操作系统的一部分。典型地,与工作栈关联的应用(例如用户应用311-313)不是操作系统的一部分,但是工作栈也可以向操作系统功能提供服务。
将每个网络适配器设备驱动器302、303绑定到各自互联网通信栈。每个互联网通信栈304、305可具有与其绑定的0个、1个或大于1个网络适配器设备驱动器。初始地,将网络适配器中接收的所有输入包路由到绑定对应网络适配器设备驱动器的互联网通信栈中。在每个栈中的各个IP路由选择器306、307使用IP路由协议确定用于每个流出包的目的网络适配器设备。
根据本发明的优选实施例,通过IP路由选择器建立到另一个栈的系统内部的栈间通信路径。配置每个IP路由选择器306、307,以将某些包路由到虚拟网络适配器设备驱动器308。实际上,虚拟网络适配器设备驱动器不驱动物理网络适配器,所以虚拟网络适配器设备驱动器308根本不是一个设备驱动器。而是简单地用作在IP路由器可对包路由的IP路由协议下的目的地,因此建立内部栈间通信路径。实际上,将绑定到虚拟网络适配器设备驱动器308的包路由到其他栈。即,如果在服务栈304中的路由选择器306使用IP路由选择虚拟网络适配器设备驱动器308作为包的目的地,则随后将包路由到工作栈305,并进入到工作栈中,以按照来自绑定到工作栈的实际网络适配器和对应网络适配器设备驱动器303的包相同方式处理。
可以理解,典型的计算机系统可包含对于本发明的理解不重要的许多其他软件组成(未示出)。具体地,典型的操作系统将包含许多功能,以及与在网络间的数据传输不相关的状态数据。
在图3中将各个软件实体表示为分离实体或包含在其他实体中。然而,可以理解,这种表示仅用于示例性目的,并且特定模块或数据实体可以是分离实体,或通用模块或模块包装的一部分。此外,尽管在图3的概念表示中示出某个数目和类型的软件实体,但是可以理解,这种实体的实际数目可以改变,并且具体地,在复杂主机系统中,典型地这种实体的数目和复杂度可以更大。
尽管概念性示出图3的软件组成驻留在存储器202中,但是可以理解,通常计算机系统的存储器太小,以致于无法同时保存所有的程序和数据,并且典型地将信息存储在数据存储设备225-227中(包括一个或多个大型存储设备,例如旋转磁盘驱动器),以及如果需要通过操作系统将信息分页保存到存储器中。此外,可以理解,图3的概念表示不意味着对任意特定存储器组织模型的暗示,并且系统200可采用单地址空间虚拟存储器,或可采用重叠的多虚拟地址空间。
图4是示出根据优选实施例的在互联网通信栈实例304、305中处理输入数据包(即,从互联网输入)的高级过程的整体流程图。参照图4,栈实例从网络适配器驱动器接收输入数据包(步骤401)。在步骤401中接收的数据包的源端可以是用于物理硬件网络适配器的网络适配器驱动器302、303,或者可以是虚拟网络适配器驱动器308,实际上,它仅是与作为网络适配器的接收栈实例通信的另一个栈实例的接口。在接收包时,IP路由选择器306、307检查在包中的目的IP地址,以确定适当的路由(步骤402)。如果目的地址与另一个实体关联(从步骤403的“N”分支),则将包转发(使用IP转发)到目的实体(步骤404)。可将包指定到计算机系统200外部的某些地址,在这种情况下,可将包转发到与外部地址关联的网络适配器,以向其最终目的地的外部传输。但是具体地,在优选实施例中,可通过向与目的栈关联的虚拟适配器驱动器308 IP转发将至少一些包转发到系统200中的不同互联网通信栈实例。
在步骤403,如果目的地址与当前栈实例关联,则将包向上转发到由各个栈层处理的栈(表示为从步骤403的“Y”分支)。可选地,处理可包括显示与原始IP地址不同的嵌入在原始数据包中的封装IP地址(步骤405)。可通过用于IP地址封装的任意可用协议来显示封装IP地址。例如,根据IPSec隧道协议,可以从解密数据包提取封装IP地址,IPSec隧道仅是封装的一个可能的实例。在显示封装IP地址的情况下,随后将包返回至IP路由选择器(步骤403),以向适当的目的实体进行IP转发(步骤404)。这个目的实体可以是系统200中的不同网络通信栈实例。
在不存在封装IP地址的情况下(或已经先前提取了封装地址并且由此转发了包的情况下),栈的上层(例如IP和TCP层)根据可用的传统协议处理包(步骤406)。然后,将包中的数据提供给系统200中的适当应用(步骤407)。
图5是示出根据优选实施例的在互联网通信栈实例304、305中处理输出数据包(即,通过互联网向外部目的地输出)的高级过程的整体流程图。参照图5,输出数据包可以是来自与栈实例绑定的应用的数据结果(示出为通过步骤501和502的路径),或者可以是从另一个实体(特定地从另一个栈)转发的数据包(示出为通过步骤503的路径)。在前一情况下,栈实例接收数据,所述数据来自与栈绑定的应用的输出互联网通信(步骤501),例如在工作栈305的情况下的用户应用311-313,或在服务栈304的情况下的服务应用314、315。栈的上层(例如IP和TCP层)根据可用协议处理数据,以生成一个或多个数据包(步骤502)。可选地,已经由更高栈层处理的数据包可在从另一个实体(具体地从同一系统中的另一个栈)路由之后到达栈中(步骤503)。
可选地,栈可将数据包和目的地址封装在更大数据包中,以根据任意适合的封装协议(例如IPSec隧道)提供用于更大数据包的新IP地址(步骤504)。无论是否执行封装步骤504,随后都通过IP路由选择器306、307将包转发到由其IP地址指定的目的地(步骤505)。IP转发路由目的地是网络适配器驱动器。所述目的地可以是与物理网络适配器耦合的网络适配器驱动器302、303(在外部目的地的情况下),或者可以与系统200中另一个栈实例对接的虚拟适配器驱动器308。
可在各种应用中使用根据如上所述优选实施例的栈间通信。例如,栈间通信容易支持由多个栈实例对单个硬件网络适配器的共享。典型地,硬件网络适配器由第一栈实例所有或激活,需要通过与第一栈实例相关的IP路由选择器路由的所有通信。但是,IP路由选择器可将进入包路由到第二栈实例,或者从第二栈实例接收外出包,因此通过网络适配器(不是由第二栈实例所有)支持在第二栈实例和外部实体之间的通信。栈间接口也可以作为能够在某时刻或某事件时选择的开关。例如,在某时刻能够正常地使能和禁能接口,以支持需要专用网络适配器的重要任务的应用。或者,接口可以被正常禁能,以在可选择的时刻能够从主栈实例向备用栈实例重新路由数据,以在主栈上执行例程维护。
在根据优选实施例使用栈间实例的特定示例性实施例中,工作栈305具有全范围的TCP/IP功能,以支持通用计算机系统中的各种用户应用,并且服务栈304具有有限范围的TCP/IP功能,它的存在主要支持从远程控制台的系统控制、并行维护操作等。使用栈间接口来获得在服务栈上并非正常可用的一个或多个改进功能操作,以用于涉及与服务栈绑定的应用的通信。
一个这种改进功能的实例是使用IPSec隧道协议的数据包的封装。IPSec隧道允许对完整的数据包进行封装和加密,以将其打包在具有新IP报头和IP地址的更大包中。可使用IPSec隧道,例如以支持虚拟专用网(VPN)。在具有双重工作栈和服务栈实例的系统中,有时候可需要服务栈使用工作栈的IPSec功能。例如,一些维护操作可偶尔需要从不安全网络连接的设备执行。
图6和图7是分别示出根据示例性环境在系统200的各个组件中对输入数据包的处理和输出数据包的处理的流程图,其中根据优选实施例将为服务应用而绑定的封装数据包路由到用于IPSec处理的工作栈。在该实例中,将互联网IP地址66.191.69.9和66.191.69.10路由至与服务栈304绑定的网络适配器302。在服务栈上定义互联网IP地址66.191.69.9,在工作栈上定义互联网IP地址66.191.69.10。可存在对于这些栈和/或附加网络适配器定义的并非与该实例相关的附加互联网IP地址。在服务栈上定义企业网虚拟专用网(VPN)地址目的地10.5.12.35,在工作栈上定义用于远程企业网地址目的地10.5.26.14的VPN过滤规则。
参照图6,具有66.191.69.10的IP地址的输入包和封装包(VPN包)到达网络适配器302,并且被路由到与网络适配器302绑定的服务栈304(步骤601)。在服务栈上没有定义IP地址66.191.69.10,然而,将其定义为到虚拟适配器308的路由,即到工作栈305的路由。因此,IP路由选择器306使用IP转发将包路由到工作栈305(步骤602)。
工作栈接收所述包。在工作栈上定义IP地址66.191.69.10,从而工作栈的IPSec隧道功能对包解密,以显现嵌入的VPN包(步骤603)。这种嵌入的VPN包具有它自己的IP地址10.5.12.35,在这种情况下其是在虚拟专用网上使用的企业网地址。在工作栈上没有定义企业网IP地址10.5.12.35,然而将其定义为到虚拟适配器308的路由,即到服务栈的路由。因此,IP路由选择器307将当前解密的包向回路由到服务栈(步骤604)。
服务栈接收具有IP地址10.5.12.35的解密包。在服务栈上定义了所述地址,从而在服务栈的更高层(即TCP和IP层)处理所述包(步骤605)。然后,将结果数据传递到服务应用(步骤606)。服务应用从服务栈接收数据,并且适当地使用数据(步骤607)。
参照图7,初始地将来自服务应用的输出数据传递到具有套接字目的地址10.5.26.14的服务栈,其中所述地址对应于远程设备中的目的地的企业网IP地址(步骤701)。在服务栈的TCP和IP层中处理所述数据,以生成具有IP地址目的地10.5.26.14的一个或多个数据包(步骤702)。
对于IP路由选择器306定义IP地址10.5.26.14,作为与虚拟适配器308对应的地址,从而路由选择器306将包经由栈间接口路由到虚拟适配器308,即工作栈305(步骤703)。在工作栈305中定义用于IP地址10.5.26.14的VPN过滤规则,指示工作栈的IPSec功能,以随后加密所述包并将其封装到更大的包中,所述更大的包具有与远程设备对应的全局可路由(互联网)IP地址129.42.161.17(步骤704)。对于IP路由选择器307定义地址129.42.161.17作为与虚拟适配器308对应的地址,从而路由选择器307经由栈间接口将包路由到服务栈304(步骤705)。
在服务栈304中的IP路由选择器306接收包,并识别IP地址为可路由到网络适配器驱动器302的外部地址。因此,IP路由选择器306将包路由到适配器驱动器302(步骤706)。然后,网络适配器接收包,并在网络上对其进行发送(步骤707)。
尽管这里使用了IPv4实施例的某些实例,但是可以理解,本发明可同等地应用于IPv6寻址以及IPv4寻址。
在这里描述的技术的优点中,优选实施例是可以使用已经可用的IP转发和路由设施在不同互联网通信栈之间对包数据进行路由。这种方式仅需要对IP路由选择器进行最小量的配置,并且不需要大量的专用编程或功能能力。此外,由于在互联网通信中IP转发是无处不在的,所以根据本发明优选实施例对栈间接口的使用可能具有广泛的适用性,除了没有作用的例外。最后,不需要不同的栈实例使用共同代码或具有共同开发源的代码;可有利地使用独立开发的栈代码避免使得每个栈实例感染相同的代码错误,因此提高故障容限度。
一般地,被执行以实现本发明所示实施例的例程(无论作为操作系统的一部分实现,还是作为具体应用、程序、对象、模块或指令序列实现)在这里称为“程序”或“计算机程序”。典型地,程序包括指令,所述指令在由根据本发明的计算机系统中的设备或系统中的一个或多个处理器读取和执行时使得这些设备或系统执行对于实现步骤或产生用以实现本发明的各个方面的元素所必须的步骤。此外,尽管在全功能计算机系统的环境中已经描述以及在之后将描述本发明,但是本发明的各个实施例能够以各种形式作为程序产品分布,并且本发明可同样应用,而不管用于实际执行分布的信号承载介质的特定类型。信号承载介质的实例包括但不限于易失性和非易失性存储设备、软盘、硬盘驱动器、CD-ROM、DVD、磁盘等。此外,本发明应用任意形式的信号承载介质,而不关心是否在传输网络(包括无线网络)上从一种形式的信号承载介质向另一种交换数据。图2中将信号承载介质的实例示出为系统存储器202,以及数据存储设备225-227。
尽管除了某些替换物之外已经公开了本发明的具体实施例,但是本领域普通技术人员可以认识到,可以在以下权利要求的范围内在形式和细节上进行其他修改。
具体地,参照所附权利要求,可将从属权利要求的特征与独立权利要求的特征组合,并且可以以任意适合的方式组合各个独立权利要求的特征,而不限于在权利要求中列举的特定组合中。
为了免生疑问,在说明书和权利要求书中使用的术语“包括”不应该理解为“仅包含”的含义。
Claims (18)
1.一种计算机系统,包括:
至少一个处理器;
存储器;
操作系统,作为能够在所述至少一个处理器上执行的多个指令实现,所述操作系统支持多个进程实例的并行执行;
多个应用,能够在所述至少一个处理器上执行;
至少一个网络适配器,用于与网络通信,所述网络适配器在互联网之间发送用于通信的数据包;
第一互联网通信栈实例和第二互联网通信栈实例,每个所述互联网通信栈实例与所述多个应用中各自的至少一个应用关联,所述第一和第二互联网通信栈实例支持用于在所述第一和第二互联网通信栈之间的至少一个方向上传送数据包的栈间接口;
其中根据与各自数据包关联的各自互联网协议(IP)地址,选择地将所述栈间接口之间传送的每个数据包路由到所述栈间接口之间的目的互联网通信栈,所述IP地址匹配于与所述目的互联网通信栈关联的IP地址。
2.如权利要求1所述的计算机系统,其中所述第二互联网通信栈实例支持由所述第一互联网通信栈实例不支持的至少一个互联网协议功能。
3.如权利要求2所述的计算机系统,其中所述第二互联网通信栈实例是用于用户应用的通用支持的工作栈,并且所述第一互联网通信栈是用于支持所述计算机系统的管理功能的服务栈。
4.如权利要求1、2或3所述的计算机系统,其中所述栈间接口支持在所述第一和所述第二互联网通信栈之间的包的双向通信。
5.如任意先前权利要求所述的计算机系统,其中通过将虚拟网络适配器设备驱动器指定为在所述第一栈实例中的至少一个IP地址的IP转发目的地来实现在所述栈间接口之间的数据包通信,所述虚拟网络适配器设备驱动器是对于所述第二栈实例的接口。
6.如任意先前权利要求所述的计算机系统,其中所述第一和第二互联网通信栈共享共同网络适配器,所述共同网络适配器绑定至所述第一互联网通信栈实例。
7.一种对互联网通信数据包路由的方法,包括以下步骤:
在计算机系统中的互联网通信栈的第一实例中接收用于表示多个数据包的数据,每个所述数据包与各自互联网协议(IP)地址关联;
从每个所述数据包的各自IP地址确定其各自路由目的地,其中,对于至少一些所述数据包,所述各自路由目的地对应于在所述计算机系统中的互联网通信栈的第二实例,在互联网通信栈的所述第一实例中执行所述确定步骤;和
响应于确定数据包的路由目的地对应于互联网通信栈的所述第二实例,将所对应的包转发至互联网通信栈的所述第二实例。
8.如权利要求7所述的对互联网通信数据包路由的方法,其中在所述接收步骤中接收的所述数据包中的至少一些是由所述计算机系统接收的数据包,作为来自互联网的输入通信。
9.如权利要求7或8所述的对互联网通信数据包路由的方法,其中在所述接收步骤中接收的所述数据包中的至少一些是从所述计算机系统内部执行的至少一个应用接收的数据包,作为用于互联网上传输的输出通信。
10.根据权利要求7至9中任一项所述的对互联网通信数据包路由的方法,还包括以下步骤:
在互联网通信栈的所述第一实例和互联网通信栈的所述第二实例之一中,对于所述数据包中的至少一些执行封装功能,所述封装功能是包括以下内容的组中的一个:(a)将具有第一IP地址的第一数据包封装到具有第二IP地址的第二数据包中;和(b)从具有第二IP地址的第二数据包中提取先前封装的具有第一IP地址的第一数据包。
11.如权利要求10所述的对互联网通信数据包路由的方法,
其中在将所对应的包转发到互联网通信栈的所述第二实例的步骤之后,通过互联网通信栈的所述第二实例执行所述执行封装功能的步骤;和
其中所述方法还包括以下步骤:
在执行所述封装功能之后确定每个数据包的各自路由目的地,从所述各自包的IP地址确定所述路由目的地,其中对于至少一些所述数据包,所述各自路由目的地对应于在所述计算机系统中的互联网通信栈的所述第一实例,在互联网通信栈的所述第二实例中执行所述确定步骤;和
响应于确定数据包的路由目的地对应于互联网通信栈的所述第一实例,将所对应的包转发到互联网通信栈的所述第二实例。
12.根据权利要求7至11中任一项所述的对互联网通信数据包路由的方法,其中所述第一和第二互联网通信栈实例共享共同网络适配器,所述共同网络适配器绑定至所述第一互联网通信栈实例和所述第二互联网通信栈实例的仅其中之一。
13.一种对互联网通信数据包路由的计算机程序产品,包括:
在信号承载介质上记录的多个计算机可执行指令,其中所述指令在由所述计算机系统执行时使得所述计算机系统执行以下步骤:
(a)在所述计算机系统中保持多个互联网通信栈实例;
(b)提供用于在至少一些所述互联网通信栈实例之间的至少一个方向上传送数据包的栈间接口,每个所述数据包与各自互联网协议(IP)地址关联;
(c)在第一互联网通信栈实例中,从所述数据包的各自IP地址确定多个数据包中的每个数据包的各自路由目的地,其中,对于至少一些所述数据包,所述各自路由目的地对应于所述栈间接口;和
(d)对于经过所述确定步骤(c)的所述数据包中的每个,如果所述数据包的各自路由目的地对应于所述栈间接口,则经由所述栈间接口从所述第一互联网通信栈实例将所述数据包路由到所述计算机系统中的第二互联网通信栈实例。
14.如权利要求13、14或15所述的计算机程序产品,其中所述栈间接口支持在所述第一和所述第二互联网通信栈之间的包的双向通信。
15.如权利要求13或14所述的计算机程序产品,其中经由所述栈间接口路由到所述第二互联网通信栈实例的所述数据包中的至少一些是由所述计算机系统接收的数据包,作为来自所述互联网的输入通信。
16.如权利要求13所述的计算机程序产品,其中经由所述栈间接口路由到所述第二互联网通信栈实例的所述数据包中的至少一些是从所述计算机系统内部执行的至少一个应用接收的数据包,作为用于互联网上传输的输出通信。
17.根据权利要求13至16中任一项所述的计算机程序产品,其中所述指令还使得所述计算机执行以下步骤:
(e)在所述第一互联网通信栈实例和所述第二互联网通信栈实例之一中,对于所述数据包中的至少一些执行封装功能,所述封装功能是包括以下内容的组中的一个:(i)将具有第一IP地址的第一数据包封装到具有第二IP地址的第二数据包中;和(ii)从具有第二IP地址的第二数据包中提取先前封装的具有第一IP地址的第一数据包。
18.如权利要求17所述的计算机程序产品,
其中在所述步骤(d)之后通过所述第二互联网通信栈实例执行所述步骤(e);和
其中所述指令还使得所述计算机系统执行以下步骤:
(f)在执行步骤(e)之后确定经过步骤(e)的所述数据包中的每个的各自路由目的地,其中对于至少一些所述数据包,所述各自路由目的地对应于所述栈间实例;和
(g)对于经过所述确定步骤(f)的所述数据包中的每个,如果所述数据包的各自路由目的地对应于所述栈间接口,则经由所述栈间接口从所述第二互联网通信栈实例将所述数据包路由至所述第一互联网通信栈实例。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/279,667 | 2006-04-13 | ||
US11/279,667 US20070242671A1 (en) | 2006-04-13 | 2006-04-13 | Method and Apparatus for Routing Data Packets Between Different Internet Communications Stack Instances |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101411160A true CN101411160A (zh) | 2009-04-15 |
Family
ID=38279093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780010969.5A Pending CN101411160A (zh) | 2006-04-13 | 2007-03-12 | 在不同的互联网通信栈实例之间对数据包路由的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20070242671A1 (zh) |
EP (1) | EP2011304A1 (zh) |
JP (1) | JP4811884B2 (zh) |
CN (1) | CN101411160A (zh) |
TW (1) | TW200814636A (zh) |
WO (1) | WO2007118740A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671228B1 (en) * | 2009-10-02 | 2014-03-11 | Qlogic, Corporation | System and methods for managing virtual adapter instances |
CN104811431B (zh) | 2014-01-29 | 2018-01-16 | 华为技术有限公司 | 基于并行协议栈实例的数据包处理方法和装置 |
CN104811432A (zh) | 2014-01-29 | 2015-07-29 | 华为技术有限公司 | 基于并行协议栈实例的数据包处理方法和装置 |
US9882972B2 (en) | 2015-10-30 | 2018-01-30 | International Business Machines Corporation | Packet forwarding optimization without an intervening load balancing node |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH098844A (ja) * | 1995-06-16 | 1997-01-10 | Hitachi Ltd | 広域マルチキャスト通信方法 |
US6101543A (en) * | 1996-10-25 | 2000-08-08 | Digital Equipment Corporation | Pseudo network adapter for frame capture, encapsulation and encryption |
US5970066A (en) * | 1996-12-12 | 1999-10-19 | Paradyne Corporation | Virtual ethernet interface |
US6324583B1 (en) * | 1998-11-17 | 2001-11-27 | International Business Machines Corp. | Method and apparatus for enabling communication between dissimilar protocol stacks |
US6430622B1 (en) * | 1999-09-22 | 2002-08-06 | International Business Machines Corporation | Methods, systems and computer program products for automated movement of IP addresses within a cluster |
US6681258B1 (en) * | 2000-05-31 | 2004-01-20 | International Business Machines Corporation | Facility for retrieving data from a network adapter having a shared address resolution table |
JP3732745B2 (ja) * | 2000-06-07 | 2006-01-11 | 日本電信電話株式会社 | 通信コネクション確立方法 |
WO2001097464A1 (en) * | 2000-06-13 | 2001-12-20 | Red-M (Communications) Limited | A distributed processing system |
US6996631B1 (en) * | 2000-08-17 | 2006-02-07 | International Business Machines Corporation | System having a single IP address associated with communication protocol stacks in a cluster of processing systems |
US20050246443A1 (en) * | 2004-03-31 | 2005-11-03 | Intel Corporation | Management of offload operations in a network storage driver |
US7835302B2 (en) * | 2006-03-24 | 2010-11-16 | Cisco Technology, Inc. | Method and apparatus for automatically managing sub-layer interfaces |
-
2006
- 2006-04-13 US US11/279,667 patent/US20070242671A1/en not_active Abandoned
-
2007
- 2007-03-12 CN CN200780010969.5A patent/CN101411160A/zh active Pending
- 2007-03-12 EP EP07726800A patent/EP2011304A1/en not_active Withdrawn
- 2007-03-12 WO PCT/EP2007/052292 patent/WO2007118740A1/en active Application Filing
- 2007-03-12 JP JP2009504662A patent/JP4811884B2/ja not_active Expired - Fee Related
- 2007-04-03 TW TW096111883A patent/TW200814636A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP2011304A1 (en) | 2009-01-07 |
WO2007118740A1 (en) | 2007-10-25 |
JP4811884B2 (ja) | 2011-11-09 |
JP2009533915A (ja) | 2009-09-17 |
US20070242671A1 (en) | 2007-10-18 |
TW200814636A (en) | 2008-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1754374B (zh) | 带有网关负载分配的网络地址转换 | |
US6799220B1 (en) | Tunneling management messages over a channel architecture network | |
CN113169940B (zh) | 包括分解式网络元件的逻辑路由器 | |
CN106464564B (zh) | 用于网络分组封装和路由的方法、系统和计算机可读介质 | |
JP4483100B2 (ja) | ネットワーク間接続装置 | |
CN102148773B (zh) | 一种IPv6协议和IPv4协议转换的方法及系统 | |
CN106559511B (zh) | 云系统、云端公共服务系统及用于云系统的互访方法 | |
CN109716717A (zh) | 从软件定义的网络控制器管理虚拟端口信道交换机对等体 | |
CN100372347C (zh) | 扩展边界网关协议的4over6隧道封装及解封装方法 | |
CN101427526A (zh) | 用于自动地经IPv6网络互连IPv4网络的系统和方法 | |
CN102792651B (zh) | 在mac层应用服务路径路由选择的装置 | |
JP2017224895A (ja) | 通信制御プログラム、通信制御方法及び通信制御装置 | |
US7269661B2 (en) | Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet | |
CN104717081A (zh) | 一种网关功能的实现方法及装置 | |
CN101316272A (zh) | 构建因特网协议版本4和6混合网络的多协议层翻译方法 | |
US7096281B2 (en) | Efficient connectivity between multiple topology subnets via common connection network | |
JP4381642B2 (ja) | 階層化網と非階層化網との混在環境での経路制御方法及びその装置 | |
CN102938795A (zh) | 通过隧道和地址转换实现IPv6地址访问IPv4资源的方法 | |
CN100555267C (zh) | 动态链创建和分组转发平面的分段 | |
CN102572008A (zh) | 通信业务处理方法与系统、网关设备 | |
KR100734736B1 (ko) | 데이터 패킷 변환 방법 및 장치와 기록 매체 | |
CN110311860A (zh) | Vxlan下多链路负载均衡方法及装置 | |
CN115189920A (zh) | 跨网络域通信方法和相关装置 | |
WO2019160005A1 (ja) | 経路情報転送装置、経路情報転送方法および経路情報転送プログラム | |
CN102904814B (zh) | 数据传输方法、源pe、目的pe和数据传输系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090415 |