CN113194504A - 基于多路复用探测和对端遥测优化传输协议的方法和系统 - Google Patents
基于多路复用探测和对端遥测优化传输协议的方法和系统 Download PDFInfo
- Publication number
- CN113194504A CN113194504A CN202110461543.3A CN202110461543A CN113194504A CN 113194504 A CN113194504 A CN 113194504A CN 202110461543 A CN202110461543 A CN 202110461543A CN 113194504 A CN113194504 A CN 113194504A
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- giant
- sending
- queue
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W28/18—Negotiating wireless communication parameters
- H04W28/22—Negotiating communication rate
Abstract
本发明公开了一种基于多路复用探测和对端遥测优化传输协议的方法,包括数据截获封装过程、巨型帧传输及解构过程、动态调控巨型帧发送速率过程;通过过滤器从传输层协议栈截获数据包,按多重黑白链表结构构建队列,将截获的数据包排列在队列中,合并数据包为巨型帧,封装后利用多路复用探测和对端遥测准确判断对端实时吞吐量,动态调控巨型帧发送速率,高效传输数据;一种基于多路复用探测和对端遥测优化传输协议的系统,包括发送端、接收端和可信节点端,发送端包括数据截获模块、队列构建模块、巨型帧封装模块、加密模块、巨型帧发送速率调整模块。
Description
技术领域
本发明涉及通信领域,特别是一种基于多路复用探测和对端遥测优化传输协议的方法和系统。
背景技术
随着5G技术的发展、ipv6的应用、政务网“安可”工程(如推广国产化操作系统)的推进、更加严格的审查审计以及高铁、飞机、船舶等更加丰富的移动通信应用场景,引发通信网络技术特点的重大变革,导致传输层协议不适应物理层的发展,具体包括以下几个方面:
第一、现代通信终端的高频率移动,必然伴随着发射端到终端的电磁波传播距离频繁变动,进而单次往返延时rtt也随之变化,导致基准值base-rtt测量不准确;
第二、波束赋形技术动态调节信号的强度,以及5G单基站承载用户能力以十倍增加,网络容量共享成为业界新难题;
第三、ipv6技术推广,协议头字节数与网络中间节点数增加,导致处理延时和路由延时增长,叠加新建的骨干网大容量因素,tcp协议栈的内存需求更大,在现有技术下无法动态调节,导致带宽利用率不高,特别是5G和“安可工程”为代表的新型网络平台传输效率不高;
第四、审查审计设备的处理能力低于可用带宽和用户需求,导致处理延时长、深队列多、拦截丢包干扰频繁;
第五、政务办公网存放数据具有一定敏感性,用户态的流量控制难以保证安全性;
第六、无线通信中同频干扰以及频繁的网络波动导致的丢包容易引起ack回应包信息缺失,使带宽测量出现较大误差。
现阶段的传输控制协议涉及的相关RFC标准以及广义上几个商用或开源优化方案(如华夏创新基于吞吐率和丢包控制cwnd的方法,谷歌基于bdp的带宽估计与mtu调节方法,中科院识别可靠传输协议的丢包类型与方法)难以适应物理层的新变化。同时,现有方法容易导致链路带宽的使用率较低与无效包过多,造成公平性较差。
上述三种现有方法的共同缺陷在于:
一是上述方法仅仅修改了流控协议,只能控制数据流而数据包仍旧以传统方式发送,无法解决关键的数据包丢失引起的网页布局错乱和视频卡顿等问题;
二是大流量下ack信息随数据包发送,由于delay_ack发送频率较低,容易受到干扰丢失,因此,以ack信息作为接收端丢包判断唯一依据的上述方法,容易产生误判;
三是政务办公网和5G专网引入的审查设备可能会造成数据包的深队列排队,这些未确认的数据包会引起误估,ack返回的数据包序列号较小,影响上述方法中的带宽bw估计,导致拥塞窗口cwnd测不准;
四是高频移动环境下信号强度不一,网络延迟不同;波束赋形导致人群稀疏的地方信号较弱,容易产生延时波动;拥挤和严管控网络会因为各种原因产生链路中间节点丢包,导致延时波动较大,在延时波动较大的情况下,华创和谷歌方法的min_rtt会因测量周期滞后于波动周期,导致测量周期得到的min_rtt不符合波动周期的真实值,进而影响带宽估计。中科院方法中会将排队等因素增加的往返时延rtt归为loss-rtt,从而导致丢包类型判断错误。审查节点对不同包的检测和排队时长的不一致,也将直接影响base-RTT的判断,导致无法分辨loss-dest较近的loss-rtt。旁路审查在旁路设备完成计算的不同时间点发生,会测量出多个虚假的loss-RTT和loss-Dist,导致丢包识别错误;
五是现代网络长距离大带宽传输增加,在rtt与bw较大的网络中,较小的缓冲区都会导致响应慢,发送数据不及时,无法利用带宽。上述方法不涉及tcp协议栈的内存占用调节或无法实现动态增大缓冲区,提高带宽利用率;
六是拦截部分页面不良元素和敏感网站,导致部分数据包被拦截,上述基于ack回应包判断丢包的方法,无法区分审查丢包还是拥塞丢包,进而影响带宽探测,导致无法探知管道真实带宽;
七是上述方法判断带宽所依据的数据量较少,难以准确判断带宽;
除此之外,上述方法还有各自不同的缺陷,如华创方法在网络安全上漏洞较大,容易造成保密信息泄露;谷歌方法判断带宽变化反应迟缓。
总之,BBR的大规模部署仅存在于谷歌内网无干扰、多流通信环境,以往流控方法大都比较适应datacenter之间较稳定、节点少、无审查的理想环境通信,对实时性较强,节点设备、旁路设备较多的现代通信网络,显得颇为乏力。
发明内容
为了克服上述现有技术的不足,本发明提供了一种基于多路复用探测和对端遥测优化传输协议的方法。
为实现上述目的,本发明提供了一种基于多路复用探测和对端遥测优化传输协议的方法,包括数据截获封装过程、巨型帧传输及解构过程、动态调控巨型帧发送速率过程;
其中,数据截获封装过程包括:
在发送端的传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入发送端网络设备,接入后,发送端过滤器fliter从传输层协议栈截获数据包;
按照多重黑白链表结构构建多个队列queque,多个队列queque对应放在多个链表中,将截获的数据包排列在所述多个队列queque中,将每个队列queque中待编辑的数据包对应储存在该队列queque对应的链表的奇数位,已经编辑的数据包相应地储存在链表的偶数位;
访问新构建的队列queue,根据多重黑白链表结构确定需要修改的数据包,按序将多个数据包合并成为一个巨型帧,删除队列queue中已经合并的数据包;
对所述巨型帧增加封装头部,所述封装头部包括:α协议号、maximize throughput服务类型、峰值占用标识和吞吐量标识,所述峰值占用标识的具体数值根据实时吞吐量与终端设计吞吐量最大值设定;
对所述包含封装头部的巨型帧进行加密操作;
巨型帧传输及解构过程包括:
在所述队列queue中,通过所述多重黑白链表结构确定待发送的巨型帧,即多重黑白链表结构中每一链表的偶数位,发送巨型帧,根据对端回传的确认信息,将已经传达的巨型帧从队列queue中删除,将已发送但未传达的巨型帧置于队列queue后m位(m优选为时延*带宽*1.5/巨型帧长度的值取整),当前序巨型帧全部发送以后,将已发送但未传达的巨型帧按照待发送巨型帧处理,在队列queue中实现重传功能;
巨型帧在经过链路的可信节点时,可信节点通过所述加密操作的验证证书解密峰值占用标识,基于峰值占用标识验证巨型帧传输是否属于合法连接,若属于合法连接,可信节点根据所述峰值占用标识的最大值设定新的峰值占用标识,并再次对所述巨型帧进行加密操作,继续向路由下一跳发送所述巨型帧;若所述巨型帧传输不属于合法连接,则直接丢弃巨型帧;
所述巨型帧到达接收端后,在接收端传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入接收端网络设备,接入后,接收端过滤器fliter从接收端网络设备截获巨型帧;
当检测到所述接收端网络设备接收到完整巨型帧时,按照所述多重黑白链表结构构建接收端队列queue,将巨型帧按序排列置于接收端所构建的队列queue中,对接收端队列queue中的巨型帧依次进行解密、解封装,将接收端队列queue中的巨型帧分解并恢复成符合传输层协议的数据包,注入传输层协议栈;
动态调控巨型帧发送速率过程包括:
利用多路复用探测和对端遥测准确判断对端的实时吞吐量,并根据所述对端的实时吞吐量动态调控巨型帧发送速率。
进一步地,所述加密操作为双证书加密操作,包括证书生成过程、密码确定过程与加密过程;
证书生成过程包括:接收端生成签名密钥对,发送端和可信节点各自生成加密密钥对;
密码确定过程包括:以特定协商数据为密码,所述特定协商数据优选为路由跳数或上β个数据包的发送时间戳timestamp;
所述加密过程包括:密码加密过程和无密码加密过程;
所述密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,下一可信节点的加密密钥对的公钥作为加密密钥,使用所述加密密钥与所述密码进行加密;
所述无密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,再通过下一可信节点的加密密钥对的公钥加密;
所述峰值占用标识使用无密码加密,所述吞吐量标识使用密码加密。
进一步地,所述“注入传输层协议栈”具体包括:传输层数据包去除头部中的相关状态机、拥塞与窗口限制标识,所述多个数据包合并为一个巨型帧后,钩子hook调用反馈程序,将数据包对应的回应包反馈于传输层协议栈。
进一步地,所述多路复用探测是指:在巨型帧传输过程中,复用数据传输巨型帧,在确保巨型帧未超出最大长度的情况下,每次探测将探测字段附于巨型帧末端。
进一步地,所述对端遥测是指:发送端按照发送数据流量的固定比率发送探测包,接收端按照接收数据流量的固定比率发送回应包,发送端统计接收端接收速率和吞吐量;根据所述峰值占用标识判断对端峰值处理能力。
进一步地,所述“动态调控巨型帧发送速率”具体包括:
在巨型帧发送的启动阶段,以傅里叶级数近视方波曲线的增长速率发送巨型帧,获取对端巨型帧封装头部峰值占用标识的值cppeak_1;每个往返时延rtt开始一个多路复用的探测过程,触发对端回应,记录回应包峰值占用标识的值cppeak_2[n],接收端带宽为bw[n]= cppeak_2[n]-cppeak_1;
测得巨型帧发送启动阶段的基准带宽bw[n]_max,所述基准带宽bw[n]_max取bw[n]中的最大值,当基准带宽bw[n]_max不随着发送速率增长而增长时,则判断巨型帧发送进入基准分布阶段;
巨型帧发送基准分布阶段的带宽记为bw,在ξ 个rtt周期内,使用正态分布数列,以bw_2[n]=α*bw的波动速率发送巨型帧,所述α为正态分布数列,所述ξ 优选为5;
每间隔η个往返时延rtt经过平滑生成平滑往返时延srtt_prior,所述η优选为3;
当平滑往返时延srtt_prior不随着bw_2[n]呈周期性变化时,则巨型帧发送进入跃变阶段,以傅里叶级数近视方波曲线的斜率增长或减缓发送巨型帧速率,直至适应真实带宽;
当平滑往返时延srtt_prior随着bw_2[n]呈周期性变化时,则巨型帧发送进入基准分布阶段;
通过峰值占用标识动态调节发送端、可信节点、接收端的缓存,以适应速率变化。
进一步地,所述正态分布数列为[e^(-0.166),1,e^(0.266),1,e^(-0.166)] ,其中e是自然常数。
除此之外,为了克服现有技术的不足,本发明还提供了一种基于多路复用探测和对端遥测优化传输协议的系统,所述系统包括发送端、接收端和可信节点端;
所述发送端包括:
数据截获模块:用于在发送端的传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入发送端网络设备,接入后,发送端过滤器fliter从传输层协议栈截获数据包;
队列构建模块:用于按照多重黑白链表结构构建多个队列queque,多个队列queque对应放在多个链表中,将截获的数据包排列在所述多个队列queque中,将每个队列queque中待编辑的数据包对应储存在该队列queque对应的链表的奇数位,已经编辑的数据包相应地储存在链表的偶数位;
巨型帧封装模块:用于访问新构建的队列queue,根据多重黑白链表结构确定需要修改的数据包,按序将多个数据包合并成为一个巨型帧,删除队列queue中已经合并的数据包;对所述巨型帧增加封装头部,所述封装头部包括:α协议号、maximize throughput服务类型、峰值占用标识和吞吐量标识,所述峰值占用标识的具体数值根据实时吞吐量与终端设计吞吐量最大值设定;
加密模块:用于对所述包含封装头部的巨型帧进行加密操作;
巨型帧发送速率调整模块:用于利用多路复用探测和对端遥测准确判断对端的实时吞吐量,并根据所述对端的实时吞吐量动态调控巨型帧发送速率;
所述接收端包括:
巨型帧接收模块:用于在所述巨型帧到达接收端后,在接收端传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入接收端网络设备,接入后,接收端过滤器fliter从接收端网络设备截获巨型帧;
巨型帧队列处理模块:用于当检测到所述接收端网络设备接收到完整巨型帧时,按照所述多重黑白链表结构构建接收端队列queue,将巨型帧按序排列置于接收端队列queue中;
巨型帧解密解封装模块:用于对接收端队列queue中的巨型帧依次进行解密、解封装,将接收端队列queue中的巨型帧分解并恢复成符合传输层协议的数据包,注入传输层协议栈;
所述可信节点端包括:
加解密与标识计算模块:用于通过所述加密操作的验证证书解密峰值占用标识,基于峰值占用标识验证巨型帧传输是否属于合法连接,若属于合法连接,可信节点根据所述峰值占用标识的最大值设定新的峰值占用标识,并再次对所述巨型帧进行加密操作,继续向路由下一跳发送所述巨型帧;若所述巨型帧传输不属于合法连接,则直接丢弃巨型帧。
进一步地,所述加密操作为双证书加密操作;所述加密操作为双证书加密操作,包括证书生成过程、密码确定过程与加密过程;
证书生成过程包括:接收端生成签名密钥对,发送端和可信节点各自生成加密密钥对;
密码确定过程包括:以特定协商数据为密码,所述特定协商数据优选为路由跳数或上β个数据包的发送时间戳timestamp;
所述加密过程包括:密码加密过程和无密码加密过程;
所述密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,下一可信节点的加密密钥对的公钥作为加密密钥,使用所述加密密钥与所述密码进行加密;
所述无密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,再通过下一可信节点的加密密钥对的公钥加密;
所述峰值占用标识使用无密码加密,所述吞吐量标识使用密码加密。
进一步地,所述“注入传输层协议栈”具体包括:传输层数据包去除头部中的相关状态机、拥塞与窗口限制标识,所述多个数据包合并为一个巨型帧后,钩子hook调用反馈程序,将数据包对应的回应包反馈于传输层协议栈。
进一步地,所述多路复用探测是指:在巨型帧传输过程中,复用数据传输巨型帧,在确保巨型帧未超出最大长度的情况下,每次探测将探测字段附于巨型帧末端。
进一步地,所述对端遥测是指:发送端按照发送数据流量的固定比率发送探测包,接收端按照接收数据流量的固定比率发送回应包,发送端统计接收端接收速率和吞吐量;根据所述峰值占用标识判断对端峰值处理能力。
进一步地,所述“动态调控巨型帧发送速率”具体包括:
在巨型帧发送的启动阶段,以傅里叶级数近视方波曲线的增长速率发送巨型帧,获取对端巨型帧封装头部峰值占用标识的值cppeak_1;每个往返时延rtt开始一个多路复用的探测过程,触发对端回应,记录回应包峰值占用标识的值cppeak_2[n],接收端带宽为bw[n]= cppeak_2[n]-cppeak_1;
测得巨型帧发送启动阶段的基准带宽bw[n]_max,所述基准带宽bw[n]_max取bw[n]中的最大值,当基准带宽bw[n]_max不随着发送速率增长而增长时,则判断巨型帧发送进入基准分布阶段;
巨型帧发送基准分布阶段的带宽记为bw,在ξ 个rtt周期内,使用正态分布数列,以bw_2[n]=α*bw的波动速率发送巨型帧,所述α为正态分布数列,所述ξ 优选为5;
每间隔η个往返时延rtt经过平滑生成平滑往返时延srtt_prior,所述η优选为3;
当平滑往返时延srtt_prior不随着bw_2[n]呈周期性变化时,则巨型帧发送进入跃变阶段,以傅里叶级数近视方波曲线的斜率增长或减缓发送巨型帧速率,直至适应真实带宽;
当平滑往返时延srtt_prior随着bw_2[n]呈周期性变化时,则巨型帧发送进入基准分布阶段;
通过峰值占用标识动态调节发送端、可信节点、接收端的缓存,以适应速率变化。
进一步地,所述正态分布数列优选为[e^(-0.166),1,e^(0.266),1,e^(-0.166)],其中e是自然常数。
本发明的有益效果是:
一是本发明采用多路复用(multiplex)探测和对端遥测方法,在不改动上层应用代码的前提下,提供一整套自适应优化传输协议的系统,无需人为调整网络配置参数,具有易识别、难篡改、难伪造、高性能、适应性强、兼容性好的特点;
二是本发明在不改变原有数据流和上层协议的基础上,在传输层与数据链路层之间插入过滤器fliter,替代内核网络协议栈,截获数据包,使数据包不进入内核网络协议栈缓存,而直接进入过滤器fliter,避免了传统内核网络协议栈数据处理效率较低、频繁对网络虚拟文件系统进行上锁与解锁操作、多核并行处理的优势难以发挥等缺陷;
三是本发明采取多路复用探测和对端遥测的方法,接管传输层协议的流控模块与可靠传输模块,在底层提供更强的传输可靠性与链路稳定性,实现不修改应用层和上层协议代码的前提下,灵活部署,减轻网络负载与提高流量管控能力;
四是本发明通过传输层协议头部反馈,深度优化上层协议,使用链接平滑移动技术达到断线重连,通过巨型帧的多路复用减少上层连接建立的延时;
五是本发明通过构建多重黑白链表结构队列,克服传统队列技术因数据拷贝频繁,需要同时维护发送队列与重传队列等,造成效率低下的难题,且突破性地在队列实现巨型帧重传;
六是本发明本发明通过对包含封装头部的巨型帧进行双证书加密操作,防止中间人攻击和修改巨型帧封装头部数据,防止链路中入侵者伪装路由节点读取或劫持数据;通过双证书加密的方式,验证证书将信息通告给可信节点,能有效识别数据是否为攻击者伪造,避免分布式拒绝服务攻击。
总之,本发明能够优化5G网络与政务内网“安可”工程的用户使用体验,增强用户感知和用户粘度,能对上述网络建设与应用产生较大助力。
附图说明
图1为本发明实施例的基于多路复用探测和对端遥测优化传输协议方法的示意图;
图2为本发明实施例的包转发性能与传统内核包转发性能的比较;
图3为本发明实施例的巨型帧增加头部封装(encapsulation)的总体结构;
图4为本发明实施例的巨型帧增加头部封装(encapsulation)的详细结构;
图5为本发明实施例的动态调控巨型帧发送速率的流程图;
图6为本发明实施例的傅里叶级数近视方波曲线示意图;
图7为本发明实施例的正态分布数列示意图。
具体实施方式
本发明的一种基于多路复用探测和对端遥测优化传输协议的方法的实施例如图1所示:包括数据截获封装过程、巨型帧传输及解构过程、动态调控巨型帧发送速率过程;
数据截获封装过程包括:在发送端的传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈(kernel network stack)和驱动(driver)处理传输层协议数据,即过滤器fliter与驱动并行接入发送端网络设备(nic)。接入后,发送端过滤器fliter从传输层协议栈截获数据包,具体过程如下:
传输层协议生成数据包,当检测到传输层发送(xmit)数据包时,利用内核中的ebpf接口,钩子hook调用fliter过滤器,根据数据包指针查询数据包在内存的具体位置,获取数据包。
传统内核网络协议栈数据处理效率较低,尤其是小包转发率特别低,受限于网络数据在内核中的频繁拷贝和由于动态内存竞争机制导致网络数据在内存中处理延迟较高。传统内核网络协议栈处理网络数据包经常对网络虚拟文件系统进行上锁与解锁操作,处理器多核心需要错时访问网络数据,多核并行处理的优势难以发挥。本发明在传输层与数据链路层之间插入过滤器fliter,替代内核网络协议栈,截获数据包,使数据包不进入内核网络协议栈缓存,而直接进入过滤器fliter,避免了传统内核网络协议栈的上述缺陷。
如图2所示,实验结果表明,本发明的包转发性能相比传统内核的包转发性能提升近十倍。其中linux network stack的纵轴数值为传统内核包转发速度,prefliter的纵轴数值为本发明的包转发速度,单位为Mpps,1、2、3表示三次实验。
在数据包进入TCP/IP协议栈缓存(sk_buff)之前,将数据包排列在新构建的队列queque,队列按多重黑白链表结构构建,多个队列对应放在多个链表中,将一个队列中待编辑的数据包储存在一个链表的奇数位,已经编辑的数据包储存在相同链表的偶数位。黑色节点表示奇数位,白色节点表示偶数位。访问新构建的队列queue,根据多重黑白链表结构确定可以修改的数据包,按序将多个传输层数据包合并成为一个巨型帧。在队列queue中删除已经合并的数据包。
传统内核网络协议栈缓冲区skb可被多处函数调用修改,需要上锁解锁过程,同时为了实现串行处理,频繁软中断导致效率降低,内核网络协议栈缓冲区skb按需动态占用内存导致内存竞争。
本发明通过接管发送端的网络设备,使网络数据进入新的处理过程:通过队列queue静态占用部分内存,避免内存竞争拉低效率,通过队列queue实现网络数据在内存中零拷贝,同时根据多重黑白链表结构,通过对待编辑数据包与已编辑数据包的分流处理,自主识别链表中的可处理数据,避免多处函数对同一部分数据同时处理,即避免对队列的锁处理,从而提高数据包的处理效率。巨型帧减少了数据包个数,避免了数据包不断发送过多占用处理资源,导致效率低下。巨型帧传输数据相比于传统数据帧和路由,两端需要处理的包头数量更少,因此处理效率更高。删除已合并的数据包有利于为缓存即时清理出可用空间。
如图3所示,对所述巨型帧增加封装(encapsulation)头部。如图4所示,所述封装头部为:在原有的数据包头部包含ip版本号、首部长度、服务类型、总长度、标识、标志、片偏移、生成时间(TTL)、首部校验和、源地址、目的地址的基础上,增加α协议号、maximizethroughput服务类型、峰值占用标识和吞吐量标识。所述峰值占用标识的数值优选为0-100之间的自然数,具体为实时吞吐量除以终端设计吞吐量最大值,乘以100得出数值。每个可信节点接收到数据包后,计算所述峰值占用标识的数值,取最大值作为最终峰值占用标识的数值。所述吞吐量标识为本机接收与发送的流量数据,单位为Mbps,单位不包含在标识中。
巨型帧封装头部中的峰值占用标识和吞吐量标识作为预防非法攻击或流量控制提供充分信息,杜绝伪造本发明的方案进行分布式拒绝服务攻击。部分协议(如udp)需要丢包等管控措施,才能避免网络滥用和攻击;部分协议(如tcp)需要保障一定的传达率,避免协议陷入负反馈,而导致数据无法传输。因此,传统传输层协议需要根据不同协议的拥塞控制以及不同的代码、逻辑和实现方式,采取不同的网络优化策略,从而给网络优化带来了繁重的工作量。本发明通过把不同的协议号修改为相同的协议号α,运营商针对承载的不同的传输层协议作相同的服务质量等级设置,保障不同的传输层协议具有相同的良好传输效果。同时,根据本发明的带宽测量与流量增长方式,保障一定的带宽剩余和公平共享带宽。
对所述包含封装头部的巨型帧进行加密操作;
所述加密操作为双证书加密操作,包括证书生成过程、密码确定过程与加密过程;
证书生成过程包括:接收端生成签名密钥对,发送证书请求给发送端,发送端生成加密密钥对,签发两对证书,其中一对为接收端签名和加密证书,由接收端保存,另一对为验证证书,由发送端保存,并通告可信节点;发送端和可信节点各自生成加密密钥对;
密码确定过程包括:以特定协商数据为密码,所述特定协商数据优选路由跳数或上β个数据包的发送时间戳timestamp,作为无需传输而直接产生的协商密码;
所述加密过程包括:密码加密过程和无密码加密过程;
所述密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,下一可信节点的加密密钥对的公钥作为加密密钥,使用所述加密密钥与所述密码进行加密;
所述无密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,再通过下一可信节点的加密密钥对的公钥加密;
所述峰值占用标识使用无密码加密,所述吞吐量标识使用密码加密。
双证书加密操作能够防止中间人攻击和修改巨型帧封装头部数据,防止链路中入侵者伪装路由节点读取或劫持数据。利用链路特定数据,如路由跳数或上β个数据包的发送时间戳timestamp,作为特定协商密码,无需传输直接生成,安全性与效率较高。传统网络加密方式,无法识别数据是否伪造,进而导致难以防止分布式拒绝服务攻击。本发明通过双证书加密的方式,验证证书将信息通告给可信节点,能有效识别数据是否为攻击者伪造,在链路中自动丢弃无效巨型帧,避免了针对本发明的分布式拒绝服务攻击等。密码加密和无密码加密两种方式,使同一套证书密码体系实现两种不同程度加密安全级别。
巨型帧传输及解构过程包括:在所述队列queue中,通过所述多重黑白链表结构确定待发送的巨型帧,即多重黑白链表结构中每一链表的偶数位,发送数据。所述发送数据是以巨型帧为单位发送和重传数据,再根据对端回传的确认信息,将已经传达的巨型帧从队列中删除;已发送但未传达的巨型帧置于队列queue后m位(m优选为时延*带宽*1.5/巨型帧长度的值取整),当前序巨型帧全部发送以后,已发送但未传达的巨型帧重新居于队列首位时,再次发送,从而在队列中实现重传功能。
传统内核网络协议栈维护了两个队列,已经发送的数据需要从两个队列拷贝,确认的数据从重传队列中删除,数据来回拷贝导致性能低下,且数据包重传由传输层协议栈控制。本发明的多重链表结构不仅根据处理器核心数,维护多个链表,不产生竞争现象,而且在一个链表中通过设置黑白节点,即把待编辑和已编辑的数据包分别放在奇数位、偶数位,根据上文所述方法,实现队列控制重传,与流量控制分离,避免处理效率低和逻辑复杂约束网络性能发挥。
所述经网络设备(nic)发送的巨型帧,进入链路。链路中,可信节点通过所述验证证书,解密峰值占用标识,验证巨型帧传输是否属于合法连接。若峰值占用标识处于合法区间,则巨型帧传输属于合法连接。中间路由根据上述峰值占用标识计算设定方法,修改峰值占用标识的数值,并再次使用所述双证书加密,继续向路由下一跳发送所述巨型帧。若峰值占用标识不处于合法区间,则直接丢弃巨型帧。
所述巨型帧到达接收端后,在接收端传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入接收端网络设备。接入后,接收端过滤器fliter从接收端网络设备截获巨型帧。具体过程如下:
网络设备(nic)接收到巨型帧,当检测到所述网络设备(nic)接收一个完整巨型帧时,钩子hook调用fliter过滤器,将巨型帧按照多重黑白链表结构,按序排列在接收端队列queue中。
所述接收端队列queue中的巨型帧,通过所述双证书加密的逆过程进行解密,通过所述封装过程的逆过程进行解封装,通过所述队列queue中数据包合并为巨型帧的逆过程,恢复出符合传输层协议的数据包,并直接注入传输层协议栈,即将队列queue中的数据包的指针通告给对应传输层协议栈。
所述巨型帧接收过程中,所述队列queue注入传输层协议栈的数据,去除相关状态机、拥塞与窗口限制标识。所述多个数据包合并为一个巨型帧后,钩子hook调用反馈程序,将数据包对应的回应包反馈于传输层协议栈。
通过传输层头部数据调节传输层协议栈,可以在不修改传输层协议栈的前提下,避免传输层代码限制传输速率,实现传输层无修改,平滑过渡到新方法,并兼容各种终端系统。本发明在数据链路层的框架下实现端到端的封装传输,兼容传统网络路由设备的前提下,实现c/s体系结构,为上层应用的编写提供极大便利。
通过利用多路复用(multiplex)探测和对端遥测准确判断对端实时吞吐量,动态调控巨型帧发送速率。所述多路复用(multiplex)探测为在巨型帧传输过程中,复用数据传输巨型帧,在确保巨型帧未超出最大长度的情况下,每次探测将探测字段附于巨型帧末端,相较于传统传输层探测的独立连接和独立数据包,能有效减少探测时延和资源占用;所述对端遥测是指:发送端按照发送数据流量的固定比率发送探测包,接收端按照接收数据流量的固定比率发送回应包,发送端统计接收端接收速率和吞吐量;根据所述峰值占用标识判断对端峰值处理能力。
本发明采用多路复用探测和对端遥测方法,对不同的传输协议都用相同的流量控制规则,一次优化,就能保障不同的协议达到相同的使用效果。由于多路复用探测和对端遥测方法,
速率调控遵循公平性原则,根据剩余带宽动态调控速率,无需额外设置,也能公平共享带宽。
如图5所示,动态调控巨型帧发送速率详细实施过程如下:
步骤(1)巨型帧发送的启动阶段,以傅里叶级数近视方波曲线的增长速率,发送巨型帧,获取对端巨型帧封装头部峰值占用标识的值cppeak_1;每个往返时延(rtt)开始一个多路复用的探测过程,触发对端回应,记录回应包峰值占用标识的值cppeak_2[n],记接收端带宽为bw[n]= cppeak_2[n]-cppeak_1,并发送一个reset包,通知过滤器fliter结束探测。链路的基准带宽bw[n]_max取bw[n]中的最大值,n优选为5。
将多路复用技术引入数据链路层,在相同方向的链路传输过程中,直接实现探测流量与数据流量同步传输,减少探测时延,同时将探测数据的流量计算在总带宽内,获取更准确的基准带宽。
本发明创造性地提出把傅里叶级数近视方波曲线,作为数据发送的增长曲线。换句话说,在增加巨型帧发送速率阶段,按每0.5rtt时间改变发送速率dlvdata值,使各点落在傅里叶级数近似方波曲线上。在降低巨型帧发送速率的阶段,则以当前带宽的总量为傅里叶级数近似方波曲线的最高点,按0.5rtt时间减小发送速率dlvdata值,使各点落在傅里叶级数近似方波的末端上,从而在降低发送速率阶段获得更加平滑的曲线。
因为傅里叶级数近视方波曲线yn= sinx+sin3x+ sin5x+……+sinnx+……在n足够大时,其斜率接近于+∞,因此在一些带宽较大的环境,比如数据中心内网,选取合适的傅里叶级数近视方波曲线作为带宽增长的速率,能实现跃变式占满可用带宽,弥补传统算法在大带宽下带宽利用率低下的缺陷。此外,傅里叶级数近视方波曲线在初始阶段斜率较小,带宽增长较缓,不会在带宽较小时(如劣网环境)过度挤占带宽,做到公平合理共享带宽。
在傅里叶级数近视方波曲线末端,斜率增长平缓,有利于平缓过度到带宽调控的下一阶段,避免在网络满载的情况下,过多发送数据,挤占可信节点的缓存队列,给网络设备造成负担。傅里叶级数近视方波曲线末端比较平缓,在撤销增长时,不会造成断流现象,确保吞吐量保持在较高水平。
本发明的具体实施例中,傅里叶级数近视方波曲线的分段函数表达式如下:
y1=sinx(0≤x≤0.03)
y2=sinx-0.0200(0.03<x≤0.06)
y3=sinx+sin3x-0.0790(0.06<x≤0.12)
y4= sinx+sin3x+ sin5x-0.1920(0.12<x≤0.18)
y5= sinx+sin3x+ sin5x+ sin7x-0.3286(0.18<x≤0.24)
y6= sinx+sin3x+ sin5x+ sin7x+sin9x-0.4210(0.24<x≤0.315)
傅里叶级数近视方波曲线如图6所示,其中f、g、h、p、q分别为分段函数y1 与y2 、y2与y3、 y3与 y4、 y4 与y5、 y5 与y6的交点。巨型帧发送的状态转换如下:在前η个rtt内(η可根据延时情况优选,一般优选为5),以傅里叶级数近视方波曲线的增长速率,发送巨型帧。当已发送巨型帧达到初始剩余处理能力的3/4时,即3/4*(100-峰值占用标识的值cppeak_1),记录此时的发送速率dlvdata_1(因为现代终端的处理速度远高于网络传输速度,故假定每个rtt内的数据都可以完全处理),并保持1个rtt周期使用初始剩余处理能力的3/4,探测带宽。每一个rtt发送一个探测巨型帧,触发回应,记录回应包封装头部的峰值占用标识的值cppeak[n]。此时,在缓存充足的情况下,接收端带宽bw[n] = cppeak[n] - cppeak_1。与tcp协议不同的是,探测的回应不受delay_ack影响,能够及时反馈到发送端,同时cppeak[n]值与tcp的ack逐段确认造成容易丢失的特性不同,巨型帧接收速率不受ack丢失影响,确保对端带宽探测的准确性。
即使突发增长超过网络的传输限制,由于受限于巨型帧发送不会超过初始剩余处理能力的3/4,使得发送数据也不会超过接收端总处理能力。每个rtt发送的速率逐渐递增,最后两个rtt发送的速率恰好符合初始剩余处理能力的3/4。与传统tcp协议要进入memory_pressure阶段不同,本发明中不会因缓存太小而丢弃数据包,同时也不会因缓存不足,使发送速率偏离网络带宽。
巨型帧发送启动阶段的基准带宽bw[n]_max取bw[n]中的最大值。
步骤(2)根据步骤(1)测得巨型帧发送启动阶段的基准带宽bw[n]_max判断巨型帧发送是否进入基准分布阶段,再针对每一个rtt,利用多路复用技术,发送一个包含URG字段和探测字段的探测巨型帧,供fliter进入单独队列优先处理,开始基准分布阶段探测过程,根据响应包内容,获取此时接收端的峰值占用标识的值cppeak_2[n]。cppeak_2[n]可以粗略统计出每个rtt周期内内存剩余。即根据该rtt内接收的数据包个数γ=(cppeak_2[n]-cppeak_2[n-1])/mss解出cppeak_2[n]所对应的内存容量。数据在有空余的巨型帧末尾传输,由fliter处理后,记录相应参数,供数据传输调节所用,数据不进入传输层协议栈。
此处可用内存剩余为cppeak_diff=(cppeak_2[n]-cppeak_2[n-1])/ γ。
若cppeak_diff<700*mss(大约为10Mbps)则认为带宽受到发送端缓存限制,发送一个数据包通知对端扩大接收缓存,再返回到步骤(1),重新测量带宽。
若cppeak_diff>700*mss,则可判断带宽不受发送端缓存限制,则进入基准分布阶段。
传统tcp及优化方案,如华夏创新方案(专利公布号:CN104378307B,商用产品为锐速)在rtt较长的情况下(如跨境网络或航海航空等长距离无线通信),信道抖动使测量得srtt值较大,min-rtt值较小,则盲目扩大发送窗口占满对端缓存,导致对端通告的窗口较少,产生窗口抖动或对端通告零窗口造成断流,造成在高铁、航空、航海等移动通信环境中,微信转圈、网页空白、视频加载失败等,导致用户体验较差。本发明根据对端遥测采集的数据判断发送的数据量,避免了基于rtt或混合丢包和rtt的优化算法,盲目发送和盲目堆积对端队列造成断流的问题。
又如传统tcp优化算法,以Linux kernel 4.9中谷歌公司的BBR为例,无线通信环境的高吞吐量下,一次性发送过多数据,可能在2个以上的rtt后一次性收到大量ack回应包,造成易失速问题。(详见https://groups.google.com/forum/#!topic/bbr-dev/8pgyOyUavvY)
本发明创造性地提出使用对端通告峰值占用标识测量带宽,而非传统tcp算法仅使用ack测量对端丢包,避免了ack包丢失或重传造成的误差。传统tcp协议ack数据遭到篡改,或只包含ack信息的快速回应包被可信节点视为网络攻击而丢弃,影响发送窗口判断,导致带宽测量不准,而本发明由于使用峰值占用标识测量带宽,故不受上述因素的影响,进而能准确测量带宽。同时相较于ack包较低的发送频率,每rtt进行的探测在获取更多信息和消耗较少额外带宽之间取得平衡。更为重要的是,本发明为了不超过终端处理极限,通过峰值占用标识及时通告处理能力不足的信息。传统基于cpu中断的网络数据处理,主要受限于网络协议栈I/O锁次数即中央处理器效能,在终端通用处理平台上只能采用经济性较差的NP架构加速或通过软件方式增大缓冲区的方式缓解。
步骤(3)巨型帧发送的基准分布阶段。巨型帧发送基准分布阶段的带宽记为bw。在ξ 个rtt周期内(其中ξ 为1-10的整数,优选为5),如图7所示,使用正态分布数列,优选为[e^(-0.166),1,e^(0.266),1,e^(-0.166)],以bw_2[n]=α*bw的波动速率(其中α为正态分布数列)发送巨型帧。
图7中的A、B、C、D、E 的纵坐标分别为e^(-0.166),1,e^(0.266),1,e^(-0.166)。
传统tcp优化算法,如kernel 4.9中谷歌公司的BBR算法,使用8个元素的数组,分别为5/4、3/4和六个1构成,在48个rtt的平滑周期内,进行顺序探测,减缓或增加的幅度被大量的平滑参数磨平,6个rtt周期以1*bw的速率发送,叠加发送窗口是否符合带宽的条件门限较低的因素,经常误判造成队列堆积、大量丢包或无法利用增长的空余带宽,直至48个周期后才能有根本性的改变。
本发明使用正态分布数列作为巨型帧发送速率的比率,在吞吐率同样控制为1*bw的前提下,方差值较大,所以分布的范围较广,能更好地探测带宽是否变化。同时该数列均匀变动性更好,带宽变动更加平滑。本方法最多仅需5*rtt就可以探测得带宽变化,随后的步骤可以在1-5rtt内完成适应带宽变化,远少于BBR算法的8n*rtt周期(其中n随带宽变化幅度增大而增加,且由于变动的幅度较小,不一定能匹配带宽)。
步骤(4)根据步骤(3)测试链路带宽是否发生变化:rtt变化较频繁,能较好地反映终端与基站的距离变化情况,以及网络节点处的排队情况。另外,若数据在链路中丢失,rtt也会呈现大幅增大。故选取rtt作为带宽是否变化的参考标准,而非带宽的计算标准,具有较强的实践性与理论价值。
每间隔η个往返时延rtt经过平滑生成平滑往返时延srtt_prior,其中η优选为3;
当平滑往返时延srtt_prior呈现周期性变化,即当以e^(-0.055)*bw的速率发送数据时,srtt_prior减小;当以e^(0.125)*bw的速率发送数据时,srtt_prior增加,则认为bw_2[n]大致符合真实带宽real_bw,重新进入步骤(2)基准分布阶段;
当平滑往返时延srtt_prior没有呈现上述周期性变化时,即当以更高的带宽如以e^(0.125)*bw的速率发送数据时,巨型帧不在管道或某一节点处延误,即传输时延rtt不发生变化或减小,则认为带宽未满,bw_2[n]不符合真实带宽real_bw,进入巨型帧发送的跃变阶段。
值得一提的是,相较于以往依据rtt来判断拥塞或带宽上限的方法,本发明即使在该处由于rtt自身的脆弱性出现判断失误,也不影响带宽判断。换而言之,带宽未满但由于巨型帧进入链路中间节点的不同长度的队列中,导致rtt变化,因本发明在跃变阶段测量的带宽基于发送端探测不基于rtt,所以不受队列长度不同导致rtt准确性不高影响。
步骤(5)链路带宽的跃变阶段。利用多路复用技术,在同一巨型帧发送链路内,以数据包和探测包数量之比为5:1的比率,配合NO_ACKDELAY参数发送探测包,通过探测过程中返回的回应包数量return[n],记为回应包数量return_true[n],同时记录发送端队列巨型帧个数packet_queue和已发送但未确认的巨型帧数量packet_flight再判断增加或减少发送速率dlvdata:若return_true[n]与packet_flight同时增加,则以傅里叶级数近视方波曲线的增长速率,增大发送速率dlvdata;若return_true[n]与packet_flight有任一量减少,则用两个周期以傅里叶级数近视方波曲线末端的减缓速率撤销之前一个周期所产生的packet_queue。由于曲线的末端比曲线首端更加平缓,即减少的幅度小于之前增加的幅度,因此在撤销packet_queue基础上再减小2%的总带宽,此时发送速率dlvdata比真实带宽略小,获得较好的延迟和较低的丢包率,提高网络利用率,并进入基准分布阶段。
总之,步骤(5)通过以傅里叶级数近视方波曲线的增长或减缓速率,增大或减少发送速率dlvdata,适应较大的带宽变化。当带宽增加80%时,根据傅里叶级数近视方波曲线图6可知,仅需3rtt即可完成增长,带宽适应性较强。因此,可以通过调节发送速率dlvdata直至完全适应当前带宽,更快地适应网络频繁变动,避免传统tcp网络协议栈缓冲区不足限制网络的现象。
步骤(6)判断缓冲区是否不足。使用队列巨型帧个数packet_queue的增长或减少,计算已发送但未确认的巨型帧数量packet_flight是否超出缓存空间,与传统方案按照bw_2[n]/(time*mss)计算packet_flight相比,具有减少计算量,降低cpu占用的优势。同时由于队列及缓存的动态变化特性,避免了后者数值的相对静态性,能够实时反映缓冲区占用压力。
当队列巨型帧个数packet_queue不断增加,则说明缓冲区足够大,已经匹配当前带宽bw_3[n];当队列巨型帧个数packet_queue没有增加,则说明缓冲区不足,增加缓冲区,回到步骤(5),直至匹配当前带宽bw_3[n]。再以bw_3[n]为参数,再次进入基准分布阶段,根据带宽变化不断在基准分布阶段与跃变阶段循环,实现动态调节,以适应高移动、大带宽、使用场景多变的网络连接状况。
本发明基于多路复用探测和对端遥测优化传输协议的系统的实施例与上述方法实施例的实现原理相同,是以系统功能模块构成的角度对本发明构思的具体阐述,具体的实施方式、功能和效果的实现、技术术语的说明及解释、例举等参考上述方法实施例,系统实施例具体包括发送端、接收端和可信节点端;
所述发送端包括:
数据截获模块:用于在发送端的传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入发送端网络设备,接入后,发送端过滤器fliter从传输层协议栈截获数据包;
队列构建模块:用于按照多重黑白链表结构构建多个队列queque,多个队列queque对应放在多个链表中,将截获的数据包排列在所述多个队列queque中,将每个队列queque中待编辑的数据包对应储存在该队列queque对应的链表的奇数位,已经编辑的数据包相应地储存在链表的偶数位;
巨型帧封装模块:用于访问新构建的队列queue,根据多重黑白链表结构确定需要修改的数据包,按序将多个数据包合并成为一个巨型帧,删除队列queue中已经合并的数据包;对所述巨型帧增加封装头部,所述封装头部包括:α协议号、maximize throughput服务类型、峰值占用标识和吞吐量标识,所述峰值占用标识的具体数值根据实时吞吐量与终端设计吞吐量最大值设定;
加密模块:用于对所述包含封装头部的巨型帧进行加密操作;
巨型帧发送速率调整模块:用于利用多路复用探测和对端遥测准确判断对端的实时吞吐量,并根据所述对端的实时吞吐量动态调控巨型帧发送速率。
所述对端遥测是指:发送端按照发送数据流量的固定比率发送探测包,接收端按照接收数据流量的固定比率发送回应包,发送端统计接收端接收速率和吞吐量;根据所述峰值占用标识判断对端峰值处理能力。
所述多路复用探测是指:在巨型帧传输过程中,复用数据传输巨型帧,在确保巨型帧未超出最大长度的情况下,每次探测将探测字段附于巨型帧末端。
所述“动态调控巨型帧发送速率”具体包括:
在巨型帧发送的启动阶段,以傅里叶级数近视方波曲线的增长速率发送巨型帧,获取对端巨型帧封装头部峰值占用标识的值cppeak_1;每个往返时延rtt开始一个多路复用的探测过程,触发对端回应,记录回应包峰值占用标识的值cppeak_2[n],接收端带宽为bw[n]= cppeak_2[n]-cppeak_1;
测得巨型帧发送启动阶段的基准带宽bw[n]_max,所述基准带宽bw[n]_max取bw[n]中的最大值,当基准带宽bw[n]_max不随着发送速率增长而增长时,则判断巨型帧发送进入基准分布阶段;
巨型帧发送基准分布阶段的带宽记为bw,在ξ 个rtt周期内,使用正态分布数列,以bw_2[n]=α*bw的波动速率发送巨型帧,所述α为正态分布数列,在本实施例中所述正态分布数列为[e^(-0.166),1,e^(0.266),1,e^(-0.166)] ,其中e是自然常数。
每间隔η个往返时延rtt经过平滑生成平滑往返时延srtt_prior;
当平滑往返时延srtt_prior不随着bw_2[n]呈周期性变化时,则巨型帧发送进入跃变阶段,以傅里叶级数近视方波曲线的斜率增长或减缓发送巨型帧,直至适应真实带宽;
当平滑往返时延srtt_prior随着bw_2[n]呈周期性变化时,则巨型帧发送进入基准分布阶段;
通过峰值占用标识动态调节发送端、可信节点、接收端的缓存,以适应速率变化。
所述接收端包括:
巨型帧接收模块:用于在所述巨型帧到达接收端后,在接收端传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入接收端网络设备,接入后,接收端过滤器fliter从接收端网络设备截获巨型帧;
巨型帧队列处理模块:用于当检测到所述接收端网络设备接收到完整巨型帧时,按照所述多重黑白链表结构构建接收端队列queue,将巨型帧按序排列置于接收端队列queue中;
巨型帧解密解封装模块:用于对接收端队列queue中的巨型帧依次进行解密、解封装,将接收端队列queue中的巨型帧分解并恢复成符合传输层协议的数据包,注入传输层协议栈,所述“注入传输层协议栈”具体包括:传输层数据包去除头部中的相关状态机、拥塞与窗口限制标识,所述多个数据包合并为一个巨型帧后,钩子hook调用反馈程序,将数据包对应的回应包反馈于传输层协议栈。
所述可信节点端包括:
加解密与标识计算模块:用于通过所述加密操作的验证证书解密峰值占用标识,基于峰值占用标识验证巨型帧传输是否属于合法连接,若属于合法连接,可信节点根据所述峰值占用标识的最大值设定新的峰值占用标识,并再次对所述巨型帧进行加密操作,继续向路由下一跳发送所述巨型帧;若所述巨型帧传输不属于合法连接,则直接丢弃巨型帧。
所述加密操作为双证书加密操作,包括证书生成过程、密码确定过程与加密过程;
证书生成过程包括:接收端生成签名密钥对,发送端和可信节点各自生成加密密钥对;
密码确定过程包括:以特定协商数据为密码,所述特定协商数据优选为路由跳数或上β个数据包的发送时间戳timestamp;
所述加密过程包括:密码加密过程和无密码加密过程;
所述密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,下一可信节点的加密密钥对的公钥作为加密密钥,使用所述加密密钥与所述密码进行加密;
所述无密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,再通过下一可信节点的加密密钥对的公钥加密;
所述峰值占用标识使用无密码加密,所述吞吐量标识使用密码加密。
上述式子中的n表示第n个对应的变量。
本发明中发送端是指某一具体传输通信过程中数据的主动发送方;接收端是指某一具体通信过程中数据的非主动发送方,包括因接收到数据而产生回应包的发送方。接收端与发送端互为对端。
以上实施例,只是本发明优选地具体实施例的一种,本领域技术人员在本发明技术方案范围内进行的通常变化和替换都包含在本发明的保护范围内。
Claims (12)
1.一种基于多路复用探测和对端遥测优化传输协议的方法,其特征在于:包括数据截获封装过程、巨型帧传输及解构过程、动态调控巨型帧发送速率过程;
其中,数据截获封装过程包括:
在发送端的传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入发送端网络设备,接入后,发送端过滤器fliter从传输层协议栈截获数据包;
按照多重黑白链表结构构建多个队列queque,多个队列queque对应放在多个链表中,将截获的数据包排列在所述多个队列queque中,将每个队列queque中待编辑的数据包对应储存在该队列queque对应的链表的奇数位,已经编辑的数据包相应地储存在链表的偶数位;
访问新构建的队列queue,根据多重黑白链表结构确定需要修改的数据包,按序将多个数据包合并成为一个巨型帧,删除队列queue中已经合并的数据包;
对所述巨型帧增加封装头部,所述封装头部包括:α协议号、maximize throughput服务类型、峰值占用标识和吞吐量标识,所述峰值占用标识的具体数值根据实时吞吐量与终端设计吞吐量最大值设定;
对所述包含封装头部的巨型帧进行加密操作;
巨型帧传输及解构过程包括:
在所述队列queue中,通过所述多重黑白链表结构确定待发送的巨型帧,即多重黑白链表结构中每一链表的偶数位,发送巨型帧,根据对端回传的确认信息,将已经传达的巨型帧从队列queue中删除,将已发送但未传达的巨型帧置于队列queue后m位,m大于等于时延*带宽/巨型帧长度,当前序巨型帧全部发送以后,将已发送但未传达的巨型帧按照待发送巨型帧处理,在队列queue中实现重传功能;
巨型帧在经过链路的可信节点时,可信节点通过所述加密操作的验证证书解密峰值占用标识,基于峰值占用标识验证巨型帧传输是否属于合法连接,若属于合法连接,可信节点根据所述峰值占用标识的最大值设定新的峰值占用标识,并再次对所述巨型帧进行加密操作,继续向路由下一跳发送所述巨型帧;若所述巨型帧传输不属于合法连接,则直接丢弃巨型帧;
所述巨型帧到达接收端后,在接收端传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入接收端网络设备,接入后,接收端过滤器fliter从接收端网络设备截获巨型帧;
当检测到所述接收端网络设备接收到完整巨型帧时,按照所述多重黑白链表结构构建接收端队列queue,将巨型帧按序排列置于接收端所构建的队列queue中,对接收端队列queue中的巨型帧依次进行解密、解封装,将接收端队列queue中的巨型帧分解并恢复成符合传输层协议的数据包,注入传输层协议栈;
动态调控巨型帧发送速率过程包括:
利用多路复用探测和对端遥测准确判断对端的实时吞吐量,并根据所述对端的实时吞吐量动态调控巨型帧发送速率。
2.根据权利要求1所述的基于多路复用探测和对端遥测优化传输协议的方法,其特征在于:
所述加密操作为双证书加密操作,包括证书生成过程、密码确定过程与加密过程;
证书生成过程包括:接收端生成签名密钥对,发送端和可信节点各自生成加密密钥对;
密码确定过程包括:以特定协商数据为密码;
所述加密过程包括:密码加密过程和无密码加密过程;
所述密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,下一可信节点的加密密钥对的公钥作为加密密钥,使用所述加密密钥与所述密码进行加密;
所述无密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,再通过下一可信节点的加密密钥对的公钥加密;
所述峰值占用标识使用无密码加密,所述吞吐量标识使用密码加密。
3.根据权利要求1所述的基于多路复用探测和对端遥测优化传输协议的方法,其特征在于:
所述“注入传输层协议栈”具体包括:传输层数据包去除头部中的相关状态机、拥塞与窗口限制标识,所述多个数据包合并为一个巨型帧后,钩子hook调用反馈程序,将数据包对应的回应包反馈于传输层协议栈。
4.根据权利要求1所述的基于多路复用探测和对端遥测优化传输协议的方法,其特征在于:
所述多路复用探测是指:在巨型帧传输过程中,复用数据传输巨型帧,在确保巨型帧未超出最大长度的情况下,每次探测将探测字段附于巨型帧末端。
5.根据权利要求1所述的基于多路复用探测和对端遥测优化传输协议的方法,其特征在于:
所述对端遥测是指:发送端按照发送数据流量的固定比率发送探测包,接收端按照接收数据流量的固定比率发送回应包,发送端统计接收端接收速率和吞吐量;根据所述峰值占用标识判断对端峰值处理能力。
6.根据权利要求1所述的基于多路复用探测和对端遥测优化传输协议的方法,其特征在于:
所述“动态调控巨型帧发送速率”具体包括:
在巨型帧发送的启动阶段,以傅里叶级数近视方波曲线的增长速率发送巨型帧,获取对端巨型帧封装头部峰值占用标识的值cppeak_1;每个往返时延rtt开始一个多路复用的探测过程,触发对端回应,记录回应包峰值占用标识的值cppeak_2[n],接收端带宽为bw[n]= cppeak_2[n]-cppeak_1;
测得巨型帧发送启动阶段的基准带宽bw[n]_max,所述基准带宽bw[n]_max取bw[n]中的最大值,当基准带宽bw[n]_max不随着发送速率增长而增长时,则判断巨型帧发送进入基准分布阶段;
巨型帧发送基准分布阶段的带宽记为bw,在ξ 个rtt周期内,使用正态分布数列,以bw_2[n]=α*bw的波动速率发送巨型帧,所述α为正态分布数列;
每间隔η个往返时延rtt经过平滑生成平滑往返时延srtt_prior;
当平滑往返时延srtt_prior不随着bw_2[n]呈周期性变化时,则巨型帧发送进入跃变阶段,并以傅里叶级数近视方波曲线的斜率增长或减缓发送巨型帧速率,直至适应真实带宽;
当平滑往返时延srtt_prior随着bw_2[n]呈周期性变化时,则巨型帧发送进入基准分布阶段;
通过峰值占用标识动态调节发送端、可信节点、接收端的缓存,以适应速率变化。
7.一种基于多路复用探测和对端遥测优化传输协议的系统,其特征在于:包括发送端、接收端和可信节点端;
所述发送端包括:
数据截获模块:用于在发送端的传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入发送端网络设备,接入后,发送端过滤器fliter从传输层协议栈截获数据包;
队列构建模块:用于按照多重黑白链表结构构建多个队列queque,多个队列queque对应放在多个链表中,将截获的数据包排列在所述多个队列queque中,将每个队列queque中待编辑的数据包对应储存在该队列queque对应的链表的奇数位,已经编辑的数据包相应地储存在链表的偶数位;
巨型帧封装模块:用于访问新构建的队列queue,根据多重黑白链表结构确定需要修改的数据包,按序将多个数据包合并成为一个巨型帧,删除队列queue中已经合并的数据包;对所述巨型帧增加封装头部,所述封装头部包括:α协议号、maximize throughput服务类型、峰值占用标识和吞吐量标识,所述峰值占用标识的具体数值根据实时吞吐量与终端设计吞吐量最大值设定;
加密模块:用于对所述包含封装头部的巨型帧进行加密操作;
巨型帧发送速率调整模块:用于利用多路复用探测和对端遥测准确判断对端的实时吞吐量,并根据所述对端的实时吞吐量动态调控巨型帧发送速率;
所述接收端包括:
巨型帧接收模块:用于在所述巨型帧到达接收端后,在接收端传输层与数据链路层之间插入过滤器fliter,替代原有的内核网络协议栈和驱动处理传输层协议数据,即过滤器fliter与驱动并行接入接收端网络设备,接入后,接收端过滤器fliter从接收端网络设备截获巨型帧;
巨型帧队列处理模块:用于当检测到所述接收端网络设备接收到完整巨型帧时,按照所述多重黑白链表结构构建接收端队列queue,将巨型帧按序排列置于接收端队列queue中;
巨型帧解密解封装模块:用于对接收端队列queue中的巨型帧依次进行解密、解封装,将接收端队列queue中的巨型帧分解并恢复成符合传输层协议的数据包,注入传输层协议栈;
所述可信节点端包括:
加解密与标识计算模块:用于通过所述加密操作的验证证书解密峰值占用标识,基于峰值占用标识验证巨型帧传输是否属于合法连接,若属于合法连接,可信节点根据所述峰值占用标识的最大值设定新的峰值占用标识,并再次对所述巨型帧进行加密操作,继续向路由下一跳发送所述巨型帧;若所述巨型帧传输不属于合法连接,则直接丢弃巨型帧。
8.根据权利要求1所示的基于多路复用探测和对端遥测优化传输协议的系统,其特征在于:
所述加密操作为双证书加密操作,包括证书生成过程、密码确定过程与加密过程;
证书生成过程包括:接收端生成签名密钥对,发送端和可信节点各自生成加密密钥对;
密码确定过程包括:以特定协商数据为密码;
所述加密过程包括:密码加密过程和无密码加密过程;
所述密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,下一可信节点的加密密钥对的公钥作为加密密钥,使用所述加密密钥与所述密码进行加密;
所述无密码加密过程包括:接收端发送数据时,将数据通过签名密钥对的私钥签名,再通过下一可信节点的加密密钥对的公钥加密;
所述峰值占用标识使用无密码加密,所述吞吐量标识使用密码加密。
9.根据权利要求1所述的基于多路复用探测和对端遥测优化传输协议的系统,其特征在于:
所述“注入传输层协议栈”具体包括:传输层数据包去除头部中的相关状态机、拥塞与窗口限制标识,所述多个数据包合并为一个巨型帧后,钩子hook调用反馈程序,将数据包对应的回应包反馈于传输层协议栈。
10.根据权利要求1所述的基于多路复用探测和对端遥测优化传输协议的系统,其特征在于:
所述多路复用探测是指:在巨型帧传输过程中,复用数据传输巨型帧,在确保巨型帧未超出最大长度的情况下,每次探测将探测字段附于巨型帧末端。
11.根据权利要求1所述的基于多路复用探测和对端遥测优化传输协议的系统,其特征在于:
所述对端遥测是指:发送端按照发送数据流量的固定比率发送探测包,接收端按照接收数据流量的固定比率发送回应包,发送端统计接收端接收速率和吞吐量;根据所述峰值占用标识判断对端峰值处理能力。
12.根据权利要求1所述的基于多路复用探测和对端遥测优化传输协议的系统,其特征在于:
所述“动态调控巨型帧发送速率”具体包括:
在巨型帧发送的启动阶段,以傅里叶级数近视方波曲线的增长速率发送巨型帧,获取对端巨型帧封装头部峰值占用标识的值cppeak_1;每个往返时延rtt开始一个多路复用的探测过程,触发对端回应,记录回应包峰值占用标识的值cppeak_2[n],接收端带宽为bw[n]= cppeak_2[n]-cppeak_1;
测得巨型帧发送启动阶段的基准带宽bw[n]_max,所述基准带宽bw[n]_max取bw[n]中的最大值,当基准带宽bw[n]_max不随着发送速率增长而增长时,则判断巨型帧发送进入基准分布阶段;
巨型帧发送基准分布阶段的带宽记为bw,在ξ 个rtt周期内,使用正态分布数列,以bw_2[n]=α*bw的波动速率发送巨型帧,所述α为正态分布数列;
每间隔η个往返时延rtt经过平滑生成平滑往返时延srtt_prior;
当平滑往返时延srtt_prior不随着bw_2[n]呈周期性变化时,则巨型帧发送进入跃变阶段,并以傅里叶级数近视方波曲线的斜率增长或减缓发送巨型帧速率,直至适应真实带宽;
当平滑往返时延srtt_prior随着bw_2[n]呈周期性变化时,则巨型帧发送进入基准分布阶段;
所述n表示第n个对应变量的值;
通过峰值占用标识动态调节发送端、可信节点、接收端的缓存,以适应速率变化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110461543.3A CN113194504B (zh) | 2021-04-27 | 2021-04-27 | 基于多路复用探测和对端遥测优化传输协议的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110461543.3A CN113194504B (zh) | 2021-04-27 | 2021-04-27 | 基于多路复用探测和对端遥测优化传输协议的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113194504A true CN113194504A (zh) | 2021-07-30 |
CN113194504B CN113194504B (zh) | 2022-01-28 |
Family
ID=76979633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110461543.3A Active CN113194504B (zh) | 2021-04-27 | 2021-04-27 | 基于多路复用探测和对端遥测优化传输协议的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113194504B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113866730A (zh) * | 2021-09-15 | 2021-12-31 | 西安电子工程研究所 | 一种提升搜索转截获时角度指向精度的方法 |
CN115941600A (zh) * | 2023-03-14 | 2023-04-07 | 鹏城实验室 | 报文分流方法、系统与计算机可读存储介质 |
CN117061638A (zh) * | 2023-10-11 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 一种报文传输方法、装置、存储介质、设备及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594201A (zh) * | 2009-05-20 | 2009-12-02 | 清华大学 | 链式队列管理结构整合错误数据过滤的方法 |
US20110237239A1 (en) * | 2010-03-25 | 2011-09-29 | Industrial Technology Research Institiute | Method and apparatus for selectively muting a control channel for a femtocell for interference avoidance |
CN106455021A (zh) * | 2016-10-18 | 2017-02-22 | 上海斐讯数据通信技术有限公司 | 一种基于数据帧聚合发送的节能方法及节能装置 |
CN107533472A (zh) * | 2015-02-20 | 2018-01-02 | 普瑞斯汀计算机有限责任公司 | 一种在系统层间划分数据运作功能的方法 |
CN110138809A (zh) * | 2019-06-27 | 2019-08-16 | 西安微电子技术研究所 | 一种面向以太网控制器接收链路的tcp报文拼接系统和方法 |
CN110971487A (zh) * | 2019-11-26 | 2020-04-07 | 武汉虹信通信技术有限责任公司 | 网络协议识别方法及装置 |
-
2021
- 2021-04-27 CN CN202110461543.3A patent/CN113194504B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594201A (zh) * | 2009-05-20 | 2009-12-02 | 清华大学 | 链式队列管理结构整合错误数据过滤的方法 |
US20110237239A1 (en) * | 2010-03-25 | 2011-09-29 | Industrial Technology Research Institiute | Method and apparatus for selectively muting a control channel for a femtocell for interference avoidance |
CN107533472A (zh) * | 2015-02-20 | 2018-01-02 | 普瑞斯汀计算机有限责任公司 | 一种在系统层间划分数据运作功能的方法 |
CN106455021A (zh) * | 2016-10-18 | 2017-02-22 | 上海斐讯数据通信技术有限公司 | 一种基于数据帧聚合发送的节能方法及节能装置 |
CN110138809A (zh) * | 2019-06-27 | 2019-08-16 | 西安微电子技术研究所 | 一种面向以太网控制器接收链路的tcp报文拼接系统和方法 |
CN110971487A (zh) * | 2019-11-26 | 2020-04-07 | 武汉虹信通信技术有限责任公司 | 网络协议识别方法及装置 |
Non-Patent Citations (1)
Title |
---|
谭志虎、万继光: "iSCSI 性能优化方法综述", 《计算机科学》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113866730A (zh) * | 2021-09-15 | 2021-12-31 | 西安电子工程研究所 | 一种提升搜索转截获时角度指向精度的方法 |
CN113866730B (zh) * | 2021-09-15 | 2024-04-30 | 西安电子工程研究所 | 一种提升搜索转截获时角度指向精度的方法 |
CN115941600A (zh) * | 2023-03-14 | 2023-04-07 | 鹏城实验室 | 报文分流方法、系统与计算机可读存储介质 |
CN117061638A (zh) * | 2023-10-11 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 一种报文传输方法、装置、存储介质、设备及系统 |
CN117061638B (zh) * | 2023-10-11 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 一种报文传输方法、装置、存储介质、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113194504B (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113194504B (zh) | 基于多路复用探测和对端遥测优化传输协议的方法和系统 | |
US8705394B2 (en) | BGP slow peer detection | |
US20210067453A1 (en) | Data transmission method and apparatus | |
CN108737447B (zh) | 用户数据报协议流量过滤方法、装置、服务器及存储介质 | |
CN108234338B (zh) | 报文传输方法及混合接入网关 | |
CN111817977B (zh) | 一种网络拥塞控制方法和装置 | |
CN111682952A (zh) | 针对体验质量度量的按需探测 | |
CN101473622A (zh) | 用于数据网络上的通信的带外鉴别方法和系统 | |
EP3295612B1 (en) | Uplink performance management | |
WO2019179157A1 (zh) | 一种数据流量处理方法及相关网络设备 | |
WO2018036173A1 (zh) | 一种网络负载均衡方法、设备及系统 | |
Han et al. | A QoS-based fairness-aware BBR congestion control algorithm using QUIC | |
CN110505037B (zh) | 一种网络接口通信速率匹配方法、装置、设备和存储介质 | |
CN109195160B (zh) | 网络设备资源探查信息的防篡改存储系统及其控制方法 | |
Ye et al. | Improving stream control transmission protocol performance over lossy links | |
Pu et al. | Enhancements on router-assisted congestion control for wireless networks | |
Houmkozlis et al. | End-to-end Adaptive Congestion Control in TCP/IP Networks | |
US9143458B2 (en) | Network device, method for controlling the network device, and network system | |
US11509565B2 (en) | Network link verification | |
RU2687040C1 (ru) | Способ и устройство для контроля опорной сети | |
US9882751B2 (en) | Communication system, communication controller, communication control method, and medium | |
Hejmo et al. | Denial-of-service resistant quality-of-service signaling for mobile ad hoc networks | |
Zabołotny | Optimized Ethernet transmission of acquired data from FPGA to embedded system | |
WO2022222693A1 (zh) | 报文处理方法和装置、电子设备、计算机可读存储介质 | |
Ye et al. | On explicit congestion notification for stream control transmission protocol in lossy networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |