CN101521635A - 一种报文传输方法及装置 - Google Patents
一种报文传输方法及装置 Download PDFInfo
- Publication number
- CN101521635A CN101521635A CN200910081818A CN200910081818A CN101521635A CN 101521635 A CN101521635 A CN 101521635A CN 200910081818 A CN200910081818 A CN 200910081818A CN 200910081818 A CN200910081818 A CN 200910081818A CN 101521635 A CN101521635 A CN 101521635A
- Authority
- CN
- China
- Prior art keywords
- message
- control
- queue
- transmission
- control channel
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种报文传输方法及装置。所述方法包括:发送方在控制通道处于空闲态时,为所述控制通道预留至少2个队列元素,并在有N个控制报文待发送时,为所述控制通道预留至少N+1个队列元素;发送方在发送控制报文前,将控制传输协商请求报文填充到发送队列进行发送,并控制在接收到对应的控制传输协商回应报文前,数据通道发送的数据报文的个数不超过预设值;发送方接收到对应的控制传输协商回应报文后,对所述N个控制报文分别设置第一标记后填充到发送队列进行发送。本发明实现了逻辑通道在物理通路上的带宽合理分配,并能够避免控制报文传输时的通路拥塞。
Description
技术领域
本发明涉及分布式系统,特别涉及一种分布式系统中的报文传输方法及装置。
背景技术
分布式路由器各子系统(本文中子系统的含义包括主系统)之间通过物理通路连接,根据通信内容将物理通路划分为两个逻辑通道:控制通道和数据通道,并由硬件队列负责报文在逻辑通道和物理通路之间的转换收发。发送方向,逻辑通道将报文放入发送队列后,硬件将发送队列中报文依次发送至物理通路上;接收方向,硬件从物理通路上接收报文并依次放入接收队列,逻辑通道从接收队列中获取报文并处理。于是,通过对发送队列的划分可实现逻辑通道在物理通路上的带宽分配。
数据通道的传输量大,一般情况下应为数据通道分配尽可能大的带宽以保证传输性能。控制通道的传输量小,但及时性、可靠性要求高。另外,控制通道还具有突发性、顺序性等特点。所以,应为控制通道分配尽可能大的带宽以保证突发控制报文的及时发送,这就与数据通道的大带宽要求产生矛盾。这一矛盾解决的合理性决定了子系统之间的通信性能。而目前,子系统之间的通信性能严重制约了分布式路由器整体性能的提升。于是,逻辑通道在物理通路上的带宽合理分配就成了分布式路由器性能提升的关键之一。
为控制通道分配合理的带宽只能实现控制报文的及时发送,不能保证对端系统的正确接收,即合理的带宽分配并不能满足控制通道的可靠性要求。由于各子系统之间的通信属于分布式系统内部通信,故子系统报文接收错误通常是由于接收端线路拥塞所致,也就是特定时刻硬件接收报文超出了接收队列长度而导致丢包。于是,控制传输时物理通路的拥塞避免就成了分布式路由器性能提升的关键之二。
上述两个问题来源于分布式路由器,却是分布式系统的共性问题。所以,问题的解决对分布式系统性能提升的意义重大,应用领域广泛。
参照图1,现有技术方案A中,子系统间的控制通道与数据通道共享一条物理通路,各通道发送时总是尽可能占用物理通路的最大带宽。通道发送报文时首先判断发送队列中是否有空闲,如果有则直接将报文填充至发送队列并由硬件负责发送至物理通路,如果没有则缓存并等待发送队列空闲时再次填充(控制报文),或者直接丢弃(数据报文)。所以,控制通道和数据通道共享物理通道时,可通过控制各通道判断发送队列是否空闲的标准来实现物理通路的分配。
在介绍通道带宽分配之前,先明确几个定义:
TTL:Transmit Total Length硬件发送队列总长度
TCL:Transmit Current Length硬件发送队列当前填充长度
TIL:Transmit Idle Length硬件发送队列当前空闲长度
TTL=TCL+TIL
RTL:Receive Total Length硬件接收队列总长度
RCL:Receive Current Length硬件接收队列当前填充长度
RIL:Receive Idle Length硬件接收队列当前空闲长度
RTL=RCL+RIL
方案A中,数据通道判断队列存在空闲的标准是TIL>0;控制通道判断队列存在空闲的标准是TIL>0。所以,各通道总是尽可能的占用最大带宽。
于是,当子系统间数据流量超大时会出现发送队列被数据报文填满的情况,导致控制通道判断队列无空闲而传输失败。根据控制通道的可靠性要求,需要重传模块对控制报文进行重新传输。
另外,数据流量超大时会出现接收端接收队列被占满的情况,导致后续报文丢弃。于是,需要接收端接收控制报文后发送ACK(控制回应报文)确认,并配合发送端的重传模块实现控制通道的可靠性要求。
由于控制通道的顺序性特点,在确认当前控制报文正确传输之前,下一个控制报文被缓存,等待收到ACK后再进行发送。
现有技术方案A的缺点:
(1)控制报文发送时,由于本端发送队列被数据通道完全占用而导致控制报文重传。
(2)控制报文发送后,由于对端接收队列被完全占用即通路拥塞,控制报文丢失导致重传。
(3)对端接收控制报文后发送ACK时,由于对端发送队列被数据通道完全占用而导致ACK丢弃使得控制报文重传。
(4)对端接收控制报文后发送ACK后,由于本端接收队列被完全占用即通路拥塞,ACK丢失导致控制报文重传。
上述原因导致控制报文的多次重传,浪费物理通路带宽并挤压了数据通道,降低数据通信性能,导致数据模块内数据堆积,从而进一步恶化了控制通道竞争物理通路的成功率,降低了控制通道的及时性、可靠性。而且,ACK传输占用控制通道带宽,降低了控制通道的有效利用率;重传模块的实现较为复杂,增加了控制通道的可靠性风险。
参照图2,现有技术方案B中,子系统间的控制通道与数据通道共享一条物理通路,为控制通道留出固定带宽以保证控制报文可及时填入发送队列。
具体实现为:数据通道判断队列存在空闲的标准是TIL>2;控制通道判断队列存在空闲的标准是TIL>0。于是,不论数据流量多大,控制报文判断发送队列状态时总为空闲。为控制通道预留队列长度为2,是因为可能会出现控制报文与ACK同时传输的情况。
现有技术方案B的缺点:
(1)控制报文发送后,由于对端接收队列被完全占用即通路拥塞,控制报文丢失导致重传。
(2)对端接收控制报文后发送ACK后,由于本端接收队列被完全占用即通路拥塞,ACK丢失导致控制报文重传。
上述原因导致控制报文的多次重传,浪费物理通路带宽并挤压了数据通道,降低数据通信性能,导致数据模块内数据堆积,从而进一步恶化了控制通道竞争物理通路的成功率,降低了控制通道的及时性、可靠性。而且,ACK传输占用控制通道带宽,降低了控制通道的有效利用率;重传模块的实现较为复杂,增加了控制通道的可靠性风险。
参照图3,现有技术方案C中,子系统间增加一条物理通路供控制通道专用,控制通道、数据通道物理分离,互不影响,避免了逻辑通道之间的带宽分配矛盾,保证了控制通道的发送及时性。但由于不能避免控制传输时的线路拥塞,故仍需重传模块配合报文ACK来保证控制通道的可靠性。
现有技术方案C的缺点:
(1)控制报文发送后,由于对端接收队列被完全占用即通路拥塞,控制报文丢失导致重传。
(2)对端接收控制报文后发送ACK后,由于本端接收队列被完全占用即通路拥塞,ACK丢失导致控制报文重传。
上述原因导致控制报文的多次重传,浪费物理通路带宽,降低了控制通道的及时性、可靠性。ACK传输占用控制通道带宽,降低了控制通道的有效利用率;重传模块的实现较为复杂,增加了控制通道的可靠性风险。而且,新增物理通路增加系统成本,控制传输量少的特点决定新增物理通路空闲率较高,浪费物理带宽,新增物理通路专供控制通道,故数据通信性能提升有限;新增物理通路需硬件支持,方案应用范围受实际硬件设计限制。
发明内容
本发明所要解决的技术问题是提供一种报文传输方法及装置,实现逻辑通道在物理通路上的带宽合理分配,并避免控制报文传输时的通路拥塞。
为解决上述技术问题,本发明提供技术方案如下:
一种报文传输方法,应用于分布式系统中,所述方法包括:
发送方在控制通道处于空闲态时,为所述控制通道预留至少2个队列元素,并在有N个控制报文待发送时,为所述控制通道预留至少N+1个队列元素,其中,N为大于0的整数;
发送方在发送控制报文前,将控制传输协商请求报文填充到发送队列进行发送,并控制在接收到对应的控制传输协商回应报文前,数据通道发送的数据报文的个数不超过预设值,使得在传输所述N个控制报文时接收方不发生通路拥塞;
发送方接收到对应的控制传输协商回应报文后,对所述N个控制报文分别设置第一标记后填充到发送队列进行发送,以使接收方接收到所述带有第一标记的控制报文后,不向发送方发送控制回应报文。
上述的方法,其中,为控制通道预留队列元素包括:将数据通道判断发送队列存在空闲的标准设置为TIL>M,将控制通道判断发送队列存在空闲的标准设置为TIL>0,TIL为发送队列的当前空闲长度,M为预留的队列元素的个数,M≥1。
上述的方法,其中,所述预设值为:RTL-N-1,RTL为接收方的接收队列长度。
上述的方法,其中,还包括:
发送方在控制通道处于初始态时,向接收方发送控制通道初始化请求报文,并在接收到控制通道初始化回应报文后,从所述控制通道初始化回应报文中获取RTL,其中,所述控制通道初始化回应报文为接收方接收到所述控制通道初始化请求报文后,向发送方发送的携带有RTL的控制报文。
上述的方法,其中,还包括:
若在所述预设值个数据报文发送完成前的预定时间内,还没有收到所述控制传输协商回应报文,则重新将控制传输协商请求报文填充到发送队列进行发送,并重新对数据通道发送的数据报文的个数进行控制;
若在发送队列空闲且等待接收控制传输协商回应报文的时间超过预设的第一时间时,还没有收到所述控制传输协商回应报文,则重新将控制传输协商请求报文填充到发送队列进行发送,并重新对数据通道发送的数据报文的个数进行控制;
若对所述控制传输协商请求报文的重传次数超过预设次数,则放弃对所述控制传输协商请求报文以及所述N个控制报文的传输。
上述的方法,其中,还包括:
若发送方在预设的第二时间内没有收到对应于所述N个控制报文的控制回应报文,则对所述N个控制报文进行重传,其中,所述对应于所述N个控制报文的控制回应报文为接收方接收到所述N个控制报文后,向发送方发送的一个控制报文。
上述的方法,其中,还包括:
发送方在待发送的控制报文的个数N等于1时,直接对控制报文设置第二标记后填充到发送队列进行发送,以使接收方接收到所述带有第二标记的控制报文后,向发送方发送对应的控制回应报文;
若发送方在预设的第三时间内没有收到所述对应的控制回应报文,则对所述控制报文进行重传。
上述的方法,其中,还包括:
在所述控制报文发送完成后,将所述控制通道恢复为空闲态。
一种报文传输装置,包括:
队列元素预留模块,用于在控制通道处于空闲态时,为所述控制通道预留至少2个队列元素,并在有N个控制报文待发送时,为所述控制通道预留至少N+1个队列元素,其中,N为大于0的整数;
协商模块,用于在发送控制报文前,将控制传输协商请求报文填充到发送队列进行发送,并控制在接收到对应的控制传输协商回应报文前,数据通道发送的数据报文的个数不超过预设值,使得在传输所述N个控制报文时接收方不发生通路拥塞;
控制报文发送模块,用于在发送方接收到对应的控制传输协商回应报文后,对所述N个控制报文分别设置第一标记后填充到发送队列进行发送,以使接收方接收到所述带有第一标记的控制报文后,不向发送方发送控制回应报文。
上述的装置,其中,为控制通道预留队列元素包括:将数据通道判断发送队列存在空闲的标准设置为TIL>M,将控制通道判断发送队列存在空闲的标准设置为TIL>0,TIL为发送队列的当前空闲长度,M为预留的队列元素的个数,M≥1。
上述的装置,其中,所述预设值为:RTL-N-1,RTL为接收方的接收队列长度。
上述的装置,其中,还包括:
接收队列长度获取模块,用于在控制通道处于初始态时,向接收方发送控制通道初始化请求报文,并在接收到控制通道初始化回应报文后,从所述控制通道初始化回应报文中获取RTL,其中,所述控制通道初始化回应报文为接收方接收到所述控制通道初始化请求报文后,向发送方发送的携带有RTL的控制报文。
上述的装置,其中,所述协商模块还用于,若在所述预设值个数据报文发送完成前的预定时间内,还没有收到所述控制传输协商回应报文,则重新将控制传输协商请求报文填充到发送队列进行发送,并重新对数据通道发送的数据报文的个数进行控制。
上述的装置,其中,所述协商模块还用于,若在发送队列空闲且等待接收控制传输协商回应报文的时间超过预设的第一时间时,还没有收到所述控制传输协商回应报文,则重新将控制传输协商请求报文填充到发送队列进行发送,并重新对数据通道发送的数据报文的个数进行控制。
上述的装置,其中,所述控制报文发送模块还用于,在待发送的控制报文的个数N等于1时,直接对控制报文设置第二标记后填充到发送队列进行发送,以使接收方接收到所述带有第二标记的控制报文后,向发送方发送对应的控制回应报文,以及,若发送方在预设的第三时间内没有收到所述对应的控制回应报文,则对所述控制报文进行重传。
上述的装置,其中,所述队列元素预留模块还用于,在所述控制报文发送完成后,将所述控制通道恢复为空闲态。
与现有技术相比,本发明的有益效果是:
通过在子系统间物理通路上动态分配通道带宽,并在控制传输前协商控制通道可靠性来避免线路拥塞,省去了各控制报文通过ACK确认对端正确接收的过程,实现数据通道最优性能的同时,提高了控制通道的及时性、可靠性及有效利用率,从而在控制通道与数据通道共享一条物理通路的情况下大幅提升了分布式系统的整体性能。
附图说明
图1为现有技术方案A的分布式系统的结构示意图;
图2为现有技术方案B的分布式系统的结构示意图;
图3为现有技术方案C的分布式系统的结构示意图;
图4为本发明实施例的报文传输方法流程图;
图5为本发明实施例的分布式系统的结构示意图;
图6为本发明实施例中控制通道的状态变迁图;
图7为本发明实施例中控制通道的初始化流程图;
图8为本发明另一实施例的报文传输方法流程图;
图9为本发明实施例中两种机制下线路传输报文数的对比图;
图10为本发明实施例的报文传输方法详细流程图;
图11为图10中Burst模式传输处理的详细流程图;
图12为本发明实施例中发送队列的一种占用情况示意图;
图13为本发明实施例中发送队列的另一种占用情况示意图;
图14为本发明实施例中发送队列的又一种占用情况示意图;
图15为本发明实施例中发送队列的又一种占用情况示意图;
图16为本发明实施例中发送队列的又一种占用情况示意图;
图17为本发明实施例中发送队列的又一种占用情况示意图;
图18为本发明实施例的报文传输装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
参照图4,本发明实施例的报文传输方法,其应用于分布式系统中,主要包括如下步骤:
步骤401:发送方在控制通道处于空闲态时,为所述控制通道预留至少2个队列元素,并在有N个控制报文待发送时,为所述控制通道预留至少N+1个队列元素,其中,N为大于0的整数;
所述空闲态是指控制通道初始化完成后,且没有控制报文待发送时所处的状态。所述为控制通道预留队列元素是指:将数据通道判断发送队列存在空闲的标准设置为TIL>M,将控制通道判断发送队列存在空闲的标准设置为TIL>0,其中,TIL为发送队列的当前空闲长度,M为预留的队列元素的个数(M≥1)。
优选地,在没有控制报文待发送时,为控制通道预留2个队列元素。
图5为本发明实施例的分布式系统的结构示意图。参照图5,子系统间的通信实现为数据通道与控制通道共享一条物理通路,控制通道空闲时预留2个队列元素,其一为控制传输协商请求报文预留,其二为控制传输协商回应报文预留,这样,在保证控制协商及时进行的前提下数据通道带宽最大,性能最高。
优选地,在有N个控制报文待发送时,为所述控制通道预留至少N+1个队列元素。
突发传输N个控制报文时,预留N+1个队列元素可保证控制协商成功时,发送队列有足够空间满足N个控制报文一次性填充的需要,即动态调大控制通道的带宽,提高了控制传输的及时性。
步骤402:发送方在发送控制报文前,将控制传输协商请求报文填充到发送队列进行发送,并控制在接收到对应的控制传输协商回应报文前,数据通道发送的数据报文的个数不超过预设值,使得在传输所述N个控制报文时接收方不发生通路拥塞;
所述预设值为不超过RTL-N-1的值,其中,RTL为接收方的接收队列长度。优选地,所述预设值为RTL-N-1。
通过对数据通道发送的数据报文的个数进行限制,可以保证在收到控制传输协商回应报文后,将N个控制报文一次性填充至发送队列不会导致对端接收队列溢出,避免控制传输时的线路拥塞,提高了控制通道的可靠性。于是,各控制报文的ACK可省去,提高了控制通道的有效利用率。
在本发明的实施例中,将控制通道状态分为:
初始态(Initial):物理通路连接状态变为连通时的控制通道状态;
空闲态(Idle):控制通道初始化完成且没有控制报文传输时的控制通道状态;
传输态(Active):控制通道控制传输协商成功后的控制通道状态。
图6为本发明实施例中控制通道的状态变迁图。参照图6,子系统间物理通路状态在系统启动时变为连通,进入初始态;在初始态,控制通道初始化完成后进入空闲态;在空闲态,为控制通道预留至少2个队列元素,并在控制传输协商成功后进入传输态;在传输态,控制报文传输完成后进入空闲态。
一般应用中,子系统间物理通路状态仅在系统启动时变为初始态,之后不再变化,控制通道初始化只进行一次。于是,控制通道状态变迁大部分时间随着控制传输的起止在空闲态与传输态之间进行。
控制通道的初始化的目的是为了获取对端RTL并保存,判断控制通道初始化完成的标准就是成功获取并保存对端RTL。
参照图7,控制通道的初始化具体流程如下:
步骤701:物理通路变为可用时更新对端RTL=0,并更新控制通道状态为Initial;
步骤702:发送控制通道初始化请求报文(CIR);
步骤703:判断在预定时间内是否收到控制通道初始化回应报文(CIA),若是,进入步骤704,否则,返回步骤702;
步骤704:根据CIA内容更新对端RTL,并更新控制通道状态为Idle。
步骤403:发送方接收到对应的控制传输协商回应报文后,对所述N个控制报文分别设置第一标记后填充到发送队列进行发送,以使接收方接收到所述带有第一标记的控制报文后,不向发送方发送控制回应报文。
控制报文发送完成后,恢复控制通道为空闲态,即预留至少2个队列元素,以实现控制通道空闲时数据通道带宽最大,性能最高。
如果子系统间存在非线路拥塞导致丢包的可能性,可在N个控制报文一次性发送后,由接收端发送一个ACK确认本次突发传输的可靠性,即,还可以在子系统中设置一重传模块,若发送方在预设的第二时间内没有收到对应于所述N个控制报文的ACK报文,则对所述N个控制报文按照上述方法进行重传,其具体实现不再赘述。
为实现控制传输协商过程中数据通道在物理通路上的连续性,需根据当前发送队列状态调整控制传输协商回应报文的等待时间。在限制的数据通道发送报文(例如,RTL-N-1个数据报文)发送完成前的预定时间内(对应于较大的数据流量),或者,在发送队列空闲且等待接收控制传输协商回应报文的时间超过预设的第一时间后(对应于较小的数据流量)仍没有收到控制传输协商回应报文,则认为本次控制传输协商超时,重新进行控制传输协商,并重新限制数据通道的发送报文数。
硬件队列发送机制与漏斗类似,只要保证发送队列中存在待发报文,则物理通路上的传输即为满载。所以,在发送队列中的最后一个数据报文发送完成之前,产生控制传输协商失败事件并重新协商,即可保证控制传输协商过程中数据通道性能基本不受影响。
进一步,若对所述控制传输协商请求报文的重传次数超过预设次数,则放弃对所述控制传输协商请求报文以及所述N个控制报文的传输。
参照图8,为本发明另一实施例的报文传输方法,其应用于分布式系统中,主要包括如下步骤:
步骤801:发送方在控制通道处于空闲态时,为控制通道预留至少2个队列元素,并在有N个控制报文待发送时,为所述控制通道预留至少N+1个队列元素,其中,N为大于0的整数;
步骤802:判断N是否等于1,若是,进入步骤803,否则,进入步骤804;
对于控制报文的传输,可以采用如下两种机制实现传输可靠性:
机制1为ACK回应机制:各控制报文通过ACK回应实现传输可靠性,理论上N个控制报文传输最终在线路上实现为N×2个报文传输。
机制2为控制传输协商机制:各控制报文通过控制通道协商实现传输可靠性,理论上N个控制报文传输最终在线路上实现为N+2个报文传输。
图9为本发明实施例中两种机制下线路传输报文数的对比图,从图中可以看出,一次传输1个控制报文时,由控制报文ACK保证可靠性的线路传输报文少;一次传输2个及2个以上控制报文时,由控制通道协商机制保证可靠性的线路传输报文少。
于是,本发明实施例按一次传输报文个数将控制传输模式分为Burst(突发)模式和Single(单一)模式,并分别采用相应的机制实现传输可靠性:
Burst模式:一次传输多个控制报文,由控制传输协商机制保证传输可靠性,即,执行从步骤804开始的步骤。
Single模式:一次传输一个控制报文,由ACK回应机制保证传输可靠性,即,执行步骤803。
步骤803:发送方直接对控制报文设置第二标记后填充到发送队列进行发送,以使接收方接收到所述带有第二标记的控制报文后,向发送方发送对应的控制回应报文;
若发送方在预设的第三时间内没有收到所述对应的控制回应报文,则对所述控制报文进行重传。
控制报文发送完成后,恢复控制通道为空闲态,即预留至少2个队列元素,以实现控制通道空闲时数据通道带宽最大,性能最高。
控制报文在物理通路上传输前会由硬件负责将其内容作为有效载荷包装成符合相关物理层协议的数据包。作为有效载荷的控制报文也有自己的格式定义,本发明实施例根据协商模块需要,将控制报文格式定义如下:
按控制报文类型分别说明如下:
报文 | 类型 | 长度[1] | 内容 | 说明 |
CTPB | 0 | n | 控制模块决定 | (Control Transfer Packet Burst)控制模块Burst方式发送的控制报文,一次发送多个 |
CTPS | 1 | n | 控制模块决定 | (Control Transfer Packet Single)控制模块Single方式发送的控制报文,一次发送一个 |
CIR | 2 | 0 | 无 | (Control Initial Request)控制通道初始化请求报文 |
CIA | 3 | 2 | 本端RTL | (Control Initial Ack)控制通道初始化回应报文 |
CTR | 4 | 1 | 序列号 | (Control Transfer Request)控制传输协商请求报文 |
CTA | 5 | 1 | 对应的CTR序列号 | (Control Transfer Ack)控制传输协商回应报文 |
[1]长度(Bytes),报文内容长度,不包括类型。
步骤804:发送方在发送控制报文前,将控制传输协商请求报文填充到发送队列进行发送,并控制在接收到对应的控制传输协商回应报文前,数据通道发送的数据报文的个数不超过预设值,使得在传输所述N个控制报文时接收方不发生通路拥塞;
所述预设值为不超过RTL-N-1的值,其中,RTL为接收方的接收队列长度。优选地,所述预设值为RTL-N-1。
步骤805:发送方接收到对应的控制传输协商回应报文后,对所述N个控制报文分别设置第一标记后填充到发送队列进行发送,以使接收方接收到所述带有第一标记的控制报文后,不向发送方发送控制回应报文。
控制报文发送完成后,恢复控制通道为空闲态,即预留至少2个队列元素,以实现控制通道空闲时数据通道带宽最大,性能最高。
图10为本发明实施例的报文传输方法详细流程图,参照图10,所述方法包括如下步骤:
步骤1001:控制模块突发性发送N个控制报文至协商模块;
步骤1002:判断N是否等于1,若是,进入步骤1003(Single模式传输处理),否则,进入Burst模式传输处理(图11的流程);
步骤1003:协商模块转换报文为CTPS并缓存;
步骤1004:判断CTPS重传次数是否超限,若是,清除缓存队列,控制传输失败,否则,进入步骤1005;
步骤1005:将CTPS填入硬件队列进行发送,并更新重传次数;
步骤1006~1007:接收方收到CTPS后,发送ACK;
步骤1008:判断在预定时间内是否收到ACK,若是,进入步骤1009,否则,返回步骤1004;
步骤1009:清除缓存队列,控制传输成功。
图11为Burst模式传输处理的详细流程图,参照图11,其包括如下步骤:
步骤1101:协商模块转换报文为CTPB并缓存,调整数据通道判断发送队列空闲的标准为TILA>N+1;
步骤1102:数据通道填充队列判断条件:发送报文数不大于RTLB-N-1;
步骤1103:判断CTR重传次数是否超限,若是,进入步骤1104,否则,进入步骤1105;
步骤1104:恢复数据通道判断发送队列空闲的标准为TILA>2,清除缓存队列,控制传输失败;
步骤1105:将CTR填入硬件队列进行发送,更新重传次数;
步骤1106~1107:接收方收到CTR后,发送CTA:
步骤1108:判断在超时时间内是否收到当前CTR对应的CTA,若是,将重传次数清零后进入步骤1110,否则,进入步骤1109;
步骤1109:数据通道发送报文重新统计(发送报文数清零)后返回步骤1103;
步骤1110:将N个控制报文填入硬件队列进行发送;
步骤1111:恢复数据通道判断发送队列空闲的标准为TILA>2,并清除缓存队列,控制传输成功。
以下给出本发明在Burst模式下进行报文传输的一个应用实例。
子系统A与子系统B通过一条物理通路进行通信。子系统A的收发队列长度均为2048;子系统B的收发队列长度均为1024。子系统之间物理通路连通后控制通道初始化完成,即各自获取到对端的接收队列长度。下面以子系统A到子系统B的单向控制通道为例说明Burst模式的传输机制,反向类推。由于本发明方案在数据流量超大时Burst传输控制报文优势明显,故该实例以数据流量超大作为传输背景详述传输机制。
参照图12,控制通道空闲时,数据通道判断发送队列空闲的标准为TILA>2,控制通道判断发送队列空闲的标准为TILA>0。
由此可见,数据通道带宽为2046(2048-2)。数据通道流量超大时,2046个队列元素全部被数据报文占用,由于为控制通道预留了2个队列元素,故可保证控制协商报文的及时发送。
参照图13,子系统A的控制模块突发性发送100个控制报文至协商模块。协商模块缓存控制报文,转换报文类型为CTPB,调整数据通道判断发送队列空闲的标准为TILA>101(100+1)。
由此可见,数据通道带宽动态调整为1947(2048-100-1)。数据通道流量超大时,1947个队列元素全部被数据报文占用,物理通路满载传输数据报文,数据通道性能未受影响。由于为控制通道预留了101个队列元素,故可保证控制协商成功时可将100个控制报文Burst填入发送队列。
参照图14,在发送N个控制报文前,先进行控制通道的协商,即将控制协商报文CTR填入发送队列。
参照图15,更新数据报文发送数限制DPC(Data Packet Counter)=923(1024-100-1),CTR填入发送队列后,每填充一个数据报文,DPC减1,当DPC减为0时,禁止再向发送队列填充数据报文。
由此可见,子系统A再次发送控制报文之前,最多向发送队列填充923个数据报文。只要子系统B收到CTR并回送CTA后,其可一次接收的报文个数为接收队列的长度RTLB,即1024个。所以,子系统A收到CTA后将100个控制报文直接填入发送队列,再加上之前填充的最多923个数据报文,总个数也不过1023个,小于子系统B的接收队列长度。于是,上述实现有效的避免了控制传输时的线路拥塞,保证控制报文的可靠传输,由于省去每个控制报文的ACK,所以控制传输效率大幅提升。
当然TTLA不一定大于RTLB,这里只是为了方便图示数据报文的发送数限制机制而选择的实例。
参照图16,子系统A在发送队列中待发送的数据报文发送完成之前收到CTA,直接将100个控制报文填入发送队列,并恢复数据通道带宽为2046(2048-2)。本次控制传输完成,释放协商模块缓存的控制报文,控制通道切换为空闲态。
由此可见,整个传输过程中发送队列中一直存有待发报文,故物理通路满载运行,子系统间通信性能达到最优。
参照图17,如果子系统A在发送队列中待发送的数据报文发送完成之前没有收到CTA,则认为本次协商失败,重发CTR,并更新DPC=923。
由此可见,等待CTA的过程中数据通道流量几乎没有中断,所以,控制协商过程中控制通道性能几乎不受影响。
数据通道流量不大时,如没有923个数据报文等待发送,则判断等待CTA是否超时的条件为发送队列为空且等待时间超过预设时间(预设时间可以按正常情况下一个CTR、CTA来回时间计算)。另外,接收到CTA时还要根据其内容(序列号)判断是否为当前CTR等待的CTA。
控制传输量较小的特点决定了一次控制突发传输的报文数一般不会大于对端接收队列的长度,即可按上述流程实现控制协商及传输。对于一次控制突发传输的报文数大于对端接收队列长度的特殊应用,可分批进行控制协商及传输。承接上述实例说明,某次控制突发传输的报文数为1500,则首先计算分批传输的批次为1500/1024取整为2,即需分2批传输;其次计算每批突发传输的控制报文个数,为使对数据通道的冲击平衡,平均分配2次控制传输的报文数为1500/2为750;最后按2次突发控制传输750个报文完成1500个控制报文的传输。
参照图18,为本发明实施例的报文传输装置,其设置于发送方系统中,包括,接收队列长度获取模块、队列元素预留模块、协商模块和控制报文发送模块。其中:
接收队列长度获取模块,用于在控制通道处于初始态时,获取接收方的接收队列长度RTL。接收队列长度获取模块向接收方发送控制通道初始化请求报文,并在接收到控制通道初始化回应报文后,从所述控制通道初始化回应报文中获取RTL,其中,所述控制通道初始化回应报文为接收方接收到所述控制通道初始化请求报文后,向发送方发送的携带有RTL的控制报文。
队列元素预留模块,用于在控制通道处于空闲态时,为所述控制通道预留至少2个队列元素,并在有N个控制报文待发送时,为所述控制通道预留至少N+1个队列元素,其中,N为大于0的整数。
具体地,所述为控制通道预留队列元素包括:将数据通道判断发送队列存在空闲的标准设置为TIL>M,将控制通道判断发送队列存在空闲的标准设置为TIL>0,其中,TIL为发送队列的当前空闲长度,M为预留的队列元素的个数(M≥1)。
协商模块,用于在发送控制报文前,将控制传输协商请求报文填充到发送队列进行发送,并控制在接收到对应的控制传输协商回应报文前,数据通道发送的数据报文的个数不超过预设值,使得在传输所述N个控制报文时接收方不发生通路拥塞。
优选地,所述预设值为:RTL-N-1,其中,RTL为接收方的接收队列长度。
为实现控制传输协商过程中数据通道在物理通路上的连续性,需根据当前发送队列状态调整控制传输协商回应报文的等待时间。在限制的数据通道发送报文(例如,RTL-N-1个数据报文)发送完成前的预定时间内(对应于较大的数据流量),或者,在发送队列空闲且等待接收控制传输协商回应报文的时间超过预设的第一时间后(对应于较小的数据流量)仍没有收到控制传输协商回应报文,则认为本次控制传输协商超时,重新进行控制陈述协商,并重新限制数据通道的发送报文数。
控制报文发送模块,用于在发送方接收到对应的控制传输协商回应报文后,对所述N个控制报文分别设置第一标记后填充到发送队列进行发送,以使接收方接收到所述带有第一标记的控制报文后,不向发送方发送控制回应报文。
如前所述,一次传输1个控制报文时,由控制报文ACK保证可靠性的线路传输报文少(Single模式);一次传输2个及2个以上控制报文时,由控制通道协商机制保证可靠性的线路传输报文少(Burst模式)。因此,在本发明的另一实施例中,在待发送的控制报文的个数N等于1时,不触发所述协商模块,而是由所述控制报文发送模块直接对控制报文设置第二标记后填充到发送队列进行发送,以使接收方接收到所述带有第二标记的控制报文后,向发送方发送对应的控制回应报文,若发送方在预设时间内没有收到所述对应的控制回应报文,则对所述控制报文进行重传。
所述队列元素预留模块还用于,在所述控制报文发送完成后,将所述控制通道恢复为空闲态,即预留至少2个队列元素,以实现控制通道空闲时数据通道带宽最大,性能最高。。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。
Claims (16)
1.一种报文传输方法,应用于分布式系统中,其特征在于,所述方法包括:
发送方在控制通道处于空闲态时,为所述控制通道预留至少2个队列元素,并在有N个控制报文待发送时,为所述控制通道预留至少N+1个队列元素,其中,N为大于0的整数;
发送方在发送控制报文前,将控制传输协商请求报文填充到发送队列进行发送,并控制在接收到对应的控制传输协商回应报文前,数据通道发送的数据报文的个数不超过预设值,使得在传输所述N个控制报文时接收方不发生通路拥塞;
发送方接收到对应的控制传输协商回应报文后,对所述N个控制报文分别设置第一标记后填充到发送队列进行发送,以使接收方接收到所述带有第一标记的控制报文后,不向发送方发送控制回应报文。
2.如权利要求1所述的方法,其特征在于:
为控制通道预留队列元素包括:将数据通道判断发送队列存在空闲的标准设置为TIL>M,将控制通道判断发送队列存在空闲的标准设置为TIL>0,其中,TIL为发送队列的当前空闲长度,M为预留的队列元素的个数,M≥1。
3.如权利要求1所述的方法,其特征在于:
所述预设值为:RTL-N-1,其中,RTL为接收方的接收队列长度。
4.如权利要求3所述的方法,其特征在于,还包括:
发送方在控制通道处于初始态时,向接收方发送控制通道初始化请求报文,并在接收到控制通道初始化回应报文后,从所述控制通道初始化回应报文中获取RTL,其中,所述控制通道初始化回应报文为接收方接收到所述控制通道初始化请求报文后,向发送方发送的携带有RTL的控制报文。
5.如权利要求1所述的方法,其特征在于,还包括:
若在所述预设值个数据报文发送完成前的预定时间内,还没有收到所述控制传输协商回应报文,则重新将控制传输协商请求报文填充到发送队列进行发送,并重新对数据通道发送的数据报文的个数进行控制;
若在发送队列空闲且等待接收控制传输协商回应报文的时间超过预设的第一时间时,还没有收到所述控制传输协商回应报文,则重新将控制传输协商请求报文填充到发送队列进行发送,并重新对数据通道发送的数据报文的个数进行控制;
若对所述控制传输协商请求报文的重传次数超过预设次数,则放弃对所述控制传输协商请求报文以及所述N个控制报文的传输。
6.如权利要求1所述的方法,其特征在于,还包括:
若发送方在预设的第二时间内没有收到对应于所述N个控制报文的控制回应报文,则对所述N个控制报文进行重传,其中,所述对应于所述N个控制报文的控制回应报文为接收方接收到所述N个控制报文后,向发送方发送的一个控制报文。
7.如权利要求1所述的方法,其特征在于,还包括:
发送方在待发送的控制报文的个数N等于1时,直接对控制报文设置第二标记后填充到发送队列进行发送,以使接收方接收到所述带有第二标记的控制报文后,向发送方发送对应的控制回应报文;
若发送方在预设的第三时间内没有收到所述对应的控制回应报文,则对所述控制报文进行重传。
8.如权利要求1或7所述的方法,其特征在于,还包括:
在所述控制报文发送完成后,将所述控制通道恢复为空闲态。
9.一种报文传输装置,其特征在于,包括:
队列元素预留模块,用于在控制通道处于空闲态时,为所述控制通道预留至少2个队列元素,并在有N个控制报文待发送时,为所述控制通道预留至少N+1个队列元素,其中,N为大于0的整数;
协商模块,用于在发送控制报文前,将控制传输协商请求报文填充到发送队列进行发送,并控制在接收到对应的控制传输协商回应报文前,数据通道发送的数据报文的个数不超过预设值,使得在传输所述N个控制报文时接收方不发生通路拥塞;
控制报文发送模块,用于在发送方接收到对应的控制传输协商回应报文后,对所述N个控制报文分别设置第一标记后填充到发送队列进行发送,以使接收方接收到所述带有第一标记的控制报文后,不向发送方发送控制回应报文。
10.如权利要求9所述的装置,其特征在于:
为控制通道预留队列元素包括:将数据通道判断发送队列存在空闲的标准设置为TIL>M,将控制通道判断发送队列存在空闲的标准设置为TIL>0,其中,TIL为发送队列的当前空闲长度,M为预留的队列元素的个数,M≥1。
11.如权利要求9所述的装置,其特征在于:
所述预设值为:RTL-N-1,其中,RTL为接收方的接收队列长度。
12.如权利要求11所述的装置,其特征在于,还包括:
接收队列长度获取模块,用于在控制通道处于初始态时,向接收方发送控制通道初始化请求报文,并在接收到控制通道初始化回应报文后,从所述控制通道初始化回应报文中获取RTL,其中,所述控制通道初始化回应报文为接收方接收到所述控制通道初始化请求报文后,向发送方发送的携带有RTL的控制报文。
13.如权利要求9所述的装置,其特征在于:
所述协商模块还用于,若在所述预设值个数据报文发送完成前的预定时间内,还没有收到所述控制传输协商回应报文,则重新将控制传输协商请求报文填充到发送队列进行发送,并重新对数据通道发送的数据报文的个数进行控制。
14.如权利要求9所述的装置,其特征在于:
所述协商模块还用于,若在发送队列空闲且等待接收控制传输协商回应报文的时间超过预设的第一时间时,还没有收到所述控制传输协商回应报文,则重新将控制传输协商请求报文填充到发送队列进行发送,并重新对数据通道发送的数据报文的个数进行控制。
15.如权利要求9所述的装置,其特征在于:
所述控制报文发送模块还用于,在待发送的控制报文的个数N等于1时,直接对控制报文设置第二标记后填充到发送队列进行发送,以使接收方接收到所述带有第二标记的控制报文后,向发送方发送对应的控制回应报文,以及,若发送方在预设的第三时间内没有收到所述对应的控制回应报文,则对所述控制报文进行重传。
16.如权利要求9或15所述的装置,其特征在于:
所述队列元素预留模块还用于,在所述控制报文发送完成后,将所述控制通道恢复为空闲态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910081818XA CN101521635B (zh) | 2009-04-10 | 2009-04-10 | 一种报文传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910081818XA CN101521635B (zh) | 2009-04-10 | 2009-04-10 | 一种报文传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101521635A true CN101521635A (zh) | 2009-09-02 |
CN101521635B CN101521635B (zh) | 2011-02-16 |
Family
ID=41082017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910081818XA Active CN101521635B (zh) | 2009-04-10 | 2009-04-10 | 一种报文传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101521635B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841486A (zh) * | 2010-06-01 | 2010-09-22 | 杭州华三通信技术有限公司 | 一种消息的传输方法和设备 |
CN102868522A (zh) * | 2012-09-12 | 2013-01-09 | 汉柏科技有限公司 | 一种ike协商异常的处理方法 |
CN105846968A (zh) * | 2015-01-14 | 2016-08-10 | 中兴通讯股份有限公司 | 一种实现重传的方法和装置、发送设备和接收设备 |
CN109379764A (zh) * | 2018-11-16 | 2019-02-22 | Ut斯达康通讯有限公司 | 报文发送方法及装置 |
CN112118085A (zh) * | 2020-09-01 | 2020-12-22 | 中国电子科技集团公司第二十八研究所 | 一种短波信道下的可靠传输装置和方法 |
CN112235296A (zh) * | 2020-10-14 | 2021-01-15 | 开立生物医疗科技(武汉)有限公司 | 一种医学影像数据采集方法、系统及电子设备和存储介质 |
CN113436364A (zh) * | 2021-06-22 | 2021-09-24 | 广汽埃安新能源汽车有限公司 | Tbox无效信号值判断方法、装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990341B2 (en) * | 2000-12-30 | 2006-01-24 | Lg Electronics Inc. | Method for transmitting message in paging channel |
CN1175632C (zh) * | 2001-08-06 | 2004-11-10 | 华为技术有限公司 | 数据报文传输序列号合法性的检查方法 |
-
2009
- 2009-04-10 CN CN200910081818XA patent/CN101521635B/zh active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841486A (zh) * | 2010-06-01 | 2010-09-22 | 杭州华三通信技术有限公司 | 一种消息的传输方法和设备 |
CN102868522A (zh) * | 2012-09-12 | 2013-01-09 | 汉柏科技有限公司 | 一种ike协商异常的处理方法 |
CN105846968A (zh) * | 2015-01-14 | 2016-08-10 | 中兴通讯股份有限公司 | 一种实现重传的方法和装置、发送设备和接收设备 |
CN109379764A (zh) * | 2018-11-16 | 2019-02-22 | Ut斯达康通讯有限公司 | 报文发送方法及装置 |
CN109379764B (zh) * | 2018-11-16 | 2022-02-25 | Ut斯达康通讯有限公司 | 报文发送方法及装置 |
CN112118085A (zh) * | 2020-09-01 | 2020-12-22 | 中国电子科技集团公司第二十八研究所 | 一种短波信道下的可靠传输装置和方法 |
CN112235296A (zh) * | 2020-10-14 | 2021-01-15 | 开立生物医疗科技(武汉)有限公司 | 一种医学影像数据采集方法、系统及电子设备和存储介质 |
CN113436364A (zh) * | 2021-06-22 | 2021-09-24 | 广汽埃安新能源汽车有限公司 | Tbox无效信号值判断方法、装置 |
CN113436364B (zh) * | 2021-06-22 | 2022-04-08 | 广汽埃安新能源汽车有限公司 | Tbox无效信号值判断方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101521635B (zh) | 2011-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101521635B (zh) | 一种报文传输方法及装置 | |
CN108616347B (zh) | 移动通信网络中分配调度请求资源的方法以及装置 | |
CN100574276C (zh) | 时分同步码分多址系统增强上行链路随机接入的控制方法 | |
EP0609654B1 (en) | Burst band-width reservation method in an asynchronous transfer mode (ATM) network | |
US8310934B2 (en) | Method and device for controlling information channel flow | |
CN101472331B (zh) | 上行调度信息传输的方法和用户设备 | |
CN102238068B (zh) | 一种报文的传输方法和系统 | |
CN101662347B (zh) | 数据包处理方法、装置和系统 | |
CN102119502B (zh) | 用于在网络中通信的方法及用于其的次站和系统 | |
CN101204048A (zh) | 蜂窝通信系统中的流控制 | |
CN1997227A (zh) | 一种对上行时延不敏感业务进行处理的方法 | |
CN101141406A (zh) | 分布式流量控制方法、系统及装置 | |
CN106171004B (zh) | 一种rlc数据包分流方法及基站 | |
CN101854639A (zh) | 资源调度方法及用户设备 | |
CN101938414A (zh) | 一种报文发送方法及装置 | |
CN103532734A (zh) | 用于具有非对称流量剖析的节能以太网的系统和方法 | |
CN101132225A (zh) | 上行增强系统中共享非调度资源和调度资源的传输方法 | |
CN101771521A (zh) | 一种缓冲区状态报告重传定时器的管理方法 | |
CN106878439A (zh) | 一种多节点计算机系统内中继节点选择和资源分配方法 | |
EP1352540B1 (en) | Method and radio communications system for reporting status information between a mobile station and a radio access network | |
CN103298139B (zh) | 动态分布式按需协作接入方法和系统 | |
CN101742570A (zh) | 认知无线电中基于无速率码的分布式分组接入方法 | |
CN112188618B (zh) | 动态调整入网资源的组网方法、终端、网关以及存储介质 | |
CN102238735B (zh) | 可用软信道比特最大值的分配方法及系统 | |
CN101986593B (zh) | 终端上报调度信息的方法及终端 |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |