CN101047720B - 处理网络数据的方法和系统 - Google Patents
处理网络数据的方法和系统 Download PDFInfo
- Publication number
- CN101047720B CN101047720B CN200610091516.7A CN200610091516A CN101047720B CN 101047720 B CN101047720 B CN 101047720B CN 200610091516 A CN200610091516 A CN 200610091516A CN 101047720 B CN101047720 B CN 101047720B
- Authority
- CN
- China
- Prior art keywords
- tcp
- chip
- reception data
- data
- rdma
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/165—Combined use of TCP and UDP protocols; selection criteria therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Abstract
本发明涉及用于集成有以太网、TCP、ISCSI、RDMA和网络应用程序加速支持的片上系统设备的方法和系统。所述方法包括将至少一个网络连接的一部分接收数据存储在处理多种网络协议的多功能主机总线适配器(MHBA)芯片上。所述MHBA芯片被配置以基于与所述接收数据关联的一种协议处理所述接收数据。所述至少一个网络连接的接收数据在所述MHBA芯片中进行处理。所述一种协议包括以太网协议、传输控制协议(TCP)、因特网协议(IP)、因特网小型计算机系统接口(iSCSI)协议和/或远程直接存储器访问(RDMA)协议。
Description
技术领域
本发明的一些实施例涉及网络数据的处理,更具体地说,本发明的一些实施例涉及一种集成以太网、TCP、ISCSI、RDMA和网络应用程序加速支持的系统级芯片设备的方法和系统。
背景技术
国际标准化组织建立了开放式系统互连(OSI)参考模型。该OSI参考模型提供了一种网络设计架构,该架构可使不同提供商的设备能够相互通信。更具体地说,OSI参考模型将通信流程按分层顺序分成了七个独立、不同而又相互关联的类别。层1是物理层。它以物理方式发送数据。层2是数据链路层。它与操作通信链路的规程和协议相关,包括消息错误的检测和纠错。层3是网络层。它决定数据是如何在计算机间传输的。层4是传输层,定义了信息交换的规则,并管理消息在网络内部和网络之间端到端传送,包括错误恢复和流量控制。层5是会话层。它处理对话管理并控制由层4提供的基本通信设备的使用。层6是表示层。它与数据格式化、代码的转换和压缩/解压缩相关。层7是应用层,它处理与特定应用服务,如文件传输、远程文件访问和虚拟终端相关的功能。
各种电子设备,如计算机、无线通信设备和个人数字助理等,为了能相互通信可能访问各种网络。例如,这些设备为了方便通过因特网通信,可能使用传输控制协议/因特网协议(TCP/IP)。TCP允许两个应用建立连接并交换数据流。TCP能保证数据的传送,同时也可保证这些数据包能按顺序传送到TCP以上的各层。与诸如用户数据报协议(UDP)等协议相比,TCP可用于将数据包按与发送时相同的顺序传送到最终目的地,且不会出现包丢失的情况。TCP同时还可区分不同应用程序的数据,例如,同一计算机上的Web服务器和邮件服务器。
相应地,TCP协议经常用于因特网通信。执行OSI栈和TCP/IP处理的传统解决方案可能要使用更快更强的处理器。例如,研究表明,TCP输入/输出处理的普通路径大约需要300条指令。在最大速率条件下,对于10Gbit/s连接而言,每秒大约可接收一千五百万条的最小包长的数据包。因此,输入路径的处理大约需要每秒4,500百万条指令(MIPS)。当还需要添加类似数目的MIPS用于处理输出连接时,每秒的总指令数可能接近于一个新式处理器的极限。例如,高级奔4处理器可有大概10,000MIPS的处理能力。但是,在处理器可能要处理整个协议栈的设计中,该处理器可能成为瓶颈。
主机总线适配器(host bus adaptors,HBA)或网络接口卡(network interfacecard,NIC)的现有设计很大程度上依赖于嵌入式处理器中运行的固件。这些设计的共有特性就是都依赖嵌入式处理器和固件来解决NIC级的网络堆栈处理。为了适应日益增长的网络速度,传统NIC的自然解决方法是使用更多的处理器,这在增加处理速度的同时也增加了实施成本。
通过比较本发明后续将要结合附图介绍的系统,传统技术的其它局限性和弊端对于本领域的普通技术人员来说是显而易见的。
发明内容
本发明的至少一副附图以及权利要求中示出和/或描述了一种用于集成以太网、TCP、ISCSI、RDMA和网络应用程序加速支持的片上系统(SoC)设备的方法和/或系统。
根据本发明的一方面,提供一种处理网络数据的方法,所述方法包括:
将多个网络连接中至少一个网络连接的至少一部分接收数据存储在处理多种协议的芯片上;
配置所述芯片以基于与所述接收数据相关的所述多种协议中的一种来处理所述接收数据;
在所述芯片内,通过所述经配置的芯片处理所述多个网络连接中至少一个网络连接的接收数据。
优选地,所述多种网络协议中的一种包括以下之一:以太网协议、传输控制协议(TCP)、因特网协议(IP)、因特网小型计算机系统接口(iSCSI)协议和远程直接存储访问(RDMA)协议。
优选地,所述至少一个网络连接的所述已存储的接收数据中的至少一部分包括上下文信息。
优选地,所述方法还包括在所述芯片中处理所述接收数据之前,验证所述接收数据。
优选地,所述方法还包括在所述芯片中基于与所述至少一个网络连接相关的协议提取所述接收数据的至少一个报头。
优选地,所述提取的至少一个报头包括以下之一:因特网协议(IP)报头和传输控制协议(TCP)报头。
优选地,所述方法还包括:如果所述至少一个网络连接的所述接收数据使用传输控制协议(TCP),则在所述芯片内基于所述接收数据内对应的TCP报头确定TCP会话标识。
优选地,所述方法还包括在所述芯片内基于所述确定的TCP会话标识获取所述接收数据的TCP上下文信息。
优选地,所述方法还包括在所述芯片中基于所述获取的TCP上下文信息处理所述接收数据内的至少一个TCP数据包。
优选地,所述方法还包括:如果所述至少一个网络连接的所述接收数据基于RDMA协议,则在所述芯片内移除所述接收数据的至少一个RDMA标记。
优选地,所述芯片包括多功能主机总线适配器芯片。
根据本发明的一方面,提供一种处理网络数据的系统,所述系统包括:
存储多个网络连接中的至少一个网络连接的至少一部分接收数据的芯片,其中,所述芯片处理多种协议,并且所述芯片进行配置后基于与所述接收数据相关的多种协议中的一种来处理所述接收数据;且
所述芯片处理所述至少一个网络连接的接收数据。
优选地,所述多种协议中的一种包括以下之一:以太网协议、传输控制协议(TCP)、因特网协议(IP)、因特网小型计算机系统接口(iSCSI)协议、远程直接存储访问(RDMA)协议。
优选地,所述至少一个网络连接的所述已存储的接收数据中的至少一部分包括上下文信息。
优选地,所述芯片在处理所述接收数据之前,在所述芯片内验证所述接收数据。
优选地,所述芯片基于与所述至少一个网络连接相关的协议提取所述接收数据的至少一个报头。
优选地,所述提取的至少一个报头包括以下之一:因特网协议(IP)报头和传输控制协议(TCP)报头。
优选地,如果所述至少一个网络连接的所述接收数据使用传输控制协议(TCP),所述芯片基于所述接收数据内对应的TCP报头确定TCP会话标识。
优选地,所述芯片基于所述确定的TCP会话标识获取所述接收数据的TCP上下文信息。
优选地,所述芯片基于所述获取的TCP上下文信息处理所述接收数据内的至少一个TCP数据包。
优选地,如果所述至少一个网络连接的所述接收数据基于RDMA协议,所述芯片移除所述接收数据的至少一个RDMA标记。
优选地,所述芯片包括多功能主机总线适配器芯片。
优选地,如果在所述芯片内处理的数据是基于RDMA协议,所述芯片将至少一个RDMA标记插入到所述数据内。
通过以下的描述以及附图,将更好地理解本发明的各种优点、目的和显著特征,以及具体实施例的各种细节。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1A是结合本发明一个实施例使用的一个通信系统的方框示意图;
图1B是根据本发明的一个实施例的多功能主机总线适配器的各种处理路径的方框示意图;
图2是根据本发明的一个实施例的多功能主机总线适配器的方框示意图;
图3A是根据本发明一个实施例的RDMA分段的示意图;
图3B是根据本发明一个实施例的RDMA处理的示意图;
图3C是根据本发明一个实施例使用多功能主机总线适配器的存储子系统的方框示意图;
图3D是根据本发明一个实施例处理网络数据的方法的流程图。
具体实施方式
本发明的一些实施例涉及使用片上系统(system-on-a-chip,SOC)设备处理网络数据的方法和系统,这种SOC设备集成有以太网、TCP、iSCSI、RDMA和网络应用加速的支持。所述SOC设备包括用于处理多种协议的多功能主机总线适配器(MHBA)芯片。所述MHBA芯片可存储多个网络连接中的至少一个网络连接的接收数据;所述MHBA芯片可进行配置以基于与所述接收数据相关联的所述多种协议中的一种处理所述接收数据。例如,所述MHBA芯片可处理与一种协议关联的数据,比如以太网协议、传输控制协议(TCP)、因特网协议(IP)、因特网小型计算机系统接口(iSCSI)协议、远程直接存储器存取(RDMA)协议。这样,与这些协议相关的数据处理从主机处理器转移到MHBA芯片上,从而提高了主机处理器的效率并显著地降低了实施成本。
图1A是结合本发明的一个实施例使用的通信系统的方框示意图。参考图1A,图1A中示出了主机100、101,以及网络115。主机101包括中央处理器(CPU)102、存储器接口(MCH)104、存储器模块106、输入/输出(I/O)接口(ICH)108和多功能主机总线适配器(MHBA)芯片110。
存储器接口(MCH)104可包括合适的电路和/或逻辑,用于在存储器模块106与其他设备如CPU 102之间传输数据。输入/输出接口(ICH)108可包括合适的电路和/或逻辑,用于在IO设备之间、IO设备与存储器模块之间、或者IO设备与CPU 102之间传输数据。MHBA芯片110可包括合适的电路、逻辑和/或编码,用于为任何的通信协议传输和接收数据。MHBA芯片110可使用RDMA主机总线适配器(HBA)功能、iSCSI HBA功能、以太网网络接口卡(NIC)功能,和/或TCP/IP卸载(offload)功能。在这点上,MHBA芯片110可用于处理以太网协议数据、TCP数据、IP数据、iSCSI数据和RDMA数据。处理的量可预先设定和/或根据实际情况决定。在一些实施例中,MHBA芯片110可为单芯片,使用片载存储器和/或片外存储器来处理任何一种通信协议的数据。
工作时,主机100和主机101可通过网络115互相通信。网络115可以是以太网。因此,主机100和/或主机101可通过网络接口卡如MHBA芯片110发送和/或接收数据包。例如,CPU 102可从存储器模块106上取得指令并执行这些指令。CPU 102还能将数据存储到存储器模块106上和/或从存储器模块106上取回数据。所述指令的执行可包括与其他部件传输数据。例如,在CPU 102上运行的软件应用程序可将数据传输到网络如网络115。所述软件应用程序的一个例子是电子邮件应用程序,其在主机100和主机101之间发送电子邮件。
因此,主机101内的CPU 102可处理电子邮件中的数据并将处理后的数据传递给MHBA芯片110。这可由CPU 102直接发送给MHBA芯片110。替换的,也可以先将数据存储在存储器模块106上,然后通过直接存储器存取(DMA)进程等将所存储的数据传递给MHBA芯片110。DMA需要的各种参数,如源起始地址、将要传输的字节数、目标起始地址等可由CPU 102写入存储器接口(MCH)104。存储器接口(MCH)104一旦接到开始命令,就开始DMA进程。在这点上,存储器接口(MCH)104充当DMA控制器。
NIC 110还处理电子邮件数据,以适合于在NIC 110所连接的网络115上传输的格式将电子邮件数据以数据包形式传输。类似地,NIC 110从所连接的网络115上接收数据包。NIC 100处理所接收的数据包中的数据,并将处理后的数据传输给更高协议的进程,进一步处理所述数据。处理后的数据可通过IO接口(ICH)108和存储器接口(MCH)104存储在存储器模块106中。在CPU 102上运行的电子邮件应用程序还可进一步处理存储器模块106中的数据,这些数据最终以文本电子邮件消息的形式显示给主机101的用户。
图1B是根据本发明一个实施例的多功能主机总线适配器的各种处理路径的示意图。参考图1B,图1B中示出了集成在芯片中的硬件设备,如多功能主机总线适配器(MHBA)芯片106b,MHBA芯片106b可用于处理来自与应用程序或用户级102b的一个或多个连接的数据。用户级可通过内核或软件级104b与MHBA芯片106b通信。用户级102b可使用一个或多个RDMA应用程序108b和/或套接应用程序110b。内核级104b可使用那些用于实现系统呼叫接口112b、文件系统处理114b、小型计算机系统接口处理(SCSI)116b、因特网SCSI处理(iSCSI)120b、RDMA动词库(verb library)处理124b、TCP卸载处理126b、TCP/IP处理128b和网络设备驱动130b等的软件。MHBA106b可包括消息接发与DMA接口(DMA IF)132b、RDMA处理模块134b、TCP卸载处理模块136b、以太网处理模块138b、TCP卸载引擎140b和收发器(Tx/Rx)接口142b。
在本发明的一个实施例中,MHBA芯片106可用于处理来自本地(native)的TCP/IP或以太网堆栈、TCP卸载堆栈和/或RDMA堆栈的数据。以太网堆栈处理、TCP卸载处理和RDMA处理在图1B中分别用路径1、2和3表示。
以太网处理路径,即路径1,可被现有的套接应用程序(socket application)110b利用以实现网络输入/输出(I/O)操作。在处理以太网数据包时,数据包在内核级104b中可通过系统呼叫接口112b和开关122b从套接应用程序110b传输到TCP/IP处理模块128b。接着,TCP/IP处理模块128b将以太网数据包传输到MHBA芯片106b上的以太网处理模块138b。以太网数据包被处理后,所得的结果被传输给Rx/Tx接口(IF)142b。在本发明的一个实施例中,MHBA芯片106b可利用优化技术在原始以太网路径即路径1中执行数据优化操作。这种数据优化操作可包括IP报头校验和(checksum)、TCP校验和和/或用户数据报协议(user datagram protocol,UDP)校验和的计算。附加的数据优化操作可包括应用程序特定摘要(application specific digests)的计算,如iSCSI的32位的循环冗余校验(CRC-32)值。其他的数据优化操作可包括添加安全校验和(secure checksum)到远程程序呼叫(PRC)的呼叫和答复。
在路径2所示的TCP卸载处理方案中,TCP数据包在内核级106b中通过系统呼叫接口112b和开关122b从套接应用程序110b传输到TCP卸载处理模块126b。接着,TCP卸载处理模块126b将TCP数据包传输给TCP卸载模块136b。TCP卸载模块136b将TCP数据包传输给TCP卸载引擎140b以进行处理。TCP数据包被处理后,所得的结果从TCP卸载引擎140b传输到Rx/Tx接口(IF)142b。Rx/Tx IF 142b用于从MHBA芯片106b接收信息和将信息传输给MHBA芯片106b。MHBA芯片106b上的TCP卸载引擎(TCP offloadengine,TOE)140b用于在主机处理器有限的干预或不干预下进行网络I/O处理。具体地,TOE 140b可用于在MHBA芯片106b内执行与协议有关的封装、分割、重组(re-assembly)和/或确认任务,从而减少了主机处理器的开销(overhead)。
在路径3所示的RDMA堆栈处理方案中,RDMA数据包通过内核级104上的一个或多个模块从用户级102b内的RDMA应用模块108b传输到内MHBA芯片内的RDMA处理模块134b。例如,RDMA数据包可通过系统呼叫接口112b从RDMA应用模块108b传输到RDMA动词处理模块124b。RDMA动词处理模块124b通过利用网络设备驱动130b和消息接口132b将RDMA数据包传输给RDMA处理模块134b。RDMA处理模块134b可使用TCP卸载引擎140b以进一步处理RDMA数据包。RDMA数据包被处理后,所得的结果从TCP卸载引擎140b传输到Rx/Tx接口(IF)142b。
图2是根据本发明一个实施例的多功能主机总线适配器的示意图。参考图2,多功能主机总线适配器(MHBA)芯片202包括接收接口(RxIF)214、发射接口(TxIF)212、TCP引擎204、处理器接口(PIF)208、以太网引擎(ETH)206、主机接口(HIF)210和协议处理器236,...,242。MHBA芯片202还可以包括会话查找模块216、MPT/MTT处理模块228、节点控制器230、廉价磁盘冗余阵列(RAID)控制器248、存储器控制器234、缓存管理器250、互连总线232。
RxIF 214包括有合适的电路、逻辑和/或代码,可用于从任一协议类型中接收数据,预处理所接收的数据并将预处理后的数据传输给MHBA芯片202的一个或多个模块中以进行进一步的处理。RxIF 214可包括接收缓存描述符序列(receive buffer descriptor queue)214a、接收器媒介访问控制(MAC)模块(RxMAC)214b、循环冗余校验(CRC)模块214c、校验和计算模块(ChkSum)214d、报头提取模块(HDREX)214e和过滤模块(Filtering)214f。RxIF 214可通过一个或多个输入端口264接收数据包。输入端口264中,每个输入端口都有唯一的IP地址,例如,可用于支持千兆以太网(Gigabit Ethernet)。接收缓存描述符序列214a可包括用于保存所接收的数据包的本地缓存器列表。该列表可从缓存管理器250接收。接收器MAC模块214b可包括合适的电路、逻辑和/或代码,用于执行媒介访问控制(MAC)层处理,如所接收数据包的校验和有效性确认。
接收器MAC模块214b可使用校验和计算模块214d来计算出校验和,并将所计算出的校验和与所接收数据包的校验和进行比较。校验和不正确的数据包是被破坏了的,这种数据包会被RxIF 214丢弃。此外,接收器MAC模块214b使用过滤模块214f过滤接收的帧,通过检验所接收的帧的目标地址来滤出送往主机的帧。在这点上,接收器MAC模块214b将当前数据包的IP地址与目的地IP地址比较。如果IP地址不匹配,就丢弃该数据包。RxIF 214可利用CRC模块214c计算所接收的数据包的CRC。另外,RxIF 214可利用报头提取模块214e从所接收的数据包中提取一个或多个报头。例如,RxIF 214可首先提取IP报头,然后提取TCP报头。
发射接口(TxIF)212包括有合适的电路、逻辑和/或代码,可用于缓冲经处理的数据,以及在将处理后的数据送出MHBA芯片202之前执行MAC层的功能。此外,TxIF 212可计算出站数据包的校验和和/或循环冗余校验码(CRC),以及将MPA标记插入到RDMA数据包中。TxIF 212通过一个或多个输出端口266将处理后的数据输出,例如,通过支持千兆以太网的端口。TxIF 212可包括多个缓存器212a、一个或多个请求序列212c和发射(Tx)MAC模块212b。请求将处理后的数据发送的命令在请求队列212c中排队。TxIF 212可将处理后的数据存储在一个或多个缓存器212a中。在本发明的一个实施例中,当数据通过例如DMA传输器存储到缓存器212a内时,TxIF 212可计算发送的数据包的校验和。
TCP引擎204可包括合适的电路、逻辑和/或代码,用于处理TCP卸载数据包。TCP引擎可包括调度器218、TCP接收引擎(RxE)222、TCP传输引擎(TxE)220、计时器226和确认生成器224。调度器218可包括请求队列218a和上下文高速缓存(Ctx Cache)218b。上下文高速缓存218b可存储最近访问的TCP会话的传输控制块(TCB)阵列信息。
调度器218可用于接收数据包信息,如来自RxIF 214的TCP报头信息,并在处理所接收的TCP数据包时为RxE 222提供传输控制块(TCB)或TCP上下文,以及在传输TCP卸载数据包时为TxE 220提供传输控制块(TCB)或TCP上下文。TCP信息可基于TCP会话查找的结果从上下文高速缓存218b中获取。请求队列218a可用于将从上下文高速缓存218b中请求TCB数据的一个或多个请求排队。如果找不到卸载会话的上下文,调度器218还用于将所接收的TCP数据包传递给以太网引擎(ETH)206。
会话查找模块216可包括合适的电路、逻辑和/或代码,在TCP会话查找操作时,调度器218基于从RxIF 214接收的TcP报头信息,使用所述会话查找模块216从上下文高速缓存218b获取TCP上下文信息。
RxE 222可包括合适的电路、逻辑和/或代码,可以是兼容RFC的硬件引擎,用于为所接收的数据包处理TCP数据包报头信息。TCP数据包报头信息可从调度器218接收。经处理的数据包报头信息被传递给PIF 208;更新后的TCP上下文信息可回传给调度器218以存储在上下文高速缓存218b中。RxE222还可产生对定时器226的请求,以设定或重新设定定时器;还可产生计算往返时间(round trip time,RTT)的请求,以处理TCP重传和避免堵塞。此外,RxE 222可产生对确认产生器224的请求,以产生一个或多个TCP确认数据包。
TxE 220可包括合适的电路、逻辑和/或代码,可以是兼容RFC的硬件引擎,用于为所发射的数据包处理TCP上下文信息。TxE 220可从调度器218上接收TCP上下文信息,以及使用所接收的TCP上下文信息生成发射数据包的TCP报头。所产生的TCP报头信息可传输给TxIF 212,在TxIF 212中,将TCP报头添加到TCP有效载荷中以产生TCP发射数据包。
处理器接口(PIF)208可包括合适的电路、逻辑和/或代码,可使用嵌入式处理器核心如协议处理器236,...,242以处理动态操作,如TCP重组和主机消息收发功能。PIF 208可包括消息队列208a、存储器直接访问(DMA)命令队列208b和接收/发送队列(RxQ/TxQ)208c。协议处理器236,...,242可用于TCP重组和系统管理任务。
以太网引擎(ETH)206可包括合适的电路、逻辑和/或代码,可用于进行非卸载数据包的处理,如不需要TCP会话处理的以太网数据包或TCP数据包。ETH 206可包括消息队列206a、DMA命令队列206b、RxQ/TxQ 206c和接收缓存器描述符列表(RxBufDesc)206d。
主机接口(HIF)210可包括合适的电路、逻辑和/或代码,可为主机与MHBA芯片202通过连接256的通信提供消息收发支持。MPT/MTT处理模块228可包括合适的电路、逻辑和/或代码,用于处理RDMA连接的过程中进行真实的主机存储器地址查找。MPT/MTT处理模块228可包括自适应高速缓存,用于在主机存储器地址查找操作中缓存MPT和MTT入口(entry)。用于MPT/MTT表和TCP上下文的一种典型的自适应高速缓存设计在2005年9月16日申请的、美国专利申请号为__(代理案号1669US02)的美国专利申请中有描述,本文在此引用其全文。
缓存管理器250可包括合适的电路、逻辑和/或代码,可用于管理MHBA芯片202的本地缓存器。例如,缓存管理器250提供缓存器给例如RxIF 214以接收未经请求的数据包。缓存管理器250还能接收逻辑模块如ETH 206释放的缓冲器。例如,当ETH 206完成DMA操作,将所接收的数据移动到主机存储器之后,就释放缓存器。
MHBA芯片202还使用节点控制器230与外部的MHBA通信,使多个MHBA芯片形成多处理器系统。MHBA芯片202还使用RAID控制器248与外部的存储设备通信。存储器控制器234可用于控制外部存储器246与MHBA芯片202之间的通信。例如,外部存储器246可用于存储主TCB阵列。该TCB阵列的一部分将传递给MHBA芯片202,并可存储在上下文高速缓存218b中。
工作时,RxIF 214通过输入端口264接收数据包,以及基于所接收数据包的协议类型在MHBA芯片202中处理所述数据包。RxIF 214可丢弃目标地址不正确的或者校验和不正确的数据包。可从描述符列表(RxBufDes)214a中取得缓存器,用于存储所接收的数据包;同时更新该描述符列表214a。可从缓存管理器250中获取新的补充缓存器。如果所接收的数据包是非TCP数据包,例如,如果是以太网数据包,则通过连接271将该数据包传递给ETH206。非TCP数据包被当作以太网帧传递给ETH 206。ETH 206也接收来自TCP引擎204内的调度器218的非卸载TCP数据包。ETH 206处理非TCP数据包后,将处理后的非TCP数据包传递给HIF 210。HIF 210通过连接256将所接收的数据包传递给主机。
如果所接收的数据包是TCP卸载数据包,则由RxIF 214对该数据包进行处理。RxIF 214移除TCP报头,该TCP报头被传递给TCP引擎204内的调度器218以及会话查找模块216。所得的TCP有效载荷经由互连总线232传递给外部存储器246,以由协议处理器236,...,242处理。调度器218基于所接收的TCP报头,使用会话查找模块216在最近访问的TCP会话中进行TCP会话查找。被选择的TCP会话270将传递给调度器218。调度器218可基于该TCP会话信息270为当前TCP报头选择TCP上下文。TCP上下文经由连接273传递给RxE 222。RxE 222基于所选择的TCP上下文或者从调度器接收的TCB处理当前的TCP报头并提取控制信息。接着,RxE 222基于处理后的报头信息更新TCP上下文;更新后的TCP上下文被传递回调度器218以存储在上下文高速缓冲器218b中。处理后的报头信息可从RxE 222传递到PIF208。接着,协议处理器236,...,242执行TCP重组。重组后的TCP数据包,以及从外部存储器246中读取的有效载荷数据,被传递给HIF 210,接着经由连接256传递给主机。
在处理数据以用于发射时,数据可由MHBA芯片202通过连接256以及HIF 210从主机上接收。所接收的发射数据可存储在外部存储器246内。如果所述发射数据是非TCP数据,则传递给ETH 206。ETH 206处理该非-TCP数据包并通过连接276将处理后的数据包传递给TxIF 212。然后,TxIF 212经过输出端口266将处理后的非-TCP数据包传送到MHBA芯片202外面。
如果所述发射数据包括TCP有效载荷数据,PIF 208将通过连接274将与TCP有效载荷信息对应的TCP会话指示符(indicator)传送给调度器218。调度器218基于从PIF 208接收的TCP会话信息从上下文高速缓冲器218b中选择TCP上下文。所选择的TCP上下文经由连接272从调度器218传送到TxE220。然后,TxE 220基于TCB或者从调度器218接收的TCP上下文为TCP发射数据包产TCP报头。所产生的TCP报头经由连接275从TxE 220传递给TxIF 212。TCP有效载荷也经由连接254从TxIF 212传送到PIF 208。数据包有效载荷也从主机传送到TxIF 212,或者从主机传送到外部存储器的本地缓存器中。在这点上,在数据包重传期间,可通过DMA传输器将数据从外部存储器246内的本地缓存器传送到TxIF 212;或者通过DMA传输器将数据从主机存储器传送到TxIF 212。TxIF 212可利用从PIF 208接收的TCP有效载荷以及从TxE 220接收的TCP报头来产生TCP数据包。接着,所产生的TCP数据包经由一个或多个输出端口266传输到MHBA芯片202外。
在本发明的一个实施例中,MHBA芯片202可处理从RxIF 214接收的RDMA数据,或者处理将通过TxIF 212发射的RDMA数据。附图3A和附图3B中将进一步描述使用主机总线适配器如MHBA芯片202处理RDMA数据。RDMA是在现代网络子系统中达到零拷贝(zero-copy)的技术。RDMA是包括三种协议的套件,即RDMA协议(RDMAP)、直接数据放置(DDP)以及标记PDU对齐帧协议(maker PDU aligned framing protocol,MPA),其中,PDU是协议数据单元。RDMAP为应用程序提供接口以发送和接收数据。DDP用于将出站数据分割成符合TCP最大段大小的多个片段,以及将入站数据存入目标缓存器中。MPA用于提供组帧方案,使RDMA处理过程中标识DDP片段时的DDP操作更容易。RDMA可以是TCP之上的传输协议套件。
图3A是根据本发明一个实施例的RDMA片段的示意图。参考图2和3A,MHBA芯片202可用于处理RxIF 214所接收的RDMA信息。例如,RxIF 214可接收TCP片段302a。该TCP片段包括TCP报头304a和有效载荷306a。RxIF可分离TCP报头304a。所得到的TCP报头304a被传输给PIF 208并在PIF 208中缓冲,以由协议处理器236,...,242处理。因为RDMA消息可能太大而无法装在一个TCP片段中,所以处理器236,...,242的DDP处理可将大的RDMA消息分割成小的片段。例如,RDMA协议数据单元312a,其可以是有效载荷306a的一部分,包括组合报头310a和312a、DDP/RDMA有效载荷314a。所述组合报头可包括控制信息,如MPA头,其包括长度指示符310a和DDP/RDMA报头312a。DDP/RDMA报头信息312a可指定参数,例如操作类型、目标缓存器的地址以及数据传输的长度。
MPA组帧协议可在TCP序列空间上每隔512字节就添加一个标记到RDMA有效载荷中。所述标记帮助接收器如MHBA芯片202找到DDP/RDMA报头312a。如果MHBA芯片202接收的网络数据包无序,MHBA芯片202可使用位置固定已知的标记316a来快速找到DDP报头,如DDP/RDMA报头312a。恢复DDP报头312a后,MHBA芯片202通过HIF 210将数据存入主机存储器的目标缓存中。因为每个DDP片段都是独立的,并且RDMA报头312a可包括目标缓存器地址,所以出现无序数据包时便能进行快速数据存放。
HIF 210可用于移除标记316a和CRC 318a以获得DDP片段319a。DDP片段319a包括DDP/RDMA报头320a和DDP/RDMA有效载荷322a。HIF 210还处理DDP片段310a以获得RDMA消息324a。RDMA消息324a包括RDMA报头326a和有效载荷328。有效载荷328,可以是应用数据330a,包括上层协议(UPL)信息和协议数据单元(PDU)信息。
图3B是根据本发明的一个实施例的RDMA处理的示意图。参考图2和3A,主机总线适配器302b与图2的MHBA芯片202相同,该主机总线适配器302b可利用RDMA协议处理模块312b、DDP处理310b、MPA处理308b以及TCP引擎306b的TCP处理。RDMA、MPA和DDP处理可由处理器236,...,242执行。主机304b的主机应用程序324b可通过动词层(verb layer)322b和驱动层(driver layer)320b与MHBA芯片202通信。例如,主机应用程序324b可通过RDMA/TCP连接传递数据。在这种情况之下,主机应用程序324b发送传输请求到发送队列(send queue,SQ)314b。所述传输请求命令包括有将要发送到MHBA芯片202的数据的量的指示。当RDMA数据包的发送准备就绪时,TxIF计算MPA报头和CRC信息并将它们插入到RDMA有效载荷中。
图3C是根据本发明的一个实施例使用多功能主机总线适配器的存储子系统的示意图。参考图3C,存储子系统305c包括存储器316c、处理器318c、多功能主机总线适配器(MHBA)芯片306c以及多个存储驱动器320c,...,324c。MHBA芯片306c与图2所示的MHBA芯片202相同。MHBA芯片306c包括节点控制器和数据包管理器(NC/PM)310c、iSCSI和RDMA(iSCSI/RDMA)模块312c、TCP/IP处理模块308c和串行高级技术附件(SATA)接口314c。存储子系统305c可通信地连接到总线/开关307c和服务器开关302c。
NC/PM 310c可包括合适的电路、逻辑和/或编码,用于控制一个或多个正在使用存储子系统305c的节点。例如,所述节点可通过总线/开关307c连接到存储子系统305c。存储子系统305c可使用iSCSI/RDMA模块312c和TCP/IP模块308c与远程专用服务器通信,例如,在TCP/IP网络上使用iSCSI协议。例如,可通过开关302c和使用iSCSI/RDMA模块312c的TCP/IP连接将来自远端服务器的网络传输信息(network traffic)传递给存储子系统305c。另外,在存储器316c与远端设备(例如,连接到总线/开关307c的网络设备)的存储器进行RDMA连接时,存储子系统305c可利用iSCSI/RDMA模块312c。MHBA芯片306c可使用SATA接口314c在存储子系统305c的存储器设备302c,...,324c与MHBA芯片306c之间建立快速连接和数据交换。
具体操作时,连接到总线/开关307c的网络设备可请求将服务器数据326c存储在存储子系统中。服务器数据326c可通过开关302c传输和路由到存储子系统中。例如,可将服务器数据306c路由以存储在存储子系统的存储块304c中,或者将其路由以存储在存储子系统305c中。MHBA芯片306c可使用SATA接口314c以将被请求的服务器数据存储在任何一个存储驱动器320c,...,324c中。
图3D是根据本发明一个实施例处理网络数据的流程图。参考图2和3D,步骤302d中,将多个网络连接中至少一个网络连接的接收数据的至少一部分存储在多功能主机总线适配器(MHBA)芯片202中,所述MHBA芯片202处理多种协议。步骤303d中,在MHBA芯片202中验证所述接收数据。例如,由RxIF 214验证所述接收数据。步骤304d中,配置MHBA芯片202以基于与所述接收数据关联的多种协议中的一种协议处理所述接收数据。步骤306d中,确定所述接收数据是否使用传输控制协议(TCP)。如果所述接收数据使用传输控制协议,步骤308d中,在MHBA芯片202中确定TCP会话标识。
例如,TCP会话标识可由会话查找模块216确定,TCP会话识别可基于接收数据中对应的TCP报头进行。步骤310d中,基于已定位的TCP会话标识,在MHBA芯片202中活却接收数据的TCP上下文信息。步骤312d中,在MHBA芯片202内,基于获取的TCP上下文信息,处理该接收数据内的至少一个TCP数据包。步骤314d中,确定该接收数据是否基于RDMA协议。如果该接收数据基于RDMA协议,步骤316d中,在MHBA芯片中将该接收数据的至少一个RDMA标记移除。
因此,本发明可以通过硬件、软件、固件或它们的组合来实现。本发明可以在至少一个计算机系统中以集中方式实现,或者由分布在几个互连的计算机系统中的不同部分以分散方式实现。任何可以实现所述方法的计算机系统或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机系统,通过安装和执行所述程序控制计算机系统,使其按所述方法运行。在计算机系统中,利用处理器和存储单元来实现所述方法。
本发明的一个实施例可通过电路板级的产品实现,例如单个芯片、特定用途集成电路(ASIC),或者在可变集成度的单芯片上实现,而系统的其他部分是独立的组件。系统的集成度主要由速度和成本决定。因为现代处理的固有属性,使用商业可用的处理器是可行的,所述商业可用处理器可外接到本发明系统的ASIC核心上。替换地,如果处理器以ASIC核心或逻辑模块形式可用,那么商业可用处理器可用作多功能ASIC设备的一部分,而各种其他功能用固件实现。
本发明还可以嵌入在计算机程序产品内,所述程序包含能够实现本发明方法的全部特征,当其安装到计算机系统中时,通过运行,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、代码或符号编写的一组指令的任何表达式,该指令组使系统具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后实现特定功能:a)转换成其它语言、编码或符号;b)以不同的格式再现。
本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
本申请引用并要求申请日期为2005年6月7日的美国临时专利申请No.60/688,265的优先权。
本申请还参考了:
美国专利申请号__(代理案号16592US02),申请日期为2005年9月16日;
美国专利申请号__(代理案号16593US02),申请日期为2005年9月16日;
美国专利申请号__(代理案号16594US02),申请日期为2005年9月16日;
美国专利申请号__(代理案号16597US02),申请日期为2005年9月16日;
美国专利申请号__(代理案号16642US02),申请日期为2005年9月16日;
美国专利申请号__(代理案号16669US02),申请日期为2005年9月16日。
Claims (12)
1.一种处理网络数据的方法,所述方法包括:
将多个网络连接中至少一个网络连接的至少一部分接收数据存储在处理多种协议的芯片上;
配置所述芯片以基于与所述接收数据相关的所述多种协议中的一种来处理所述接收数据;
在所述芯片内,通过所述经配置的芯片处理所述多个网络连接中至少一个网络连接的接收数据;
如果所述至少一个网络连接的所述接收数据使用传输控制协议(TCP),则在所述芯片内基于所述接收数据内对应的TCP报头确定TCP会话标识。
2.根据权利要求1所述的方法,其特征在于,所述多种网络协议中的一种包括以下之一:以太网协议、传输控制协议(TCP)、因特网协议(IP)、因特网小型计算机系统接口(iSCSI)协议和远程直接存储访问(RDMA)协议。
3.根据权利要求1所述的方法,其特征在于,所述至少一个网络连接的所述已存储的接收数据中的至少一部分包括上下文信息。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括在所述芯片中处理所述接收数据之前,验证所述接收数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括在所述芯片中基于与所述至少一个网络连接相关的协议提取所述接收数据的至少一个报头。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括如果所述至少一个网络连接的所述接收数据基于RDMA协议,则在所述芯片内移除所述接收数据的至少一个RDMA标记。
7.一种处理网络数据的系统,所述系统包括:
存储多个网络连接中的至少一个网络连接的至少一部分接收数据的芯片,其中,所述芯片处理多种协议,并且所述芯片进行配置后基于与所述接收数据相关的多种协议中的一种来处理所述接收数据;且
所述芯片处理所述至少一个网络连接的接收数据;
如果所述至少一个网络连接的所述接收数据使用传输控制协议(TCP),所述芯片基于所述接收数据内对应的TCP报头确定TCP会话标识。
8.根据权利要求7所述的系统,其特征在于,所述多种协议中的一种包括以下之一:以太网协议、传输控制协议(TCP)、因特网协议(IP)、因特网小型计算机系统接口(iSCSI)协议、远程直接存储访问(RDMA)协议。
9.根据权利要求7所述的系统,其特征在于,所述至少一个网络连接的所述已存储的接收数据中的至少一部分包括上下文信息。
10.根据权利要求7所述的系统,其特征在于,所述芯片在处理所述接收数据之前,在所述芯片内验证所述接收数据。
11.根据权利要求7所述的系统,其特征在于,所述芯片基于与所述至少一个网络连接相关的协议提取所述接收数据的至少一个报头。
12.根据权利要求7所述的系统,其特征在于,如果所述至少一个网络连接的所述接收数据基于RDMA协议,所述芯片移除所述接收数据的至少一个RDMA标记。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68826505P | 2005-06-07 | 2005-06-07 | |
US60/688,265 | 2005-06-07 | ||
US11/228,363 US7596144B2 (en) | 2005-06-07 | 2005-09-16 | System-on-a-chip (SoC) device with integrated support for ethernet, TCP, iSCSI, RDMA, and network application acceleration |
US11/228,363 | 2005-09-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101047720A CN101047720A (zh) | 2007-10-03 |
CN101047720B true CN101047720B (zh) | 2010-08-11 |
Family
ID=36997835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610091516.7A Expired - Fee Related CN101047720B (zh) | 2005-06-07 | 2006-06-06 | 处理网络数据的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (2) | US7596144B2 (zh) |
EP (1) | EP1732010B1 (zh) |
CN (1) | CN101047720B (zh) |
DE (1) | DE602006009184D1 (zh) |
TW (1) | TWI449388B (zh) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002084499A1 (en) | 2001-04-11 | 2002-10-24 | Chelsio Communications, Inc. | Multi-purpose switching network interface controller |
US8782654B2 (en) | 2004-03-13 | 2014-07-15 | Adaptive Computing Enterprises, Inc. | Co-allocating a reservation spanning different compute resources types |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
US7764709B2 (en) * | 2004-07-07 | 2010-07-27 | Tran Hieu T | Prioritization of network traffic |
US8176490B1 (en) | 2004-08-20 | 2012-05-08 | Adaptive Computing Enterprises, Inc. | System and method of interfacing a workload manager and scheduler with an identity manager |
CA2586763C (en) | 2004-11-08 | 2013-12-17 | Cluster Resources, Inc. | System and method of providing system jobs within a compute environment |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
EP3203374B1 (en) | 2005-04-07 | 2021-11-24 | III Holdings 12, LLC | On-demand access to compute resources |
US7724658B1 (en) | 2005-08-31 | 2010-05-25 | Chelsio Communications, Inc. | Protocol offload transmit traffic management |
US7660306B1 (en) | 2006-01-12 | 2010-02-09 | Chelsio Communications, Inc. | Virtualizing the operation of intelligent network interface circuitry |
US7616563B1 (en) | 2005-08-31 | 2009-11-10 | Chelsio Communications, Inc. | Method to implement an L4-L7 switch using split connections and an offloading NIC |
EP1811415A1 (en) * | 2005-12-23 | 2007-07-25 | Nagracard S.A. | Secure system-on-chip |
EP1802030A1 (en) * | 2005-12-23 | 2007-06-27 | Nagracard S.A. | Secure system-on-chip |
US8656191B2 (en) | 2005-12-23 | 2014-02-18 | Nagravision S.A. | Secure system-on-chip |
US7710968B2 (en) * | 2006-05-11 | 2010-05-04 | Intel Corporation | Techniques to generate network protocol units |
TWI326417B (en) * | 2006-06-01 | 2010-06-21 | Ind Tech Res Inst | System and method for recognizing offloaded packet |
KR100737943B1 (ko) * | 2006-09-13 | 2007-07-13 | 삼성전자주식회사 | 네트워크-온-칩 응답 신호 제어 장치 및 그 방법 |
US8868397B2 (en) | 2006-11-20 | 2014-10-21 | Sonics, Inc. | Transaction co-validation across abstraction layers |
US8020124B2 (en) * | 2006-11-20 | 2011-09-13 | Sonics, Inc. | Various methods and apparatuses for cycle accurate C-models of components |
US7849214B2 (en) * | 2006-12-04 | 2010-12-07 | Electronics And Telecommunications Research Institute | Packet receiving hardware apparatus for TCP offload engine and receiving system and method using the same |
US7751443B2 (en) * | 2007-01-05 | 2010-07-06 | Freescale Semiconductor, Inc. | Intra-chassis packet arbitration scheme |
US8935406B1 (en) | 2007-04-16 | 2015-01-13 | Chelsio Communications, Inc. | Network adaptor configured for connection establishment offload |
US8060644B1 (en) | 2007-05-11 | 2011-11-15 | Chelsio Communications, Inc. | Intelligent network adaptor with end-to-end flow control |
US8589587B1 (en) * | 2007-05-11 | 2013-11-19 | Chelsio Communications, Inc. | Protocol offload in intelligent network adaptor, including application level signalling |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
US20100011138A1 (en) * | 2008-07-09 | 2010-01-14 | International Business Machines Corporation | Design structure for automated means for determining internet access on a system on a chip |
US20110103391A1 (en) | 2009-10-30 | 2011-05-05 | Smooth-Stone, Inc. C/O Barry Evans | System and method for high-performance, low-power data center interconnect fabric |
US9069929B2 (en) | 2011-10-31 | 2015-06-30 | Iii Holdings 2, Llc | Arbitrating usage of serial port in node card of scalable and modular servers |
US9465771B2 (en) | 2009-09-24 | 2016-10-11 | Iii Holdings 2, Llc | Server on a chip and node cards comprising one or more of same |
US9077654B2 (en) | 2009-10-30 | 2015-07-07 | Iii Holdings 2, Llc | System and method for data center security enhancements leveraging managed server SOCs |
US9054990B2 (en) | 2009-10-30 | 2015-06-09 | Iii Holdings 2, Llc | System and method for data center security enhancements leveraging server SOCs or server fabrics |
US8599863B2 (en) | 2009-10-30 | 2013-12-03 | Calxeda, Inc. | System and method for using a multi-protocol fabric module across a distributed server interconnect fabric |
US9876735B2 (en) | 2009-10-30 | 2018-01-23 | Iii Holdings 2, Llc | Performance and power optimized computer system architectures and methods leveraging power optimized tree fabric interconnect |
US20130107444A1 (en) | 2011-10-28 | 2013-05-02 | Calxeda, Inc. | System and method for flexible storage and networking provisioning in large scalable processor installations |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US9648102B1 (en) | 2012-12-27 | 2017-05-09 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US9311269B2 (en) | 2009-10-30 | 2016-04-12 | Iii Holdings 2, Llc | Network proxy for high-performance, low-power data center interconnect fabric |
US9680770B2 (en) | 2009-10-30 | 2017-06-13 | Iii Holdings 2, Llc | System and method for using a multi-protocol fabric module across a distributed server interconnect fabric |
US10877695B2 (en) | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
JP5685848B2 (ja) * | 2010-07-27 | 2015-03-18 | 富士通株式会社 | 計算機、プログラム、及び計算機の制御方法 |
JP5729938B2 (ja) * | 2010-08-04 | 2015-06-03 | キヤノン株式会社 | 通信装置およびその制御方法 |
US8713237B2 (en) * | 2011-03-29 | 2014-04-29 | Cisco Technology, Inc. | X2 10GBASE-T transceiver with 1 Gigabit side-band support |
US9549371B2 (en) | 2013-03-14 | 2017-01-17 | Qualcomm Incorporated | Access point proxy and multi-hop wireless communication |
CN103703441B (zh) * | 2013-05-20 | 2015-04-08 | 华为技术有限公司 | 一种硬盘和数据处理方法 |
US9363193B2 (en) * | 2013-11-19 | 2016-06-07 | Cavium, Inc. | Virtualized network interface for TCP reassembly buffer allocation |
CN106133695A (zh) * | 2014-04-02 | 2016-11-16 | 斯特拉托斯卡莱有限公司 | 经由rdma的远程非对称tcp连接卸载 |
US10860511B1 (en) * | 2015-12-28 | 2020-12-08 | Western Digital Technologies, Inc. | Integrated network-attachable controller that interconnects a solid-state drive with a remote server computer |
US10628196B2 (en) * | 2016-11-12 | 2020-04-21 | Vmware, Inc. | Distributed iSCSI target for distributed hyper-converged storage |
EP3857859B1 (en) | 2018-11-16 | 2023-07-19 | VMWare, Inc. | Active-active architecture for distributed iscsi target in hyper-converged storage |
CN109862023B (zh) * | 2019-02-27 | 2020-08-07 | 中国科学院软件研究所 | 一种嵌入式设备实现加速计算和高速网络数据传输方法 |
CN110177083B (zh) * | 2019-04-26 | 2021-07-06 | 创新先进技术有限公司 | 一种网卡、数据发送/接收方法及设备 |
US11082410B2 (en) | 2019-04-26 | 2021-08-03 | Advanced New Technologies Co., Ltd. | Data transceiving operations and devices |
US10817460B2 (en) | 2019-08-28 | 2020-10-27 | Advanced New Technologies Co., Ltd. | RDMA data sending and receiving methods, electronic device, and readable storage medium |
CN110704361A (zh) * | 2019-08-28 | 2020-01-17 | 阿里巴巴集团控股有限公司 | Rdma数据发送及接收方法、电子设备及可读存储介质 |
US11507409B2 (en) | 2020-01-22 | 2022-11-22 | Vmware, Inc. | Object-based load balancing approaches in distributed storage system |
US11500667B2 (en) | 2020-01-22 | 2022-11-15 | Vmware, Inc. | Object-based approaches to support internet small computer system interface (ISCSI) services in distributed storage system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6775719B1 (en) * | 2000-09-28 | 2004-08-10 | Intel Corporation | Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network |
CN1519745A (zh) * | 2003-08-18 | 2004-08-11 | 刘恒春 | 基于多协议通信嵌入式模块结构网络控制平台 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905873A (en) * | 1997-01-16 | 1999-05-18 | Advanced Micro Devices, Inc. | System and method of routing communications data with multiple protocols using crossbar switches |
US7107359B1 (en) * | 2000-10-30 | 2006-09-12 | Intel Corporation | Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network |
US7356633B2 (en) * | 2002-05-03 | 2008-04-08 | Sonics, Inc. | Composing on-chip interconnects with configurable interfaces |
US8631162B2 (en) * | 2002-08-30 | 2014-01-14 | Broadcom Corporation | System and method for network interfacing in a multiple network environment |
US7603441B2 (en) * | 2002-12-27 | 2009-10-13 | Sonics, Inc. | Method and apparatus for automatic configuration of multiple on-chip interconnects |
US7412588B2 (en) | 2003-07-25 | 2008-08-12 | International Business Machines Corporation | Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus |
US6996070B2 (en) * | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
US20060034283A1 (en) * | 2004-08-13 | 2006-02-16 | Ko Michael A | Method and system for providing direct data placement support |
US7761608B2 (en) * | 2004-09-01 | 2010-07-20 | Qlogic, Corporation | Method and system for processing markers, data integrity fields and digests |
US7580406B2 (en) * | 2004-12-31 | 2009-08-25 | Intel Corporation | Remote direct memory access segment generation by a network controller |
US20060182101A1 (en) * | 2005-02-14 | 2006-08-17 | Hoekstra Geert J | Method for distributing transport sessions over multiple network interfaces |
US7475166B2 (en) * | 2005-02-28 | 2009-01-06 | International Business Machines Corporation | Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request |
US8458280B2 (en) * | 2005-04-08 | 2013-06-04 | Intel-Ne, Inc. | Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations |
-
2005
- 2005-09-16 US US11/228,363 patent/US7596144B2/en active Active
-
2006
- 2006-04-12 EP EP06007753A patent/EP1732010B1/en not_active Expired - Fee Related
- 2006-04-12 DE DE602006009184T patent/DE602006009184D1/de active Active
- 2006-06-05 TW TW095119844A patent/TWI449388B/zh not_active IP Right Cessation
- 2006-06-06 CN CN200610091516.7A patent/CN101047720B/zh not_active Expired - Fee Related
-
2009
- 2009-09-29 US US12/569,360 patent/US8427945B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6775719B1 (en) * | 2000-09-28 | 2004-08-10 | Intel Corporation | Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network |
CN1519745A (zh) * | 2003-08-18 | 2004-08-11 | 刘恒春 | 基于多协议通信嵌入式模块结构网络控制平台 |
Also Published As
Publication number | Publication date |
---|---|
US20100030910A1 (en) | 2010-02-04 |
EP1732010A1 (en) | 2006-12-13 |
DE602006009184D1 (de) | 2009-10-29 |
EP1732010B1 (en) | 2009-09-16 |
TW200715782A (en) | 2007-04-16 |
US7596144B2 (en) | 2009-09-29 |
TWI449388B (zh) | 2014-08-11 |
US20060274788A1 (en) | 2006-12-07 |
US8427945B2 (en) | 2013-04-23 |
CN101047720A (zh) | 2007-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101047720B (zh) | 处理网络数据的方法和系统 | |
US5627829A (en) | Method for reducing unnecessary traffic over a computer network | |
CN101047714B (zh) | 一种处理网络数据的方法及系统 | |
EP1361512B1 (en) | Method to synchronize and upload an offloaded network stack connection with a network stack | |
EP1359724B1 (en) | Method to offload a network stack | |
EP1537695B1 (en) | System and method for tcp offload | |
EP0912028B1 (en) | Mechanism for dispatching packets via a telecommunications network | |
US20060274787A1 (en) | Adaptive cache design for MPT/MTT tables and TCP context | |
US8774215B2 (en) | Fibre channel over Ethernet | |
US6208651B1 (en) | Method and system for masking the overhead of protocol layering | |
US5745685A (en) | Protocol extension in NSPP using an acknowledgment bit | |
US7027443B2 (en) | Reassembly engines for multilink applications | |
US6009467A (en) | System for checking status of supported functions of communication platforms at preselected intervals in order to allow hosts to obtain updated list of all supported functions | |
US7308001B2 (en) | Fibre channel frame batching for IP transmission | |
US9258230B2 (en) | In flight TCP window adjustment to improve network performance | |
CN1954574B (zh) | 以太网上的统一架构 | |
US20050111483A1 (en) | Method and system of teamed network adapters with offloaded connections | |
EP1708445A1 (en) | Communication device and logical link abnormality detection method | |
US7269661B2 (en) | Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet | |
US7480301B2 (en) | Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement | |
CN102315918B (zh) | 一种tcp连接与sctp连接互通的方法及装置 | |
US6185218B1 (en) | Communication method and apparatus for use in a computing network environment having high performance LAN connections | |
JPH11168492A (ja) | ルータの中継方法及びルータ装置 | |
US6006261A (en) | Internet protocol assists using multi-path channel protocol | |
US8387073B1 (en) | Method and system for processing network packets |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100811 Termination date: 20170606 |