CN101359979B - 一种基于终端的链路丢包率控制方法及系统 - Google Patents
一种基于终端的链路丢包率控制方法及系统 Download PDFInfo
- Publication number
- CN101359979B CN101359979B CN2008101175883A CN200810117588A CN101359979B CN 101359979 B CN101359979 B CN 101359979B CN 2008101175883 A CN2008101175883 A CN 2008101175883A CN 200810117588 A CN200810117588 A CN 200810117588A CN 101359979 B CN101359979 B CN 101359979B
- Authority
- CN
- China
- Prior art keywords
- link
- packet
- current
- drop rate
- network condition
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 239000000523 sample Substances 0.000 claims description 31
- 230000008859 change Effects 0.000 claims description 20
- 239000000284 extract Substances 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 abstract description 32
- 239000002699 waste material Substances 0.000 abstract description 2
- 238000013139 quantization Methods 0.000 abstract 2
- 230000006854 communication Effects 0.000 description 36
- 238000004891 communication Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 6
- 230000001105 regulatory effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 238000011897 real-time detection Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000011217 control strategy Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于终端的链路丢包率控制方法及系统。该方法包括:在网络层截获由本地主机发往远程主机的数据包,记录远程主机的IP地址;本地主机依据远程主机的IP地址向远程主机发送探测数据包,远程主机依据探测数据包得到当前链路的平均丢包间隔数,向本地主机返回当前链路的平均丢包间隔数;本地主机依据当前链路的平均丢包间隔数以及预置的网络状况等级量化表得到当前链路的网络状况等级,并依据当前链路的网络状况等级和预置的丢包率分配表调整当前链路的链路丢包率;所述网络状况等级量化表包含平均丢包间隔数与网络状况等级的对应关系。本发明能够避免了网络资源的浪费并有效地提高网络的工作效率。
Description
技术领域
本发明涉及多媒体业务的链路丢包率控制领域,尤其涉及一种基于终端的链路丢包率控制方法及系统。
背景技术
链路丢包率控制技术通常用来进行链路带宽的调节和资源的重新分配,有效、实时地对链路进行丢包率的调整是整个链路控制技术的重要组成部分。传统的链路丢包控制方法主要基于两种策略:一种是在原有路由器上添加链路丢包和控制策略,按照用户或者业务种类来设定业务流的优先等级,统一对当前流经该路径上的数据流进行分析。当某一链路出现拥塞情况时,按照预先策略将过于拥挤的带宽进行重新调节,使资源能够得到合理利用。这种方法往往需要对原有核心路由器进行一定程度上的修改,耗费的成本较大;另一种方法基于终端来进行带宽调节和流量控制,常用的方法是利用RTCP和RTP协议来提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地互相传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。因此,通信对端可以利用这些信息动态地改变传输速率,从而提高传输效率。但RTP和RTCP仅支持部分多媒体音视频业务,其它业务例如一些即时通信软件自主开发的音视频业务或者文件传输等业务则得不到很好的支持;同时,基于RTP/RTCP协议的算法通常作为应用程序代码的一部分,因此,终端用户现有的所有音视频业务都必须支持RTP/RTCP协议规定的一整套策略,这势必会带来应用程序开发、改进上工作量的大幅度提高和程序工作效率一定程度上的降低。因此需要一种更加普适、高效且相对简洁的方法来进行链路丢包率的调节和控制。
发明内容
为了解决上述的技术问题,本发明提供了一种基于终端的链路丢包率控制方法及系统,其目的在于,针对网络状况的变化实时地为同一主机上的多个通信链路提供链路丢包率的控制,以达到资源的优化利用。
本发明提供了一种基于终端的链路丢包率控制方法,包括:
步骤1,在网络层截获由本地主机发往远程主机的数据包,记录远程主机的IP地址;
步骤2,本地主机依据远程主机的IP地址向远程主机发送探测数据包,远程主机依据探测数据包得到当前链路的平均丢包间隔数,并向本地主机返回当前链路的平均丢包间隔数;
步骤3,本地主机依据当前链路的平均丢包间隔数以及预置的网络状况等级量化表得到当前链路的网络状况等级,并依据当前链路的网络状况等级以及预置的丢包率分配表调整当前链路的链路丢包率;所述丢包率分配表包含网络状况等级与链路丢包率的对应关系或者网络状况等级变化状况与链路丢包率变化状况的对应关系;所述网络状况等级量化表包含平均丢包间隔数与网络状况等级的对应关系。
步骤2中,本地主机依据远程主机的IP地址并按照第一周期向远程主机发送探测数据包,远程主机按照第二周期向本地主机返回当前链路的平均丢包间隔数;重复执行步骤3。
远程主机的IP地址、当前链路的链路丢包率以及当前链路的网络状况等级均记录在链路信息管理表中。
步骤3中,依据所述网络状况等级与链路丢包率的对应关系以及当前时刻的当前链路的网络状况等级得到当前链路的链路丢包率,从而依据该链路丢包率对当前链路进行调整;或者依据在链路信息管理表中的当前链路的网络状况等级和当前时刻得到的当前链路的网络状况等级判断网络状况发生变化时,依据网络状况等级变化状况与链路丢包率变化状况的对应关系以及在链路信息管理表中的当前链路的网络状况等级和当前时刻的当前链路的网络状况等级得到当前时刻的当前链路的链路丢包率的变化值,并依据该链路丢包率变化值和链路信息管理表中的当前链路的链路丢包率对进行当前链路调整。
步骤1包括:
步骤71,本地主机在网络层截获发往远程主机的数据包;
步骤72,对发往远程主机的数据包进行解析,提取远程主机的IP地址;
步骤73,在链路信息管理表中记录远程主机的IP地址。
步骤72和步骤73之间还包括步骤74,根据单位时间内的数据包的大小近似计算当前链路所占带宽;步骤73中,还在链路信息管理表中记录当前链路所占带宽。
步骤3包括:
步骤91,本地主机在当前时刻依据平均丢包间隔数以及预置的网络状况等级量化表得到当前链路的网络状况等级,并定期查询链路信息管理表中当前链路的网络状况等级;
步骤92,判断在当前时刻得到的网络状况等级和链路信息管理表中当前链路的网络状况等级是否相同:如果不同,并且当前时刻得到的当前链路的网络状况等级保持不变的时间大于预设值,则依据网络状况等级变化状况与链路丢包率变化状况的对应关系以及链路信息管理表中的当前链路的网络状况等级和当前时刻的网络状况等级获取当前链路的链路丢包率变化值,依据该链路丢包率变化值和链路信息管理表中的当前链路的链路丢包率对当前链路进行调整,并将链路信息管理表中当前链路的网络状况等级修改为当前时刻得到的网络状况等级,将链路信息管理表中当前链路的链路丢包率修改为当前时刻得到的链路丢包率;如果相同,则结束。
本发明提供了一种基于终端的链路丢包率控制系统,包括本地主机和远程主机,
本地主机,用于在网络层截获由本地主机发往远程主机的数据包,记录远程主机的IP地址;依据远程主机的IP地址向远程主机发送探测数据包;依据当前链路的平均丢包间隔数以及预置的网络状况等级量化表得到当前链路的网络状况等级,并依据当前链路的网络状况等级以及预置的丢包率分配表调整当前链路的链路丢包率;所述丢包率分配表包含网络状况等级与链路丢包率的对应关系或者网络状况等级变化状况与链路丢包率变化状况的对应关系;所述网络状况等级量化表包含平均丢包间隔数与网络状况等级的对应关系;
远程主机,用于依据探测数据包得到当前链路的平均丢包间隔数,并向本地主机返回当前链路的平均丢包间隔数。
本地主机,还用于计算当前链路所占带宽。
本地主机,还用于创建链路信息管理表,该链路信息管理表记录远程主机的IP地址、当前链路的链路丢包率以及当前链路的网络状况等级。
本地主机,还用于依据所述网络状况等级与链路丢包率的对应关系及当前链路的网络状况等级得到当前链路的链路丢包率,从而依据该链路丢包率对当前链路进行调整;或者依据在链路信息管理表中的当前链路的网络状况等级和当前时刻得到的当前链路的网络状况等级判断网络状况发生变化时,依据网络状况等级变化状况与链路丢包率变化状况的对应关系以及在链路信息管理表中的当前链路的网络状况等级和当前时刻的当前链路的网络状况等级得到当前时刻的当前链路的链路丢包率变化值,并依据该链路丢包率变化值和链路信息管理表中的当前链路的链路丢包率对当前链路进行调整。
本发明提供了一种基于终端的链路丢包率控制方法,包括:
步骤10,在网络层截获由本地主机发往远程主机的数据包,记录远程主机的IP地址;
步骤20,本地主机依据远程主机的IP地址向远程主机发送探测数据包,远程主机依据探测数据包得到当前链路的平均丢包间隔数,并向本地主机返回当前链路的平均丢包间隔数;
步骤30,本地主机依据当前链路的平均丢包间隔数以及预置的丢包率分配表调整当前链路的链路丢包率;所述丢包率分配表包含平均丢包间隔区间与链路丢包率的对应关系或者平均丢包间隔区间变化状况与链路丢包率变化状况的对应关系。
步骤20中,本地主机依据远程主机的IP地址并按照第一周期向远程主机发送探测数据包,远程主机按照第二周期向本地主机返回当前链路的平均丢包间隔数;重复执行步骤30。
本发明提供了一种基于终端的链路丢包率控制系统,包括本地主机和远程主机,
本地主机,用于在网络层截获由本地主机发往远程主机的数据包,记录远程主机的IP地址;依据远程主机的IP地址向远程主机发送探测数据包;依据当前链路的平均丢包间隔数以及预置的丢包率分配表调整当前链路的链路丢包率;所述丢包率分配表包含平均丢包间隔区间与链路丢包率的对应关系或者平均丢包间隔区间变化状况与链路丢包率变化状况的对应关系;
远程主机,用于依据探测数据包得到当前链路的平均丢包间隔数,并向本地主机返回当前链路的平均丢包间隔数。
本地主机,还用于依据在链路信息管理表中记录的当前链路的链路丢包率、在链路信息管理表中记录的当前链路的链路丢包率所属区间、当前时刻得到的当前链路的平均丢包间隔数以及平均丢包间隔区间变化状况与链路丢包率变化状况的对应关系调整当前链路的链路丢包率。
本发明采用了基于网络层的数据包按链路信息的管理方法,同时借助于网络探测的实时结果,可以随时了解同一主机上不同通信链路的网络状况,在链路网络状况发生变化时实时地调整当前链路的丢包率,调配当前链路的带宽,从而合理地利用现有链路资源,避免了网络资源的浪费,同时有效地提高网络的工作效率。
附图说明
图1为本发明方法的总体处理流程图;
图2为本发明方法应用的拓扑结构图;
图3为本发明提供的实施例所使用的拓扑结构图;
图4为数据包的网络层截获、管理流程图;
图5为链路网络状况实时探测流程图;
图6为基于探测结果的链路丢包率控制流程图。
具体实施方式
本发明的整体流程如图1所示,数据包首先被截获,然后提取相关信息来建立链路信息管理表;同时,在通信链路上不断进行网络状况的探测,依据探测的结果来进行链路丢包率的调节,并及时更新链路信息管理表。
当本地通信主机和远程通信主机进行多媒体通信时,执行以下步骤:
a、在网络层截获由本地主机发往远程主机的数据包,并建立链路信息管理表对数据包进行管理。
b、上述通信过程中进行实时地网络链路状况探测,并返回探测结果。
c、根据b中提供的探测结果,按照不同链路的网络状况进行数据包的调度,从而达到网络资源的合理调配。
根据本发明的上述方法,所述步骤a包括:
a1、本地主机在网络层截获发往远程主机的数据包。
a2、根据网络层数据包的特点对发往远程主机的数据包进行解析,提取IP地址信息并利用IP地址来区分不同的通信链路。
a3、根据数据包的大小来近似统计当前链路所占带宽。
a4、依据不同通信链路建立链路信息管理表,内容如下:
节点编号 | IP地址 | 链路带宽 | 网络状况 | 链路丢包率 |
链路丢包率是指链路传输中所丢失数据包数量占所发送数据包的比率,本方法中的丢包率专指为了进行带宽分配而对某一链路数据包进行一定比例的丢包限制,从而达到带宽控制的目的。
a5、将a2、a3中的相关信息填入通信链路信息管理表中。
所述步骤b包括:
b1、本地主机为客户端(探测方),分别发送UDP探测数据包至远程主机(被探测方),探测包间隔为200ms。
对于当前网络环境中的每一台通信主机而言,实际上互为客户端和服务器端。也即此时远程主机也在发送探测数据包至本地主机。
b2、远程主机为服务器端(被探测方),接收探测数据包,并根据数据包中含有的序列号等相关信息计算当前通信链路的平均丢包间隔数。
丢包间隔数是指相邻两次丢包事件之间正确发送数据包的数目。而偶然出现的丢包间隔显然是无法反映网络状况的。所以我们引入了平均丢包间隔的概念,简单的说就是对最近一段时间的丢包间隔数进行加权平均,从而得到一个可以反映最近一段网络状况的平均丢包情况。
b3、远程主机端统计探测结果,并将计算结果周期性(如每2.5s)返回至本地主机(探测方)。
b4、本地主机端按照b3中探测结果来判断当前链路的网络状况:
b4.1)若平均丢包间隔数大于或等于阈值ThresF1,则当前通信链路网络状况等级为I,描述为Perfect;
b4.2)若平均丢包率间隔数大于或等于阈值ThresF2并且小于ThresF1,则当前通信链路网络状况等级为II,描述为Good;
b4.3)若平均丢包率间隔数大于或等于阈值ThresF3并且小于ThresF2,则当前通信链路网络状况等级为III,描述为Middle;
b4.4)若平均丢包率间隔数大于或等于阈值ThresF4并且小于ThresF3,则当前通信链路网络状况等级为IV,描述为Poor;
b4.5)若平均丢包率间隔数小于阈值ThresF4并且大于或等于0,则当前通信链路网络状况等级为V,描述为Bad。
b5、将上述网络状况等级按照IP地址填入a4中所述的链路信息管理表中,并每隔周期2s进行定时的更新维护。
所述步骤c包括:
c1、取当前时刻t对应的网络状况为基准,以周期1s定时查询链路信息管理表中对应链路的网络状况。
c2、若下一时刻对应的网络状况和t时刻不同,且这一时刻对应的网络状况保持不变的时间大于3s,则判定当前的网络状况已经发生了改变,并修改链路信息管理表中当前链路的网络状况等级。
c3、结合c2中的网络状况情况进行丢包调节,统一调整链路的链路丢包率,调节主要通过改变对应链路的丢包率来实现,具体参考下面的丢包率分配表:
表中各百分比数字指的就是链路丢包率的变化值,本发明中主要通过调整丢包率来实现带宽的控制。如上表所示,表中每一行和列交叉的表格中对应的数字表征两种网络状况间变化时应采取的丢包力度,表格中的数字均表示在当前网络状况对应丢包率基础上应该增加或者减少的丢包率百分比值。(处于网络状况I时默认为零丢包)这里强调一点,由于在本发明中网络等级的优先级次序从I-V依次降低,因此从高等级网络状况变化至低等级网络状况时,表格中丢包率调整的数值为丢包率增加的百分比值,即此时应该增大丢包的力度;反之则减小丢包的力度。例如,如果当前网络状况从网络状态I变化至网络状况III,此时依据表中数据可知链路丢包率将从零丢包调整至20%,系统将把网络层截获到的此链路上的数据包按照随机丢包的方式平均丢弃20%,同时把剩余数据包继续放行,也即将链路有效带宽降低了20%左右;然后,网络状况从网络状况III变化至网络状况IV,此时依据表中数据可知链路丢包率将增加25%调整至45%。其他情况以此类推。
上述的丢包率分配表表明了网络状况变化和链路丢包率变化之间的对应关系,为了实现上述功能,也可以直接在丢包率分配表中记录平均丢包间隔数变化与链路丢包率变化之间的对应关系,进而利用该对应关系对链路丢包率进行调整以调整当前链路的链路丢包率,该丢包率分配表如下:
上表中各百分比数字同样指的是链路丢包率的变化值,表中每一行和列交叉的表格中对应的数字表征平均丢包间隔数在两种取值范围之间变化时应采取的丢包力度,表格中的数字均表示在当前区间范围内对应丢包率基础上应该增加或者减少的丢包率百分比值。(平均丢包间隔处于区间[70,+∞]时默认为零丢包)这里也存在和上表中类似的优先级次序概念,所不同的是优先级次序按照区间边界点值的大小依次降低,因此从上一区间变化至下一区间时,表格中丢包率调整的数值为丢包率增加的百分比值,即此时应该增大丢包的力度;反之则减小丢包的力度。相应地,链路信息管理表中的网络状况应该使用平均丢包间隔区间来代替。
本发明应用于异构网络环境中运行在Linux操作系统平台的通信主机上,如图2所示,包括IP核心网、WLAN(无线局域网)、LAN(局域网)和WWAN(无线广域网),WLAN(无线局域网)、LAN(局域网)和WWAN(无线城域网)和IP核心网分别连接。如图2所示,本发明也同时适用于通信双方为异种网络接入环境下的基于IP核心网的多媒体通信业务过程,在异种接入方式的情况下,网络能提供的带宽是各有差别的,但是本发明涉及的上述探测及调节方式仍然有效。
根据本发明的上述方法,我们可以通过实时地对各条链路的网络状况进行探测,并且按照不同的等级加以区分,当链路网络状况发生变化时,我们可以通过有效的调节来达到通信服务质量的保证和资源的合理优化配置。
下面提供一种在异构网络环境下,实时、自动地为已建立的多媒体通信过程提供服务质量调节的方法。该实施例应用于运行在Linux操作系统平台上的音视频数据传输的多媒体通信业务。
本实施例中使用的网络拓扑结构如图3所示。用户A通过无线方式接入网络(这里假设是WLAN),B用户也通过无线方式接入网络(这里假设也为WLAN),C用户通过LAN接入网络。A用户通过IP核心网络同B、C用户进行音视频或文件数据传输。实线表示正在连接的有线链路,闪电符号表示无线链路。
本实施例中,当多媒体通信业务处于正在进行的情况下,通过该方法对由用户A发送至用户B、C的数据包进行管理和对应链路丢包率的调节。当用户B、C所处的网络状况发生改变时(如图3中所示,可能是本地业务量突增或其他原因造成的网络阻塞),采取的具体步骤如下:
步骤一、首先是网络层数据包的截获和管理。具体步骤如图4所示,数据包被发送出去以前首先到达操作系统相关协议栈,利用操作系统提供的相关钩子函数,在网络层将数据包进行截获,并同时完成数据包内容的解析与链路信息表的建立和维护,并进一步控制对应链路上数据包的流出;当网络状况改变需要进行链路丢包率调节时(判断网络状况是否改变的方案见下面的步骤三),进行链路丢包率的调整,控制链路带宽调整后的各通信链路上数据包的流出。
步骤二、进行网络状况的实时探测,具体步骤如下,如附图5所示,首先由客户端(探测方)发送探测数据包至服务器端(被探测方),服务器端在特定端口侦听探测数据包并统计和计算当前链路的平均丢包间隔数,同时将结果及时反馈至探测方,探测方接收到结果以后进行结果统计,然后量化成网络状况等级,最后将链路信息表中网络状况等级及时更新。
步骤三、根据步骤二得到的结果,结合网络状况等级的变化进行链路丢包率的调节。具体步骤如下,如图6所示,系统周期性查询链路信息表,不断提取链路信息表中的链路网络状况等级信息和当前得到的网络状况等级进行比较,若发现当前时刻与链路信息表中的网络状况等级值不同,且持续了Ts(T=3)保持不变,便可以确认网络状况发生了改变并立刻更新相关链路信息表中的丢包率值。与此同时,在步骤一中就可以按照此时更新的数值进行对应链路带宽的调节。
下面对以上三个步骤进行详细描述:
1)利用Linux操作系统提供的机制在用户A对应协议栈的网络层截获发往用户B、C的音视频等数据包。
这里提到的数据包截获机制主要指操作系统提供的实现数据包过滤/处理的功能框架,如Netfilter(网络过滤器)等。通过这些机制提供的函数将由用户A发往用户B、C的数据包进行暂时的截获,结合后面的步骤2)、步骤11)和步骤12),当链路的网络状况发生了变化后,将根据不同的链路(IP地址)进行丢包率的限制。
2)对发往B、C主机的数据包进行解析,提取IP地址信息并利用IP地址来区分不同的通信链路。此外,根据数据包的长度来近似统计当前链路所占带宽。
这里所指的当前链路近似带宽值指的是按照相同时间内将所有数据包的大小累计求和并除以时间所得到的均值,单位为B/s,这里所取的时间值为2s。
3)将所得的结果填入下面的链路信息管理表中,内容包含节点编号、IP地址、链路网络状况、当前链路所占带宽以及链路丢包率等,其中网络状况和丢包率开始数据均为默认值,准确的测试值结合后续步骤得出。如下表所示(表中数值为实验所得,仅供参考)
节点编号 | IP地址 | 链路带宽 | 网络状况 | 链路丢包率 |
CN1(B) | 2001:cc0:2026:3:d150:5203:30f9:40d6 | 1MB/s | I | 0 |
CN2(C) | 2001:cc0:2026:3:219:21ff:fe7d:630b | 1.5MB/s | I | 0 |
上表反映了当前通信的两条链路的信息,实际情况下,该表将按照一定时间被定期更新,更新工作维护节点IP地址、编号及当前链路所占带宽内容,以及按照测试结果来维护网络状况等级值及设定对应链路的丢包率,详细内容参考后续给出的链路信息管理表。
4)由用户A做为探测端分别发送UDP(用户数据协议)探测数据包至待测用户B、C端指定端口(端口号9211),探测包间隔为200ms。
对于当前网络环境中的每一台通信主机而言,实际上互为客户端和服务器端。也即此时被探测方B、C用户也在发送探测数据包至用户A。本发明只描述从A-B、A-C方向的探测过程,B-A、C-A方向的探测过程从略。
5)B、C用户侦听9211端口并接收探测数据包,然后根据数据包中含有的序列号计算当前通信链路的平均丢包间隔数,然后将结果返回至探测方A用户端的指定端口(端口号9212)。
上述提到的4)、5)步骤中9211、9212端口为系统特定端口,其中9211端口用来侦听、接收由探测方发送的UDP探测数据包;9212端口用来接收由服务器端反馈回来的探测结果,上述特定端口的使用能有效标记并区分探测数据包和其他多媒体通信业务数据包。
6)用户A收到探测结果以后,提取里面的平均丢包间隔数信息,然后进行统计,量化成对应的网络状况等级,网络状况等级的量化按以下规则进行:
6.1)若平均丢包间隔数大于或等于阈值ThresF1(例如70),则当前通信链路网络状况等级为I,描述为Perfect;
6.2)若平均丢包率间隔数大于或等于阈值ThresF2(例如10)并且小于ThresF1,则当前通信链路网络状况等级为II,描述为Good;
6.3)若平均丢包率间隔数大于或等于阈值ThresF3(例如3.5)并且小于ThresF2,则当前通信链路网络状况等级为III,描述为Middle;
6.4)若平均丢包率间隔数大于或等于阈值ThresF4(1.0)并且小于ThresF3,则当前通信链路网络状况等级为IV,描述为Poor;
6.5)若平均丢包率间隔数小于阈值ThresF4并且大于或等于0,则当前通信链路网络状况等级为V,描述为Bad。
网络状况等级量化表所示为网络状况等级与平均丢包间隔数的对应关系,阈值单位为个数。网络状况等级量化表如下:
平均丢包间隔数(ALI) | 等级 | 描述 |
ALI≥ThresF1 | I | Perfect |
ThresF2≤ALI<ThresF1 | II | Good |
ThresF3≤ALI<ThresF2 | III | Middle |
ThresF4≤ALI<ThresF3 | IV | Poor |
0≤ALI<ThresF4 | V | Bad |
7)将上述量化等级按照不同通信链路(IP地址)进行分类,用户A端第一次收到用户B端发出的平均丢包间隔数后,得到当前链路的网络状况等级,可直接将步骤3)中对应的链路信息表中的网络状况等级值更新,也可待该网络状况等级持续3s后对链路信息表中的网络状况等级值更新。
8)如图3所示,假定t1时刻用户A和B之间链路网络状况的等级值为I,网络探测过程在不断进行当中。此外,用户A端的链路调节将以周期1s来查询步骤3)中建立的链路信息表中的链路网络状态等级信息,并和下一时刻的等级值进行对比。
9)假定t2时刻经网络探测后得到的结果为III,而链路信息表中存储的这一链路网络状况等级值为I,此时我们认为链路状况可能发生了改变。
10)继续进行网络状况探测,若从t2时刻起,该链路的网络状况等级值一直为III,并且持续了3s。此时我们便认为该链路网络状况发生了变化。
11)对从网络状况等级值由I变化到III的链路(A---B)进行丢包率的限定,并更新链路信息管理表,如下表所示,网络状况和链路丢包率的数值得到了更新。
节点 | IP地址 | 链路 | 网络 | 链路 |
编号 | 带宽 | 状况 | 丢包率 | |
CN1(B) | 2001:cc0:2026:3:d150:5203:30f9:40d6 | 1MB/s | III | 20% |
CN2(C) | 2001:cc0:2026:3:219:21ff:fe7d:630b | 1.5MB/s | I | 0 |
12)在前面步骤1)提到的钩子函数中进行对应的丢包,从而限制当前链路的带宽。本例子中是下降了20%,即链路所占带宽减小了20%。
13)重复刚才步骤9)、10)、11)、12)的过程,在t3时刻发现当前这一链路的网络状况已经得到恢复,即从网络状况等级值III变化到I,此时,我们执行相反的操作,将丢包率设置为零,恢复对这一链路带宽的限制。
14)用户A与C之间按照2)-13)的相同步骤,图3中用户C通过有线方式接入网络,t1、t2时刻也经过类似的网络状况变化过程。此外,用户在通信过程中,亦有可能发生切换,此时探测及调节的步骤不变。
本发明还提供了另一种实施方式,丢包率分配表中表明网络状况等级与链路丢包率的关系,例如I---0,II---10%,III---20%,IV---45%,V---60%,用户A接收到来自B的探测结果以后,将探测结果量化成网络状况等级值,然后直接依据丢包率分配表中的数据来调整链路链路丢包率。丢包率分配表也可以表明平均丢包间隔数与链路丢包率的关系,例如[70,+∞)--0,[10,70)---10%,[3.5,10)---20%,[1.0,3.5)---45%,[0,1.0)---60%,按照上述方法,用户A接收到来自B的探测结果以后,直接依据丢包率分配表中的数据来调整链路丢包率,同样可以达到对链路带宽进行调节的目的。
本发明同时支持IPv4、IPv6两种网络环境。其中,截获和管理数据包、网络实时探测及链路带宽调节均采用标准C语言开发,使得用户可以方便地在网络层实现对数据包处理。本发明中很好的利用该机制的特点,同时结合传输层的网络探测,在网络层完成对数据包的管理及通信链路的丢包率调节。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。
Claims (15)
1.一种基于终端的链路丢包率控制方法,其特征在于,包括:
步骤1,在网络层截获由本地主机发往远程主机的数据包,记录远程主机的IP地址;
步骤2,本地主机依据远程主机的IP地址向远程主机发送探测数据包,远程主机依据探测数据包得到当前链路的平均丢包间隔数,并向本地主机返回当前链路的平均丢包间隔数;
步骤3,本地主机依据当前链路的平均丢包间隔数以及预置的网络状况等级量化表得到当前链路的网络状况等级,并依据当前链路的网络状况等级以及预置的丢包率分配表调整当前链路的链路丢包率;所述丢包率分配表包含网络状况等级与链路丢包率的对应关系或者网络状况等级变化状况与链路丢包率变化状况的对应关系;所述网络状况等级量化表包含平均丢包间隔数与网络状况等级的对应关系,
其中调整当前链路的链路丢包率为当当前网络状况发生变化时,系统将把网络层截获到的此链路上的数据包按照随机丢包的方式平均丢弃一定的比率,同时把剩余比率的数据包继续放行。
2.如权利要求1所述的基于终端的链路丢包率控制方法,其特征在于,步骤2中,本地主机依据远程主机的IP地址并按照第一周期向远程主机发送探测数据包,远程主机按照第二周期向本地主机返回当前链路的平均丢包间隔数;重复执行步骤3。
3.如权利要求2所述的基于终端的链路丢包率控制方法,其特征在于,远程主机的IP地址、当前链路的链路丢包率以及当前链路的网络状况等级均记录在链路信息管理表中。
4.如权利要求3所述的基于终端的链路丢包率控制方法,其特征在于,步骤3中,依据所述网络状况等级与链路丢包率的对应关系以及当前时刻的当前链路的网络状况等级得到当前链路的链路丢包率,从而依据该链路丢包率对当前链路进行调整;或者依据在链路信息管理表中的当前链路的网络状况等级和当前时刻得到的当前链路的网络状况等级判断网络状况发生变化时,依据网络状况等级变化状况与链路丢包率变化状况的对应关系以及在链路信息管理表中的当前链路的网络状况等级和当前时刻的当前链路的网络状况等级得到当前时刻的当前链路的链路丢包率的变化值,并依据该链路丢包率变化值和链路信息管理表中的当前链路的链路丢包率对进行当前链路调整。
5.如权利要求4所述的基于终端的链路丢包率控制方法,其特征在于,步骤1包括:
步骤71,本地主机在网络层截获发往远程主机的数据包;
步骤72,对发往远程主机的数据包进行解析,提取远程主机的IP地址;
步骤73,在链路信息管理表中记录远程主机的IP地址。
6.如权利要求5所述的基于终端的链路丢包率控制方法,其特征在于,步骤72和步骤73之间还包括步骤74,根据单位时间内的数据包的大小近似计算当前链路所占带宽;步骤73中,还在链路信息管理表中记录当前链路所占带宽。
7.如权利要求6所述的基于终端的链路丢包率控制方法,其特征在于,步骤3包括:
步骤91,本地主机在当前时刻依据平均丢包间隔数以及预置的网络状况等级量化表得到当前链路的网络状况等级,并定期查询链路信息管理表中当前链路的网络状况等级;
步骤92,判断在当前时刻得到的网络状况等级和链路信息管理表中当前链路的网络状况等级是否相同:如果不同,并且当前时刻得到的当前链路的网络状况等级保持不变的时间大于预设值,则依据网络状况等级变化状况与链路丢包率变化状况的对应关系以及链路信息管理表中的当前链路的网络状况等级和当前时刻的网络状况等级获取当前链路的链路丢包率变化值,依据该链路丢包率变化值和链路信息管理表中的当前链路的链路丢包率对当前链路进行调整,并将链路信息管理表中当前链路的网络状况等级修改为当前时刻得到的网络状况等级,将链路信息管理表中当前链路的链路丢包率修改为当前时刻得到的链路丢包率;如果相同,则结束。
8.一种基于终端的链路丢包率控制系统,包括本地主机和远程主机,其特征在于,
本地主机,用于在网络层截获由本地主机发往远程主机的数据包,记录远程主机的IP地址;依据远程主机的IP地址向远程主机发送探测数据包;依据当前链路的平均丢包间隔数以及预置的网络状况等级量化表得到当前链路的网络状况等级,并依据当前链路的网络状况等级以及预置的丢包率分配表调整当前链路的链路丢包率;所述丢包率分配表包含网络状况等级与链路丢包率的对应关系或者网络状况等级变化状况与链路丢包率变化状况的对应关系;所述网络状况等级量化表包含平均丢包间隔数与网络状况等级的对应关系;
远程主机,用于依据探测数据包得到当前链路的平均丢包间隔数,并向本地主机返回当前链路的平均丢包间隔数,
其中调整当前链路的链路丢包率为当当前网络状况发生变化时,系统将把网络层截获到的此链路上的数据包按照随机丢包的方式平均丢弃一定的比率,同时把剩余比率的数据包继续放行。
9.如权利要求8所述的基于终端的链路丢包率控制系统,其特征在于,本地主机,还用于计算当前链路所占带宽。
10.如权利要求9所述的基于终端的链路丢包率控制系统,其特征在于,本地主机,还用于创建链路信息管理表,该链路信息管理表记录远程主机的IP地址、当前链路的链路丢包率以及当前链路的网络状况等级。
11.如权利要求10所述的基于终端的链路丢包率控制系统,其特征在于,本地主机,还用于依据所述网络状况等级与链路丢包率的对应关系及当前链路的网络状况等级得到当前链路的链路丢包率,从而依据该链路丢包率对当前链路进行调整;或者依据在链路信息管理表中的当前链路的网络状况等级和当前时刻得到的当前链路的网络状况等级判断网络状况发生变化时,依据网络状况等级变化状况与链路丢包率变化状况的对应关系以及在链路信息管理表中的当前链路的网络状况等级和当前时刻的当前链路的网络状况等级得到当前时刻的当前链路的链路丢包率变化值,并依据该链路丢包率变化值和链路信息管理表中的当前链路的链路丢包率对当前链路进行调整。
12.一种基于终端的链路丢包率控制方法,其特征在于,包括:
步骤10,在网络层截获由本地主机发往远程主机的数据包,记录远程主机的IP地址;
步骤20,本地主机依据远程主机的IP地址向远程主机发送探测数据包,远程主机依据探测数据包得到当前链路的平均丢包间隔数,并向本地主机返回当前链路的平均丢包间隔数;
步骤30,本地主机依据当前链路的平均丢包间隔数以及预置的丢包率分配表调整当前链路的链路丢包率;所述丢包率分配表包含平均丢包间隔区间与链路丢包率的对应关系或者平均丢包间隔区间变化状况与链路丢包率变化状况的对应关系,
其中调整当前链路的链路丢包率为当当前网络状况发生变化时,系统将把网络层截获到的此链路上的数据包按照随机丢包的方式平均丢弃一定的比率,同时把剩余比率的数据包继续放行。
13.如权利要求12所述的基于终端的链路丢包率控制方法,其特征在于,步骤20中,本地主机依据远程主机的IP地址并按照第一周期向远程主机发送探测数据包,远程主机按照第二周期向本地主机返回当前链路的平均丢包间隔数;重复执行步骤30。
14.一种基于终端的链路丢包率控制系统,包括本地主机和远程主机,其特征在于,
本地主机,用于在网络层截获由本地主机发往远程主机的数据包,记录远程主机的IP地址;依据远程主机的IP地址向远程主机发送探测数据包;依据当前链路的平均丢包间隔数以及预置的丢包率分配表调整当前链路的链路丢包率;所述丢包率分配表包含平均丢包间隔区间与链路丢包率的对应关系或者平均丢包间隔区间变化状况与链路丢包率变化状况的对应关系;
远程主机,用于依据探测数据包得到当前链路的平均丢包间隔数,并向本地主机返回当前链路的平均丢包间隔数,
其中调整当前链路的链路丢包率为当当前网络状况发生变化时,系统将把网络层截获到的此链路上的数据包按照随机丢包的方式平均丢弃一定的比率,同时把剩余比率的数据包继续放行。
15.如权利要求14所述的基于终端的链路丢包率控制系统,其特征在于,本地主机,还用于依据在链路信息管理表中记录的当前链路的链路丢包率、在链路信息管理表中记录的当前链路的链路丢包率所属区间、当前时刻得到的当前链路的平均丢包间隔数以及平均丢包间隔区间变化状况与链路丢包率变化状况的对应关系调整当前链路的链路丢包率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101175883A CN101359979B (zh) | 2008-08-01 | 2008-08-01 | 一种基于终端的链路丢包率控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101175883A CN101359979B (zh) | 2008-08-01 | 2008-08-01 | 一种基于终端的链路丢包率控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101359979A CN101359979A (zh) | 2009-02-04 |
CN101359979B true CN101359979B (zh) | 2012-03-28 |
Family
ID=40332330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101175883A Active CN101359979B (zh) | 2008-08-01 | 2008-08-01 | 一种基于终端的链路丢包率控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101359979B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964732B (zh) * | 2010-09-02 | 2012-08-15 | 海信集团有限公司 | 计算丢包率的方法及装置、控制网络传输的方法及装置 |
CN102123094B (zh) * | 2011-03-07 | 2012-08-22 | 江苏科技大学 | 两次随机丢包的被动队列管理的方法 |
CN102694736A (zh) * | 2012-06-15 | 2012-09-26 | 华为技术有限公司 | 吞吐率的获取方法和装置 |
US20180123927A1 (en) * | 2016-10-27 | 2018-05-03 | Nanning Fugui Precision Industrial Co., Ltd. | Method and device for detecting network packet loss based on software defined network |
CN107046487A (zh) * | 2017-03-26 | 2017-08-15 | 厦门四信通信科技有限公司 | 一种3g/4g通信网络中基于链路检测实现负载均衡的方法 |
CN108600121A (zh) * | 2018-03-29 | 2018-09-28 | 烽火通信科技股份有限公司 | 网络终端设备中实现单用户上行、下行限速的方法及设备 |
CN111669340B (zh) * | 2020-07-03 | 2021-06-22 | 全时云商务服务股份有限公司 | 发送带宽控制方法、装置、网络设备及可读存储介质 |
CN113364698B (zh) * | 2021-06-08 | 2023-05-30 | 北京汇钧科技有限公司 | 带宽估计方法、系统、电子设备与存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980238A (zh) * | 2006-10-30 | 2007-06-13 | 上海广电(集团)有限公司中央研究院 | 基于实时传输/控制协议的h.264流媒体传输控制方法 |
-
2008
- 2008-08-01 CN CN2008101175883A patent/CN101359979B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980238A (zh) * | 2006-10-30 | 2007-06-13 | 上海广电(集团)有限公司中央研究院 | 基于实时传输/控制协议的h.264流媒体传输控制方法 |
Non-Patent Citations (1)
Title |
---|
史轶.流媒体应用及其QoS控制机制的研究.《中国优秀硕士学位论文全文数据库 信息科技辑》.2007,(第2期),第32-56页. * |
Also Published As
Publication number | Publication date |
---|---|
CN101359979A (zh) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101359979B (zh) | 一种基于终端的链路丢包率控制方法及系统 | |
Claffy et al. | A parameterizable methodology for Internet traffic flow profiling | |
Shakkottai et al. | Network optimization and control | |
Chawathe | Scattercast: an adaptable broadcast distribution framework | |
JP4410408B2 (ja) | ネットワーク機器のサービス品質管理方法及び装置 | |
JP4616785B2 (ja) | サービス品質管理装置及びサービス品質管理方法 | |
US8868735B2 (en) | Wide area network optimization | |
Bonald et al. | Internet and the Erlang formula | |
CN100375462C (zh) | 自适应以太网交换系统和方法 | |
CN102239668A (zh) | 在终端用户设备处为应用程序分配业务优先级或带宽的方法 | |
CN101729430B (zh) | 用于支持端到端时延保证的动态资源分配系统及分配方法 | |
CN103220354A (zh) | 一种实现服务器集群负载均衡的方法 | |
CN105099730A (zh) | 终端设备、基于终端设备的网络流量统计方法及系统 | |
CN108768880B (zh) | 一种sdn环境下基于调节通告窗口的拥塞控制机制方法 | |
CN102469020A (zh) | 一种业务控制方法及系统、演进基站、分组数据网网关 | |
US11689426B2 (en) | System and method for applying CMTS management policies based on individual devices | |
CN108280018B (zh) | 一种节点工作流通信开销效率分析优化方法及系统 | |
CN101753449A (zh) | 支持概率性端到端时延保证的资源管理系统及其方法 | |
CN102907044B (zh) | 多宽带网络网关下业务调度方法及装置 | |
CN102984785A (zh) | 通过多个网络发送数据 | |
KR20120001154A (ko) | Ip망의 서비스별 트래픽 분석을 이용한 대역폭 조정 시스템 및 그 방법 | |
US20070245016A1 (en) | System and method of single-channel account reporting | |
CN109039791A (zh) | 一种带宽管理方法、装置及计算机设备 | |
KR20140125508A (ko) | 트래픽 최적화 기능을 갖는 통신 노드 및 통신 노드에서 트래픽 최적화를 위한 방법 | |
Araújo et al. | A longitudinal analysis of internet rate limitations |
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 |