在加权公平排队中,路由器/交换机/多路复用器如何知道将数据包放入哪个队列?例如,它是否读取每个数据包的标头以找出发送者和预期的应用程序?
例如,“分类到达”是如何工作的?
在加权公平排队中,路由器/交换机/多路复用器如何知道将数据包放入哪个队列?例如,它是否读取每个数据包的标头以找出发送者和预期的应用程序?
例如,“分类到达”是如何工作的?
一个网络设备一般有 3-4 个队列用于流量处理。WFQ严格来说并不是一种排队算法,它是一种出口流量调度算法。它决定了放置在不同队列中的流量如何从设备发送出去。公平排队的工作方式是按顺序服务放置在不同队列上的流量,例如,在三个队列的情况下,它们将按 1-2-3-1-2-3 等方式提供服务。我们可以为队列 1 赋予双倍权重,在这种情况下,队列将按 1-1-2-3-1-1-2-3 提供服务。
“分类到达”是指在设备本身内处理入口数据包的方式。通常,网络设备维护流量的现有优先级,根据其具有的优先级将传入数据包放置到适当的出口队列。但是,在每种情况下,设备实际上都会查看帧本身,即 L2 或 L3 标头。
入口帧可以通过几种不同的方式确定优先级。我们可以使用入口接口,也可以通过第 2 层帧信息来确定它,例如 802.1p/Q 优先级(服务等级,CoS)、L2 MAC 地址或 VLAN ID。这就是 L2 设备(例如交换机)的工作原理。例如,数据包可能会到达特定的“语音”VLAN(用于 VOIP 流量),在这种情况下,它将被放置在高优先级出口队列中。或者,帧头的 802.1Q VLAN 标签可能包含一个 3 位的 PCP(优先代码点)字段,用于确定数据包被放置在哪个队列中。
作为 L3 设备的路由器将查看帧有效载荷中的 IP 数据包标头。有多种方法可以确定流量的优先级,从传入接口到 IP 地址、子网、TCP/IP 端口号等。最常用的可能是 DiffServ(差分服务)。这在数据包头的 8 位 DS 字段中使用 6 位差分服务代码点 (DSCP)。这允许更细化的优先级分类,理论上有 64 (2^6) 个不同的优先级级别。然而在实践中,大多数网络使用通常定义的每跳行为:
例如,可以在维基百科中找到更深入的描述流量优先级的工作原理。服务类型、服务等级、服务质量、802.1p 和 802.1Q 是很好的起点。
在加权公平排队等排队算法中,路由器/交换机/多路复用器如何知道将数据包放入哪个队列?
...例如,“分类到达”是如何工作的?
在接口上启用wfq 时,路由器会建立一个流表,并优先考虑低带宽流而不是高带宽流。通过对流进行优先级排序,将较低带宽的流分类到较高优先级的队列中;有关更多详细信息,请参阅Cisco 的 QoS 配置指南:
WFQ provides traffic priority management that automatically sorts among individual traffic streams without requiring that you first define access lists. WFQ can also manage duplex data streams such as those between pairs of applications, and simplex data streams such as voice or video. There are two categories of WFQ sessions: high bandwidth and low bandwidth. Low-bandwidth traffic has effective priority over high-bandwidth traffic, and high-bandwidth traffic shares the transmission service proportionally according to assigned weights. When WFQ is enabled for an interface, new messages for high-bandwidth traffic streams are discarded after the configured or default congestive messages threshold has been met. However, low-bandwidth conversations, which include control message conversations, continue to enqueue data. As a result, the fair queue may occasionally contain more messages than its configured threshold number specifies. With standard WFQ, packets are classified by flow. Packets with the same source IP address, destination IP address, source TCP or User Datagram Protocol (UDP) port, or destination TCP or UDP port belong to the same flow. WFQ allocates an equal share of the bandwidth to each flow. Flow-based WFQ is also called fair queueing because all flows are equally weighted.
还应该记住,在接口出现拥塞之前,QoS 规则永远不会生效。最后,如果可能,出于此问题中概述的所有原因,最好使用wred管理队列深度