CN100518037C - 基于消息的可靠传输层的并包发送和自适应窗口缩放方法 - Google Patents

基于消息的可靠传输层的并包发送和自适应窗口缩放方法 Download PDF

Info

Publication number
CN100518037C
CN100518037C CNB2005100368230A CN200510036823A CN100518037C CN 100518037 C CN100518037 C CN 100518037C CN B2005100368230 A CNB2005100368230 A CN B2005100368230A CN 200510036823 A CN200510036823 A CN 200510036823A CN 100518037 C CN100518037 C CN 100518037C
Authority
CN
China
Prior art keywords
message
window
application
transport layer
recipient
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
CNB2005100368230A
Other languages
English (en)
Other versions
CN1921364A (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.)
ZTE Corp
Original Assignee
ZTE 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 ZTE Corp filed Critical ZTE Corp
Priority to CNB2005100368230A priority Critical patent/CN100518037C/zh
Publication of CN1921364A publication Critical patent/CN1921364A/zh
Application granted granted Critical
Publication of CN100518037C publication Critical patent/CN100518037C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明的一种基于消息的可靠传输层的并包发送和自适应窗口缩放方法,包括以下处理步骤:发送方的并包发送过程;接收方的收包处理过程;接收方的自适应窗口缩放处理过程。所述并包发送过程还包括:当发送方可以发送数据包时,即发送窗口大于0且发送消息队列非空,则拷贝发送队列中的多条应用消息至新申请的缓冲区,直至缓存区无法再容纳一条完整的应用消息或发送队列空;把该缓冲区的内容当作一条大的传输层消息通过底层提供的服务发送出去,每发送一条传输层消息,当前发送窗口均减一。本发明方法由于在发送方采用了并包发送技术,显著减少了底层网络的小包传输,因而提高了基于消息的可靠传输层的通讯能力。

Description

基于消息的可靠传输层的并包发送和自适应窗口缩放方法
技术领域
本发明提出了一种适用于基于消息的可靠传输层的提高通讯性能的方法,尤其涉及的是一种在基于消息的可靠传输层之上采用了并包发送和自适应窗口缩放的方法。
背景技术
现有技术的TCP通讯虽然提供了可靠的连接机制,但是链路的维护开销比较大,系统资源占用较多,使用TCP会受到较多的具体实现的限制,各项参数之间相关,配置复杂。基于消息的可靠传输层,如RDP、RUDP等,通过在不可靠的服务(IP或UDP)之上叠加一层可靠性控制层,保证了通信的可靠性,可以在与TCP相比较小的开销的情况下,完成内部可靠通信。
使用基于消息的可靠传输层进行通讯,应用每次收到的都是一条完整的消息,无需TCP的从字节流到消息的解析过程。另外,基于消息的可靠传输对于面向字节流的窗口流量控制引起的糊涂窗口综合症(Silly WindowSyndrome)具有天生的免疫力。由于开销低、效率高以及基于消息的特点,基于消息的可靠传输适用于众多的传输应用领域,如调试、下载和传送电信信令消息等应用。
同时由于是基于消息的传输,因此传输层的窗口大小表示的是可以收发的消息个数,而面向字节流的TCP窗口大小表示的是可以收发的字节数。一条连接的每一端都包括发送方和接收方,本端的发送方和对端的接收方构成半条连接,对端的发送方和本端的接收方构成另外半条连接,合起来组成一条完整的、全双工的连接。如图1所示,显示了一条基于消息的可靠传输层的半条连接,图中发送窗口结构中的可用窗口在本说明书中用发送窗口表示。
基于消息的可靠传输层的实现中,每一条消息都是由该传输层规定的消息头和应用的消息体组成,连接一端的发送方每发一条消息,其发送窗口的大小减一。发送方采用的发送方法描述如下:
1、当发送窗口大于0且发送消息队列非空时,从发送队列取出一条消息,调用底层的IP或UDP服务提供的发送接口发送该条消息,然后发送窗口减一。
2、重复步骤1,直至发送窗口等于0或者发送消息队列为空。
从上面的发送方法可以看出,使用基于消息的可靠传输层进行通讯时,应用每调用一次发送接口传送消息,就会触发底层连接发送一条IP包或UDP数据包,因此,当应用需要传输大量的小消息时,势必造成底层网络传输数目相同的小消息。研究和测试表明大量小消息的处理会降低底层网络带宽的利用率并造成底层IP协议栈和网络驱动消耗过多的CPU,从而降低了通讯能力,影响了系统的整体性能。
TCP的发送方一般会采用Nagle算法,Nagle算法本质上是一种延时聚包发送方法,Nagle算法增加了发送大包的几率,提高了TCP的通讯能力。但是采用Nagle算法会引入较大的时延,所以对于一些时延较为敏感的应用,必须关闭TCP的Nagle算法。
发明内容
本发明的目的在于提供一种基于消息的可靠传输层的并包发送和自适应窗口缩放方法,采用在发送方合并多个小应用消息为一个大的传输层消息进行发送以及在接收方采用自适应缩放窗口的方法,用以解决使用基于消息的可靠传输层进行小消息传输时通讯性能降低的问题。
进一步的,本发明方法在接收方采用了自适应缩放窗口技术,其目的是增加发送方的并包发送的机会和进一步提高通讯能力;当发送的数据量相对较小且主要是小应用消息时,通过缩小接收窗口来适当降低发送方的发包速率,从而增加发送方的并包发送几率,提高底层网络带宽的利用率;随着发送方发送的大传输层消息的比例上升,通过扩大接收窗口来提高发送方的发包速率,可以进一步提升发送流量,并且相比TCP的Nagle算法本发明方法的自适应窗口缩放技术本身所引入的时延非常小。
本发明的技术方案包括:
一种基于消息的可靠传输层的并包发送和自适应窗口缩放方法,包括以下处理步骤:
A、发送方的并包发送过程;
B、接收方的收包处理过程;
C、接收方每收到设定数目的数据包则统计一次大数据包数目占总的数据包数目的比例,并根据计算得到的比例来调整接收窗口,当所述比例小于预置值时缩小接收窗口,当所述比例大于预置值时放大接收窗口,其中,大数据包为包长大于预定值的数据包。
所述的方法,其中,所述步骤A还包括:
A1、当发送方可以发送数据包时,即发送窗口大于0且发送消息队列非空,则拷贝发送队列中的多条应用消息至新申请的缓冲区,直至缓冲区无法再容纳一条完整的应用消息或发送队列空;
A2、把该缓冲区的内容当作一条大的传输层消息通过底层提供的服务发送出去,每发送一条传输层消息,不管该消息是仅由一条应用消息组成还是由多条小应用消息合并而成,当前发送窗口均减一。
所述的方法,其中,用于并包的所述缓冲区大小必须满足:不能大于接收方要求的最大报文长度;本传输层调用底层提供的服务发送一条所述缓冲区大小的消息时,该消息必须能够为链路层的一个数据帧所承载,即不能超出链路层最大传输单元的大小。
所述的方法,其中,所述发送方仅在所述缓冲区起始位置拷贝一个传输层的消息头,后面的每条应用消息只拷贝消息长度和消息内容,不拷贝消息头,且缓冲区中的应用消息之间的边界通过消息长度进行界定。
所述的方法,其中,所述的步骤B还包括:
B1、所述接收方在接收窗口的控制下把接收的传输层消息放置在接收缓存的相应位置,并减少当前接收窗口;
B2、在应用程序接收应用消息时按序向上层应用传递每条传输层消息,并增加当前接收窗口;
B3、对于每条传输层消息,传输层根据应用消息之间的长度边界进行解包,应用每调用一次接收接口,所述传输层则向应用顺序传递解包的应用消息,仅当传递完该条传输层消息中的所有的应用消息后,当前接收窗口才加一。
所述的方法,其中,所述步骤C还包括:
C1、在基于消息的可靠传输层的消息头中增加窗口大小字段,其由接收方设置,用来通告发送方当前接收方可用的接收窗口大小,发送方据此更新发送窗口的大小;
C2、所述接收方增加两个计数器分别统计收到的数据包总数和大数据包数目,统计一次大数据包数目占总的数据包数目的比例后清零两个计数器为下次统计作准备。
所述的方法,其中,所述放大接收窗口的步骤包括:在接收方的接收缓存允许的情况下,当前接收窗口立即加一;否则当前接收窗口的大小保持不变。
所述的方法,其中,所述缩小接收窗口的步骤包括:
C32、为了防止对端的发送窗口的收缩,当前接收窗口不减一,所述接收方只设置缩小窗口标志;
C33、在所述接收方往上层应用传递完一条传输层消息时,若缩小窗口标志被设置则接收窗口不再加一,仅清除此标志。
本发明所提供的一种基于消息的可靠传输层的并包发送和自适应窗口缩放方法,由于在发送方采用了并包发送技术,显著减少了底层网络的小包传输,因而提高了基于消息的可靠传输层的通讯能力。
而且,本发明方法由于在接收方采用了自适应窗口缩放技术以增加发送方的并包几率,提高了通讯能力,相比现有技术的TCP的Nagle算法,本发明方法的自适应窗口缩放技术本身引入的时延非常小,因此该技术同样适用于那些对时延较为敏感的应用。
附图说明
图1是现有技术的基于消息的可靠传输层的连接示意图;
图2是本发明方法的包含一条应用消息的传输层消息结构图;
图3是本发明方法中包含多条应用消息的传输层消息结构图;
图4显示了本发明方法从包含多条应用消息的传输层消息中解出应用消息的过程图;
图5是本发明方法的并包发送过程的处理流程图;
图6是本发明方法的接收方的自适应窗口缩放的处理流程图。
具体实施方式
以下结合附图,将对本发明的各较佳实施例进行较为详细的说明。
为方便描述,本发明方法的描述中,称应用通过发送接口发送的应用数据报为应用消息,而传输层调用底层的服务发送的数据包称为传输层消息,所述传输层消息由消息头和应用消息组成,如图2所示的。
本发明的所述基于消息的可靠传输层的并包发送和自适应窗口缩放方法,其包括以下基本处理步骤:
1、发送方的并包发送过程。
2、接收方的收包处理过程。
3、接收方的自适应窗口缩放处理过程。
所述的步骤1中,当发送方可以发送数据包时,即发送窗口大于0且发送消息队列非空时,首先尽可能拷贝发送队列中的多条应用消息至新申请的缓冲区,直至缓存区无法再容纳一条完整的应用消息或发送队列空为止,然后把该缓冲区的内容当作一条大的传输层消息通过底层提供的服务如IP或UDP服务发送出去。每发送一条传输层消息,不管该消息是仅由一条应用消息组成还是由多条小应用消息合并而成,当前发送窗口均减一。
用于并包的最大缓冲区大小(wMaxBufSize)必须满足两点:首先,wMaxBufSize不能大于接收方要求的最大报文长度;其次,本传输层调用底层提供的服务发送一条wMaxBufSize字节大小的消息时,该消息必须能够为链路层的一个数据帧所承载,即不能超出链路层最大传输单元MTU的大小。
本发明方法的发送方仅需要在缓冲区起始位置拷贝一个传输层的消息头,后面的每条应用消息只需拷贝消息长度和消息内容,无需再次拷贝消息头,缓冲区中的应用消息之间的边界通过消息长度进行界定。因此采用本发明的并包技术后,一条传输层消息由消息头和一条或多条应用消息组成,相邻的两条应用消息之间由消息长度字段进行隔离,如图2和图3所示的。
所述的步骤2中,所述接收方在接收窗口的控制下把接收的传输层消息放置在接收缓存的相应位置,并减少当前接收窗口。然后在应用程序接收应用消息时按序向上层应用传递每条传输层消息,并增加当前接收窗口。
对于每条传输层消息,传输层根据应用消息之间的长度边界进行解包。应用每调用一次接收接口,传输层则向应用顺序传递解包的应用消息。仅当传递完该条传输层消息中的所有的应用消息后,当前接收窗口才加一。
所述的步骤3中,在基于消息的可靠传输层的消息头中增加了窗口大小,所述窗口大小字段由接收方设置,用来通告发送方当前接收方可用的接收窗口大小,发送方据此更新发送窗口的大小。
接收方增加两个计数器分别统计收到的数据包总数和大数据包数目。每收到一定数目的数据包则统计一次大数据包数目占总的数据包数目的比例,然后清零两个计数器为下次统计作准备。根据计算得到的比例来调整接收窗口,比例较小时可缩小接收窗口,比例较大时可放大接收窗口。
所述放大接收窗口的处理是:在接收方的接收缓存允许的情况下,当前接收窗口立即加一。也就是说当前接收窗口的加一处理不能导致发送方发送的消息序号过大而引起接收方的接收缓存溢出,否则当前接收窗口的大小保持不变。
缩小接收窗口的处理是:为了防止对端的发送窗口的收缩,当前接收窗口不能减一,接收方只能设置缩小窗口标志。随后在接收方往上层应用传递完一条传输层消息时,若缩小窗口标志被设置则接收窗口不再加一,仅清除此标志。
一般的,本发明所述方法中,基于消息的可靠传输的消息头中包括发送包序号、应答序号等字段,为了实现本发明方法,需要在消息头中增加窗口大小的字段。
下面的描述中仅包括与本发明相关的实施步骤,对于实现基于消息的可靠传输的其它步骤,由于与本发明方法无关且为本领域技术人员所熟知,在此不再赘述。
第一步,发送方并包发送过程的实施步骤如下:
首先,以下为必要的变量:
wMaxTranUnit:表示链路层的一个数据帧所承载的最大传输层消息。wMaxTranUnit=链路层最大传输单元(MTU)-底层开销(wOverhead),对于RDP,wOverhead=20字节(IP头),对于RUDP,wOverhead=28字节(IP头+UDP头)。
wSndQSize:由发送队列中所有应用消息构成的一条传输层消息的长度。wSndQSize=消息头+2+应用消息1+2+应用消息2+...+2+应用消息n。
wMaxSegment:接收方要求的最大报文长度。
wMaxMuxBuf:用于合并多条应用消息的最大允许的缓存。
wMaxMuxBuf=min(wMaxTranUnit,wMaxSegment)。
发送方的发送队列中存在待发送的消息是进入发送过程的前提之一,发送队列中的消息来源于应用程序调用发送接口传送的应用消息。在发送接口中,先把待发送的应用数据报构造成一条传输层消息。该条传输层消息仅包含一条应用消息,如图2所示,消息长度用两个字节表示。然后把该条传输层消息输入到发送队列中。
结合图5,下面描述本发明方法的并包发送过程。
1、步骤5.1:如果发送队列有消息等待发送并且发送窗口大于0,则转第2步;否则结束本次发送过程。
2、步骤5.2:如果发送队列中的消息个数大于1,那么转入步骤5.3;否则,从队列中取出消息,(见步骤5.6),转步骤5.5发送。
3、步骤5.3:如果发送队列中第一条消息的长度(消息头+2+应用消息)小于wMaxMuxBuf,那么转步骤5.4进入并包流程;否则,从队列中取出消息(见步骤5.6),转步骤5.5发送。
4、步骤5.4:申请一块用于并包的内存:如果wMaxMuxBuf>=wSndQSize,则申请wSndQSize尺寸的内存;否则,申请wMaxMuxBuf尺寸的内存。
先从发送队列中取出第一条消息完整(消息头+消息长度+应用消息)拷入申请的缓存;然后连续从发送队列取出消息,拷贝消息长度和应用消息到申请的缓存,直至缓存无法再容纳一条完整的应用消息或者发送队列空。一条包括多条应用消息的传输层消息构造完成,如图3所示,转步骤5.5发送此条构造的消息。
5、步骤5.5:在消息头中设置包序号和本端接收窗口大小,然后调用底层提供的服务发送此消息,同时发送窗口大小减一,转步骤5.1继续发送。
第二步,接收方的收包处理过程的具体实施步骤如下:
用wMaxPckNoInOrder表示最大按序收到的包序号,wMaxValidPckNo表示最大合法的包序号。在图1所示的接收窗口中,wMaxPckNoInOrder=4,wMaxValidPckNo=9。
1、接收方每次收到一条传输层消息,从消息头中取出包序号(wPckNo)和连接对端的接收窗口大小(wWnd),用wWnd更新本端发送方的发送窗口大小wSndWnd=wWnd-重传队列大小。重传队列指的是消息已经发送,但未被确认。
如果该消息是按序收到的,则本端当前接收窗口wCurRcvWnd自动减一;
如果当前收到的消息包序号落在接收区间,即wMaxPckNoInOrder<wPckNo<=wMaxValidPckNo,且该消息是第一次收到,则把收到的传输层消息放置到接收区间的相应位置。
2、当上层应用调用接收接口接收应用消息时,接收方把接收方窗口中按序区间的传输层消息顺序向应用传递。对于每条传输层消息,如图2和图3所示的,传输层根据该条消息的总长度(wTotalPckSize)和应用消息之间的长度边界进行解包。如图4显示了解包过程,指针(pData)首先指向第一条消息的长度字段。
设置变量wRestSize=wTotalPckSize-消息头。应用每调用一次接收接口,传输层从pData指针处取出消息长度,pData指针向后移动两个字节,然后从pData位置开始拷贝该长度的数据包至应用的接收缓存,同时更新wRestSize=wRestSize-2-应用消息长度,pData指针移至下一条应用消息的长度字段。应用程序从接收接口中返回,解出一条应用消息。
当wRestSize等于0表示已经传递完该条传输层消息中的所有的应用消息,如果缩小窗口标志未设置,当前接收窗口(wCurRcvWnd)加一;否则清除缩小窗口标志,当前接收窗口保持不变。缩小窗口标志的设置参见第三步的步骤8(图6的步骤6.10)。
第三步,接收方的自适应窗口缩放处理过程实施步骤如下:
首先描述一下窗口缩放的概念。不采用窗口缩放的方法时,接收方收到一条传输层消息时会减少接收窗口,当应用接收完一条传输层消息后接收窗口加一,因此在消息的推动下接收窗口会在某个范围内变化:0到wMaxWnd,wMaxWnd称为最大可以达到的窗口大小。采用窗口缩放的方法时,实质上改变了接收窗口的变化范围:缩小接收窗口时减少wMaxWnd,使得接收窗口的变化范围变小;放大接收窗口时增加wMaxWnd,使得接收窗口的变化范围变大。
另外,接收方的接收缓存的数目(wRcvBufSize)限制了接收方最大可以达到的窗口大小(wMaxWnd)。任何时候,必须保证wMaxWnd<=wRcvBufSize,否则会导致发送方发送的消息序号过大而引起接收缓存溢出。这里的接收缓存是一个指针数组,用于指向接收的传输层消息。
为描述方便,定义了下面的常量:
BIG_PACK_SIZE:对于包长大于此值的数据包,称为大数据包。
STAT_THRESHOLD:表示当收到等于此数目的数据包时,计算一次收到的大数据包所占的比例,并据此调整接收窗口大小。
ADD_THRESHOLD:表示每收到STAT_THRESHOLD条消息,若大数据包的数目大于等于此值,则需要放大接收窗口。
MINUS_THRESHOLD:表示每收到STAT_THRESHOLD条消息,若大数据包的数目小于此值,则需要缩小接收窗口。
MIN_WND_THRESHOLD:该常量限制了接收窗口的最小变化范围。
建立一条连接时,连接的两端相互通知本端初始接收窗口(wInitialWnd),初始接收窗口设为本端接收缓存数目(wRcvBufSize)的一半,即wInitialWnd*2=wRcvBufSize。因此对于一条新建立的连接,接收方最大可以达到的窗口大小wMaxWnd=wInitialWnd。
接收方每次收到一条传输层消息,都会进入自适应窗口缩放处理过程。结合图6,下面描述本发明方法的接收方的自适应窗口缩放具体处理过程。
1、步骤6.1:用于统计该连接上收到的数据包总数目的计数器wTotalPckNum加一。
2、步骤6.2:如果消息长度大于等于BIG_PACK_SIZE,则转入步骤6.3;否则,转入步骤6.4。
3、步骤6.3:用于统计该连接上收到的大数据包数目的计数器wBigPckNum加一。
4、步骤6.4:如果wTotalPckNum大于等于STAT_THRESHOLD,则转入步骤6.5;否则,跳出自适应窗口缩放处理过程。
5、步骤6.5:如果wBigPckNum大于等于ADD_THRESHOLD,则转入步骤6.7进行接收窗口放大处理过程。
6、步骤6.6:如果wBigPckNum小于MINUS_THRESHOLD,则转入步骤6.8进行接收窗口缩小处理过程;否则清零wTotalPckNum和wBigPckNum(见图6的步骤6.11),跳出自适应窗口缩放处理过程。
7、步骤6.7:如果wMaxWnd+1小于等于wRcvBufSize,那么接收窗口wCurRcvWnd加一,wMaxWnd加一(见图6的步骤6.8);否则当前接收窗口保持不变。清零wTotalPckNum和wBigPckNum(见图6的步骤6.11),跳出自适应窗口缩放处理。
8、步骤6.9:如果wMaxWnd-1大于等于MIN_WND_THRESHOLD,那么设置缩小窗口标志,wMaxWnd自动减一(见图6的步骤6.10),此标志的清除参见第二步的步骤2;否则当前接收窗口保持不变。清零wTotalPckNum和wBigPckNum(见图6的步骤6.11),跳出自适应窗口缩放处理。
在相同条件下,对本发明方法进行过小消息(100字节左右)的通讯性能极限测试,测试结果表明:采用本发明后的系统的通讯能力约是未采用本发明的系统通讯能力的3倍。其它的测试还表明:在相同的通讯流量下,采用本发明后的系统CPU占有率要远低于未采用本发明的系统CPU占有率。
本发明方法在发送方采用了并包发送技术,显著减少了底层网络的小包传输,因而提高了基于消息的可靠传输层的通讯能力。在接收方采用了自适应窗口缩放技术以增加发送方的并包几率,提高了通讯能力。相比Nagle算法,本发明的自适应窗口缩放技术本身引入的时延非常小,因此该技术同样适用于那些对时延较为敏感的应用。
但应当理解的是,本发明的上述针对具体实施例的描述较为具体,并不能因此而理解为对本发明的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。

Claims (8)

1、一种基于消息的可靠传输层的并包发送和自适应窗口缩放方法,包括以下处理步骤:
A、发送方的并包发送过程;
B、接收方的收包处理过程;
C、接收方每收到设定数目的数据包则统计一次大数据包数目占总的数据包数目的比例,并根据计算得到的比例来调整接收窗口,当所述比例小于预置值时缩小接收窗口,当所述比例大于预置值时放大接收窗口,其中,大数据包为包长大于预定值的数据包。
2、根据权利要求1所述的方法,其特征在于,所述步骤A还包括:
A1、当发送方可以发送数据包时,即发送窗口大于0且发送消息队列非空,则拷贝发送队列中的多条应用消息至新申请的缓冲区,直至缓冲区无法再容纳一条完整的应用消息或发送队列空;
A2、把该缓冲区的内容当作一条大的传输层消息通过底层提供的服务发送出去,每发送一条传输层消息,不管该消息是仅由一条应用消息组成还是由多条小应用消息合并而成,当前发送窗口均减一。
3、根据权利要求2所述的方法,其特征在于,用于并包的所述缓冲区大小必须满足:不能大于接收方要求的最大报文长度;本传输层调用底层提供的服务发送一条所述缓冲区大小的消息时,该消息必须能够为链路层的一个数据帧所承载,即不能超出链路层最大传输单元的大小。
4、根据权利要求2或3所述的方法,其特征在于,所述发送方仅在所述缓冲区起始位置拷贝一个传输层的消息头,后面的每条应用消息只拷贝消息长度和消息内容,不拷贝消息头,且缓冲区中的应用消息之间的边界通过消息长度进行界定。
5、根据权利要求1所述的方法,其特征在于,所述的步骤B还包括:
B1、所述接收方在接收窗口的控制下把接收的传输层消息放置在接收缓存的相应位置,并减少当前接收窗口;
B2、在应用程序接收应用消息时按序向上层应用传递每条传输层消息,并增加当前接收窗口;
B3、对于每条传输层消息,传输层根据应用消息之间的长度边界进行解包,应用每调用一次接收接口,所述传输层则向应用顺序传递解包的应用消息,仅当传递完该条传输层消息中的所有的应用消息后,当前接收窗口才加一。
6、根据权利要求1所述的方法,其特征在于,所述步骤C还包括:
C1、在基于消息的可靠传输层的消息头中增加窗口大小字段,其由接收方设置,用来通告发送方当前接收方可用的接收窗口大小,发送方据此更新发送窗口的大小;
C2、所述接收方增加两个计数器分别统计收到的数据包总数和大数据包数目,统计一次大数据包数目占总的数据包数目的比例后清零两个计数器为下次统计作准备。
7、根据权利要求1、2、3、5或6所述的方法,其特征在于,所述放大接收窗口的步骤包括:在接收方的接收缓存允许的情况下,当前接收窗口立即加一;否则当前接收窗口的大小保持不变。
8、根据权利要求1、2、3、5或6所述的方法,其特征在于,所述缩小接收窗口的步骤包括:
C32、为了防止对端的发送窗口的收缩,当前接收窗口不减一,所述接收方只设置缩小窗口标志;
C33、在所述接收方往上层应用传递完一条传输层消息时,若缩小窗口标志被设置则接收窗口不再加一,仅清除此标志。
CNB2005100368230A 2005-08-25 2005-08-25 基于消息的可靠传输层的并包发送和自适应窗口缩放方法 Expired - Fee Related CN100518037C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100368230A CN100518037C (zh) 2005-08-25 2005-08-25 基于消息的可靠传输层的并包发送和自适应窗口缩放方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100368230A CN100518037C (zh) 2005-08-25 2005-08-25 基于消息的可靠传输层的并包发送和自适应窗口缩放方法

Publications (2)

Publication Number Publication Date
CN1921364A CN1921364A (zh) 2007-02-28
CN100518037C true CN100518037C (zh) 2009-07-22

Family

ID=37778955

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100368230A Expired - Fee Related CN100518037C (zh) 2005-08-25 2005-08-25 基于消息的可靠传输层的并包发送和自适应窗口缩放方法

Country Status (1)

Country Link
CN (1) CN100518037C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364855B (zh) * 2008-09-22 2012-04-18 杭州华三通信技术有限公司 码流中数据包的发送控制方法和装置
CN101815034B (zh) * 2010-03-26 2012-07-25 迈普通信技术股份有限公司 任务间消息发送方法及通信设备
CN101951370B (zh) * 2010-09-17 2013-11-06 北京神州泰岳软件股份有限公司 基于udp的文件可靠传输方法
CN105376173B (zh) * 2014-09-02 2020-04-28 中兴通讯股份有限公司 一种发送窗口流量控制方法和终端
CN106470448B (zh) * 2015-08-14 2020-10-30 中兴通讯股份有限公司 一种基站的信令接收方法和装置
CN105554822B (zh) * 2015-12-10 2019-02-22 京信通信系统(中国)有限公司 均衡基站多用户终端速率的控制方法及装置

Also Published As

Publication number Publication date
CN1921364A (zh) 2007-02-28

Similar Documents

Publication Publication Date Title
EP1535419B1 (en) Method and devices for controlling retransmissions in data streaming
US7593335B2 (en) Rate based congestion control for packet networks
CA2674655C (en) Improved data transfer method, system and protocol
US7499472B2 (en) Jitter buffer management
CN100518037C (zh) 基于消息的可靠传输层的并包发送和自适应窗口缩放方法
US8516346B2 (en) Packet transmission apparatus, communication system and program
US6026097A (en) Data processor having controlled scalable input data source and method thereof
US7747801B2 (en) Reducing information reception delays
CN107979449B (zh) 一种数据传输方法及装置
EP1228595A1 (en) Method and system for discarding and regenerating acknowledgment packets in adsl communications
CN1842052A (zh) 无线链路控制层的数据传输方法
CN101436978A (zh) 使用udp协议进行可靠数据传输的方法
CN106789427A (zh) 一种网络传输量计算方法
CN101521813B (zh) 一种处理媒体流的方法和装置
CN114666831A (zh) 一种基于流编码和带宽估计驱动的分组传输方法及其系统
US6721825B1 (en) Method to control data reception buffers for packetized voice channels
CN1281036C (zh) 一种分组交换网络分布式自适应抖动缓冲区调整方法
JP2004120479A (ja) Lan通信方法及びこの方法を実行するためのlan通信システム
US6195348B1 (en) Dynamic realtime protocol for facsimile and the like
US6957374B1 (en) Method of acknowledging receipt of data packets
WO2022201410A1 (ja) 信号処理装置、信号処理方法、信号処理プログラム、及び衛星通信システム
CN115189809B (zh) 基于qoe的异构网络实时视频传输arq与fec模式选择方法
CN102546626A (zh) 一种数据处理方法、装置及系统
CN100571192C (zh) 一种sctp端点控制接收数据块的方法
CN115086285A (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090722

Termination date: 20170825