一种发送窗口流量控制方法和终端的制作方法

文档序号:9618646阅读:620来源:国知局
一种发送窗口流量控制方法和终端的制作方法
【技术领域】
[0001] 本发明涉及可靠的用户数据报协议(Reliable UDP,RUDP),尤其涉及一种RUDP协 议下的发送窗口流量控制方法和终端。
【背景技术】
[0002] 目前保证数据可靠通信一般是采用传输控制协议(Transmission Control Protocol,TCP)。但这种协议不能很好的适应当前网络应用对数据传输的高效性和带宽适 应性的要求。TCP 协议中的 AIMD (Additive Increase Multiplicative Decrease)算法虽 然减少了 TCP拥塞窗口,但不能快速的恢复可用带宽。另外,TCP拥塞控制中的不公平的 RTT(TCP分组的往返时间)造成了拥有不同RTT的并发TCP流不公平地分享带宽。随着网 络带宽延时产品(BDP)的增加,TCP的RTT的算法严重的限制了 TCP协议在广域网分布式 计算的效率。
[0003] 传输层的另一个广泛使用的协议是用户数据报协议(UDP)。UDP是基于消息的传 输协议,主要用来支持需要在计算机之间传输数据的网络应用。通过使用端口号为不同的 应用保留其各自的数据传输通道,UDP协议可以实现对同一时刻内多项应用同时发送和接 收数据的支持。UDP协议是不需建立连接的一种传输协议,具有效率高、速度快和占用资源 少等优点,在基于消息通信和实时系统中可以显著提高系统传输数据的效率。但是UDP没 有保障可靠传送数据的传输机制,不能满足应用程序传输数据、消息的可靠性要求。
[0004] 为实现支持高性能数据传输,本领域相关技术人员将TCP和UDP的优点相结合,在 UDP之上增加了一些保证数据可靠传递的控制机制,产生了 RUDP (Reliable UDP)。
[0005] RUDP承载在UDP之上,它的可靠性通过重传和应答机制来保证的。现有RUDP下的 窗口流量控制方式在发送侧设置发送窗口和重传队列,当位于重传队列的数据报文总数超 过了发送窗口的大小时,停止发送数据报文。这种窗口流量控制方式中,发送窗口大小一经 设置,后续无法修改,当位于重传队列的数据报文较少时,无法增大发送窗口以及时增加发 送数据报文的数量;当位于重传队列的数据报文较多时,也无法缩小发送窗口以及时减少 发送数据报文的数量,流量控制效果差。

【发明内容】

[0006] 本发明提供了一种发送窗口流量控制方法和终端,以解决如何实现对发送窗口流 量进行动态控制的技术问题。
[0007] 为解决上述技术问题,本发明提供了一种发送窗口流量控制方法,所述方法包 括:
[0008] 发送端向接收端发送消息的同时向接收端请求接收方窗口的大小;
[0009] 接收端接收所述消息,根据接收窗口大小和乱序队列大小确定接收方窗口大小;
[0010] 接收端将确定的接收方窗口大小发送至发送端;
[0011] 发送端根据所述确定的接收方窗口大小调整发送窗口大小,通过调整后的发送窗 口进行流量控制。
[0012] 可选地,所述根据接收窗口大小和乱序队列大小确定接收方窗口大小,包括:
[0013] 对接收窗口和乱序队列的长度求和,将求和结果作为接收方窗口长度。
[0014] 可选地,所述发送端根据所述确定的接收方窗口大小调整发送窗口大小,包括:
[0015] 发送端将所述接收窗口和乱序队列的长度之和减去发送端重传队列的长度后的 结果作为发送窗口的长度。
[0016] 可选地,
[0017] 所述发送端和接收端之间使用可靠用户数据报协议(RUDP)传输数据,并且在 RUDP报文中增加用于标识接收方窗口的大小的字段。
[0018] 为解决上述技术问题,本发明还提供了一种进行发送窗口流量控制的发送端,所 述发送端包括:发送单元、接收单元和窗口流量控制单元,其中,
[0019] 所述发送单元,用于向接收端发送消息的同时向接收端请求接收方窗口的大小;
[0020] 所述接收单元,用于从接收端接收接收方窗口大小;
[0021 ] 所述窗口流量控制单元,用于根据所述接收方窗口大小调整发送窗口大小,通过 调整后的发送窗口进行流量控制。
[0022] 可选地,所述窗口流量控制单元,用于根据所述接收方窗口大小调整发送窗口大 小,包括:
[0023] 当接收方窗口大小为接收窗口和乱序队列的长度求和时,将所述接收窗口和乱序 队列的长度之和减去发送端重传队列的长度后的结果作为发送窗口的长度。
[0024] 可选地,
[0025] 发送端使用可靠用户数据报协议(RUDP)向接收端传输数据,并且在RUDP报文中 增加用于标识接收方窗口的大小的字段。
[0026] 为解决上述技术问题,本发明还提供了一种协助发送窗口流量控制的接收端,所 述接收端包括:接收单元、接收方窗口大小计算单元、发送单元,其中:
[0027] 所述接收单元,用于从发送端接收消息以及获取接收方窗口大小的请求;
[0028] 所述接收方窗口大小计算单元,用于根据接收窗口大小和乱序队列大小确定接收 方窗口大小;
[0029] 所述发送单元,用于将确定的接收方窗口大小向发送端发送。
[0030] 可选地,所述接收方窗口大小计算单元,用于根据接收窗口大小和乱序队列大小 确定接收方窗口大小,包括:
[0031 ] 对接收窗口和乱序队列的长度求和,将求和结果作为接收方窗口长度。
[0032] 可选地,
[0033] 接收端使用可靠用户数据报协议(RUDP)向发送端传输数据,并且在RUDP报文中 增加用于标识接收方窗口的大小的字段。
[0034] 上述技术方案发送端可根据接收方窗口的大小灵活调整发送窗口,实现了对发送 流量的动态控制。
【附图说明】
[0035] 图1为本实施例的发送窗口流量控制方法流程图;
[0036] 图2为本实施例改进的RUDP格式示意图;
[0037] 图3为本实施例的进行发送窗口流量控制的发送端组成模块图;
[0038] 图4为本实施例的协助发送窗口流量控制的接收端组成模块图。
【具体实施方式】
[0039] 为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明 的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中 的特征可以相互任意组合。
[0040] 图1为本实施例的发送窗口流量控制方法流程图。
[0041] S101发送端向接收端发送消息的同时向接收端请求接收方窗口的大小;
[0042] 可选地,发送端向接收端发送的报文格式如图2所示,发送的消息填充在 "message body"字段,该报文和现有RUDP报文的主要区别在于增加了标识接收方窗口大 小的字段;为与现有的RUDP消息格式相区分,以SRUDP消息格式表示如图2所示的消息格 式;
[0043] 图2中SRUDP消息类型如表1所示:
[0046] S102接收端接收所述消息,根据接收窗口大小和乱序队列大小确定接收方窗口大 小;
[0047] S103接收端将确定的接收方窗口大小发送至发送端;
[0048] S104发送端根据所述确定的接收方窗口大小调整发送窗口大小,通过调整后的发 送窗口进行流量控制。
[0049] 假设:
[0050] A:表示最大发送窗口 MaxSndWind的大小;
[0051] B:表示发送窗口 CurSndWind的大小,B用于控制向接收端发送的消息的数目,向 接收端发送消息的数目不能超过B ;
[0052] C:表示重传队列大小RetranQueSize,C表示重传队列用于缓存发送端已经发送 的消息数目,如果发送端从来自接收端的应答消息中接收到对发送消息的应答,则从重传 队列中清除相应的消息,
[0053] D:表示发送队列大小SndQueSize ;发送队列缓存上层需要发送的消息,在连接满 足发送条件的时候,发送队列中的消息将被发送并转移到重传队列;发送队列可以是一个 链表;
[0054] a :表示最大接收窗口 MaxRcvWind大小;
[0055] b:表示接收窗口 CurRcvWind大小,b用于控制从发送端接收的消息的数目,从发 送端接收消息的数目不能超过b ;
[0056] c:表示乱序队列大小UnOrderQueSize,乱序队列用于缓存提前到达接收端的消 息;如,发送端按序发送消息si、s2、S3、s4,由于消息丢失或网络延时,导致接收端先收到 s4.那s4会暂存到乱序队列中;
[0057] d :表示按序队列大小OrdQueSize,按序队列用于缓存所有按序到达本端的消息, 它是个瞬时队列,生命周期起于乱序队列转过来的有序消息,止于有序消息发送到应用进 程。
[0058] 其中,A = B+C+D ;式 1
[0059] a = b+c+d ; 式 2
[0060] 由于发送队列只是临时存在,消息发送到驱动层即释放占用空间,按序队列也只 是临时存
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1