CN1695127A - 网络接口和协议 - Google Patents

网络接口和协议 Download PDF

Info

Publication number
CN1695127A
CN1695127A CN03825158.2A CN03825158A CN1695127A CN 1695127 A CN1695127 A CN 1695127A CN 03825158 A CN03825158 A CN 03825158A CN 1695127 A CN1695127 A CN 1695127A
Authority
CN
China
Prior art keywords
data
communication interface
mapping
processing equipment
memory
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
Application number
CN03825158.2A
Other languages
English (en)
Inventor
史蒂文·莱斯利·波普
德里克·爱德华·罗伯茨
戴维·詹姆斯·雷多驰
戴维·朱利安·克拉克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Level 5 Networks Ltd
Original Assignee
Level 5 Networks Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Level 5 Networks Ltd filed Critical Level 5 Networks Ltd
Publication of CN1695127A publication Critical patent/CN1695127A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/35Network arrangements, protocols or services for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function

Abstract

一种通信接口,所述通信接口提供数据链路和数据处理器之间的接口,所述数据处理器能够支持操作系统和用户应用,所述通信接口被设置成:支持通过链路接收的,并被寻址到与用户应用相关的逻辑数据端口的第一数据队列;支持通过链路接收的,并被识别为以操作系统为目标的第二数据队列;和分析通过链路接收的,并被识别为以操作系统或数据端口为目标的数据,以确定数据是否满足一个或多个预定标准,并且如果数据满足所述标准,那么向操作系统传送中断。

Description

网络接口和协议
技术领域
本发明涉及供通过网络传递数据之用的网络接口和协议。
背景技术
当要通过数据信道在两个设备之间传送数据时,每个设备必须具有恰当的网络接口,以允许它通过信道通信。设备和它们的网络接口使用协议来形成通过信道传送的数据,以致所述数据可在接收器被解码。数据信道可被看作是或者形成网络的一部分,其它的设备可以连接到该网络。
以太网系统被用于许多连网应用。千兆位以太网是一种高速形式的以太网协议,它特别适合于需要大量带宽的链接,例如服务器之间或者在相同或不同机壳中的数据处理器之间的链接。通过以太网系统通信的设备配有能够支持以太网系统的物理和逻辑要求的网络接口。网络接口的物理硬件组件被称为网络接口卡(NIC),尽管它们不必采取卡的形式:例如,它们可以采取直接安装在母板上的集成电路(IC)和连接器的形式。
在数据将在网络中的协作处理器之间传送时,通常实现一种存储映射系统。在存储映射系统中,依靠一个应用的正通过网络被映射到另一应用的虚拟地址空间的一部分实现应用之间的通信。形成映射的地址空间中的“孔洞”被称为小孔。
图1图解说明了经过网络,虚拟地址空间(X0-Xn)到另一虚拟地址空间(Y0-Yn)的映射。在这种系统中,可以访问X0-Xn存储空间的CPU能够访问存储单元x1,以便通过发出存储指令[st r1,x1],将寄存器r1的内容写入该存储单元中。采用存储映射单元(MMU)将虚拟存储器映射到物理存储位置。
从而会采取下述步骤:
1.CPU发出r1的内容(比如说值10),作为对虚拟地址x1的写操作。
2.MMU(它可在CPU之内)将虚拟地址x1变成物理地址pci1(这可包括页表遍历或页面故障)。
3.CPU的写入缓冲区发出“write 10,pci1”指令,该指令由CPU所位于的总线的控制器,本例中PCI(输入/输出总线子系统)控制器“捕捉”。该指令随后被转发到计算机的PCI总线上。
4.与该总线连接,并与网络连接的NIC“捕捉”该PCI指令,并将数据转发给虚拟地址空间(Y0-Yn)所存在的目的地计算机。
5.在该目的地计算机(假定具有等同的硬件),网卡发出PCI写入事务,将数据存储在存储器中。
6.接收应用具有映射到该存储器上的虚拟存储器,并且通过执行“load Y1”指令可读取该数据。
图2图解说明了这些步骤。图2图解说明每次硬件存储指令从一个硬件设备传送到另一硬件设备时,需要将地址从一个地址空间变换到另一个地址空间。另外注意非常类似的一串事件支持读取操作,PCI被假定为(但是并不要求为)主IO总线实现。
从而,总的存储空间映射{X0-Xn}→{Y0-Yn}由如下的一系列子映射实现:
{X0-Xn}
{PCI0,PCIn}(处理器1地址空间)
{PCI′0,PCI′n}(PCI总线地址空间)
网络-映射未示出
{PCI″0-PCI″n}(目的地PCI总线地址空间)
{mem0-memn}(目的地存储器地址空间)
{Y0-Yn}(目的地应用的虚拟地址空间)
图2中标记为“网络”的步骤要求NIC/网络控制器以目的地能够继续映射链的方式,将事务转发给正确的目的地主机。这是借助另外的存储器小孔来实现的。
使用小孔映射的两个主要原因是:
a)系统稳健性。在每次进行映射时,硬件可通过对照有效的小孔表进行匹配,检查地址的有效性。所获得的保护量是地址空间大小(比特)和分配的小孔(用比特表示的总大小)的比例。
b)地址位的存储。考虑32位存储器总线内的主机要求访问两个32位PCI总线的情况。从其字面上来看,这些不会是充足的位,因为最少应需要33位。但是,小孔的使用使得这两个PCI总线的子集可被访问:
{PCI0-PCIn}→{PCI′0-PCI′n}和
{PCIp-PCIq}→{PCI″p-PCI″q}
硬件地址映射和小孔在虚拟存储器和I/O总线映射(例如PCI)的领域中是众所周知的。但是,在要求通过网络实现映射时存在困难。主要的问题是:
1.可能需要管理大量的小孔,因为一个主机必须与网络内的许多其它主机通信。
2.在网络情况下,出于安全原因,通常将每个主机看作其自己的保护和管理域。从而,当将通过网络产生两个地址空间之间的连接时,并不是沿着该路径的所有小孔映射都可被启动主机设置。而是必须设计一种协议,所述协议允许在每个保护域内的所有映射由该域的“所有者”以建立端对端连接的方式设定。
3.出于安全的原因,通常网络内的主机并不完全信任其它主机,从而,映射方案应允许防止任意有故障的或者恶意的主机破坏另一主机的存储器。
按照惯例(例如对于以太网或ATM交换),协议栈和网络驱动器已驻留在内核中。这已被完成,从而使得
1.通过高级接口,网络硬件的复杂性可被隐藏;
2.实现网络硬件和其它系统资源(例如存储器)对于许多应用的安全多路复用;
3.实现系统防范有故障的或恶意应用的安全性。
在典型的内核堆栈系统的操作中,硬件网络接口卡连接在网络和内核之间。在内核中,设备驱动器层直接与NIC通信,协议层与系统的应用层通信。
NIC存储指向用于提供给内核的输入数据和将被提供给网络的输出数据的缓冲区的指针。这些被称为Rx数据环和Tx数据环。NIC更新指示Rx缓冲区环上将被内核读取的下一数据的缓冲区指针。Tx数据环由直接存储器存取(DMA)提供,NIC更新指示已被传送的输出数据的缓冲区指针。NIC能够利用中断用信号通知内核。
输入数据由内核从Rx数据环中采取,并被依次处理。带外数据通常由内核本身处理。将进入专用端口的数据由指针加入到特定于该端口的缓冲区队列中,所述缓冲区队列存在于内核的专用地址空间中。
在系统接收数据的操作期间发生下述步骤:
1.在系统初始化期间,操作系统设备驱动器创建内核缓冲区,并初始化NIC的Rx环,以指向这些缓冲区。另外从配置脚本,将其IP主机地址告知OS。
2.某一应用希望接收网络分组,并创建一个端口,所述端口是驻留在操作系统内的类似队列的数据结构。它具有以这样的方式为主机独有的许多端口,以致由<host:port>寻址的网络分组可被传送给该端口的队列。
3.分组到达网络接口卡(NIC)。NIC通过主机I/O总线(例如PCI总线)将分组复制到由下一个有效的Rx DMA环指针值指向的存储器地址。
4.如果不存在可用的剩余DMA指针,或者在预先规定的超时时,NIC宣称I/O总线中断,以便通知主机数据已被传送。
5.响应所述中断,设备驱动器检查传送的缓冲区,检查它是否包含有效的地址信息,例如有效的主机地址,将指向该缓冲区的指针传送给恰当的协议栈(例如TCP/IP)。
6.协议栈确定是否存在有效的目的地端口,如果是,那么执行网络协议处理(例如产生对接收的数据的确认),并将该分组排列到端口的队列中。
7.OS可向应用(例如通过重新调度和设置“选择”位屏幕中的各位)指出分组已到达该端口所绑定到的网络端点(通过将该应用标记为是可运行的,并调用调度程度)。
8.应用通过例如执行recv( )系统调用(供给缓冲区的地址和大小),向OS请求数据,同时在OS内核中,数据从内核缓冲区复制到应用的缓冲区中。依据系统调用的回复,应用可从应用缓冲区访问该数据。
9.在复制之后,内核将将内核缓冲区返回给自由存储器的O/S池。另外,在中断期间,设备驱动器分配一个新的缓冲区,并将指针加入DMA环中。按照这种方式,存在从自由池到应用的端口队列并复原的缓冲区的循环。
10.内核缓冲区的一个重要性质在于在物理RAM中,它们是一致的,并且决不会被VM系统页出(paged out)。但是,自由池可被共享为所有应用的公共资源。
对于数据传输,发生下述步骤。
1.操作系统设备驱动器创建供传输使用的内核缓冲区,并初始化NIC的Tx环。
2.将传送数据的应用将数据存储在应用缓冲区中,并通过例如执行send( )系统调用(供给应用缓冲区的地址和大小)请求OS进行传输。
3.响应send( )调用,OS内核将数据从应用缓冲区复制到内核缓冲区,并应用恰当的协议栈(例如TCP/IP)。
4.指向包含该数据的内核缓冲区的指针被置于Tx环上的下一自由时间片上。如果不存在任何时间片可用,缓冲区被排列在内核中,直到NIC通过例如中断指示某一时间片已变成可用。
5.当时间片开始由NIC处理时,它通过主机IO总线借助DMA循环,访问由该时间片的内容指示的内核缓冲区,随后传送该数据。
考虑系统内的数据移动,应注意在数据接收的情况下,从内核缓冲区到应用缓冲区的数据复制实际上留下驻留在处理器的高速缓冲存储器中的数据,从而即使利用该机制仿佛存在多余的复制,该复制实际上起高速缓存负载操作的作用。在数据传输的情况下,在被传送给应用以便传输之前,要传送的数据可能起源于该高速缓存,这种情况下,复制步骤显然是低效的。复制步骤的原因有两个:
1.确保在NIC正在复制入或复制出数据期间,数据被约束在内核存储器中。这适用于当数据正被传送或接收时,另外具有在内核协议处理之后,应用不能篡改或损坏缓冲区的优点。
2.在传输的情况下,情况通常是在数据被实际传送之前,send( )系统调用成功地返回。在协议层要求重传的情况下,复制步骤使OS能够保持数据。
即使复制步骤被省略,那么在数据接收时,当应用访问内核缓冲区时,会发生高速缓存负载。许多人已认识到(例如参见US6246683)这些额外的复制是性能恶化的原因。但是,迄今提出的解决方案全都涉及一些过度的数据移动。减少这种开销应是合乎需要的。本发明的发明人已认识到被忽略的问题不是复制,而是用户造成的内核语境转换和中断处理开销。US6246683没有采取任何措施来避免这些开销。
在关于通用操作系统的语境转换期间,许多寄存器不得不被存储和恢复,TLB条目和高速缓冲存储器可能淹没。现代的处理器已关于来自高速缓冲存储器的持续操作得到很大优化,结构约束条件(例如存储器间隙)是这样的,以致面对大量的语境转换时,性能被大大降低。在“Piglet:A Low-Intrusion Vertical Operating System”,S.J.Muir和J.M.Smith,Tech.rep.MS-CIS-00-04,Univ.of PA,Jan.2000中给出了有关于此的进一步论述。从而,减少数据传送和连接管理期间的语境转换应是合乎需要的。
为了从数据传输和接收中除去语境转换的成本,作为源于U-NET学术工作的一种开放式标准,提出了VIA(虚拟接口体系结构)。虚拟接口体系结构规范中的其它信息可从 www.vidf.org获得。产生了一些商业实现,它已发展成Infiniband标准。该系统的基本原理是增强网络接口硬件,从而向每个应用(网络端点)提供它自己的一对DMA队列(Tx和Rx)。该体系结构包含内核代理,硬件NIC和用户/应用层接口。用户层的每个应用被赋予VI(虚拟接口)的控制。这包括两个队列,一个用于传输,一个用于接收(和一个可选的CQ完成队列)。为了在VI上传送一些数据,应用必须:
1.确保数据位于已被钉住(pinned down)的缓冲区中(这会要求系统调用来分配)
2.构成包含缓冲区指针和长度的描述符,并将指向该描述符的指针加入到发送队列上(注意,描述符必须也必须在被钉住的存储器中)。
3.如果需要,应用通过对与VI端点相关的NIC上的硬件“门铃”位置进行写操作,指示该工作队列是活动的。
4.在稍后某一时间,NIC处理发送队列和从缓冲区直接存储器存取数据,形成网络分组,并传送给接收器。NIC随后标记与该缓冲区相关的描述符,指示数据已被发送。
还能够使VI与完成队列相联系。如果这已完成,那么NIC将向完成队列宣告一个事件,指示该缓冲区已被发送。注意这将使一个应用通过查看仅仅一个完成队列上的事件,就能够管理许多VI队列。
VI发送队列或完成队列可允许中断。
为了接收缓冲区,应用必须创建一个指向自由缓冲区的描述符,并将该描述符置于接收队列上。它还可对“门铃”进行写操作,以指示接收队列有效。
当NIC具有被寻址到特定的VI接收队列的分组时,它从该队列读取描述符,并确定Rx缓冲区位置。NIC随后将数据直接存储器存取到接收缓冲区中,并通过下述操作指示接收:
1.标记描述符;
2.产生关于完成队列的事件(如果完成队列已与VI相联系);
3.产生一个中断,如果应用或内核已请求一个中断的话(它标记Rx队列或完成队列)。
这种基于队列的模型存在下述问题:
1.由于描述符开销,对于小消息的性能较差。
2.应用必须进行流控制,以避免接收缓冲区超限。
另外,VI没有避免关于连接设置的语境转换,并且不具有错误恢复能力。这是因为它是意图在存在长寿命连接和很少错误的群集内使用的。如果发生错误,那么VI连接只是进入出错状态(通常不得不被拆除并重新创建)。
完全按照如同关于内核堆栈处理说明的相同方式,利用内核代理进行VIA连接建立和拆除。从而,诸如Open,Connect,Accept之类的操作都要求到内核中的语境转换。从而在连接寿命较短的环境(例如WWW)或者频繁发生错误的环境(例如以太网)中,VIA接口性能较差。
VIA代表消息传递接口的发展,允许对硬件的用户级访问。还存在支持共享存储器接口的另一条发展轨迹。许多这样的研究的目的在于建立大型的单一操作系统NUMA(非均匀存储器体系结构)机(例如Standford DASH),其中大型的超级计算机由均具有本地存储器的许多处理器和一个高速互连构成。对于这样的机器来说,每个节点的存储器之间的相干性由硬件(互连)来保持。相干性通常必须确保对CPU1的存储/装载操作将返回正确的值,即使存在关于CPU2的干扰存储操作。当CPU1被允许高速缓存初始存储的内容,并且如果没有发生干扰写操作,那么会预期返回高速缓存的副本时,这是难以实现的。关于SCI(可缩放的相干互连)的IEEE标准的大部分都致力于保证相干性。该标准可从 www.vesa.org获得。
由于NUMA和共享存储器互连的相干性遗传的缘故,群集的管理和故障模式是单一机器的管理和故障模式。例如实现通常采取。
1.由可信的群集服务管理的单一网络地址空间(例如DEC′sMemory Channel:see R Gillett Memory Channel Network for PCI,IEEEMicro 16(2),12-18,Feb 96)。
2.没有保护本地主机存储器免于输入网络访问的保护(或者任何页面级保护)措施(例如SCI)。
3.导致整个“机器”故障的单一处理器节点的故障(例如SCI)。
在群体连接服务的存储器通道实现中,物理上,所有网络写被同时传递给群集中的所有节点,从而接收节点仅仅对照其输入窗口匹配写。这种方法提供输入保护(如同我们所做的那样),但是地址空间管理要求与管理节点的通信,从而是低效的。
SCI类似,除了地址空间的12位被专用于节点标识符之外,从而写可被引和特定的主机。剩余的42位取决于主机实现。多数实现只是分配单一的大段本地存储器,并使用该48位作为偏移量。
没有任何实现谈到作为其体系结构一部分的端口或分布式连接管理。
一些实现提供一种事件机制,其中事件消息可从一个主机发送给另一主机(或者从网络发送给主机)。当这些是软件可编程的时,利用端口的分布式连接建立是可能的。但是,由于这些机制被用于错误处理(例如,当电缆未被插上时),事件队列被设计成是内核独有的对象-从而对于按照和VIA或内核堆栈模型相同方式的连接管理来说,仍然需要语境转换。
发明内容
根据本发明的一个方面,提供一种通信接口,所述通信接口提供数据链路和数据处理器之间的接口,所述数据处理器能够支持操作系统和用户应用,所述通信接口被设置成:支持通过链路接收的,并被寻址到与用户应用相关的逻辑数据端口的第一数据队列;支持通过链路接收的,并被识别为以操作系统为目标的第二数据队列;和分析通过链路接收的,并被识别为以操作系统或数据端口为目标的数据,确定数据是否满足一个或多个预定标准,并且如果数据满足所述标准,那么向操作系统传送一个中断。
便利的是,用户应用具有地址空间,第一队列位于该地址空间中。便利的是,操作系统具有地址空间,第二队列位于该地址空间中。更便利的是,用户应用的至少一部分地址空间和操作系统的至少一部分地址空间相同。最好,用户应用的所有地址空间都位于操作系统的地址空间之内。
通信接口最好被设置成适用于通过链路接收,并被识别成以数据端口为目标的第一队列数据。通信接口最好被设置成适用于通过链路接收,并被识别成以操作系统为目标的第二队列数据。
最好,所述预定标准之一是这样的,以致如果通过链路接收的数据和一个或多个预定的消息形式相符,则通信接口将向操作系统传送一个中断。
最好,通信接口被设置成如果数据满足一个或多个所述预定标准,以及一个或多个附加标准,那么向操作系统传送一个中断,并向操作系统传送一个指示数据被寻址到的端口的消息。最好,所述附加标准表示出错误条件。
最好,通信接口被设置成支持通过链路接收的,并被寻址到与用户应用相关的逻辑数据端口的第三数据队列,并被设置成适用于通过链路接收的,采取固定长度形式的第一队列数据单元,以及适用于通过链路接收的,采取可变长度形式的第三队列数据单元。最好,固定大小的数据单元包括通过链路接收的,并由通信接口解释成指示错误状态的消息。最好,固定大小的数据单元包括或可以包括通过链路接收的,并由通信接口解释成指示连接建立请求或确认的消息。最好,固定大小的数据单元包括通过链路接收的,并由通信接口解释成指示数据递送事件的消息。
最好,通信接口被设置成分析通过链路接收的每个数据单元的内容,并根据数据单元的内容,确定所述队列中的哪一个适用于该数据单元。
最好,通信接口可由操作系统配置,以便设置所述标准。
最好,通信接口和操作系统之一或两者都对预定类型的消息起反应,从而返回包括表示端口状态的信息的消息。
根据本发明,还提供一种包括如上所述的通信接口和所述数据处理器的通信系统。
数据处理器最好被设置成当数据端口与之相关的应用的处理被暂停时,设置标准,以致通信接口在收到识别为以该数据端口为目标的数据时,将向操作系统传送一个中断。
根据本发明的第二方面,提供一种通信接口,所述通信接口提供数据链路和包括存储器的第一数据处理设备之间的接口,数据接口是这样的,以致第一数据处理设备的存储器的一个区域可被映射到通过链路与通信接口连接的第二数据处理设备的存储器,所述通信接口被设置成当建立第二数据处理设备中的第一范围的一个或多个存储位置到第一数据处理设备中的第二范围的一个或多个存储位置的映射时,向第二数据处理设备传送识别所述第一范围的存储单元的数据。
优选的是,第二数据处理设备的存储器是虚拟存储器。优选的是,第二数据处理设备的存储器中的存储位置是虚拟存储位置。最好,第一数据处理设备的存储器中的所述一个或多个存储单元是一个或多个虚拟存储位置,并且通信接口被设置成当建立所述映射时,还建立一个或多个虚拟存储位置到第一数据处理设备的存储器中的一个或多个物理存储位置的映射。
最好,通信接口被设置成当建立第二数据处理设备的存储器中的第一范围的一个或多个存储位置到第一数据处理设备的存储器中的第二范围的一个或多个存储位置的映射时,向该映射分配一个身份,并将该身份传送给第二数据处理设备。
最好,通信接口能够借助规定它们包含的数据将被应用于的目的地端口的数据消息进行通信。
最好,通信接口被设置成当建立第二数据处理设备的存储器中的第一范围的一个或多个存储位置到第一数据处理设备的存储器中的第二范围的一个或多个存储位置的映射时,确定检查数据,并将检查数据传送给第二数据处理设备,其中通信接口被设置成拒绝不指示所述检查数据的映射内的后续通信。最好,检查数据由通信接口随机产生。便利的是,为了指出检查数据,通信包括所述检查数据。
最好,通信接口被设置成在映射的操作期间,根据预定的方案,修改检查数据。随后,通信接口最好被设置成拒绝不指出该修改数据的映射内的后续通信。最好,检查数据代表某一数字,预定的方案是每次映射内的预定数目的通信被接受时,将检查数据代表的数字递增预定量。所述预定量优选为1,不过不是必须为1。所述预定的数字优选为1,不过不是必须为1。
最好,通信接口被设置成拒绝指示访问第一范围之外的数据的请求的映射内的后续通信。
根据本发明,还提供一种包括如上所述的通信接口和所述数据处理器的通信系统。
数据处理器最好能够支持操作系统和用户应用。所述系统最好包括存储定义通过数据链路的通信的操作参数的数据项,以便传送存储在第一范围中的数据或接收数据以便存储在第一范围中的数据存储器。
操作系统可被设置成允许用户应用根据准予该应用的信任等级,访问数据存储器中的一项或多数据项。
检查数据最好被存储为该数据存储器中的数据项之一,操作系统被设置成允许至少一些用户应用可以对该数据项进行写访问,为了确定检查数据,通信接口被设置成读取该数据项的内容,并将其看作是检查数据。
最好,数据存储器中的数据项定义第一数据处理设备的存储器中的存储位置的第一范围的起点和终点,并存储第二数据处理设备的存储器中的存储位置的第二范围的起点和终点。最好,操作系统被设置成允许具有一个或多个信任等级的应用可以对支持并存储第二数据处理设备的存储器中的存储位置的第二范围的起点和终点的数据存储器中的数据项进行写访问,并且不允许任何应用对定义第一数据处理设备的存储器中的存储位置的第一范围的起点和终点的数据存储器中的数据项进行写访问。
现在将参考附图,举例说明本发明。
最好通信接口能够支持均为第二数据处理设备中的相应第一范围的一个或多个虚拟存储位置到第一数据处理设备中的相应第二范围的一个或多个存储位置的多个映射,对于每个这样的映射,还支持相应的一个或多个虚拟存储位置到第一数据处理设备的存储器中的一个或多个物理存储位置的相应其它映射。
最好,通信接口包括将对一个或多个虚拟存储位置的每个所述范围的存取转换成对第一数据处理设备的存储器中的相应一个或多个物理存储位置的存取,并将对第一数据处理设备的存储器中的一个或多个物理存储位置中的每一个的存取转换成对相应范围的一个或多个虚拟存储位置的存取的转换接口。最好,虚拟存储位置是本地总线地址,例如PCI总线地址。对某一单元的访问适宜的是对该单元的写访问。自某一单元的访问适宜的是自该单元的读访问。
最好,通信接口包括安排成存储所述其它映射的规范的映射存储器。映射存储器最好包括对转换接口来说本地的第一映射存储器,和与第一映射存储器相比,对转换接口来说本地性较小的第二映射存储器,其中通信接口被设置成将所有其它映射的规范存储在第二映射存储器中,只将一些其它映射的规范存储在第一映射存储器中。最好,第一映射存储器是相联存储器。
为了在对一个或多个虚拟存储位置的所述范围之一的访问和对第一数据处理设备的存储器中的相应一个或多个物理存储位置之间转换,转换接口最好被设置成优先访问第一映射存储器以实现所述转换,如果作为访问对象的该范围的虚拟存储位置的映射规范未被存储在第一映射存储器中,那么访问第二映射存储器以实现所述转换。
最好,通信接口被设置成将最近使用的其它映射的规范存储在第一映射存储器中。最好,通信接口被设置成如果从第一映射存储器获取规范的尝试不成功,那么用访问尝试不成功的规范替换第一映射存储器中的一个规范。
附图说明
图1图解说明通过网络,一个地址空间到另一地址空间的映射;
图2图解说明现有的存储变换体系结构的结构;
图3是数据传输系统的示意图;
图4和5图解说明地址位的映射;
图6图解说明存储空间小孔和它们的管理域;
图7图解说明端口的特征;
图8图解说明具有控制块的队列;
图9图解说明双队列机制;
图10表示输出小孔表的例子;
图11表示输入小孔表的例子;
图12表示关于输出小孔的PCI写中的步骤;和
图13图解说明固定长度和可变长度队列中的指针的操作。
具体实施方式
图3是数据传输系统的示意图,第一数据处理单元(DPU)20能够通过网络链路22与第二数据处理单元21通信。每个数据处理单元包括通过存储器总线25,26与PCI控制器27,28连接的CPU 23,24。PCI控制器通过相应的PCI总线29,30控制通信,NIC 31,32分别与相应的PCI总线29,30连接。NIC通过网络相互连接。其它类似的数据处理单元可与网络连接,以使它们可以相互通信以及与DPU 20,21通信。本地随机存取存储器(RAM)33,34与每个存储器总线25,26连接。
这里描述的数据传输系统实现几个重要特征:(1)NIC 31,32之间的小孔映射的动态高速缓存;(2)NIC之间的通信的面向对象的建立和拆除安排;和(3)两个NIC之一的地址空间中这里称为“临时位”的某些位的使用。
小孔条目的动态高速缓存
利用静态表能够有效地存储少量的小孔映射。为此,地址的许多位(映像位)由NIC的地址解码逻辑电路捕捉,并被用作包含用于反转映射的位(再映像位)的存储器阵列中的索引。例如,在图3中图解说明的那种系统中,NIC可通过PCI总线29接收在规定的本地地址读取或写入数据的请求。NIC存储指示对应于该本地地址的远程地址的映射,通过替换本地地址的一个或多个位,实现所述变换。例如,地址的第二和第三半字节可被替换。这种情况下,为了访问对应于本地地址0x8210BEEC远程地址,NIC会访问该映射表,确定关于位“21”的映射(假定为位“32”),随后对对应的远程地址(本例中0x8320BEEC)寻址(参见图4)。
该方法可被按比例放大到几百或几千个条目,取决于使用的实现技术(一般是FPGA或ASIC),但是受用于存储映射表的设备内的可用空间的限制。一种较好的实现方法是将映射存储在较大的存储器中(从而对其的访问较慢),并将最近使用的映射存储在中被快速访问的关联存储器中。如果(硬件搜索操作)在关联的存储器中找到对于要被替换的位的匹配,那么很快地完成再映射。如果没有找到任何匹配,那么硬件必须在较大的存储器中执行二次查寻(呈表或树形结构)。一般来说,关联存储器将在NIC的处理芯片上实现,较大的存储器将脱离芯片实现,例如在DRAM中实现。这示于图5中。这种方法有点类似于CPU上TLB的操作;但是这里它被用于一个完全不同的功能;即,用于存储变换网卡上的小孔映射。
实际上,映射信息必须包含通过网络传输分组所需的所有地址信息。这在下面更详细地说明。
面向对象的连接建立和拆除协议
要说明的协议用于利用小孔,建立两个应用的地址空间之间的连接,这里存在两个管理域(每个管理域属于一个通信主机)。图6中图解说明了一般结构。在域A中,存在具有虚拟地址空间A和能够访问该虚拟地址空间的NIC A的主机A。在域B中,存在具有虚拟地址空间B和能够访问该虚拟地址空间的NIC B的主机B。NIC通过网络连接在一起。
在本例中,域A中的设备的映射条目只能由主机A上的操作系统设定。下面说明其中允许在主机A上运行的应用A设置域A内的小孔映射的一些(但不是全部)位的另一种实现。
要说明的连接协议使用IP(网际协议)数据报将分组从一个主机传送给另一主机(正如标准以太网网络一样)。数据报被编址为<host:port>,其中<host>是目的地主机的网络标识符,<port>是该主机内的应用(注意每个应用可具有对应于不同网络连接的许多分配部分)的标识符。要意识到本协议可在除IP之外的其它传输协议上使用。
在本协议中,如下进行连接设置,假定主机A希望形成与其上正在运行应用B的被动(接受)主机B的主动连接。
1.应用B公布其接收因特网地址<hostB:portB>,该因特网地址可按照正常方式在网络内被访问。
2.应用A(为了方便起见,将被称为主机A)向操作系统A提出在主机A内的存储器上创建一个将被用于通信的输入小孔。一旦该小孔已被定义,那么其细节被编程到NIC A上,以致被引向虚拟空间中的地址的输入网络写被引到存储器A中的对应真实地址。小孔将被赋予一个参考地址:in-index A。
3.主机A将IP数据报发送给<hostB:portB>,它包含:连接消息:
[CONNECT/in-indexA]
注意如往常一样,整个IP数据报还将包含源和目的地IP地址(和端口)。
4.连接消息被应用B接收。消息可被直接接收到用户层或者接受到操作系统(根据双事件队列的状态),如后所述。
5.主机B将消息识别成连接到B的请求,提供小孔in-index A。利用在B预先计划的规则(通常出于安全原因),主机B将确定是拒绝还是接受连接。如果B决定接受连接,那么它创建(或使用预先创建的)输入小孔,该输入小孔被映射到存储器B,并被赋予参考地址in-indexB。主机B可选择为连接创建一个新端口:portB。主机B可将作为IP数据报:
[ACCEPT/:portB/in-indexB]
的接受消息回送给主机A。注意如往常一样,整个IP数据报还将包含源和目的地IP地址(和端口)。
一旦该接受消息已被收到,那么每个主机已创建了一个小孔,每个NIC被设置,从而执行在该小孔中读或写的请求的映射,并且每个主机知道另一主机的小孔的参考地址。
6.在迄今为止说明的消息接发之后,这两个主机都创建输出小孔。A创建一个小孔,该小孔将应用A的虚拟地址空间映射到NICA输出小孔OUT_indexA。该输出小孔映射到[hostB:in-indexB],[hostB:in-indexB]映射到存储器B。主机B创建类似的输出小孔out_indexB,out_indexB映射到存储器A。从而,通过存储变换区,双向通信是可能的。在任意时候,应用可向与存储变换相关联的端口发送一个消息。这些可被用于保证带外数据,例如:
(i)指示连接,从而存储变换应被关闭的 CLOSE消息
(ii)向非响应应用请求响应的 ALIVE消息[ ALIVEACK会是所述响应]
(iii)由数据路径上的检测到数据传送错误的任何硬件部件产生的ERROR消息。该消息是重要的,因为它允许从存储变换接口提供反馈。
注意在应用已具有映射到输出小孔上的虚拟地址的情况下,步骤6简化到请求NIC将输出小孔映射到特定主机的输入小孔上。下面利用用户层连接管理进一步对此进行说明。
双事件队列
在本语境中,端口将被看作是操作系统专用实体,它被绑定到某一应用,具有地址代码,并且能够接收消息。图7中图解说明了该概念。被寻址到某一端口的一个或多个输入消息形成一个消息队列,该消息队列由操作系统处理。操作系统事先已存储该端口和在操作系统上运行的应用之间的绑定。给某一端口的消息队列中的消息由操作系统处理,并由操作系统提供给所述端口绑定到的应用。操作系统能够存储多个端口与多个应用的多个绑定,从而通过规定恰当的端口,输入消息可被提供给恰当的应用。
端口存在于操作系统内,从而无论对应应用的状态如何,消息都可被接收并被可靠地处理。它被绑定(束缚)于特定的应用,并且具有附着的消息队列。在传统的协议堆栈,例如in-kernel TCP/IP中,在被应用读取之前,所有数据通常被排列到端口消息队列上。(通过这里描述的存储变换数据传输机制能够避免这种开销)。
在这里要说明的方案中,只有带外数据被排列到端口消息队列中。图7关于CONNECT消息对此进行了图解说明。在图7中,包含目的地主机和端口的规范(字段50),消息类型(字段51)和索引(字段52)的输入分组E由NIC 53接收。由于该数据是CONNECT消息,因此它归入带外数据的类别中。但是,它仍然被应用于恰当端口55的消息队列55,从端口55,它可被已由操作系统分配给该端口的应用读取。
进一步的增强是使用与端口相关的双队列。这可帮助使当读取带外消息时产生系统调用的要求降至最小。在存在许多消息,例如就web服务器而论的高连接速率,或者对于以太网可预期的高差错率的情况下,这特别有用。
在其操作开始时,操作系统创建处理带外消息的队列。该队列可由NIC写入,并且可具有与之相关的中断。当某一应用绑定到某一端口时,操作系统创建该端口,并使之与该应用相联系。它还创建只处理该端口的带外消息的队列。该端口的带外消息队列随后被存储变换到应用的虚拟地址空间,从而它可使事件出队,而不需要内核语境转换。
事件队列向NIC登记,在与每个队列相关的NIC上存在一个控制块(并被映射到OS或应用地址空间之一或者这两者上)。
图8中图解说明了具有控制块的队列。队列59被存储在NIC 61可以访问的存储器60中。与该队列相关的是指示队列中下次将读取和写入数据的点的读指针(RDPTR)62a和写指针(WRPTR)63a。指针62a被存储在存储器60中。指针63a被存储在NIC 61中。指针的映射副本:RDPTR′62b和WPTR′63b被存储在NIC和存储器中和初始指针不同的另一方中。在系统的操作中:
1.通过比较它本地存储的RDPTR′和WRPTR,NIC能够确定可用于写操作的空间。
2.当在数据报中收到带外数据时,NIC产生带外数据,并将其写入队列59中。
3.当数据已被写入时,NIC更新WRPTR和WRPTR′,从而在最后的数目之后将写入下一数据。
4.通过比较从存储器60获得的RDPTR和WRPTR′,应用确定可用于读操作的空间。
5.应用从队列59读取带外数据,并处理该消息。
6.应用更新RDPTR和RDPTR′。
7.如果应用要求中断,那么它(或者代表它的操作系统)设置控制块64的IRQ 65a和IRQ′65b。控制块被存储在存储器60中,并被映射到NIC中的对应存储器中。如果被设置,那么NIC还会在步骤3产生一个中断。
如果中断被产生,才能PCI中断线路首先被断言,以保证计算机的中断处理程序被执行,而且第二消息被传送到操作系统的队列中。一般来说,该队列能够处理许多中断类型,例如硬件故障,但是这种情况下,OS队列包含指示带外数据已被传送给属于[PORT]的应用队列的消息[ODBDATA:PORT]。该OS能够检查队列59中的数据,并采取恰当的动作。通常的情形将是应用被中断或解除调度,OS必须唤醒应用(对调度器标记为可运行)。
这种双队列机制使得带外数据能够由应用处理,而不涉及OS-虽然应用正在运行。在应用被中断的情况下,第二队列和中断使OS能够确定可能的许多应用队列中的哪一个已使数据被传送。图9中图解说明了整个方案。
带外(OOB)队列保持带外数据,带外数据是:
1.与端口相关的错误事件
2.来自网络和其它应用的连接建立消息和其它信令消息
3.可由发送应用,NIC或接收OS产生的数据递送事件。
如果队列将包含大小可变的数据,那么每个消息的数据部分的大小必须包括在消息的起点。
当应用将通过共享存储器与本系统通信时,利用非相干共享存储器,单一的工作队列可在两个通信端点之间被分享。当数据被写入该队列时,写指针(WRPTR)更新也由传输应用写入远程网络映射存储器中,以便指示对读取有效的数据。当从队列中除去数据时,读指针(RDPR)更新由接收应用通过网络写回,以指示队列中的自由空间。
这些指针更新是谨慎的,可能使数据的读取或写入滞后较短的时间,但是意味着在缓冲区在接收器可用之前,发射器将不会启动数据的网络传输,并且指针更新的低等待时间意味着支持一对通信端点所需的队列缓冲区空间的数量较小。上述事件机构可被用于允许应用中断处于全/空状态的队列,并且能够在CPU利用率和响应时间方面是可缩放的多路复用事件流管理大量的队列。
指定给事件队列的变长数据会被传送给第二队列。其优点是在硬件方面简化事件发生机构。从而,固定大小队列包含简单的事件和指向变长队列的指针(大小)。
1.如图13中所示,RDPTR和WRPTR之间的差异指示队列中的有效事件,还指示事件的数目,因为它们的大小是固定的。
2.事件Var 10(用于举例说明)指示大小为10个字的变长事件已被置于可变大小队列中。
3.WRPTR2和RDPTR2之间的差异只指示在可变大小队列中的字的数目,但是应用能够通过除去10个字,整体地使第一事件出队。
4.通过在NIC的存储器更新RDPTR,应用向NIC指示事件的处理
(a)对于静态队列,用乘以每个事件的大小的已处理事件的数目更新RDPTR
(b)对于可变大小队列,用消耗的字的数目更新RDPRT(即,对于两种情况来说相同)。
5.关于变长队列的数据也可包含大小(例如,如果它是UDP/IP分组)。
增强的小孔映射和“临时位”
在本实现中,提供了称为“临时位”的另外的位,以便防范对小孔不利的故障或恶意硬件或软件写操作。为了对此进行举例说明,将讨论下面的网络映射:
<虚拟存储器地址>→<PCI地址>→<host:in-index>→......<网络分组>→<PCI地址>→<物理存储器地址>→......<虚拟存储器地址>
当执行到<host:in-index>的映射时,NIC能够创建一个由<host:in-index>寻址的输出分组。接收该分组的NIC将将其看作意图作为小孔分组处理的分组,而不是看作意图通过端口传送给对应应用的分组。从而,该分组将被提供给输入小孔查寻硬件。
首先应注意按照上述方案,数据被发送给的PCI地址既对小孔映射编码,又对小孔内的偏移编码。这是因为NIC能够形成随着对其形成PCI总线上的消息的地址而变化的目的地地址。NIC通过PCI总线接收的地址可被认为由32位形成,所述32位包括小孔定义和该小孔中的偏移的定义。偏移位也被编码到输出分组中,以使接收NIC能够相对于输入小孔基址写入数据。在数据写的情况下,所得到的网络分组可被认为包含数据和位置定义,所述位置定义包括偏移,in-index和分组被寻址到的主机的指示。在位于主机的接收NIC,这将被看作指令将数据写入和该小孔对应的偏离接收的偏移量的PCI地址。在读请求的情况下,发生类似的操作。这种特征使得小孔可被用作应用之间的循环队列(如前所述),避免为每个新的接收数据缓冲区创建一个新小孔的要求。
在本实现中,网络分组还包括临时位。这些临时位在连接建立期间被编程到小孔映射中,意图提供额外的安全性,使小孔能够被安全地用于到不同主机的许多连接。
用于主机A和B之间的通信的临时位的处理如下:
1.在主机A,一个随机数被选为随机数(nonce)A。
2.随机数A和小孔in-index A一起被存储。
3.连接消息被发送给主机B,以便按照如上所述的方式建立通信。本例中,消息还包括随机数A。从而,连接消息包括端口B,in-index A,随机数A。
4.当收到连接消息时,主机B连同输出小孔B一起存储in-index A和随机数A。
5.主机B选择一个随机数作为随机数B。
6.随机数B和小孔in-index B一起被存储。
7.接受消息被发送给主机B,按照如上所述的方式接受通信的建立。本例中,该消息还包括随机数B。从而,接受消息包括端口B′,in-indexB,随机数B。
8、主机A连同输出小孔A一起存储in-index B和随机数B。
一旦连接被建立从而包括临时位,那么通过输出小孔A从A发送给B的所有分组将包含随机数B。当收到时,NICB将查寻in-index B并比较接收的临时值与在B设计的临时值。如果它们不同,那么该分组被拒绝。如果发生故障的应用束缚住陈旧的连接,那么这非常有用:它可能传送具有有效[host:in-index]地址,但是会具有陈旧的临时位,从而会被拒绝的分组。
注意用户层应用具有用于带外队列的控制块,该控制块也可被用于以这样的方式允许与该应用相关的小孔的控制,从而连接建立和拆除可完全在用户层进行。
注意小孔控制块的一些部分只是用户可设计的,其它部分必须仅由操作系统设计。
·用户可设计的位包括:临时位,目的地主机位
·操作系统可设计的位包括:
a)输入小孔的基址(这防止应用错误地或者恶意地破坏存储器缓冲区)
b)源主机位(这防止应用伪装成起源于另一主机)。
对于不可信的应用,会执行内核连接管理。这意味着带外数据只在内核中被处理,该应用不会得到任何可设计位。
图10中表示了输出小孔表的一个例子。该表的每一行代表一个小孔,并指出该小孔的属性。应注意:
1.可支持许多小孔尺寸。这些小孔尺寸将被分组,从而基址也给出小孔的尺寸。另一方面,在小孔表中可包括一个尺寸字段。
2.类型字段指示要用于输出分组的以太网类型。它还指出目的地地址是4字节的IPv4地址还是16位的群集地址(IPv6地址或其它协议地址可同样地提供),类型字段还区别群集内的事件分组和数据分组(事件分组将导致出现在目的地事件队列上的固定大小的事件消息)。
3.PCI基址只能由OS设计,其它字段可在用户层由应用设计,取决于系统的安全策略。
4.源以太网地址,源IP和群集地址和可能的其它信息为所有条目共有,并被存储在每个NIC存储器中。
5.在所有情况下,输出以太网分组的寻址或者是
<以太网MAC><IP主机:IP端口>(就TCP/IP分组来说)
或者是
<以太网MAC><CI主机:CI in-index:CI随机数:CI小孔偏移量>(就CI(计算机接口)分组来说)。
(注意偏移量得自于发出的PCI地址)。
6.每个小孔被分配一个初始序列号。当分组被处理并且可选地按照群集地址格式被包括时,所述序列号由硬件递增。
图11中表示了输入小孔表的一个例子。该表的每一行代表一个小孔,并指出该小孔的属性。输入小孔实质上是输出小孔的反转。应注意:
1.像尺寸随意地通过具有固定大小的表被编码一样,EthType可随意地通过对独立的小孔表分组被编码。
2.序列号字段是可选的,接收器能够设定
(a)是否应进行序列检查
(b)初始序列号的值
如果完成,那么这必须也作为连接协议的一部分被传递,这可方便地按照从一个主机到另一主机传递临时值的相似方式来进行。
3.类似于输出小孔,一些信息是Per-NIC的,例如IP地址,以太网地址。
4.对于应用层稳健性,能够通过规定指定位于默认范围内的范围的地址和大小,缩小小孔。这可在当应用层数据结构具有小于默认小孔大小的尺寸或者与之不同的对准(alignment)时进行。
5.变换地址或者是为了写入用于小孔的存储器,NIC应发出的PCI地址,或者是指向事件队列的描述符的(相对于NIC的SRAM的)本地指针。
输出小孔的PCI写如图12中所示被处理。步骤如下:
1.发出其地址落入分配给NIC的范围内的PCI突发。
2.NIC的地址解码器捕捉该突发,并确定地址在小孔的范围内(否则它是本地控制写)。
3.根据小孔大小(根据地址粗略地确定),地址被分成<基址:偏移量>。例如对于1k小孔,后10位会是偏移量。基址被提供给小孔表高速缓冲存储器,以便匹配所需的分组首标信息。
4.根据以太网分组类型字段,形成IP/Ethernet或者CI/Ethernet分组首标。
5.CI分组会包括例如下述字段:
数据(包含PCI突发的数据有效负载)
检查和(由硬件对首标的内容计算得到)
偏移量(由地址解码器得到)
序列号
随机数(nonce)
小孔索引
CI主同群集地址
6.如果许多PCI突发到达特定主机,那么随后可利用适合于消除多余的首标信息的压缩技术,将它们包装到单个以太网帧中。
7.在本系统中,系统专有CRC或检查和被用于提供端对端保护,并被附加到分组的数据部分。虽然以太网分组还包括CRC,不过它可被除去并在任何中继段(例如在交换机)被重新计算,从而不提供对内部(例如交换机专有的)破坏的防范。
8.如果序列号被应用,那么它被递增并被写回到小孔表条目。
对于输入分组,进行反向操作。输入小孔被查寻并被检查为:
(a)有效;
(b)预期的序列号和分组的序列号匹配;
(c)随机数匹配(或端口);
(d)预期的以太网源地址;
(e)预期的IP或CI源地址(它可被规定为网络遮罩,以允许一段源地址被匹配);
这些检查中的任意一个或多个可被实现或省略,取决于所需的安全等级。
该查寻返回字段:小孔的(基址+范围)。对照所述范围检查偏移量,以保证不进行小孔外访问,并且以下述格式形成并在接收器的PCI总线上发出PCI写
  ...DATA2 DATA1  基址+偏移量
如果PCI总线被停止,(比方说在DATAN)上,一个新的PCI事务将被发出。
  ...DATAN+1 DATAN  基址+偏移量+N
类似地,如果连续的CI数据分组到达,那么简单地通过消除多余的中间首标,它们可被接合成更大的PCI突发。
从而,申请人单独地公开了这里描述的每个单独特征以及两个或更多这种特征的任意组合,从而鉴于本领域的技术人员的一般知识,这样的特征或组合能够根据本说明书被实现,而不管这样的特征或特征组合是否解决这里公开的任何问题,并且这样的特征或组合并不局限于权利要求的范围。申请人指出本发明的各个方面可由任何这样的单独特征或特征的组合组成。鉴于上述说明,对于本领域的技术人员来说,显然可在本发明的范围内做出各种修改。

Claims (40)

1、一种通信接口,所述通信接口提供数据链路和数据处理器之间的接口,所述数据处理器能够支持操作系统和用户应用,所述通信接口被设置成:
支持通过所述链路接收的、并且寻址到与用户应用相关的逻辑数据端口的第一数据队列;
支持通过所述链路接收的、并且被识别为以所述操作系统为目标的第二数据队列;和
分析通过所述链路接收的、并且被识别为以所述操作系统或所述数据端口为目标的数据,确定这些数据是否满足一个或多个预定标准,并且如果这些数据满足所述标准,则向所述操作系统传送中断。
2、按照权利要求1所述的通信接口,其中所述用户应用具有地址空间,所述第一队列位于所述地址空间中。
3、按照权利要求1或2所述的通信接口,其中所述操作系统具有地址空间,所述第二队列位于所述地址空间中。
4、按照从属于权利要求2的权利要求3所述的通信接口,其中所述用户应用和所述操作系统具有相同的地址空间。
5、按照前述任意权利要求所述的通信接口,所述通信接口被设置成适用于通过所述链路接收的、并且被识别成以所述数据端口为目标的第一队列数据。
6、按照前述任意权利要求所述的通信接口,所述通信接口被设置成适用于通过所述链路接收的、并且被识别成以所述操作系统为目标的第二队列数据。
7、按照前述任意权利要求所述的通信接口,其中所述预定标准之一是这样的,即如果通过所述链路接收的数据与一个或多个预定的消息形式相符,则所述通信接口将向所述操作系统传送中断。
8、按照前述任意权利要求所述的通信接口,其中所述通信接口被设置成如果数据满足一个或多个所述预定标准以及一个或多个附加标准,则向所述操作系统传送中断,并向所述操作系统传送用于指示数据被寻址到的端口的消息。
9、按照权利要求8所述的通信接口,其中所述附加标准表示出错误条件。
10、按照前述任意权利要求所述的通信接口,其中所述通信接口被设置成支持通过所述链路接收的、并且被寻址到与用户应用相关的逻辑数据端口的第三数据队列,并且被设置成适用于通过所述链路接收的、采取固定长度形式的第一队列数据单元,以及适用于通过所述链路接收的、采取可变长度形式的第三队列数据单元。
11、按照权利要求10所述的通信接口,其中固定大小的数据单元包括通过所述链路接收的、并且由所述通信接口解释成指示错误状态的消息。
12、按照权利要求10或11所述的通信接口,其中固定大小的数据单元包括通过所述链路接收的、并且由所述通信接口解释成指示连接建立请求或确认的消息。
13、按照权利要求10-12任意之一所述的通信接口,其中固定大小的数据单元包括通过所述链路接收的、并且由所述通信接口解释成指示数据递送事件的消息。
14、按照前述任意权利要求所述的通信接口,其中所述通信接口被设置成分析通过所述链路接收的每个数据单元的内容,并根据所述数据单元的内容,确定所述队列中的哪一个适用于所述数据单元。
15、按照前述任意权利要求所述的通信接口,其中所述通信接口可由所述操作系统配置,以便设定所述标准。
16、按照前述任意权利要求所述的通信接口,其中所述通信接口和所述操作系统之一或两者都响应于预定类型的消息,从而返回包括表示端口状态的信息的消息。
17、一种通信系统,包括按照权利要求16所述的通信接口以及数据处理器,所述数据处理器被设置成在与数据端口相关的应用的处理被暂停时,设置这样的标准,即所述通信接口在接收到被识别为以所述数据端口为目标的数据时,向所述操作系统传送中断。
18、一种通信接口,所述通信接口提供数据链路和包括存储器的第一数据处理设备之间的接口,所述数据接口使得所述第一数据处理设备的存储器的区域可被映射到通过链路与所述通信接口连接的第二数据处理设备的存储器,所述通信接口被设置成在建立所述第二数据处理设备中的第一范围的一个或多个存储位置到所述第一数据处理设备中的第二范围的一个或多个存储位置的映射时,向所述第二数据处理设备传送用于识别所述第一范围的存储位置的数据。
19、按照权利要求18所述的通信接口,其中所述第一数据处理设备的存储器中的所述一个或多个存储位置是一个或多个虚拟存储位置,并且所述通信接口被设置成在建立所述映射时,还建立一个或多个虚拟存储位置到所述第一数据处理设备的存储器中的一个或多个物理存储位置的映射。
20、按照权利要求18或19所述的通信接口,其中所述通信接口被设置成在建立所述第二数据处理设备的存储器中的第一范围的一个或多个存储位置到所述第一数据处理设备的存储器中的第二范围的一个或多个存储位置的映射时,向所述映射分配身份,并将所述身份传送给所述第二数据处理设备。
21、按照权利要求18-20任意之一所述的通信接口,其中所述通信接口能够借助多个这样的数据消息进行通信,即所述数据消息用于规定它们包含的数据将被应用到的目的地端口。
22、按照权利要求18-21任意之一所述的通信接口,其中所述通信接口被设置成在建立所述第二数据处理设备的存储器中的第一范围的一个或多个存储位置到所述第一数据处理设备的存储器中的第二范围的一个或多个存储位置的映射时,确定检查数据,并将所述检查数据传送给所述第二数据处理设备,其中所述通信接口被设置成拒绝所述映射内的不指示所述检查数据的后续通信。
23、按照权利要求22所述的通信接口,其中所述检查数据由所述通信接口随机产生。
24、按照权利要求22或23所述的通信接口,其中为了指示所述检查数据,通信包括所述检查数据。
25、按照权利要求22-24任意之一所述的通信接口,其中所述通信接口被设置成在映射的操作期间,根据预定的方案修改所述检查数据。
26、按照权利要求25所述的通信接口,其中所述检查数据代表某一数字,所述预定的方案是每次映射内的预定数目的通信被接受时,将所述检查数据代表的数字递增预定量。
27、按照权利要求18-26任意之一所述的通信接口,其中所述通信接口被设置成拒绝所述映射内的用于指示访问所述第一范围之外的数据的请求的后续通信。
28、按照权利要求19或者从属于权利要求19的权利要求20-27任意之一所述的通信接口,其中所述通信接口能够支持均为所述第二数据处理设备中的相应第一范围的一个或多个虚拟存储位置到所述第一数据处理设备中的相应第二范围的一个或多个存储位置的多个映射,对于每个这样的映射,还支持相应的一个或多个虚拟存储位置到所述第一数据处理设备的存储器中的一个或多个物理存储位置的相应其它映射。
29、按照权利要求28所述的通信接口,包括转换接口,用于将对一个或多个虚拟存储位置的每个所述范围的存取转换成对所述第一数据处理设备的存储器中的相应一个或多个物理存储位置的存取,并将对所述第一数据处理设备的存储器中的一个或多个物理存储位置中的每一个的存取转换成对相应范围的一个或多个虚拟存储位置的存取。
30、按照权利要求29所述的通信接口,包括设置成存储所述其它映射的规范的映射存储器。
31、按照权利要求30所述的通信接口,其中所述映射存储器包括对所述转换接口来说属于本地的第一映射存储器,以及与所述第一映射存储器相比,对所述转换接口来说不属于本地的第二映射存储器,其中所述通信接口被设置成将所有其它映射的规范存储在所述第二映射存储器中,只将一些其它映射的规范存储在所述第一映射存储器中。
32、按照权利要求31所述的通信接口,其中所述第一映射存储器是相联存储器。
33、按照权利要求31或32所述的通信接口,其中为了在对一个或多个虚拟存储位置的所述范围之一的访问与对所述第一数据处理设备的存储器中的相应一个或多个物理存储位置之间进行转换,所述转换接口被设置成优先访问所述第一映射存储器以实现所述转换,如果作为访问对象的所述范围的虚拟存储位置的映射规范未被存储在所述第一映射存储器中,那么访问所述第二映射存储器以实现所述转换。
34、按照权利要求31-33任意之一所述的通信接口,其中所述通信接口被设置成将最近使用的其它映射的规范存储在所述第一映射存储器中。
35、一种通信系统,包括按照权利要求18-34任意之一所述的通信接口以及数据处理器,所述数据处理器能够支持操作系统和用户应用,所述系统包括数据存储器,用于存储定义通过数据链路的通信的操作参数的数据项,传送存储在所述第一范围中的数据或接收数据以便存储在所述第一范围中。
36、按照权利要求35所述的通信系统,其中所述操作系统被设置成允许用户应用根据授予所述应用的信任等级,访问所述数据存储器中的一项或多数据项。
37、按照从属于权利要求22的权利要求36所述的通信系统,其中所述检查数据被存储为所述数据存储器中的数据项之一,所述操作系统被设置成允许至少一些用户应用可以对所述数据项进行写访问,所述通信接口被设置成为了确定所述检查数据,读取所述数据项的内容并将其看作是检查数据。
38、按照权利要求36或37所述的通信系统,其中所述数据存储器中的数据项定义所述第一数据处理设备的存储器中的存储位置的第一范围的起点和终点,并存储所述第二数据处理设备的存储器中的存储位置的第二范围的起点和终点,
所述操作系统被设置成允许具有一个或多个信任等级的应用可以对支持并存储所述第二数据处理设备的存储器中的存储位置的第二范围的起点和终点的数据存储器中的数据项进行写访问,并且不允许任何应用对定义所述第一数据处理设备的存储器中的存储位置的第一范围的起点和终点的数据存储器中的数据项进行写访问。
39、按照权利要求1-16任意之一,以及按照权利要求18-34任意之一所述的通信接口。
40、按照权利要求17以及按照权利要求35-38任意之一所述的通信系统。
CN03825158.2A 2002-09-16 2003-09-15 网络接口和协议 Pending CN1695127A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0221464.1A GB0221464D0 (en) 2002-09-16 2002-09-16 Network interface and protocol
GB0221464.1 2002-09-16

Publications (1)

Publication Number Publication Date
CN1695127A true CN1695127A (zh) 2005-11-09

Family

ID=9944152

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03825158.2A Pending CN1695127A (zh) 2002-09-16 2003-09-15 网络接口和协议

Country Status (8)

Country Link
US (4) US7844742B2 (zh)
EP (1) EP1565826B1 (zh)
JP (1) JP4657720B2 (zh)
CN (1) CN1695127A (zh)
AU (1) AU2003269131A1 (zh)
GB (1) GB0221464D0 (zh)
TW (1) TWI244288B (zh)
WO (1) WO2004025477A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222428B (zh) * 2007-01-10 2012-05-09 国际商业机器公司 用于在网络结构上发送数据包的方法、系统和硬件
CN103593234A (zh) * 2012-06-08 2014-02-19 苹果公司 自适应进程重要性
CN104239259A (zh) * 2013-06-17 2014-12-24 阿尔特拉公司 用于与动态可重配置电路进行通信的桥接电路
CN108701003A (zh) * 2016-03-31 2018-10-23 英特尔公司 用于对远程节点的许多存储操作的原子写入的结构弹性支持
CN112631959A (zh) * 2018-05-04 2021-04-09 英特尔公司 用于相干消息的高带宽链路层

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060034275A1 (en) 2000-05-03 2006-02-16 At&T Laboratories-Cambridge Ltd. Data transfer, synchronising applications, and low latency networks
US7640582B2 (en) 2003-04-16 2009-12-29 Silicon Graphics International Clustered filesystem for mix of trusted and untrusted nodes
US7984175B2 (en) 2003-12-10 2011-07-19 Mcafee, Inc. Method and apparatus for data capture and analysis system
US7774604B2 (en) 2003-12-10 2010-08-10 Mcafee, Inc. Verifying captured objects before presentation
US20050131876A1 (en) * 2003-12-10 2005-06-16 Ahuja Ratinder Paul S. Graphical user interface for capture system
US8656039B2 (en) 2003-12-10 2014-02-18 Mcafee, Inc. Rule parser
US7814327B2 (en) 2003-12-10 2010-10-12 Mcafee, Inc. Document registration
US7899828B2 (en) 2003-12-10 2011-03-01 Mcafee, Inc. Tag data structure for maintaining relational data over captured objects
US8548170B2 (en) 2003-12-10 2013-10-01 Mcafee, Inc. Document de-registration
US7930540B2 (en) 2004-01-22 2011-04-19 Mcafee, Inc. Cryptographic policy enforcement
GB0404696D0 (en) * 2004-03-02 2004-04-07 Level 5 Networks Ltd Dual driver interface
US7783769B2 (en) 2004-03-31 2010-08-24 Intel Corporation Accelerated TCP (Transport Control Protocol) stack processing
US7962591B2 (en) 2004-06-23 2011-06-14 Mcafee, Inc. Object classification in a capture system
US20050286526A1 (en) * 2004-06-25 2005-12-29 Sood Sanjeev H Optimized algorithm for stream re-assembly
US20060004933A1 (en) * 2004-06-30 2006-01-05 Sujoy Sen Network interface controller signaling of connection event
US7461173B2 (en) * 2004-06-30 2008-12-02 Intel Corporation Distributing timers across processors
US20060031474A1 (en) * 2004-07-19 2006-02-09 Linden Cornett Maintaining reachability measures
US8560534B2 (en) 2004-08-23 2013-10-15 Mcafee, Inc. Database for a capture system
US7949849B2 (en) 2004-08-24 2011-05-24 Mcafee, Inc. File system for a capture system
GB0420057D0 (en) 2004-09-09 2004-10-13 Level 5 Networks Ltd Dynamic resource allocation
GB0426202D0 (en) * 2004-11-30 2004-12-29 Ibm A method, system and computer program for addressing a web service
EP2383659B1 (en) 2005-02-03 2013-05-08 Solarflare Communications Inc Queue depth management for communication between host and peripheral device
US7831749B2 (en) * 2005-02-03 2010-11-09 Solarflare Communications, Inc. Including descriptor queue empty events in completion events
US7562366B2 (en) 2005-02-03 2009-07-14 Solarflare Communications, Inc. Transmit completion event batching
WO2006127013A1 (en) * 2005-05-26 2006-11-30 Zetera Corporation Virtual devices and virtual bus tunnels, modules and methods
US7620981B2 (en) * 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
EP1891787B1 (en) 2005-06-15 2010-03-24 Solarflare Communications Incorporated Data processing system
US7496699B2 (en) 2005-06-17 2009-02-24 Level 5 Networks, Inc. DMA descriptor queue read and cache write pointer arrangement
US7907608B2 (en) * 2005-08-12 2011-03-15 Mcafee, Inc. High speed packet capture
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US7660306B1 (en) 2006-01-12 2010-02-09 Chelsio Communications, Inc. Virtualizing the operation of intelligent network interface circuitry
US7724658B1 (en) 2005-08-31 2010-05-25 Chelsio Communications, Inc. Protocol offload transmit traffic management
US7818326B2 (en) * 2005-08-31 2010-10-19 Mcafee, Inc. System and method for word indexing in a capture system and querying thereof
US7730011B1 (en) * 2005-10-19 2010-06-01 Mcafee, Inc. Attributes of captured objects in a capture system
US7984180B2 (en) 2005-10-20 2011-07-19 Solarflare Communications, Inc. Hashing algorithm for network receive filtering
US7657104B2 (en) * 2005-11-21 2010-02-02 Mcafee, Inc. Identifying image type in a capture system
US7916750B2 (en) * 2005-12-28 2011-03-29 Intel Corporation Transaction layer packet compression
WO2007074343A2 (en) 2005-12-28 2007-07-05 Level 5 Networks Incorporated Processing received data
US8504537B2 (en) 2006-03-24 2013-08-06 Mcafee, Inc. Signature distribution in a document registration system
US20070226504A1 (en) * 2006-03-24 2007-09-27 Reconnex Corporation Signature match processing in a document registration system
US7689614B2 (en) 2006-05-22 2010-03-30 Mcafee, Inc. Query generation for a capture system
US8010689B2 (en) 2006-05-22 2011-08-30 Mcafee, Inc. Locational tagging in a capture system
US7958227B2 (en) 2006-05-22 2011-06-07 Mcafee, Inc. Attributes of captured objects in a capture system
US20080195756A1 (en) * 2007-02-08 2008-08-14 Michael Galles Method and system to access a service utilizing a virtual communications device
US8935406B1 (en) 2007-04-16 2015-01-13 Chelsio Communications, Inc. Network adaptor configured for connection establishment offload
US8589587B1 (en) 2007-05-11 2013-11-19 Chelsio Communications, Inc. Protocol offload in intelligent network adaptor, including application level signalling
US8060644B1 (en) * 2007-05-11 2011-11-15 Chelsio Communications, Inc. Intelligent network adaptor with end-to-end flow control
US9396159B2 (en) * 2007-09-25 2016-07-19 Oracle America, Inc. Simple, reliable, connectionless communication mechanism
US20090083392A1 (en) * 2007-09-25 2009-03-26 Sun Microsystems, Inc. Simple, efficient rdma mechanism
US7937449B1 (en) * 2007-10-08 2011-05-03 Empirix, Inc. System and method for enabling network stack processes in user mode and kernel mode to access kernel memory locations
US8205242B2 (en) 2008-07-10 2012-06-19 Mcafee, Inc. System and method for data mining and security policy management
US9253154B2 (en) 2008-08-12 2016-02-02 Mcafee, Inc. Configuration management for a capture/registration system
US8850591B2 (en) 2009-01-13 2014-09-30 Mcafee, Inc. System and method for concept building
US8706709B2 (en) 2009-01-15 2014-04-22 Mcafee, Inc. System and method for intelligent term grouping
US8473442B1 (en) 2009-02-25 2013-06-25 Mcafee, Inc. System and method for intelligent state management
US8667121B2 (en) 2009-03-25 2014-03-04 Mcafee, Inc. System and method for managing data and policies
US8447722B1 (en) 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
KR20100107801A (ko) * 2009-03-26 2010-10-06 삼성전자주식회사 무선 통신 시스템에서 안테나 선택을 위한 장치 및 방법
US8234407B2 (en) * 2009-06-30 2012-07-31 Oracle America, Inc. Network use of virtual addresses without pinning or registration
CN102026171B (zh) * 2009-09-17 2013-06-12 国基电子(上海)有限公司 安全控制远程无线设备的方法
TWI416336B (zh) * 2009-11-10 2013-11-21 Realtek Semiconductor Corp 可共享緩衝器的網路介面卡與緩衝器共享方法
US8824472B2 (en) * 2010-09-16 2014-09-02 Verizon Patent And Licensing Inc. Sanitizing packet headers
US8806615B2 (en) 2010-11-04 2014-08-12 Mcafee, Inc. System and method for protecting specified data combinations
US9071499B2 (en) * 2011-03-28 2015-06-30 Citrix Systems, Inc. Systems and methods for emulating a NIC for packet transmission on hardware RSS unaware NICs in a multi-core system
WO2012162687A1 (en) 2011-05-26 2012-11-29 Candi Controls, Inc. System
US20120303750A1 (en) * 2011-05-26 2012-11-29 Mike Anderson Cloud-assisted network device integration
US20130246336A1 (en) 2011-12-27 2013-09-19 Mcafee, Inc. System and method for providing data protection workflows in a network environment
US9098271B2 (en) * 2012-02-05 2015-08-04 Jeffrey R. Eastlack Autonomous microprocessor re-configurability via power gating pipelined execution units using static profiling
US20170109299A1 (en) * 2014-03-31 2017-04-20 Stephen Belair Network computing elements, memory interfaces and network connections to such elements, and related systems
US9612877B1 (en) * 2012-07-12 2017-04-04 Cisco Technology, Inc. High performance computing in a virtualized environment
US9438638B2 (en) * 2013-03-15 2016-09-06 Silicon Graphics International Corp. Method for transparently connecting augmented network socket operations
US9292379B2 (en) * 2013-09-28 2016-03-22 Intel Corporation Apparatus and method to manage high capacity storage devices
US9436751B1 (en) * 2013-12-18 2016-09-06 Google Inc. System and method for live migration of guest
US9444747B2 (en) 2014-01-30 2016-09-13 Telefonaktiebolaget Lm Ericsson (Publ) Service specific traffic handling
US9753818B2 (en) 2014-09-19 2017-09-05 Splunk Inc. Data forwarding using multiple data pipelines
US9836358B2 (en) * 2014-03-17 2017-12-05 Splunk Inc. Ephemeral remote data store for dual-queue systems
US9660930B2 (en) 2014-03-17 2017-05-23 Splunk Inc. Dynamic data server nodes
US9838346B2 (en) * 2014-03-17 2017-12-05 Splunk Inc. Alerting on dual-queue systems
US9838467B2 (en) * 2014-03-17 2017-12-05 Splunk Inc. Dynamically instantiating dual-queue systems
US9778963B2 (en) 2014-03-31 2017-10-03 Solarflare Communications, Inc. Ordered event notification
US11283866B2 (en) * 2014-07-07 2022-03-22 Citrix Systems, Inc. Providing remote access to applications through interface hooks
US11310312B2 (en) 2014-07-07 2022-04-19 Citrix Systems, Inc. Peer to peer remote application discovery
US9952979B1 (en) * 2015-01-14 2018-04-24 Cavium, Inc. Methods and systems for direct memory access operations
US11036533B2 (en) 2015-04-17 2021-06-15 Samsung Electronics Co., Ltd. Mechanism to dynamically allocate physical storage device resources in virtualized environments
US10838852B2 (en) * 2015-04-17 2020-11-17 Samsung Electronics Co., Ltd. System and method to extend NVME queues to user space
US10397140B2 (en) 2015-04-23 2019-08-27 Hewlett-Packard Development Company, L.P. Multi-processor computing systems
AU2015402888B2 (en) 2015-07-22 2018-09-27 Huawei Technologies Co., Ltd. Computer device and method for reading/writing data by computer device
CN112838984A (zh) * 2015-11-26 2021-05-25 华为技术有限公司 一种用于实现负载分担的方法和装置
US10498867B2 (en) * 2016-11-02 2019-12-03 Solarflare Communications, Inc. Network interface device and host processing device field
WO2018183542A1 (en) 2017-03-29 2018-10-04 Fungible, Inc. Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths
US11157422B2 (en) * 2017-03-31 2021-10-26 Intel Corporation Shared memory for intelligent network interface cards
US10725825B2 (en) * 2017-07-10 2020-07-28 Fungible, Inc. Data processing unit for stream processing
CN110915172A (zh) 2017-07-10 2020-03-24 芬基波尔有限责任公司 针对数据中心的接入节点
US10686731B2 (en) 2017-12-19 2020-06-16 Xilinx, Inc. Network interface device
US10686872B2 (en) * 2017-12-19 2020-06-16 Xilinx, Inc. Network interface device
US11165720B2 (en) 2017-12-19 2021-11-02 Xilinx, Inc. Network interface device
WO2019152063A1 (en) 2018-02-02 2019-08-08 Fungible, Inc. Efficient work unit processing in a multicore system
US20190278715A1 (en) * 2018-03-12 2019-09-12 Nutanix, Inc. System and method for managing distribution of virtual memory over multiple physical memories
US11409569B2 (en) * 2018-03-29 2022-08-09 Xilinx, Inc. Data processing system
US11119789B2 (en) * 2018-04-25 2021-09-14 Hewlett Packard Enterprise Development Lp Kernel space measurement
US10873564B2 (en) * 2018-09-20 2020-12-22 Palo Alto Research Center Incorporated Cloud-based device manager based on message queues
CN111176855B (zh) * 2018-11-09 2023-10-27 微软技术许可有限责任公司 在用户空间中建立线程之间的队列

Family Cites Families (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4393443A (en) * 1980-05-20 1983-07-12 Tektronix, Inc. Memory mapping system
US5325532A (en) * 1992-09-25 1994-06-28 Compaq Computer Corporation Automatic development of operating system boot image
US5272599A (en) 1993-03-19 1993-12-21 Compaq Computer Corporation Microprocessor heat dissipation apparatus for a printed circuit board
JPH07110749A (ja) 1993-04-16 1995-04-25 Hewlett Packard Co <Hp> ダイアログ・ボックスの動的構築方法
US6098112A (en) * 1995-10-19 2000-08-01 Hewlett-Packard Company Streams function registering
DE69727465T2 (de) * 1997-01-09 2004-12-23 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Rechnersystem mit Speichersteuerung für Stossbetrieb-Übertragung
US5886872A (en) * 1997-04-23 1999-03-23 Compaq Computer Corporation Pivotable support and heat sink apparatus removably connectable without tools to a computer processor
US6018763A (en) * 1997-05-28 2000-01-25 3Com Corporation High performance shared memory for a bridge router supporting cache coherency
IL121457A (en) * 1997-08-03 2004-06-01 Guru Internat Inc Computerized dictionary and thesaurus applications
US6111894A (en) * 1997-08-26 2000-08-29 International Business Machines Corporation Hardware interface between a switch adapter and a communications subsystem in a data processing system
US6067595A (en) * 1997-09-23 2000-05-23 Icore Technologies, Inc. Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories
WO1999016199A2 (en) * 1997-09-25 1999-04-01 John Wolfgang Halpern A data encryption system for internet communication
EP1038220A2 (en) * 1997-11-17 2000-09-27 MCMZ Technology Innovations LLc A high performance interoperable network communications architecture (inca)
US6160554A (en) 1998-03-19 2000-12-12 Hewlett Packard Company Computer file content preview window
US6002804A (en) 1998-03-26 1999-12-14 Hewlett-Packard Company Tone dependent variable halftoning with adjustable algorithm selection
US6246683B1 (en) * 1998-05-01 2001-06-12 3Com Corporation Receive processing with network protocol bypass
US6260127B1 (en) * 1998-07-13 2001-07-10 Compaq Computer Corporation Method and apparatus for supporting heterogeneous memory in computer systems
US6768996B1 (en) * 1998-10-08 2004-07-27 Hewlett-Packard Development Company, L.P. System and method for retrieving an abstracted portion of a file without regard to the operating system of the current host computer
US6314532B1 (en) * 1998-12-04 2001-11-06 Lucent Technologies Inc. Method and system for recovering from a software failure
US6360241B1 (en) 1999-02-01 2002-03-19 Compaq Information Technologies Goup, L.P. Computer method and apparatus for division and square root operations using signed digit
US6466952B2 (en) * 1999-04-08 2002-10-15 Hewlett-Packard Company Method for transferring and indexing data from old media to new media
US6502203B2 (en) 1999-04-16 2002-12-31 Compaq Information Technologies Group, L.P. Method and apparatus for cluster system operation
GB2349717A (en) * 1999-05-04 2000-11-08 At & T Lab Cambridge Ltd Low latency network
US6304945B1 (en) 1999-05-13 2001-10-16 Compaq Computer Corporation Method and apparatus for maintaining cache coherency in a computer system having multiple processor buses
US7318102B1 (en) * 1999-05-24 2008-01-08 Hewlett-Packard Development Company, L.P. Reliable datagram
US6978331B1 (en) 1999-09-08 2005-12-20 Mellanox Technologies Ltd. Synchronization of interrupts with data packets
US20030222803A1 (en) 1999-12-28 2003-12-04 Shai Cohen Duty cycle adapter
ATE403323T1 (de) * 2000-05-24 2008-08-15 Voltaire Ltd Gefilterte kommunikation von anwendung zu anwendung
US7103626B1 (en) 2000-05-24 2006-09-05 Hewlett-Packard Development, L.P. Partitioning in distributed computer system
AU6420001A (en) * 2000-06-02 2001-12-11 Mellanox Technologies Ltd. Dma doorbell
JP3552648B2 (ja) * 2000-06-20 2004-08-11 インターナショナル・ビジネス・マシーンズ・コーポレーション アドホック無線通信用データ送受システム及びアドホック無線通信用データ送受方法
US6690757B1 (en) * 2000-06-20 2004-02-10 Hewlett-Packard Development Company, L.P. High-speed interconnection adapter having automated lane de-skew
JP2002014872A (ja) * 2000-06-29 2002-01-18 Fujitsu Ltd 暗号制御装置
US6799200B1 (en) * 2000-07-18 2004-09-28 International Business Machines Corporaiton Mechanisms for efficient message passing with copy avoidance in a distributed system
US7222150B1 (en) * 2000-08-15 2007-05-22 Ikadega, Inc. Network server card and method for handling requests received via a network interface
JP2004526218A (ja) * 2000-08-24 2004-08-26 ボルテール アドバンスト データ セキュリティ リミテッド 相互接続されたファブリックにおける高度にスケーラブルで高速のコンテンツ・ベース・フィルタリング及び負荷均衡化システム及び方法
US6765922B1 (en) 2000-09-08 2004-07-20 Hewlett-Packard Development Company, L.P. Speculative transmit for system area network latency reduction
US20020059052A1 (en) * 2000-09-12 2002-05-16 Mellanox Technologies Ltd. Co-simulation of network components
US6349035B1 (en) * 2000-09-29 2002-02-19 Compaq Information Technologies Group, L.P. Method and apparatus for tooless mating of liquid cooled cold plate with tapered interposer heat sink
US6718392B1 (en) * 2000-10-24 2004-04-06 Hewlett-Packard Development Company, L.P. Queue pair partitioning in distributed computer system
AUPR108900A0 (en) 2000-10-28 2000-11-23 S4 Technology Pty Limited Modular digital transmission assembly
US6728743B2 (en) * 2001-01-04 2004-04-27 Mellanox Technologies Ltd. Modulo remainder generator
US6976174B2 (en) * 2001-01-04 2005-12-13 Troika Networks, Inc. Secure multiprotocol interface
US7254237B1 (en) * 2001-01-12 2007-08-07 Slt Logic, Llc System and method for establishing a secure connection
US6950961B2 (en) * 2001-02-13 2005-09-27 Hewlett-Packard Development Company, L.P. Highly available, monotonic increasing sequence number generation
DE60237433D1 (de) * 2001-02-24 2010-10-07 Ibm Neuartiger massivparalleler supercomputer
US20020129293A1 (en) 2001-03-07 2002-09-12 Hutton John F. Scan based multiple ring oscillator structure for on-chip speed measurement
US20020140985A1 (en) 2001-04-02 2002-10-03 Hudson Kevin R. Color calibration for clustered printing
US7543290B2 (en) * 2001-04-11 2009-06-02 Mellanox Technologies Ltd. Multiple queue pair access with single doorbell
US20020152328A1 (en) * 2001-04-11 2002-10-17 Mellanox Technologies, Ltd. Network adapter with shared database for message context information
US6904057B2 (en) 2001-05-04 2005-06-07 Slt Logic Llc Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification
US6944168B2 (en) * 2001-05-04 2005-09-13 Slt Logic Llc System and method for providing transformation of multi-protocol packets in a data stream
US7042848B2 (en) * 2001-05-04 2006-05-09 Slt Logic Llc System and method for hierarchical policing of flows and subflows of a data stream
US6901052B2 (en) * 2001-05-04 2005-05-31 Slt Logic Llc System and method for policing multiple data flows and multi-protocol data flows
US6438130B1 (en) * 2001-06-28 2002-08-20 Mellanox Technologies Ltd. Forwarding database cache
US6980328B2 (en) * 2001-07-05 2005-12-27 Hewlett-Packard Development Company, L.P. Direction-dependent color conversion in bidirectional printing
US7136397B2 (en) 2001-08-20 2006-11-14 Slt Logic Llc Network architecture and system for delivering bi-directional xDSL based services
US7099275B2 (en) * 2001-09-21 2006-08-29 Slt Logic Llc Programmable multi-service queue scheduler
US7151744B2 (en) 2001-09-21 2006-12-19 Slt Logic Llc Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover
US7161719B2 (en) * 2001-09-26 2007-01-09 Hewlett-Packard Development Company, L.P. Generalized color calibration architecture and method
US6904534B2 (en) * 2001-09-29 2005-06-07 Hewlett-Packard Development Company, L.P. Progressive CPU sleep state duty cycle to limit peak power of multiple computers on shared power distribution unit
US7023584B2 (en) * 2001-10-02 2006-04-04 Hewlett-Packard Development Company, L.P. Color calibration method and apparatus
US20030065856A1 (en) * 2001-10-03 2003-04-03 Mellanox Technologies Ltd. Network adapter with multiple event queues
US7054035B2 (en) * 2001-10-29 2006-05-30 Hewlett-Packard Development Company, L.P. Method and system for management of color through conversion between color spaces
US7228550B1 (en) * 2002-01-07 2007-06-05 Slt Logic, Llc System and method for making communication streams available to processes executing under control of an operating system but without the intervention of the operating system
US7093158B2 (en) * 2002-03-11 2006-08-15 Hewlett-Packard Development Company, L.P. Data redundancy in a hot pluggable, large symmetric multi-processor system
US7245627B2 (en) * 2002-04-23 2007-07-17 Mellanox Technologies Ltd. Sharing a network interface card among multiple hosts
US6705703B2 (en) 2002-04-24 2004-03-16 Hewlett-Packard Development Company, L.P. Determination of control points for construction of first color space-to-second color space look-up table
US6667918B2 (en) 2002-05-01 2003-12-23 Mellanox Technologies Ltd. Self-repair of embedded memory arrays
US7149227B2 (en) 2002-05-31 2006-12-12 Mellanox Technologies Ltd. Round-robin arbiter with low jitter
ES2333519T3 (es) * 2002-06-19 2010-02-23 Telefonaktiebolaget L M Ericsson Una arquitectura de controlador de dispositivo de red.
US7263103B2 (en) 2002-07-23 2007-08-28 Mellanox Technologies Ltd. Receive queue descriptor pool
US7143412B2 (en) 2002-07-25 2006-11-28 Hewlett-Packard Development Company, L.P. Method and apparatus for optimizing performance in a multi-processing system
US7290038B2 (en) * 2002-07-31 2007-10-30 Sun Microsystems, Inc. Key reuse for RDMA virtual address space
US7631106B2 (en) 2002-08-15 2009-12-08 Mellanox Technologies Ltd. Prefetching of receive queue descriptors
US7386619B1 (en) * 2003-01-06 2008-06-10 Slt Logic, Llc System and method for allocating communications to processors in a multiprocessor system
US7316017B1 (en) * 2003-01-06 2008-01-01 Slt Logic, Llc System and method for allocatiing communications to processors and rescheduling processes in a multiprocessor system
US7190827B2 (en) * 2003-01-22 2007-03-13 Hewlett-Packard Development Company, L.P. Color space conversion using interpolation
US8023520B2 (en) 2003-03-27 2011-09-20 Hewlett-Packard Development Company, L.P. Signaling packet
US7554993B2 (en) * 2003-03-27 2009-06-30 Hewlett-Packard Development Company, L.P. Method and apparatus for performing connection management with multiple stacks
US7502826B2 (en) 2003-03-27 2009-03-10 Hewlett-Packard Development Company, L.P. Atomic operations
US7103744B2 (en) 2003-03-27 2006-09-05 Hewlett-Packard Development Company, L.P. Binding a memory window to a queue pair
US20040210754A1 (en) 2003-04-16 2004-10-21 Barron Dwight L. Shared security transform device, system and methods
US20040252685A1 (en) 2003-06-13 2004-12-16 Mellanox Technologies Ltd. Channel adapter with integrated switch
US7352893B2 (en) * 2003-07-09 2008-04-01 Hewlett-Packard Development Company, L.P. Representing extended color gamut information
US7446901B2 (en) * 2003-07-21 2008-11-04 Hewlett-Packard Development Company Conforming output intensities of pens
US7192891B2 (en) * 2003-08-01 2007-03-20 Samsung Electronics, Co., Ltd. Method for forming a silicon oxide layer using spin-on glass
US7496903B2 (en) * 2003-08-12 2009-02-24 Hewlett-Packard Development Company, L.P. Synthesizing application response measurement (ARM) instrumentation
US7484209B2 (en) * 2003-08-12 2009-01-27 Hewlett-Packard Development Company, L.P. Instrumenting java code by modifying bytecodes
US20050039171A1 (en) * 2003-08-12 2005-02-17 Avakian Arra E. Using interceptors and out-of-band data to monitor the performance of Java 2 enterprise edition (J2EE) applications
US7617376B2 (en) * 2003-08-14 2009-11-10 Hewlett-Packard Development Company, L.P. Method and apparatus for accessing a memory
US7757232B2 (en) * 2003-08-14 2010-07-13 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing work request lists
US7404190B2 (en) * 2003-09-18 2008-07-22 Hewlett-Packard Development Company, L.P. Method and apparatus for providing notification via multiple completion queue handlers
US7653754B2 (en) * 2004-01-05 2010-01-26 Mellanox Technologies Ltd. Method, system and protocol that enable unrestricted user-level access to a network interface adapter
US20050172181A1 (en) * 2004-01-16 2005-08-04 Mellanox Technologies Ltd. System and method for production testing of high speed communications receivers
US7168784B2 (en) 2004-03-30 2007-01-30 Hewlett-Packard Development Company, L.P. Formation of images
US20050219278A1 (en) 2004-03-30 2005-10-06 Hudson Kevin R Image formation with a flexible number of passes
US7929161B2 (en) 2004-04-15 2011-04-19 Hewlett-Packard Development Company, L.P. Image processing system and method
US7650386B2 (en) * 2004-07-29 2010-01-19 Hewlett-Packard Development Company, L.P. Communication among partitioned devices
US20060045098A1 (en) * 2004-08-31 2006-03-02 Krause Michael R System for port mapping in a network
US7403535B2 (en) * 2004-12-14 2008-07-22 Hewlett-Packard Development Company, L.P. Aggregation of network resources providing offloaded connections between applications over a network
US7551614B2 (en) * 2004-12-14 2009-06-23 Hewlett-Packard Development Company, L.P. Aggregation over multiple processing nodes of network resources each providing offloaded connections between applications over a network
US20060193318A1 (en) * 2005-02-28 2006-08-31 Sriram Narasimhan Method and apparatus for processing inbound and outbound quanta of data
US7674564B2 (en) 2005-04-11 2010-03-09 Hewlett-Packard Development Company, L.P. Color filter
US7580415B2 (en) * 2005-04-27 2009-08-25 Hewlett-Packard Development Company, L.P. Aggregation of hybrid network resources operable to support both offloaded and non-offloaded connections
US7580495B2 (en) * 2005-06-30 2009-08-25 Slt Logic Llc Mixer-based phase control
US7573967B2 (en) * 2005-07-01 2009-08-11 Slt Logic Llc Input threshold adjustment in a synchronous data sampling circuit
US8645964B2 (en) * 2005-08-23 2014-02-04 Mellanox Technologies Ltd. System and method for accelerating input/output access operation on a virtual machine
US7285996B2 (en) 2005-09-30 2007-10-23 Slt Logic, Llc Delay-locked loop
US7813460B2 (en) 2005-09-30 2010-10-12 Slt Logic, Llc High-speed data sampler with input threshold adjustment
US9104894B2 (en) * 2005-12-16 2015-08-11 Hewlett-Packard Development Company, L.P. Hardware enablement using an interface
US7827442B2 (en) 2006-01-23 2010-11-02 Slt Logic Llc Shelf management controller with hardware/software implemented dual redundant configuration
US7518164B2 (en) * 2006-03-29 2009-04-14 Mellanox Technologies Ltd. Current-triggered low turn-on voltage SCR
US9111602B2 (en) * 2006-04-07 2015-08-18 Mellanox Technologies, Ltd. Accurate global reference voltage distribution system with local reference voltages referred to local ground and locally supplied voltage
US7514978B2 (en) 2006-05-08 2009-04-07 Mellanox Technologies Ltd. Terminated input buffer with offset cancellation circuit
US7567267B2 (en) * 2006-07-31 2009-07-28 Hewlett-Packard Development Company, L.P. System and method for calibrating a beam array of a printer
US7822594B2 (en) * 2006-08-07 2010-10-26 Voltaire Ltd. Service-oriented infrastructure management
US8948199B2 (en) * 2006-08-30 2015-02-03 Mellanox Technologies Ltd. Fibre channel processing by a host channel adapter
US7801027B2 (en) 2006-08-30 2010-09-21 Mellanox Technologies Ltd. Auto-negotiation by nodes on an infiniband fabric
US20080115217A1 (en) * 2006-10-31 2008-05-15 Hewlett-Packard Development Company, L.P. Method and apparatus for protection of a computer system from malicious code attacks
US8296849B2 (en) * 2006-10-31 2012-10-23 Hewlett-Packard Development Company, L.P. Method and apparatus for removing homogeneity from execution environment of computing system
US8522042B2 (en) * 2006-10-31 2013-08-27 Hewlett-Packard Development Company, L.P. Method and apparatus for enforcement of software licence protection
US8244825B2 (en) * 2006-11-06 2012-08-14 Hewlett-Packard Development Company, L.P. Remote direct memory access (RDMA) completion
US8233380B2 (en) * 2006-11-06 2012-07-31 Hewlett-Packard Development Company, L.P. RDMA QP simplex switchless connection
US20080135774A1 (en) * 2006-12-08 2008-06-12 Asml Netherlands B.V. Scatterometer, a lithographic apparatus and a focus analysis method
US8909742B2 (en) * 2006-12-18 2014-12-09 Hewlett-Packard Development Company, L.P. Distributed configuration of network interface cards
US7848322B2 (en) 2007-03-26 2010-12-07 Voltaire Ltd. Device, system and method of UDP communication
US7864787B2 (en) * 2007-03-26 2011-01-04 Voltaire Ltd. Device, system and method of multicast communication
US7856488B2 (en) 2007-03-30 2010-12-21 Hewlett-Packard Development Company, L.P. Electronic device profile migration
WO2008127672A2 (en) 2007-04-11 2008-10-23 Slt Logic Llc Modular blade for providing scalable mechanical, electrical and environmental functionality in the enterprise using advanced tca boards
US8817817B2 (en) 2007-06-06 2014-08-26 Hewlett-Packard Development Company, L.P. Method for ethernet power savings on link aggregated groups
US7802071B2 (en) 2007-07-16 2010-09-21 Voltaire Ltd. Device, system, and method of publishing information to multiple subscribers
US20090165003A1 (en) * 2007-12-21 2009-06-25 Van Jacobson System and method for allocating communications to processors and rescheduling processes in a multiprocessor system
EP2272214B8 (en) 2008-04-28 2016-08-10 Hewlett-Packard Enterprise Development LP Adjustable server-transmission rates over fixed-speed backplane connections within a multi-server enclosure
US8248930B2 (en) 2008-04-29 2012-08-21 Google Inc. Method and apparatus for a network queuing engine and congestion management gateway
CN102017542B (zh) 2008-05-08 2014-04-30 惠普开发有限公司 将光纤通道网络与基于以太网的网络对接的方法
US8108538B2 (en) 2008-08-21 2012-01-31 Voltaire Ltd. Device, system, and method of distributing messages
US20100088437A1 (en) * 2008-10-06 2010-04-08 Mellanox Technologies Ltd Infiniband adaptive congestion control adaptive marking rate
US7921178B2 (en) * 2008-12-04 2011-04-05 Voltaire Ltd. Device, system, and method of accessing storage
US8201168B2 (en) * 2008-12-25 2012-06-12 Voltaire Ltd. Virtual input-output connections for machine virtualization
US8370675B2 (en) * 2009-01-28 2013-02-05 Mellanox Technologies Ltd. Precise clock synchronization
EP2392106B1 (en) 2009-01-29 2016-01-13 Hewlett-Packard Development Company, L.P. Connecting ports of one or more electronic devices to different subsets of networks based on different operating modes
US8000336B2 (en) 2009-04-21 2011-08-16 Voltaire Ltd. Spanning tree root selection in a hierarchical network
US8255475B2 (en) 2009-04-28 2012-08-28 Mellanox Technologies Ltd. Network interface device with memory management capabilities
US8407478B2 (en) * 2009-07-07 2013-03-26 Mellanox Technologies Ltd. Control message signature for device control
US8365057B2 (en) * 2009-07-30 2013-01-29 Mellanox Technologies Ltd Processing of data integrity field
US8644140B2 (en) * 2009-09-09 2014-02-04 Mellanox Technologies Ltd. Data switch with shared port buffers
US8225182B2 (en) * 2009-10-04 2012-07-17 Mellanox Technologies Ltd. Processing of block and transaction signatures
US7934959B2 (en) * 2009-10-06 2011-05-03 Mellanox Technologies Ltd. Adapter for pluggable module
WO2011043768A1 (en) 2009-10-07 2011-04-14 Ziebel, As Combination injection string and distributed sensing string
US8576715B2 (en) * 2009-10-26 2013-11-05 Mellanox Technologies Ltd. High-performance adaptive routing
EP2494298A1 (en) 2009-10-30 2012-09-05 Hewlett-Packard Development Company, L.P. Thermal bus bar for a blade enclosure
WO2011053330A1 (en) 2009-11-02 2011-05-05 Hewlett-Packard Development Company, L.P. Multiprocessing computing with distributed embedded switching
US9110860B2 (en) * 2009-11-11 2015-08-18 Mellanox Technologies Tlv Ltd. Topology-aware fabric-based offloading of collective functions
US8811417B2 (en) * 2009-11-15 2014-08-19 Mellanox Technologies Ltd. Cross-channel network operation offloading for collective operations
US8213315B2 (en) * 2009-11-19 2012-07-03 Mellanox Technologies Ltd. Dynamically-connected transport service
US20110173352A1 (en) * 2010-01-13 2011-07-14 Mellanox Technologies Ltd Power Reduction on Idle Communication Lanes

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222428B (zh) * 2007-01-10 2012-05-09 国际商业机器公司 用于在网络结构上发送数据包的方法、系统和硬件
CN103593234A (zh) * 2012-06-08 2014-02-19 苹果公司 自适应进程重要性
CN103593234B (zh) * 2012-06-08 2016-12-28 苹果公司 自适应进程重要性
CN104239259A (zh) * 2013-06-17 2014-12-24 阿尔特拉公司 用于与动态可重配置电路进行通信的桥接电路
CN104239259B (zh) * 2013-06-17 2018-06-12 阿尔特拉公司 用于与动态可重配置电路进行通信的桥接电路
CN108701003A (zh) * 2016-03-31 2018-10-23 英特尔公司 用于对远程节点的许多存储操作的原子写入的结构弹性支持
CN108701003B (zh) * 2016-03-31 2022-04-26 英特尔公司 用于对远程节点的许多存储操作的原子写入的结构弹性支持
CN112631959A (zh) * 2018-05-04 2021-04-09 英特尔公司 用于相干消息的高带宽链路层

Also Published As

Publication number Publication date
US20110040897A1 (en) 2011-02-17
EP1565826A2 (en) 2005-08-24
EP1565826B1 (en) 2019-05-22
TWI244288B (en) 2005-11-21
AU2003269131A8 (en) 2004-04-30
US9112752B2 (en) 2015-08-18
US20110219145A1 (en) 2011-09-08
TW200409490A (en) 2004-06-01
WO2004025477A2 (en) 2004-03-25
US8954613B2 (en) 2015-02-10
WO2004025477A3 (en) 2005-03-17
US7844742B2 (en) 2010-11-30
JP2005539305A (ja) 2005-12-22
US20070214308A1 (en) 2007-09-13
JP4657720B2 (ja) 2011-03-23
GB0221464D0 (en) 2002-10-23
US7970949B2 (en) 2011-06-28
US20050138242A1 (en) 2005-06-23
AU2003269131A1 (en) 2004-04-30

Similar Documents

Publication Publication Date Title
CN1695127A (zh) 网络接口和协议
CN1310478C (zh) 具有独立协议堆栈体系结构的多业务网络交换机
CN1154298C (zh) 分布式网络计算系统及该系统用的信息交换装置和方法
CN1181654C (zh) 使用网络处理器的网络交换机和方法
CN1118984C (zh) 高速分组传输网络的可编程线路适配器和数据分组缓存方法
CN1204509C (zh) 通信网络装置
CN1104687C (zh) 传输网络中在包路由选择和包交换之间动态转换的改进方法及设备
CN1204503C (zh) 用于通信网络的装置、系统及其操作方法
CN1555170A (zh) 流过滤防火墙
CN1311377C (zh) 转寄信息封包的方法
CN1239984C (zh) Vlsi网络处理器和方法
CN1192314C (zh) 并行处理器结构的sram控制器
CN1600011A (zh) 包含安全性关联处理器的虚拟专用网络机制
CN1679003A (zh) 启用远程直接存储器存取的网络接口控制器切换和切回支持
CN101069169A (zh) 在网络元件处缓存内容和状态数据
CN1679004A (zh) 高速缓存设备、高速缓存数据管理方法和计算机程序
CN1518823A (zh) 使用会话追踪的动态分组过滤器
CN1274107C (zh) 加密数据分发系统
CN1174319C (zh) 数据结构管理装置、数据结构管理系统和方法
CN1633130A (zh) 基于硬件支持的虚拟接口结构用户层网络通信系统
CN1316708A (zh) 对软件管理树进行模式范围比较的方法和装置
CN1607781A (zh) 利用连接操作进行网络负载平衡
CN1751473A (zh) 用于实现基于策略的网络业务管理的方法和系统
CN1777107A (zh) 高性能计算(hpc)系统中的按需式例示
CN1547705A (zh) 用于实现流控制的通用输入/输出体系结构、协议和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20090220

Address after: American California

Applicant after: Sola Communications

Address before: cambridge

Applicant before: Level 5 Networks Ltd.

ASS Succession or assignment of patent right

Owner name: SORAFULA COMMUNICATIONS CO.,LTD.

Free format text: FORMER OWNER: WUJI NETWORK CO., LTD.

Effective date: 20090220

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20051109