IPV6连接到IPV4 TOS选项

时间:2017-01-20 12:48:44

标签: ios sockets ipv6 qos

你可以帮助我吗?

问题是QOS On IPV6 socket连接到IPV4服务器

我无法在包

上设置传输选项
self.socket = socket(PF_INET6, SOCK_DGRAM, 0); // Create UDP Socket
int on = 1;

setsockopt(self.socket, SOL_SOCKET, SO_NOSIGPIPE, (void *)&on, sizeof(int));

int off = 0;
        setsockopt(self.socket, IPPROTO_IPV6, IPV6_V6ONLY, (void *)(&off), sizeof(off)); // Disable IPV6 Only

int option = 46;
// set QOS option
setsockopt(self.socket, IPPROTO_IP, IP_TOS, (void *)(&option),sizeof(option));  // IPV4
setsockopt(self.socket, IPPROTO_IPV6, IPV6_TCLASS, (void *)(&option),sizeof(option)); //IPV6

但是当我看到IPV4 DSCP的包是0时

Client IPV4 DSCP

服务器向我发送正确的DSCP Server IPV4 DSCP

1 个答案:

答案 0 :(得分:2)

您的内核似乎没有实现IPv6 TCLASS到IPv4 DSCP的映射。

V6ONLY = 0选项主要是允许服务器在单个套接字上接受IPv4和IPv6连接的黑客攻击。我毫不奇怪只有最低限度的选项才能实现。

您最好的选择可能是联系内核开发人员,看他们是否想要实现映射......