跳转到内容

本地区域网络设计/IEEE 802 局域网中的服务质量

来自维基教科书,开放的书籍,开放的世界
Previous page
快速生成树协议
本地区域网络设计 Next page
链路聚合 - IEEE 802.3ad
IEEE 802 局域网中的服务质量

在流量转发中,当有限的资源导致提供的流量超过网络的处理能力,进而导致拥塞时,服务质量就变得至关重要。

通常,局域网是过度配置的,因为扩展网络比实施服务质量要便宜得多。在最坏的情况下,信道占用率仅为可用带宽的 30%-40% 。因此,由于没有拥塞,似乎不需要服务质量。

在某些可能的情况下可能会出现问题

  • 骨干网没有很好地配置: 在骨干网中具有缓冲区过小的网桥可能会导致微型拥塞在上行链路上出现,这些拥塞不是持续的,而是由于客户端流量的极端突发性而变得频繁且短暂(微型);
  • 从多个客户端向单个服务器传输数据: 作为单个接入点到服务器的网桥,其缓冲区过小,可能会导致持续的拥塞,因为多个客户端同时访问;
  • 从快速服务器向慢速客户端传输数据: 慢速客户端(在链路速度、CPU 能力等方面)可能会导致临时拥塞在客户端本身出现,因为它无法处理来自快速服务器的流量。

服务质量是一个潜在的良好功能,但也有禁忌,使其必要性并不那么强:服务质量只是解决网络效率问题的众多问题之一,而且它带来的改进往往不被最终用户感知。

IEEE 802.1p

[编辑 | 编辑源代码]

IEEE 802.1p 标准定义了 8 个服务等级,称为优先级等级,每个等级都被分配到不同的(逻辑)队列。

帧可以在 VLAN 标签的“优先级代码点”(PCP)字段中标记特定服务等级: 虚拟局域网#帧标记[1] 该标准还提供了选择所需优先级调度算法的能力:循环轮询、加权循环轮询、加权公平队列。

最好让源在应用层进行标记,因为只有源确切地知道流量类型(语音流量或数据流量),但大多数用户会将所有数据包声明为高优先级,因为他们不会诚实。因此,标记需要由受提供商控制的接入网桥执行。然而,对于网桥来说,识别流量类型非常困难,这使得网桥变得非常昂贵,因为它需要上升到应用层,并且可能无法处理加密流量。因此,可以从两个方面简化网桥的区分

  • 按端口标记: PC 连接到一个端口,电话连接到另一个端口,因此网桥可以根据输入端口标记流量;
  • 边缘设备标记: PC 连接到电话,电话连接到网桥。所有来自 PC 的流量都经过电话,电话将流量标记为数据流量,而它将自己的流量标记为语音流量。

该标准建议每个优先级级别应该分配给哪种类型的流量(例如,6 = 语音流量),但允许更改这些关联。这可能导致不同供应商之间出现互操作性问题。

IEEE 802.3x

[编辑 | 编辑源代码]

802.3x 标准在以太网层实现了流量控制,除了 TCP 层现有的流量控制之外:对于给定的链路,如果下游节点(网桥或主机)的缓冲区已满,它可以向链路另一端的上游节点发送暂停数据包,要求其停止该链路上的数据传输一段时间,称为暂停时间,以“暂停量”表示(1 量 = 传输 512 位所需的时间)。因此,上游节点会将暂停时间内到达的数据包存储到其输出缓冲区中,并在下游节点的输入缓冲区准备好接收其他数据包时发送它们。这样,数据包不再因缓冲区拥塞而丢失。

存在两种流量控制模式

  • 非对称模式: 只有一个节点发送暂停数据包,另一个节点只接收数据包并停止传输;
  • 对称模式: 链路两端的节点都可以发送和接收暂停数据包。

每个节点都可以配置流量控制模式,但自动协商阶段必须确定实际配置,以确保在链路两端的节点上选择的模式一致。

发送暂停数据包可能在骨干网中出现问题。

在骨干网中发送暂停数据包可能出现问题:具有已满缓冲区的网桥只能停止与之直接连接的链路上的流量,但如果上游路径中的中间网桥由于缓冲区更大而没有感觉有必要发送暂停数据包,则它无法“停止”发送过多数据包的主机。直到接入网桥反过来向相关主机发送暂停数据包,网络才会对所有其他不负责此问题的主机出现阻塞。因此,由非接入网桥发送的暂停数据包没有能力选择要降低速度的超额流量以减慢相关主机,但它们会影响来自所有主机的信息。

这就是建议在骨干网中禁用流量控制,仅在接入网桥和主机之间使用暂停数据包的原因。通常选择非对称流量控制模式,其中只有主机可以发送暂停数据包:通常,接入网桥的缓冲区足够大,许多商用网桥接受来自主机的暂停数据包,阻止相关端口上的数据传输,但它们不能发送数据包。

但是,发送暂停数据包对主机也可能存在问题,因为它可能在操作系统的内核中触发死锁:慢速主机的 CPU 忙于处理来自 NIC 接口的数据包,以至于无法找到时间发送暂停数据包。因此,数据包会在 RAM 中累积,导致 RAM 饱和。

参考文献

[编辑 | 编辑源代码]
  1. 存在两个用于服务质量的标记字段,一个在数据链路层,另一个在网络层:
    • “优先级代码点”(PCP)字段,由 IEEE 802.1p 标准使用,位于以太网帧的报头中;
    • “区分服务代码点”(DSCP),由区分服务(DiffServ)架构使用,位于 IP 数据包的报头中,特别是 IPv4 报头的“服务类型”字段和 IPv6 报头的“优先级”字段中。
Previous page
快速生成树协议
本地区域网络设计 Next page
链路聚合 - IEEE 802.3ad
IEEE 802 局域网中的服务质量
华夏公益教科书