用于在网络通信系统中发送数据分组的纠错通信方法

文档序号:7634385阅读:232来源:国知局
专利名称:用于在网络通信系统中发送数据分组的纠错通信方法
技术领域
本发明一般涉及网络系统以及相关的通信协议,尤其涉及一种用于在网络通信系统中发送数据分组的纠错通信方法。
在具有多个通信端点的通信系统中,数据在传输期间可以被中断,或者被发送到非常繁忙的端点,这是因为它的处理速度低于发送节点,或者因为正在同时处理来自其他端点的传输,其中这些通信端点是连接到诸如IEEE标准1394高性能串行总线的总线的设备或者装置,或者是经过除总线之外的其他传输媒体连接的设备或装置。在现有技术的纠错通信协议中用于从这些事件恢复的业务提供具体实现起来非常复杂,并且在处理每个通信分组时(即使大多数分组的通信不存在问题)需要附加的处理开销(在处理器周期中)。用于支持复杂性和处理开销的附加负担增加了网络通信系统实现的成本,并且限制了网络通信系统的处理量。
现有纠错通信协议,诸如D信道的链路接入进程(LAPD),一般要求接收端点独立地确认每个接收到的分组。因为所发送的分组在传输期间可能会丢失(例如被破坏),所以要求发送端点保持每个支持逻辑链路上的、以前被发送但未被确认的分组的传输计时器。计时器的期满激励了特定恢复进程,诸如询问接收机关于最后接收到的正确分组,并且最后导致了被破坏分组的重新传输。重新传输的间隔通常以100毫秒的数量级,因为接收机中的处理等待时间,可能也是传输等待时间可能合法地延迟了接收机的确认。由于这种明显的延迟可能招致接收对于所发送分组的确认,“窗口机制”用于使发射机具有某些数量的仍然没有被确认的未被发送的分组。
当繁忙状态存在,且它被退出时(它自身被增加到繁忙接收机中的处理负载中),接收机中的“繁忙状态”一般通过显式通知发送端点来处理。这是很需要的,因为利用正常重新传输间隔以从繁忙状态中恢复将导致在接收机得到新分组时的不可接受的延迟。差错恢复以及上述的繁忙恢复进程必须在它们自身中存在差错时(例如,繁忙状态已经被清除的接收机确认或者指示可能被破坏)才工作。
而且,从两个端点之间的一个通信方向上的差错或者繁忙状态中恢复的通信,可能被这两个端点之间其他方向通信中的繁忙或过载状态所阻碍。由于这些协议的复杂性,并且由于需要保持多数链路的每个链路的状态信息(例如,重新传输计时器以及发送窗口),这些协议一般以软件形式实现。在一般的多任务、预占操作系统中,对于每个无差错分组的协议处理可能涉及两种或者多种环境转换,以及启动或者关闭软件计时器。当需要处理大量的业务时,这些操作系统自身动作的处理器开销就非常大。这些复杂协议的软件开发也容易出错,并且开发费用很高。在已经在产品中开发之后,包含它们的产品遭受通信协议中的一个或者多个难以发现的“故障”是很经常的。
因此,需要一种用于改进系统性能以及在独立的通信端点之间传输分组的效率的纠错通信协议。而且,需要一种更加简单的纠错协议,以及一种可以以软件形式廉价实现、实现高性能且使网络通信系统节省费用的协议。
本发明提供了一种在网络通信系统中实现的纠错通信协议,该网络通信系统经过至少一个传输媒体与多个端点,即设备或装置,例如服务器和终端相连。在该协议中,每个发送端点分离将被发送到不同队列中的业务,即数据分组。发送队列首部上的分组,并且没有其他分组被发送,直到产生一个传送结束信号。传输一直被称为“未结束”,直到使用了传送结束信号。这只是在任何时刻来自给定发送端点的不完全传输。
当一个分组被毫无差错地接收到,并且由接收或目的端点接受时,接收端点立即向发送端点返回一个指示成功接受的确认。当任何接收机确认应该已经由发送端点接收到时,在发送端点产生一个传送结束信号。
当传送结束信号由发送端点处理时(以硬件或者软件形式的传送结束中断服务例程),如果已经接收到指示成功接受的接收机确认,则以前发送的分组从其队列的首部去除。否则,该分组保留在其队列的首部,该队列被设置成“等待重试(pending retry)”状态,并且一个较短的“等待重试”计时器,优选地为硬件计时器被启动(除非该等待重试计时器由于另一个队列的等待重试而被启动)。在每种情况下,如果有的话,另一个分组被从不是处于等待重试状态的队列的首部发送。
当等待重试计时器期满时,一个硬件处理或者软件的发送完全中断服务例程移动与未处于等待重试状态的等待重试相关的所有队列,使这些分组将被再次发送。于是,将被从这些队列中每一个队列发送的第一个分组将被重新发送。由至少1比特构成的递增序列号用于来自同一队列的所有传输,并且由接收端点检验,以便复制的分组,例如由于接收机确认的丢失而被错误地重新传输的分组,可以由接收端点丢弃。
下面参照附图描述各个优选实施例。其中

图1A和1B示出了用于实现根据本发明的纠错通信协议的示例性网络通信系统;以及图2描述了根据本发明的纠错通信协议。
现在详细参照附图,其中相同的附图标记表示多个角度中的类似或者相同的部件,尤其参照图1A和图1B,它们示出了用于实现根据本发明的纠错通信协议的示例性网络通信系统。图1A示出了由标记10表示的局部总线网络,图1B示出了由附图标记20表示的局部环形网络。每个网络10,20包括一种传输媒体30,该媒体连接多个端点,即设备或装置,例如服务器和终端。
传输媒体30优选地包括一个物理层协议,该协议要求来自连接到传输媒体30的发送端点,例如401的每个传输将由接收端点40,例如40n立即确认。在发送端点401产生一个传送结束终端信号时,该物理层协议还优选地使该信号也提供一个接收端点40n的确认是否被接收到的指示,并且如果这样的话,指示成功接收的确认或者由于某些其他问题造成的失败。
在图1A所示的示例性网络通信系统中,在传输媒体30的物理(PHY)和链路层上工作的协议优选地是在用于高性能串行总线的IEEE标准1394中规定的协议。在图1B中,在PHY和媒体接入控制(MAC)层上工作的协议优选地是在用于局域网令牌总线的ANSI/ATA标准878.1中规定的协议。
在示例性实施例中,IEEE 1394和ANSI/ATA 878.1为本发明提供了要求接收机立即确认成功接收到所发送的分组,以及给出在产生传送结束信号时,该确认是否被发射机所接收的指示,并且所使用的市售硬件都可以得到。优选地,传送结束信号向软件传送一个传送结束中断信号。而且,优选地,传送结束中断信号是这样指定的,即通过本领域技术人员所知的技术来保证产生该信号。例如,如果产生该信号的正常机制失败了,在从该时刻起的某一短延迟之后,产生该信号的“监视电路”将应该产生该信号。
参照图2,图2示出本发明的纠错通信协议的流程图。在步骤200中,发生分组将从发送端点401发送时,这些分组在步骤205被分离到多个队列,每个目的端点对应于一个队列,其中优选地,到同一端点的所有较高级逻辑链路分享同一队列。当业务设置在先前空的队列时,该队列从“空”状态到“就绪”状态。
一次只有一个未结束的传输(传输被称为“未结束”,直到得到该传输的传送结束信号),并且该“就绪”队列优选地以循环方式被服务。因而,在步骤210,该协议检验确定是否存在未结束的传输。如果没有,在步骤215,在第一“就绪”队列的首部发送该分组,如果有的话,分组被发送到其对应的接收或目的端点40n,并且没有其他的分组被发送,直到在步骤220,一个传送结束中断信号由发送端点401服务。如果为“是”的话,那么协议跳过步骤215,并且终止。
应该预料到的是,本发明的协议可以被这样实现,即一个以上的队列可以同时具有一个未结束的传输。于是,图2步骤210中的检验可以被修改,以确定在每个就绪的队列中是否有一个未结束的传输。如果没有的话,那么在步骤215,带有未结束传输的至少一个就绪队列首部上的分组将被发送。于是,可以传送结束信号来指示发送产生结束信号的队列。
在步骤220中,当在发送端点401中存在传送结束中断信号时,传送结束中断服务例程在步骤230中确定指示成功接收的接收机确认是否已经被接收到。如果为“是”的话,那么该处理转到步骤235。在步骤235,以前发送的分组被从其队列的首部去除。
在步骤260,如果确定指示成功接收的接收机确认没有被接收到,例如接收端点40n处于繁忙,该接收机确认自身被破坏,或者由接收机所检测到的分组在接收时被破坏,则以前发送的分组以“等待重试”状态保留在其队列的首部,并且在步骤265中,等待重试计时器被检验以确定它是否开始计时。如果该等待重试计时器没有开始计时,那么该等待重试计时器在步骤270启动,并且接着该协议转到步骤240。如果改计时器已经开始计时,由于另一个队列的等待重试而以前被启动,那么该协议转到步骤240。在接收端点40n中没有差错或者处于繁忙状态时,对应的发送队列从未进入等待重试状态。用于检测接收分组在接收时是否已经被破坏的机制业已为本领域技术人员所知,例如包括循环冗余检验(CRC)。
在步骤240,确定是否有一个或多个附加分组将由发送端点401从处于就绪状态的任何队列发送到对应的接收端点。如果答案为“是”,那么在步骤245发送下一“就绪”队列首部的分组。如果不再有分组将被发送,则协议终止。
当在步骤280发生等待重试计时器期满时,所有处于“等待重试”状态的队列在步骤285被设置为“就绪”状态。
在接收端点中没有差错或者处于繁忙状态时,对应的等待重试计时器从未由本发明的纠错通信协议设置,并且发送到该端点的任何发送队列从未进入等待重试状态。在等待重试状态中,等待重试计时器延迟重新传输,以便它们更可能成功,而且限制重新传输的速率,以便在处于必须连续重新传输的情况下,防止对处理器和传输媒体增加不必要的负担。它防止了来自一个队列的传输明显地影响来自其他队列的传输的问题。它被设置成一个足够短的值,以便从所有类型的差错中恢复以及时的方式执行。因而,所有差错状态(例如,被破坏的分组,繁忙状态以及被破坏的确认)由本发明的协议处理。
等待重试计时器被有利地设置成100usecs,以允许1)足够短,以便差错或繁忙状态将不会明显地降低到给定端点的处理量;2)对于繁忙端点足够长,以执行其接收中断服务例程,以便为缓冲器中的另一个分组留出空间;3)足够短,以使接收端点保持在它能够处理繁忙接收业务;4)足够长,在向总是失败的接收端点(例如该端点不存在或者正在重新引导)连续发送业务的情况下,防止发送端点在重新传输上花费繁重的处理器周期的百分比。
根据本发明的优选实施例,每个来自队列的分组发送时带有一个序列号,该序列号有利地被实现为一个比特,该比特与每个信分组一起发送。接收端点40n监视来自每个发送端点的下一个预计的序列号,以便它可以丢弃没有被正确地重新发送的分组(例如,由于被破坏的确认)。
于是,在接收机中借助于各种技术中的一种,例如“源地址”在接收到的分组中提供发送端点身份的指示,在示例性的IEEE 1394和ANSI/ATA 878.1协议中提供了这些技术的实例。发送端点身份的实例也可以是必需的,以便接收端点向发送端点发送确认分组。应该注意的是,本发明的纠错通信协议要求成功接收的分组应该被确认,而不管该分组作为复制品是否在随后被丢弃。
应该预料的是,序列号可以由一个以上比特构成。在这种情况下,优选地提供一种机制用于使由发送端点所传送的序列号与由接收端点所预计的序列号同步。这种机制对于本领以技术人员来说是很显然的,诸如1)“重置”或者“重新启动序列号”分组的传输,2)总是接收带有“0”序列号的分组,并且将下一个预计的序列号重置为“1”,和/或,3)在按顺序排列的、但没有预计到的某些连续序列号(这些序列号已经被接收,并且它们的分组被拒收)之后,接收下一个发送的序列号。然而,应该预料到的是,所发送的分组可以与接收的分组相同,以便借助于某些方法丢弃不同于序列号的复制品。
即使利用纠错通信协议来保证分组传输,但由于在保证分组传输的点与使用分组的较高软件层之间有多个软件介入层,在驻留在不同端点且使用纠错通信协议的两个较高软件层之间的互换可能仍然经受差错是可能的(例如由于被重新启动的处理,缓冲器状态和/或软件缺陷)。然而,在基础通信机制可靠的地方,在较高层上经常使用简单、低开销的方法,以检验互换的完整性。这种方法可以包括在高层交换的分组的编号。因而,应该预料的是,对分组编号并且丢弃复制的分组的功能可能不在协议被完全实现的层上处理,但是可能在更高的链路层上,甚至在应用层上处理。
应该预料到的是,“就绪”队列可以用不同于循环方式的方式来服务,例如,给予来自一个队列的传输高于来自另一个队列的传输的优先处理。
也应该预料到的是,不同于上述等待重试计时器的机制也可以用于延迟重新传输,并且限制它们的速率,例如一个等待重试计时器可以常规地、周期性地期满,这时计时所有队列,如果这样的话,处于等待重试状态的计时器可以被设置成就绪状态。
还应该预料到的是,可以有一个以上的等待重试计时器,其中一个或多个队列可以共享一个专用等待重试计时器,以允许在队列之间启动重新传输,或者根据某些等待重试计时器的较短超时间隔,对于来自较高优先级的某些队列给予重新传输。
也应该预料到的是,可以有两个不同等待重试计时器一个等待重试差错计时器和一个等待重试繁忙计时器。当已经接收到指示接收端点繁忙状态的接收机确认时,启动等待重试繁忙计时器。而且,对应的队列被设置成等待重试繁忙状态。在所有其它情况下,在没有接收到指示成功接收的接收机确认时,等待重试差错计时器被启动,并且对应的队列被设置成等待重试差错状态。
应该预料到的是,在处理传送结束信号时,发送端点没有接收到指示成功接收的接收机确认,从一个到有限多个的立即重试,即重新传输可以在将该队列设置成等待重试状态,并且启动等待重试计时器之前执行。这种动作可以通过在步骤260中重新发送该分组在图2的步骤260中直接完成,或者通过在步骤260中留下其队列首部的分组且留下处于就绪状态的队列而间接完成。如果尝试有限数量的立即重试,而没有一个被成功确认的传输,那么步骤260将采取图2所示的动作,即将该队列设置成处于等待重试状态。还应预料到的是,这种立即重试可能根据确认的类型,或者缺少由发送端点所接收到的确认而被有条件地执行,例如,指示接收端点繁忙状态的确认不可能请求立即重试。
还应预料到的是,在步骤205中将从发送端点401传送到接收端点40n的分组可能被分成多个传送队列,每个队列具有一个目的端点40n。这样做的目的在于向不同类型的传送分组提供不同的处理,或者对来自较高层链路的不同子集的分组提供不同的处理。在这种情况下,在该协议层负责去除复制的分组时,接收机将保持对于发送端点的每个队列的预计序列号,其中该接收机从该发送端点接收分组。而且,为了使接收到的序列号与预计的序列号相关,在接收机中不仅提供发送端点身份的指示,而且提供该端点内发送队列身份的指示。
当没有接收到指示成功接收的接收机确认时,流量控制,或者一段时间的到繁忙端点的暂停传输,通过将队列设置成等待重试状态来完成。应该预料到的是,可以返回一个特定接收机确认,指示该传输没有被接收的原因。还应预料到的是,所指示的两个原因可以是接收机中的繁忙状态或者检测到所传送的分组被破坏。还应理解的是,两个不同的超时值可以基于重试是必需的原因,而被编程为到重试计时器中,其中较小值对应于被破坏的传输的情形,较大值对应于繁忙端点的情形。
还应预料到的是,在一个以上的发送队列共享一个重试计时器时,如果这些队列的其中一个基于比以前启动的计时器更短的时间间隔,而随后需要重新发送,重试计时器的超时间隔可以从较大值改变为较小值。还应预料到的是,两个发送队列中的每一个都具有相同的目的端点40n,每一个都可以向目地端点上的两个不同队列发送,哪个队列处于或者不处于繁忙状态取决于其他接收机队列的状态。在这种情况下,借助于本领域技术人员所熟知技术中的一种,例如“目的地址”,将在接收端点40n提供一个所接收的分组将到哪个队列的指示。而且,在这种情况下,接收端点40n基于所接收分组的目的队列,向发送端点401传送或者不传送一个确认。
应该预料到的是,重试计算器可以与发送端点上的每个队列相关联。这种计数器可以依据每次从队列的重试而递增,并且在发生来自该队列的成功传输时被清零。如果重试计数器超过某个预定门限或者数量,则启动恢复动作。
应该预料到的是,可以有一个以上的目的端点用于来自任何队列的传输,例如广播队列。在这种情况下,广播队列被设置成等待重试状态,并且在没有从目的端点的子集接收到指示成功接收的接收机确认时,启动该等待重试计时器。该子集可以包括一个目的端点,所有目的端点,或者目的端点的某些其他子集。这种操作提供了广播分组的确认。
在必须已经被接收到成功确认的目的端点的子集包括所有被寻址的目的端点的情况下,本发明的操作提供了广播分组的纠错传输。这种特征通过本发明的一个方面来实现,该方面提供了复制分组的寂静丢弃,同时遵守用于所有类型差错状态的类似恢复进程。例如,该协议能够将一个广播分组传输恢复到三个不同的目的端点,其中一个端点成功地接收到该分组,另一个端点接收到破坏的分组,最后一个端点由于处于繁忙状态而不能够接收到该分组。
还应预料到的是,在硬件和/或传输媒体的物理层没有提供成功接收到最新发送分组的立即指示时,这种指示可以以开销和处理量中的小的代价来提供,以便本发明协议中的纠错通信协议可以有利地实现。该协议可以被这样规定,即提供每个所接收分组的低级处理的接收端点中断服务例程,向每个所接收消息的发送端点送回一个确认。在发送端点接收到这种确认时,它产生一个传送结束中断信号。为了恢复丢失的确认,发送进程依据每个到接收端点的数据分组传输,启动一个硬件计时器。该硬件计时器在其期满时,类似地产生一个传送结束中断信号,因为没有接收到预先产生的接收机确认。
应该更进一步预料到的是,以硬件形式实现至少部分本发明的纠错通信协议,而不以软件形式实现本发明的整个协议。应该预料到的是,以软件形式实现的协议包括由至少一个处理器所处理的可编程指令,该处理器位于网络通信系统的内部或者外部。也应该预料到的是,以软件形式实现的部分协议在中断服务例程中实现,它避免了处理器的额外开销,这种额外开销将招致操作系统的动作,诸如操作系统环境的转换。
本发明的纠错通信协议比现有协议更有效,因为只有在传输中出现错误的情况下,它才启动纠错进程(即通过启动等待重试计时器)。由本发明协议所提供的低等待时间传输/纠错以及连续重新传输,不会消耗难以负担的处理器周期的百分比,使包括接收端点繁忙的所有“差错状态”将由同一纠错机制来处理。它也消除了需要开窗口以及“你还在那里吗?”的询问。而且,它避免了与丢失或破坏接收机确认相连的长恢复时间,而这正是现有协议的典型缺点。
本发明的纠错通信协议也可以仅使用一个计时器,或者一个更小的计时器集,用于所有较高层的通信链路。在接收机中确定是否发送一个确认所需要的功能性被最小化。如果观测到该分组中不存在差错,并且有空间来存储该分组以用于较高层软件进行后续处理,则可以返回一个确认。本发明的协议根据这些分组被确定为复制品,或者被确定为其他较高层链路状态,来确定这些分组是否将被丢弃。
本发明协议的上述方面比现有协议更容易实现,并且以硬件形式实现更能节省费用。应该预料到的是,协议不能完全以硬件形式实现,协议的剩余部分以非常有效地利用处理器周期的方式,以软件中断例程的形式实现。
另一种优点在于,由于作为与发送分组相关的其中一种进程,接收机确认优选地在接收和发送端点由硬件处理,在两个端点之间的一个通信方向上的纠错,不会受到拥塞,处理器过载,流量控制或者两个端点之间的其他通信方向上繁忙状态的影响。
这里所描述的仅是本发明原理的示例性应用。例如,上述功能以及被实现为运行本发明的最佳模式的功能仅用于示意的目的。其他结构和方法可以由本领域技术人员实现,而不会背离本发明的范围和精神。
权利要求
1.一种在网络通信系统中发送数据分组的方法,该网络通信系统经过至少一种传输媒体连接多个端点,其中将被从发送端点传送的分组被分离成多个队列,所述多个队列中的每一个在所述多个端点中至少具有一个对应的目的端点,所述分组将被发送到该目的端点,所述方法包括步骤只有在所述队列没有处于等待重试状态,且不具有未结束的传输时,随时将来自多个队列的其中一个队列首部的分组,从所述发送端点传送到所述队列的至少一个对应的目的端点;以及如果从所述队列的至少一个对应目的端点接收到一个指示所述分组已经被成功接收的确认,则通过从所述对列的首部去除所述传送分组或者保留所去除的传送分组,在所述发送端点随时提供一个用于所述发送分组的传送结束信号,否则将所述队列设置成等待重试状态,使所述传送分组保留在所述对列的首部,或者将所述传送分组返回到所述队列的首部,并且在经过一个时间周期之后,使所述队列去除等待重试状态。
2.根据权利要求1的方法,还包括步骤每当在所述提供步骤中没有接收到所述确认,则将所述分组从所述发送端点重新传送到所述队列的至少一个对应目的端点,直到有限数量的次数,所述重新传送所述分组有限数量的次数步骤的执行无需将所述队列设置成等待重试状态。
3.根据权利要求2的方法,其中对于至少一种特定类型的未成功传输不执行所述重新传送步骤。
4.根据权利要求1的方法,还包括步骤对于来自该队列的连续不成功重试的每个队列保持重试计数;以及如果所述重试计数超过预定数量,则启动一个恢复动作。
5.根据权利要求1的方法,其中只有在从所述发送端点到所述队列的至少一个对应目的端点没有未结束的传输时,所述分组才从所述队列的首部传送出去。
6.根据权利要求1的方法,其中只有在没有来自所述发送端点的未结束传输时,所述分组才从所述队列的首部传送出去。
7.根据权利要求1的方法,其中所述时间周期由计时器计时。
8.根据权利要求7的方法,其中所述计时器周期性地期满,并且计时器的期满与所述多个队列中的任何一个队列被设置为等待重试状态的时间无关。
9.根据权利要求7的方法,其中如果所述计时器还没有被启动,则在所述发送端点上提供传送结束信号时启动所述计时器。
10.根据权利要求1的方法,其中直到来自所述至少一个对应目的端点的所述确认已经由所述发送端点接收之后,所述传送结束信号才产生。
11.根据权利要求1的方法,其中所述传送所述分组的步骤包括步骤将所述分组与识别符一起,传送到所述队列的所述至少一个对应目的端点;在所述队列的所述至少一个对应目的端点上监视来自所述队列的下一个预计识别符;并且丢弃在所述队列的所述至少一个对应目的端点上成功接收的、其对应的识别符与所述下一个预计识别符不同的分组。
12.根据权利要求11的方法,其中所述识别符是一个号码。
13.根据权利要求11的方法,其中所述识别符是一个序列号。
14.根据权利要求13的方法,其中所述序列号是一个比特,它与每个新分组一起被传送到所述队列的所述至少一个对应目的端点。
15.一种在网络通信系统中发送数据分组的方法,该网络通信系统经过至少一种传输媒体连接至少三个端点,所述方法包括步骤a)将从发送端点传送的分组分离成多个队列,所述多个队列中的每一个队列在所述至少三个端点中具有至少一个对应的目的端点,所述分组将被发送到该目的端点;b)确定从所述传送端点到所述至少三个端点中的任何一个是否有一个未结束的传输;c)如果从所述传送端点到所述至少三个端点中的任何一个没有一个未结束的传输,则将所述多个队列中的一个队列首部的分组传送到所述至少三个端点的所述至少一个对应目的端点,否则转到步骤e);d)在成功地接收到所述传送的分组时,将指示所述分组被成功接收的确认,从所述多个端点的至少一个对应目的端点传送到发送端点;e)在所述传送结束信号已经产生以后,在所述的发送端点上提供该信号,该信号只有在来自所述至少一个对应目的端点的所述确认已经由所述发送端点接收到之后才产生;e.1)确定指示所述分组被成功接收的所述确认是否由所述发送端点接收到;e.2)如果没有,则将所述分组保留在所述对列的首部,或者将所述分组返回到所述队列的首部,并且将所述队列设置成等待重试状态,否则转到步骤f);e.3)确定对应的等待重试计时器是否被启动;e.4)如果所述对应的等待重试计时器被确定为关闭,则启动所述对应的等待重试定时器;并且e.5)转到步骤g);f)将所述传送的分组从所述队列的首部去除,或者保留从所述队列首部去除的所述传送分组;g)确定是否有至少一个分组将被从不处于所述等待重试状态的所述多个队列中的任何一个中传送出去;h)如果在步骤g)中确定至少有一个分组将被传送,则传送不处于所述等待重试状态的、所述多个对列中的所述队列或者其他队列首部的另一个分组,并且转到步骤d);并且所述方法还包括步骤通过使对应于所述期满的等待重试定时器的所述多个队列中的每一个去除所述等待重试状态,随时维护所述发送端点上期满的等待重试定时器,并且转到步骤b)。
16.根据权利要求15的方法,其中所述方法还包括步骤当至少一个分组被设置在所述多个队列的每一个之中时,将所述多个队列的每一个从空闲状态设置成就绪状态;并且在所述对应的等待重试定时器期满时,将所述多个队列从所述等待重试状态改变为所述就绪状态。
17.根据权利要求15的方法,其中步骤a)包括步骤将数据分组分离成所述多个队列,以便将被传送到所述至少三个端点中同一个目的端点的所有分组都被设置在相同的队列中。
18.根据权利要求15的方法,其中所述多个队列中每一个队列仅具有所述至少三个端点的一个对应目的端点。
19.根据权利要求17的方法,其中所述多个队列中每一个队列仅具有所述至少三个端点的一个对应目的端点。
20.根据权利要求15的方法,其中所述对应的等待重试定时器被设置成允许至少下面的其中一种1)足够短,以便差错或繁忙状态将不会明显地降低对于给定端点的处理量;2)对于繁忙端点足够长,以执行一个软件例程,以便为所述繁忙端点的缓冲器中的另一个分组留出空间;3)足够短,以便所述发送端点使所述至少一个对应目的端点保持繁忙接收由所述发送端点能够处理的分组;4)足够长,在这种传输连续失败时,防止所述发送端点在向所述至少一个对应的目的端点连续重新传输分组上花费非常大百分比的处理器周期。
21.根据权利要求15的方法,其中所述对应的等待重试计时器包括一个等待重试繁忙计时器和一个等待重试差错计时器。
22.根据权利要去15的方法,其中所述对应的等待重试计时器由所述多个队列中的每一个对列使用。
23.根据权利要求15的方法,还包括步骤如果在步骤g)中确定没有至少一个分组将被传送,则终止该方法。
24.根据权利要求15的方法,其中所述步骤c)包括步骤将所述分组与识别符一起,传送到所述至少三个端点的所有所述的至少一个对应目的端点;在所述至少三个端点的所有所述至少一个对应目的端点上,监视来自每个发送端点的所有所述多个队列的下一个预计识别符,至少一个目的端点可以从发送端点接收分组;并且丢弃在所有所述至少一个对应目的端点上成功接收的、其对应的识别符与所述下一个预计识别符不同的分组。
25.根据权利要求24的方法,其中所述识别符是一个号码。
26.根据权利要求24的方法,其中所述识别符是一个序列号。
27.根据权利要求26的方法,其中所述序列号是一个比特,它与每个新分组一起被传送到所述至少三个端点的所述至少一个对应目的端点。
28.根据权利要求15的方法,其中所述至少一种传输媒体包括一个物理或者媒体接入控制层协议,该协议要求来自所述至少三个端点的发送端点的每个传输将由所述至少一个对应的目的端点确认,其中所述至少三个端点的发送端点与至少一种传输媒体相连。
29.根据权利要求28的方法,其中所述至少一种传输媒体是IEEE标准1394的高性能串行总线。
30.根据权利要求28的方法,其中所述至少一种传输媒体是ANSI/ATA 878.1总线。
31.根据权利要求15的方法,其中步骤c)和h)包括步骤向所述多个队列的每个队列提供不同于其他队列的、所述对应等待重试计时器的不同频率和/或不同重新传输超时间隔。
32.根据权利要求15的方法,其中所述传送结束信号由硬件产生。
33.一种网络通信系统,包括至少一个处理器,用于处理纠错通信方法;并且经过至少一种传输媒体连接的多个端点,其中将被从发送端点传送的分组被分离成多个队列,所述多个队列中的每一个在所述多个端点中至少具有一个对应的目的端点,所述分组将被发送到该目的端点,所述纠错通信方法包括步骤只有在所述队列没有处于等待重试状态,且不具有未结束的传输时,随时将来自多个队列的其中一个队列首部的分组,从所述发送端点传送到所述队列的至少一个对应的目的端点;在成功接收到所述传送的分组时,从所述队列的所述至少一个对应目的端点向所述发送端点传送一个确认,该确认指示所述分组被成功地接收;以及如果从所述队列的至少一个对应目的端点接收到该确认,则通过从所述对列的首部去除所述传送分组或者保留所去除的传送分组,在所述发送端点随时提供一个用于所述发送分组的传送结束信号,否则将所述队列设置成等待重试状态,使所述传送分组保留在所述分组的首部,或者将所述传送分组返回到所述队列的首部,并且在经过一个时间周期之后,使所述队列去除等待重试状态。
34.根据权利要求33的系统,其中所述纠错通信方法还包括步骤每当在所述提供步骤中没有接收到所述确认,则将所述分组从所述发送端点重新传送到所述队列的至少一个对应目的端点,直到有限数量的次数,所述重新传送所述分组有限数量的次数步骤的执行无需将所述队列设置成等待重试状态。
35.根据权利要求34的系统,其中对于至少一种特定类型的未成功传输不执行所述重新传送步骤。
36.根据权利要求33的系统,其中所述纠错方法还包括步骤对于来自该队列的连续不成功重试的每个队列保持重试计数;以及如果所述重试计数超过预定数量,则启动一个恢复动作。
37.根据权利要求33的方法,其中只有在从所述发送端点到所述队列的至少一个对应目的端点没有未结束的传输时,所述分组才从所述队列的首部传送出去。
38.根据权利要求33的方法,其中只有在没有来自所述发送端点的未结束传输时,所述分组才从所述队列的首部传送出去。
39.根据权利要求33的方法,其中直到来自所述至少一个对应目的端点的所述确认已经由所述发送端点接收之后,所述传送结束信号才产生。
40.根据权利要求33的系统,其中所述传送所述分组的步骤包括步骤将所述分组与识别符一起,传送到所述队列的所述至少一个对应目的端点;在所述队列的所述至少一个对应目的端点上监视来自所述队列的下一个预计识别符;并且丢弃在所述队列的所述至少一个对应目的端点上成功接收的、但其对应的识别符与所述下一个预计识别符不同的分组。
41.根据权利要求33的系统,其中所述至少一种传输媒体包括一个物理或者媒体接入控制层协议,该协议要求来自所述至少三个端点的发送端点的每个传输将由所述至少一个对应的目的端点确认,其中所述至少三个端点的发送端点与至少一种传输媒体相连。
42.一种网络通信系统,包括至少一个处理器,用于处理纠错通信方法;以及经过一种传输媒体连接的至少三个端点,其中所述纠错通信方法包括步骤a)将从发送端点传送的分组分离成多个队列,所述多个队列中的每一个队列在所述至少三个端点中具有至少一个对应的目的端点,所述分组将被发送到该目的端点;b)确定从所述传送端点到所述至少三个端点中的任何一个是否有一个未结束的传输;c)如果从所述传送端点到所述至少三个端点中的任何一个没有一个未结束的传输,则将所述多个队列中的一个队列首部的分组传送到所述至少三个端点的所述至少一个对应目的端点,否则转到步骤e);d)在成功地接收到所述传送的分组时,将指示所述分组被成功接收的确认,从所述多个端点的至少一个对应目的端点传送到发送端点;e)在所述传送结束信号已经产生以后,在所述的发送端点上提供该信号,该信号只有在来自所述至少一个对应目的端点的所述确认已经由所述发送端点接收到之后才产生;e.1)确定指示所述分组被成功接收的所述确认是否由所述发送端点接收到;e.2)如果没有,则将所述分组保留在所述对列的首部或者将所述分组返回到所述队列的首部,并且将所述队列设置成等待重试状态,否则转到步骤f);e.3)确定对应的等待重试计时器是否被启动;e.4)如果所述对应的等待重试计时器被确定为关闭,则启动所述对应的等待重试定时器;并且e.5)转到步骤g);f)将所述传送的分组从所述队列的首部去除,或者保留从所述队列首部去除的所述传送分组;g)确定是否有至少一个分组将被从不处于所述等待重试状态的所述多个队列中的任何一个中传送出去;h)如果在步骤g)中确定至少有一个分组将被传送,则传送不处于所述等待重试状态的、所述多个对列的所述队列或者其他队列首部的另一个分组,并且转到步骤d);并且所述方法还包括步骤通过使对应于所述期满的等待重试定时器的所述多个队列中的每一个去除所述等待重试状态,随时维护所述发送端点上期满的等待重试定时器,并且转到步骤b)。
全文摘要
一种在网络通信系统中发送数据分组的方法,包括步骤:只有在队列没有处于等待重试状态,且不具有未结束的传输时,随时将来自其中一个队列首部的分组,从所述发送端点传送到至少一个对应的目的端点。如果从队列的至少一个对应目的端点接收到一个指示该分组已经被成功接收的确认,在所述发送端点随时提供一个用于发送分组的传送结束信号,否则将该队列设置成等待重试状态。在经过一个时间周期之后,使该队列去除等待重试状态。
文档编号H04L1/16GK1349333SQ01122620
公开日2002年5月15日 申请日期2001年6月26日 优先权日2000年6月29日
发明者道格拉斯·斯特里特·道德林 申请人:朗迅科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1