一种报文发送方法、TCP代理以及TCP客户端技术

技术编号:15794820 阅读:122 留言:0更新日期:2017-07-10 10:02
本发明专利技术实施例公开了一种报文发送方法、TCP代理以及TCP客户端。用于有效地避免网络瞬间进入过多的报文,提高TCP吞吐量。本发明专利技术实施例方法包括:向TCP客户端发送M个报文;接收TCP客户端发送的M个报文的N个TCP响应报文;根据每个样本TCP响应报文计算TCP代理和TCP客户端之间的TCP连接的样本传输带宽,样本TCP响应报文为N个TCP响应报文中的至少一个;根据样本传输带宽确定估算带宽样本集,估算带宽样本集包括根据每个样本TCP响应报文计算得到的样本传输带宽;根据估算带宽样本集确定估算带宽;根据估算带宽确定目标带宽;根据目标带宽确定可用令牌token数,根据可用token数控制报文的发送。

【技术实现步骤摘要】
一种报文发送方法、TCP代理以及TCP客户端
本专利技术涉及通信领域,尤其涉及一种报文发送方法、TCP代理以及TCP客户端。
技术介绍
网络拥塞是指到达通信网络中某一部分的报文(packet)数量过多,使得该部分网络来不及处理所述报文,以致引起这部分网络乃至整个网络性能下降的现象,严重时甚至会使网络通信业务陷入停顿,这种现象被称为拥塞。拥塞是一种持续过载的网络状态,此时用户对网络资源(包括链路带宽、存储空间和处理器处理能力等)的需求超过了固有的容量。现有技术中,主要是由基于传输控制协议(英文全称:TransmissionControlProtocol,英文简称:TCP)的应用通过TCP滑动窗口机制来控制进入网络中的报文的数量。当网络出现拥塞后,TCP拥塞控制按照加性增/乘性减(英文全称:additive-increasemultiplicative-decrease,英文简称:AIMD)算法不断调整发送窗口来适应网络质量。由于TCP滑动窗口机制的参与者仅仅是单个TCP连接的发送端和接收端,它只考虑了接收端的接收能力,而没有考虑到网络的传输能力,容易出现网络瞬间进入过多的报文,出现流量突发。如当网络中间设备,例如路由器等,比较繁忙或者是发生拥塞时,此时基于滑动窗口的报文发送或者接收能力超过了网络传输能力,网络来不及处理过多的报文,即没有对报文的发送速率进行控制,此时,窗口内的报文就会被网络设备丢弃,网络传输质量变差,最终造成TCP吞吐量下降。
技术实现思路
本专利技术实施例提供了一种报文发送方法、TCP代理以及TCP客户端,用于有效地避免网络瞬间进入过多的报文,提高TCP吞吐量。有鉴于此,第一方面,本专利技术实施例提供一种报文发送方法,包括:TCP代理向TCP客户端发送M个报文后,接收TCP客户端反馈的M个报文的N个TCP响应报文,TCP代理在接收到N个TCP响应报文之后,可以从这些TCP响应报文中确定样本TCP响应报文,再根据每个样本TCP响应报文计算TCP代理和TCP客户端之间的TCP连接的样本传输带宽。TCP代理根据计算得到的样本传输带宽确定估算带宽样本集,根据估算带宽样本集确定估算带宽,根据估算带宽确定目标带宽,根据目标带宽确定可用令牌token数,最后根据可用token数控制报文的发送。本专利技术实施例中,报文是否会被发送出去是由TCP代理进行控制,具体表现为:报文是否被发送由token数来确定,而该token数又是由目标带宽所确定的,故可以有效地避免网络瞬间进入过多的报文,提高TCP吞吐量。优选的,本专利技术实施例中,TCP代理根据目标带宽确定可用令牌token数,最后根据可用token数控制报文的发送有以下几种可能的实现方式,具体如下:一种实现方式中,TCP代理根据目标带宽确定可用令牌token数,最后根据可用token数控制报文的发送包括:TCP代理可以根据目标带宽设置token数目增长速率,再确定按照token数目增长速率获得的token的数目是否达到预置数值,若达到,则向TCP客户端发送所述报文。在本实现方式中,TCP代理对报文的发送进行控制具体通过根据所述目标带宽确定token数目增长速率,确定按照所述token数目增长速率获得的token的数目是否达到预置数值,若达到,TCP代理才向所述TCP客户端发送所述报文。即本专利技术实施例中,提供了一种TCP代理对报文的发送进行控制的具体实现方式,用于有效地避免网络瞬间进入过多的报文,提高TCP吞吐量。在一种可能的设计中,上述描述的报文发送方法中,还可以包括:TCP代理可以设置一个发送定时器,并启动该发送定时器,当该发送定时器定时达到预置时长时,则执行确定按照token数目增长速率获得的token的数目是否达到预置数值的步骤。本专利技术实施例中,当TCP代理确定按照token数目增长速率获得的token的数目未达到预置数值时,需要被发送的报文会缓存在TCP代理侧套接字socket缓冲区中等待被发送,需要等待触发发送报文的指令的到来,即,TCP代理需要等待上次报文已经发送成功时TCP客户端反馈的确认报文(英文全称:Acknowledgement,英文简称:ACK),此时TCP代理才会再次执行确定按照token数目增长速率增长的token的数目是否达到预置数值的步骤,但是,由于网络故障或其它原因通信,常常会导致ACK往返时间(英文名称:round-triptime,英文简称:RTT)太长,在这种情况下,即使token的数目已经达到预置数值,缓冲区中的数据也会长时间无法发送出去,此时为了避免这种情况的出现,本专利技术实施例中,TCP代理通过设置一个发送定时器,只要该发送定时器定时达到预置时长时,就会执行确定按照token数目增长速率获得的token的数目是否达到预置数值的步骤,并当token的数目达到预置数值时,则TCP代理才向TCP客户端发送报文。即可以有效地避免了出现套接字socket缓冲区中的数据长时间无法发送出去的情况。在一种可能的设计中,该报文发送方法还可以包括:TCP代理可以设置token资源队列以及token资源队列的最大深度,其中,token资源队列用于存放TCP代理按照token数目增长速率获得的token,最大深度用于指示token资源队列能存放的按照token数目增长速率获得的token的最大数。本专利技术实施例中,token资源队列用于存放TCP代理按照token数目增长速率获得的token,最大深度用于指示token资源队列能存放的按照token数目增长速率获得的token的最大数。在实际应用中,一方面,在一定的时间周期内,若没有报文需要被TCP代理发送,此时按照token数目增长速率会生成出较多的token,而该token资源队列的最大深度约束了token增长不可能超过一定的阈值,另一方面所带来的作用是,token资源队列的最大深度起到一个缓冲作用,即当一段时间周期内TCP代理没有报文需要发送时,token资源队列可以保存一定数量的token,此时,若突然有大量报文需要发送时,可以最大的提高允许被发送的报文数量,最终达到发送报文的相对速率比较均匀的效果。在一种可能的设计中,TCP代理根据每个样本TCP响应报文计算TCP代理和TCP客户端之间的TCP连接的样本传输带宽具体为:对于每个样本TCP响应报文,TCP代理可以根据样本TCP响应报文对应的报文的发送时间、样本TCP响应报文的接收时间,以及对应的报文的长度计算出TCP连接的样本传输带宽。在一种可能的设计中,TCP代理根据估算带宽确定目标带宽之前还可以包括:TCP代理可以确定TCP客户端之间的TCP连接的业务类型,接着获取策略配置信息,其中,策略配置信息包括目标带宽的调整比例与业务类型的对应关系,该策略配置信息由用户通过TCP代理提供的产品配置界面进行设置,之后可以根据业务类型与策略配置信息确定目标带宽的调整比例,再根据估算带宽以及策略配置信息确定目标带宽;此时,TCP代理根据估算带宽以及策略配置信息确定目标带宽具体为:TCP代理按照以下公式计算得到目标带宽:目标带宽=目标带宽的调整比例×估算带宽。本专利技术实施例中,TCP代理可以接收用户通过TCP代理提供的产品配置界面输入策略配本文档来自技高网...
一种报文发送方法、TCP代理以及TCP客户端

【技术保护点】
一种报文发送方法,其特征在于,所述方法由TCP代理执行,所述方法包括:向TCP客户端发送M个报文;接收所述TCP客户端发送的所述M个报文的N个TCP响应报文;根据每个样本TCP响应报文计算所述TCP代理和所述TCP客户端之间的TCP连接的样本传输带宽,所述样本TCP响应报文为所述N个TCP响应报文中的至少一个;根据所述样本传输带宽确定估算带宽样本集,所述估算带宽样本集包括根据每个所述样本TCP响应报文计算得到的样本传输带宽;根据所述估算带宽样本集确定估算带宽;根据所述估算带宽确定目标带宽;根据所述目标带宽确定可用令牌token数,根据所述可用token数控制报文的发送。

【技术特征摘要】
1.一种报文发送方法,其特征在于,所述方法由TCP代理执行,所述方法包括:向TCP客户端发送M个报文;接收所述TCP客户端发送的所述M个报文的N个TCP响应报文;根据每个样本TCP响应报文计算所述TCP代理和所述TCP客户端之间的TCP连接的样本传输带宽,所述样本TCP响应报文为所述N个TCP响应报文中的至少一个;根据所述样本传输带宽确定估算带宽样本集,所述估算带宽样本集包括根据每个所述样本TCP响应报文计算得到的样本传输带宽;根据所述估算带宽样本集确定估算带宽;根据所述估算带宽确定目标带宽;根据所述目标带宽确定可用令牌token数,根据所述可用token数控制报文的发送。2.根据权利要求1所述的报文发送方法,其特征在于,所述根据所述目标带宽确定可用令牌token数,根据所述可用token数控制报文的发送包括:根据所述目标带宽设置token数目增长速率;确定按照所述token数目增长速率获得的token的数目是否达到预置数值,若达到,则向所述TCP客户端发送所述报文。3.根据权利要求1所述的报文发送方法,其特征在于,所述根据所述目标带宽确定可用令牌token数,根据所述可用token数控制报文的发送包括:将所述目标带宽发送至所述TCP客户端,以使得所述TCP客户端根据所述目标带宽设置token数目增长速率,并确定按照所述token数目增长速率获得的token的数目是否达到预置数值,若达到,则发送所述报文。4.根据权利要求2所述的报文发送方法,其特征在于,所述方法还包括:设置发送定时器并启动所述发送定时器;当所述发送定时器定时达到预置时长时,则执行所述确定按照所述token数目增长速率获得的token的数目是否达到预置数值的步骤。5.根据权利要求4所述的报文发送方法,其特征在于,所述方法还包括:设置token资源队列以及所述token资源队列的最大深度,所述token资源队列用于存放按照所述token数目增长速率获得的token,所述最大深度用于指示所述token资源队列能存放的按照所述token数目增长速率获得的token的最大数。6.根据权利要求5所述的报文发送方法,其特征在于,所述根据每个样本TCP响应报文计算所述TCP代理和所述TCP客户端之间的TCP连接的样本传输带宽包括:对于每个样本TCP响应报文,根据所述样本TCP响应报文对应的报文的发送时间、所述样本TCP响应报文的接收时间,以及所述样本TCP响应报文对应的报文的长度计算所述TCP连接的样本传输带宽。7.根据权利要求6所述的报文发送方法,其特征在于,所述TCP代理根据估算带宽确定目标带宽之前还包括:获取策略配置信息,所述策略配置信息包括所述目标带宽的调整比例与业务类型的对应关系;所述根据所述估算带宽确定目标带宽包括:根据所述估算带宽、所述TCP连接对应的业务类型以及所述策略配置信息确定所述目标带宽。8.一种报文发送方法,其特征在于,包括:TCP客户端接收TCP代理发送的目标带宽,所述目标带宽由所述TCP代理根据估算带宽确定,所述估算带宽由所述TCP代理根据估算带宽样本集确定,所述估算带宽样本集由所述TCP代理根据样本传输带宽确定,所述样本传输带宽由所述TCP代理根据每个样本TCP响应报文计算所述TCP代理和所述TCP客户端之间的TCP连接得到,所述样本TCP响应报文为N个TCP响应报文中的至少一个,所述N个TCP响应报文为所述TCP客户端接收到所述TCP代理发送的M个报文后反馈至所述TCP代理的报文;所述TCP客户端根据所述目标带宽设置token数目增长速率;所述TCP客户端确定按照所述token数目增长速率获得的token的数目是否达到预置数值,若达到,则发送报文。9.根据权利要求8所述的报文发送方法,其特征在于,所述方法还包括:所述TCP客户端设置发送定时器并启动所述发送定时器;当所述发送定时器定时达到预置时长时,则执行所述确定按照所述token数目增长速率获得的token的数目是否达到预置数值的步骤。10.根据权利要求8或9中任一项所述的报文发送方法,其特征在于,所述方法还包括:所述TCP客户端设置token资源队列以及所述token资源队列的最大深度,所述token资源队列用于存放所述token,所述最大深度用于指示所述token资...

【专利技术属性】
技术研发人员:王文涛朱坤秦韵
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1