【发布时间】:2012-02-02 22:17:38
【问题描述】:
我有一个场景,客户端在设置一些 IP TOS 值(setsockopt(.., IP_TOS, ..))后打开与服务器的 TCP 连接。在服务器上,我想检索接收到的 TOS 值并将其设置在套接字上,以便接收到的 TOS反映在服务器-客户端数据包上。
问题是,在服务器端,如何检索从客户端接收到的 TOS 值?我可以假设客户端在整个会话期间不会更改 TOS 值,因此最初获取和设置一次 TOS 值就足够了。
设置IP_RECVTOS 并使用辅助数据适用于 UDP,但不适用于 TCP 套接字。如何在 TCP 套接字上实现类似的功能? getsockopt(2) 与 SO_PRIORITY 或 IP_TOS 返回本地套接字上的配置值。因此,如果我在本地执行 setsockopt(),那么 getsockopt() 会反映该值。它没有反映网络上收到的内容。
【问题讨论】:
-
只是想知道,但您为什么要让远端配置选项更改您的出站流量优先级?
-
ToS 已经被 DSCP 取代很长时间了。
标签: c++ c sockets networking