Iptables下的流控(ToS)
背景
当然,我们设置的 TOS 可能会被网络提供商忽略或重置,但至少在我们局域网内,路由器/交换机(支持QoS) 会为不同的数据提供不同的转发优先级。
TOS 值
十六进制 | 十进制 | 名称 |
---|---|---|
0x10 | 16 | Minimize-Delay |
0x08 | 8 | Maximize-Throughput |
0x04 | 4 | Maximize-Reliability |
0x02 | 2 | Minimize-Cost |
0x00 | 0 | Normal-Service |
OS bit manipulation
The classes of network service available are:
minimum delay
当数据需要使用最快的路径进行传输时使用此服务,如电话、ssh会话、telnet会话、在线视频等等。
maximum throughput
数据传输不关心延迟但关心网络路径的吞吐量时使用此服务,如web服务、ftp传输等等。
maximum reliability
当数据传输需要最大的可靠性时(减少数据重复传输)使用此选项,如简单网络管理协议,DNS等等。
minimum cost
当数据对延迟、宽带关心而关心“Money”时,使用此选项,以便网络中的路由器进行路径选择时使用花销最小的路径。
TOS 服务建议列表
TOS | ANDmask | XORmask | Suggested Use |
---|---|---|---|
Minimum Delay | 0x01 | 0x10 | ftp, telnet, ssh |
Maximum Throughput | 0x01 | 0x08 | ftp-data, www |
Maximum Reliability | 0x01 | 0x04 | snmp, dns |
Minimum Cost | 0x01 | 0x02 | nntp, smtp |
使用例子
- The general syntax used to match TOS bits looks like:
1
iptables -m tos --tos mnemonic [other-args] -j target
- The general syntax used to set TOS bits looks like:
1
iptables [other-args] -j TOS --set mnemonic
Reference:
- tos bit manipulation
- RFC1349