2011-11-24 8 views
19

私はいくつかのアプリケーションでIPv6のサポートを実装することに取り組んでいますが、私はこれら2つのフィールドが何であるのか疑問に思いました。これについての質問はあまりありませんので、私はそれが正しいと確信していません。スコープID(sin6_scope_id)についてIPv4クライアント/サーバアプリケーションでのIPv6サポートの追加 - sin6_flowinfoおよびsin6_scope_idフィールド?

  • - だけでなく、Q1Q2Q3Q4は私にスコープIDについての考えを与えたと私はそれを得ると思います。ですから、scope-idを構成可能にするために、もう1つのconfigパラメータを追加する必要があります。 (私は誰かがこれに興味がある場合に備えて、これをここに追加することにしました)。同一のIPを持つがインターフェースIDが異なる複数のインターフェースが存在する可能性があるため、どのデバイスがトラフィックを処理すべきかを一意に決定するためには、短期間のスコープIDが必要です。ここまでは順調ですね。
  • しかし、どのようにについての "情報フロー"(sin6_flowinfo
    • のためにそれを何ですか?私はそれについて興味深いものを見つけることができませんでした。私はRFCを読むが、それはまったく役に立たなかった。
    • sin6_flowinfo(フラグなどのいくつかの値のようなもの)、またはsin6_scope_idのような値がありますか。デバイスに応じて、接続しようとしていますか? (もし
    • は、私は全くそれを心配すべきか、私はちょうど0Beej's Guide to Network Programmingのようにそれを残す私の。とはい、私はそれが動作する、ことを試みたが、私はそれがこの場合のみ動作するかどうかわからないんだけどそれは何らかのネットワーク設定に依存します)、またはそれが常に動作するでしょうか?
    • それは設定可能にする必要があります。つまり、もう1つの設定オプションを追加して、ユーザが値を定義できるようにしますか?
    • google -ing "sin6_flowinfo"は私に構造体の定義とマニュアルページを提供しますが、このフィールドについては何も役立たないでしょう興味深い情報源(理解できないものはありませんRFC:D)

EDITは:RFC: IPv6 Flow Label SpecificationIETF draft: Flow Label as Transport-Layer NoncePractical guide for solariswikipedia:まあ、sin6_flowinfoは時代遅れであり得ることを@glglglの答えやヒントの後、後、私はいくつかの興味深い情報源を発見しました。
フィールドは廃止されていません(またはこれを確認することができませんでした)が、値が十分であるため0のように見えます。

+1

ダウンボトムに関する解説を削除しました。これは完全に良い質問ですが、心配しないでください。 – caf

答えて

6

getaddrinfo()を使用することをお勧めします。

擬似コード:

struct addrinfo *restrict hints = { .ai_family = AF_UNSPEC, .ai_socktype = SOCK_STREAM }; 
struct addrinfo * res, r; 
if (0 == getaddrinfo("foo.bar.baz", "http", &hints, &res)) { 
    for (r=res; r; r=r->ai_next) { 
     sock = socket(r->ai_family, r->ai_socktype, r->ai_protocol); 
     connect(sock, r->ai_addr, r->ai_addrlen); 
     if error: continue 
     break 
    } 
} 
freeaddrinfo(res); 

これはあなたからsin6_scope_id心配がかかります。通常は0ですが、fe80::1234:56ff:fe78:9abc%eth2のようなリンクローカルアドレスがある場合を除きます。このeth2は正しいスコープIDに変換されます。

sin6_flowinfoは、廃止(AFAIK)されており、結果としてには0が設定されています。

+0

私はこのオプションを知っており、追加しましたが、すべてのオプションを手動で設定する可能性を追加したいと考えています。そして、私は 'sin6_flowinfo'に立ちました。後で 'sin6_flowinfo'についてのリンクを読むつもりですが、時代遅れで、' 0'のままにすれば完璧です。もう一度感謝:) –

+0

まあ、関連するソースを見つけることができませんでした。これは廃止されましたが、私は '0'値に同意します。私は自分の質問を投稿して、あなた自身を投稿するのではなく、自分の投稿を投稿する興味深いリンクを見つけました。助けてくれてありがとう。 –

+1

@KirilKirovあなたは正しい:それは時代遅れの反対である:彼らはそれをどうしたらいいのかまだ分かっていない;-) – glglgl

関連する問題