可变包测量带宽原理

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 18:53:40

可变包测量带宽原理
可变包测量带宽原理

可变包测量带宽原理
单数据包技术通常也称为可变大小数据包技术(Variable Packet Size),因为它向网络发送大小变化的探测数据包并统计达到目的端的时延来测试网络的带宽.网络的时延由传播时延、发送时延、排队时延三部分组成.这类算法典型的有pathchar、pchar、clink[3][5]等.其基本原理是基于低速的链路传输一个数据包所用的时间比高速的链路长.单数据包技术测试到的是网络的容量.如果一个大小已知的数据包经过一条链路的时间已知,则该链路的带宽就可以计算出来.计算必须考虑链路的传播时延,对于一定的传输媒介,传播时延是固定的.在不考虑网络的排队时延的情况下,传输时间(t)由数据包的大小(p),链路的带宽(b )还有一个固定的传播时延(l )决定.测试时,发送多个不同大小的数据包,当这些数据包在该链路的传输时间被测到后,通过公式(1)我们可以得出链路的带宽b,当然这些值都存在干扰,采用滤波的方法可以过滤出最接近于实际带宽值的数据.2. 2 数据包对技术 数据包对技术(Packet Pairs)利用数据包在传输过程中所形成的时间间隔(Dispersion Time)来测试带宽[1].数据包对技术衍生出了很多的算法和工具,如bprobe、PBM算法、nettimer、 pathload[2][4]等.数据包对技术所测试的是链路的瓶颈带宽或是可用带宽,而不是单个数据包技术所测得的链路的容量.数据包对技术基本方法可以用图一来说明.图中链路L1和L3的带宽是L2的两倍,L2是链路中的瓶颈.在没有干扰的情况下,由于L3带宽大于L2,因此两个数据包在经过L2、L3之间的节点处会形成时间间隔t.这个间隔时间等于L2链路末端的节点在接收完第一个数据包之后,用在接收第二个数据包上的时间.这个值也实际上就等于第二个包的发送时延.发送时延 与数据包大小 成正比和链路的带宽 成反比.注意等式1和2之间的差别.单数据包技术在计算的时候必须考虑链路的传播时延,而数据包对技术并不需要考虑链路的传播时延,因为在没有干扰流量的情况下,对于所有的数据包而言,该值都是相等的.数据包对技术受干扰流量的影响非常严重.如果干扰流量使得第一个数据包出现延迟,那么将会导致两个数据包之间的间隔时间被压缩,那么这样测试出来的链路带宽就会偏高.这就是时间压缩问题;如果干扰流量出现在第一个数据包和第二个数据包之间,那么将会出现排队的情况,则两个数据包之间的间隔将会被拉大,其结果使得测得的链路带宽偏小,这就是时间扩展问题.要采用数据包对技术获得精确的带宽测量值就必须把时间压缩和扩展过滤出来.2.3 传输时间的计算 数据包传输时间的确定不仅需要两端的测试主机具有精确的时钟,同时还需要测试主机的时钟必须同步,另外在每一端的测试主机上部署测试的软件也是必须的.因此,为了简化测试,通常多数算法是测试数据包在网络链路上的往返时间RTT(Round Trip Time)[5].这样可以避免时钟同步问题,同时也减少了测试软件的部署.对于数据包的传输控制,两类技术大都利用了IP数据包报头中的生存时间域(TTL)[6].该值在数据包每经过一个路由器节点的时候会被消耗,其值会减一.一旦TTL被减为0时,该数据包就会被丢弃并且该节点会发送一个ICMP的TTL失效错误信息给原数据发送端.如果把被测试的链路终点设置为数据包TTL失效,发送端就可以通过记录数据包的发送时间加上ICMP错误信息的返回时间从而找到数据包到达链路终点并返回的时间RTT.如下图所示:测试数据包的TTL值被设置为2,在第一个节点TTL被减为1,第二个节点减为0.于是该主机就会发送一个ICMP错误信息返回给主机A.主机A即可获得数据包到达第二个路由器节点的RTT时间.RTT的计算通用的方法都是测试主机在发送和接收到数据包时,通过申请系统中断,给每个数据包分配一时间戳(timestamp),发送时间戳与接收时间戳之差即是数据包在网络链路上的RTT传输时间.