本系列首先对网络QoS进行简单介绍,然后对不同调度算法的原理进行一定分析,最后简单介绍Linux中实现的几种调度算法。
整体目录为:
1 神马是QoS
2 神马是CoS
3 QoS的实现机制
4 Traffic Management
5 Packet Queuing
5.1 Buffer Management
5.2 Packet Scheduling
5.2.1 Packet Fair Queuing Scheduler
6 QoS in Linux
6.1 Packet queuing in Linux
6.2 如果在Linux中实现一个调度
6.3 DRR在Linux中的实现
6.4 层次化调度
6.5 HTB在Linux中的实现
神马是QoS
QoS,字面意思就是服务质量,QoS好就是服务质量好,QoS差就是服务质量差。那么服务质量是什么呢?针对网络设备而言,网络设备的功能就是数据包的转发,服务质量就是对数据包的转发行为符合预期的转发要求,客户很满意?。那么客户的转发预期是什么?就是设备的带宽,吞吐量能够保证,丢包率很低,整体延迟很小,而且抖动也很小,对于优先级高的包优先处理,对于不该转发的包就不转发,能够对各种不同类型的包做很好的流量整形,使整个网络有很好的可管理性。
因此对于QoS,有以下几个重要的性能参数:
- Bandwidth and Throughput,带宽和吞吐量,在系统负载严重,各种feature都打开的时候,系统的吞吐量仍能获得保证
- Packet Loss Rate,丢包率
- Delay,包转发延迟
- Jitter,也叫 Delay Variance,转发延迟的抖动
- Bit Error Rate,误码率
实际系统中,管理员对不同的网络服务定义了不同的性能参数,那么一个网络设备的QoS的好坏就是实际的性能参数与定义的各个性能参数之间的差异了。
神马是CoS
CoS,就是Class of Service,即网络服务的类型。不同网络服务可能有不同的CoS值,为不同CoS定义这种服务类型的各个QoS参数。在layer2和layer3的协议中,这个值就是对应了packet的priority。
对于二层CoS,在802.1Q中定义如下:
可以看到,在VLAN头中有3bits的user priority字段,000为最低,111为最高。二层的priority用于LAN中,并且应该是反映layer3协议的CoS值。
对于三层的CoS,在IP头的TOS字段。ToS有8个bit,前面三个和最后一个bit一般不用,中间[3:6]定义如下:
但是在IPV6中,又进行了进一步的修订,利用了6个bits。
待续
阅读(1574) | 评论(0) | 转发(4) |