CN1842042A - 用于搜索网络连接的方法和装置 - Google Patents
用于搜索网络连接的方法和装置 Download PDFInfo
- Publication number
- CN1842042A CN1842042A CNA2006100674495A CN200610067449A CN1842042A CN 1842042 A CN1842042 A CN 1842042A CN A2006100674495 A CNA2006100674495 A CN A2006100674495A CN 200610067449 A CN200610067449 A CN 200610067449A CN 1842042 A CN1842042 A CN 1842042A
- Authority
- CN
- China
- Prior art keywords
- pattern
- yuan
- direct table
- link information
- connection
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
用于实现网络连接表的使用的方法和装置。在一个方面,搜索网络连接包括接收包,并且如果将建立新连接,将来自该包的连接信息的特定字段置零。使用表访问过程将连接信息转换为直接表内的位置的地址。直接表存储用于新连接和已有连接的模式和参考信息。将连接信息与直接表内存储在所述地址的至少一个模式进行比较,以寻找用于接收到的包的参考信息。
Description
技术领域
本发明涉及计算机设备的网络连接,并且更具体地涉及用于实现网络连接的网络连接表。
背景技术
计算机系统通过建立和使用网络连接在网络上通信。例如,当服务器希望可被网络上的客户计算机访问时,服务器可以使其连网过程和组件能够处理从客户机接收到的请求。可以使在服务器上运行的多个服务器应用对于希望通过网络访问所述服务器应用的客户机成为是可用的。在一个例子中,客户机可以联系服务器,并且服务器允许在客户机和服务器之间建立网络连接。
例如,当使用传输控制协议/网际协议(TCP/IP)时,由连接信息诸如被划分为不同参数或字段的位模式表示TCP连接。例如,可以使用“5元组”,它是一组定义连接的5个参数。对于TCP/IP,该5元组被包括在在网络上发送的每个包的头部内。所述5个参数是包的协议的身份(在这种情况下,TCP)、源IP地址(SA)、源端口(SP)、目的IP地址(DA)和目的端口(DP)。从客户机的角度看,源地址和源端口在客户机端,而目的址和端口在服务器端。5元组连接信息允许以双向方式在服务器过程和客户机过程之间传递网络数据包。每个连接具有在每个包头部中标识出的唯一的5元组模式。
在服务器和客户机之间建立连接之前,服务器通常通告到客户机可以连接的特定过程的连接的可用性。例如,服务器可以用“3元组”或“2元组”的形式建立用于该连接的基本连接信息,以指出可用的潜在连接。3元组具有用于所使用的协议的身份的3个参数:该可用连接的服务器目的端口和服务器目的址。当服务器具有多个IP地址时(例如,多穴(multi-homed)服务器)使用3元组,其中必须指定可用连接的特定IP地址。在其他时候或在其他实施例中,仅为服务器连接提供单个IP地址,或者服务器可能不在意多个IP地址中的哪一个可用于连接。在这种情况下,2元组可以指出可用连接,该2元组具有两个参数:协议的身份和目的端口。
服务器可以在TCP连接表中存储5元组、3元组和2元组。当服务器接收到具有带有连接信息(5元组)的头部的包时,服务器在这些表中的一个表内查找匹配的连接,以确定多个连接中的哪一个连接应当接收该包。每个连接中的包最终被提供给该连接末端的服务器应用。例如,为了建立到服务器的连接,客户机向服务器发送SYN(同步)包。当服务器接收到SYN包时,它在表中查找匹配的3或2元组模式以允许开始与客户机的3次握手过程,该握手过程导致建立连接(忽略包中的5元组的其他字段)。典型地,首先搜索用于3元组的匹配,并且如果没有找到,则搜索用于2元组的匹配。一旦建立连接,5元组模式被存储在直接表(direct table)中,并且由该连接上的后续包匹配。
现有的服务器系统使用不同方法查找TCP连接以确定将进入的包发送到哪里。在一种方法中,提供3个单独的表,每个表存储新的或已有的连接,并且使用简单的散列算法查找连接。一个表用于针对已有连接的5元组模式,另一个表用于针对新连接的3元组模式,并且第三个表用于针对新连接的2元组模式。基于模式类型,每个表需要不同的散列键长。
该方法的一个问题是需要主存储器中的存储空间以存储3个不同的表。此外,在某些情况下查找过程可能会花费长时间,例如,当在3元组表中查找新连接并且没有找到匹配时,需要对主存储器对2元组表进行第二次访问,从而增加了处理时间。
另一种查找方法允许使用单个表,并且执行最长前缀匹配(LPM)算法。这种类型的算法允许服务器寻找满足最严格或详细的标准的最佳匹配,并且如果没有找到匹配,则使用更一般的标准。使用具有节点和叶子的树结构,并且因此要花费时间以进行处理。此外,LPM方法是复杂的算法,尤其是以硬件实现时,需要更多的硬件组件诸如存储器,并且因此增加了系统的费用。
因此,需要一种用于提供网络连接查找机制的装置和方法,它需要较少的处理和访问时间,并且更容易、更高效并且费用更低地实现。本发明了解决这种需求。
发明内容
本申请的发明涉及用于实现网络连接的网络连接表。在本发明的一个方面,一种用于搜索网络连接的方法包括通过网络在计算机系统上接收包并从该包中检索连接信息,并且如果将建立新连接则将该连接信息中的特定字段置零。使用表访问过程将该连接信息转换为直接表中的位置的地址。所述直接表存储新连接和已有连接的模式和相关参考信息。将该连接信息与存储在直接表中由所述地址所指向的位置处的至少一个模式进行比较以寻找用于接收到的包的参考信息。本发明的一个类似方面提供了用于实现类似特征的装置。
在本发明的另一个方面,一种用于存储网络连接信息的方法包括接收网络连接信息,如果该网络连接信息涉及新连接,则将该网络连接信息中的特定字段置零,使用表访问过程将该网络连接信息转换为直接表中的地址,并且将该连接信息作为模式存储并且将参考信息存储在直接表中相应于该地址的位置处。直接表存储用于新连接和已有连接的连接信息和参考信息。
在本发明的另一个方面,一种允许存储和搜索网络连接信息的装置包括在存储器中提供的存储网络连接信息以及指向网络连接的相关参考信息的直接表,所述网络连接信息包括用于新网络连接的3元组和2元组模式和用于已建立的网络连接的5元组模式。当通过网络接收到包括连接信息的包时,在网络适配器设备上实现的搜索机构在直接表中搜索网络连接信息。该搜索机构从包连接信息中创建搜索模式,该搜索模式用于在直接表中搜索匹配的模式以寻找相关的参考信息。
本发明提供了这样的一种方法和装置,其允许使用单个直接表查找包括新连接和已建立连接的不同类型的网络连接,并且允许在同一个表中存储2元组、3元组和5元组模式。这允许高效的单次存储器访问以查找所有可能类型的连接。此外,本发明允许使用比现有的复杂的查找算法更高效和廉价的散列过程或其他表访问机制直接查找连接。
附图说明
图1是适合于用于本发明的系统的例子的方框图;
图2是说明用于在直接表中存储网络连接信息的本发明的方法的流程图;
图3是对根据本发明在直接表中存储连接信息的例子的示意图;
图4是说明本发明的搜索机制的基本实施例的操作的流程图;
图5是根据本发明当接收到包时在直接表中搜索连接信息以建立新连接的示意图;
图6是根据本发明当接收到已建立的连接的包时在直接表中搜索连接信息的示意图;以及
图7a和7b是说明本发明的散列过程的方框图。
具体实施方式
本发明涉及用于计算机设备的网络连接,并且更具体地涉及用于实现网络连接的网络连接表。给出下面的描述以使本领域的普通技术人员能够实现和使用本发明,并且是在专利申请和其要求的情境中提供此描述。对本领域的技术人员来说,对此处描述的优选实施例和一般原理和特征的各种修改是显而易见的。因此,本发明并非旨在限于示出的实施例,而是将被给予与此处描述的原理和特征一致的最宽的范围。
主要根据在特定实现中提供的系统描述本发明。然而,本领域的普通技术人员将易于理解,该方法和系统也可有效地运行于其他实现中。例如,本发明可以使用的系统体系结构和网络配置可以采用多种不同形式。还将在具有某些步骤的特定方法的情境中描述本发明。然而,该方法和系统也可有效地运行于具有与本发明不一致的不同的和/或附加步骤的其他方法。
为了更具体地描述本发明的特征,请结合下面的讨论参考图1到图6。虽然在TCP/IP协议客户机-服务器系统的情境中描述本发明,在具有适当修改的其他实施例中可以使用其他协议(诸如用户数据报协议(UDP))和配置。例如,在UDP中没有SYN包,但是仍然可以使用5元组将包引导到特定的连接/队列。
图1是适合于用于本发明的系统10的例子的方框图。系统10是计算机系统,诸如服务器、大型机、台式客户计算机、工作站或其他计算机或电子设备。在所述的实施例中,提供系统10作为可以通过网络连接14与各种其他计算机12通信的服务器系统。在所述的实施例中计算机12被示为客户计算机,虽然在其他实施例中它们可以是服务器或其他计算机设备。任何客户计算机12可以通过向服务器发送一个或多个数据包请求通过网络14访问服务器系统10,并且一旦建立了服务器和客户机之间的连接,就可以在它们之间传递信息。
服务器系统10运行多个服务器应用16,它们是运行于服务器上的进程,在本发明的情境中,这些进程可以为做出请求的客户计算机12提供服务、处理数据等。例如,服务器应用16可以是给客户机12提供网页数据的web服务器应用,和/或给客户机12提供数据库数据,或处理由客户机12提交的数据。
系统10包括TCP/IP栈20以管理到服务器应用16的网络连接。栈20是运行在服务器上的操作系统或用户软件空间内的过程代码,其处理到和来自网络连接14的进入和外出数据。TCP/IP栈可以建立到服务器应用16的新的网络连接或给已存在的连接提供包。每个服务器应用16可以具有一个或多个连接。例如,栈20可以接收来自服务器应用16的请求以打开到该应用的网络连接,例如当启动该应用16时。服务器应用16向栈20发送数据,栈20将该数据作为TCP/IP网络包通过网络14发送到目的端口和地址。栈20还接收由网络上其他计算机设备12提供的网络包,并且通过网络连接将这些包提供给正确的服务器应用16。
TCP/IP栈20访问服务器系统10的主存储器24的直接表22。直接表22存储着到服务器10的所有新的和已有连接的连接信息,以及相关的指出由系统10接收的包的目的连接的“参考信息”或“连接参考信息”。例如,在一个实施例中,参考信息可以是指向特定连接队列的队列号,其中该连接队列中的包最终由栈20处理,并且相关数据被传递到针对该队列的连接,以及传递到该连接末端的服务器应用。在其他实施例中,可以提供多个协议栈20,如在该表中指出的,每个协议栈具有自己的队列。在另一实施例中,每个应用16可以具有其自己的队列。在其他实施例中,可由参考信息指出除连接队列之外的、服务器内的其他目的地。
例如,当服务器应用16请求接受到该应用的一新连接时,栈20在表22中存储适当的连接信息(模式)以及一队列号,该队列号指出与到请求该连接的服务器应用的连接相关联的连接队列。当客户机通过向系统10发送包请求新连接时,网络适配器26上的逻辑查找该表以确定向哪个连接队列连接该客户机并且发送包(或者,栈20可以查找该表,但是为了效率由适配器26执行该任务移除了服务器的负荷)。类似地,一旦建立了连接,当适配器26从客户计算机12接收到包时,适配器26在表22中查找以确定已建立的连接应当接收该包。下面将参照图2和4更详细地描述这些过程。
在本发明中,单个直接表22存储着用于所有新的和已建立连接的连接信息,包括5元组、3元组和2元组模式,因此与现有技术的实现相比减少了连接表的存储需求,并且还减少了连接查找所需的存储器访问数目。另外,通过一种高效的方法诸如散列过程(在下面描述)直接在该表中访问连接信息,因此比使用更复杂的算法和结构的其他实现诸如最长前缀匹配需要更少的处理。
网络适配器26用于提供服务器系统10和连接到网络14的其他计算机12之间的物理连接点。适配器26可以是,例如,硬件网络接口适配器。TCP/IP栈20通过适配器26从客户计算机12接收包,并且栈20通过适配器26在网络14上发送包。适配器26优选地还包括逻辑、存储器和处理组件以允许处理网络信息,诸如在直接表26中查找连接信息。这将负担从服务器卸载到网络适配器。
图2是说明本发明的用于在直接表22中存储网络连接信息的方法100的流程图。方法100可以例如以软件实现在服务器的TCP/IP栈20内。或者,可以用硬件或硬件和软件的组合实现方法100。可以使用存储在计算机可读介质诸如存储器、硬盘驱动器、光盘(CD-ROM、DVD-ROM等)、磁盘等上的程序指令实现方法100(和方法200)的步骤。
典型地,当需要在直接表22中存储网络连接信息时方法100开始。当服务器应用16被初始化或请求打开(建立)连接时,在这里该连接建立被认为是“新连接”,并且关于该新连接的连接信息将被存储在直接表22中。服务器应用16向TCP/IP栈20提供请求以接受访问该服务器应用的任何客户机请求,并且向该栈提供用于该应用的协议(例如,TCP)和服务器TCP端口(并且,在某些情况下提供IP地址)。此外,将典型地在客户机和服务器建立通信之后,例如当使用TCP协议时在3次握手之后,存储已建立连接的连接信息。
该方法开始于102,并且在步骤104,检查是否将存储5元组连接信息(5元组“模式”)。在该方法100的情境中,如果将不存储5元组模式,则将存储连接信息的3元组或2元组模式。
如此处所称的5元组模式是一位串(例如,在许多常见的TCP/IP实现中是104位),该串位被指定为定义5个连接参数:协议标识、源(客户机)地址、源端口、目的(服务器)地址和目的端口。当刚刚建立了连接,当源(客户机)和目的(服务器)已知时,将在所述表中存储5元组模式。将被存储在表22中的5元组是在所述3次握手的结尾接收到的包的头部中接收的。相反,如此处所称的3元组模式包括3个连接参数:协议标识、目的地址和目的端口,并且将在服务器应用已请求应当使到该应用的连接对客户机来说可用的时候被存储。3元组模式将5元组的另外两个字段置零。类似地,连接信息的2元组模式包括2个参数:协议标识和目的端口,并且将5元组的其他3个字段置零。当将使新连接成为可用时可以存储2元组模式而不是3元组模式,并且当不需指定目的地址时使用2元组模式。例如,某些服务器系统10可以具有可连接到的多个可用IP地址,从而必须使用3元组模式指定目的地址。其他系统可能仅具有一个地址,或可能不在意客户机连接到多个目的地址中的哪个,从而可以使用2元组模式。
如果将存储5元组模式,则该过程继续到下面将详细说明的步骤120。如果将存储3元组或2元组模式,则该过程继续到步骤106。在步骤106,通过在预定的字段中包括从服务器应用接收到的目的端口(DP)和协议(P),并且将源地址(SA)、源端口(SP)和目的地址(DA)字段置零来创建散列键。
在下面的步骤108中,将从步骤106得出的模式用作SYN散列过程中的散列键,该SYN散列过程被执行以确定将网络连接信息的模式存储在直接表22的哪个表行。此处所称的表“行”(或“位置”)指出可以存储多个表项并且可以被寻址的、所述表中的位置或空间;可以用多种方法实现表行。SYN散列仅使用整个模式中的DP和协议字段确定表22的表项。SYN散列是这样一种散列算法,它将大值键转换为较小值,该较小值可被索引到具有较少数目的行的表,其中所述较小值充分分布在该表的行的范围内。当在直接表22中查找3元组或2元组连接时,例如当服务器从客户机接收到SYN包时,使用SYN散列。在TCP协议中,SYN包是客户机发送到服务器以便启动连接的初始包。下面参考图7a描述本发明的SYN散列过程的例子。在其他实施例中,可以使用散列过程之外的其他表访问机制/过程,例如,一种这样的表访问机制,即给定一键,提供到具有一个或多个表项的表内的行的访问。
在下面的步骤110中,该过程检查将存储的模式是3元组还是2元组。通过将3或2元组模式放置在连接表内,它指出该应用正在侦听连接。如果模式是3元组,即,如果做出请求的服务器应用提供了协议、目的端口和目的地址,则该过程继续到步骤112,在此创建3元组模式,其中来自服务器应用的P、DP和DA字段被包括在适当字段内,并且SA和SP字段被置零。在步骤114,将从步骤112得出的模式存储在步骤108确定的表22的表行处的下一个可用表项(空位)内。此外,一队列号被与所述3元组模式一起存储在所确定的表项处。该队列号,例如,标识进入的SYN包应当被存储在服务器的哪个连接队列内以进行处理。每个连接队列与到服务器应用16的特定连接相关联。因此,当TCP/IP栈20处理连接队列中的包时,它将适当的数据发送到与该连接相关联的服务器应用。在其他实施例中,例如,如果没有实现连接队列,可以在该表项中存储其他类型的参考信息而不是队列号以指出与所存储的模式相关联的连接。在步骤114之后,该过程在116完成。
如果在步骤110将存储的模式是2元组,即,如果做出请求的服务器应用提供了协议和目的端口(而没有目的地址),则该过程继续到步骤118,在此将从步骤106得出的散列键模式存储在步骤108确定的表22的表行处的下一个可用表项内。该散列键模式具有置零的SA、SP和DA字段,并且因此等同于2元组模式。此外,将一队列号(例如)与该2元组模式(散列键)一起存储在该表项处,该队列号标识出应当将匹配的SYN包存储在服务器的哪个连接队列内以进行处理。在步骤118之后,该过程在116完成。
如果在步骤104该过程发现将存储5元组模式,则执行步骤120。在步骤120,将接收到的整个模式用作散列键,并且执行TCP/UDP散列以确定存储接收到的5元组模式的表22的行。TCP/UDP散列算法使用该模式的所有字段,即,整个位模式,以确定表22中的表行的地址值,并且因此不同于步骤108的SYN散列算法,该SYN散列算法为散列键将整个模式中的3个字段置零。下面参考图7b描述本发明的TCP/UDP散列过程的例子。
在下面的步骤122,将接收到的连接信息的5元组模式存储在直接表22中由步骤120的散列算法确定的表行内的下一个可用表项处。此外,将一队列号(或其他类型的参考信息)与该5元组模式一起存储在该表项处,该队列号标识匹配的包应当被存储在服务器的哪个连接队列内。因此该过程在116完成。
应当注意,表22的每个行中的每个表项都是可以存储5元组、3元组或2元组模式的一般表项;3元组和2元组模式实际上是特定字段置零的的5元组。3元组和2元组模式中的零产生无效的5元组,从而该表内的2元组、3元组和5元组域中没有重叠。因此,本发明使得对5元组模式的搜索不会因为错误而发现3元组或2元组模式。
图3是根据本发明在直接表中存储连接信息的例子的示意图150。图150示出了如上面参考图2描述的存储在直接表22内的三种形式的连接信息,即5元组、3元组和2元组。
当在表22内存储5元组模式152时,整个模式152被用作TCP/UDP散列过程154中的散列键。散列过程154的结果被用作到直接表22内的行的地址156,该行在这个例子中是行“47”,并且将该5元组模式存储在该行内的下一个可用表项(即,空位)中。此外,将队列(参考)号158存储在与该5元组模式相同的行和表项处,在所述的例子中,该队列号指出应当存储匹配的包以便最终为相关的连接和服务器应用16处理所述匹配的包的特定连接队列。
还可以在表22中存储3元组模式160。3元组模式160使其SA和SP字段置零。为了创建用于散列过程的散列键162,模式160也将其DA字段置零。将散列键162提供给SYN散列过程164,并且散列过程164的结果被用作到直接表22内的行的地址166。将3元组模式160存储在该行(在这个例子中为行47)处的下一个可用表项内,并且将一参考(例如,队列)号168存储在同一行和表项,在该例子中该参考号指出用于该特定连接和服务器应用16的特定连接队列。
还可以将2元组模式170存储在表22内。2元组模式170使其SA、SP和DA字段置零。因此,模式170也可用作SYN散列键,并且被提供给SYN散列过程172。将散列过程172的结果作用直接表22内的地址174。将2元组模式170存储在由地址172指示的行(在这个例子中为行47)的下一个可用表项内,并且将参考(例如,队列)号176存储在同一行和表项。
应当注意,在该例子中,5元组模式152、3元组模式160和2元组模式170都存储在直接表22的同一行的表项内(而且,可以在同一行存储多个5元组、3元组或2元组)。在图3的例子中,TCP/UDP散列过程154和SYN散列过程164和172采用了不同的散列键模式,并且提供了直接表22的相同的地址(行47)以说明该特征。使用不同的散列算法允许单个表22在任何行内存储多种类型的模式,从而消除了如现有实现中那样低效率地使用多个表。
另外,多个表项被存储在所述表的每个行内,这允许散列过程减少可被寻址的表行数目(例如,散列过程154、164和172产生比可能的模式范围更小的表内地址范围)。例如,一预先确定的表项数可用于图3中的行47处的模式存储。
在某些实施例中,还可以提供一溢出存储区域以提供附加表项,用于存储溢出表22的任何特定行的可用空间的模式。例如,可以存储附加表项的链表,或者类似于表22的结构的第二个表可以存储每个行的溢出模式。
图4是示出本发明的用于在直接表22中搜索网络连接信息的方法200的流程图。方法200可以在硬件中实现,例如,通过实现在网络适配器26上的“搜索机制”。或者,方法200可以被实现为硬件或硬件和软件的组合。
典型地,当需要在直接表22中搜索网络连接信息时开始方法200。典型地当适配器26通过网络14从客户机接收到包时将搜索用于新连接的信息。该包包括头部,该头部包括5元组模式。当它是用于建立新连接的SYN包时,该5元组模式中仅有2或3个字段分别用于搜索2元组或3元组模式。当它是在已经建立的连接上通信的过程中接收到的包时,该方法使用整个5元组模式。
该方法从202开始,并在步骤204,检查接收到的包是否是SYN包。如果是,则该过程继续到步骤206,其中检索在该SYN包的头部中接收到的模式的特定字段,并且将其他字段置零以创建用于搜索的搜索模式,并且确定散列键。为了创建用于搜索的3元组搜索模式,将接收到的3元组参数(P、DP、DA)包括在搜索模式内,该搜索模式的SA和SP字段置零。为了创建用于搜索的2元组搜索模式和散列健,将接收到的2元组参数(P、DP)包括在搜索模式内,该搜索模式的SA、SP和DA字段置零。
在下面的步骤208,使用步骤206的散列键执行SYN散列过程以确定表22内的表行的地址。使用的SYN散列算法与上面参考图2解释的在表22内存储3元组或2元组连接信息时使用的SYN散列算法相同。下面参考图7a描述本发明的SYN散列过程的例子。还如上所述,可以使用其他表访问机制/过程而不是散列过程确定行地址。在步骤210,将步骤206的搜索模式与存储在所确定的行的表项处的模式比较(如果这是为当前搜索第一次执行步骤208,该表项是该行中的第一个表项)。因此,将3元组搜索模式与该模式比较,并且将2元组搜索模式与该模式比较。使用3元组模式的比较可以被认为是“一次”比较,并且使用2元组模式的比较可以被认为是“二次”比较。
在步骤212,如果2元组搜索模式与当前表项中的模式匹配,即如果完成了二次匹配,则该过程存储该表项内的信息。可将该信息存储在方便的缓冲区内,并且可以包括如在该表中存储的该模式和与该模式相关联的参考信息。如下所述,如果在该表行中没有发现一次匹配,则这个信息以后可用于该过程的步骤224。
在步骤214,该过程检查3元组搜索模式和存储在当前表项处的模式之间是否存在匹配。如果存在一次匹配,则在步骤216,采用匹配的模式表项作为所希望的连接,并且读取与表22中匹配的模式相关联的队列号(或其他类型的参考信息),以确定将接收到的包传递到哪个连接和服务器应用16。然后该过程在218完成。
如果在步骤214不存在3元组搜索模式与该模式的匹配,则该过程继续到步骤220,其中该过程检查该表行内是否有更多保持有模式的表项没有被比较。如果是,则在步骤222,将表项指针移动到该表行内的下一个表项,并且该过程返回步骤210,将该搜索模式与存储在该下一个表项内的模式进行比较。如上所述,某些实施例可以使用附加表或其他存储结构,以提供在溢出情况下存储该行的附加模式的附加表项。
如果在步骤214没有发现一次匹配,并且在步骤220该表行内没有更多表项要进行比较,则该过程继续到步骤230,其中采用该行的第一个2元组二次匹配作为所希望的连接。该第一个二次匹配表项信息是从缓冲区中得知的,其中每次为当前行发现二次匹配时,在步骤212将该二次匹配表项信息存储在该缓冲区内。读取与表22内的匹配模式相关联的参考信息(队列号)以确定将接收到的包传递到哪个连接和服务器应用16,并且该过程在218完成。
如果接收到的包在204的检查中被确定为非SYN包,则该过程继续到步骤226,其中使用在该包的头部中提供的完整的模式作为散列键执行TCP/UDP散列操作。下面参考图7b描述本发明的TCP/UDP散列过程的例子。在步骤228,将接收到的整个模式用作搜索模式,并且与存储在由步骤226的散列操作的结果指向的表行中的表项处的5元组模式比较(第一次执行步骤228时,所述表项是该行的第一个表项)。如上所述,所使用的每个表项存储着模式和参考信息。
在步骤230,该过程检查搜索模式和存储在该表内的模式之间是否匹配。如果不匹配,则在步骤232,将表项指针移到该表行中的下一个表项,并且该过程返回步骤228,以便将该搜索表项和存储在该下一个表项内的模式进行比较。如果在步骤230存在匹配,则该过程继续到步骤216,其中采用匹配模式表项作为所希望的连接,并且读取与该表项内的匹配模式相关联的队列号(或其他参考信息),以确定将接收到的包传递到哪个连接和服务器应用16。可将匹配的连接信息提供给服务器系统10的适当组件以便将其转发给应用16。然后该过程在218完成。
在其他实施例中,可以使用其他方法比较和寻找3元组和2元组的一次和二次匹配。例如,可以跳过存储二次匹配信息的步骤212,并且仅在发现存储在该行的表项(以及用于该行的任何溢出表项)内的所有模式都不与3元组搜索模式匹配之后,才可将2元组搜索模式与存储在该行内的模式进行比较。
图5是如以上参考图4所述的根据本发明当接收到SYN包以建立新连接时在直接表中搜索连接信息的示意图250。
在第一个例子中,从接收到的SYN包中的信息创建模式252。由于它是SYN包,必须在直接表22中搜索3元组或2元组模式。如图所示,将创建的模式的SA和SP字段置零以创建3元组搜索模式254。另外将接收到的模式的DA字段置零,以创建散列键256(它也是2元组搜索模式)。SYN散列过程258得出到直接表22中的行的索引或地址260,在这个例子中它是行“47”。然后,将3元组搜索模式254与存储在该行的(第一个)表项的模式261进行比较。因为模式261是5元组模式,不存在匹配,所以该过程移动到该行的下一个表项,将该3元组搜索模式和模式262进行比较。在该例子中,这些模式之间存在匹配,所以检索与该模式相关联的队列号264。根据图4的方法,在比较3元组搜索模式的同时,附加地同时将与散列键256相同的2元组搜索模式与模式261和262进行比较;然而,这些比较在该例子中是不相关的,因为模式261不与2元组搜索模式匹配,并且模式262与3元组搜索模式匹配。
在另一个例子中,从接收到的SYN包中的信息创建模式270。模式271中的DA字段与模式252中的DA字段是不同的。创建的模式的SA和SP字段被置零以创建3元组搜索模式272。该模式的DA字段被置零以创建2元组搜索模式/散列键274。SYN散列过程276得出到直接表22中的行的索引或地址278,在该例子中为行“47”(与上述例子中相同的行)。然后将3元组搜索模式272和2元组搜索模式274与存储在该行的(第一个)表项的模式261进行比较。因为模式261是5元组模式,没有匹配,所以该过程移动到该行的下一个表项,并且将3元组和2元组搜索模式与模式262比较。在该例子中,再次没有匹配。类似地,将3元组和2元组搜索模式与该行中的下一个表项即模式266进行比较。此处,3元组模式不匹配,但是发现了针对2元组模式的二次匹配,从而存储表项信息(图4中的步骤212)。在这个例子中,为该行中的所有表项(包括任何溢出表项)继续进行搜索模式的这种比较,并且如虚线276指示的,没有发现针对该行的任何表项的一次匹配。因此,从该行选择第一个二次匹配。在该例子中,第一个二次匹配针对模式266。从存储器中检索与模式266相关联的队列号280,以确定将接收到的包传递到哪个连接。
图6是如以上参考图4所述的根据本发明当接收到非SYN包时在直接表22中搜索连接信息的示意图300。
在示出的例子中,接收到的非SYN包包括具有5元组模式302的头部。因为它是非SYN包,不需要修改5元组模式,并且可以直接用作直接表22的搜索模式。与5元组模式302相同的散列键用于TCP/UDP散列过程304,得出到直接表22中的行的索引或地址306,在这个例子中为行“47”。将5元组搜索模式302与存储在该表项的模式308进行比较。在这个例子中,这些模式之间存在匹配,从而检索存储在表22内并且与模式308相关联的参考信息(例如,队列号)310。如果没有发现匹配,则将比较该行的下一个表项中的模式,并且如此类推,包括任何填充的溢出表项。
图7a和7b示出了可用于本发明的散列过程。在这些例子中,使用6元组的连接信息而不是上述的5元组。附加的元组用于为本发明的使用逻辑端口的实现标识逻辑端口(LP)号和协议(TCP或UDP)。连接信息模式的其他部分与上述相同。可以在不使用该附加元组的其他实施例中适当地修改这些过程。散列输出数是与输入键具有一对一对应关系的n位数字。
图7a示出了可以在图2的步骤108和图4的步骤208中使用的本发明的SYN散列过程350。6元组模式352包括2元组连接信息(SA、SP和置零的DA),并且将在SYN散列过程350中用作散列键。如图所示交换模式352的字节以创建模式354。选择这种交换从而“熵”(最大的变化)出现在左侧最高有效位中,从而模式在直接表22中的分布最有效。通过将原始键的包含最大熵的字节字段移到该键的最高有效字节,最大输出熵包含在该散列过程的最高有效位内。在这个例子中,交换前的键为ABCDEFGHIJKLM000,并且交换后的模式为KLMGHABCDEFIJ000。
执行附加的交换以创建模式356,并且每32位要经历32位散列358。该散列358可以是标准的散列算法。如图所示,散列的结果在阶段360被异或,以得到最后的32位模式,它是该散列过程的结果。将该结果的最高位(按照直接表的要求)用于计算到直接表22的索引。
图7b示出了可以在图2的步骤120和图4的步骤226中使用的本发明的TCP/UDP散列过程370。6元组模式372包括5元组连接信息,并且在散列过程370中用作散列键。如图所示交换模式372的字节以创建模式374。选择该交换,从而类似于上述的过程350,熵在最高有效位内。在这个例子中,交换前的键是ABCDEFGHIJKLM000,并且交换后的模式是CDIJABEFGHKLM000。
执行附加的交换以创建模式376,并且每32位要经历32位散列378。该散列378可以是标准的散列算法。如图所示,散列的结果在阶段380被异或,以得到最后的32位模式,它是该散列过程的结果。将该结果的最高位(按照直接表的要求)用于计算到直接表22的索引。
虽然已经根据示出的实施例描述了本发明,本领域的普通技术人员将易于理解,可存在这些实施例的变形,并且这些变形将在本发明的精神和范围内。因此,可由本领域的普通技术人员做出多种修改而不脱离所附权利要求的精神和范围。
Claims (31)
1.一种用于搜索网络连接的方法,该方法包括:
通过网络在计算机系统上接收包并从所述包中检索连接信息,并且如果将建立新连接,则将所述连接信息内的特定字段置零;
使用表访问过程将所述连接信息转换为直接表内的位置的地址,其中所述直接表存储着用于新连接和已有连接的模式和相关的参考信息;以及
将所述连接信息与存储在所述直接表的由所述地址指示的位置处的至少一个模式进行比较,以寻找用于所述接收到的包的参考信息。
2.如权利要求1的方法,其中所述参考信息指出所述计算机系统内的、通过其发送所述接收到的包的连接。
3.如权利要求2的方法,其中所述参考信息与所述模式存储在所述直接表的相同的表项内,并且其中所述连接信息与所述模式的匹配允许将存储在该表项的参考信息从所述直接表中被检索出来。
4.如权利要求1的方法,其中所述表访问过程是散列过程。
5.如权利要求4的方法,其中使用散列过程将所述连接信息转换为地址包括使用从所述连接信息中得出的散列键。
6.如权利要求5的方法,其中所述散列过程将所述散列键的包含最大熵的字节字段移动到所述散列键的最高有效字节处。
7.如权利要求5的方法,其中所述直接表存储具有2个字段置零的3元组模式、具有3个字段置零的2元组模式以及没有字段置零的5元组模式,并且可以在所述直接表的任何表项内存储任何这些类型的模式。
8.如权利要求7的方法,其中当为新连接比较所述连接信息和所述直接表中的模式时,使用第一散列过程提供所述直接表的所述位置的地址,并且当为已建立的连接比较所述连接信息和所述直接表中的模式时,使用第二种不同的散列过程提供所述位置的地址。
9.如权利要求1的方法,其中对于已建立的连接,将全部所述检索到的连接信息用作5元组模式,并与存储在所述直接表内的模式比较,并且对于新连接,将带有置零的特定字段的所述连接信息用作3元组模式或2元组模式,并且与存储在所述直接表内的模式比较。
10.如权利要求1的方法,其中所述比较包括将所述连接信息与存储在所述直接表的多个表项内的模式进行比较,直到发现匹配。
11.如权利要求10的方法,其中所述比较连接信息包括使用3元组搜索模式进行一次比较和使用2元组搜索模式进行二次比较,其中如果没有发现与模式的一次匹配,则使用二次匹配确定用于接收到的包的参考信息。
12.如权利要求11的方法,其中使用所述2元组搜索模式与所述直接表内的模式的第一个二次匹配,以确定用于接收到的包的参考信息。
13.一种用于存储网络连接信息的方法,该方法包括:
接收网络连接信息;
如果所述网络连接信息涉及新连接,则将所述网络连接信息内的特定字段置零;
使用表访问过程将所述网络连接信息转换为直接表中的地址;以及
将所述连接信息作为模式存储以及将连接参考信息存储在所述直接表的相应于所述地址的位置处,其中所述直接表存储着用于新连接和已有连接的连接信息和参考信息。
14.如权利要求13的方法,其中将用于网络连接的所述连接参考信息存储在所述直接表的与所述模式相同的表项内,从而当接收到包括网络连接信息的包时,所述网络连接信息和所述模式的匹配允许将存储在该表项的参考信息从所述直接表中检索出来。
15.如权利要求13的方法,其中所述表访问过程是散列过程。
16.如权利要求15的方法,其中使用散列过程将所述连接信息转换为地址包括使用从所述连接信息中得出的散列键。
17.如权利要求16的方法,其中所述直接表存储具有2个字段置零的3元组模式、具有3个字段置零的2元组模式以及没有字段置零的5元组模式,并且可以在所述直接表的任何表项内存储任何这些类型的模式。
18.如权利要求17的方法,其中当存储用于新连接的3元组模式和2元组模式时,使用第一散列过程提供到所述直接表的地址,并且当存储用于已建立的连接的5元组模式时,使用第二不同的散列过程提供到所述直接表的地址。
19.如权利要求13的方法,其中将所述网络连接信息内的特定字段置零包括将字段置零以创建3元组模式或2元组模式。
20.如权利要求19的方法,其中通过将所述模式中的源地址字段和源端口字段置零创建所述3元组模式,并且通过将所述模式中的源地址字段、源端口字段和目的地址字段置零创建所述2元组模式。
21.如权利要求13的方法,其中当存储用于已建立的连接的模式时,将所述连接信息作为5元组模式存储在所述直接表内,并且当存储用于新连接的模式时,将所述连接信息作为带有置零的特定字段的3元组模式或2元组模式存储在所述直接表内。
22.如权利要求13的方法,其中当服务器应用请求建立连接时,将用于新连接的模式和参考信息存储在所述直接表内。
23.如权利要求13的方法,其中当存储所述直接表的服务器处通过网络从客户机接收到包时,将用于已建立的连接的模式和参考信息存储在所述直接表内。
24.一种用于搜索网络连接的装置,该装置包括:
用于通过网络在计算机系统上接收包,并且从所述包中检索连接信息的装置;
用于如果将建立新连接,则将所述连接信息内的特定字段置零的装置;
用于使用表访问过程将所述连接信息转换为直接表内的位置的地址的装置,其中所述直接表存储着用于新连接和已有连接的模式和相关的参考信息;以及
用于将所述连接信息与存储在所述直接表的由所述地址指示的位置处的至少一个模式进行比较,以寻找用于所述接收到的包的参考信息的装置。
25.如权利要求24的装置,其中所述参考信息指出所述计算机系统内的、通过其发送接收到的包的连接,其中所述参考信息与所述模式存储在直接表的相同的表项内,并且其中所述连接信息与所述模式的匹配允许将存储在该表项的参考信息从所述直接表中检索出来。
26.如权利要求24的装置,其中所述表访问过程是散列过程,并且其中用于使用散列过程将所述连接信息转换为地址的装置包括用于使用从所述连接信息中得出的散列键的装置。
27.如权利要求26的装置,其中所述直接表存储具有2个字段置零的3元组模式、具有3个字段置零的2元组模式以及没有字段置零的5元组模式,并且可以在所述直接表的任何表项内存储任何这些类型的模式。
28.如权利要求24的装置,其中所述用于比较的装置使用检索到的全部连接信息作为将为已建立的连接与存储在所述直接表内的模式进行比较的5元组模式,并且使用带有置零的特定字段的所述连接信息作为将为新连接与存储在所述直接表内的模式进行比较的3元组模式或2元组模式。
29.一种允许存储和搜索网络连接信息的装置,所述装置包括:
在存储器中提供的直接表,所述直接表运行以存储网络连接信息,所述网络连接信息包括用于新网络连接的3元组和2元组模式和用于已建立的网络连接的5元组模式,以及指向网络连接的相关联的参考信息;以及
在网络适配器设备上实现并且连接所述直接表的搜索机构,当通过网络接收到包括连接信息的包时,所述搜索机构运行以便在所述直接表中搜索网络连接信息,其中所述搜索机构从所述包连接信息中创建搜索模式,所述搜索模式用于在所述直接表中搜索匹配模式以便寻找相关联的参考信息。
30.如权利要求29的装置,其中所述3元组和2元组模式是具有多个字段置零的5元组,并且其中为新连接创建的搜索模式是3元组或2元组模式,所述3元组或2元组模式是具有多个字段置零的5元组。
31.如权利要求29的装置,其中所述搜索机构将包连接信息转换为散列键,该散列键将被用于散列过程以便定位所述直接表内具有与所述搜索模式匹配的模式的行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/096,571 US7577151B2 (en) | 2005-04-01 | 2005-04-01 | Method and apparatus for providing a network connection table |
US11/096,571 | 2005-04-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1842042A true CN1842042A (zh) | 2006-10-04 |
CN100536416C CN100536416C (zh) | 2009-09-02 |
Family
ID=37030891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100674495A Expired - Fee Related CN100536416C (zh) | 2005-04-01 | 2006-03-27 | 用于搜索网络连接的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7577151B2 (zh) |
JP (1) | JP4716909B2 (zh) |
CN (1) | CN100536416C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552788B (zh) * | 2008-04-04 | 2012-08-22 | 佳能株式会社 | 会话管理系统及其控制方法 |
CN103248582A (zh) * | 2012-02-13 | 2013-08-14 | 丛林网络公司 | 用于在网络装置中执行包流查找的流缓存器机制 |
CN106341319A (zh) * | 2016-08-29 | 2017-01-18 | 烽火通信科技股份有限公司 | 一种CPE设备基于Linux架构的路由加速系统及方法 |
CN108076427A (zh) * | 2017-12-12 | 2018-05-25 | 洛阳理工学院 | 一种连接网络的方法、装置和网络适配器 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060029000A1 (en) * | 2004-05-14 | 2006-02-09 | International Business Machines Corporation | Connection establishment in a proxy server environment |
US8250229B2 (en) * | 2005-09-29 | 2012-08-21 | International Business Machines Corporation | Internet protocol security (IPSEC) packet processing for multiple clients sharing a single network address |
US8027969B2 (en) * | 2005-12-29 | 2011-09-27 | Sap Ag | Efficient calculation of sets of distinct results in an information retrieval service |
JP4829633B2 (ja) * | 2006-02-14 | 2011-12-07 | 株式会社リコー | 機器情報取得装置及び機器情報取得プログラム |
CN100407705C (zh) * | 2006-04-12 | 2008-07-30 | 华为技术有限公司 | 一种路由器控制方法和系统 |
US7852850B2 (en) * | 2006-04-26 | 2010-12-14 | Marvell Israel (M.I.S.L.) Ltd. | Double-hash lookup mechanism for searching addresses in a network device |
US7715428B2 (en) * | 2007-01-31 | 2010-05-11 | International Business Machines Corporation | Multicore communication processing |
US7953895B1 (en) | 2007-03-07 | 2011-05-31 | Juniper Networks, Inc. | Application identification |
JP5178539B2 (ja) * | 2008-04-04 | 2013-04-10 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、セッション管理システム並びにプログラム |
KR101160382B1 (ko) * | 2008-04-04 | 2012-06-26 | 캐논 가부시끼가이샤 | 세션 관리 시스템 및 그 제어 방법 |
TW201031141A (en) * | 2009-02-04 | 2010-08-16 | Univ Nat Taiwan | Packets inspection device and method |
US20130185430A1 (en) * | 2012-01-18 | 2013-07-18 | LineRate Systems, Inc. | Multi-level hash tables for socket lookups |
US20190044809A1 (en) * | 2017-08-30 | 2019-02-07 | Intel Corporation | Technologies for managing a flexible host interface of a network interface controller |
Family Cites Families (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US672769A (en) * | 1901-02-23 | 1901-04-23 | John Stanley Holme | Method of forming ends of railway-rails for splicing. |
US5058110A (en) * | 1989-05-03 | 1991-10-15 | Ultra Network Technologies | Protocol processor |
EP0549924A1 (en) * | 1992-01-03 | 1993-07-07 | International Business Machines Corporation | Asynchronous co-processor data mover method and means |
US5430842A (en) * | 1992-05-29 | 1995-07-04 | Hewlett-Packard Company | Insertion of network data checksums by a network adapter |
US5752078A (en) * | 1995-07-10 | 1998-05-12 | International Business Machines Corporation | System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory |
US6233686B1 (en) * | 1997-01-17 | 2001-05-15 | At & T Corp. | System and method for providing peer level access control on a network |
US5983274A (en) * | 1997-05-08 | 1999-11-09 | Microsoft Corporation | Creation and use of control information associated with packetized network data by protocol drivers and device drivers |
US6226680B1 (en) * | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US6434620B1 (en) * | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US6658002B1 (en) * | 1998-06-30 | 2003-12-02 | Cisco Technology, Inc. | Logical operation unit for packet processing |
US6970419B1 (en) * | 1998-08-07 | 2005-11-29 | Nortel Networks Limited | Method and apparatus for preserving frame ordering across aggregated links between source and destination nodes |
DE19836700A1 (de) * | 1998-08-13 | 2000-02-17 | Hoechst Schering Agrevo Gmbh | Herbizide Mittel für tolerante oder resistente Getreidekulturen |
US6650640B1 (en) * | 1999-03-01 | 2003-11-18 | Sun Microsystems, Inc. | Method and apparatus for managing a network flow in a high performance network interface |
US6400730B1 (en) * | 1999-03-10 | 2002-06-04 | Nishan Systems, Inc. | Method and apparatus for transferring data between IP network devices and SCSI and fibre channel devices over an IP network |
US6937574B1 (en) * | 1999-03-16 | 2005-08-30 | Nortel Networks Limited | Virtual private networks and methods for their operation |
JP3403971B2 (ja) * | 1999-06-02 | 2003-05-06 | 富士通株式会社 | パケット転送装置 |
GB2352360B (en) * | 1999-07-20 | 2003-09-17 | Sony Uk Ltd | Network terminator |
US6427169B1 (en) * | 1999-07-30 | 2002-07-30 | Intel Corporation | Parsing a packet header |
US7130958B2 (en) * | 2003-12-02 | 2006-10-31 | Super Talent Electronics, Inc. | Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes |
US6724769B1 (en) | 1999-09-23 | 2004-04-20 | Advanced Micro Devices, Inc. | Apparatus and method for simultaneously accessing multiple network switch buffers for storage of data units of data frames |
JP3381687B2 (ja) * | 1999-11-25 | 2003-03-04 | 日本電気株式会社 | フロー識別装置、フロー処理装置、フロー識別方法及びフロー処理方法 |
US6788697B1 (en) * | 1999-12-06 | 2004-09-07 | Nortel Networks Limited | Buffer management scheme employing dynamic thresholds |
US6822968B1 (en) * | 1999-12-29 | 2004-11-23 | Advanced Micro Devices, Inc. | Method and apparatus for accounting for delays caused by logic in a network interface by integrating logic into a media access controller |
CA2333495A1 (en) * | 2000-01-31 | 2001-07-31 | Telecommunications Research Laboratory | Internet protocol-based computer network service |
US7308006B1 (en) * | 2000-02-11 | 2007-12-11 | Lucent Technologies Inc. | Propagation and detection of faults in a multiplexed communication system |
US6988235B2 (en) | 2000-03-02 | 2006-01-17 | Agere Systems Inc. | Checksum engine and a method of operation thereof |
US7334216B2 (en) * | 2000-04-04 | 2008-02-19 | Sosy, Inc. | Method and apparatus for automatic generation of information system user interfaces |
US6735670B1 (en) | 2000-05-12 | 2004-05-11 | 3Com Corporation | Forwarding table incorporating hash table and content addressable memory |
US6678746B1 (en) * | 2000-08-01 | 2004-01-13 | Hewlett-Packard Development Company, L.P. | Processing network packets |
US6754662B1 (en) | 2000-08-01 | 2004-06-22 | Nortel Networks Limited | Method and apparatus for fast and consistent packet classification via efficient hash-caching |
CA2415888C (en) * | 2000-08-04 | 2008-10-21 | Avaya Technology Corporation | Intelligent demand driven recognition of url objects in connection oriented transactions |
US8019901B2 (en) * | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
US7218632B1 (en) * | 2000-12-06 | 2007-05-15 | Cisco Technology, Inc. | Packet processing engine architecture |
US6954463B1 (en) * | 2000-12-11 | 2005-10-11 | Cisco Technology, Inc. | Distributed packet processing architecture for network access servers |
JP4023998B2 (ja) * | 2000-12-15 | 2007-12-19 | 沖電気工業株式会社 | データグラム転送装置 |
US7131140B1 (en) * | 2000-12-29 | 2006-10-31 | Cisco Technology, Inc. | Method for protecting a firewall load balancer from a denial of service attack |
US7023811B2 (en) * | 2001-01-17 | 2006-04-04 | Intel Corporation | Switched fabric network and method of mapping nodes using batch requests |
US7149817B2 (en) * | 2001-02-15 | 2006-12-12 | Neteffect, Inc. | Infiniband TM work queue to TCP/IP translation |
US6728929B1 (en) * | 2001-02-16 | 2004-04-27 | Spirent Communications Of Calabasas, Inc. | System and method to insert a TCP checksum in a protocol neutral manner |
US20020138648A1 (en) * | 2001-02-16 | 2002-09-26 | Kuang-Chih Liu | Hash compensation architecture and method for network address lookup |
JP3963690B2 (ja) * | 2001-03-27 | 2007-08-22 | 富士通株式会社 | パケット中継処理装置 |
US7292586B2 (en) | 2001-03-30 | 2007-11-06 | Nokia Inc. | Micro-programmable protocol packet parser and encapsulator |
US7274706B1 (en) * | 2001-04-24 | 2007-09-25 | Syrus Ziai | Methods and systems for processing network data |
JP3936550B2 (ja) * | 2001-05-14 | 2007-06-27 | 富士通株式会社 | パケットバッファ |
US7164678B2 (en) * | 2001-06-25 | 2007-01-16 | Intel Corporation | Control of processing order for received network packets |
US20030026252A1 (en) * | 2001-07-31 | 2003-02-06 | Thunquest Gary L. | Data packet structure for directly addressed multicast protocol |
US6976205B1 (en) * | 2001-09-21 | 2005-12-13 | Syrus Ziai | Method and apparatus for calculating TCP and UDP checksums while preserving CPU resources |
US7124198B2 (en) * | 2001-10-30 | 2006-10-17 | Microsoft Corporation | Apparatus and method for scaling TCP off load buffer requirements by segment size |
US6907466B2 (en) * | 2001-11-08 | 2005-06-14 | Extreme Networks, Inc. | Methods and systems for efficiently delivering data to a plurality of destinations in a computer network |
EP1464144A4 (en) * | 2001-11-09 | 2010-09-22 | Vitesse Semiconductor Corp | MEANS AND METHOD FOR SWITCHING PACKETS OR DATA FRAMES |
US7286557B2 (en) * | 2001-11-16 | 2007-10-23 | Intel Corporation | Interface and related methods for rate pacing in an ethernet architecture |
US7236492B2 (en) | 2001-11-21 | 2007-06-26 | Alcatel-Lucent Canada Inc. | Configurable packet processor |
AU2002365837A1 (en) | 2001-12-03 | 2003-06-17 | Tagore-Brage, Jens P. | Interface to operate groups of inputs/outputs |
US8370936B2 (en) * | 2002-02-08 | 2013-02-05 | Juniper Networks, Inc. | Multi-method gateway-based network security systems and methods |
US7254138B2 (en) * | 2002-02-11 | 2007-08-07 | Optimum Communications Services, Inc. | Transparent, look-up-free packet forwarding method for optimizing global network throughput based on real-time route status |
US7269661B2 (en) * | 2002-02-12 | 2007-09-11 | Bradley Richard Ree | Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet |
US6912612B2 (en) * | 2002-02-25 | 2005-06-28 | Intel Corporation | Shared bypass bus structure |
US7283528B1 (en) * | 2002-03-22 | 2007-10-16 | Raymond Marcelino Manese Lim | On the fly header checksum processing using dedicated logic |
US7304941B2 (en) * | 2002-04-11 | 2007-12-04 | International Business Machines Corporation | Switchover system and method in a data packet switching network |
US20040030766A1 (en) * | 2002-08-12 | 2004-02-12 | Michael Witkowski | Method and apparatus for switch fabric configuration |
US7251704B2 (en) | 2002-08-23 | 2007-07-31 | Intel Corporation | Store and forward switch device, system and method |
US7031304B1 (en) * | 2002-09-11 | 2006-04-18 | Redback Networks Inc. | Method and apparatus for selective packet Mirroring |
KR100486713B1 (ko) * | 2002-09-17 | 2005-05-03 | 삼성전자주식회사 | 멀티미디어 스트리밍 장치 및 방법 |
US7271706B2 (en) * | 2002-10-09 | 2007-09-18 | The University Of Mississippi | Termite acoustic detection |
KR100454681B1 (ko) * | 2002-11-07 | 2004-11-03 | 한국전자통신연구원 | 프레임 다중화를 이용한 이더넷 스위칭 장치 및 방법 |
KR100460672B1 (ko) * | 2002-12-10 | 2004-12-09 | 한국전자통신연구원 | 10 기가비트 이더넷 회선 정합 장치 및 그 제어 방법 |
US20040218623A1 (en) * | 2003-05-01 | 2004-11-04 | Dror Goldenberg | Hardware calculation of encapsulated IP, TCP and UDP checksums by a switch fabric channel adapter |
US7298761B2 (en) * | 2003-05-09 | 2007-11-20 | Institute For Information Industry | Link path searching and maintaining method for a bluetooth scatternet |
US7418505B2 (en) * | 2003-05-26 | 2008-08-26 | Ewha University Industry Collaboration Foundation | IP address lookup using either a hashing table or multiple hash functions |
CN100356752C (zh) * | 2003-06-14 | 2007-12-19 | 华为技术有限公司 | 一种网络地址资源的利用方法 |
US20050022017A1 (en) * | 2003-06-24 | 2005-01-27 | Maufer Thomas A. | Data structures and state tracking for network protocol processing |
CN100358288C (zh) * | 2003-07-12 | 2007-12-26 | 华为技术有限公司 | 在网络设备中处理五元流组的方法 |
US7098685B1 (en) * | 2003-07-14 | 2006-08-29 | Lattice Semiconductor Corporation | Scalable serializer-deserializer architecture and programmable interface |
US8776050B2 (en) | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
JP4437650B2 (ja) * | 2003-08-25 | 2010-03-24 | 株式会社日立製作所 | ストレージシステム |
US7441179B2 (en) * | 2003-10-23 | 2008-10-21 | Intel Corporation | Determining a checksum from packet data |
US7219294B2 (en) | 2003-11-14 | 2007-05-15 | Intel Corporation | Early CRC delivery for partial frame |
US20050114663A1 (en) * | 2003-11-21 | 2005-05-26 | Finisar Corporation | Secure network access devices with data encryption |
US7292591B2 (en) * | 2004-03-30 | 2007-11-06 | Extreme Networks, Inc. | Packet processing system architecture and method |
US7502474B2 (en) * | 2004-05-06 | 2009-03-10 | Advanced Micro Devices, Inc. | Network interface with security association data prefetch for high speed offloaded security processing |
US7272704B1 (en) | 2004-05-13 | 2007-09-18 | Verisilicon Holdings (Cayman Islands) Co. Ltd. | Hardware looping mechanism and method for efficient execution of discontinuity instructions |
US7461183B2 (en) * | 2004-08-03 | 2008-12-02 | Lsi Corporation | Method of processing a context for execution |
US7134796B2 (en) * | 2004-08-25 | 2006-11-14 | Opnext, Inc. | XFP adapter module |
US7436773B2 (en) * | 2004-12-07 | 2008-10-14 | International Business Machines Corporation | Packet flow control in switched full duplex ethernet networks |
US8040903B2 (en) * | 2005-02-01 | 2011-10-18 | Hewlett-Packard Development Company, L.P. | Automated configuration of point-to-point load balancing between teamed network resources of peer devices |
US7620754B2 (en) * | 2005-03-25 | 2009-11-17 | Cisco Technology, Inc. | Carrier card converter for 10 gigabit ethernet slots |
-
2005
- 2005-04-01 US US11/096,571 patent/US7577151B2/en not_active Expired - Fee Related
-
2006
- 2006-03-27 CN CNB2006100674495A patent/CN100536416C/zh not_active Expired - Fee Related
- 2006-03-30 JP JP2006094101A patent/JP4716909B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552788B (zh) * | 2008-04-04 | 2012-08-22 | 佳能株式会社 | 会话管理系统及其控制方法 |
CN103248582A (zh) * | 2012-02-13 | 2013-08-14 | 丛林网络公司 | 用于在网络装置中执行包流查找的流缓存器机制 |
CN103248582B (zh) * | 2012-02-13 | 2016-08-24 | 丛林网络公司 | 用于在网络装置中执行包流查找的流缓存器机制 |
CN106341319A (zh) * | 2016-08-29 | 2017-01-18 | 烽火通信科技股份有限公司 | 一种CPE设备基于Linux架构的路由加速系统及方法 |
CN106341319B (zh) * | 2016-08-29 | 2019-05-03 | 烽火通信科技股份有限公司 | 一种CPE设备基于Linux架构的路由加速系统及方法 |
CN108076427A (zh) * | 2017-12-12 | 2018-05-25 | 洛阳理工学院 | 一种连接网络的方法、装置和网络适配器 |
CN108076427B (zh) * | 2017-12-12 | 2021-04-27 | 洛阳理工学院 | 一种连接网络的方法、装置和网络适配器 |
Also Published As
Publication number | Publication date |
---|---|
US7577151B2 (en) | 2009-08-18 |
JP4716909B2 (ja) | 2011-07-06 |
US20060221977A1 (en) | 2006-10-05 |
CN100536416C (zh) | 2009-09-02 |
JP2006287932A (ja) | 2006-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1842042A (zh) | 用于搜索网络连接的方法和装置 | |
US11194719B2 (en) | Cache optimization | |
US8090790B2 (en) | Method and system for splicing remote direct memory access (RDMA) transactions in an RDMA-aware system | |
CN110290186B (zh) | 一种适用于多超算中心文件传输的系统及方法 | |
US8516074B2 (en) | System and methods for efficient media delivery using cache | |
US6754799B2 (en) | System and method for indexing and retrieving cached objects | |
RU2005124131A (ru) | Устройство обработки информации, способ управления содержанием, способ управления информацией содержания и компьютерная программа | |
US10805267B2 (en) | Systems and methods for geoprocessing-based computing network security | |
CN1242548A (zh) | 通过传输冗余语音/媒体帧进行因特网实时媒体传输的方法 | |
CN101364976B (zh) | 一种建立通信通道的方法、装置及数据通信系统 | |
CN1969525A (zh) | 用于减少通信网络上的传输量的通信服务器、方法和系统 | |
JP2002508133A (ja) | 拡張ネットワーク通信 | |
US7756961B2 (en) | Hardware device and method for creation and management of toe-based socket information | |
CN1722729A (zh) | 用于在异构网络之间通信的系统和方法 | |
US20130332986A1 (en) | Methods and apparatus for dynamically reducing virtual private network traffic from mobile devices | |
RU2642833C2 (ru) | Способ и устройство для обеспечения медиаресурса | |
CN1802836A (zh) | 网络协议卸载引擎存储器管理 | |
JP2011520169A (ja) | ディレクトリへのアクセスのための方法及びデバイス | |
CN1362820A (zh) | 在路由设备中为分组选择路由的方法 | |
WO2003051008A1 (en) | Packet ordering | |
CN1909518A (zh) | 一种路由方法和路由设备 | |
CN114338832B (zh) | 一种容器云平台的网络协议转换方法及系统 | |
RU2483457C2 (ru) | Платформа маршрутизации сообщений | |
CN1801718A (zh) | 一种内容分发网络中oma下载的实现方法 | |
US20200264844A1 (en) | Communicating shuffled media content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090902 Termination date: 20190327 |
|
CF01 | Termination of patent right due to non-payment of annual fee |