2017-01-20 8 views
0

あなたは私を助けることができますか?IPV4 TOSオプションへのIPV6接続

だから、問題は、それが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

であることができないIPV6ソケットにQOSです

Client IPV4 DSCP

Serverは、私に正しいDSCPを送る Server IPV4 DSCP

答えて

2

カーネルがIPv6 TCLASSからIPv4 DSCPへのマッピングを実装していないようです。

V6ONLY = 0オプションは、サーバーが単一のソケットでIPv4とIPv6の両方の接続を受け入れることができるようにするためのハックです。私は僅かなオプションしか実装されていないことに驚くことはありません。

あなたの最良のオプションは

+0

...彼らはマッピングを実装するかどうかを確認するためにカーネル開発者に連絡することをおそらくTNX、その場合にはiPhone –

+0

でこのIOSプラットフォームアプリの実行カーネルの開発者は、Apple、幸運です彼らに連絡する... :( –

関連する問題