传输媒介拥塞期间的消息驮载的制作方法

文档序号:7608598阅读:250来源:国知局
专利名称:传输媒介拥塞期间的消息驮载的制作方法
技术领域
本发明涉及网络连接的计算机,特别是涉及在通信媒介拥塞期间网络计算机通信的改进方案。
在OSI参考模型的传输层,众所周知传输控制协议(TCP)包括这样一个特征,其中已产生的用户信息消息的计算机传输被推迟一段时间,以允许同一计算机端口产生随后的用户信息消息并发给相同的目的节点,例如第一个用户信息消息一同收集成单个分组用于传输。启动TCP的此消息延迟特征是可选择的。根据这方案,所有产生的用户信息消息都被TCP阻止在传输层一段时间,而与传输媒介是否拥塞无关。在延迟周期期满之后,收集的由同一计算机端口产生并发给同一目的节点的用户信息消息在单个分组内传送,而发给不同目的地计算机或来源于计算机的不同端口并发给同一目的地计算机的用户信息消息在单独的分组内传输。因为所有产生的用户信息消息的传输都被TCP推迟在传输层,与传输媒介是否拥塞无关,此特征非常不适于实时应用。
本发明的综述当计算机检测到网络传输媒介上的拥塞时,它制止发送分组。计算机改为将任何要传输的消息存储在存储器中。所有要传输的发给同一目的地收信人的计算机的消息保存在同一缓冲器中。可选择地,每个消息封装成单个分组,而且分组保存在缓冲器中。在这两种情况下,不同的缓冲器被分配给每个识别的目的地收信人的计算机用于要传输的消息。当传输媒介上的拥塞情况平息时,存储在给定缓冲器内的一个或多个消息从存储器中检索出并封装在单个分组内,该分组发给与给定缓冲器有关的目的地收信人的计算机。可选择地,存储的单个分组从存储器中检索出。然后该分组通过传输媒介发送到识别的目的地收信人的计算机。
附图的简短描述当结合附图参考以下的详细说明时,可以获得对本发明方法和装置更完整的理解,其中

图1是说明现有技术消息传输方案的网络连接的计算机系统的方框图;图2是说明根据本发明第一个实施例的消息传输方案的网络连接的计算机系统的方框图;图3是说明根据本发明第二个实施例的消息传输方案的网络连接的计算机系统的方框图;图4A-4D是说明根据本发明消息传输方案的发送计算机操作的流程图;和图5是说明本发明图3C-3D过程端口独立的消息流的过程图。
附图的详细描述拥塞是互连网络连接的计算机的传输媒介内相对经常发生的事情。当这种拥塞发生时,消息传递失败,发送计算机必须重发失败的消息。同时,发送计算机将消息缓冲在该特定消息所专用存储器的预留部分。如果拥塞事件使得多个不同的消息传递事件失败,则计算机将每个这种失败的消息缓冲在存储器中单独的预留部分。计算机产生的消息传输所一般使用的技术在图1中示出,其中表示了网络连接的计算机系统的方框图。
多个计算机10(1)-10(n)由至少一个传输媒介12在一网络结构中彼此互连。第一计算机10(1)希望将多个消息14(1)-14(5)发送到多个其它的计算机10(2)-10(3)。例如发给计算机10(2)的第一个消息14(1)封装在分组16中和发自第一计算机10(1),但由于传输媒介12目前出现的拥塞没能传递到收信人的计算机10(2)。响应这种失败,第一计算机10(1)将消息14(1)缓冲在存储器20的预留部分18(1)。第一计算机然后在从存储器20检索消息14(1)并尝试重发分组16之前延迟一定量的时间。同时,第一计算机10(1)可能有其它的消息14(2)-14(5)要发送,同样在将分组16传输到相应收信人的计算机10(2)-10(3)的尝试中失败(由于继续的拥塞)。对于每次这种失败的传输尝试,第一计算机10(1)将消息14(2)-14(5)分别缓冲在存储器20中每个单独的预留部分18(2)-18(5),并在尝试重发分组16之前延迟规定的时间量。
一旦对于每个相应消息的规定时间量期满,则第一计算机10(1)从存储器20中检索消息并尝试重发。这些尝试依次从存储的第一个消息14(1)开始进行,并继续(根据规定的延迟时间)直到为每个消息进行重发尝试。如果拥塞情形消除,则这些重发尝试很可能成功。但是,如果拥塞仍然存在,则这些重发尝试会失败。如果这种情况发生,则再次重复现有技术传输方案的缓冲和延迟过程直到每个消息都被成功发送。
如上所述,在图1说明的现有技术传输方案,尽管最终安全的传递每个消息,但在效率方面还有许多待改进之处。无论传输尝试是否成功,第一计算机10(1)和传输媒介12都必须为每次尝试消耗一定量的工作负荷。当消息(和由此它们对应的分组)长度较短时,此固定部分的处理经常代表所消耗工作负荷的主导部分,当递送失败时所有的工作都浪费了。于是需要一种更有效的传输方案解决由于媒介拥塞导致递送失败的消息重发。
现在参考图2,其中表示了网络连接的计算机系统的方框图,说明根据本发明第一实施例的消息传输方案。多个计算机30(1)-30(3)由至少一个传输媒介32在一网络结构中彼此互连。第一计算机30(1)需要一定的时间将多个消息34(1)-34(5)发送到多个其它的计算机30(2)-30(3)。例如发给计算机30(2)的第一消息34(1)封装在分组36中并发自第一计算机30(1),并由传输媒介32成功递送到收信第二计算机30(2)。例如发给计算机30(2)的第二个消息34(2)封装在分组36中和发自第一计算机30(1),但由于传输媒介32目前出现的拥塞没能传递到收信人的计算机30(2)。响应这种失败,第一计算机30(1)将消息34(2)缓冲在存储器40的预留部分38(1),该存储器40分配给第二计算机30(2)编址的消息。存储器40中分配的缓冲部分38(1)的大小远远大于保存消息34(2)所必须的大小,事实上最好足够大到存储多个消息。然后第一计算机30(1)延迟必要的时间量以完成两个目标。主要的目标是让传输媒介32的拥塞情况在尝试重发之前平息。次要的目标是在经历拥塞情况期间等待,看看第一计算机30(1)在拥塞期间是否需要发送任何其它的也发给第二计算机30(2)的消息34,如果是,则将这些消息(正如下面要更详细讨论的)包含在重发到第二计算机的单个分组中。
接下来发给第三计算机30(3)的第三消息34(3)需要由第一计算机30(1)发送。认识到传输媒介32拥塞情况的继续存在,第一计算机30(1)将消息34(3)缓冲在存储器40的预留部分38(2),该预留部分分配给发给第三计算机30(3)的消息。存储器40中分配的缓冲部分38(2)的大小远远大于保持消息34(3)所必须的大小,事实上最好足够大到存储多个消息。再一次,第一计算机30(1)然后延迟必要的时间量以完成上述关于第三消息34(3)的两个目标。
接下来发给第二计算机30(2)的第四消息34(4)需要由第一计算机30(1)发送。认识到传输媒介32拥塞情况的继续存在,第一计算机30(1)将消息34(4)缓冲在存储器40的先前预留部分38(1),该预留部分分配发给第二计算机30(2)的消息。因此,消息34(4)保存在与先前存储的第二消息34(2)相同的预留部分38(1),该第二消息34(2)也发给第二计算机30(2)。再一次,第一计算机30(1)延迟必要的时间量分别完成关于存储的第二和第四消息34(2)和34(4)上述的两个目标。
接下来再次发给第二计算机30(2)的第五消息34(5)需要由第一计算机30(1)发送。认识到传输媒介32拥塞情况的继续存在,第一计算机30(1)将消息34(5)缓冲在存储器40先前的预留部分38(1),该预留部分分配发给第二计算机30(2)的消息。因此,消息34(5)保存在与先前存储的第二和第四消息34(2)和34(4)相同的预留部分38(1),该第二和第四消息34(2)和34(4)也发给第二计算机30(2)。再一次,第一计算机30(1)延迟必要的时间量以分别完成关于第二、第四和第五消息34(2)、34(4)和34(5)上述的两个目标。
在此时间点,第一计算机30(1)检测到传输媒介32的拥塞情况已经平息。因此,已经满足延迟周期的主要目标。我们还注意到关于发给第二计算机30(2)的消息已经满足延迟周期的次要目标。在这方面,存储器40中用于缓冲发给第二计算机30(2)的消息34的预留部分38(1)包含第二、第四和第五消息34(2)、34(4)和34(5)。尽管关于发给第三计算机30(3)的消息34并没有满足延迟周期的次要目标,我们并不关心关于重发给第三计算机30(3)的单个缓冲消息34(3)在效率上没有丧失,而是关心关于存储的第二、第四和第五消息34(2)、34(4)和34(5)的单个分组重发导致的显著效率优点。
响应检测到的传输媒介32的非拥塞情形,第一计算机30(1)从存储器40的预留部分38(1)检索消息34(2)、34(4)和34(5),封装成发给第二计算机30(2)的单个分组36,和(假设没有遇到新的拥塞)成功通过传输媒介32发送该分组。这样,消息34(2)、34(4)和34(5)本质上“驮载”成单个分组传输。有利地是,此单个分组需要用于发送使用的CPU和传输媒介工作效力比用图1所示现有技术方案教导的依次在单独的分组发送的消息所消耗的少得多。第一计算机30(1)从存储器40的预留部分38(2)进一步检索消息34(3),封装其成单个分组36发给第三计算机30(3),和成功地通过传输媒介32发送分组。
现在参考图3,其中表示了网络连接的计算机系统的方框图,说明根据本发明第二实施例的消息传输方案。多个计算机30(1)-30(3)由至少一个传输媒介32在一网络结构中彼此互连。第一计算机30(1)需要一定的时间将多个消息34(1)-3 4(5)发送到多个其它的计算机30(2)-30(3)。例如发给计算机30(2)的第一消息34(1)封装在分组36中并发自第一计算机30(1),并由传输媒介32成功递送到收信第二计算机30(2)。然后,再一次,例如发给计算机30(2)的第二个消息34(2)封装在分组36中和发自第一计算机30(1),但由于传输媒介32目前出现的拥塞没能传递到收信人的计算机30(2)。响应这种失败,第一计算机30(1)将消息34(2)封装成分组36(1),并将该分组存储在存储器40的预留部分38(1),该预留部分分配给编址的第二计算机30(2)的消息。存储器40中的分配部分38(1)的大小远远大于保持只包含消息34(2)的分组36(1)所必须的大小,事实上最好足够大到存储包含多个消息的分组。然后第一计算机30(1)延迟必要的时间量以完成两个目标。主要的目标是让传输媒介32的拥塞情况在尝试重发之前平息。次要的目标是在经历拥塞情况期间等待,看看第一计算机30(1)在拥塞期间是否需要发送任何其它的也发给第二计算机30(2)的消息34,如果是,则将这些消息(正如下面要更详细讨论的)包含在重发到第二计算机的单个分组中。
接下来发给第三计算机30(3)的第三消息34(3)需要由第一计算机30(1)发送。认识到传输媒介32拥塞情况的继续存在,第一计算机30(1)将消息34(3)封装成分组36(2)并将分组存储在存储器40的预留部分38(2),该预留部分分配给发给第三计算机30(3)的消息。
存储器40中的分配部分38(2)的大小远远大于保持只包含消息34(3)的分组36(1)所必须的大小,事实上最好足够大到存储包含多个消息的分组。再一次,第一计算机30(1)然后延迟必要的时间量以完成上述关于第三消息34(3)的两个目标。
接下来发给第二计算机30(2)的第四消息34(4)需要由第一计算机30(1)发送。认识到传输媒介32继续存在的拥塞情况,第一计算机30(1)将消息34(4)与前面的消息34(2)封装成存储在存储器40以前预留的部分38(1)的分组36(1),该预留部分分配给发给第二计算机30(2)的消息。因此,消息34(4)保存在与先前存储的第二消息34(2)相同的预留部分38(1)的存储器40中,该第二消息34(2)也发给第二计算机30(2)。再一次,第一计算机30(1)延迟必要的时间量以分别完成上述的关于存储的第二和第四消息34(2)和34(4)的两个目标。
接下来再次发给第二计算机30(2)的第五消息35(5)需要由第一计算机30(1)发送。认识到传输媒介32继续存在的拥塞情况,第一计算机30(1)将消息34(5)与前面的消息34(2)和34(4)封装成存储在存储器40以前预留的部分38(1)的分组36(1),该预留部分分配给发给第二计算机30(2)的消息。因此,消息34(5)保存在与先前存储的第二和第四消息34(2)和34(4)相同的预留部分38(1)的存储器40中,该第二和第四消息34(2)和34(4)也发给第二计算机30(2)。再一次,第一计算机30(1)延迟必要的时间量以分别完成上述的关于第二、第四和第五消息34(2)、34(4)和34(5)的两个目标。
在此时间点,第一计算机30(1)检测到传输媒介3 2的拥塞情况已经平息。因此,已经满足延迟周期的主要目标。我们还注意到关于发给第二计算机30(2)的消息已经满足延迟周期的次要目标。在这方面,存储器40中用于缓冲发给第二计算机30(2)的消息34的预留部分38(1)包含第二、第四和第五消息34(2)、34(4)和3 4(5)。尽管关于发给第三计算机30(3)的消息34并没有满足延迟周期的次要目标,我们并不关心重发寻址到第三计算机30(3)的单个缓冲消息34(3)的效率没有丧失,而是关心存储的第二、第四和第五消息34(2)、34(4)和34(5)的单个分组重发导致的显著效率优点。
响应检测到的传输媒介32的非拥塞情形,第一计算机30(1)从存储器40的预留部分38(1)检索包含消息34(2)、34(4)和34(5)的分组3(1)并成功地通过传输媒介32发送分组到第二计算机。这样,消息34(2)、34(4)和34(5)本质上“驮载”成单个分组传输。有利地是,此单个分组需要用于发送使用的CPU和传输媒介工作效力比用图1所示现有技术方案教导的依次在单独的分组发送的消息所消耗的少得多。第一计算机30(1)从存储器40的预留部分38(2)进一步检索包含消息34(3)的分组36(2),并成功地通过传输媒介32发送分组到第三计算机。
现在参考图4A-4D,其中表示发送计算机根据本发明的消息传输方案操作的流程图。首先参考图4A-4B。在图4A,计算机在判定步骤50检验传输媒介上是否存在任何拥塞,该拥塞阻碍消息的成功递送。如果是(路径52),消息在步骤54封装成以该消息发给目的地计算机的分组(该消息与任何其它以前处理的消息一起也发给同一目的地),在步骤56保存该分组。然后该过程返回。如果否(路径58),在步骤60传输消息。这里应当注意在步骤60的传输行为可能包括使用零个或多个封装。然后该过程返回。如果拥塞已经结束(路径62),该过程移到图4B。在图4B中,在步骤64确定是否存在任何未发送和存储的消息。如果否(路径66),该过程返回。如果是(路径68),在步骤70确定是否出现任何新的阻止消息传输的拥塞情形。如果是(路径72),该过程返回。如果否(路径74),在步骤76检索以前封装的分组和存储的消息和传输相关的分组。这里应当注意在步骤76的传输行为可能包括使用零个或多个封装。然后该过程返回(路径78)和重复直到所有缓冲的消息都通过发送它们相关的分组传输(或者新的阻碍传输的拥塞情形出现)。
接下来参见图4C-4D。在图4C,计算机在判定步骤80检验传输媒介上是否存在任何拥塞,该拥塞将阻碍消息的成功递送。如果是(路径82),消息在步骤84与任何其它的以前存储的发给同一目的地计算机的消息一起保存。然后该过程返回。如果否(路径86),在步骤88传输消息。这里应当注意在步骤88的传输行为可能包括使用零个或多个封装。然后该过程返回。如果拥塞已经结束(路径90),该过程移到图4D。在图4D中,在步骤92确定是否存在任何未发送和存储的消息。如果否(路径94),该过程返回。如果是(路径96),在步骤98确定是否出现任何新的阻止消息传输的拥塞情形。如果是(路径100),该过程返回。如果否(路径102),以前存储和发给同一目的地的消息在步骤104被检索和封装成一个分组,而且在步骤106传输该分组。这里应当注意在步骤106的传输行为可能包括使用零个或多个额外的封装。然后该过程返回(路径108)和重复直到所有缓冲的消息都通过发送它们相关的分组传输(或者新的阻碍传输的拥塞情形出现)。
根据公知的用于通信系统的OSI模型,图4A-4D所说明本发明的过程最好在链路层实现,而不是在上述现有技术TCP业务经历的传输层。具有这种结构,发给相同目的地计算机的消息可以在单个分组中一起驮载,与它们在发送计算机内的特殊起始端口或目的地计算机内的目的地端口无关。此优点在图5的消息流进程图中说明,其中在发送计算机104(1)的端口一102(1)发起的第一消息100(1)发给某一目的地计算机104(2)的端口一102(1);和在发送计算机104(1)的端口二102(2)发起的第二消息100(2)发给某一目的地计算机104(2)的端口二102(2)。
根据图4C-4D的过程,响应传输媒介106上的拥塞情况,该传输媒介106连接发送计算机104(1)至目的地计算机104(2),发送计算机将消息100(1)和100(2)缓冲在其存储器110的预留部分108(1),该缓冲部分分配发给目的地计算机104(2)的消息。存储器110中分配的缓冲部分108(1)的大小一般远远大于保持两个消息100(1)和100(2)所必须的大小,事实上最好足够大到保存多个以上的消息,如果必要的话。也应注意消息100(1)和100(2)一起保存在预留部分108(1),因为它们发给相同的目的地计算机104(2),而与它们发自发送计算机104(1)的不同端口102无关,这些消息指定递送到目的地计算机104(2)的不同端口102。发送计算机104(1)然后延迟必要的时间量以完成上述的两个目标。
响应检测到的传输媒介106的非拥塞情形,发送计算机104(1)从存储器110的预留部分108(1)检索消息100(1)和100(2),封装其成发给目的地计算机104(2)的单个分组112,并成功通过传输媒介106发送该分组。此操作在发送计算机104(1)内的OSI模型的链路层执行。在目的地计算机104(2),以及OSI模型的链路层,收到的分组112被分成两个消息成分,第一消息100(1)递送到第一端口102(1),第二消息递送到第二端口102(2)。
当然应当理解图4A-4B中用于在第一计算机存储器封装分组的过程可以交替地用于图5所示的多端口运输环境中。
尽管在此说明和描述的是在单个传输媒介连接网络连接的多个计算机的环境中,但应当理解本发明可以在这样一种网络结构中实现,其中使用多个传输媒介互连多个计算机。在这种结构中,对于每个传输媒介执行拥塞测试,只关于检测为拥塞的媒介实现该传输方案,该传输方案缓冲类似编址的消息,用于随后在单个分组内驮载的传递。对于通过非拥塞媒介传送的所有其它消息执行常规处理和消息处理。
尽管本方法的优选实施例和本发明的装置已经在附图中说明和在上述的详细说明中描述,应当理解本发明并不局限于所公开的实施例,而是能进行多种重新调整、修改和替换而没有背离以下权利要求书陈述和定义的本发明的精神。
权利要求
1.一种使发送计算机通过传输媒介发送消息的方法,包括步骤检测传输媒介上的拥塞情况;响应于此,在发送计算机存储器的预留部分缓冲发给同一目的地计算机的多个计算机产生的消息,分配该预留部分以存储发给目的地计算机的消息;检测传输媒介上的非拥塞情况;响应于此,从发送计算机存储器的预留部分检索多个消息;将检索到的多个消息封装在发给目的地计算机的单个分组;和通过该传输媒介发送单个分组到目的地计算机。
2.如权利要求1所述的方法,其中多个消息的至少两个发自发送计算机内的不同端口。
3.如权利要求1所述的方法,其中至少两个消息指定递送到目的地计算机内的不同端口。
4.如权利要求1所述的方法,其中在OSI链路层的发送计算机内执行封装步骤。
5.连接到一传输媒介的消息发送计算机,包括端口,用于发起多个发给同一目的地计算机的计算机产生的消息;计算机内的存储器,包括响应传输媒介上检测到的拥塞情况分配用来存储发给目的地计算机的多个消息的预留部分;和装置,响应传输媒介上非拥塞情况的检测,用于从发送计算机存储器的预留部分检索多个消息;将检索到的多个消息封装在发给目的地计算机的单个分组;和通过该传输媒介发送单个分组到目的地计算机。
6.如权利要求5所述的计算机,进一步包括多个端口,用于发起多个发给同一目的地计算机的计算机产生的消息,在不同端口产生的多个消息保存在分配给该目的地计算机的存储器的预留部分。
7.如权利要求6所述的计算机,其中至少两个消息指定递送到目的地计算机内的不同端口。
8.如权利要求5所述的计算机,其中封装行为在OSI链路层的发送计算机内执行。
9.一种使发送计算机通过传输媒介发送消息的方法,包括步骤检测传输媒介上的拥塞情况;响应于此,将多个发给同一目的地计算机的计算机产生的消息封装在单个分组内并将分组存储在发送计算机存储器的预留部分,分配该预留部分存储发给目的地计算机的分组;检测传输媒介上的非拥塞情况;响应于此,从发送计算机存储器的预留部分检索存储的单个分组;和通过该传输媒介发送单个分组到目的地计算机。
10.如权利要求9所述的方法,其中多个消息的至少两个发自发送计算机内的不同端口。
11.如权利要求9所述的方法,其中至少两个消息指定递送到目的地计算机内的不同端口。
12.如权利要求9所述的方法,其中在OSI链路层的发送计算机内执行封装步骤。
13.连接到一传输媒介的消息发送计算机,包括端口,用于发起多个发给同一目的地计算机的计算机产生的消息;计算机内的存储器,包括响应传输媒介上检测到的拥塞情况分配用来存储封装了发给目的地计算机的多个消息的单个分组的预留部分;和装置,响应传输媒介上非拥塞情况的检测,用于从发送计算机存储器的预留部分检索存储的单个分组;和通过该传输媒介发送单个分组到目的地计算机。
14.如权利要求13所述的计算机,进一步包括多个端口,用于发起多个发给同一目的地计算机的计算机产生的消息,在不同端口产生的多个消息封装成单个分组,该分组保存在分配给该目的地计算机的存储器的预留部分。
15.如权利要求13所述的计算机,其中至少两个消息指定递送到目的地计算机内的不同端口。
16.如权利要求13所述的计算机,其中封装行为在OSI链路层的发送计算机内执行。
全文摘要
计算机(30(1))检测网络传输媒介(32)上的拥塞(50,80)并响应于此制止发送任何包含消息的分组。这些要传送的消息改为由计算机存储(56,84)在存储器(40)中。在一个实施例中,发给同一目的地收信人的计算机的每个消息存储(84)在公用缓冲区(38),为了要传送的消息,将不同的缓冲器分配给每个已识别的目的地收信人的计算机(30(2)和30(3))。在另一个实施例中,每个这种消息封装(54)成单个分组(36),该分组存储(56)在预留部分。当传输媒介上的拥塞情况平息(58,86)时,存储在给定缓冲器内的一个或多个消息从存储器中检索出,并封装(104)在单个分组36)内,该分组发给与给定缓冲器有关的目的地收信人的计算机。可选择的,存储的单个分组从存储器中检索出。单个分组然后通过传输媒介发送(76、106)到识别的目的地收信人的计算机。
文档编号H04L12/56GK1437836SQ00815889
公开日2003年8月20日 申请日期2000年8月25日 优先权日1999年9月21日
发明者J·马洛伊 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1