CN1633647A - 用于管理网络中的数据传送的系统、方法和产品 - Google Patents
用于管理网络中的数据传送的系统、方法和产品 Download PDFInfo
- Publication number
- CN1633647A CN1633647A CNA038039958A CN03803995A CN1633647A CN 1633647 A CN1633647 A CN 1633647A CN A038039958 A CNA038039958 A CN A038039958A CN 03803995 A CN03803995 A CN 03803995A CN 1633647 A CN1633647 A CN 1633647A
- Authority
- CN
- China
- Prior art keywords
- end node
- logic
- instance number
- bag
- formation
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 230000015572 biosynthetic process Effects 0.000 claims description 133
- 230000005540 biological transmission Effects 0.000 claims description 47
- 230000004044 response Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 6
- 238000005755 formation reaction Methods 0.000 description 124
- 230000008569 process Effects 0.000 description 52
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 239000004744 fabric Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Radar Systems Or Details Thereof (AREA)
- Small-Scale Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- General Factory Administration (AREA)
- Computer And Data Communications (AREA)
Abstract
一种在一数据处理系统中用于管理从该数据处理系统中包括的第一端节点传送到第二端节点的数据的方法、系统和产品。在该第一端节点和该第二端节点之间传送数据之前在这两个端节点之间建立一逻辑连接。将一实例号与该逻辑连接相关联,并当这个连接继续存在时在端节点之间传送的每个包中包含该实例号。在这个连接期间该号保持恒定,但是每次在这些节点之间重建一逻辑连接就改变该号,例如递增该号。每个包与该逻辑连接的一特定实例相关联,并且当接收该包时可以使用该号来确定该包是否是在这些端节点之间的以前的逻辑连接中传送的过时的包。
Description
技术领域
本发明一般涉及计算机系统领域,尤其涉及一用于管理网络中的数据传送的数据处理系统、方法和产品。
背景技术
许多现有的计算机系统使用共享总线体系结构,例如外设部件互连(PCI),以便在计算机系统内部在系统的多个处理器和I/O设备之间传送数据。这些现有的共享总线体系结构没有跟得上典型处理器性能的提高。因此,已开发出一种用于在计算机系统内部在处理器和I/O设备之间传送数据的新体系结构,该体系结构通常称为“Infiniband”。这种新体系结构能够提供更大的带宽并且具有增加的可扩充性。
这种新体系结构提供了一种包括基于通道的交换结构(switched-fabric)技术的系统区域网络。在这种系统区域网络(SAN)中,通过由包组成的消息来传送数据。每个设备,无论是处理器还是I/O设备,都包括一通道适配器。消息通过交换机从一个设备的通道适配器传送到另一个设备的通道适配器。每个通道适配器也可称为一“端节点”。
图1描述了根据现有技术的两个端节点,每个端节点包括一队列对。当端节点A 100需要向端节点B 108传送数据时,在包含在端节点A内的一队列对和包含在端节点B内的一队列对之间建立一逻辑连接。然后将数据从端节点A中的队列对的发送队列传送到端节点B中的队列对的接收队列。将响应从端节点B中的队列对的发送队列传送到端节点A中的队列对的接收队列。端节点A 100包括一队列对102。队列对102包括一发送队列104和一接收队列106。端节点B 108包括一队列对110。队列对110包括一接收队列112和一发送队列114。将请求从发送队列发送到接收队列并将响应从接收队列发送回接收队列。请求116由响应118确认。请求120由响应122确认。
可以利用五种不同的传输类型之一来传送消息并因而传输包,这五种传输类型是:可靠连接(RC)、可靠数据报(RD)、不可靠连接(UC)、不可靠数据报(UD)或原始数据报(RawD)。当使用可靠连接传输类型时,每个包中包含序号,并且确认包的传送。
当在两个端节点之间建立一逻辑连接时建立起始序号。每传送一个包,就递增该序号并使该包包含该序号。因此,包的序号用于识别该包在包序列中的位置。
在现有技术中,每个包中包括一组特殊的位或一字段以表示该序号。因此序号就是这整个一组位。
请求116中包含的包序号(PSN)与响应118中包含的包序号是相同的。请求120中包含的包序号(PSN)与响应122中包含的包序号是相同的。请求116和响应118中包含的包序号与请求120和响应122中包含的包序号没有关系,尽管它们都使用同一组队列对。
通常,每传送一个请求包,请求者节点就将该PSN加1。响应者节点将接收到的请求中的PSN与其自身的PSN(希望的PSN)相比较,对于其自身的PSN,响应者每接收一个请求包也加1。如果两个PSN匹配,则然后响应者可使用与正在确认的请求包中的PSN相同的PSN发送一个对该请求的响应(确认)。然后再在请求者中,将该响应包中的PSN与请求者的响应PSN进行比较,来查看该响应包中的PSN是否与请求者自身的响应PSN(希望的PSN)相同,对于其自身的响应PSN,请求者也加1。
允许请求者发送多个包而不接收一响应包。请求者可能在若干时间后接收到响应包,但是这些响应包中的PSN要与请求者的响应PSN记数器相比较。如果所有的请求包的PSN与该响应者的内部的PSN相匹配而且所有的响应包的PSN与该请求者的内部的PSN相匹配,则所有包已成功地从一个端节点传送到另一个端节点(从一发送队列到一接收队列)。
在响应者中必须检测到并解决两种不正常的情况,以确保可靠操作。第一种情况是重复的包,第二种情况是无效的包。
当请求者不止一次地发送一请求包时,在响应者中检测到重复的包。当该请求者检测到包可能已丢失时,它将不止一次地发送包。图2示出了根据现有技术传送重复的包的梯形图。端节点200传送包括PSN=1的请求包204,并且响应者即端节点202接收请求包204。包括PSN=1的响应即确认206或者丢失或者延迟。在这种情况下,请求者即端节点200检测到一超时情况并重新发送包括相同的PSN(PSN=1)的与请求208相同的请求。响应者即端节点202确定该PSN是重复的(即该请求有一个比端节点202的内部计数“早”的PSN),并且该响应者再次发送响应,作为具有相同的PSN(PSN=1)的确认210。
当响应者接收到一个具有一在该响应者内部计数“前面”的PSN的包时,在响应者中检测到无效的包。图3示出了根据现有技术接收无效的包的梯形图。请求者即端节点300传送一个包括PSN=1的请求304、一个包括PSN=2的请求308和一个包括PSN=3的请求310。请求304被包括PSN=1的确认306正确地确认。包括PSN=2的请求308在该结构中丢失。因此响应者即端节点302看到具有PSN=1的请求304,后面跟着具有PSN=3的请求310。因此请求310是一个无效的包。这种情况下,响应者即端节点302重新发送针对PSN=1的请求包的确认312,并且请求者从具有PSN=2的请求314开始重新发送所有包。
在请求者中,响应包具有类似的规则。请求者检测到的重复的包被丢弃掉。只有当一请求包没有丢失而只是在该结构中延迟了足够长的时间而导致该请求者重新发送该包时,这种情况才会发生。具有重复的PSN的第二个响应被丢弃。当在该结构中多个包响应中的一个或多个包丢失时,请求者中会出现无效的PSN。在这种情况下,请求者再次发送请求。
PSN使用包含在每个包中的传输报头中的固定并数量有限的位。因此,当生成PSN的计数器从它们的最大值返回零时,可以连续地再利用这些PSN。通过使用一个远大于可能的未完成的包的数量的PSN,请求者和响应者就建立了处于重复和无效范围内一个包序号范围。
当正在包的传送过程中两个端节点间的逻辑连接被终止(断开)并且随后被重建时,PSN会出现问题。这种情况下,来自旧的、过时的连接的包可能到达响应者。当这个包实际是来自旧的连接的过时的包时,该响应者可能将这个包认为是一有效的包。
现有技术中描述的一种解决方法是在断开特定的两组队列对之间的逻辑连接和在该相同的两组队列对之间重建新的逻辑连接之间添加等待状态。因此,端节点等待足够长的时间以使得来自旧的连接的所有可能的过时的包到期。尽管这种方法确实解决了这个问题,但是它会严重影响端节点的性能,特别是当经常断开连接然后重建连接时尤其是这样。
因此,需要一种有效地管理网络中的数据传送的方法、系统和产品。
发明内容
在第一个方面,本发明提供了一种用于在一数据处理网络中管理从第一端节点传送到第二端节点的数据的方法。所述方法包括下列步骤:在所述第一端节点和第二端节点之间传送数据之前,在所述第一端节点和第二端节点之间建立一逻辑连接;使一实例号与所述逻辑连接相关联;当所述逻辑连接保持存在时使所述第一端节点和第二端节点之间传送的每个包包含所述实例号,在所述逻辑连接期间所述实例号保持恒定。
该方法优选地还包括下列步骤:在所述第一和第二端节点之间重建所述逻辑连接;递增所述实例号,所述递增的实例号与所述重建的逻辑连接相关联;在所述重建的逻辑连接期间使所述第一端节点和第二端节点之间传送的每个包包含所述递增的实例号,在所述重建的逻辑连接期间所述递增的实例号保持恒定。
优选地,在所述第一和第二端节点之间建立一逻辑连接的步骤还包括下列步骤:使所述第一端节点内的一队列对与所述第二端节点内的一队列对相关联。
优选地,使所述第一端节点内的一队列对与所述第二端节点内的一队列对相关联的步骤还包括下列步骤:在所述第一端节点内建立一个队列对表;在所述表内存储表示所述第一端节点内的所述队列对与所述第二端节点内的所述队列对之间的关联性的指示。
该方法优选地还包括下列步骤:利用一特定的逻辑连接从所述第二端节点向所述第一端节点传送包;利用所述第一端节点接收所述包;利用所述表确定以前是否已建立过所述特定逻辑连接。
优选地,使用所述表确定以前是否已建立过所述特定逻辑连接的步骤还包括下列步骤:确定一个指示是否保存在所述表中,所述指示表示了所述第一端节点中的一队列对和所述第二端节点中的一队列对之间的关联性。
该方法优选地还包括下列步骤:在所述逻辑连接期间使所述第一端节点和第二端节点之间传送的每个包中的一传输报头包含所述实例号。
该方法优选地还包括下列步骤:在所述逻辑连接期间使所述第一端节点和第二端节点之间传送的每个包中的一传输报头中的一序号字段包含所述实例号。
该方法优选地还包括下列步骤:在所述逻辑连接期间使所述第一端节点和第二端节点之间传送的包中包含的每个序号包含所述实例号。
该方法优选地还包括下列步骤:确定所述逻辑连接是否是所述第一和第二端节点之间的第一逻辑连接;响应于确定所述逻辑连接是第一逻辑连接:使一实例号与所述逻辑连接相关联;在所述逻辑连接期间使所述第一和第二端节点之间传送的每个包包含所述实例号,在所述逻辑连接期间所述实例号保持恒定;并将所述实例号用作一当前的实例号;以及响应于确定所述逻辑连接不是第一逻辑连接:递增所述当前的实例号;将所述递增的当前的实例号用作一当前的实例号;并在所述逻辑连接期间使所述第一和第二端节点之间传送的每个包包含所述递增的当前的实例号。
该方法优选地还包括下列步骤:终止所述逻辑连接;在所述第一和第二端节点之间重建所述逻辑连接,在终止所述逻辑连接和重建所述逻辑连接之间不执行等待状态。
该方法优选地还包括下列步骤:从所述第一端节点向所述第二端节点传送包;以及在所述包中包含一当前的实例号。
该方法优选地还包括下列步骤:所述第二端节点接收包;利用所述第二端节点识别包含在所述接收的包中的一实例号;确定一当前的实例号;确定包含在所述接收的包中的所述实例号是否是所述当前的实例号;响应于确定包含在所述接收的包中的所述实例号是所述当前的实例号,由所述第二端节点正常处理所述包;以及响应于确定包含在所述接收的包中的所述实例号不是所述当前的实例号,由所述第二端节点丢弃所述包。
该方法优选地还包括下列步骤:在建立所述逻辑连接后,所述第一端节点设定一序号;从所述第一端节点向所述第二端节点每传送一个包后递增所述序号;从所述第一端节点向所述第二端节点每传送一个包后,设定当前的序号等于所述递增的序号;以及使从所述第一端节点向所述第二端节点传送的每个包包含当前的序号。
在第二个方面,本发明提供了一种用于在一数据处理系统中管理从第一端节点传送到第二端节点的数据的方法,所述方法包括下列步骤:在所述第一和第二端节点之间传送数据之前在所述第一端节点和所述第二端节点之间建立一逻辑连接;使从所述第一端节点向第二端节点传送的每个包包含一当前的序号,从所述第一端节点向所述第二端节点每传送一个包就递增所述当前的序号;使一实例号与所述逻辑连接相关联;以及使每个序号包含所述实例号,所述实例号在所述逻辑连接期间保持恒定。
该方法优选地还包括下列步骤:在所述第一和第二端节点之间重建所述逻辑连接;递增所述实例号,使所述递增的实例号与所述重建的逻辑连接相关联;以及使每个序号包含所述递增的实例号,所述递增的实例号在所述重建的逻辑连接期间保持恒定。
优选地,在所述第一端节点和所述第二端节点之间建立一逻辑连接的步骤还包括下列步骤:使所述第一端节点内的一队列对与所述第二端节点内的一队列对相关联。
优选地,使所述第一端节点内的一队列对与所述第二端节点内的一队列对相关联的步骤还包括下列步骤:在所述第一端节点内建立一个队列对表;以及在所述表中存储表示所述第一端节点内的所述队列对与所述第二端节点内的队列对之间的关联性的指示。
该方法优选地还包括下列步骤:利用一特定的逻辑连接从所述第二端节点向所述第一端节点传送包;利用所述第一端节点接收所述包;利用所述表来确定以前是否已建立过所述特定逻辑连接。
优选地,利用所述表来确定以前是否已建立过所述特定逻辑连接的步骤还包括下列步骤:确定一个指示是否保存在所述表中,所述指示表示了所述第一端节点中的一队列对和所述第二端节点中的一队列对之间的关联性。
该方法优选地还包括下列步骤:确定所述逻辑连接是否是所述第一和第二端节点之间的第一逻辑连接;响应于确定所述逻辑连接是第一逻辑连接:使一实例号与所述逻辑连接相关联;在所述逻辑连接期间使在所述第一和第二端节点之间传送的每个序号包含所述实例号;并使用所述实例号作为一当前的实例号;以及响应于确定所述逻辑连接不是第一逻辑连接:递增所述当前的实例号;使用所述递增的当前的实例号作为一当前的实例号;并在所述逻辑连接期间使在所述第一和第二端节点之间传送的每个序号包含所述递增的当前的实例号。
该方法优选地还包括下列步骤:终止所述逻辑连接;以及在所述第一和第二端节点之间重建所述逻辑连接,在终止所述逻辑连接和重建所述逻辑连接之间不执行等待状态。
该方法优选地还包括下列步骤:所述第二端节点接收包;利用所述第二端节点识别包含在所述接收的包中的一实例号;确定一当前的实例号;确定包含在所述接收的包中的所述实例号是否是所述当前的实例号;响应于确定包含在所述接收的包中的所述实例号是所述当前的实例号,由所述第二端节点正常处理所述包;以及响应于确定包含在所述接收的包中的所述实例号不是所述当前的实例号,所述第二端节点丢弃所述包。
第三个方面,本发明提供一种用于在数据处理系统内管理从第一端节点传送到第二端节点的数据的所述数据处理系统,包括:用于在所述第一和第二端节点之间传送数据之前在所述第一端节点和所述第二端节点之间建立一逻辑连接的装置;用于使一实例号与所述逻辑连接相关联的装置;用于当所述逻辑连接保持存在时使所述第一和第二端节点之间传送的每个包包含所述实例号的装置,在所述逻辑连接期间所述实例号保持恒定。
该系统优选地还包括:用于在所述第一和第二端节点之间重建所述逻辑连接的装置;用于递增所述实例号的装置,所述递增的实例号与所述重建的逻辑连接相关联;用于在所述重建的逻辑连接期间使所述第一和第二端节点之间传送的每个包包含所述递增的实例号的装置,在所述重建的逻辑连接期间所述递增的实例号保持恒定。
优选地,用于在所述第一端节点和第二端节点之间建立一逻辑连接的装置还包括:用于使所述第一端节点内的一队列对与所述第二端节点内的一队列对相关联的装置。
优选地,用于使所述第一端节点内的一队列对与所述第二端节点内的一队列对相关联的所述装置还包括:用于在所述第一端节点内建立一个队列对表的装置;以及用于在所述表内存储表示所述第一端节点内的所述队列对与所述第二端节点内的所述队列对之间的关联性的指示的装置。
该系统优选地还包括:用于利用一特定的逻辑连接从所述第二端节点向所述第一端节点传送包的装置;利用所述第一端节点接收所述包的装置;以及用于利用所述表来确定以前是否已建立过所述特定逻辑连接的装置。
优选地,用于使用所述表来确定以前是否已建立过所述特定逻辑连接的所述装置还包括:用于确定一个指示是否保存在所述表中的装置,所述指示表示了所述第一端节点中的一队列对和所述第二端节点中的一队列对之间的关联性。
该系统优选地还包括:用于在所述逻辑连接期间使所述第一和第二端节点之间传送的每个包中的一传输报头包含所述实例号的装置。
该系统优选地还包括:用于在所述逻辑连接期间使所述第一和第二端节点之间传送的每个包中的一传输报头中的一序号字段包含所述实例号的装置。
该系统优选地还包括:用于在所述逻辑连接期间使所述第一和第二端节点之间传送的包中所包含的每个序号包含所述实例号的装置。
该系统优选地还包括:用于确定所述逻辑连接是否是所述第一和第二端节点之间的第一逻辑连接的装置;响应于确定所述逻辑连接是第一逻辑连接:用于使一实例号与所述逻辑连接相关联的装置;用于在所述逻辑连接期间使所述第一和第二端节点之间传送的每个包包含所述实例号的装置,在所述逻辑连接期间所述实例号保持恒定;和用于使用所述实例号作为一当前的实例号的装置;以及响应于确定所述逻辑连接不是第一逻辑连接:用于递增所述当前的实例号的装置;用于使用所述递增的当前的实例号作为一当前的实例号的装置;和用于在所述逻辑连接期间使所述第一和第二端节点之间传送的每个包包含所述递增的当前的实例号的装置。
该系统优选地还包括:用于终止所述逻辑连接的装置;用于在所述第一和第二端节点之间重建所述逻辑连接的装置,在终止所述逻辑连接和重建所述逻辑连接之间不执行等待状态。
该系统优选地还包括:用于从所述第一端节点向所述第二端节点传送包的装置;用于使所述包包含一当前的实例号的装置。
该系统优选地还包括:用于由所述第二端节点接收包的装置;用于利用所述第二端节点识别包含在所述接收的包中的一实例号的装置;用于确定一当前的实例号的装置;用于确定包含在所述接收的包中的所述实例号是否是所述当前的实例号的装置;响应于确定包含在所述接收的包中的所述实例号是所述当前的实例号,用于由所述第二端节点正常处理所述包的装置;以及响应于确定包含在所述接收的包中的所述实例号不是所述当前的实例号,用于由所述第二端节点丢弃所述包的装置。
该系统优选地还包括:在建立所述逻辑连接后,用于由所述第一端节点设定一序号的装置;用于从所述第一端节点向所述第二端节点每传送一个包就递增所述序号的装置;用于从所述第一端节点向所述第二端节点每传送一个包,就设定当前的序号等于所述递增的序号的装置;以及用于使从所述第一端节点向所述第二端节点传送的每个包包含一当前的序号的装置。
在第四个方面,本发明提供一种用于在一数据处理系统中管理从第一端节点传送到第二端节点的数据的系统,包括:用于在所述第一和第二端节点之间传送数据之前在所述第一端节点和所述第二端节点之间建立一逻辑连接的装置;用于使从所述第一端节点向第二端节点传送的每个包包含一当前的序号的装置,从所述第一端节点向所述第二端节点每传送一个包就递增所述当前的序号;用于使一实例号与所述逻辑连接相关联的装置;以及用于每个序号包含所述实例号的装置,所述实例号在所述逻辑连接期间保持恒定。
该系统优选地还包括:用于在所述第一和第二端节点之间重建所述逻辑连接的装置;用于递增所述实例号的装置,所述递增的实例号与所述重建的逻辑连接相关联;用于使每个序号包含所述递增的实例号的装置,所述递增的实例号在所述重建的逻辑连接期间保持恒定。
优选地,用于在所述第一端节点和所述第二端节点之间建立一逻辑连接的该装置还包括:用于使所述第一端节点内的一队列对与所述第二端节点内的一队列对相关联的装置。
优选地,用于使所述第一端节点内的一队列对与所述第二端节点内的一队列对相关联的该装置还包括:用于在所述第一端节点内建立一个队列对表的装置;用于使用所述表存储表示所述第一端节点内的所述队列对与所述第二端节点内的所述队列对之间的关联性的指示的装置。
该系统优选地还包括:用于利用一特定的逻辑连接从所述第二端节点向所述第一端节点传送一个包的装置;利用所述第一端节点接收所述包的装置;以及用于利用所述表来确定以前是否已建立过所述特定逻辑连接的装置。
优选地,用于利用所述表来确定以前是否已建立过所述特定逻辑连接的所述装置还包括:用于确定一个指示是否保存在所述表中的装置,所述指示表示了所述第一端节点中的一队列对和所述第二端节点中的一队列对之间的关联性。
该系统优选地还包括:用于确定所述逻辑连接是否是所述第一和第二端节点之间的第一逻辑连接的装置;响应于确定所述逻辑连接是第一逻辑连接:用于使一实例号与所述逻辑连接相关联的装置;用于在所述逻辑连接期间使所述第一和第二端节点之间传送的每个序号包含所述实例号的装置;和用于使用所述实例号作为一当前的实例号的装置;以及响应于确定所述逻辑连接不是第一逻辑连接:用于递增所述当前的实例号的装置;用于使用所述递增的当前的实例号作为一当前的实例号的装置;和用于在所述逻辑连接期间使所述第一和第二端节点之间传送的每个序号包含所述递增的当前的实例号的装置。
该系统优选地还包括:用于终止所述逻辑连接的装置;以及用于在所述第一和第二端节点之间重建所述逻辑连接的装置,在终止所述逻辑连接和重建所述逻辑连接之间不执行等待状态。
该系统优选地还包括:用于由所述第二端节点接收一个包的装置;用于利用所述第二端节点识别包含在所述接收的包中的一实例号的装置;用于确定一当前的实例号的装置;用于确定包含在所述接收的包中的所述实例号是否是所述当前的实例号的装置;响应于确定包含在所述接收的包中的所述实例号是所述当前的实例号,用于由所述第二端节点正常处理所述包的装置;以及响应于确定包含在所述接收的包中的所述实例号不是所述当前的实例号,由所述第二端节点丢弃所述包的装置。
在第五个方面,本发明提供一计算机程序,当将该计算机程序加载到一计算机系统并在其上执行时,该计算机程序执行在第一和第二个方面中的任何方法的步骤。该计算机程序的优选特征与在第一和第二个方面中的方法的优选步骤相对应。
公开了一种用于在数据处理系统中管理从包括在该数据处理系统中的第一端节点向第二端节点传送的数据的方法、系统和程序。在该第一和第二端节点之间传送数据之前,在这两个节点之间建立一特定的逻辑连接。使一实例号与这个特定的逻辑连接相关联。当这个逻辑连接保持存在时使在该两个端节点之间传送的每个包包含该实例号。在这个逻辑连接期间该实例号保持恒定。在这些端节点之间每次重建一逻辑连接就改变该实例号,例如递增它。因此每个包与该逻辑连接的一特定实例相关联。当接收到一个包时,可使用该包内包括的实例号来确定该包是否是在这些端节点之间的一个以前的逻辑连接期间传送的一个过时的包。
在一优选实施例中,将该实例号包括作为序号的一部分。根据本发明,将在每个包中被指定为序号的位分成序号位和实例号位。使用该些实例号位来指示实例号,在一特定逻辑连接期间该实例号对于所有的包都保持恒定。使用该些序号位来指示序号,在一特定逻辑连接期间每传送一个包就递增该序号。
在下面详细的文字描述中,将更清楚地了解本发明的上述内容以及本发明其他的目的、特征和优点。
附图说明
现将参照附图并仅作为示例来描述本发明的一优选实施例,在附图中:
图1示出根据本发明的两个端节点,每个端节点包括一队列对;
图2示出一梯形图,该图描述了根据现有技术传送重复的包的情况;
图3示出一梯形图,该图描述了根据现有技术接收一无效的包的情况;
图4示出了一根据本发明的数据处理系统,该系统实现了一用于传送数据的基于通道的交换结构的体系结构;
图5是一根据本发明的主处理器节点的功能框图;
图6示出一根据本发明的分布式计算机系统的一部分,描述了一示例性的请求和确认事务(transaction);
图7示出一根据本发明的分布式计算机系统的一部分,其中使用一可靠连接(RC)服务来实现分布的进程之间的通信;
图8示出一根据本发明的包;
图9示出一高层流程图,该图描述了根据本发明使每个包包括一实例号;以及
图10示出一高层流程图,该图描述了根据本发明一端节点确定一接收到的包是否是在当前的逻辑连接期间传送的。
具体实施方式
本发明的一优选实施例提供了一种在数据处理系统中用于管理从第一端节点向第二端节点传送的数据的方法、系统和产品。在该第一端节点和第二端节点之间传送数据之前在该两个节点之间建立一逻辑连接。该逻辑连接是在该第一端节点中包括的一特定队列对和该第二端节点中包括的一特定队列对之间建立的。
使一实例号与在这两组特定的队列对之间建立的逻辑连接相关联。当该逻辑连接保持存在时使该些端节点之间传送的每个包中都包含该实例号。在这两组队列对之间每次重建一逻辑连接就递增该实例号。该些包还包括包序号,每传送一个包该包序号就递增。
本发明的一优选实施例将该实例号实现为传统的序号的一部分。将为现有技术的序号保留的一组位分成一组序号位和一组实例号位。本发明的实例号由该组实例号位指示。本发明的序号由该组序号位指示。因此,根据本发明,使用传统的现有技术的序号来指示该实例号和该序号两者。在同一的逻辑连接期间,该组实例号位保持恒定。如现有技术中所述,每传送一个包就递增该一组序号位。
当递增最大序号时,如现有技术中已知的,该组序号位返回到零。序号递增或返回到零都不会影响该实例号。只要还没有重建该逻辑连接,则该实例号就保持恒定。因此,因为将传统的序号位中的一部分保留用于该实例号,所以现在最大序号小于由所有的序号位本来可以表示的数。
本发明的一优选示例性实施例提供了一种具有端节点、交换机、路由器和将这些元件互连在一起的链路的分布式计算系统。每个端节点使用发送和接收队列对来传送和接收消息。该些端节点将消息分割成包并通过链路将包传送。交换机和路由器将这些端节点互连在一起,并将包路由到合适的端节点。在目的地,端节点将这些包重组成一消息。
在本发明的一优选实施例中,使用队列对将该实例号与位于特定的队列对组之间一逻辑连接相关联。当在第一和第二端节点之间第一次建立一逻辑连接时,通常利用一队列对表,将该第一端节点内的一队列对与该第二端节点内的一队列对相关联。因此,每次在这两组队列对之间建立一逻辑连接时,可利用该队列对表来确定这两组队列对是否已相互关联。如果这两组队列对已相互关联,则在这两组队列对之间正在重建一逻辑连接,并且递增该实例号。
图4示出一根据本发明的数据处理系统,该系统实施了一用于传送数据的基于通道的交换结构的体系结构。从具有一个处理器和几个输入/输出(I/O)适配器的小型服务器到具有成百上千个处理器和数千个I/O适配器的大规模并行超级计算机系统都可以是实施本发明的计算机系统。此外,本发明可以在通过因特网或内联网连接的远程计算机系统的一基础设施(infrastructure)中实施。
数据处理系统402包括一存储区域网络424。一存储区域网络也可被称为一“子网络”。一子网络是作为单个单元来管理的一组端节点和级联的交换机。通常,一子网络占有单个的地理区域或功能区域。例如在一个房间内的单个计算机系统可以被定义为一子网络。
数据处理系统402包括一高带宽、低等待时间的网络,该网络将该分布式计算机网络内的节点互连。节点是连接到网络的一个或多个链路并形成网络内消息的起点和/或目的地的任何元件。在示出的这个例子中,数据处理系统402包括形式为主处理器节点406、主处理器节点408、冗余独立磁盘阵列(RAID)子系统节点462、I/O底架节点412的节点。图4中示出的节点只用于说明目的,如SAN 424可以连接任意数量和任何类型的独立的处理器节点、I/O适配器节点和I/O设备节点。这些节点中的任何一个都可作为端节点,这里将端节点定义为在SAN 424中发起或最终消费消息或包的设备。
SAN 424包括支持I/O和处理器间通信(IPC)两者的通信和管理基础设施。SAN 424包括一交换通信结构,该结构允许许多设备在一可靠的远程管理环境下并行地以高带宽和低等待时间传送数据。每个节点可以通过多个端口通信并可利用通过SAN 424的多个路径。
SAN 424包括主通道适配器(HCA)426、428、430和432,目标通道适配器(TCA)458、460和468,交换机414、416和452,以及路由器420。交换机是一种将多个链路连接到一起并通过使用一小的报头“目的局部标识符”(DLID)字段允许在子网络内将包从一个链路路由到另一个链路的设备。通常,一个交换机可以将包从一个端口发送到同一交换机上的任何其它的端口。
路由器是一种将多个子网络连接到一起并通过使用一大的报头“目的全局唯一标识符”(DGUID)能够将包从第一子网络内的一个链路路由到第二网络内的一个链路的设备。
链路是位于任何两个网络结构元件,例如端节点、交换机或路由器之间的全双工通道。示例性的合适的链路包括但不限于铜电缆、光缆、在底版和印刷电路板上的印刷电路铜迹线。
数据处理系统402中的每个节点包括至少一个通道适配器(CA)。每个通道适配器是这样的一端点,其以足够详细的细节实现通道适配器接口,以发起和接收利用存储区域网络(SAN)424传送的包。SAN 402也可称为一结构。处理器节点中包含的通道适配器是主通道适配器(HCA)。除处理器节点以外的节点中包含的通道适配器是目标通道适配器(TCA)。
主处理器节点406包括形式为主通道适配器426和主通道适配器428的通道适配器。主处理器节点408包括主通道适配器430和主通道适配器432。主处理器节点406还包括通过总线系统442互连的中央处理单元434、436以及存储器440。主处理器节点408类似地包括通过总线系统450互连的中央处理单元444、446以及存储器448。
主通道适配器426提供与交换机414的连接。主通道适配器428提供与交换机414和416的连接。主通道适配器430提供与交换机414和416的连接。而主通道适配器432提供与交换机416的连接。
主通道适配器优选地由硬件实现。在这种实现中,该主通道适配器硬件卸载了中央处理器单元和I/O通道适配器的大量通信开销。主通道适配器的这种硬件实现也允许通过一交换网络进行多个并行通信而没有传统的与通信协议有关的开销。
I/O底架(I/O chassis)412包括位于该I/O适配器底板内以使适配器卡连接到SAN 424的一I/O交换机452和多个I/O模块454、456。在这个例子中,该些I/O模块采取的形式为适配器卡。
适配器卡可包括一SCSI适配器卡、一连接到光纤通道集线器和光纤通道仲裁环(FC-AL)设备的适配器卡、一以太网适配器卡、一图形适配器卡或一视频适配器卡。任何已知类型的适配器卡都可被使用。
每个I/O模块包括一目标通道适配器。I/O模块454包括目标通道适配器(TCA)458,而I/O模块456包括目标通道适配器(TCA)460。
数据处理系统402中也包括一RAID子系统节点462。节点462包括一处理器464、一存储器466、一目标通道适配器(TCA)468和多个冗余的和/或条带式存储磁盘单元470。目标通道适配器468可以是一全功能主通道适配器。
SAN 424为该分布式计算机系统的I/O和处理器间通信(IPC)的消费者(consumer)提供零处理器副本(zero processor-copy)的数据传送,而不涉及操作系统内核进程,并使用硬件来提供可靠的、容错的通信。
图5是根据本发明的一主处理器节点的功能框图。主处理器节点500是例如图4中示出的主处理器节点406或408的一主处理器节点的例子。
主处理器节点500包括一组消费者502、504、506和508,它们都是在主处理器节点500上执行的进程。主处理器节点500还包括通道适配器510和512。通道适配器510包括端口514和516,而通道适配器512包括端口518和520。每个端口连接到一个链路。
消费者502-508通过verbs(动词)接口522以及消息和数据服务524向SAN例如SAN 424传送消息。一verbs接口本质上是一主通道适配器的功能的抽象描述。操作系统通过可以其编程接口暴露一些或全部的verb功能。该接口定义了该宿主的功能。消息和数据服务524是比verb层更高层的接口,其用于处理通过通道适配器510和512接收到的消息和数据。消息和数据服务524提供一到消费者520-508的接口以处理消息和其它数据。
图6示出了一根据本发明的分布式计算机系统的一部分,描述了示例性的请求和确认事务。图6中的分布式计算机系统600包括主处理器节点602和主处理器节点604。主处理器节点602包括一主通道适配器606。主处理器节点604包括一主通道适配器608。图6中的分布式计算机系统包括一SAN结构610,该SAN结构包括交换机612和614。该SAN结构包括一将主通道适配器606耦合到交换机612的链路、一将交换机612耦合到交换机614的链路、和一将主通道适配器608耦合到交换机614的链路。
在这个示例性的事务中,主处理器节点602包括一客户进程A。主处理器节点604包括一客户进程B。客户进程A通过队列对620与主通道适配器606交互。客户进程B通过队列对622与主通道适配器608相互作用。
队列对620和622是各包括一发送队列和一接收队列的结构。一队列对通常包括该通道适配器中的控制寄存器。队列对620包括发送队列624和接收队列626。队列对622包括发送队列628和接收队列630。
进程A通过将队列元素提交到队列对620的发送队列624中来发起一个消息请求。主通道适配器608中的硬件在接收队列630中接收该队列元素。进程B然后读取该队列元素并将消息分成包,例如图8中所示的包。进程B可以通过将一些队列元素提交到发送队列628中来发起一个消息,然后进程A通过接收队列626接收到该些队列元素。
包由该SAN结构发送,并且对于可靠传输服务,该些包被最终目的端节点确认。如果包没有被成功地确认,则源端节点重新发送该包。包是由源端节点生成并被目的端节点消费的。
图7示出了根据本发明的分布式计算机系统100的一部分,其中使用一可靠连接服务来在分布的进程间进行通信。
当创建一个队列对时,该队列对被设置为提供一选定类型的传输服务。一实现本发明的该优选实施例的分布式计算机系统支持四种类型的传输服务:可靠连接(RC)、不可靠连接(UC)、不可靠数据报(UD)和可靠数据报(RD)。
可靠和不可靠连接服务将一本地队列对与一个且只有一个远程队列对相关联。连接服务需要一进程创建一队列对,以便该进程用来在该SAN结构中与另外的进程通信。因此如果N个主处理器节点中的每一个都包含P个进程,并且每个节点上的所有P个进程希望与所有其它节点上的所有进程进行通信,则每个主处理器节点需要P2×(N-1)个队列对。此外,一进程可以将一队列对与同一主通道适配器的另一队列对相连接。
图7中的分布式计算机系统700包括主处理器节点1、主处理器节点2和主处理器节点3。主处理器节点1包括进程A 710。主处理器节点2包括进程C 720和进程D 730。主处理器节点3包括进程E 740。
主处理器节点1包括队列对4、6和7。每个队列对具有一发送队列和一接收队列。主处理器节点2具有队列对2和5,而主处理器节点3具有队列对9。分布式计算机系统700的可靠连接(RC)服务将一本地队列对与一个且只有一个远程队列对相关联。因此,该队列对4用于与队列对2通信;队列对7用于与队列对5通信;而队列对6用于与队列对9通信。
可靠连接(RC)服务之所以可靠是因为硬件维护序号并确认所有的包的传送。硬件和SAN驱动程序软件的组合重试任何失败的通信。即使存在位错误、接收欠载(receive under-run)和网络拥塞,队列对的进程客户端也可获得可靠的通信。如果在SAN结构中存在其他可选择的路径,则即使结构交换机、链路或通道适配器端口出现故障也能保持可靠的通信。
另外,可以利用确认来通过SAN结构可靠地发送数据。该确认可以是或可以不是进程级的确认,即验证接收进程已消费该数据的确认。
或者,该确认可以是仅指示该数据已到达其目的地的确认。
图8示出一根据本发明的包。如这里使用的消息是一应用定义的数据交换单元,该单元是合作的进程之间的一基本信单元。消息被分成包。包是一个由网络协议报头和/或报尾封装的数据单元。报头通常提供用于指引包通过SAN的控制和路由信息。报尾通常包括用于确保包在传送中内容没有损坏的控制和循环冗余校验(CRC)数据。
包是通过SAN结构路由的信息单元。包是一个端节点到端节点构造,因此由端节点创建和消费。对于目的地为通道适配器(主通道适配器或目标通道适配器)的包,SAN结构内的交换机或路由器即不生成也不消费该包。相反,对于目的地为通道适配器的包,交换机和路由器只是移动请求包和确认包以使之更接近最终目的地,并在这个过程中修改可变链路报头字段。当包穿过一子网络边界时,路由器也修改该包的网络报头。在经过一子网络的过程中,单个包保持在单个服务级上。
对于可靠服务类型例如可靠连接(RC)传输服务,端节点例如主处理器端节点和I/O适配器端节点生成请求包并返回确认包。交换机和路由器将包从源一直传递到目的地。除了可变CRC报尾字段在网络中的每一级都得到更新外,交换机将包不加修改地传递下去。当包经过路由器被路由时,路由器更新该可变CRC报尾字段并修改报头中的其它字段。
一传出的消息被分成一个或多个数据包。通道适配器硬件向每个包添加一个传输报头和一个网络报头。根据本发明,该传输报头包括一序号、一实例号和其它的传输信息。该网络报头包括路由信息,例如目的IP地址和其它网络路由信息。链路报头包括目的局部标识符(DLID)或其他局部路由信息。总是向包添加一个适当的链路报头。如果目的端节点位于一远程子网络上则向一给定的包添加一适当的全局网络报头。
如果使用可靠传输服务,当一请求数据包到达其目的端节点时,目的端节点使用确认数据包来使该请求数据包的发送者知道目的端节点已验证和接受该数据包。确认数据包确认一个或多个有效的和被接受的请求数据包。请求者在接收到任何确认之前可具有多个未完成的请求数据报。在一个实施例中,当创建一队列对时确定该多个未完成的消息即请求数据包的数量。
包800包括一路由报头802、一传输报头804、一包有效载荷806和一CRC 808。路由报头802用于为包有效载荷806标识源和目的端节点的通道适配器中的端口。
传输报头804为包有效载荷806指定目的队列对。一序号字段810位于传输报头804中。在现有技术中,该序号由序号字段810包含的全部位表示。然而,根据本发明,序号字段810的全部位表示一序号和一实例号两者。因此本发明的序号包括一序号部分和一实例号部分,该序号部分随每个包递增,而该实例号部分在每个逻辑连接过程中保持恒定。传输报头804还提供例如操作代码和有效载荷806的分区的信息。CRC 808用于错误检验。
该操作代码识别该包是该消息的第一个包、最后一个包、中间的包还是该消息唯一的包。该操作代码还确定该操作是一发送RDMA写入、读取还是原子(atomic)操作。
根据本发明,在每个包的字段812中都保存了一实例号。在一逻辑连接的实例期间该实例号保持恒定。如果断开一逻辑连接并随后重建该逻辑连接,则递增该实例号。然后将该实例号存储在使用这个重建的逻辑连接传送的每个包的字段812中。
每传送一个包就递增序号部分814。
图9示出一高层流程图,该流程图示出根据本发明使每个包中包含一实例号。该过程如图所示从块900开始并随后转到块902,块902示出在一个处理器节点中开始执行一消费者。下一步,块904描述了在该处理器端节点和第二端节点之间建立一逻辑连接。当在这两个端节点之间建立逻辑连接时,将该第一端节点中的一发送和接收队列对与该第二端节点中的一发送和接收队列对相关联。这种关联性可通过使用由每个端节点的通信管理器在该端节点中维护的一队列对表来实现。
此后,块906示出了该处理器端节点判定这是否是第一次在该处理器节点内的特定的队列对和在该第二端节点内的特定的队列对之间建立一逻辑连接。端节点可以使用该队列对表来判定是否是第一次建立一逻辑连接。该队列对表将指示是否一逻辑连接已经建立。当断开一逻辑连接时,将两个端节点内的队列对置于一空闲状态,并且这些队列将不再相互关联。每个端节点中的队列对表将表现出该队列对位于空闲状态。
如果已经建立一逻辑连接并且该逻辑连接没有断开,则每个端节点中的队列对保持彼此相互关联。每个端节点中的队列对表将指示这些队列对仍然彼此相互关联。
一端节点可使用它的队列对表通过确定一队列对是否已经与第二节点内的一队列对相关联,来确定是否已经建立一逻辑连接。如果这个节点中的一队列对与该第二端节点内的一队列对相关联,则已经在这两个端节点之间建立了一逻辑连接。如果这个节点中的一队列对与该第二端节点中的一队列对不相关联,则这两个节点之间没有建立一逻辑连接。
参照块906,如果判定这是第一次在这两组特定的队列对之间建立一逻辑连接,则该过程转到块908,其中描述了每个端节点的逻辑连接管理器交换一开始实例号。该开始实例号变成当前的实例号并且当这个逻辑连接保持存在时保持恒定。
然后过程转到块910,其中示出逻辑连接管理器交换它们的开始序号。该序号存储在所述序号字段的序号部分并且不保持恒定。每传送一个包就递增该序号。此外,每个端节点可选择它自己的序号,该序号与另一个端节点选择的序号无关。该实例号存储在该序号字段的实例号部分,并且只要这个逻辑连接保持存在该实例号就保持恒定。
此后,块912示出端节点之间的包传送使存储在每个包的序号部分的包序号递增。下一步,块914示出在每个包中包含当前的实例号。该实例号在这个逻辑连接期间对于每个传送的包保持恒定。
然后,块916描述了判定当前逻辑连接是否已终止。如果判定当前的逻辑连接没有终止,则该过程返回到块912。再次参照块916,如果判定该逻辑连接已终止,则过程转到块918。块918描述了判定是否要在这两个队列对之间重建一逻辑连接。如果判定将不在这两个队列对之间重建一逻辑连接,则过程转到块920。再次参照块918,如果判定将在这两个队列对之间重建一逻辑连接,则过程转到块922。块922示出在这两个队列对之间重建一逻辑连接而不需要执行任何等待状态。然后过程返回到块906。
再次参照块906,如果判定对于这个服务这不是第一次在这两个特定的队列对之间建立一逻辑连接,则过程转到块934。块934描述了判定在为这两个特定的队列对之间建立的上一次逻辑连接期间用于传送的实例号。下一步,块936示出将该上一次的实例号变成新的实例号。然后使用这个新的实例号作为当前的实例号。尽管通常通过递增该实例号来改变该实例号,但是可以通过任何方法改变该实例号,例如通过减小该实例号。然后过程转到块910。
图10示出一高层流程图,该流程图描述了根据本发明一端节点确定一接收到的包是否是在当前的逻辑连接中传送的。过程如图所示从块1000开始并随后转到块1002,块1002描述了一端节点接收一包括一实例号的包。下一步,块1004示出该端节点确定当前的实例号。然后块1006描述了端节点将当前的实例号与在接收到的包中包含的实例号进行比较。然后过程转到1008,该块描述了判定该包是否包含当前的实例号。如果判定该包包含当前的实例号,则过程转到块1010,其中描述了端节点正常地处理该包。然后过程返回块1002。再次参照块1008,如果判定该包不包含当前的实例号,则过程转到块1012,其中示出该端节点丢弃该包。然后过程返回到块1002。
任何时候断开一逻辑连接并随后重建该连接,都可利用本发明。出于各种原因而终止和重建逻辑连接。许多原因是在端节点检测到的、不能通过简单地重新发送包来恢复的错误情况。例如,残缺的包和排序错误可以将一队列对置于这种错误状态。
断开并重建一连接的另一种原因是在这种结构中路径MTU的改变。可以在链路上传送的最大的包有效载荷的大小称为最大传送单元(MTU)。例如,考虑该结构内的单个链路。如果该链路一端上的包缓冲区能够处理最高512字节的包有效载荷,而该链路另一端上的包缓冲区能够处理最高1024字节的包有效载荷,则在该链路上可传送的最大的包有效载荷不超过512字节,即该链路的两端中的较小者。为简单起见,当描述包的大小时也使用该包的有效载荷大小。
如果从一个节点到另一个节点的路径包括任何交换机和/或路由器,则在该路径上有超过一个的链路。在这种情况下,MTU称为路径MTU,并且是该路径的所有链路中的最小的MTU。例如,如果该路径中的一个链路的MTU是512字节而所有其它的链路的MTU都是4096字节,则能够在该路径上传送的最大的包仅为512字节。
如果因为故障切换而增加了路径MTU,则该连接肯定或者被排尽(没有新的请求包生成并且所有未完成的包已被确认)或者断开并重建该连接以利用该新的、较大的路径MTU。使用本发明可以有效地处理这种情况,因为不再需要过时包等待时间。可以断开逻辑连接并立即重建该逻辑连接而无需等待状态。
应指出尽管已经通过一全功能的数据处理系统说明了本发明,但本技术领域的普通技术人员将理解本发明的过程可以多种形式的计算机可读指令介质的形式分发,并且不管实际用于进行该分发的信号承载介质是哪种具体类型,本发明都同样适用。计算机可读介质的例子包括可记录型的介质,例如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM和传输型的介质,例如数字和模拟通信链路、使用传输形式例如射频和光波传输的有线或无线通信链路。该计算机可读介质可以采取编码格式的形式,对该编码格式进行解码以实际用于一特定的数据处理系统。
出于阐述和说明的目的已对本发明进行了描述,但并未打算这种描述是穷尽性的或将本发明限制在所公开的形式。对本领域的普通技术人员来说可以对本发明进行许多修改和变型。选择和描述了实施例以便更好的解释本发明的原理、实际应用,并使本领域内的其它普通技术人员能够理解本发明,从而实现具有适合于所考虑的特殊应用的各种修改的各种实施例。
Claims (10)
1.一种用于在一数据处理系统中管理从第一端节点传送到第二端节点的数据的方法,所述方法包括下列步骤:
在所述第一和第二端节点之间传送数据之前在所述第一端节点和所述第二端节点之间建立一逻辑连接;
使一实例号与所述逻辑连接相关联;以及
当所述逻辑连接保持存在时,使在所述第一和第二端节点之间传送的每个包包含所述实例号,在所述逻辑连接期间所述实例号保持恒定。
2.根据权利要求1的方法,其特征在于,还包括下列步骤:
在所述第一和第二端节点之间重建所述逻辑连接;
递增所述实例号,所述递增的实例号与所述重建的逻辑连接相关联;以及
在所述重建的逻辑连接期间使在所述第一端节点和第二端节点之间传送的每个包包含所述递增的实例号,在所述重建的逻辑连接期间所述递增的实例号保持恒定。
3.根据权利要求1的方法,其特征在于,其中在所述第一端节点和第二端节点之间建立一逻辑连接的步骤还包括下列步骤:
使所述第一端节点内的一队列对与所述第二端节点的一队列对相关联。
4.根据权利要求3的方法,其特征在于,其中使所述第一端节点内的一队列对与所述第二端节点内的一队列对相关联的步骤还包括下列步骤:
在所述第一端节点内建立一个队列对表;以及
在所述表内存储一个表示在所述第一端节点内的所述队列对与所述第二端节点内的所述队列对之间的关联性的指示。
5.根据权利要求4的方法,其特征在于,还包括下列步骤:
利用一特定的逻辑连接从所述第二端节点向所述第一端节点传送一个包;
利用所述第一端节点接收所述包;以及
利用所述表来确定以前是否已建立过所述特定逻辑连接。
6.根据权利要求5的方法,其特征在于,其中利用所述表来确定以前是否已建立过所述特定逻辑连接的步骤,还包括下列步骤:
确定一个指示是否存储在所述表中,所述指示表示了在所述第一端节点中的一队列对和所述第二端节点中的一队列对之间的关联性。
7.根据权利要求1的方法,其特征在于,还包括下列步骤:
在所述逻辑连接期间使在所述第一和第二端节点之间传送的每个包中的一传输报头中包含所述实例号。
8.根据权利要求1的方法,其特征在于,还包括下列步骤:
确定所述逻辑连接是否是所述第一和第二端节点之间的第一逻辑连接;
响应于确定所述逻辑连接是第一逻辑连接:
使一实例号与所述逻辑连接相关联;
在所述逻辑连接期间使在所述第一和第二端节点之间传送的每个包包含所述实例号,在所述逻辑连接期间所述实例号保持恒定;并
使用所述实例号作为一当前的实例号;以及
响应于确定所述逻辑连接不是第一逻辑连接:
递增所述当前的实例号;
使用所述递增的当前的实例号作为一当前的实例号;并
在所述逻辑连接期间使在所述第一和第二端节点之间传送的每个包包含所述递增的当前的实例号。
9.一种用于在所述数据处理系统中管理从第一端节点向第二端节点传送的数据的数据处理系统,包括:
用于在所述第一和第二端节点之间传送数据之前在所述第一端节点和所述第二端节点之间建立一逻辑连接的装置;
用于使一实例号与所述逻辑连接相关联的装置;以及
用于当所述逻辑连接保持存在时使在所述第一和第二端节点之间传送的每个包包含所述实例号的装置,在所述逻辑连接期间所述实例号保持恒定。
10.一种计算机程序,当衩加载到一计算机系统并在其上执行时,能够执行根据权利要求1到8中的任何一个的方法的所有步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/132,456 US7149220B2 (en) | 2002-04-25 | 2002-04-25 | System, method, and product for managing data transfers in a network |
US10/132,456 | 2002-04-25 | ||
PCT/GB2003/001416 WO2003091888A2 (en) | 2002-04-25 | 2003-04-01 | System, method, and product for managing data transfers in a network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1633647A true CN1633647A (zh) | 2005-06-29 |
CN1633647B CN1633647B (zh) | 2010-09-08 |
Family
ID=29248774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN038039958A Expired - Lifetime CN1633647B (zh) | 2002-04-25 | 2003-04-01 | 用于管理网络中的数据传送的系统、方法 |
Country Status (13)
Country | Link |
---|---|
US (1) | US7149220B2 (zh) |
EP (1) | EP1499984B1 (zh) |
JP (1) | JP4099170B2 (zh) |
KR (1) | KR100651571B1 (zh) |
CN (1) | CN1633647B (zh) |
AT (1) | ATE314691T1 (zh) |
AU (1) | AU2003214470A1 (zh) |
CA (1) | CA2483197C (zh) |
DE (1) | DE60303026T2 (zh) |
IL (1) | IL164724A0 (zh) |
MX (1) | MXPA04010437A (zh) |
TW (1) | TWI252651B (zh) |
WO (1) | WO2003091888A2 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9094226B2 (en) | 2000-08-30 | 2015-07-28 | Broadcom Corporation | Home network system and method |
WO2002019623A2 (en) | 2000-08-30 | 2002-03-07 | Tiaris, Inc. | A home network system and method |
US8724485B2 (en) | 2000-08-30 | 2014-05-13 | Broadcom Corporation | Home network system and method |
US7430623B2 (en) * | 2003-02-08 | 2008-09-30 | Hewlett-Packard Development Company, L.P. | System and method for buffering data received from a network |
US7673070B1 (en) * | 2003-03-17 | 2010-03-02 | Network Equipment Technologies, Inc. | Method of sharing telecommunications node equipment facilities |
US7620693B1 (en) * | 2004-03-29 | 2009-11-17 | Sun Microsystems, Inc. | System and method for tracking infiniband RDMA read responses |
US8055818B2 (en) * | 2004-08-30 | 2011-11-08 | International Business Machines Corporation | Low latency queue pairs for I/O adapters |
CN100442256C (zh) * | 2004-11-10 | 2008-12-10 | 国际商业机器公司 | 提供用于i/o适配器的队列对的方法、系统和存储介质 |
US20060259570A1 (en) * | 2005-05-13 | 2006-11-16 | Microsoft Corporation | Method and system for closing an RDMA connection |
US7761619B2 (en) * | 2005-05-13 | 2010-07-20 | Microsoft Corporation | Method and system for parallelizing completion event processing |
US20070011287A1 (en) * | 2005-05-16 | 2007-01-11 | Charbel Khawand | Systems and methods for seamless handover in a streaming data application |
US8090043B2 (en) | 2006-11-20 | 2012-01-03 | Broadcom Corporation | Apparatus and methods for compensating for signal imbalance in a receiver |
US7782850B2 (en) | 2006-11-20 | 2010-08-24 | Broadcom Corporation | MAC to PHY interface apparatus and methods for transmission of packets through a communications network |
US7742495B2 (en) | 2006-11-20 | 2010-06-22 | Broadcom Corporation | System and method for retransmitting packets over a network of communication channels |
US8345553B2 (en) | 2007-05-31 | 2013-01-01 | Broadcom Corporation | Apparatus and methods for reduction of transmission delay in a communication network |
US9112717B2 (en) | 2008-07-31 | 2015-08-18 | Broadcom Corporation | Systems and methods for providing a MoCA power management strategy |
US20100097931A1 (en) * | 2008-10-21 | 2010-04-22 | Shakeel Mustafa | Management of packet flow in a network |
US8213309B2 (en) | 2008-12-22 | 2012-07-03 | Broadcom Corporation | Systems and methods for reducing latency and reservation request overhead in a communications network |
US8238227B2 (en) | 2008-12-22 | 2012-08-07 | Broadcom Corporation | Systems and methods for providing a MoCA improved performance for short burst packets |
US8254413B2 (en) | 2008-12-22 | 2012-08-28 | Broadcom Corporation | Systems and methods for physical layer (“PHY”) concatenation in a multimedia over coax alliance network |
US8553547B2 (en) | 2009-03-30 | 2013-10-08 | Broadcom Corporation | Systems and methods for retransmitting packets over a network of communication channels |
US20100254278A1 (en) | 2009-04-07 | 2010-10-07 | Broadcom Corporation | Assessment in an information network |
US8730798B2 (en) | 2009-05-05 | 2014-05-20 | Broadcom Corporation | Transmitter channel throughput in an information network |
US8867355B2 (en) | 2009-07-14 | 2014-10-21 | Broadcom Corporation | MoCA multicast handling |
US8942250B2 (en) | 2009-10-07 | 2015-01-27 | Broadcom Corporation | Systems and methods for providing service (“SRV”) node selection |
US8611327B2 (en) | 2010-02-22 | 2013-12-17 | Broadcom Corporation | Method and apparatus for policing a QoS flow in a MoCA 2.0 network |
US8514860B2 (en) | 2010-02-23 | 2013-08-20 | Broadcom Corporation | Systems and methods for implementing a high throughput mode for a MoCA device |
JP2015216450A (ja) | 2014-05-08 | 2015-12-03 | 富士通株式会社 | 情報処理装置、情報処理システム及び中継プログラム |
US10498654B2 (en) | 2015-12-28 | 2019-12-03 | Amazon Technologies, Inc. | Multi-path transport design |
US9985904B2 (en) | 2015-12-29 | 2018-05-29 | Amazon Technolgies, Inc. | Reliable, out-of-order transmission of packets |
US10148570B2 (en) | 2015-12-29 | 2018-12-04 | Amazon Technologies, Inc. | Connectionless reliable transport |
BR112018013438A2 (pt) * | 2015-12-29 | 2019-04-24 | Amazon Technologies, Inc. | tecnologias de rede |
US9985903B2 (en) | 2015-12-29 | 2018-05-29 | Amazon Technologies, Inc. | Reliable, out-of-order receipt of packets |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3032419B2 (ja) * | 1993-02-17 | 2000-04-17 | 三菱電機株式会社 | データ転送方法 |
JPH0746287A (ja) * | 1993-06-29 | 1995-02-14 | Toshiba Corp | オンラインシステム |
JP2002516042A (ja) | 1996-01-31 | 2002-05-28 | イプシロン ネットワークス インコーポレイテッド | 伝送ネットワークにおいてパケットの経路指定とスイッチングとの間をダイナミックにシフトする改良された方法及び装置 |
US5857188A (en) * | 1996-04-29 | 1999-01-05 | Ncr Corporation | Management of client requests in a client-server environment |
JPH10177548A (ja) * | 1996-12-18 | 1998-06-30 | Casio Comput Co Ltd | セッション管理システム |
JP3608905B2 (ja) * | 1997-05-29 | 2005-01-12 | 三菱電機株式会社 | データ通信システム及びデータ通信方法 |
JP3088683B2 (ja) * | 1997-05-29 | 2000-09-18 | 三菱電機株式会社 | データ通信システム |
US6545981B1 (en) * | 1998-01-07 | 2003-04-08 | Compaq Computer Corporation | System and method for implementing error detection and recovery in a system area network |
US6493343B1 (en) | 1998-01-07 | 2002-12-10 | Compaq Information Technologies Group | System and method for implementing multi-pathing data transfers in a system area network |
US6798742B1 (en) * | 1998-01-16 | 2004-09-28 | Paradyne Corporation | System and method for the measurement of service quality in a communication network |
JP2000156707A (ja) * | 1998-11-19 | 2000-06-06 | Nec Corp | パケット交換局及びパケット交換ネットワークシステム |
JP2000242434A (ja) * | 1998-12-22 | 2000-09-08 | Hitachi Ltd | 記憶装置システム |
US6483804B1 (en) | 1999-03-01 | 2002-11-19 | Sun Microsystems, Inc. | Method and apparatus for dynamic packet batching with a high performance network interface |
JP2000347965A (ja) * | 1999-06-07 | 2000-12-15 | Toshiba Corp | モバイル通信システム、及びモバイル通信方法 |
JP2001057583A (ja) * | 1999-08-17 | 2001-02-27 | Mitsubishi Electric Corp | データ転送制御方法およびデータ転送制御装置 |
-
2002
- 2002-04-25 US US10/132,456 patent/US7149220B2/en active Active
-
2003
- 2003-04-01 JP JP2004500192A patent/JP4099170B2/ja not_active Expired - Lifetime
- 2003-04-01 DE DE60303026T patent/DE60303026T2/de not_active Expired - Lifetime
- 2003-04-01 CA CA2483197A patent/CA2483197C/en not_active Expired - Lifetime
- 2003-04-01 KR KR1020047015246A patent/KR100651571B1/ko not_active IP Right Cessation
- 2003-04-01 EP EP03710044A patent/EP1499984B1/en not_active Expired - Lifetime
- 2003-04-01 AU AU2003214470A patent/AU2003214470A1/en not_active Abandoned
- 2003-04-01 CN CN038039958A patent/CN1633647B/zh not_active Expired - Lifetime
- 2003-04-01 AT AT03710044T patent/ATE314691T1/de not_active IP Right Cessation
- 2003-04-01 MX MXPA04010437A patent/MXPA04010437A/es active IP Right Grant
- 2003-04-01 WO PCT/GB2003/001416 patent/WO2003091888A2/en active IP Right Grant
- 2003-04-21 TW TW092109266A patent/TWI252651B/zh not_active IP Right Cessation
-
2004
- 2004-10-20 IL IL16472404A patent/IL164724A0/xx unknown
Also Published As
Publication number | Publication date |
---|---|
CA2483197A1 (en) | 2003-11-06 |
KR100651571B1 (ko) | 2006-11-29 |
EP1499984A2 (en) | 2005-01-26 |
TW200306719A (en) | 2003-11-16 |
JP2005524264A (ja) | 2005-08-11 |
KR20040105224A (ko) | 2004-12-14 |
AU2003214470A1 (en) | 2003-11-10 |
ATE314691T1 (de) | 2006-01-15 |
US20030202519A1 (en) | 2003-10-30 |
WO2003091888A2 (en) | 2003-11-06 |
WO2003091888A3 (en) | 2004-03-04 |
DE60303026T2 (de) | 2006-07-27 |
CN1633647B (zh) | 2010-09-08 |
IL164724A0 (en) | 2005-12-18 |
US7149220B2 (en) | 2006-12-12 |
AU2003214470A8 (en) | 2003-11-10 |
CA2483197C (en) | 2010-07-13 |
TWI252651B (en) | 2006-04-01 |
MXPA04010437A (es) | 2004-12-13 |
EP1499984B1 (en) | 2005-12-28 |
DE60303026D1 (de) | 2006-02-02 |
JP4099170B2 (ja) | 2008-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1633647A (zh) | 用于管理网络中的数据传送的系统、方法和产品 | |
KR101457241B1 (ko) | 네트워크에서의 완전 메시 레이트 트랜잭션 | |
CN1135800C (zh) | 用于具有处理器群集的电信平台的因特网协议处理器 | |
US7817662B2 (en) | System and method for interfacing with a management system | |
CN1697354A (zh) | 用组播和单播协议可靠传输数据的方法及接收数据的主机 | |
KR101363167B1 (ko) | 개선된 분산형 커널 운영 시스템 | |
CN101047714A (zh) | 一种处理网络数据的方法及系统 | |
EP1729481A2 (en) | Distributed kernel operating system | |
CN1742473A (zh) | 用于在不同网络协议之间传输数据的通用协议层体系结构和方法、以及通用协议分组 | |
CN1739098A (zh) | 智能网络适配器的状态恢复及故障修复 | |
US9100447B2 (en) | Content delivery system | |
CN1433197A (zh) | 单址通信到多址通信转换装置、方法和程序以及监视系统 | |
US20120198270A1 (en) | Failback to a primary communications adapter | |
CN1889464A (zh) | 一种实现通信接管的方法及装置 | |
CN110233881A (zh) | 业务请求处理方法、装置、设备及存储介质 | |
CN1812405A (zh) | 在请求-响应传输协议上的可靠的单向消息传递 | |
JP4506676B2 (ja) | 情報処理装置および方法、並びにプログラム | |
CN101039273A (zh) | 通信设备、传输控制方法、和传输控制程序 | |
CN114371912A (zh) | 数据中心的虚拟网络管理方法及数据中心系统 | |
CN1301096A (zh) | 针对可移植路由器框架的控制和分布协议 | |
CN1523840A (zh) | 在分布式路由器系统中交换路由选择信息的方法和设备 | |
CN101102231B (zh) | 一种ppp链路路由设备的自动发现方法和装置 | |
US20220286532A1 (en) | Method and apparatus for obtaining shared maximum segment size mss | |
WO2023133697A1 (zh) | 丢包处理方法、装置、交换机、发送设备和数据传输系统 | |
US7143313B2 (en) | Support interface module bug submitter |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20100908 |
|
CX01 | Expiry of patent term |