タグ

ブックマーク / wiki.bit-hive.com (2)

  • sk_buff - Linuxカーネルメモ

    3. その他のデータ構造 3.1 frags配列 skb_shared_info内のfrags配列がある。この配列を使用することで、パケットデータを非連続な領域に分断して保持することができる。fragsを使用した状態のsk_buffを図3.1に示す。 ただし、このようにfragsパケットデータを分断して持つ形式はネットワークカード(とそのドライバ)がScatter/gather I/O(*1)に対応していないと使えない。Scatter/gather I/Oに対応しているとデバイスにNETIF_F_SGフラグが設定されているので、送信デバイスにこのフラグが立っている場合のみ、このような形式を使う。 frags配列の要素はskb_frag_structとなっており(ポインタではなくそのもの)、これは、分断されたデータがどこにあるかを管理する。 skb_frag_structはデータが置かれてい

    morioka
    morioka 2015/07/06
  • アドレス解決プロトコル - Linuxカーネルメモ

    IPアドレスに対応するハードウェアアドレス(MACアドレス)を解決するプロトコルとしてIPv4ではARP、IPv6ではNDPがある。Linuxではこれらのアドレス解決プロトコルのために汎用的に使えるルーチン、データ構造を用意している。 アドレス解決プロトコルは近隣のノードのMACアドレスを解決するものなので、実装ではNeighbour(近隣)という用語が使われている。 データ構造 アドレス解決プロトコルに関するデータ構造を図1に示す。 ARP,NDPなどのアドレス解決プロトコルではプロトコル毎に管理テーブル(struct neigh_table)がある。ARPはarp_tbl,NDPはnd_tblがそれぞれのstruct neigh_tableを指している。このテーブルには、エントリ管理のためのハッシュテーブルや各プロトコルのタイマ値などが格納されている。エントリ管理のためのハッシュテーブ

    morioka
    morioka 2009/06/16
  • 1