在IP頭中,有一Type-of-Service字段,該字段描述了IP包的優先級和QoS選項,使用IP_TOS可以來設定該字段的值,以區分不同服務的優先級,Linux 中可以用Man 手冊有ip_tos的說明:
IPTOS_LOWDELAY 用來為交互式通信最小化延遲時間, IPTOS_THROUGHPUT 用來優化吞吐量, IPTOS_RELIABILITY 用來作可靠性優化, IPTOS_MINCOST 應該被用作"填充數據",對於這些數據,低速傳輸是無關緊要的.至多只能聲明這些 TOS 值中的一個.其它的都是無效的,應當被清除.缺省時,Linux首先發送 IPTOS_LOWDELAY 數據報, 但是確切的做法要看配置的排隊規則而定. 一些高優先級的層次可能會要求一個有效的用戶標識 0 或者 CAP_NET_ADMIN 能力.
這個選項在voip實踐中可以用於提高rtp數據包的優先級。就是用setsockopt在某個socket上設置 ip_tos。
注意:對於這篇博客的說明需要進一步確認上,其涉及到QOS,是否與路由器/交換機有關系?