CN101911612A - 分组丢失得以降低的网络卸载 - Google Patents

分组丢失得以降低的网络卸载 Download PDF

Info

Publication number
CN101911612A
CN101911612A CN2008801242852A CN200880124285A CN101911612A CN 101911612 A CN101911612 A CN 101911612A CN 2008801242852 A CN2008801242852 A CN 2008801242852A CN 200880124285 A CN200880124285 A CN 200880124285A CN 101911612 A CN101911612 A CN 101911612A
Authority
CN
China
Prior art keywords
data
segmentation
context
descriptor
memory access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2008801242852A
Other languages
English (en)
Other versions
CN101911612B (zh
Inventor
M·斯达维克
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.)
Axis AB
Original Assignee
Axis AB
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 Axis AB filed Critical Axis AB
Publication of CN101911612A publication Critical patent/CN101911612A/zh
Application granted granted Critical
Publication of CN101911612B publication Critical patent/CN101911612B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明涉及一种经数据网络从具有第一数据发送速率的发送单元向具有第一数据接收速率的第一目标发送数据的第一分段的方法。在第一数据发送速率大于第一数据接收速率的情况下,该方法包括:通过在下列两项之间切换来有效地降低从发送单元到第一目标的第一发送速率:在仅从发送单元到第一目标的方向将第一分段的至少一部分作为一个或多个数据分组发送到第一目标;以及在仅从发送单元到一个或多个附加目标的方向将第二分段的至少一部分作为一个或多个数据分组发送到该一个或多个附加目标,重复该切换,直到已经发送了所述第一分段和/或至少所述第二分段。这样,降低了到客户机的分组速率,同时保持了发送系统的总分组速率,由此减小了分组丢失和/或路由器缓冲器耗尽的可能性,这是因为不会以全速率发送数据到比较慢的客户机。

Description

分组丢失得以降低的网络卸载
技术领域
本发明一般涉及网络卸载。
更具体地说,本发明涉及经数据网络从发送单元向第一目标发送数据的第一分段的方法以及用于经数据网络从发送单元向第一目标发送数据的第一分段的装置。
此外,本发明涉及一种计算机可读介质,其上存储有用于使一个或多个处理单元执行根据本发明的方法的指令。
背景技术
当网络使能装置通过网络发送比较大块数据(后面称为分段),例如JPEG图片或任何其它种类数据时,分段通常被网络使能装置分成几个数据分组,之后在物理介质上发送。作为一个示例,以太网分组的最大有效载荷大小是1500字节。此外,对于每个数据分组和某些协议栈(诸如TCP/IP)必须生成协议标题,诸如TCP和IP标题,对于每个数据分组还必须计算一个或几个检验和,其中一个或多个检验和存储在数据分组的标题中。
正常情况下,大块数据或分段大于有效载荷的大小(原则上,分段大小例如可以与单个字节一样小)。通常,它是有效载荷大小的几倍。
生成这些分组的过程包括传统上用软件完成标题和检验和。这可根据系统的CPU性能和网络速度使用大量的CPU性能。
通过用硬件实现特征已经提出了解决这个问题的各种解决方案。这种过程通常也称为(硬件)网络卸载。
有几个可用的硬件解决方案来执行网络卸载。用硬件完成网络卸载的一个传统方法可概括为:
-从存储器读取数据的一个MTU(最大发送单元,即,所用网络介质上一个分组的最大有效载荷大小)。
-计算有效载荷上的检验和,同时从存储器读取。
-生成标题。
-发送包括标题和有效载荷的分组。
-在发送时,从存储器读取数据的一个附加MTU。
-重复,直到分段即大块数据中的所有分组都已经发送为止。
这个解决方案的缺点是,它可以非常快的速率发送许多分组,这可引起连接接收客户机比较慢的问题。作为一个示例,考虑连接到比较快网络(例如1吉位/秒网络)的装置,它想向连接到比较慢网络(例如10兆位/秒网络)的客户机发送大分段。在这种情况下,在装置与客户机之间发送路径中的路由器必须缓冲数据,直到客户机已经全部读取它为止。这可导致路由器中的缓冲器耗尽。而且,因为路由器具有有限的缓冲器大小并且可能还需要缓冲其它发送路径的数据,所以这可导致数据分组丢失,并由此需要重传。分组丢失的可能性随着分段大小的越大而增大。
通常用软件实现的这个问题的一个先前已知的解决方案涉及向每个目标仅发送有限数量的分组,并等待确认(ACK),之后再发送附加数据分组。然而,这增大了CPU使用率,并由于等待可能还延迟了发送数据所需的总时间。
例如,US 2006/034176描述了使用ACK的硬件实现。这个的缺点是,只能支持诸如TCP/IP的协议,其依赖于ACK的使用。
由此,存在对于解决路由器缓冲器耗尽和数据分组丢失的问题的需要。
这通过向不同的目标交错分组至少在某种程度上已经得以解决,但是其中通过相同或相似速率交错分组。
专利说明书US 7,174,393公开了用于数据通信的通信处理装置(CPD),其提供避免大多数大的多分组消息的协议处理的快路径和慢路径消息传递。网络处理器在沿包含主机协议栈的慢路径或沿绕过主机协议栈的快路径处理消息之间进行选择。
专利说明书US 7,167,926公开了一种与主计算机一起工作进行数据通信的装置,提供避免大多数消息的协议处理的快路径,加速数据传送,并从主机CPU卸载时间密集的处理任务。主机具有验证快路径或慢路径的所选消息的处理能力。
专利说明书US 6,996,070公开了TCP卸载引擎(TOE)装置,包含并行执行TCP/IP协议处理操作的状态机。在三个不同方面,它存储TCP变量和标题值,更新多个TCP状态变量,并设置DMA移动。
发明内容
本发明的一个目的是提供一种避免或最小化路由器缓冲器耗尽和/或数据分组丢失的方法(以及对应的装置)。
另一个目的是降低分段过程的CPU使用率。
这通过用于经数据网络从发送单元向第一目标发送数据的第一分段的方法实现,所述发送单元具有第一数据发送速率,第一目标具有第一数据接收速率,其中第一数据发送速率大于第一数据接收速率,所述方法包括:通过在下列两项之间切换来有效地降低从发送单元到第一目标的第一发送速率:将所述第一分段的至少一部分作为一个或多个数据分组发送到第一目标,所述发送在仅从发送单元到第一目标的方向;以及将至少第二分段的至少一部分作为一个或多个数据分组发送到一个或多个附加目标,所述发送在仅从发送单元到一个或多个附加目标的方向,重复所述切换,直到已经发送了所述第一分段和/或至少所述第二分段为止。
可在向第一目标发送的所述至少第一分段的所述数据分组之间插入一个或多个等待状态。
这样,降低了到客户机或目标的分组速率,同时保持了发送系统的总分组速率,由此减小了分组丢失和/或路由器缓冲耗尽的可能性,这是因为不会以全速率发送数据到比较慢的客户机。实现了这个,同时基本上保持了总发送速率。
此外,所有目标——当发送到多个目标时——早早获得了数据,因为向其它客户机的发送不等待,直到已经完全发送了先前客户机的给定分段为止。客户机可这样开始处理早先接收的数据。
这种方法的优点是,它使能够支持任意协议。也就是说,它支持使用ACK的协议以及不使用ACK的协议。例如,提供对UDP上RTP的支持,这相比在上面提到的US 2006/034176中所描述的基于ACK的通信是有利的。
在一个实施例中,所述方法还包括:在要进行切换之前,保存确定已经发送多少所述第一分段的所述第一分段中的第一位置,和/或保存确定已经发送多少所述第二分段的所述第二分段的位置,并且当再次切换回到发送所述第一分段或所述第二分段时,从相应保存的位置再继续发送。
在一个实施例中,根据发送模式进行所述切换。
在一个实施例中,基于第一目标的所述接收速率和/或至少一个所述附加目标的接收速率,确定所述发送模式。
在一个实施例中,至少数据的第一分段存储在所述发送单元的存储器中,其中由直接存储器访问控制器(或卸载装置)从所述存储器读取所述第一分段的数据并将其提供给直接存储器访问设备,进一步经网络接口将所述第一分段的所述数据提供给所述网络,其中所述直接存储器访问控制器和所述直接存储器访问设备卸载所述发送单元的中央处理单元。
在一个实施例中,所述直接存储器访问设备包括对从所述直接存储器访问控制器提供给所述直接存储器访问设备的数据计算检验和的检验和计算单元。
在一个实施例中,二维列表结构控制所述切换,所述二维列表结构包括:第一上下文描述符,涉及参考存储器中标题数据的至少一个数据描述符;以及第二上下文描述符,涉及参考所述第一分段的数据的至少一个数据描述符,其中所述第二上下文描述符包括在切换之前发送所述第一分段的数据的多少字节的表示,其中所述方法包括:处理所述第一上下文描述符以便获得所述标题数据,并处理所述第二上下文描述符以便获得所述第一分段的数据,并根据所述表示发送若干字节的数据。
在一个实施例中,二维列表结构控制所述第一分段的发送,所述二维列表结构包括:第一上下文描述符,涉及参考所述第一分段的数据的至少一个数据描述符;第二上下文描述符,涉及至少两个数据描述符,每个数据描述符涉及用于两个不同目标的标题数据,其中所述方法包括:处理所述第一上下文描述符以便获得所述第一分段的至少一部分,处理所述第二上下文描述符以便获得所述两个不同目标之一的标题数据并以便获得所述两个不同目标中另一个的标题数据,并向所述两个不同目标之一发送所述第一分段的所获得部分,并向所述两个不同目标中另一个发送所述第一分段的所获得部分。
本发明还涉及一种用于经数据网络从发送单元向第一目标发送数据的第一分段的装置,所述发送单元具有第一数据发送速率,第一目标具有第一数据接收速率,其中第一数据发送速率大于第一数据接收速率,所述装置包括:直接存储器访问设备,适合于通过在下列两项之间切换来有效地降低从发送单元到第一目标的第一发送速率:将所述第一分段的至少一部分作为一个或多个数据分组发送到第一目标,所述发送在仅从发送单元到第一目标的方向;以及将第二分段的至少一部分作为一个或多个数据分组发送到一个或多个附加目标,所述发送在仅从发送单元到一个或多个附加目标的方向,重复所述切换,直到已经发送了所述第一分段和/或至少所述第二分段。
装置实施例对应于方法实施例,并由于相同的原因而具有相同的优点。装置的有利实施例在从属权利要求中确定,并在下面详细描述。
此外,本发明还涉及一种计算机可读介质,其上存储有用于使一个或多个处理单元执行根据本发明的方法的指令。
附图说明
本发明的这些和其它方面根据附图中所示的例示性实施例将显而易见,并参考这些实施例进行阐明,附图中:
图1示意性例示了在发送期间交错两个分段的过程的示例;
图2a-2c示意性例示了根据本发明的交错过程的示例;
图3示意性例示了根据一个实施例用于跟踪各种交错发送的结构的总览;
图4示意性例示了用于跟踪交错发送的结构的一个具体示例;
图5示意性例示了根据本发明的交错过程的一个实施例的流程图;
图6示意性例示了用于向几个客户机发送相同分段同时从存储器仅读取一次数据的有利列表结构示例的实施例;
图7例示了具有硬件网络卸载的发送单元或系统的示意框图;
图8例示了DMA控制器的一个实施例的示意框图;
图9例示了包括连接在网络中的具有硬件网络卸载的发送单元或系统以及一个或多个客户机的系统的示意框图;以及
图10是从发送单元到接收器的发送的信令图。
具体实施方式
图1示意性例示了在发送期间交错两个分段101的过程的示例。所示出的是第一分段(分段1)101和第二分段(分段2)101,以及随着时间的过去如何经网络102发送每个分段的分组。
作为一个示例,每个分段包括10千字节的有效载荷数据,其中第一分段的有效载荷数据将被发送到第一客户机(未示出),其比较慢,并且其中第二分段的数据将被发送到第二客户机(未示出),其比较快。MTU在这个示例中是1千字节。
然后可通过交错发送将分组发送为(px=到客户机x的分组):p2p2p2p1p2p2p2p1p2p2p2p1p2p1p1p1p1p1p1p1。这样,降低了到客户机1的分组速率,同时保持了发送系统的总分组速率。根据适当发送模式进行所发送数据分组的特定排序。降低到客户机1的分组发送速率将避免或至少最小化路由器缓冲器耗尽和/或数据分组丢失的可能性,因为分组以客户机1可“保持”的步调被发送到客户机1。而且,当到客户机2的所有分组都已经被发送时,有可能在到客户机1的其余分组之间插入一个或多个等待状态,以保持分组发送速率下降(由此仍避免引起发送系统与客户机1之间的缓冲器耗尽和数据分组丢失,或至少提供这种发生的可能性减小)。作为一个备选,代替插入一个或多个等待状态,例如在上例中,当已经发送了到客户机的所有分组时,可以开始一个或多个其它分段的数据发送,到客户机3的分组(或到客户机2的新分段)可与到客户机1的其余分组交错。
分组将根据用硬件(如早先描述的)进行网络卸载的一个传统方法被发送为p1p1p1p1p1p1p1p1p1p1p2p2p2p2p2p2p2p2p2p2(假设第一分段要被首先发送)。
如果用硬件实现该过程,则与没有硬件卸载的解决方案相比大大降低了CPU使用率。
附加优点是,相比如果客户机2应该等待直到所有分组都已经被发送到客户机1,之后才发起到客户机2的分组发送,客户机2(假设根据传统方法首先发送第一分段)将更早获得数据,并由此可更早开始处理数据。对于比2更大数量的客户机,这个优点甚至更大。作为具有3个客户机的一个示例,客户机3传统上将必须等待,直到已经发送了客户机1和2的所有分组为止。
图2a-2c示意性例示了根据本发明的交错过程的示例。所示出的是在交错发送期间三个不同时间点的三个分段101(分段1、分段2和分段3)。三个分段101可被发送到三个不同的客户机装置(未示出)。第一时间点(图2a)在发送开始之前。第二时间点(图2b)在发送期间,并且第三时间点(图2c)在已经完成发送之后。
在图2a-2c中,给出了当前分段的指示,即,当前已经发送了哪个分段的数据。而且,在每个时间点的每个分段的黑箭头指示迄今为止已经发送了多少给定分段的数据。指示已经发送了多少给定分段的数据的点位于整个分组边界,以便避免网络利用的降低。
DMA(直接存储器访问)控制器和DMA设备、DMA客户机或网络卸载单元(未示出;以后只表示DMA设备)将提供在下面更详细说明的对存储器中几个数据区域(例如每个分段一个)的访问。DMA设备跟踪每个数据区域中的当前位置。获得或导出发送或切换模式(以后只表示发送模式),并且向指令它何时切换数据区域的DMA控制器给出这方面的信息,并由此开始发送另一个分段的数据(如果还有留下的话)。当交错发送将发送速率有效地减小到比较慢的客户机时,特定发送模式将卸载具有降低分组丢失的网络,如下面更详细说明的。当切换时,DMA设备自动选择具有更多数据要发送的下一个数据区域。
图2a例示了已经做任何事情之前的情形,其中指定已经发送了每个分段的多少数据的每个指示在每个分段开始,即,还没有发送任何数据。分段1在这个具体示例中被指定为当前分段。
图2b例示了网络卸载和数据发送已经进行了一分段时间的情形。在此,几乎分段1的一半和分段3的整个数据都已经经网络被发送到它们相应的客户装置或目标(以后只表示为客户机)。目前,数据从分段2发送,其被指定为当前分段。在DMA控制器由DMA设备指令切换之后,它将切换到从分段1发送数据(当分段3完成并且目前没有其它分段时),并将从它在从分段1最后发送数据期间停止的地方拾起。
当已经发送了分段2的所有数据时或之前,切换可根据特定发送模式发生。如果之前,则将存储分段2的当前位置,使得可以从返回到分段2时的那点再继续发送。
图2c例示了已经发送了三个分段的所有数据的情形。DMA控制器然后将发信号通知DMA设备已经做了工作并等待进一步指令。
如所提到的,根据特定发送模式进行从三个分段发送数据之间的跳变或切换。接收数据的各种客户机的能力将影响特定发送模式。要考虑的一个参数例如是不同客户机的网络速度。这例如可通过向客户机发送测试数据分组并等待确认来容易地确定。备选地,可以另一种方式确定它。
作为特定示例,让客户机1和2的网络(接收)速度大约是2兆位/秒,并且客户机3的(接收)速度大约是4兆位/秒,那么(平均或一般)应该以通常的大约2倍来发送来自分段3(到客户机3)的数据(即,分段3将是当前分段),并且发送模式例如可以是:从分段1发送X数据,从分段3发送X数据,从分段2发送X数据,从分段3发送X,从分段1发送X数据等。
作为另一个示例,取到两个不同客户机的两个分段,其中一个客户机是另一个的三倍快,那么发送模式例如可以是:从分段1发送X数据,从分段2发送3*X数据,然后重复,直到已经发送了所有数据。
如之前所提到的,当已经完全发送了另一个分段时,也可对于一个或多个分段插入等待状态,以便保持发送速率下降,并由此仍避免缓冲器耗尽和数据分组丢失。备选地,可以开始一个或多个附加分段(例如到相同或新客户机)的数据发送。
图3示意性例示了根据一个实施例用于跟踪各种交错发送的结构的总览。
所示出的是二维列表结构,包括描述符301、302,控制对存储在存储器中的数据的访问,该数据要被作为数据分组发送到一个或多个客户机。每个描述符可包括元数据,指令DMA设备它是什么类型数据(例如标题数据或有效载荷数据)以及如何处理它。描述符还可包括一个或多个控制标志以信号通知各种条件,诸如分段的结尾(EOS)和列表的结尾(EOL)。这种列表结构一般还称为分散-集中列表(SGL),并允许从不连续存储器中取数据。
一种类型描述符例如是数据描述符302,其用于跟踪实际数据缓冲器303,即存储器或储存单元,以及其中存储的数据属于什么分段。另一种类型描述符例如是上下文描述符301,根据这个实施例其用于跟踪包括数据描述符302的列表的状态。
DMA控制器在DMA的控制下能够在几个上下文之间切换。每个上下文可涉及单个客户机并例如涉及该单个客户机的几个分段,这可从图3以及如下描述中看到。而且,对于涉及给定分段的标题数据的上下文和涉及相同分段的有效载荷的另一上下文,几个上下文可涉及相同分段,看后面。
在每次切换时,可指令DMA设备保存列表的状态(或不保存)。当列表中到达EOL时,禁用给定上下文(或备选地移除),并且DMA设备将不再切换到那个上下文。DMA设备优选地还可记住一个(或多个)上下文描述符(通常只有一个就足够了,由此降低储存要求)。
在图3所示的具体示例中,上下文1和上下文2是上下文描述符301,而数据1、数据2、数据3和数据4是数据描述符302。
这个示范性列表结构因此包括2个上下文,如由上下文描述符上下文1和上下文2所给出的。
上下文1标识由分别指向缓冲器1和缓冲器2303的数据描述符数据1和数据3所指示的数据的一个分段。如果该分段可存储在单个缓冲器中,则只有一个数据描述符将出现在上下文1列表中。数据描述符数据3此外包括两个设置标志,即EOS和EOL,表示不再有分段是上下文1的一部分(EOS),并且数据3是上下文1的最后列表元素(EOL)。
该上下文1只涉及数据的单个分段,由此可以看出,列表上下文1参考或只包括单个EOS,之后到达EOL。
以类似方式,上下文2标识由分别指向缓冲器3和缓冲器4303的数据描述符302数据2和数据4所指示的数据的两个分段。如果这两个分段可存储在单个缓冲器中,则数据2和数据4将指向同一缓冲器(但在两个不同位置)。数据2包括设置的EOS标志,并且数据4包括设置的EOS和设置的EOL标志。
上下文2描述符还包括设置的EOL标志,表示当前不再有上下文要由DMA设备处理,即,目前没有附加数据要发送。
该上下文2涉及数据的两个分段,由此可以看出,列表上下文2包括两个EOS,之后到达EOL。
在最简单的情况下,只存在一个分段被发送到一个目标,其可以全速接收分组(即,没有等待状态是必需的),并且列表结构“压缩”成具有两个数据描述符的一维列表;一个指向标题数据,而另一个指向分段的有效载荷数据。在这种情形下,任何交错发送以及由此任何上下文描述符都不是必需的。
图4示意性例示了用于跟踪交错发送的结构的一个具体示例。
在此,具体列表结构已经设置,并作为一个示例包括四个上下文301:上下文1、上下文2、上下文3和上下文4。
上下文描述符301上下文1参考数据描述符302数据1和上下文描述符301上下文2。数据描述符302数据1包括EOL和EOS标志作为元数据,并且参考给定分段分段1的标题数据304,其中数据存储在缓冲器或其它适当存储器中。
上下文描述符301上下文2参考数据描述符302数据2和上下文描述符301上下文3。数据描述符302数据2包括EOL和EOS标志作为元数据,并且参考分段分段1的有效载荷数据305,其中数据存储在缓冲器或其它适当存储器中。
上下文描述符301上下文3参考数据描述符302数据3和上下文描述符301上下文4。数据描述符302数据3包括EOL和EOS标志作为元数据,并且参考分段分段2的标题数据304,其中数据存储在缓冲器或其它适当存储器中。
上下文描述符301上下文4参考数据描述符302数据4,并再次回到上下文描述符301上下文1。数据描述符302数据4包括EOL和EOS标志作为元数据,并且参考分段分段2的有效载荷数据305,其中数据存储在缓冲器或其它适当存储器中。
根据本发明,交错发送的列表结构然后在发送期间进行处理,并指令DMA设备如何操作,从那读取数据(经DMA控制器),它是什么类型数据,何时切换分段(如果有必要的话)等。
对于所示的示范性结构,所得到的过程然后例如可概括为:
1.处理上下文1,这然后引起DMA控制器开始向DMA设备传递属于分段1的标题数据,这然后可经网络将它提供给相应的客户机或目标。
2.在已经发送了标题数据之后,DMA设备指令DMA控制器切换到上下文2。在这个阶分段,不知道上下文1即标题数据是否将再次被需要,因为这取决于是否发送分段1的所有有效载荷数据,之后切换到发送分段2的数据(即,切换到上下文3和4)。因此,指令DMA控制器切换到上下文2,无需DMA设备存储当前上下文的位置。指令DMA设备记住这个上下文,即,上下文1。
3.在切换到上下文2之后,DMA控制器向DMA设备传递分段1的有效载荷数据(一个或多个MTU),这然后可经网络将它提供给相应的客户机或目标。
4.在例如根据特定发送模式发送一定量的数据之后,指令DMA设备切换到上下文3。切换时间例如可被确定为在已经发送了特定数量的MTU之后。可以在上下文描述符元数据中规定这种数量。该数量对于所有或一些各种上下文可以是相同的,或者它可以是不同的,如优选发送模式所规定的。对于每个发送的分组,内部计数器可递增。当内部计数器的值匹配存储在上下文描述符中的值时,将指令DMA设备切换上下文,并将内部计数器清零。如果切换发生在分段1的整个有效载荷数据已经发送之前,则DMA设备存储当前位置,使得当再一次返回到上下文2时,可以从那点再继续发送。DMA设备例如可将位置存储在上下文描述符即上下文2中的变量、字段等中。作为一个示例,一个字段可用于存储所用的最后数据描述符,并且另一个字段可存储在那个数据描述符中已经处理数据到什么程度。如果到达分段的结尾,则已经发送了所有有效载荷数据,并且因此将不再需要上下文1和上下文2。在上下文2中,设置EOS标志。为了禁用上下文1,指令DMA设备恢复之前重新记住的上下文(见上面的步骤2),并且还禁用那个上下文(也将不需要分段1的标题数据,因为已经发送了分段1的有效载荷数据)。还可通过设置EOS标志禁用上下文1。在禁用上下文1和上下文2之后,DMA设备切换到下一上下文,在这个示例中其是上下文3。
5.在上下文3中,DMA控制器向DMA设备传递属于分段2(对应于上面对于分段1的步骤1)的标题数据,这然后可经网络将它提供给相应客户机或目标。
6.在已经发送了标题数据之后,DMA设备切换到上下文4,在此发送分段2的有效载荷数据。在切换到上下文4之前,不存储上下文3的位置,但是重新记住上下文3(如上面步骤2中)。
7.在切换到上下文4之后,DMA控制器向DMA设备传递分段2的有效载荷数据(一个或多个MTU),这然后可经网络将它提供给相应客户机或目标。
8.在根据发送模式的某一时间,DMA设备切换到下一上下文——在这个示例中是上下文1——其中如果切换发生在已经发送分段2的所有有效载荷数据之前,则存储上下文4中所发送数据的当前位置。否则,上下文3被重新调用并禁用,并且上下文4也被禁用(如上面的步骤4中)。
9.在上下文1中,DMA设备接收和发送分段1的标题数据,并且因为没有保存位置,所以再次发送整个标题。在已经发送了标题数据之后,过程切换到上下文2,并且不保存上下文1的位置。
10.在上下文2中,从保存的位置再继续发送(那是在步骤4保存的),并且发送分段1的附加有效载荷数据的一个或多个MTU。
过程继续,直到分段1和分段2的所有有效载荷数据都已经发送了。如所提到的,如果发送一个分段的有效载荷数据,则在完成另一个之前,可插入一个或多个等待状态。
在一个实施例中,数据描述符302具有包括表示数据缓冲器开头和结尾的变量的结构(即,相关数据(标题或有效载荷)存储在的给定分段的存储位置)。而且,数据描述符的结构可包括指示EOS和EOL的控制标志以及指向下一描述符的指针和指令DMA设备做什么的元数据字段等。
在一个实施例中,上下文描述符的结构可包括跟踪数据描述符列表中位置的变量。当切换上下文时,将指令DMA设备(未示出;例如见图7和8)更新上下文描述符中的位置。下次使用相同上下文时,DMA设备将指令DMA控制器在所存储位置开始。
一般结合图5示出和说明这个过程。
图5是示意性例示了根据本发明的交错过程的一个实施例的流程图。装置或方法在步骤501处于空闲状态。测试502(通过中断、请求、定时器等)数据是否可用于发送。如果否,则再继续空闲状态。
如果数据可用于传送,则在步骤503向第一客户机发送包括一个MTU有效载荷的数据分组。然后,在步骤504,检验是否应该进行上下文切换,即,是否应该切换到另一个客户机的另一个分段。是否应该进行切换可以通过到达相应上下文中的列表结尾(EOL)来触发,或者已经发送了规定数量的数据(根据发送模式)。如早前说明的,例如可以在上下文描述符元数据中规定这种数据量。该数量对于所有或一些各种上下文可以是相同的,或者它可以改变,如由优选发送模式所规定的。
如果不应该进行切换,则操作返回到步骤503,并继续发送数据的另一个MTU。
如果应该进行切换,则在步骤505检验当前上下文是否是具有有效载荷数据或标题数据的上下文。如果它是具有标题数据的上下文,则没有关于是否再次需要这个标题数据的信息,因为这取决于在下一步骤是否将发送所有相关有效载荷数据(在此情况下后面不再需要标题数据)或者在已经发送了所有有效载荷数据之前(在此情况下将需要标题数据)是否将进行分段的一个或多个附加切换,因此操作继续到步骤506,切换到下一上下文,这将在后面说明。
如果当前上下文包括有效载荷数据,则在步骤507进行另一个测试,检验是否已经到达当前上下文的列表结尾(EOL)。如果没到达上下文的列表结尾,则在步骤508存储当前上下文以便后面使用,并在步骤509保存当前位置,即,直到给定分段中已经发送数据的地方。在步骤509之后,操作继续到步骤506,切换到下一上下文,这将在后面说明。
如果到达列表结尾,则已经发送了一个上下文的所有分段,这可以只是一个,并且标题和有效载荷数据不再是必需的。在这种情况下,在步骤510,指令DMA设备存储当前上下文,并还禁用该上下文,因为已经到达列表结尾。
然后,在步骤511指令DMA设备恢复在早些时间在步骤508期间已经保存的上下文,并在步骤512禁用那个上下文,这将禁用标题上下文。由此,禁用标题和有效载荷上下文。
在步骤512之后,操作继续到步骤506,切换到下一上下文。
在步骤506之后,然后测试513是否存在下一上下文。如果否,即,已经及时处理了所有上下文,并由此已经发送了所有分段,则再继续在步骤501的空闲状态。
如果存在上下文,则检验514那个上下文是否仍被启用。如果否,再次进行步骤506,由此选择新上下文。如果启用新上下文,即未完全处理,则再继续步骤503以发送另外数据。
步骤506和下面两个测试513和514将引起DMA设备自动加载上下文,直到发现一个启用上下文,或者确定例如通过检验是否返回禁用上下文来禁用所有上下文,不会遇到任何启用上下文。当禁用所有上下文时,已经完成了发送。
图6示意性例示了用于向几个客户机发送相同分段同时从存储器仅读取一次数据的有利列表结构示例的实施例。所示出的是二维列表结构,包括两个上下文描述符301上下文1和上下文2,其中上下文1参考上下文2,并且上下文2参考回上下文1。
上下文1包括指向包含给定分段分段1的有效载荷数据305的缓冲器的数据描述符303数据1。
上下文2包括两个数据描述符303数据2和数据3,其中数据2指向包括第一客户机或目标1的分段1的标题数据304的缓冲器或其它适当存储位置,并且其中数据3指向包括第二客户机或目标2的分段1的标题数据304的缓冲器或其它适当的存储位置。
在操作期间,可发生如下序列:
1.访问上下文1,并且DMA控制器从缓冲器或存储器获得或读取分段1的有效载荷数据的一个或多个MTU(例如在上下文1的上下文描述符元数据中所定义的)。
2.DMA设备存储当前位置并切换到上下文2。
3.处理上下文2,DMA控制器使用数据描述符数据2获得第一目标的标题数据。然后DMA设备(未示出;例如见图7和8中的704)向目标1所定义的客户机发送在步骤1获得的分段1的有效载荷数据。
4.因为数据2没设置其EOL标志,所以然后处理数据描述符数据3,其提供了第二目标2的标题数据,并且然后DMA设备向目标2所定义的客户机发送分段1的已经获得的和发送的有效载荷数据(在步骤1所提供的)。因为设置了数据3的EOL和EOS标志,所以切换到下一上下文。不进行位置保存,因为将再次需要其全部标题信息。下一上下文在这个示例中是上下文1,并且重复这些步骤,直到已经向两个目标发送了分段1的所有有效载荷数据。
要理解,该过程可涉及向多于两个目标发送数据。这将只需要指向每个目标的相关标题信息的一个数据描述符。
图7例示具有硬件网络卸载的发送单元或系统700的示意框图。发送单元或系统连接到网络(例如特别网),至少一个客户机也连接到该网络。网络例如可以是局域的、远程的、有线的、无线的等。
所示出的是包括要发送的分段的存储器和/或一个或多个缓冲器701(以后只表示存储器),其中存储器连接到负责操作发送单元或系统的主中央处理单元(CPU)702。存储器还连接到提供对存储器中一个或多个数据区域(例如每个分段一个)的访问的DMA控制器703,每个数据区域包括之前说明的以交错方式存储的分段。
DMA控制器连接到根据本发明负责控制DMA控制器的DMA设备、DMA客户机或网络卸载器704。DMA设备连接到控制它的CPU和使能够在给定网络上发送数据的网络接口705。当发送数据时,发送单元或系统设置DMA设备发送数据,并且DMA设备照管分段、切换等,以卸载主CPU,并向网络接口发送数据,其在网络上发送由一个或多个客户机的网络接口所接收的它。
主CPU具有配置DMA设备的接口,并且DMA设备然后读取数据以便进行使用DMA控制器所描述的发送。
DMA控制器在DMA设备的控制下跟踪每个数据区域的当前位置。获得或导出发送模式,并且向DMA控制器提供这方面的信息,指令它何时切换数据区域——并由此开始发送另一个分段的数据(如果还有留下的话)。当交错发送将发送速率有效地减小到比较慢的客户机时,特定发送模式将卸载具有降低分组丢失的网络,如下面更详细说明的。当切换时,DMA控制器自动选择具有更多数据要发送的如DMA设备所指令的下一数据区域,如之前说明的。
DMA设备和DMA控制器可以用硬件实现,由此相比基于软件的解决方案动态地降低用于连网卸载的CPU使用率。
图8例示了DMA设备的一个实施例的示意框图。
所示出的是连接到发送(TX)存储器802的CPU 801,该存储器802连接到传入(TX in)单元803和传出(TX out)单元804。检验和计算单元805连接到传入单元803。数据由传入单元803从DMA控制器(未示出;例如见图7中的703)读入TX存储器802(并且同时检验和单元计算所读取数据分组的检验和)并然后由CPU 801进行处理,并且由传出单元804发出到网络接口(未示出;例如见图7中的705)。
图9例示了包含连接在网络中的具有硬件网络卸载的发送单元或系统以及一个或多个客户机的系统的示意框图。所示出的是具有硬件网络卸载的发送单元或系统700,包括DMA设备704和使能够在给定网络上发送数据的网络接口705,以及也包括网络接口705的一个或多个客户机710。客户机710和发送单元或系统经网络102连接。
图10是类似于结合图7所描述的发送的利用硬件网络卸载从发送单元1000的发送的信令图。发送单元1000连接到网络,若干接收器1020、1022也连接到该网络。这些通信实体连接到的网络例如可以是局域的、远程的、有线的、无线的等。
发送单元1000包括存储要发送分段的存储器1001和DMA卸载控制器1004。图10中示意性示出,存储器1001和DMA卸载器1004连接到处理单元1002,类似于图7中的情形。存储器1001连接到DMA卸载控制器1004,提供对存储器1001中一个或多个数据区域(例如每个分段一个)的访问,每个数据区域包括上面说明的以交错方式存储的分段。
DMA卸载器使能够在网络上发送数据,并且当发送数据时,发送单元1000通过在处理单元1002中执行的发送器软件1010设置DMA卸载器1004发送数据和分段、切换等,以卸载处理单元1002,并在网络上发送要由一个或多个接收器1020、1022网络接口所接收的数据。
在发送单元1000中发生信令步骤的如下序列:
在第一信令步骤1051,发送器软件1010告诉DMA卸载器1004关于分段S1和S2。未传送实际数据,而只是关于分段的元数据。图10中所示的发送模式示例是开始于p1p1p2p1并结束于p1的示例。
在第二信令步骤1052中,DMA卸载器1004从分段1读取一个MTU,并向第一接收器1020发送数据。在第三信令步骤1054中,DMA卸载器1004从存储器中读取分段1的第二MTU,并向第一接收器1020发送数据。在第四信令步骤1056中,DMA卸载器切换到分段2,并读取第一MTU。第一分组被发送到第二接收器1022,并当发送数据时,DMA卸载器1004回到第一分段,并在第五信令步骤1058中读取和发送第三MTU。这继续,如第六信令步骤1059所例示的,直到已经发送了所有分组,并且不需要来自接收器的ACK或类似形式的反馈。在信令步骤1052、1054、1056、1058、1059中,要注意,可与向接收器发送数据同时执行MTU的读取。
因为交错发送将发送速率有效地减小到比较慢的客户机,所以特定发送模式将以降低的分组丢失卸载网络,无需使用确认(ACK)信号。
在权利要求书中,放在括号间的任何参考标记都不应视为限制权利要求。词“包括”不排除存在不同于权利要求中所列出的那些元素或步骤。元素前面的词“一个”不排除存在多个这种元素。
本发明可通过包括几个不同单元的硬件以及通过适当编程的计算机来实现。在列举了几个装置的设备权利要求中,这些装置中的几个可由一个硬件以及硬件的同一元件实施。某些手段被记载在相互不同的从属权利要求中的单个事实并不表示不能有利地使用这些手段的组合。

Claims (19)

1.一种经数据网络(102)从发送单元(700,1000)向第一目标(710,1020)发送数据的第一分段(101)的方法,所述发送单元(700,1000)具有第一数据发送速率,第一目标(710,1022)具有第一数据接收速率,其中第一数据发送速率大于第一数据接收速率,所述方法包括:
通过在下列两项之间切换来有效地降低从所述发送单元(700,1000)到第一目标(710,1022)的第一发送速率:
·将所述第一分段(101)的至少一部分作为一个或多个数据分组发送到第一目标,所述发送在仅从所述发送单元到第一目标的方向;以及
·将至少第二分段(101)的至少一部分作为一个或多个数据分组发送到一个或多个附加目标(710,1022),所述发送在仅从所述发送单元到所述一个或多个附加目标的方向,重复所述切换,直到已经发送了所述第一分段(101)和/或至少所述第二分段(101)。
2.根据权利要求1所述的方法,还包括:
·在向第一目标(710)发送的所述至少第一分段(101)的所述数据分组之间插入一个或多个等待状态。
3.根据权利要求1-2中任一项所述的方法,其中,所述方法还包括:
·在要进行切换之前,保存确定已经发送多少所述第一分段的所述第一分段(101)中的第一位置,和/或保存确定已经发送多少所述第二分段的所述第二分段的位置,并且当再次切换回到发送所述第一分段或所述第二分段时,从相应保存的位置再继续发送。
4.根据权利要求1-3中任一项所述的方法,其中,根据发送模式进行所述切换。
5.根据权利要求4所述的方法,其中,基于第一目标(710)的接收速率和/或基于至少一个所述附加目标(710)的接收速率,确定所述发送模式。
6.根据权利要求1-5中任一项所述的方法,其中,数据的所述至少第一分段(101)存储在所述发送单元(700)的存储器(701)中,其中由直接存储器访问控制器(703)从所述存储器(701)读取所述第一分段的数据并将其提供给直接存储器访问设备(704),该直接存储器访问设备(704)进一步经网络接口(705)将所述第一分段的所述数据提供给所述网络(102),其中,所述直接存储器访问控制器(703)和所述直接存储器访问设备(704)卸载所述发送单元(700)的中央处理单元(702)。
7.根据权利要求6所述的方法,其中,所述直接存储器访问设备(704)包括检验和计算单元(805),用于对从所述直接存储器访问控制器(703)提供给所述直接存储器访问设备(704)的数据计算检验和。
8.根据权利要求1-7中任一项所述的方法,其中,二维列表结构控制所述切换,所述二维列表结构包括:
·第一上下文描述符(301),涉及参考存储器(701)中标题数据(304)的至少一个数据描述符(302),以及
·第二上下文描述符(301),涉及参考所述第一分段(101)的数据的至少一个数据描述符(302),其中所述第二上下文描述符(301)包括在切换前发送所述第一分段(101)的数据的多少字节的表示,
其中,所述方法包括:
·处理所述第一上下文描述符(301)以便获得所述标题数据(304),以及
·处理所述第二上下文描述符(301)以便获得所述第一分段(101)的数据,并根据所述表示发送若干字节的数据。
9.根据权利要求1-8中任一项所述的方法,其中,二维列表结构控制所述第一分段(101)的发送,所述二维列表结构包括:
·第一上下文描述符(301),涉及参考所述第一分段的数据的至少一个数据描述符(302),
·第二上下文描述符(301),涉及至少两个数据描述符(302),每个数据描述符(302)涉及用于两个不同目标(710)的标题数据(304),
其中,所述方法包括:
·处理所述第一上下文描述符(301)以便获得所述第一分段(101)的至少一部分,
·处理所述第二上下文描述符(301)以便获得用于所述两个不同目标(710)中一个的标题数据(304)并且以便获得用于所述两个不同目标(710)中另一个的标题数据(304),以及,向所述两个不同目标(710)中一个发送所述第一分段的所获得部分,并向所述两个不同目标(710)中另一个发送所述第一分段的所获得部分。
10.一种用于经数据网络(102)从发送单元(700,1000)向第一目标(710,1020)发送数据的第一分段(101)的装置(700),所述发送单元(700,1000)具有第一数据发送速率,第一目标(710,1020)具有第一数据接收速率,其中第一数据发送速率大于第一数据接收速率,所述装置包括:
直接存储器访问设备(704,1004),适合于通过在下列两项之间切换来有效地降低从所述发送单元(700,1000)到第一目标(710,1020)的第一发送速率:
·将所述第一分段(101)的至少一部分作为一个或多个数据分组发送到第一目标,所述发送在仅从所述发送单元到第一目标的方向;以及
·将至少第二分段(101)的至少一部分作为一个或多个数据分组发送到一个或多个附加目标(710,1022),所述发送在仅从所述发送单元到所述一个或多个附加目标的方向,重复所述切换,直到已经发送了所述第一分段(101)和/或至少所述第二分段(101)。
11.根据权利要求10所述的装置,其中,所述直接存储器访问设备(704)还适合于:
·在向第一目标(710)发送的所述至少第一分段(101)的所述数据分组之间插入一个或多个等待状态。
12.根据权利要求10-11中任一项所述的装置,其中所述直接存储器访问设备(704)还适合于:
·在要进行切换之前,保存确定已经发送多少所述第一分段的所述第一分段(101)中的第一位置,和/或保存确定已经发送多少所述第二分段的所述第二分段的位置,并且当再次切换回到发送所述第一分段或所述第二分段时,从相应保存的位置再继续发送。
13.根据权利要求10-12中任一项所述的装置,其中,根据发送模式进行所述切换。
14.根据权利要求13所述的装置,其中,基于第一目标(710)的接收速率和/或基于至少一个所述附加目标(710)的接收速率,确定所述发送模式。
15.根据权利要求10-14中任一项所述的装置,其中,所述装置(700)包括其中存储有数据的所述至少第一分段(101)的存储器(701)、适合于从所述存储器(701)读取所述第一分段的数据并将其提供给所述直接存储器访问设备(704)的直接存储器访问控制器(703),其中,所述直接存储器访问设备(704)适合于经网络接口(705)向所述网络(102)提供所述第一分段的所述数据,其中,所述直接存储器访问控制器(703)和所述直接存储器访问设备(704)有效地卸载所述发送单元(700)的中央处理单元(702)。
16.根据权利要求15所述的装置,其中,所述直接存储器访问设备(704)包括检验和计算单元(805),用于对从所述直接存储器访问控制器(703)提供给所述直接存储器访问设备(704)的数据计算检验和。
17.根据权利要求10-16中任一项所述的装置,其中,所述装置包括用于控制所述切换的二维列表结构,所述二维列表结构包括:
·第一上下文描述符(301),涉及参考存储器(701)中标题数据(304)的至少一个数据描述符(302),以及
·第二上下文描述符(301),涉及参考所述第一分段(101)的数据的至少一个数据描述符(302),其中所述第二上下文描述符(301)包括在切换前发送所述第一分段(101)的数据的多少字节的表示,
其中,所述直接存储器访问设备(704)适合于:
·处理所述第一上下文描述符(301)以便获得所述标题数据(304),以及
·处理所述第二上下文描述符(301)以便获得所述第一分段(101)的数据,并根据所述表示发送若干字节的数据。
18.根据权利要求10-17中任一项所述的装置,其中,所述装置包括用于控制所述第一分段(101)的发送的二维列表结构,所述二维列表结构包括:
·第一上下文描述符(301),涉及参考所述第一分段的数据的至少一个数据描述符(302),
·第二上下文描述符(301),涉及至少两个数据描述符(302),每个数据描述符(302)涉及用于两个不同目标(710)的标题数据(304),
其中,所述直接存储器访问设备(704)适合于:
·处理所述第一上下文描述符(301)以便获得所述第一分段(101)的至少一部分,
·处理所述第二上下文描述符(301)以便获得用于所述两个不同目标(710)中一个的标题数据(304)并且以便获得用于所述两个不同目标(710)中另一个的标题数据(304),以及,向所述两个不同目标(710)中一个发送所述第一分段的所获得部分,并向所述两个不同目标(710)中另一个发送所述第一分段的所获得部分。
19.一种计算机可读介质,其上存储有用于使一个或多个处理单元执行根据权利要求1-9中任一项所述的方法的指令。
CN200880124285.2A 2008-01-08 2008-10-29 分组丢失得以降低的网络卸载 Active CN101911612B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP08150092.8 2008-01-08
EP08150092A EP2079203A1 (en) 2008-01-08 2008-01-08 Network offloading with reduced packet loss.
US2511508P 2008-01-31 2008-01-31
US61/025,115 2008-01-31
PCT/SE2008/051228 WO2009088341A1 (en) 2008-01-08 2008-10-29 Network offloading with reduced packet loss

Publications (2)

Publication Number Publication Date
CN101911612A true CN101911612A (zh) 2010-12-08
CN101911612B CN101911612B (zh) 2012-12-26

Family

ID=39431090

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880124285.2A Active CN101911612B (zh) 2008-01-08 2008-10-29 分组丢失得以降低的网络卸载

Country Status (6)

Country Link
US (1) US8761164B2 (zh)
EP (2) EP2079203A1 (zh)
JP (2) JP5192551B2 (zh)
KR (1) KR101275047B1 (zh)
CN (1) CN101911612B (zh)
WO (1) WO2009088341A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034562A (zh) * 2011-07-14 2013-04-10 Lsi公司 闪存介质控制器中的元数据处理
CN110198203A (zh) * 2019-06-14 2019-09-03 中国人民解放军陆军工程大学 一种控制数据传输速率的方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2079203A1 (en) * 2008-01-08 2009-07-15 Axis AB Network offloading with reduced packet loss.
US8481557B2 (en) 2009-04-11 2013-07-09 Array Biopharma Inc. Method of treatment using checkpoint kinase 1 inhibitors
JPWO2010122896A1 (ja) * 2009-04-21 2012-10-25 京セラ株式会社 データ伝送システム、データ伝送方法およびデータ送信装置
CN101932006A (zh) * 2009-06-19 2010-12-29 中兴通讯股份有限公司 数据包发送、接收、传输方法及装置
US9002970B2 (en) 2012-07-12 2015-04-07 International Business Machines Corporation Remote direct memory access socket aggregation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1168787A (ja) * 1997-08-27 1999-03-09 Chokosoku Network Computer Gijutsu Kenkyusho:Kk パケット・スケジューリング方法
US20060034176A1 (en) * 1999-08-05 2006-02-16 Lindsay Steven B Network adapter with TCP windowing support
CN1870589A (zh) * 2005-05-26 2006-11-29 日立通讯技术株式会社 信息包传输装置及网络系统
JP2006345173A (ja) * 2005-06-08 2006-12-21 Nec Access Technica Ltd ルータ制御装置、ルータ、ip−vpnシステム、及び、ルータ制御方法
JP2007533233A (ja) * 2004-05-12 2007-11-15 ノキア コーポレイション レート・シェーパ・アルゴリズム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7174393B2 (en) 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US7224671B2 (en) * 2000-09-28 2007-05-29 Force10 Networks, Inc. Method and apparatus for load balancing in network processing device
WO2002045372A2 (en) * 2000-11-29 2002-06-06 British Telecommunications Public Limited Company Transmitting and receiving real-time data
DE10121198A1 (de) * 2001-04-30 2002-11-07 Infineon Technologies Ag Verfahren und Vorrichtung zur Anpassung der Datenrate eines Datenstroms
CN100363922C (zh) * 2002-08-30 2008-01-23 美国博通公司 用于独立于带宽延迟产品的tcp/ip卸载的系统和方法
US7313148B2 (en) * 2002-11-18 2007-12-25 Sun Microsystems, Inc. Method and system for TCP large segment offload with ack-based transmit scheduling
US6996070B2 (en) 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US7383483B2 (en) * 2003-12-11 2008-06-03 International Business Machines Corporation Data transfer error checking
EP2079203A1 (en) * 2008-01-08 2009-07-15 Axis AB Network offloading with reduced packet loss.

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1168787A (ja) * 1997-08-27 1999-03-09 Chokosoku Network Computer Gijutsu Kenkyusho:Kk パケット・スケジューリング方法
US20060034176A1 (en) * 1999-08-05 2006-02-16 Lindsay Steven B Network adapter with TCP windowing support
JP2007533233A (ja) * 2004-05-12 2007-11-15 ノキア コーポレイション レート・シェーパ・アルゴリズム
CN1870589A (zh) * 2005-05-26 2006-11-29 日立通讯技术株式会社 信息包传输装置及网络系统
JP2006345173A (ja) * 2005-06-08 2006-12-21 Nec Access Technica Ltd ルータ制御装置、ルータ、ip−vpnシステム、及び、ルータ制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034562A (zh) * 2011-07-14 2013-04-10 Lsi公司 闪存介质控制器中的元数据处理
CN110198203A (zh) * 2019-06-14 2019-09-03 中国人民解放军陆军工程大学 一种控制数据传输速率的方法

Also Published As

Publication number Publication date
EP2119148A1 (en) 2009-11-18
JP5552522B2 (ja) 2014-07-16
JP2011509628A (ja) 2011-03-24
JP5192551B2 (ja) 2013-05-08
WO2009088341A1 (en) 2009-07-16
KR101275047B1 (ko) 2013-07-30
EP2119148A4 (en) 2010-08-18
JP2013062854A (ja) 2013-04-04
EP2079203A1 (en) 2009-07-15
US8761164B2 (en) 2014-06-24
US20110007740A1 (en) 2011-01-13
CN101911612B (zh) 2012-12-26
KR20100112154A (ko) 2010-10-18

Similar Documents

Publication Publication Date Title
CN101911612B (zh) 分组丢失得以降低的网络卸载
CN110661723B (zh) 一种数据传输方法、计算设备、网络设备及数据传输系统
KR100973201B1 (ko) 투명 티씨피 오프로드를 위한 방법 및 시스템
EP1868093B1 (en) Method and system for a user space TCP offload engine (TOE)
US9379852B2 (en) Packet recovery method, communication system, information processing device, and program
CN101291194B (zh) 报文保序的方法和系统
US7406083B2 (en) Method for preserving the order of data packets processed along different processing paths
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US9930097B2 (en) Transport accelerator systems and methods
US8259728B2 (en) Method and system for a fast drop recovery for a TCP connection
CN106134147A (zh) 实现请求管理器和连接管理器功能的传输加速器
US8081644B2 (en) Method and device for controlling a queue buffer
CN110460533B (zh) 基于rdma的数据传输方法及装置
CN103546258B (zh) 一种数据传输方法及装置
WO2004017219A1 (en) Apparatus and method for transmit transport protocol termination
US7400581B2 (en) Load-balancing utilizing one or more threads of execution for implementing a protocol stack
US8054847B2 (en) Buffer management in a network device
CN1742465A (zh) 无线/lan路由器排队方法和系统
CN101883047B (zh) 多网络接口设备的数据并发传输方法
US7672299B2 (en) Network interface card virtualization based on hardware resources and software rings
CN101783763B (zh) 防拥塞的处理方法及系统
CN110865891B (zh) 一种异步消息编排方法和装置
CN116260887A (zh) 数据传输方法、数据发送装置、数据接收装置和存储介质
KR101933175B1 (ko) 서버와 클라이언트간 통신을 중개하는 중개장치
CN114884870A (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
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Longde, Sweden

Applicant after: Axis AB

Address before: Longde, Sweden

Applicant before: Axis AB

C14 Grant of patent or utility model
GR01 Patent grant