CN100544353C - 为多层网络接口控制器操作传输调度的方法和系统 - Google Patents

为多层网络接口控制器操作传输调度的方法和系统 Download PDF

Info

Publication number
CN100544353C
CN100544353C CNB2004101044465A CN200410104446A CN100544353C CN 100544353 C CN100544353 C CN 100544353C CN B2004101044465 A CNB2004101044465 A CN B2004101044465A CN 200410104446 A CN200410104446 A CN 200410104446A CN 100544353 C CN100544353 C CN 100544353C
Authority
CN
China
Prior art keywords
transmission
connection
data
priority
type
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
Application number
CNB2004101044465A
Other languages
English (en)
Other versions
CN1642172A (zh
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.)
Avago Technologies Fiber IP Singapore Pte Ltd
Original Assignee
Zyray Wireless Inc
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 Zyray Wireless Inc filed Critical Zyray Wireless Inc
Publication of CN1642172A publication Critical patent/CN1642172A/zh
Application granted granted Critical
Publication of CN100544353C publication Critical patent/CN100544353C/zh
Expired - Fee Related 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2466Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/522Dynamic queue service slot or variable bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/60Queue scheduling implementing hierarchical scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

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

Abstract

本发明的某些实施例揭露了一种用于网络接口控制器操作的方法和系统。本发明可使用用于网络接口控制器操作的两级工作回存调度系统,其包括跟踪所有带有活动传输需求及第二层的级的传输需求的L4/L5卸载连接。第一级包括用于分别选择下一高优先级、普通优先级及第二层传输需求的轮转调度。发送级判断包括工作回存的可编程加权轮转优先权调度,该调度用于从由第一级优先权调度选出的传输任务中选择。

Description

为多层网络接口控制器操作传输调度的方法和系统
技术领域
本发明的特定实施例涉及网络接口处理。特别地,本发明的特定实施例涉及一种为多层网络接口控制器(NIC)操作传输调度的方法和系统。
背景技术
国际标准化组织(ISO)已经建立了开放系统互连(OSI)参考模型。该开放系统互连参考模型提供了一种允许来自不同供应商的设备可进行通讯的网络设计框架。特别地,开放系统互连参考模型将通讯处理组织为七个相互隔离的、相关的层序分类。第一层(L1)为物理层,其处理传送数据的物理设备。第二层(L2)为数据链路层,其与操作链路的过程和协议相关,包括消息错误的检测和校正。第三层(L3)为网络层,其确定数据如何在计算机间传输。第四层(L4)为传输层,其定义了网内及网间的信息交换以及消息的端到端信息传输的规则,包括错误恢复和流程控制。第五层(L5)为会话层,其处理对话管理和控制由第四层提供的基本通讯设备的使用。第六层(L6)为表示层,与数据格式、编码转换及压缩和解压缩相关。第七层(L7)为应用层,用于特定应用服务,如文件传输、远端文件访问和虚拟终端。
在某些通讯系统中,网络接口控制器(NIC)需为可运行卸载(offload)的多个不同级的主机系统提供多个接口。该主机系统接口可包括保留的L2服务,传输级的L4服务,或会话级的L5服务。对于保留的L2服务,网络接口控制器提供较低量的卸载,其中来自系统的预格式化数据包被从系统中简单地读取及传输。对于传输级的L4服务,网络接口控制器通过连接基线在连接上提供可靠的数据传输服务。该类卸载的一个普通工具包括TCP/IP卸载。对于会话级的L5服务,网络接口控制器提供高级协议的L5服务,在此网络接口控制器提供协议特殊服务,如摘要或报头压缩/解压缩,以及使用可靠数据传输的跨网协议特殊或普通缓冲到缓冲复制服务。该类卸载的一个典型的工具为RDMAC协议或iSCSI协议。
图1A为需为运行卸载的多个不同级的主机系统提供多个接口的传统系统的框图。参考图1A,系统100包括操作系统101、L2驱动器103、L4驱动器105、L5驱动器107、L2网络接口控制器109、L4网络接口控制器111、网络接口控制器113、以及外部交换器115。系统100使用操作系统101支持L2、L4和L5类的卸载。操作系统101可为每一类卸载使用单独的驱动器和单独的NIC。例如,L2类卸载可通过使用L2驱动器103的L2网络接口控制器109管理,L4类卸载可通过使用L4驱动器105的L4网络接口控制器111管理,L5类卸载可通过使用L5驱动器107的L5网络接口控制器113管理。
传统系统100是多支持环境,其中每一卸载层协议运行于单独的网络接口控制器或主机总线适配器(HBA)。由于每一卸载层协议运行于独立的网络接口控制器,因此几乎无需管理不同服务级间的传输带宽。每一网络接口管理器具有其自己到网络的独立连接。例如,通常会出现L2网络接口控制器109、L4网络接口控制器111、L5网络接口控制器113中的某些或所有协议被同时传输。在这点上,并且当所有网络接口控制器在同一网络(如以太网)传输且网络将所有上述数据类型从多个网络接口控制器传输到目的地时,该方案可使用一个单一的外部交换器以合并通讯到每一数据包基础(直接到达或源和目的间的某处)。该方案中的每一网络接口控制器可能不考虑连接网络接口控制器设备的通讯需求。因此,如果所有三个网络接口控制器设备在一个较设计出口端口大的结合率传输,则在交换器115上指向目的地,数据可能积聚在交换器内,并且来自两个或更多网络接口控制器设备的数据包可能被延迟甚至丢弃,而不管协议的类型、连接的优先级特征或协议元素类型。此外,系统内外的能量消耗、冷却、和/或部件消耗可能相当大。
由于所有L4及上述卸载必须调整多个不同连接间的传输带宽,可能出现第二个问题。具有较小量传输数据的等待时间敏感的连接,可能必须等待,直到在小数据量的连接被允许传输前更忙的连接空闲。此外,忙连接可能操作较长周期,而具有较少量通讯的小连接不允许被传输,直到忙连接空闲。这种情况可能出现,因为系统性能通常对高带宽连接吞吐量敏感,而等待时间对于具有小量通讯的连接较重要,或者因为系统可能具有传送连接的所有数据或每一连接的很大块数据的策略。
另外,现在的卸载网络接口控制器可能较以前的传输数据更快。该加速的问题是,关于接收网络控制器的缓冲器状态,保持加速的网络接口控制器发送器的更新变得更加重要。对于TCP协议,例如,当网络速度加快时,接收器窗口的大小往往通过配置或其他扩大。因此,接收器必须提供接收数据的缓冲到TCP传送窗口的大小。这可能需要卸载网络接口控制器以及接收器的主机更多的存储量,以获得较高的吞吐率。
图1B示出了图1A系统的传输行为特征。参考图1B,示出了A连接121、B连接123以及当使用外部交换器时连接121和123的传输行为125。A连接121可具有偶尔传输的少量数据,而B连接123具有大量的传输数据。在图1A的传统系统100中,当使用外部交换器以在A连接121与B连接123间交换时,传输行为125与传输模式(pattern)相对应。由于B连接123的大量数据传输可被分为单个的数据包,可使用诸如图1A中的传统系统100中交换器的交换器,以限制由于A连接121产生的延迟。在这点上,封装的数据流在被独立的网络接口控制器封装后被合并。
图1C示出了图1A中的系统的数据传输和确认接收行为特征。参考图1C,传输数据业务(traffic)可由传输连接131、137、143表示。相关接收器确认可由连接133、139和145表示。每一传输数据连接131、137及143的带宽窗口大小可分别由带宽窗口大小135、141和147表示。关于三个连接131、137和143中的每一个,发送器必须具有“信用(credit)”以传输数据包。该信用可等于接收器的接收数据信息的专用连接的存储器量。可用的信用量是指TCP中的“窗口大小”。发送器向上传输可用信用,但然后必须等待来自接收器的确认,所述接收器可在继续前恢复一些信用等级。接收器可用于为那些被发送确认133、139和145正确接收和/或处理的数据恢复信用。
第一组传输数据连接131和接收确认133描述了传统速度的行为。接收器迅速地生成关于每两个数据包的确认133,并可在一大数据包时间内传达该确认。结果,可被用于接收完整带宽的最小可能带宽窗口大小135可被较好地控制。第二组传输数据连接137和接收确认139描述了当网络通讯较快时的数据包处理行为,其与第一组传输-接收对的范围不同。该例中的接收器迅速地生成确认,然而生成确认需花费比以前的网络更多的时间。在相同量的时间内,更多的数据可被传输,因此接收器需配置更大的窗口,该窗口要比最小可能带宽窗口141大,以实现完整带宽。为了实现完整带宽,可配置窗口大小为增加的大小,其可等于或大于最小可能带宽窗口141。增加的窗口大小消耗更多的接收器存储空间。然而,增加的窗口大小可被用于补偿网络等待时间以及实现带宽。
第三组传输数据连接143和接收确认145描述了当接收器的发送器为弱TX调度行为时的数据包处理行为。在该情况下,去而那145由于等待诸如其他连接的传输而被延迟,并随后显示为一个群组。因此,需要最小带宽窗口大小147实现完整带宽,其可被进一步填充和明显增大。如果窗口大小不被调整以匹配或超过新的最小带宽窗口147,发送器可能“结巴(stutter)”或全部停止,等待来自接收器的更多ACK(确认)。由于对于任何一个连接的窗口大小通常是固定的,因此可预知的ACK传输行为以保持窗口大小需求为最小和维持完整可能带宽是重要的。进一步地,如果窗口大小限制在完整带宽的最小需要大小以下,连接的可能带宽可能减小。因此,任何产生ACK数据包的附加延迟可能进一步减少连接带宽。
通过对比即将结合附图描述的本发明的系统,本技术领域的人员将了解常规和传统方法的进一步的局限及缺点。
发明内容
本发明设计一种为网络接口控制器(NIC)应用传输数据的方法和系统。该方法包括收集多个传输(TX)缓冲器指示器,每一TX缓冲器指示器识别与至少一个特定连接优先特性及特定连接类型相关的传输就绪数据。可选择一个TX缓冲器指示器,且与该选择的TX缓冲器指示器相关的传输就绪数据的一部分可被传输。特定连接类型可包括第二层(L2)类型、第四层(L4)类型、和/或第五层(L5)类型。如果特定连接类型包括L2类型、L4类型、和/或L5类型,则可使用至少一个特定连接的优先权特性将多个TX缓冲器指示器按优先次序列入连接优先权列表。该连接优先权列表可根据至少一个连接优先权特性区分优先次序。
所述连接优先权列表用于增加TCP或其他传送或会话层、确认(ACK)消息和/或协议要素的传输优先权。所述连接优先权列表用于限制特定业务类和/或协议要素的传输带宽。可通过加权轮转调度(Weighted Round-RobinScheme)选择一个或多个TX缓冲器指示器。一个或多个TX缓冲器指示器可与环境信息相关联。所述连接优先权列表可用于保证到一类业务、连接、和/或协议要素的低等待时间传输。所述环境信息包括TX ACK扩充要求和/或最大传输就绪数据长度。如果传输就绪数据的数据长度较最大传输就绪数据的长度大,则传输就绪数据被分割为多个传输就绪数据片段,其中每一传输就绪数据片段比最大传输就绪数据的长度小。特定连接类型的传输就绪数据片段可被传输。一个或多个传输就绪数据片段可被来自与至少一个特定连接优先权特性及特定连接类型相关的连接的传输就绪数据分隔。
此外,本发明的另一实例中,一个或多个类型的一个或多个活动数据连接在网络接口控制器上被跟踪。可选择其中一个活动连接进行处理。可在至少一个传输处理块中处理所述选择的活动数据,其中所述传输处理块可处理所述多个活动数据连接以生成来自网络接口控制器的传输数据流。可为至少两个传输处理块选择数据流,以生成来自网络接口控制器的至少一个传输数据流。传输判断系统可与传输处理块的至少一部分结合,其中可在传输处理块中至少部分地确定连接传输处理指令。
本发明还提供一种机器可读存储器,其上存储具有至少一段可由机器执行的代码段的计算机程序,从而使机器可执行上述预定的步骤以从网络接口控制器应用传输数据。
本发明的为网络接口控制器(NIC)应用传输数据的系统包括至少一个收集传输(TX)缓冲器指示器的处理器,每一TX缓冲器指示器识别与至少一个特定连接优先特性和/或特定连接类型相关的传输就绪数据。可通过所述处理器选择TX缓冲器指示器。与选择的TX缓冲器指示器相关的传输就绪数据的一部分可通过处理器传输。所述特定连接类型包括第二层(L2)类型、第四层(L4)类型、和/或第五层(L5)类型。如果特定连接类型包括L2类型、L4类型、和/或L5类型,则可通过处理器使用至少一个特定连接的优先权特性将多个TX缓冲器指示器按优先次序列入连接优先权列表。
可根据至少一个连接优先权特性使用所述处理器将所述连接优先权列表区分优先次序。所述连接优先权列表用于增加确认(ACK)消息、协议要素的传输优先权,和/或保证特定连接上的低等待时间业务。所述连接优先权列表可用于限制特定业务类和/或协议要素的传输带宽。可通过加权轮转调度选择TX缓冲器指示器。所述连接优先权列表可用于保证到一类业务、连接、和/或协议要素的低等待时间传输。所述环境信息包括TX ACK扩充要求和/或最大传输就绪数据长度。
如果传输就绪数据的数据长度较最大传输就绪数据的长度大,则传输就绪数据被处理器分割为多个传输就绪数据片段,其中每一传输就绪数据片段比最大传输就绪数据的长度小。特定连接类型的传输就绪数据片段可通过处理器被传输。一个或多个传输就绪数据片段可被来自连接的传输就绪数据分隔为不同优先权级的组。
本发明提供一种为网络接口控制器应用传输数据的方法,包括:
收集多个传输(TX)缓冲器指示器,每一TX缓冲器指示器识别与至少一个特定连接优先特性及特定连接类型相关的传输就绪数据;
选择所述多个TX缓冲器指示器中的至少一个;以及
传输所述与选择的多个TX缓冲器控制器中的至少一个相关的传输就绪数据的一部分。
优选地,所述特定连接类型包括第二层(L2)类型、第四层(L4)类型、和第五层(L5)类型中的至少一个。
优选地,所述方法还包括,如果特定连接类型包括L2类型、L4类型、或L5类型,则可使用至少一个特定连接的优先权特性将多个TX缓冲器指示器按优先次序列入连接优先权列表。
优选地,所述方法还包括根据至少一个连接优先权特性列出连接优先权列表。
优选地,所述连接优先权列表用于增加TCP确认(ACK)消息、会话层确认消息和/或协议要素中的至少一个的传输优先权。
优选地,所述连接优先权列表用于限制特定业务类或协议要素中的至少一个的传输带宽。
优选地,至少一个TX缓冲器指示器通过加权轮转调度被选择。
优选地,所述方法还包括将所述多个TX缓冲器指示器中的至少一个与至少一个环境信息相关联。
优选地,所述连接优先权列表用于保证到一类业务、连接、和协议要素中的至少一个的低等待时间传输。
优选地,所述至少一个环境信息包括TX ACK扩充要求和最大传输就绪数据长度中的一个。
优选地,所述方法还包括,如果传输就绪数据的数据长度较最大传输就绪数据的长度大,则将传输就绪数据分割为多个传输就绪数据片段,每一传输就绪数据片段比最大传输就绪数据的长度小。
优选地,所述方法还包括传输特定连接类型的所述多个传输就绪数据片段。
优选地,多个传输就绪数据片段的至少一部分被来自与至少一个特定连接优先权特性及特定连接类型相关的连接的传输就绪数据分隔。
本发明还提供了一种从网络接口控制器传输数据的方法,所述方法包括:
跟踪网络接口控制器上的多个类型的连接的多个活动数据连接;
选择所述多个活动连接中的至少一个进行处理;
在至少一个传输处理块中处理所述选择的活动数据;
其中所述至少一个传输处理块可处理所述多个活动数据连接以生成来自网络接口控制器的传输数据流。
优选地,为至少两个传输处理块选择至少一个数据流,以生成来自网络接口控制器的至少一个传输数据流。
优选地,所述方法还包括将传输判断系统与至少一个传输处理块的至少一部分结合,其中在所述至少一个传输处理块中至少部分地确定至少一个连接传输处理指令。
本发明还提供一种机器可读存储器,其上存储具有至少一段可由机器执行以为网络接口控制器应用传输数据的代码段的计算机程序,所述至少一段代码段可被机器执行以使机器执行步骤,包括:
收集多个传输(TX)缓冲器指示器,每一TX缓冲器指示器识别与至少一个特定连接优先特性及特定连接类型相关的传输就绪数据;
选择所述多个TX缓冲器指示器中的至少一个;以及
传输所述与选择的多个TX缓冲器控制器中的至少一个相关的传输就绪数据的一部分。
优选地,所述特定连接类型包括第二层(L2)类型、第四层(L4)类型、和第五层(L5)类型中的至少一个。
优选地,所述机器可读存储器还包括如果特定连接类型包括L2类型、L4类型、或L5类型,使用至少一个特定连接的优先权特性将多个TX缓冲器指示器按优先次序列入连接优先权列表的代码。
优选地,所述机器可读存储器还包括根据至少一个连接优先权特性列出连接优先权列表的代码。
优选地,所述连接优先权列表用于增加TCP确认(ACK)消息、会话层确认消息和/或协议要素中的至少一个的传输优先权。
优选地,所述连接优先权列表用于限制特定业务类或协议要素中的至少一个的传输带宽。
优选地,多个TX缓冲器指示器中的至少一个通过加权轮转调度被选择。
优选地,所述机器可读存储器还包括将所述多个TX缓冲器指示器中的至少一个与至少一个环境信息相关联地代码。
优选地,所述连接优先权列表用于保证到一类业务、连接、和协议要素中的至少一个的低等待时间传输。
优选地,所述至少一个环境信息包括TX ACK扩充要求和最大传输就绪数据长度中的一个。
优选地,所述机器可读存储器还包括,如果传输就绪数据的数据长度较最大传输就绪数据的长度大,则将传输就绪数据分割为多个传输就绪数据片段的代码,其中每一传输就绪数据片段比最大传输就绪数据的长度小。
优选地,所述机器可读代码段还包括传输特定连接类型的所述多个传输就绪数据片段的步骤。
优选地,多个传输就绪数据片段的至少一部分被来自与至少一个特定连接优先权特性及特定连接类型相关的连接的传输就绪数据分隔。
本发明还提供一种为网络接口控制器应用传输数据的系统,包括:
至少一个收集传输(TX)缓冲器指示器的处理器,每一TX缓冲器指示器识别与至少一个特定连接优先特性和/或特定连接类型相关的传输就绪数据;
所述至少一个处理器选择多个TX缓冲器指示器中的至少一个;以及
所述至少一个处理器传输与选择的多个TX缓冲器指示器中的至少一个相关联的传输就绪数据的至少一部分。
优选地,所述特定连接类型包括第二层(L2)类型、第四层(L4)类型、和第五层(L5)类型中的至少一个。
优选地,如果特定连接类型包括L2类型、L4类型、和/或L5类型,则可通过处理器,所述至少一个处理器使用至少一个特定连接的优先权特性将多个TX缓冲器指示器按优先次序列入连接优先权列表。
优选地,所述至少一个处理器根据至少一个连接优先权特性实现所述连接优先权列表。
优选地,所述连接优先权列表用于增加传输确认(ACK)消息和协议要素中的至少一个的传输优先权。
优选地,所述连接优先权列表用于限制特定业务类或协议要素中的至少一个的传输带宽。
优选地,至少一个TX缓冲器指示器通过加权轮转调度被选择。
优选地,所述至少一个处理器将所述多个TX缓冲器指示器中的至少一个与至少一个环境信息相关联。
优选地,所述连接优先权列表用于保证到一类业务、连接、和协议要素中的至少一个的低等待时间传输。
优选地,所述至少一个环境信息包括TXACK扩充要求和最大传输就绪数据长度中的一个。
优选地,如果传输就绪数据的数据长度较最大传输就绪数据的长度大,所述至少一个处理器将传输就绪数据分割为多个传输就绪数据片段,每一传输就绪数据片段比最大传输就绪数据的长度小。
优选地,所述至少一个处理器传输特定连接类型的所述多个传输就绪数据片段。
优选地,所处多个传输就绪数据片段被来自连接的传输就绪数据分隔为不同优先权级的组。
本发明的这些以及其他优点、方面和新特征,以及相应的例示实施例的细节,将在以下的描述和附图中更全面的理解。
附图说明
图1A为需支持到主机系统的多接口的常规系统的框图,所述主机系统上运行有卸载的多个不同级;
图1B为描述图1A中系统的传输行为特性的图;
图1C为描述图1A中系统的数据传输和确认接收行为特性的图;
图2为本发明的具有优化的多层网络接口控制器设备的图,所述设备用于传送多层卸载支持到单一网络连接;
图3A为本发明的一个示例性的具有3路加权轮转的优先权分配调度的框图,所述加权轮转用于诸如图2中系统的传输调度程序元素;
图3B为本发明的一个示例性的具有N路加权轮转的优先权分配调度的框图,所述加权轮转用于诸如图2中系统的传输调度程序元素;
图4为本发明的描述图2中系统的传输行为特性的框图;
图5为本发明的描述为多层网络接口控制器操作传输调度的方法的流程图;
图6为本发明的一个示例性系统的框图,该系统用于为多层网络接口控制器操作传输调度。
具体实施方式
本发明提供一种为多层网络接口控制器(NIC)操作传输调度的方法和系统。在本发明的一个实施例中,可生成传输(TX)缓冲器指示器,其中每一个可识别第二层(L2)类型、第四层(L4)类型、和/或第五层(L5)类型的传输就绪数据。传输缓冲器指示器可从驱动器被传送到网络接口控制器,以指示传输就绪数据。每一传输缓冲器指示器包括传输的数据范围以及包括传输操作的直接或关联的优先权特性。可将传输缓冲器指示器分类并存储到多个基于优先权特性的优先权组中。可根据TCP或其他传输或会话层确认(ACK)消息、和/或协议元素配置优先权特性。可基于诸如低等待时间或高优先权(如IEEE802.1P或IP TOS位)的连接请求配置优先权特性,或者根据来自操作系统或驱动器的指示或使用的配置程序配置优先权特性。可根据优先权特性选择传输缓冲器指示器,并且与传输缓冲器指示器相关的部分或所有传输就绪数据可被传输。在每一优先权级内,可使用加权轮转调度选择传输缓冲器指示器。
传输就绪指示器可与环境信息相关联,比如传输ACK消息类型和/或最大传输就绪数据长度和/或接收器接收数据的能力。如果传输就绪数据的长度大于最大传输就绪数据的长度,则将传输就绪数据分割位传输就绪数据片段,从而每一传输就绪数据片段小于最大传输就绪数据的长度。将特定连接的传输就绪数据片段依次传输,或者在传输过程中通过传输就绪数据或片段分为不同传输类型。该分割为本发明的一部分,而与TCP或其他协议需要的数据包分割请求无关。
图2为本发明的具有优化的多层网络接口控制器设备的系统200的示意图,该系统用于传输多层卸载支持到单一连接。参考图2,系统200包括操作系统201、多个L2驱动器203、多个L4驱动器205、多个L5驱动器207、多个远程驱动器206以及一个L2/L4/L5网络接口控制器209。网络接口控制器209包括传输调度程序201和传输处理部分211。在本发明的一个示例性方面,传输出落里部分211包括多个传输处理部分。系统200可使用操作系统201以支持L2、L4及L5类的卸载。操作系统201可为每一类卸载分别使用L2驱动器203、L4驱动器205及L5驱动器207。单一的网络接口控制器209可使用通用传输处理部分211管理所有类的卸载,包括L2、L4、和/或L5类的卸载。
可以较图1A中描述的现有技术更为划算的方式执行传输处理部分211,其中可为每一卸载类型提供所有数据和控制处理带宽,以处理所有可能的操作系统需要的寄存器。系统200的数据和控制处理带宽可与网络连接带宽匹配,以为多个传输卸载提供完整的网络带宽,或者配置为任意比完整带宽低的数据率,以方便避免网络的不同点的拥塞。可为任何连接或卸载类型,或整个网络接口控制器实现该调整。通过使用传输调度程序210和传输处理部分211,系统200中的所有数据路径函数通常介于不同卸载处理函数之间,这是应为它们不需在同一时间操作以维持网络连接212上的完整带宽。不被某类卸载使用的传输处理部分211中的任一卸载处理能量可被不同卸载使用。操作系统201可为通过非调制路径穿过驱动器203、205、和/或207中的每一个的网络接口控制器209上的一个或多个卸载加速传输任务。除操作系统传输任务之外,在线网络接口控制器驱动器208包括一个或多个卸载的加速传输任务。在线网络接口控制器驱动器包括用于在线网络接口控制器堆栈(例如管理堆栈)的连接,或系统中到其他元素的数据连接,例如不被203、205及207覆盖但由网络接口控制器209的不同部分提供的系统管理或卸载级。在线网络接口控制器驱动器可使用适于应用的任一级卸载(L2/L4/L5)。
在本发明的一个示例性方面,另一传输任务源包括位于远端或来自系统200的不同系统的驱动器。这些远程驱动器206使用来自那些由在线系统驱动器203、205、和/或207使用的相似或不同通讯通道,以与传输调度程序210通讯。这些远程驱动器可使用任一级适于应用的卸载。通过在线系统驱动器,可使用多个在线网络接口控制器或远程驱动器。在本发明的一个实施例中,网络接口控制器209包括多层网络接口控制器,且可使用一个或多个功能以处理接收的多层网络接口控制器操作,从而可通过单一传输处理部分211在一次一个(one-at-a-time)或管线基线(pipe-lined basis)上处理传输造作。可使用传输调度程序210定制或调制来自驱动器203、205、206、207和208的传输请求任务。
在本发明的一个示例性方面,不同卸载驱动器203、205、206、207和208请求的传输数据流可被合并,从而较长的多数据包传输请求不再使周期短或单数据包传输请求缺乏或延迟。在这点上,诸如系统200的多级工作回存(work-conserving)调度系统可用于为L2/L4/L5传输处理分配工作。因此,调度控制器包括以活动传输需求跟踪多个L2/L4/L5卸载连接。第一级判断块包括通过优先级分组的请求的多个列表,每一列表作为一个轮转调度,所述轮转调度可用于独立为每一列表选择下一传输需求。第二级判断块包括工作回存可编程加权轮转优先权调度,该调度可用于在由第一级优先权调度选出的传输任务中选择。第三级判断块用于限制单一传输任务长度为预定义量的数据,从而实现具有较佳等待时间的传输行为。此外,第三级判断块更新相关的连接环境,以反应传输需求的新状态。
实现本发明的目的的连接定义了传输缓冲器指示的流,其由单一或多个驱动器实例(instance)生成。任一驱动器实例为超过一个连接生成传输缓冲器指示。连接包括诸如由通常操作系统协议栈(如由L2驱动器提供给网络接口控制器的)生成的L2业务流。L2连接的传输缓冲器指示可参考多个类型或协议的数据包。多个L2连接可由驱动器生成,以区分业务传输优先级。多个L2连接可由驱动器生成以区分主机CPU,类似多处理操作系统。多个L2连接还可用于其他原因。另一通用的L2连接业务源为网络接口控制器、系统或者甚至来自系统的远端的管理实体。
多个L4连接可由L4驱动器生成,其中每一L4连接包括为诸如TCP卸载的连接的一个特定卸载的L4连接传输缓冲器指示。L4连接通常的源可以是操作系统协议栈或其他诸如那些用于存储的系统协议栈。L4连接还可由网络接口控制器、系统内或来自系统远端的管理实体生成。多个L5连接可由L5驱动器生成,其中每一L5连接包括为特定卸载的L5连接传输缓冲器指示,所述特定卸载的L5连接例如RDMA、iSCSI、或其他L5卸载连接。单一驱动器也可生成不同卸载类型的连接。例如,单一驱动器可生成L2、L4、和/或L5卸载类连接,而不需根据本发明的系统的压缩操作。
优先权特性可来源于与特定卸载类型的连接密切关联的传输缓冲器指示。例如,与iSCSI L5连接传输相比,RDMA L5连接传输可期望不同的处理。优先权特性可来源于与特定类型的相似卸载密切关联的传输缓冲器指示。例如与FTP(File Transfer Protocol)卸载传输相比,远程登陆TCP L4卸载传输可期望不同的处理。优先权特性还可来源于配置或用户输入或来自操作系统或来自IP TOS或来自IEEE 802.1Q设置或来自与会话管理业务密切关联的诸如操作系统显示或呈现条件中的ASF、IPMI、和/或UMP。
图3A是具有3路加权轮转的示例性的优先权分配调度的框图,所述加权轮转用在诸如图2系统中的传输调度程序元素内。参考图3A,示例性的优先权分配调度300包括第一级判断块301、第二级判断块303、第三级判断块305以及每一连接的环境存储器307。第一级判断块301包括带有传输缓冲器指示的连接的多个列表。例如,第一级判断块301包括L2传输需求列表323、高优先级传输需求列表325以及普通优先级传输需求列表327。列表323、325及327中的每一个可指定连接,所述连接需要相似优先权特性和/或特定连接类型的传输操作。
第二级判断块303包括一个3路加权轮转判断控制块335,且可用于选择第一级任务选出的三个连接中哪一个被通过连接337发送到第三级判断器。第三级判断块305包括传输任务生成块343以及连接环境更新块345。第三级判断块305可用于处理由第二级选出的连接,并可限制传输量以及更新连接的当前传输状态。第三级判断宽305还可通过路径355根据累计的一个或多个优先权类的业务历史修改第二级判断器的规划,从而特定优先权类可被限制到传输带宽的可编程百分比。
在操作中,在使用网络接口控制器以及例示的优先权分配调度300的系统中选择一个准备传送的连接的处理(作为传输就绪连接被引用)可由来自多个驱动器(例如L2驱动器、L4驱动器、或L5驱动器、在线网络接口控制器驱动器、和/或远程驱动器)的请求启动。这些驱动器可请求附加的传输缓冲器以被网络接口控制器传输。传输缓冲器指示器可通过通讯路径315被初始的接收到。特别地,根据连接类型和/或传输缓冲器指示的优先权特性,传输缓冲器指示器可被路由到相应的连接列表,如通过通讯路径317到L2传输需求列表。类似地,关于L4或L5(L4/L5)卸载连接的传输缓冲器指示器通过通讯路径319被普通优先级传输需求列表327接收到。除了指示到第一级调度程序301的新的传输就绪连接的存在,每一新的传输请求的大小还可通过连接321被传送到与每一连接的环境307中的每一连接相关联的连接环境。
传输缓冲器指示器的第二源可来自诸如接收器(RX)路径(由于连接上的数据接收)的在线网络接口控制器。当数据被接收,为了以最小等待时间保持有效传输和接收带宽,确认数据包被预定传输,然后为连接传输确认数据包。传输确认消息生成的请求传输缓冲器指示器可通过通讯路径309被接收。特别地,传输确认消息的传输缓冲器指示器可基于连接类型或传输缓冲器指示的优先权特性被路由到的连接的正确列表。例如,关于L4/L5卸载的传输缓冲器指示器可通过通讯路径311被高优先级传输需求列表接收到。传输确认消息生成的每一传输缓冲器指示的大小可通过连接313被发送到连接环境,所述连接环境与每一连接的环境307中的每一连接关联。每一连接(存储于每一连接的存储器307中)的每一连接的环境信息包括传输确认消息类型,和/或接收确认数据的量,和/或传输就绪数据长度的外延。环境还可包括传输就绪数据的传输的当前程序,和/或连接接收器可接收的数据量的状态,和/或与连接相关的拥塞控制限制,和/或由先于允许另一传输连接的连接生成的传输就绪数据的最大量。
在本发明的一个方面,第一级判断块301用于搜索和找寻每一连接列表的下一传输就绪连接,例如L2传输需求列表323、高优先级传输需求列表325、和/或普通优先级需求列表327。第一级判断块301用于选择可操作的连接(如传输就绪连接)。传输请求可用于第二级判断块303。在第一级判断块301中,L2传输需求列表323用于跟踪是否需要L2级数据包传输。为了以与L2传输就绪数据包具有相似优先权跟踪L2连接,轮转方式中需要一个单一的位,或多个位。L2流中的任一数字可仅使用单一位的传输跟踪需求由每一流支持,可使用诸如触发器实现L2传输需求列表323。此外,具有不相似优先权特性的多个L2连接可作为分离的L2传输需求列表被执行。
在本发明的一个示例性实施例中,主机上的L2应用驱动器可包括一个使用优先权分配调度以传输二十或以上L2数据包的网络接口控制器。然后L2传输需求列表位可被设置到L2传输需求列表323中以表明存在一些传输活动需求。表明值“20”的传输需求的大小通过通讯路径321被发送到与307中的L2流相关的环境。该位被设置以表明L2数据包准备传送的事实以及环境输入的内容(即20)可表明多少L2数据包准备传输(即20个L2数据包传输就绪)。可使用多个L2连接,每一连接具有与其L2传输需求列表323中和307中的入口环境相关的位。此外,L2连接可在第三级判断块304确定连接的传输活动完成时,被从每一列表中移除。
在本发明的另一实施例中,高优先级传输需求列表325及普通优先级传输需求列表327可能彼此相似,因为两个列表都用于为L4和/或L5卸载连接业务服务。可选择这些块的编号以匹配不同优先权特性的编号,所述优先权特性要求包括所有的L4/L5连接。这些列表可表明什么样的连接是传输就绪的L4和/或L4卸载类型的下一传输就绪连接。可将连接作为传输缓冲器指示或确认指示到达加入到每一列表。此外,连接可在第三级判断块304确定连接的传输活动完成时,被从每一列表中移除。
与L2传输需求列表相比,普通优先权传输需求列表327被要求管理许多连接。普通优先权传输需求列表327中的每一位与特定L4和/或L5连接相关。如果设置了特定位,可为L4和L5业务使用一个位-位置调度,然后在普通优先权传输需求列表327设置的位的位置可表明具有相同编号的主机中的L4或L5连接准备发送。例如,若设置了位编号5,则表明主机中的L4/L5编号5的连接在普通优先权传输需求列表327中,且准备传输。
高优先级传输需求列表325用于提高传输就绪连接的至少部分优先级。网络接口控制器上的连接与传输和/或接收数据相关联。对于一个与接收数据关联的特定连接,TCP确认消息以高优先级和在进一步发送其他数据前被传输回发送网络接口控制器。在本发明的一个不同的实施例中,发送网络接口控制器使用“移动窗口”调度或信用调度,与传输调度程序300一起,允许较好的使用所有可行传输移动窗口。由接收网络接口控制器预先发送的传输确认消息可保持“传输窗口”开启并且连接有效。此外,提供窗口状态的更快更新允许带宽增加,而不需扩大“传输窗口”的大小。在另一本发明的不同实施例中,高优先级传输需求列表325在与接收网络接口控制器通讯过程中使用不同类的应用级控制消息,以维持有效带宽和最小信号等待时间,例如iSCSI、R2T及状态消息,和/或RDMA读请求消息。
在本发明的另一实施例中,第一级判断块301可使用一个随机访问存储器(RAM)实现,其中RAM中的至少一部分位可表明连接传输的要求。RAM中位的位置可用于识别连接。可提供并使用搜索运算通过搜索RAM的位(例如值“1”或其他可用于表明连接何时准备传输的值)选择下一传输连接。当连接已被请求处理时,可继续扫描,而运算也可继续搜索下一RAM位(具有值“1”或其他可用于表明连接何时准备传输的值)。此外,可在使用多个位以显示单个连接的传输需求中执行多个不同优先级,从而特定位编码可表明单个连接可为多个特定传输需求列表,而不是多个其他传输需求列表。在该执行中,判断块301的存储器和扫描源可在单个设计中执行。
第一级判断块301还被作为链接列表被执行。任一传输就绪连接的传输顺序可通过单个步行(walking)或遍历(traversing)该指针链接列表及在每一连接基础上传输来确定。指针可用于遍历链接列表。当然其他轮转、加权轮转、甚至FIFO判断调度可在第一级判断块301中使用,而不小由本发明的多层网络接口控制器操作提供的不同益处。
L2传输需求列表323、高优先级传输需求列表325、和普通优先级需求列表327可通过通讯路径329、311和333分别连接到第二级判断块303中的3路加权轮转判断控制块335。多个传输需求列表323、325及327中的每一个可显示其被选出的到第二判断块303的连接。每一传输需求列表的每一个输出可视为确定的业务级和/或类型的需要传输活动的连接。业务级或类型的精确度可由传输缓冲器指示如何被分入不同传输需求列表所确定。
3路加权轮转判定控制块335包括适当的电路、逻辑或/和代码,且可被编程,从而其可选择任一通过通讯路径329、331、和/或333接收的传输缓冲器指示器。3路加权轮转判定控制块335中的选择标准可被预编程或动态更改。例如,传输带宽的最大百分率可被L2连接使用。例如,可预编程为十分之二的被选传输就绪连接为L2类型,这样假定其他业务使用带宽时,为L2类型业务提供不超过20%的传输带宽。第二级的加权轮转可用于“网络保存”,并且在这点上,如果没有其他第一级判断是活动的,则任一第一级判断源可使用所有传输带宽或附加的部分。
第二级判断块303可视为能将传输带宽分为多个“桶”或箱。每一桶或箱可被分配一个业务级或类,例如其可包括L2普通优先级和高优先级,对应于301中提供的传输需求列表。第二级优先权调度可在每一桶或箱上以轮转的方式操作,以维护由分配给特定桶的传输需求列表代表的连接。如果遇到空的桶(其中分配的传输需求列表没有与传输需求的连接),则可跳过桶或箱,并以工作回存的方式操作下一桶或箱,从而如果其他传输需求列表都不活动,所有传输带宽可被来自单个传输需求列表的连接取得。
第二级判断包括可编程的寄存器,可方便L2、高优先级或低优先级业务混合以在传输前在第三级判断块305中达到平衡。桶或箱调度可允许该混合基于L2对L4/L5卸载期望的性能而不同,而仍然在分配较其他业务高的优先级确认传输。桶或箱调度还可限制由L2或L4/L5业务受到的等待时间,因为它避免了两类占据全部传输带宽以及使其他业务缺乏。只要在第一级判断块301中的L4/L5连接的优先权的两级允许特定连接被暂时提高优先权,则实质上跳至普通级轮转线的前端。这可适合提前为TCP或其他传输协议生成确认消息,以快速广告网络接口控制器的为特定连接接收更多数据的能力。通过设计额外的传输需求列表,桶调度可用于提供L2、L4、和/或L5业务的不同分类,从而每一分类在可控制的量上使用其他L2、L4、和/或L5业务被混合。如图所示,不同连接类型可分享同一业务分类以限制设计复杂性。
第二级判断规划还可通过路径355被第三级判断305修改,从而第二级判断303可在平衡业务类间的传输业务时考虑业务类使用的真实传输带宽。例如,多个用于选择特定传输需求列表的桶可在某一业务类的传输业务超过一特定阈值时被调制。
第三级判断块305可用于确定在给定的时间内传输就绪连接数据中的多少被传输。第三级判断块305包括传输任务生成块343和连接环境更新块345。在操作中,由3路加权轮转判断块335选择的连接可通过通讯路径337与第三级判断块305通讯。对于由第三级判断块305接收的每一连接,来自每一连接的环境存储器307的环境信息可被传输任务生成块343通过通讯路径339读取。
每一连接的环境存储器307包括在线芯片或离线芯片存储器,所述存储器可用于存储识别信息,该信息可识别一类连接、相关的确认消息需求、可传输数据的外延及数据最大限制(多少可被或可被允许传输)。环境信息表明选择的传输就绪连接类型,以及传输就绪连接的当前传输需求。传输任务生成块343则用于选择一组规则,例如确定传输对于选择的连接是否可行。如果传输可行,传输任务生成块343可确定多少来自选择连接的数据可在一个被传输(即所有数据或部分数据)。传输任务生成块343可确定选择的连接是否从第一级判断传输需求列表323、325、和/或327中“出列”。如果选择的传输就绪连接被完整地传输,各连接被从第一级判断块301中被移除。
如果连接数据较最大预确定的长度长,正如在环境数据中指出地,则该连接数据被分割,而仅该连接数据的部分被传输。特定量数据的传输请求被通过路径347发送到传输处理。在每一连接的存储块307中的连接环境可通过通讯路径341更新,从而第三级判断块305可在连接通过连接337再次到达时识别余下的数据以传输。在本发明的一个实施例中,第三级判断块的决策可基于多少数据被传输以及多少数据被在连接的其他端的接收器接收和/或当前接收,以及避开限制的连接拥塞,以及任一其他标准如每一传输的任务限制,或最大连接长度限制,或传输上的任一协议限制。
如果协议需求已到达,或所有连接业务被传输,则第三级判断块305通过路径356向第一级判断块301指示以通过移除到不同传输需求列表来标记该连接为理想。尽管,第三级判断块305通过连接347由数量请求消耗了其突出的传输数据,并获得了需要通过连接337传输的下一连接。该大传输请求的分解或分割可使显著的忙连接避免占用全部的传输带宽。在这点上,其他活动连接的至少一些可在返回具有大传输数据量的连接前被给予传输的机会。在由连接347生成的每一操作上的传输大小的限制,可为第二级判断块303中的3路加权轮转判断控制中的箱值提供更多的控制。如若特定连接在一个请求上传输大量数据,则传输大小限制可限制该传输,从而特定业务类的箱值比例将关于实际传输业务更加精确。
在示例性优先权分配调度300的操作中,可避免任一连接占用所有带宽,并限制连接以使用适当的共享带宽。这可由预编程传输长度限制(其可作为环境信息保存于每一连接的环境存储器307中)及第一级判断块301的轮转特性保证。该特性具有优点,因为低通讯量的连接需要短的传输等待时间,不管是否存在其他大的持续传输业务的连接。在实例中,在使用优先权分配调度300的系统中没有其他连接具有传输业务的情况下,活动连接可被限制且具有在介质允许的数据下传输的能力。这可由第二级判断块303的网络保存特性提供。该优点对于为小量连接(如单一连接)维持高性能是较重要的。
图3B为具有N路加权轮转的示例性优先权分配调度的框图,所述轮转可在诸如图2系统的传输调度程序元素中使用。参考图3B,示例性的优先权分配调度300b包括第一级判断块301b、第二级判断块303b、第三级判断块305b以及每一连接的环境存储307b。第一级判断块301b包括带有传输缓冲器指示的连接的N个优先权列表,从365b到369b。列表365b到369b中的每一个可指定连接,所述连接需要相似优先权特性和/或特定连接类型的传输操作。
第二级判断块303b包括一个N路加权轮转判断控制块335b,且可用于选择第一级任务选出的N个连接中哪一个被通过连接337b发送到第三级判断器335b。第三级判断块305b包括传输任务生成块343b以及连接环境更新块345b。第三级判断块305b可用于处理由第二级选出的连接,并可限制传输量以及更新连接的当前传输状态。第三级判断宽305b还可通过路径355b根据累计的一个或多个优先权类的业务历史修改第二级判断器的规划,从而特定优先权类可被限制到传输带宽的可编程百分比。
在操作中,在使用网络接口控制器以及例示的优先权分配调度300b的系统中选择一个准备传送的连接的处理(作为传输就绪连接被引用)可由来自多个驱动器(例如L2驱动器、L4驱动器、L5驱动器、在线网络接口控制器驱动器、或远程驱动器)的请求启动。每一驱动器用于代表不同操作系统的任务栈、应用、和/或管理实体生成不同卸载级的连接业务。这些驱动器可请求附加的传输缓冲器以被网络接口控制器传输。多个优先权列表365b到369b的传输缓冲器指示器可通过通讯路径315b被初始的接收到。特别地,根据连接类型和/或传输缓冲器指示的优先权特性,传输缓冲器指示器可被路由到相应的连接列表,如通过通讯路径317b到优先权列表365b到369b。除了指示到第一级调度程序301b的新的传输就绪连接的存在,每一新的传输请求的大小还可通过连接321b被传送到与每一连接的环境307b中的每一连接相关联的连接环境。
传输缓冲器指示器的第二源可来自诸如接收器(RX)路径(由于连接上的数据接收)的在线网络接口控制器。当数据被接收,为了以最小等待时间保持有效传输和接收带宽,确认数据包或其他传输任务被预定传输,然后为连接传输确认数据包。传输确认消息生成的请求传输缓冲器指示器可通过通讯路径309b被接收。特别地,传输确认消息的传输缓冲器指示器可基于连接类型或传输缓冲器指示的优先权特性被路由到连接的一个或多个优先权列表,例如优先权列表365b到369b。传输确认消息生成的每一传输缓冲器指示的大小可通过连接313b被发送到连接环境,所述连接环境与每一连接的环境307b中的每一连接关联。每一连接(存储于每一连接的存储器307b中)的每一连接环境信息包括传输确认消息类型,和/或接收确认数据的量,和/或传输就绪数据长度的外延。环境还可包括传输就绪数据的传输的当前程序,和/或连接接收器可接收的数据量的状态,和/或与连接相关的拥塞控制限制,和/或由先于允许另一传输连接的连接生成的传输就绪数据的最大量。传输缓冲器指示器的到特定优先权列表的路由静态或动态地配置,可基于诸如由传输缓冲器指示器指定的连接类型、连接优先权特性、和/或传输协议任务类型。
优先权列表365b到369b的N编号可通过通讯路径370b到374b分别连接到第二级判断块303b中的N路加权轮转判断控制块335b。多个优先权列表365b到369b中的每一个可显示其被选出的到第二判断块303b的连接。每一优先权列表的输出可视为确定的业务级和/或类型的需要传输活动的连接。业务级或类型的精确度可由传输缓冲器指示如何被分入不同传输需求列表所确定。
N路加权轮转判定控制块335b包括适当的电路、逻辑或/和代码,且可被编程,从而其可选择任一通过通讯路径370b到374b接收的传输缓冲器指示器。N路加权轮转判定控制块335b中的选择标准可被预编程或动态更改。例如,可预编程为十分之二的被选传输就绪连接为优先权为0的连接列表365b中的类型,这样假定其他业务使用余下带宽时,为连接列表365b中的连接提供不超过20%的传输带宽。用于第二级判断块303b的N路加权轮转判定块控制335b的加权轮转可用于“网络保存”,并且在这点上,如果没有其他第一级判定源消耗所有允许的带宽,则任一第一级判断源可使用所有传输带宽或附加的部分。
第二级判断块303b可视为能将传输带宽分为多个“桶”或箱。每一桶或箱可被分配一个业务级或类,其可对应于301b中提供的优先权列表365b到369b的N编号的定义。第二级优先权调度可在每一桶或箱上以轮转的方式操作,以维护由分配给特定桶的分配或选择的优先权列表代表的连接。如果遇到空的桶(其中分配或选择的优先权列表没有与传输需求的连接),则可跳过桶或箱,并以工作回存的方式操作下一桶或箱,从而如果其他优先权列表都不活动,所有传输带宽可被来自单个优先权列表的连接取得。
第二级判断规划还可通过路径355b被第三级判断305b修改,从而第二级判断303b可在平衡业务类间的传输业务时考虑业务类使用的真实传输带宽。例如,多个用于选择特定传输需求列表的桶可在某一业务类的传输业务超过一特定阈值时被调制。
第三级判断块305b可用于确定在给定的时间内传输就绪连接数据中的多少被传输。第三级判断块305b包括传输任务生成块343b和连接环境更新块345b。在操作中,由N路加权轮转判断块335b选择的连接可通过通讯路径337b与第三级判断块305b通讯。对于由第三级判断块305b接收的每一连接,来自每一连接的环境存储器307b的环境信息可被传输任务生成块343b通过通讯路径339b读取。
每一连接的环境存储器307b包括在线芯片或离线芯片存储器,所述存储器可用于存储识别信息,该信息可识别一类连接、相关的确认消息需求、可传输数据的外延及数据最大限制(多少可被或可被允许传输)。环境信息表明选择的传输就绪连接类型,以及传输就绪连接的当前传输需求。传输任务生成块343b则用于使用一组规则,例如确定传输对于选择的连接是否可行。如果传输可行,传输任务生成块343b可确定多少来自选择连接的数据可在一个被传输(即所有数据或部分数据)。传输任务生成块343b可确定选择的连接是否通过连接356b从第一级判断优先权列表365b到369b中“出列”。如果选择的传输就绪连接被完整地传输,各连接被从第一级判断块301b中被移除。
如果连接数据较最大预确定地长度长,正如在环境数据中指出地,则该连接数据被分割,而仅该连接数据的部分被传输。特定量数据的传输请求被通过路径347b发送到传输处理。在每一连接的存储块307b中的连接环境可通过通讯路径341b更新,从而第三级判断块305b可在连接通过连接337b再次到达时识别余下的数据以传输。在本发明的一个实施例中,第三级判断块的决策可基于多少数据被传输以及多少数据被在连接的其他端的接收器接收和/或当前接收,以及避开限制的连接拥塞,以及任一其他标准如每一传输的任务限制,或最大连接长度限制,或传输上的任一协议限制。
如果协议需求已到达,或所有连接业务被传输,则第三级判断块305b通过路径356b向第一级判断块301b指示以通过移除到不同传输需求列表来标记该连接为理想。尽管,第三级判断块305b通过连接347b由数量请求消耗了其突出的传输数据,并获得了需要通过连接337b传输的下一连接。该大传输请求的分解或分割可使显著的忙连接避免占用全部的传输带宽。在这点上,其他活动连接的至少一些可在返回具有大传输数据量的连接前被给予传输的机会。在由连接347b生成的每一操作上的传输大小的限制,可为第二级判断块303b中的N路加权轮转判断控制335b中的箱值提供更多的控制。如若特定连接在一个请求上传输大量数据,则传输大小限制可限制该传输,从而特定业务类的箱值比例将关于实际传输业务更加精确。
在示例性优先权分配调度300b的操作中,可避免任一连接占用所有带宽,并限制连接以使用适当的共享带宽。这可由预编程传输长度限制(其可作为环境信息保存于每一连接的环境存储器307b中)及第一级判断块301b的轮转特性保证。该特性具有优点,因为低通讯量的连接需要短的传输等待时间,不管是否存在其他大的持续传输业务的连接。在实例中,在使用优先权分配调度300b的系统中没有其他连接具有传输业务的情况下,活动连接可被限制且具有在介质允许的数据下传输的能力。这可由第二级判断块303b的网络保存特性提供。该优点对于为小量连接(如单一连接)维持高性能是较重要的。
在本发明的一个发面,诸如图2中的传输调度程序210的L2/L4/L5网络接口控制器中的传输调度程序可使用图3A或3B中的示例性的优先权分配调度300或300b实现。
图4是例示本发明的图2中系统的传输行为特性的图。参考图4,其示出了A连接401、B连接403、连接401和连接403的传输行为405、以及连接401和连接403的传输行为407。A连接401在周期间隙上具有小量数据传输,而B连接403具有大量数据传输。在一个未使用本发明的系统(如图3中例示的示例性优先权分配调度300)中,传输行为405描述了连接401的高的等待时间,这是由于具有小量数据传输的连接401必须等待,直到较忙连接403在连接401被允许传输前空闲。在使用根据本发明的优先权分配调度的系统中,可实现具有低等待时间的传输行为,如图表407所示。可通过仅传输来自连接403的片段使用优先权分配调度实现连接401的低等待时间,及使用的有效带宽。
在本发明的一个示例性方面,连接或连接协议的单个元素的任一类可根据来自其他连接类型的传输载入信息区分优先权。可为TCP确认传输定位一特定量的用于L4TCP卸载及L5iSCSI卸载的最小带宽,而不管L2卸载传输大UDP数据包的传输需求。通过这种方式,多接口传统系统(其中每一网络接口控制器具有关于其他卸载的传输需求,例如图1A中的传统系统)的缺点可被避免。通过将传输调度程序放在传输处理引擎的前端,单个传输处理引擎可在被介质允许的比例上生成L2、L4、和/或L5卸载业务,还可在被介质允许的比例上生成L2、L4、和/或L5卸载业务的混合。
图5为本发明的描述为多层网络接口控制器操作传输调度的方法500的流程图。该方法500可在诸如图3A的第三级判断块305或图3B中的第三级判断块305b的判断块中被执行。现在参考图5,在步骤501,从诸如图3A中的第三级判断块303或图3B中的第三级判断块303b的第二级判断块中获取用于传输就绪连接的指示器。在步骤503,与选出的传输就绪连接相关联的环境信息被从每一连接的环境存储块中读出。然后用于特定传输就绪连接的传输时间的外延可在步骤505中被赋值。赋值包括被驱动器请求的传输限制,由于用于适当传输的长度限制的传输限制,和/或由于在接收器的可用缓冲器的传输限制,和/或由于避免拥塞的传输限制,和/或由于其他协议传输要求的传输限制。
在步骤507,生成步骤505中选出的确定量的连接的传输命令,完成传输。在步骤509,更新与传输的连接相关的连接环境。例如更新环境以反映整个连接已完成,或者连接的一个片段已完成。在本发明的一个示例性方面,如果连接由于协议原因被阻止传输,则可能所需的环境没有变化。在步骤511,可确定是否选出的连接中的所有传输数据已被传输,或当协议需要时用于该连接的传输被挂起(suspend)。如果不是,则在步骤501,从第二级判断块获取下一连接。如果选出的连接中的所有传输数据已被发送或者在协议需要时传输被挂起,则在步骤513,第三级判断块要求第一级判断块从不同优先权列表中移除连接。
图6为本发明的一个示例性系统的框图,该系统用于为多层网络接口控制器操作传输调度。参考图6,系统600包括主机601和网络接口控制器603。主机的内存603可通过接口总线605通讯连接到网络接口控制器603。网络接口控制器603包括多个网络接口控制器处理器609。此外,网络接口控制器603使用本发明的优先权分配调度块611。网络接口控制器603通过传输路径617传输数据,并通过接收路径615接收数据。在本发明的一个实施例中,接收路径615通过通讯路径613与优先权分配调度块611连接。通讯路径613可用于传递诸如传输确认消息请求。在本发明的一个不同的实施例中,网络接口控制器603可以是主机601的部件。
从而,本发明可通过硬件、软件或硬件和软件的结合实现。本发明可在至少一计算机系统中以中央管理方式(centralized fashion)实现,或者在不同元素分散在几个相互连接的计算机系统的情况下以分布方式实现。任一种计算机系统或其他用于实现在此描述的方法的设备是合适的。软件和硬件的通常结合可以是一个带有计算机程序的通用目标计算机系统,该程序在被载入和执行时,控制计算机系统从而实现在此描述的方法。
本发明还可嵌入计算机程序产品中,该程序产品包括可实现在此描述的方法的所有特征,其被载入计算机系统时可实现这些方法。此处的计算机程序可以是任何表达、任何语言、编码或符号的一组指令,该组指令使具有信息处理能力的系统直接或在以下操作之一或全部后实现特定功能:a)转换为另一语言、代码或符号;b)复制为另一形式。
尽管本发明已通过参考某些实施例进行了描述,可以理解,熟知本技术领域人员可在不脱离本发明的范围内做不同修改及使用等价替换。此外,可在不脱离本发明的范围内可做许多修改以适应特定情况或教授本发明的材料。因此,本发明并不局限于所揭示的具体实施例或方案,而是想涵盖落入附加的权利要求的所有实施例。

Claims (8)

1、一种用于网络接口控制器应用的传输数据的方法,其特征在于,包括:
收集多个传输缓冲器指示器,所述缓冲器指示器中的每一个识别与至少一个特定连接优先权特性及特定连接类型相关联的传输就绪数据;
选择所述多个传输缓冲器指示器中的至少一个;以及
传输与选出的所述多个传输缓冲器指示器中的至少一个相关联的传输就绪数据的至少一部分;
将所述多个传输缓冲器指示器中的至少一个与包括最大传输就绪数据长度的至少一个环境信息相关联;
在所述传输就绪数据的数据长度大于所述最大传输就绪数据长度时,将所述传输就绪数据分割为多个传输就绪数据片段,其中所述多个传输就绪数据片段中的每一个小于最大传输就绪数据长度。
2、根据权利要求1所述的方法,其特征在于,所述特定连接类型包括第二层类型、第四层类型和第五层类型中的至少一个。
3、根据权利要求2所述的方法,其特征在于,还包括:当特定连接类型包括第二层类型、第四层级类型或第五层级类型时,使用至少一个特定连接的优先权特性将多个传输缓冲器指示器按优先次序列入连接优先权列表。
4、根据权利要求1所述的方法,其特征在于,所述多个传输就绪数据片段中的至少一部分由来自不同优先级的连接分隔。
5、一种为网络接口控制器传输数据的系统,其特征在于,包括:
至少一个处理器,所述处理器收集多个传输缓冲器指示器,所述缓冲器指示器中的每一个识别与至少一个特定连接优先权特性及特定连接类型相关联的传输就绪数据;
所述至少一个处理器选择所述多个传输缓冲器指示器中的至少一个;以及
所述至少一个处理器传输与选出的所述多个传输缓冲器指示器中的至少一个相关联的传输就绪数据的至少一部分;
所述至少一个处理器将所述多个传输缓冲器指示器中的至少一个与包括最大传输就绪数据长度的至少一个环境信息相关联;
所述至少一个处理器在所述传输就绪数据的数据长度大于所述最大传输就绪数据长度时,将所述传输就绪数据分割为多个传输就绪数据片段,其中所述多个传输就绪数据片段中的每一个小于最大传输就绪数据长度。
6、根据权利要求5所述的系统,其特征在于,所述特定连接类型包括第二层类型、第四层类型和第五层类型中的至少一个。
7、根据权利要求6所述的系统,其特征在于,当特定连接类型包括第二层类型、第四层类型或第五层类型时,所述至少一个处理器在具有至少一个特定连接优先权特性的连接优先权列表中区分所述多个传输缓冲器指示器的优先权。
8、根据权利要求7所述的系统,其特征在于,所述至少一个处理器根据所述至少一个特定连接优先权特性区分连接优先权列表的优先权。
CNB2004101044465A 2003-12-19 2004-12-20 为多层网络接口控制器操作传输调度的方法和系统 Expired - Fee Related CN100544353C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53105603P 2003-12-19 2003-12-19
US60/531,056 2003-12-19

Publications (2)

Publication Number Publication Date
CN1642172A CN1642172A (zh) 2005-07-20
CN100544353C true CN100544353C (zh) 2009-09-23

Family

ID=34520285

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004101044465A Expired - Fee Related CN100544353C (zh) 2003-12-19 2004-12-20 为多层网络接口控制器操作传输调度的方法和系统

Country Status (5)

Country Link
US (2) US8009563B2 (zh)
EP (1) EP1545090B1 (zh)
CN (1) CN100544353C (zh)
DE (1) DE602004015400D1 (zh)
TW (1) TWI262690B (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447795B2 (en) * 2001-04-11 2008-11-04 Chelsio Communications, Inc. Multi-purpose switching network interface controller
US7231475B1 (en) * 2004-01-30 2007-06-12 Cisco Technology, Inc. Advanced bandwidth allocation in PCI bus architecture
US7941165B2 (en) * 2005-03-02 2011-05-10 Cisco Technology, Inc. System and method for providing a proxy in a short message service (SMS) environment
US9325456B2 (en) * 2005-03-22 2016-04-26 Intel Corporation Method and apparatus for delayed recovery for block acknowledgement bursting in a wireless network
US20070005833A1 (en) * 2005-06-30 2007-01-04 Pak-Lung Seto Transmit buffers in connection-oriented interface
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
US7760733B1 (en) * 2005-10-13 2010-07-20 Chelsio Communications, Inc. Filtering ingress packets in network interface circuitry
US20070091900A1 (en) * 2005-10-20 2007-04-26 Nokia Corporation Prioritized control packet delivery for transmission control protocol (TCP)
JP4878185B2 (ja) 2006-03-17 2012-02-15 株式会社リコー データ通信回路および調停方法
US20070268825A1 (en) * 2006-05-19 2007-11-22 Michael Corwin Fine-grain fairness in a hierarchical switched system
DE102006037243B4 (de) * 2006-08-09 2010-06-02 Siemens Ag Netzwerk zur drahtlosen Übertragung von Daten
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
US7831720B1 (en) 2007-05-17 2010-11-09 Chelsio Communications, Inc. Full offload of stateful connections, with partial connection offload
US8775587B2 (en) * 2007-05-18 2014-07-08 International Business Machines Corporation Physical network interface selection to minimize contention with operating system critical storage operations
US7936772B2 (en) * 2007-07-13 2011-05-03 International Business Machines Corporation Enhancement of end-to-end network QoS
US8233391B2 (en) * 2007-08-21 2012-07-31 International Business Machines Corporation System, method and computer program product for transmitting data entities
TWI469055B (zh) * 2008-06-27 2015-01-11 Realtek Semiconductor Corp 網路工作卸載裝置與方法
US8327014B2 (en) * 2008-06-30 2012-12-04 Cisco Technology, Inc. Multi-layer hardware-based service acceleration (MHSA)
CN101674335B (zh) * 2008-09-12 2014-01-08 瑞昱半导体股份有限公司 具有多个传输端口的单一网络接口装置
US20100165838A1 (en) * 2008-12-30 2010-07-01 Yury Bakshi Method and apparatus for improving data throughput in a network
US8621627B1 (en) 2010-02-12 2013-12-31 Chelsio Communications, Inc. Intrusion detection and prevention processing within network interface circuitry
CN103023811B (zh) * 2011-09-21 2018-04-10 中兴通讯股份有限公司 队列调度策略的切换方法及装置
US9507746B2 (en) 2012-10-22 2016-11-29 Intel Corporation Control messaging in multislot link layer flit
WO2014065879A1 (en) 2012-10-22 2014-05-01 Venkatraman Iyer High performance interconnect physical layer
US9419902B1 (en) 2013-12-30 2016-08-16 Google Inc. Method and system for network micro flow control
US9800509B2 (en) * 2014-02-20 2017-10-24 Uvic Industry Partnerships Inc. System and method for efficient transport of large data files
US20150281109A1 (en) * 2014-03-30 2015-10-01 Sachin Saxena System for en-queuing and de-queuing data packets in communication network
CN106067865B (zh) * 2016-05-25 2019-05-24 北京百度网讯科技有限公司 数据报文的转发方法和装置
US10148576B2 (en) * 2016-07-28 2018-12-04 Fortinet, Inc. Network processing unit (NPU) integrated layer 2 network device for layer 3 offloading
US10963309B2 (en) * 2016-09-16 2021-03-30 Advanced Micro Devices, Inc. Network interface controller-based scheduling of processing tasks in a distributed computing system
US10638418B2 (en) * 2016-11-04 2020-04-28 Ford Global Technologies, Llc Method and apparatus for data transfer connection management
US10764201B2 (en) 2017-11-28 2020-09-01 Dornerworks, Ltd. System and method for scheduling communications
CN109904159A (zh) 2017-12-08 2019-06-18 联华电子股份有限公司 半导体元件
CN108388526B (zh) * 2018-01-19 2021-01-05 深圳市金玺智控技术有限公司 一种读取控制器数据的方法和系统
WO2020258263A1 (zh) * 2019-06-28 2020-12-30 北京小米移动软件有限公司 小区重选方法、装置及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI91695C (fi) * 1992-10-05 1994-07-25 Nokia Telecommunications Oy Menetelmä liikenteen priorisoimiseksi runkoverkon kautta yhteen liitettyjen lähiverkkojen välillä
US6791947B2 (en) * 1996-12-16 2004-09-14 Juniper Networks In-line packet processing
US5850398A (en) * 1996-12-30 1998-12-15 Hyundai Electronics America Method of scheduling data cell transmission in an ATM network
US5930525A (en) * 1997-04-30 1999-07-27 Adaptec, Inc. Method and apparatus for network interface fetching initial and data burst blocks and segmenting blocks and scheduling blocks compatible for transmission over multiple virtual circuits
US6904519B2 (en) * 1998-06-12 2005-06-07 Microsoft Corporation Method and computer program product for offloading processing tasks from software to hardware
JP3704438B2 (ja) * 1998-12-09 2005-10-12 株式会社日立製作所 可変長パケット通信装置
US6747949B1 (en) * 1999-05-21 2004-06-08 Intel Corporation Register based remote data flow control
US6938097B1 (en) * 1999-07-02 2005-08-30 Sonicwall, Inc. System for early packet steering and FIFO-based management with priority buffer support
US6754223B1 (en) * 1999-08-17 2004-06-22 Conexant Systems, Inc. Integrated circuit that processes communication packets with co-processor circuitry to determine a prioritized processing order for a core processor
US6327625B1 (en) * 1999-11-30 2001-12-04 3Com Corporation FIFO-based network interface supporting out-of-order processing
US6975638B1 (en) * 2000-10-13 2005-12-13 Force10 Networks, Inc. Interleaved weighted fair queuing mechanism and system
JP4605911B2 (ja) * 2001-01-24 2011-01-05 富士通株式会社 パケット送出装置
US8218555B2 (en) * 2001-04-24 2012-07-10 Nvidia Corporation Gigabit ethernet adapter
US6842423B1 (en) * 2001-05-02 2005-01-11 Advanced Micro Devices, Inc. Systems and methods for priority-based flow control masking
US7535913B2 (en) 2002-03-06 2009-05-19 Nvidia Corporation Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols
US7126959B2 (en) * 2002-03-12 2006-10-24 Tropic Networks Inc. High-speed packet memory

Also Published As

Publication number Publication date
DE602004015400D1 (de) 2008-09-11
EP1545090B1 (en) 2008-07-30
US20050135396A1 (en) 2005-06-23
US8542585B2 (en) 2013-09-24
TW200623763A (en) 2006-07-01
EP1545090A1 (en) 2005-06-22
US20110307577A1 (en) 2011-12-15
US8009563B2 (en) 2011-08-30
CN1642172A (zh) 2005-07-20
TWI262690B (en) 2006-09-21

Similar Documents

Publication Publication Date Title
CN100544353C (zh) 为多层网络接口控制器操作传输调度的方法和系统
CN100552626C (zh) 用网络栈同步和上载已卸载网络栈连接的方法
US8441931B2 (en) Method and device for managing priority during the transmission of a message
US5577211A (en) System and method using chained structure queues for ordering of message delivery between connected nodes wherein unsuccessful message portion is skipped and retried
Arvind et al. A local area network architecture for communication in distributed real-time systems
KR100883405B1 (ko) 공유된 속성들에 근거하여 압축된 큐 쌍으로부터 다중의가상 큐 쌍들을 생성하는 장치
US7028204B2 (en) Method and apparatus for ethernet prioritized device clock synchronization
CN111030835B (zh) 一种ttfc网络的任务调度模型及消息调度表生成方法
CN105103524B (zh) 用于实现网络中的高利用率的方法和系统
CN1989738A (zh) 最低保证调度速率的传播
CN103081434A (zh) 智能存储器
CN107533481A (zh) 在具有硬件加速平面和软件平面的系统中提供服务
Shin et al. Design and evaluation of real-time communication for fieldbus-based manufacturing systems
Wu et al. Deep reinforcement learning for scheduling in an edge computing-based industrial internet of things
CN100593312C (zh) 使用定额和差额值进行调度
CN113765825B (zh) 一种链式业务流调度的规划方法和系统架构
CN111385222A (zh) 实时、时间感知、动态、情境感知和可重新配置的以太网分组分类
CN100414530C (zh) 处理多网络连接上的定序记录的设备和方法
US7395356B2 (en) Methods and apparatus for moving data elements within a data communications device
CN101635639B (zh) 一种网络连接跟踪方法及其系统
EP0935192A1 (en) Method and system for communication between application programs and a network
CN100450071C (zh) 用于在基于碰撞识别的通信网络中实时数据交换的通信方法、相应的存储媒体和通信网络
CN1695363B (zh) 为分组处理确定时钟信号的方法和系统
Bogushevsky et al. The time-out length influence on the available bandwidth of the selective failure mode of transport protocol in the load data transmission path
Campbell Cyclical queueing systems

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180510

Address after: Singapore Singapore

Patentee after: Avago Technologies Fiber IP Singapore Pte. Ltd.

Address before: Irvine, California, USA

Patentee before: Zyray Wireless Inc.

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: 20090923

Termination date: 20171220