加密数据只能由发送者和接收者读取,对吗?如果现在发送的数据都是加密的,QoS 如何确定数据的优先级?
答案1
一般来说,QoS 不会首先根据(加密的)数据来确定优先级,而是根据数据包头中的元数据来确定优先级。
无论加密发生在哪一层,数据包总是会保留一个最外层的报头,指示其来源和目的地——如果原始报头做过得到加密后,仍需在顶部添加一个新的加密,以便网络知道将数据包传送到哪里,并且以同样的方式 QoS 知道如何对其进行排队。
(如果你把 IP 数据包放在一个盒子里,你可以在盒子外面写上地址。如果你把所有这些都放进一个更大的盒子里,你就可以仍然将地址写在大盒子的外面。)
例如,TLS(与 HTTPS 一样)仅加密应用层数据(实际的 HTTP 请求),但诸如“TCP 目标端口 443”或“IP 目标地址 1.1.1.1”之类的参数必须保持未加密状态。相同的 IP 标头也是设置 QoS 的 DSCP 分类器的位置。
VPN 软件会加密整个 IP 数据包,但随后它们会被放入其他具有自己的源/目标的 IP 数据包。QoS 无法知道隧道内部的数据包类型,因此它只能根据外部标头进行分类。(但是,有些隧道会故意将“内部”DSCP 值复制到外部,以牺牲一些隐私为代价来帮助 QoS。)
即使像 MACsec 这样在以太网层工作的东西(甚至加密 IP 报头),以太网报头仍然未加密 – 并且指示以太网 QoS 类别的 802.1Q VLAN 标签也保持未加密状态。