一、时延概述
时延也常被成为延时(latency),是指一个帧从源点到目的点的总传输时间,包括网络节点的处理时间和在传输介质上的传播时间,其原理是发送帧时,带上时间戳(T1),发送到网络上,接收帧时,记录时间戳(T2),最后在接收方将2个时间戳比较(T2-T1),得到时延值。时延越大,说明设备处理数据包的速度越慢,因此时延也是考察被测设备的重要性能之一。
但是,通过测试直接得到这两个参数在工程实现上是非常困难的,因为在一个测试流中,每个帧的开始标志和结束标志都是相同的,通过记录输入帧的最后一位到达输入端口的时刻和输出帧的第一位出现在输出端口的时刻来计算延时几乎是不可能的,考虑到网络报文是一个不可分割的整体,整个报文的延迟是和报文中任意位的延迟是相等的,引入了标记帧方法来测试延迟。通过在报文中特定位置加入特殊标记(Tag),将记录输入帧的最后一位到达输入端口的时刻和输出帧的第一位出现在输出端口的时刻转化为记录网络设备接收带有标记的帧的时间和发送带有标记帧的时间,从而使延迟测试变得简单可行。
也就是说,网络设备的延迟是由测量带有标记帧的延迟得到的。为此必须要求带有标记的帧不能在传输过程中丢失,并且被转发的时候网络设备应该已经工作在稳定状态,即带有标记的帧不要出现在测试流的开输处,因为网络设备进入稳定工作状态需要一定时间。那为什么要测量时延呢?相比于一些特定的应用或文件对于 VoIP 等协议,可变或者较长的时延均会造成语音质量降低,因此时延的测量在这里就显得尤为重要。
二、时延分类
时延被分为两种,一种是SF--储存转发时延(store and forward latency),计算方法是LIFO。数据帧最后一个bit到达设备输入端口的时间与该数据帧第一个bit出现在设备输出端口的时间间隔,通常三层路由器采用储存转发。
另一种是CT--直通交换时延(cut through latency),计算时延方法是FIFO。数据帧第一个bit到达设备输入端口的时间与该数据帧第一个bit出现在设备输出端口的时间间隔,通常二层交换机采用的是直通交换。
时延测试前提:
这个大家肯定都清楚,那就是在不丢包的情况下测试,因为丢包时,测试时延就毫无意义了。这里我们建议先测试设备的Throughput然后把速率设置为throughput的时候测试时延。