[go: up one dir, main page]

CN100403732C - 防止数据分组的无序传送的方法 - Google Patents

防止数据分组的无序传送的方法 Download PDF

Info

Publication number
CN100403732C
CN100403732C CNB2005100728999A CN200510072899A CN100403732C CN 100403732 C CN100403732 C CN 100403732C CN B2005100728999 A CNB2005100728999 A CN B2005100728999A CN 200510072899 A CN200510072899 A CN 200510072899A CN 100403732 C CN100403732 C CN 100403732C
Authority
CN
China
Prior art keywords
fragment
information block
grouping
lists
links
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
CNB2005100728999A
Other languages
English (en)
Other versions
CN1700675A (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.)
Google LLC
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1700675A publication Critical patent/CN1700675A/zh
Application granted granted Critical
Publication of CN100403732C publication Critical patent/CN100403732C/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
    • 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/166IP fragmentation; TCP segmentation
    • 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
    • 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 Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种对从具有几个处理部件的路由器到接收处理设备的信息分组的传送进行排序的方法,其中必须按照分组到达路由器的顺序完成分组的传送。按照在路由器接收所述分组的顺序,形成分组的链接列表,每个分组被分成连续的多个片段。在路由器处理每个片段。依据收到分组的顺序标记每个链接列表中的每个分组的最后片段,并按照关于每个链接列表上的每个最后片段标记的顺序排队。随着处理而将每个分组的每个片段传送给接收处理设备,在其链接列表上的每个分组的最后片段除外,之后,只有当每个分组的最后片段位于队列的头部时,才传送处理后的每个分组的最后片段。

Description

防止数据分组的无序传送的方法
技术领域
本发明涉及信息分组的方法,特别涉及通过路由器传送信息的信息分组的方法。
背景技术
在通过路由器传送信息的典型处理器设备(processor installation)中,当多个信息分组被指定给同一位置时,必须按照接收顺序传送每个分组。当在路由器有且仅有一个处理部件时,这不会造成任何问题。即,如果具有相同目的地地址的两个分组P1和P2到达路由器的相同端口,P1在P2之前到达,并且如果P1和P2都将通过相同端口转发,那么P1应在P2之前在目的地端口传送。即,路由器不应在传送P1之前传送P2。离开顺序应和到达顺序相同。这是重要的,因数当最终的目的地主机收到无序分组时,它隐含地假定还未到达的在前分组是丢失的分组,进而假定网络拥塞正在导致分组丢失,并减小TCP(传输控制协议)窗口。这将通信中涉及的端点之间的有效通信带宽减至最小。
如果只存在一个处理所有分组的处理器部件,那么它顺序处理分组,从而,不存在保持序列的任何问题。但是,现代连网设备具有同时转发分组,以便增大吞吐量的多个处理部件。
作为一个例子,考虑下述情形:
分组1和分组2均具有相同的目的地地址,并且按照该相同的顺序到达相同的端口。分组1被分配给PE 1进行处理,分组2被分配给PE 2进行处理,在转发数据分组之前所述处理是必需的。一般来说,PE 2可能比PE 1处理完其分组更快地处理完分组2。如果不采取恰当的步骤,PE 2将在PE 1能够传送P1之前把P2传送出系统。这种情形导致无序传送。如果在路由器有且仅有一个处理部件,那么通过完全按照收到分组的顺序处理这些分组,易于解决该问题。
在IBM的其中存在多个处理部件的PowerNP体系结构中,通过利用完成单元标签(completion unit label)解决无序传送的问题。当分组进入系统时,在它被传送给PE之一之前,它被归入通信流中,并被分配“完成单元标签”。属于相同通信流的分组将接收相同的完成单元标签。
在上面的例子中,P1和P2将接收相同的完成单元标签,并且PE的链接列表将被附到该标签上。当P1被分配给PE T1时,T1将位于链接列表的头部。随后,当P2被分配给PE T2时,T2将在尾部被附加在链接列表上。当PE完成分组的处理时,它将试图通过调用命令“借助标签排队”(enqueue with label)传送该帧。这意味着当且仅当正在进行“借助标签排队”尝试的PE位于对应标签的PE队列的头部时,完成单元才将把该帧传送出该端口。在传送该帧之后,该PE将从PE队列的头部被除去。这图解说明于图1中。
如图1中所示,分组1和2属于相同的流。分组1首先到达,随后分组2到达。分组3和4属于相同的流。分组3首先到达,随后分组4到达。分组1被分配给PE1。系统把标签L1分配给分组1和2,因为它们属于同样但却不同的通信流。类似地,标签L2被分配给分组3和4(一般来说,L1将不等于L2)。PE1位于关于标签L1的链接列表的头部,因为它被分配在前到达的分组。出于相同的原因,PE3位于关于L2的列表的头部。当PE完成处理时,当且仅当它们位于列表的头部时,它们才被允许传送分配给它们的分组。这防止分组的无序传输。
但是,这并不解决分组分段(fragmentation)的问题。即,PE把它正在处理的分组分成多个片段(fragment),PE不得不进行多个“排队”操作,以传送它所产生的所有片段。即,P1和P2顺序到达,并被分配给PE PE1和PE2。现在,PE1决定把P1分裂成P1-1、P1-2...P1-m,类似地,PE2决定把P2分裂成P2-1、P2-2...P2-m。出现在不强制人工排序的情况下,如何保持顺序传送的问题。例如,在传送P2的任意片段之前传送P1的所有片段是相当限制性的。实际上要求按照相同的顺序传送P1-1~P1-m。
发明内容
提供一种对从具有多个处理部件的第一处理器设备的路由器到第二处理器设备的信息分组的传送进行排序(sequence)的方法,其中必须按照所述分组到达第一处理器设备的顺序完成所述信息分组的传送。该方法包括下述步骤:按照PE被授权处理分组的顺序,形成PE的链接列表,授权处理分组的顺序是在第一处理器设备收到分组的顺序,并把每个信息分组分成连续的多个片段。在第一处理器设备处理每个片段。每个链接列表中的每个信息分组的最后片段依据收到分组的顺序被标记,并按照对每个链接列表上的每个最后片段标记的顺序被排队(enqueue)。链接列表中的每个分组信息的每个片段随着在给定的链接列表中在所述第一处理器设备被处理而被传送给所述第二处理器设备,链接列表上的每个分组的最后片段除外。之后,当且仅当每个分组的最后片段位于队列的头部时,传送处理后的每个分组的最后片段,当被传送时从队列除去该最后片段,并在所述第二处理器设备收到所述指定信息分组的所有片段之后,在所述第二处理器设备由所述片段重新装配每个分组信息。
附图说明
图1是传送信息分组的一种现有技术的示意图;
图2是根据本发明的信息分组的链接列表的分段和传送技术的流程图。
具体实施方式
根据本发明,提供一种从信息处理设备,例如IBMPowerNP体系结构中的路由器传送PE的链接列表的改进方法。在路由器收到信息的每个分组P1-Pn之后,根据将传送它的端口,它被给予一个完成单元标签,并被分配PE。对于具有相同标签的分组P,产生PE的链接列表。每个链接列表中的每个分组P或PE随后被分段。在链接列表中存在两个分组的情况下,存在片段P1-2,P1-2~P1-m,和P2-1,P2-2~P2-n。但是,只有每个PE中的最后分组P1-m和P2-n收到该标签。其它片段收不到该标签。在每个P1和P2把分组顺序分成片段P1-1~P1m-1和P2~P2n-1之后,这些片段被传送,而不带完成单元标签,并且这些片段最好按照在每个PE中分段的顺序被传送,而不考虑在其它PE中,片段P1-1~P1-m-1和P2-2~P2-n-1的传输顺序。用完成单元标签标记每个分组的最后片段,即P1-m和P2-n,如同现有技术中一样,并且当且仅当每个链接表中每个片段的最后分组位于队列的头部,且该片段所位于的分组P1或P2的所有其它片段均已被传送时,才能传送每个链接列表中每个片段的最后分组。从而避免无序传送,因为除了下述之外,分组1和2的片段按照任意顺序到达最终目的地:
1)分组1的最后片段在分组2的最后片段之前到达。
2)分组1的其它片段在分组1的最后片段之前到达。
3)分组2的其它片段在分组2的最后片段之前到达。
位于最终目的地的处理部件将开始把片段重新装配成一个完整的分组,一旦它收到属于该分组的所有片段。由于上述条件,最终目的地能够并将在分组2之前重新装配分组1。图2中图解说明了这种方法。从而可看出,除了最后的片段之外,每个分组的各个片段可在路由器的处理部件被处理,并且一旦它们被处理就被传送给目的地,而与该分组位于队列中什么位置无关。只有当队列中的分组的最后片段被处理时,才参考完成单元标签,确定传输的最终顺序的只是指定队列中的分组的最后片段。这允许要传送的分组的多数片段(即除了最后片段之外的所有片段)的传输,而不考虑该分组存在于队列中的什么位置,所述分组从该位置被分段,并且通过按照所需的顺序控制每个分组的最后片段的传输,仍然保持在接收处理器设备接收的数据分组的正确顺序。
当然,根据将从其传送数据分组的端口的数目,可产生多个链接列表。另外,链接列表中仅使用两个信息分组只是例证性的,可包括两个以上的分组,要求是对于特定的链接列表,按照接收的顺序标记,并按照接收的顺序传送每个分组的最后片段。
虽然这里说明了本发明的优选实施例,不过可做出各种设计方面的变化,并且对于计算机体系结构、系统和方法领域的技术人员,以及对于其它领域的技术人员来说,这种的变化是显而易见的。本发明决不局限于上面举例说明的具体编程语言和例证的编程命令,本领域的技术人员易于想到其它软件和硬件实现。于是,本发明的范围只由下面的权利要求限定。

Claims (3)

1.一种对从具有第一处理器设备的路由器到第二处理器设备的一系列信息分组的传送进行排序的方法,第一处理器设备具有多个处理部件,其中必须按照所述信息分组到达第一处理器设备的顺序完成所述信息分组的传送,所述方法包括下述步骤:
按照在所述第一处理器设备接收所述信息分组的顺序,形成信息分组的链接列表;
把每个信息分组分成连续的多个片段,并在所述第一处理器设备处理每个片段;
依据收到所述信息分组的顺序标记每个链接列表中的每个信息分组的最后片段,并对关于每个链接列表中的每个最后片段标记的顺序排队;
随着在给定的链接列表上在所述第一处理器设备处理每个信息分组的每个片段,将每个信息分组的每个片段传送给所述第二处理器设备,所述链接列表上每个信息分组的最后片段除外;
之后,当且仅当每个信息分组的最后片段位于所述链接列表中队列的头部时,传送处理后的每个信息分组的最后片段,并且当所述最后片段被传送时将所述最后片段从队列除去;和
在所述第二处理器设备收到所述给定信息分组的所有片段之后,在所述第二处理器设备从所述片段重新装配每个信息分组。
2.按照权利要求1所述的方法,其中存在多个链接列表,其中从每个链接列表传送多个信息分组。
3.按照权利要求1所述的方法,其中每个信息分组的片段按照其被分段的顺序传送。
CNB2005100728999A 2004-05-20 2005-05-17 防止数据分组的无序传送的方法 Expired - Fee Related CN100403732C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/850,296 US7333493B2 (en) 2004-05-20 2004-05-20 Method for prevention of out-of-order delivery of data packets
US10/850,296 2004-05-20

Publications (2)

Publication Number Publication Date
CN1700675A CN1700675A (zh) 2005-11-23
CN100403732C true CN100403732C (zh) 2008-07-16

Family

ID=35375080

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100728999A Expired - Fee Related CN100403732C (zh) 2004-05-20 2005-05-17 防止数据分组的无序传送的方法

Country Status (2)

Country Link
US (1) US7333493B2 (zh)
CN (1) CN100403732C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7327759B2 (en) * 2001-07-25 2008-02-05 International Business Machines Corporation Sequence-preserving deep-packet processing in a multiprocessor system
CN101860487A (zh) * 2010-05-28 2010-10-13 中兴通讯股份有限公司 互联网协议ip分片报文的转发方法及接口板

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173386B1 (en) * 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
CN1300492A (zh) * 1998-05-13 2001-06-20 艾利森电话股份有限公司 提高数据流量的方法和装置
US6654373B1 (en) * 2000-06-12 2003-11-25 Netrake Corporation Content aware network apparatus

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8526620D0 (en) 1985-10-29 1985-12-04 British Telecomm Communications network
DE69227736T2 (de) 1991-08-30 1999-04-29 Nec Corp., Tokio/Tokyo Einfügen des "virtueller untergeordneter Pfad ist leer" Signals unter Verwendung des Zeitschlitzvermittlungsverfahrens
US5311516A (en) 1992-05-29 1994-05-10 Motorola, Inc. Paging system using message fragmentation to redistribute traffic
US5920705A (en) 1996-01-31 1999-07-06 Nokia Ip, Inc. Method and apparatus for dynamically shifting between routing and switching packets in a transmission network
US6026093A (en) 1997-10-02 2000-02-15 Sun Microsystems, Inc. Mechanism for dispatching data units via a telecommunications network
JP3480801B2 (ja) 1997-12-05 2003-12-22 株式会社東芝 パケット転送方法及びノード装置
US6341129B1 (en) 1998-04-03 2002-01-22 Alteon Networks, Inc. TCP resegmentation
US6331978B1 (en) 1999-03-09 2001-12-18 Nokia Telecommunications, Oy Generic label encapsulation protocol for carrying label switched packets over serial links
US6661794B1 (en) * 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6381242B1 (en) 2000-08-29 2002-04-30 Netrake Corporation Content processor
US6937606B2 (en) * 2001-04-20 2005-08-30 International Business Machines Corporation Data structures for efficient processing of IP fragmentation and reassembly
US6741595B2 (en) * 2002-06-11 2004-05-25 Netrake Corporation Device for enabling trap and trace of internet protocol communications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1300492A (zh) * 1998-05-13 2001-06-20 艾利森电话股份有限公司 提高数据流量的方法和装置
US6173386B1 (en) * 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6654373B1 (en) * 2000-06-12 2003-11-25 Netrake Corporation Content aware network apparatus

Also Published As

Publication number Publication date
US20050259659A1 (en) 2005-11-24
CN1700675A (zh) 2005-11-23
US7333493B2 (en) 2008-02-19

Similar Documents

Publication Publication Date Title
US9270595B2 (en) Method and system for controlling a delay of packet processing using loop paths
CN104885422B (zh) 在并行处理网络设备中维持分组顺序的方法和设备
US7680126B2 (en) Two-dimensional pipelined scheduling technique
CN1874321B (zh) 传送装置和传送方法
US7512945B2 (en) Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor
US7721086B2 (en) Packet-parallel high performance cryptography systems and methods
US8588242B1 (en) Deficit round robin scheduling using multiplication factors
US9036654B2 (en) Packet sharing data transmission system and relay to lower latency
JP2003023437A (ja) パケット処理装置
CN102739651B (zh) 自动化系统
WO2014015498A1 (zh) 报文发送方法、接收方法、装置及系统
CN100403732C (zh) 防止数据分组的无序传送的方法
CN103283193A (zh) 用于接收和转发数据的装置和方法
CN101803303A (zh) 用于管理分段数据分组传输的方法和系统
US6714554B1 (en) Method and system for sorting packets in a network
US20020080795A1 (en) Packet switching arrangement comprising a cascade control and bufferless cascade switching matrix
US20090141712A1 (en) Router device
KR20120102722A (ko) 데이터 패킷들을 판독 및 순서화하는 복수의 분석 수단을 동작시키는 장치, 어셈블리, 및 방법
CN109327405A (zh) 报文保序方法及网络设备
US20080144495A1 (en) Early multilink traffic throttling for data communication node
CN105164984B (zh) 保持并行处理网络设备中的分组顺序的方法和设备
Yang et al. A simple re-sequencing load-balanced switch based on analytical packet reordering bounds
CN114157399B (zh) 一种tcp反馈包ack包的优化方法、装置以及系统
WO2007074423A2 (en) Method and system for byte slice processing data packets at a packet switch
JP4962083B2 (ja) Rprノード装置および公平性制御方法およびrpr通信システム

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
ASS Succession or assignment of patent right

Owner name: GOOGLE INC.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORP.

Effective date: 20120503

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120503

Address after: American California

Patentee after: Google Inc.

Address before: American New York

Patentee before: International Business Machines Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080716

Termination date: 20150517

EXPY Termination of patent right or utility model