CN116405442A - 网络传输速率控制方法、装置及系统 - Google Patents

网络传输速率控制方法、装置及系统 Download PDF

Info

Publication number
CN116405442A
CN116405442A CN202310246295.XA CN202310246295A CN116405442A CN 116405442 A CN116405442 A CN 116405442A CN 202310246295 A CN202310246295 A CN 202310246295A CN 116405442 A CN116405442 A CN 116405442A
Authority
CN
China
Prior art keywords
transmission rate
network transmission
network
data
adjustment
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
Application number
CN202310246295.XA
Other languages
English (en)
Other versions
CN116405442B (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.)
China Telecom Satellite Communication Branch
Original Assignee
China Telecom Satellite Communication Branch
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 China Telecom Satellite Communication Branch filed Critical China Telecom Satellite Communication Branch
Priority to CN202310246295.XA priority Critical patent/CN116405442B/zh
Publication of CN116405442A publication Critical patent/CN116405442A/zh
Application granted granted Critical
Publication of CN116405442B publication Critical patent/CN116405442B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本申请公开了一种网络传输速率控制方法、装置及系统。该方法应用于网络传输速率控制系统,包括:获取在目标时刻内目标位置处的第一实际网络传输速率,其中,目标位置与监测网络传输速率的测量位置相匹配;依据预设的初始网络传输速率与第一实际网络传输速率确定第一网络传输速率差,并分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数;按照第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。本申请解决了相关技术难以实现在应用层对数据传输速率进行精确、稳定的控制的技术问题。

Description

网络传输速率控制方法、装置及系统
技术领域
本申请涉及网络传输技术领域,具体而言,涉及一种网络传输速率控制方法、装置及系统。
背景技术
在计算机上进行网络编程时需要一个以精确、稳定的速率向外输出数据的数据源,而相关技术人员通常会按照精确计时器和减少网络因素两种思路实现对数据传输速率的控制,例如采用高精度计数器、设置套接字选项或者设置线程优先级。
但由于目前绝大多数网络程序只能在发送端的应用层以尽可能精确的速率向传输层传输数据,然而在数据经过传输层、IP层、链路层、物理层直至最终传输至网络上时,存在诸多不可控的因素,导致无法控制以精确、稳定的速率传输数据。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种网络传输速率控制方法、装置及系统,以至少解决相关技术难以实现在应用层对数据传输速率进行精确、稳定的控制的技术问题。
根据本申请实施例的一个方面,提供了一种网络传输速率控制方法,包括:获取在目标时刻内目标位置处的第一实际网络传输速率,其中,目标位置与监测网络传输速率的测量位置相匹配;依据预设的初始网络传输速率与第一实际网络传输速率确定第一网络传输速率差,并分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数;按照第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
可选地,获取在目标时刻内目标位置处的第一实际网络传输速率,包括:确定测量位置,其中,测量位置包括至少之一:数据发送方和数据接收方;在测量位置为数据发送方时,通过数据发送方的应用程序接口函数或者物理网卡的软件开发工具包获取在目标时刻内目标位置处的第一实际网络传输速率;在测量位置为数据接收方时,通过数据接收方反馈的网络接收速率获取在目标时刻内目标位置处的第一实际网络传输速率。
可选地,分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数,包括:依据预设的影响关系表调整控制参数,其中,控制参数包括:用于比例调节的比例调节参数、用于积分调节的积分调节参数以及用于微分调节的微分调节参数;依据控制参数对第一网络传输速率差分别进行比例调节、积分调节、微分调节,输出第一字节数。
可选地,依据预设的影响关系表调整控制参数,包括:增大比例调节参数,以减少网络传输速率控制系统的上升时间;降低积分调节参数,以减少网络传输速率控制系统的超调量;降低微分调节参数,以减少网络传输速率控制系统的稳态误差。
可选地,依据控制参数对第一网络传输速率差分别进行比例调节、积分调节、微分调节,输出第一字节数,包括:分别计算第一网络传输速率差和比例调节参数的乘积、第一网络传输速率差的积分值和积分调节参数的乘积以及第一网络传输速率差的微分值和微分调节参数的乘积,得到第一网络传输速率速率、第二网络传输速率速率和第三网络传输速率速率;计算第一网络传输速率速率、第二网络传输速率速率和第三网络传输速率速率之和,得到第四网络传输速率;基于第四网络传输速率确定第一字节数。
可选地,在按照第一字节数将网络数据传输至数据接收方之前,该方法还包括:设置数据发送参数,其中,数据发送参数中包括:发送数据缓冲区的第一大小、发送网络数据的字节数、是否即时发送网络数据、接收数据缓冲区的第二大小以及接收网络数据的等待超时时间。
可选地,该方法还包括:基于初始网络传输速率确定将网络数据写入发送数据缓冲区的初始字节数;在第一字节数与初始字节数不相等时,再次获取在下一时刻内目标位置处的第二实际网络传输速率,并依据初始网络传输速率与第二实际网络传输速率确定第二网络传输速率差,分别对第二网络传输速率差进行比例调节、积分调节、微分调节,输出第二字节数;按照第二字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
根据本申请实施例的另一方面,还提供了一种网络传输速率控制装置,包括:获取模块,用于获取在目标时刻内目标位置处的第一实际网络传输速率,其中,目标位置与监测网络传输速率的测量位置相匹配;调节模块,用于依据预设的初始网络传输速率与第一实际网络传输速率确定第一网络传输速率差,并分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数;发送模块,用于按照第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
根据本申请实施例的另一方面,还提供了一种网络传输速率控制系统,该系统包括:网速控制单元、数据发送单元和网速测量单元,其中:网速测量单元,用于获取在目标时刻内目标位置处的第一实际网络传输速率,其中,目标位置与网络测量单元监测网络传输速率的测量位置相匹配;网速控制单元,用于依据预设的初始网络传输速率与第一实际网络传输速率确定第一网络传输速率差,并分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数;数据发送单元,用于按照第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
根据本申请实施例的另一方面,还提供了一种电子设备,该电子设备包括:存储器和处理器,其中,存储器中存储有计算机程序,处理器被配置为通过计算机程序执行上述的网络传输速率控制方法。
在本申请实施例中,通过网速测量单元获取在目标时刻内目标位置处的第一实际网络传输速率,其中,目标位置与网络测量单元监测网络传输速率的测量位置相匹配,从而实现根据速率信息的反馈位置适应不同层次的速率控制,例如,在接收方获取速率反馈,可实现接收速率的稳定控制;在发送方网卡处获取速率反馈,可实现发送方物理层速率的稳定控制。同时,通过网速控制单元依据预设的初始网络传输速率与第一实际网络传输速率确定第一网络传输速率差,并分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数;通过数据发送单元按照第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率,从而将传输层、IP层、链路层以及物理层中诸多不可控干扰因素纳入到整个速率控制中,避免网络传输速率因外部原因出现抖动,并根据测量误差快速做出响应,及时调整控制输出,从而使实际网络传输速率尽快达到给定网络传输速率,实现对传输速率的精准稳定控制,进而解决了相关技术难以实现在应用层对数据传输速率进行精确、稳定的控制的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的网络传输速率控制系统的结构示意图;
图2是根据本申请实施例的一种可选的网络传输速率控制方法的流程图;
图3是根据本申请实施例的一种可选的网络传输速率控制的原理示意图;
图4是根据本申请实施例的一种可选的PID控制器参数调节过程的示意图;
图5是根据本申请实施例的一种可选的网络传输速率控制装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了更好地理解本申请实施例,首先对本申请实施例描述过程中出现的部分名词或术语翻译解释如下:
PID(Proportional-Integral-Derivative Control,比例-积分-微分控制)控制器:一种用于控制工业应用中压力、流量、温度和速度等不同过程遍历的设备,在该控制器中,控制回路反馈装置用于调节所有过程变量。其实际上为三种反馈控制,分别为:比例控制、积分控制和微分控制。
Nagle算法:是在发送一个分组之前,将大量的TCP数据绑定在一起,以提高网络效率。Nagle算法鼓励发送全尺寸的段,只有当其他分组都被确认之后,Nagle算法才允许发送非全迟段的分组,如果其他分组仍然在传输过程中,则将那部分数据缓存起来,只有当挂起分组被确认,或者缓存中积累一个全尺寸分组数据时,才会将缓存的数据发送出去。即Nagle算法主要避免发送小的数据包,要求TCP连接上最多只能有一个未确认的小分组,在该分组的确认达到之前不能发送其他的小分组。
Socket(套接字):可以堪称两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。它是网络环境中进程间通信的API(应用程序编程接口),也可可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个与之相连进程。通信时其中一个网络应用程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过与网络接口卡(NIC)相连的传输介质将这段信息送到另一台主机的Socket中,使对方能够接收到这段信息。即Socket是由IP地址和端口结合的,提供向应用层进程传输数据包的机制。
实施例1
目前,相关技术人员为了确保在进行网络编程时,数据源可以以精确、稳定的速率向外输出数据一般考虑使用精确计时器和减少网络因素两种思路。具体实现方法主要有以下三种:
一、使用高精度精确计时器
在使用高精度精确计时器控制数据发送速率时,必须对时间进行精确控制。一般,可以使用以下两种方式对时间进行精确控制:其一是利用函数建立一个定时器,并在编程程序中,通过处理有定时器发送到线程的消息队列中的消息以得到定时的效果;其二是利用通过两次调用时间获取函数,并控制获取时间的差值以得到定时的效果。以上两种方法都是毫秒级的。
另外,还可以采用另一种高精度运行计时器使得精度达到微秒级,具体包括如下步骤:首先调用Query Performance Frequency函数取得高精度运行计时器的频率f;接着在循环之外载调用一次Query Performance Frequency,得到高精度运行计时器的值n1;然后在数据发送之前调用循环调用Query Performance Frequency,得到高精度运行计时器的值n2;将两次计数器的差值通过计数器频率f换算成时间间隔
Figure BDA0004126058450000051
一旦计算的时间间隔t达到指定的大小后跳出循环,并将此时的n2赋给n1;接着重新进入循环计时,其中,发送的数据大小可以根据指定的速度与定时时间确定。但这种方法会导致循环过程会占满CPU资源。
二、设置套接字选项
套接字选项中包括:发送数据缓冲区大小、是否立即发送数据、是否绕过路由表,其中:
发送数据缓冲区大小:通过设置该套接字选项可以改变发送数据缓冲区的大小。在实际应用中可以根据应用需求设置合理的缓冲区大小能够有效提高数据发送的效率。
是否立即发送数据:默认情况下,Socket(套接字)一般不会即时发送数据,而协议栈在发送数据一般采用Nagle算法。因此,若设置该选项为即时发送数据,就会禁用Nagle算法,应用程序调用send发送的数据包会被立即投送到网络,不会出现延迟。故考虑到数据精确发送的要求,将即时发送数据选项设置为TRUE。
是否绕过路由表:通过设置该套接字选项可以绕过路由表中的网关所在的表项,设置该套接字选项的Socket可以确保数据包不经网关进行发送,而是发往直接相连的主机。该套接字选项的合法的值是整数形式的布尔标志值,设为TRUE。
三、设置线程优先级
首先在主函数中创建线程函数,并在线程函数中实现数据源的功能,一旦线程创建成功后对线程优先级进行设置,将线程优先级设置为最高级,排除本地其他进程的干扰,使得操作系统能够优先调度。
为了解决上述问题,本申请实施例提供了一种网络传输速率控制系统,图1是根据本申请实施例的一种可选的网络传输速率控制系统的结构示意图,如图1所示,该系统10中包括:网速测量单元12、网速控制单元14和数据发送单元16,其中:
网速测量单元12,用于获取在目标时刻内目标位置处的第一实际网络传输速率,其中,目标位置与网络测量单元监测网络传输速率的测量位置相匹配。
具体地,网速测量单元12在测量位置处对网络数据传输速率进行实时监测,其中,测量位置包括至少之一:数据发送方和数据接收方。需要注意的是,测量位置一定要与网速控制单元14输入的第一实际网络传输速率的目标位置相匹配,否则会影响整个网络传输速率控制系统10的控制精度和控制效果,例如,测量位置为数据发送方,则获取第一实际网络传输速率的目标位置相应地为数据发送方侧的任意位置,如通过数据发送方的操作系统API函数、物理网卡的SDK抓取目标位置处的第一实际网络传输速率。
网速控制单元14,用于依据预设的初始网络传输速率与第一实际网络传输速率确定第一网络传输速率差,并分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数。
具体地,网速控制单元14根据预设的初始网络传输速率与实际网络传输速率计算数据发送单元16的参数输入。另外,本申请实施例中的网速控制单元14采用PID控制器实现。
数据发送单元16,用于按照第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
具体地,数据发送单元16根据网速控制单元14输入的第一字节数进行调整,实现网络数据的发送。
在上述环境下,本申请提出了一种应用于上述网络传输速率控制系统的网络传输速率控制方法,下面将进一步地对网络传输速率控制方法进行详细说明。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本申请实施例的一种可选的网络传输速率控制方法的流程图,如图2所示,该方法至少包括步骤S202-S206,其中:
步骤S202,获取在目标时刻内目标位置处的第一实际网络传输速率,其中,目标位置与监测网络传输速率的测量位置相匹配。
作为一种可选的实施方式,在本发明上述步骤S202提供的技术方案中,该方法可以包括:确定测量位置,其中,测量位置包括至少之一:数据发送方和数据接收方;在测量位置为数据发送方时,确定通过数据发送方的应用程序接口函数或者物理网卡的软件开发工具包获取在目标时刻内目标位置处的第一实际网络传输速率;在测量位置为数据接收方时,通过数据接收方反馈的网络接收速率获取在目标时刻内目标位置处的第一实际网络传输速率。
在该实施例中,首先确定网速测量单元12监测网络传输速率的测量位置,其中,测量位置包括至少之一:数据发送方和数据接收方。为了确保整个网络传输速率控制系统10的控制精度和控制效果,需要保证网络测量单元12监测网络传输速率的测量位置与获取第一实际网络传输速率的目标位置相匹配。
具体地,当测量位置为数据发送方时,可以使用Winpcap、libpcap等工具包抓取目标时刻内目标位置处的数据发送方发送物理网卡的第一实际网络传输速率;当测量位置为数据接收方时,可以通过数据接收方的实时接收速率的反馈结果获取目标时刻内目标位置处的第一实际网络传输速率。
步骤S204,依据预设的初始网络传输速率与第一实际网络传输速率确定第一网络传输速率差,并分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数。
作为一种可选的实施方式,在本发明上述步骤S204提供的技术方案中,该方法可以包括:依据预设的影响关系表调整控制参数,其中,控制参数包括:用于比例调节的比例调节参数、用于积分调节的积分调节参数以及用于微分调节的微分调节参数;依据控制参数对第一网络传输速率差分别进行比例调节、积分调节、微分调节,输出第一字节数。
在该实施例中,上述影响关系表是根据前期经验以及对整个网络控制过程的熟悉程度设定的,通过影响关系表调整控制参数,以使控制参数相对网络传输控制系统10的影响最小。通过网速控制单元14调整控制参数,以实现对第一网络传输速率差进行比例调节、积分调节、微分调节。具体地,网速控制单元14可以为PID控制器,PID控制器可以实现通过反馈的第一网络传输速率差控制被控量,而被控量则为比例调节、积分调节和微分调节三个环节相加的和,其中,比例调节用于解决系统现在的状态;积分调节用于解决过去的状态,可消除稳态误差,但可能增加超调;而微分调节用于解决将来的状态,可加快大惯性系统响应速度以及减弱超调趋势。
作为一种可选的实施方式,在本发明上述步骤S204提供的技术方案中,该方法还可以包括:分别计算第一网络传输速率差和比例调节参数的乘积、第一网络传输速率差的积分值和积分调节参数的乘积以及第一网络传输速率差的微分值和微分调节参数的乘积,得到第一网络传输速率速率、第二网络传输速率速率和第三网络传输速率速率;计算第一网络传输速率速率、第二网络传输速率速率和第三网络传输速率速率之和,得到第四网络传输速率;基于第四网络传输速率确定第一字节数。
具体地,图3是根据本申请实施例的一种可选的网络传输速率控制的原理示意图,如图3所示。考虑在某个特定的时刻t,设定r(t)为t时刻预设的初始网络传输速率,y(t)为t时刻的第一实际网络传输速率,将e(t)记作二者的第一网络传输速率差,则e(t)的表达式为:
e(t)=r(t)-y(t)
将e(t)作为PID控制器的输入,将u(t)记作PID控制器的输出,其中,u(t)为t时刻实际要发送的第一字节数,其值会根据第一实际网络传输速率的变化进行动态变化。
其中,比例调节是一种有差调节,其主要作用是把闭环系统中检测到的速率反馈的偏差e(t)进行适当的放大,使得最终输出的偏差e(t)减小。因此在比例调节中只有当偏差e(t)不为零时,PID控制器才会有输出值u(t)。另外,一方面,单纯的比例调节往往会使得闭环系统的稳态误差e(t)随比例调节参数Kp(即比例增益)的减小而增大,若要减小稳态误差e(t),就需要增大PID控制器的比例调节参数Kp,然而这样做的后果是增大系统响应的超调量,降低了系统的鲁棒性;另一方面,增大比例调节的比例调节参数Kp还可以加快闭环系统对输入的响应速度,有助于提高闭环系统的响应性能。因此,单纯的比例调节系统往往不能兼顾响应速度和稳定性的双方面要求,在实际正定过程中需要根据控制需求进行综合设定。
积分调节也是一种有差调节,其只需要给定输入值与实际输出值存在偏差e(t),积分调节就会让偏差e(t)随着时间的推移形成控制量,直到偏差值e(t)为零,因此,积分调节输出为一个常数。积分调节可以实现消除稳态误差的功能,这是比例调节无法实现的。但是积分调节又容易出现饱和的状态,只要偏差e(t)存在,PID控制器就会不断地进行积分作用从而使输出值增加或减小,从而导致PID控制器输出值进入深度饱和状态,此时的PID控制器也就失去了它应有的控制作用。因此,若积分调节参数Ki(即积分时间常数)越小,被控对象输出值接近给定值的速度变快,但其缺点是容易产生振荡,降低系统的稳定性;若积分调节参数Ki越大,积分调节部分的作用越小,消除稳态误差的时间会延长,或者无法消除稳态误差。针对上述的积分调节特点,在过程控制的实际应用中,通常是将积分调节和其他两个调节器组合起来使用。
比例调节和积分调节均是根据闭环系统输出值与给定值之间的偏差e(t)产生以后才进行调节的,它们均没有预测偏差变化趋势的功能,而微分调节却提供了这一重要的功能。微分调节是依据偏差e(t)的变化速度,故微分调节器具有减小偏差速度,提前控制偏差变化的作用。另外,微分调节对于改善系统的响应速度和提高系统的鲁棒性有着至关重要的作用。其中,微分调节的强弱程度取决于微分调节参数Td(即微分时间),当微分时间Td越小,微分控制作用越小;微分时间Td越大,微分控制作用越强。进一步地,当微分时间Td较小时,可以通过增加微分时间Td,以起到减小偏差值e(t)、缩短响应时间、减小振荡程度的目的,从而能够改善闭环系统的控制质量;然而当微分时间Td较大时,一方面来说,它有可能将测量到的噪声放大,另一方面也可能使闭环系统的响应产生振荡。因此,微分调节的关键点就在于选择合适的微分时间Td
需要说明的是,单纯的微分控制器是不能进行工作的,这是因为任何实际应用的控制器都具有一定的不灵敏区(或者称为死区)。在不灵敏区域,当闭环系统的输出值产生了变化时,PID控制器所控制的调节装置并不产生任何动作,从而导致了被控量的偏差e(t)有可能出现相当大的数值而得不到及时有效的校正。因此,在工程实际的应用当中,往往将微分调节与比例调节或比例积分调节结合成PD控制器或者PID控制器。
通过上述对三个调节环节的特点分析,在依据所述控制参数对所述第一网络传输速率差分别进行比例调节、积分调节、微分调节,输出所述第一字节数之前,可以对网速控制单元14的比例调节参数、积分调节参数和微分调节参数进行整定。
具体地,表1是PID控制的比例调节参数Kp、积分调节参数Ti和微分调节参数Td相对系统的影响关系(即影响关系表),如表1所示。
表1
Figure BDA0004126058450000091
通过表1分析可知,可选地,增大比例调节参数,以减少网络传输速率控制系统10的上升时间;降低积分调节参数,以减少网络传输速率控制系统10的超调量;降低微分调节参数,以减少网络传输速率控制系统10的稳态误差。
图4是根据本申请实施例的一种可选的PID控制器参数调节过程的示意图,如图4所示,若仅设置比例调节参数Kp为1.7,或者设置比例调节参数Kp为1.7和微分调节参数Td为0.3或者0.4均无法达到系统给定网速1Mbps(即系统稳定状态),而当设置比例调节参数Kp为1.7、积分调节参数Ti为2、微分调节参数Td为0.4时,PID控制器输出的误差最小。
进一步地,对PID控制器的参数整定完后,可以通过比例调节参数Kp、积分调节参数Ti和微分调节参数Td对第一网络传输速率差e(t)进行比例调节、积分调节、微分调节,得到u(t),因此,第一字节数u(t)的表达式为:
Figure BDA0004126058450000101
需要说明的是,在实际应用过程中需要对计算u(t)的最终结果进行取整操作。
步骤S206,按照第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
作为一种可选的实施方式,在按照第一字节数将网络数据写入发送数据缓冲区之前,还可以设置数据发送参数,即数据发送单元16的单元参数。
具体地,表2对数据发送参数进行详细说明。其中,数据发送参数中包括:设置数据发送单元的单元参数,其中,单元参数中包括:发送数据缓冲区的第一大小、发送网络数据的字节数、是否即时发送网络数据、接收数据缓冲区的第二大小以及接收网络数据的等待超时时间。
表2
Figure BDA0004126058450000102
为了保证整个网络传输速率控制系统10的实时性,在进行网络编程时,通常将NODELAY设置为True,即表示程序会立即发送网络数据,而不会等缓冲区满了再发出,此时网络传输速率控制系统10更接近与一个连续控制系统,从而提高系统的控制精度。
由于数据发送方侧的物理网卡的实际速率或者数据接收方侧的网络接收速率可能出现变化,因此,需要进一步判断第一字节数是否达到预设的初始网络传输速率对应的初始字节数,从而判断整个数据发送过程是否进入稳定状态。
可选地,基于初始网络传输速率确定将网络数据写入发送数据缓冲区的初始字节数;在第一字节数与初始字节数不相等时,再次获取在下一时刻内目标位置处的第二实际网络传输速率,并依据初始网络传输速率与第二实际网络传输速率确定第二网络传输速率差,分别对第二网络传输速率差进行比例调节、积分调节、微分调节,输出第二字节数;按照第二字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
在本申请实施例中,通过网速测量单元12获取在目标时刻内目标位置处的第一实际网络传输速率,其中,目标位置与网络测量单元12监测网络传输速率的测量位置相匹配,从而实现根据速率信息的反馈位置适应不同层次的速率控制,例如,在接收方获取速率反馈,可实现接收速率的稳定控制;在发送方网卡处获取速率反馈,可实现发送方物理层速率的稳定控制。同时,通过网速控制单元14依据预设的初始网络传输速率与第一实际网络传输速率确定第一网络传输速率差,并分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数;通过数据发送单元16按照第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率,从而将传输层、IP层、链路层以及物理层中诸多不可控干扰因素纳入到整个速率控制中,避免网络传输速率因外部原因出现抖动,并根据测量误差快速做出响应,及时调整控制输出,从而使实际网络传输速率尽快达到给定网络传输速率,实现对传输速率的精准稳定控制,进而解决了相关技术难以实现在应用层对数据传输速率进行精确、稳定的控制的技术问题。
实施例2
根据本申请实施例,还提供了一种用于实现上述网络传输速率控制方法的网络传输速率控制装置,应用于上述网络传输速率控制系统10,图5是根据本申请实施例的一种可选的网络传输速率控制装置的结构示意图,如图5所示,该网络传输速率控制装置中至少包括:获取模块51,调节模块52和发送模块53,其中:
获取模块51,用于获取在目标时刻内目标位置处的第一实际网络传输速率,其中,目标位置与监测网络传输速率的测量位置相匹配。
作为一种可选的实施方式,获取模块51可以通过如下方式获取第一实际网络传输速率:确定测量位置,其中,测量位置包括至少之一:数据发送方和数据接收方;在测量位置为数据发送方时,确定通过数据发送方的应用程序接口函数或者物理网卡的软件开发工具包获取在目标时刻内目标位置处的第一实际网络传输速率;在测量位置为数据接收方时,通过数据接收方反馈的网络接收速率获取在目标时刻内目标位置处的第一实际网络传输速率。
在该实施例中,首先确定网速测量单元12监测网络传输速率的测量位置,其中,测量位置包括至少之一:数据发送方和数据接收方。为了确保整个网络传输速率控制系统的控制精度和控制效果,需要保证网络测量单元12监测网络传输速率的测量位置与获取第一实际网络传输速率的目标位置相匹配。
具体地,当测量位置为数据发送方时,可以使用Winpcap、libpcap等工具包抓取目标时刻内目标位置处的数据发送方发送物理网卡的第一实际网络传输速率;当测量位置为数据接收方时,可以通过数据接收方的实时接收速率的反馈结果获取目标时刻内目标位置处的第一实际网络传输速率。
调节模块52,用于依据预设的初始网络传输速率与第一实际网络传输速率确定第一网络传输速率差,并分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数。
作为一种可选的实施方式,调节模块52可以依据预设的影响关系表调整控制参数,其中,控制参数包括:用于比例调节的比例调节参数、用于积分调节的积分调节参数以及用于微分调节的微分调节参数;依据控制参数对第一网络传输速率差分别进行比例调节、积分调节、微分调节,输出第一字节数。
在该实施例中,上述影响关系表是根据前期经验以及对整个网络控制过程的熟悉程度设定的,通过影响关系表调整控制参数,以使控制参数相对网络传输控制系统的影响最小。调节模块52通过网速控制单元14调整控制参数,以实现对第一网络传输速率差进行比例调节、积分调节、微分调节。具体地,网速控制单元14可以为PID控制器,PID控制器可以实现通过反馈的第一网络传输速率差控制被控量,而被控量则为比例调节、积分调节和微分调节三个环节相加的和,其中,比例调节用于解决系统现在的状态;积分调节用于解决过去的状态,可消除稳态误差,但可能增加超调;而微分调节用于解决将来的状态,可加快大惯性系统响应速度以及减弱超调趋势。
作为一种可选的实施方式,调节模块52可以通过如下方式实现对第一网络传输速率差进行调节输出第一字节数:分别计算第一网络传输速率差和比例调节参数的乘积、第一网络传输速率差的积分值和积分调节参数的乘积以及第一网络传输速率差的微分值和微分调节参数的乘积,得到第一网络传输速率速率、第二网络传输速率速率和第三网络传输速率速率;计算第一网络传输速率速率、第二网络传输速率速率和第三网络传输速率速率之和,得到第四网络传输速率;基于第四网络传输速率确定第一字节数。
需要说明的是,在实际应用过程中,需要对计算的第一字节数进行取整操作。
发送模块53,用于按照第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
作为一种可选的实施方式,在按照第一字节数将网络数据写入发送数据缓冲区之前,发送模块53还可以先设置数据发送参数,其中,数据发送参数中包括:发送数据缓冲区的第一大小、发送网络数据的字节数、是否即时发送网络数据、接收数据缓冲区的第二大小以及接收网络数据的等待超时时间。
为了保证整个网络传输速率控制的实时性,在进行网络编程时,通常将是否即时发送网络数据设置为True,即表示程序会立即发送网络数据,而不会等缓冲区满了再发出,此时网络传输速率控制系统10更接近与一个连续控制系统,从而提高系统的控制精度。
由于数据发送方侧的物理网卡的实际速率或者数据接收方侧的网络接收速率可能出现变化,因此,需要进一步判断第一字节数是否达到预设的初始网络传输速率对应的初始字节数,从而判断整个数据发送过程是否进入稳定状态。
可选地,基于初始网络传输速率确定数据发送单元将网络数据写入发送数据缓冲区的初始字节数;在第一字节数与初始字节数不相等时,继续获取在下一时刻内目标位置处的第二实际网络传输速率,并依据初始网络传输速率与第二实际网络传输速率确定第二网络传输速率差,分别对第二网络传输速率差进行比例调节、积分调节、微分调节,输出第二字节数;按照第二字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
需要说明的是,本申请实施例中的网络传输速率控制装置中的各模块与实施例1中的网络传输速率控制方法的各实施步骤一一对应,由于实施例1中已经进行了详尽的描述,本实施例中部分未体现的细节可以参考实施例1,在此不再过多赘述。
实施例3
根据本申请实施例,还提供了一种电子设备,该电子设备包括:存储器和处理器,其中,存储器中存储有计算机程序,处理器被配置为通过计算机程序执行实施例1中的网络传输速率控制方法。
可选地,处理器被配置为通过计算机程序执行实现以下步骤:获取在目标时刻内目标位置处的第一实际网络传输速率,其中,目标位置与网络测量单元监测网络传输速率的测量位置相匹配;依据预设的初始网络传输速率与第一实际网络传输速率确定第一网络传输速率差,并分别对第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数;按照第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
可选地,获取在目标时刻内目标位置处的第一实际网络传输速率,包括:确定测量位置,其中,测量位置包括至少之一:数据发送方和数据接收方;在测量位置为数据发送方时,通过数据发送方的应用程序接口函数或者物理网卡的软件开发工具包获取在目标时刻内目标位置处的第一实际网络传输速率;在测量位置为数据接收方时,通过数据接收方反馈的网络接收速率获取在目标时刻内目标位置处的第一实际网络传输速率。
可选地,依据预设的影响关系表调整控制参数,包括:增大比例调节参数,以减少网络传输速率控制系统的上升时间;降低积分调节参数,以减少网络传输速率控制系统的超调量;降低微分调节参数,以减少网络传输速率控制系统的稳态误差。
可选地,据控制参数对第一网络传输速率差分别进行比例调节、积分调节、微分调节,输出第一字节数,包括:分别计算第一网络传输速率差和比例调节参数的乘积、第一网络传输速率差的积分值和积分调节参数的乘积以及第一网络传输速率差的微分值和微分调节参数的乘积,得到第一网络传输速率速率、第二网络传输速率速率和第三网络传输速率速率;计算第一网络传输速率速率、第二网络传输速率速率和第三网络传输速率速率之和,得到第四网络传输速率;基于第四网络传输速率确定第一字节数。
可选地,在按照第一字节数将网络数据传输至数据接收方之后,该方法还包括:基于初始网络传输速率确定数据发送单元将网络数据写入发送数据缓冲区的初始字节数;在第一字节数与初始字节数不相等时,继续通过网速测量单元获取在下一时刻内目标位置处的第二实际网络传输速率,并通过网速控制单元依据初始网络传输速率与第二实际网络传输速率确定第二网络传输速率差,分别对第二网络传输速率差进行比例调节、积分调节、微分调节,输出第二字节数。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种网络传输速率控制方法,其特征在于,应用于网络传输速率控制系统,其中:
获取在目标时刻内目标位置处的第一实际网络传输速率,其中,所述目标位置与监测网络传输速率的测量位置相匹配;
依据预设的初始网络传输速率与所述第一实际网络传输速率确定第一网络传输速率差,并分别对所述第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数;
按照所述第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
2.根据权利要求1所述的方法,其特征在于,获取在目标时刻内目标位置处的第一实际网络传输速率,包括:
确定所述测量位置,其中,所述测量位置包括至少之一:数据发送方和数据接收方;
在所述测量位置为所述数据发送方时,通过所述数据发送方的应用程序接口函数或者物理网卡的软件开发工具包获取在所述目标时刻内所述目标位置处的所述第一实际网络传输速率;
在所述测量位置为所述数据接收方时,通过所述数据接收方反馈的网络接收速率获取在所述目标时刻内所述目标位置处的所述第一实际网络传输速率。
3.根据权利要求1所述的方法,其特征在于,分别对所述第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数,包括:
依据预设的影响关系表调整控制参数,其中,所述控制参数包括:用于比例调节的比例调节参数、用于积分调节的积分调节参数以及用于微分调节的微分调节参数;
依据所述控制参数对所述第一网络传输速率差分别进行比例调节、积分调节、微分调节,输出所述第一字节数。
4.根据权利要求3所述的方法,其特征在于,依据预设的影响关系表调整控制参数,包括:
增大所述比例调节参数,以减少所述网络传输速率控制系统的上升时间;
降低所述积分调节参数,以减少所述网络传输速率控制系统的超调量;
降低所述微分调节参数,以减少所述网络传输速率控制系统的稳态误差。
5.根据权利要求3所述的方法,其特征在于,依据所述控制参数对所述第一网络传输速率差分别进行比例调节、积分调节、微分调节,输出所述第一字节数,包括:
分别计算所述第一网络传输速率差和所述比例调节参数的乘积、所述第一网络传输速率差的积分值和所述积分调节参数的乘积以及所述第一网络传输速率差的微分值和所述微分调节参数的乘积,得到第一网络传输速率速率、第二网络传输速率速率和第三网络传输速率速率;
计算所述第一网络传输速率速率、所述第二网络传输速率速率和所述第三网络传输速率速率之和,得到第四网络传输速率;
基于所述第四网络传输速率确定所述第一字节数。
6.根据权利要求1所述的方法,其特征在于,在按照所述第一字节数将网络数据传输至数据接收方之前,所述方法还包括:
设置数据发送参数,其中,所述数据发送参数中包括:所述发送数据缓冲区的第一大小、发送所述网络数据的字节数、是否即时发送所述网络数据、接收数据缓冲区的第二大小以及接收所述网络数据的等待超时时间。
7.根据权利要求1至6所述的方法,其特征在于,所述方法还包括:
基于所述初始网络传输速率确定将所述网络数据写入所述发送数据缓冲区的初始字节数;
在所述第一字节数与所述初始字节数不相等时,再次获取在下一时刻内所述目标位置处的第二实际网络传输速率,并依据所述初始网络传输速率与所述第二实际网络传输速率确定第二网络传输速率差,分别对所述第二网络传输速率差进行比例调节、积分调节、微分调节,输出第二字节数;按照所述第二字节数将所述网络数据写入所述发送数据缓冲区,以控制网络传输速率。
8.一种网络传输速率控制装置,其特征在于,应用于网络传输速率控制系统,其中:
获取模块,用于获取在目标时刻内目标位置处的第一实际网络传输速率,其中,所述目标位置与监测网络传输速率的测量位置相匹配;
调节模块,用于依据预设的初始网络传输速率与所述第一实际网络传输速率确定第一网络传输速率差,并分别对所述第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数;
发送模块,用于按照所述第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
9.一种网络传输速率控制系统,其特征在于,该系统包括:网速控制单元、数据发送单元和网速测量单元,其中:
所述网速测量单元,用于获取在目标时刻内目标位置处的第一实际网络传输速率,其中,所述目标位置与所述网络测量单元监测网络传输速率的测量位置相匹配;
所述网速控制单元,用于依据预设的初始网络传输速率与所述第一实际网络传输速率确定第一网络传输速率差,并分别对所述第一网络传输速率差进行比例调节、积分调节、微分调节,输出第一字节数;
所述数据发送单元,用于按照所述第一字节数将网络数据写入发送数据缓冲区,以控制网络传输速率。
10.一种电子设备,其特征在于,包括:存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被配置为通过所述计算机程序执行权利要求1至7中任意一项所述的网络传输速率控制方法。
CN202310246295.XA 2023-03-06 2023-03-06 网络传输速率控制方法、装置及系统 Active CN116405442B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310246295.XA CN116405442B (zh) 2023-03-06 2023-03-06 网络传输速率控制方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310246295.XA CN116405442B (zh) 2023-03-06 2023-03-06 网络传输速率控制方法、装置及系统

Publications (2)

Publication Number Publication Date
CN116405442A true CN116405442A (zh) 2023-07-07
CN116405442B CN116405442B (zh) 2024-04-26

Family

ID=87013319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310246295.XA Active CN116405442B (zh) 2023-03-06 2023-03-06 网络传输速率控制方法、装置及系统

Country Status (1)

Country Link
CN (1) CN116405442B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655547A (zh) * 2004-09-09 2005-08-17 上海川海信息科技有限公司 一种流媒体传输系统中的速率控制方法
US20060159098A1 (en) * 2004-12-24 2006-07-20 Munson Michelle C Bulk data transfer
CN101354688A (zh) * 2007-07-27 2009-01-28 佛山市顺德区顺达电脑厂有限公司 数据传输速率调校装置及方法
CN108540827A (zh) * 2017-03-01 2018-09-14 杭州海康威视数字技术股份有限公司 数据处理方法及装置
CN113132256A (zh) * 2019-12-30 2021-07-16 深圳Tcl新技术有限公司 一种数据传输方法、终端及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655547A (zh) * 2004-09-09 2005-08-17 上海川海信息科技有限公司 一种流媒体传输系统中的速率控制方法
US20060159098A1 (en) * 2004-12-24 2006-07-20 Munson Michelle C Bulk data transfer
CN101354688A (zh) * 2007-07-27 2009-01-28 佛山市顺德区顺达电脑厂有限公司 数据传输速率调校装置及方法
CN108540827A (zh) * 2017-03-01 2018-09-14 杭州海康威视数字技术股份有限公司 数据处理方法及装置
CN113132256A (zh) * 2019-12-30 2021-07-16 深圳Tcl新技术有限公司 一种数据传输方法、终端及存储介质

Also Published As

Publication number Publication date
CN116405442B (zh) 2024-04-26

Similar Documents

Publication Publication Date Title
US20070058929A1 (en) Motion control timing models
KR102385762B1 (ko) 속도 최적화된 정체 관리
EP1659465B1 (en) Time stamped motion control network protocol that enables balanced single cycle timing and utilization of dynamic data structures
US8392555B2 (en) Push-back mechanism for pub/sub brokers
US20150304193A1 (en) Controller, control system, and control method
US20080117816A1 (en) Method and system to identify and alleviate remote overload
US10404562B2 (en) Optimization of retransmission timeout boundary
US10965570B2 (en) Remote control device, system, method, and recording medium for determining a delay setting value
US20230362098A1 (en) Rate Update Engine For Reliable Transport Protocol
CN114153174B (zh) 主从式控制系统的控制方法以及装置、存储介质
CN116405442B (zh) 网络传输速率控制方法、装置及系统
EP3190749B1 (en) Traffic control method and system
WO2020021597A1 (ja) 通信装置、通信システムおよび同期制御方法
CN112147956B (zh) 分布式控制系统
JP5182293B2 (ja) 呼処理時間測定装置、呼処理時間測定方法および呼処理時間測定用プログラム
WO2017077704A1 (ja) スループット計測装置、方法および記録媒体
JP2014178852A (ja) 制御システム及び制御プログラム
CN114070794A (zh) 可编程拥塞控制通信方案
EP4449698A1 (en) Method and device for supporting real-time service
CN113225367A (zh) 主机和客户端之间基于包通信的自动化网络及其运行方法
US12107767B2 (en) System and method for network rate limiting
CN118233347A (zh) 一种网络压测方法、装置、设备及可读存储介质
JP5413801B2 (ja) フィールド通信方法およびこれを用いたフィールド機器
JP7156982B2 (ja) リアルタイムコントローラおよびそれを用いた分散制御システム、産業機械
KR20240118324A (ko) 프레임 전송 시점 조절 장치 및 방법

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