遅れたので、P514-P521は落としてます。ピンとこない仕様の話が多いらしい
P.514(12.1.2 通信プロトコル)
リンク層
http://www.gailogic.co.jp/ss/sslink.html
プロミスカスモード
データのストライピング
watching timer関数 統計情報の収集や信頼性の低いハードウェアを監視する
12.2 ソケットとプロトコル間のインターフェース
ユーザ要求関数が存在する。
P514より抜粋
pru=protocol userの略 プロトコルユーザ要求の意
それぞれの要求関数(なまら長い)
- pru_attach()
- pru_detatch()
- pru_bind()
- pru_listen()
- pru_connect()
- pru_accept()
- pru_disconnect() pru_shutdown()との違いが分からない
- pru_shutdown()
- pru_rcvd() れしーぶでーたの略か
- pru_send()
- pru_abort()
- pru_control()
- pru_sense()
- pru_rcvoob() 帯域外データの受信
- pru_sockaddr()
- pru_peeraddr()
- pru_connect2() パイプっぽい
- pru_fasttimo()
- pru_slowtimo()
P495より
12.2.2 プロトコル制御出力関数
1-3行目。関数の型が書いてあるだけ。擬似コードと思われる。5行目 列挙型 7行目 構造体
関数を呼び出すときに構造体に値を入れておく。
制御出力関数 pr_ctloutput
自分で分からない要求があったら下の層に投げる。
12.3 プロトコル間インターフェース
IPv4のデータをIPv6に変換するとかは少しむずかしい。
中に他のドメインの通信を入れる
12.3.1 pr_output
それぞれのプロトコルは、出力関数に対して異なる呼び出し形式を持っている。
12.3.1 pr_output
プロトコル出力関数
P527
12.3.2 pr_input
プロトコル入力関数
P527
12.3.3 pr_ctlinput
制御情報の伝達
P528
本がすごく不親切
12.4 プロトコルとネットワークインターフェース間のインターフェース
プロトコルファミリを構成する一連のプロトコルの間で最低位の層は、パケットを送受信するために1つあるいはそれ以上のネットワークインターフェースを取り扱う必要がある。
cf. P513 ネットワークコードを通るパス
- 内向き
- 外向き
- 転送
- エラー
12.4.1 パケットの送信
- インターフェースの選択
- ifpを取得
- 整形済みのネットワークレベルのパケットを呼び出す
P530
12.4.2 パケットの受信
ネットワークインターフェースはパケットを受信したあとにリンク層プロトコルヘッダ内の情報にしたがってそのパケットを適切なネットワーク層プロトコルに転送する
パケットキューを操作するためにいくつかマクロを用意している
出力関数のコード
パケットをキューに挿入
もう何がなんだか…
Linuxはドライバが専用のスレッドを持っていなかった。
12.5 経路制御
ネットワークシステムはヘテロジニアスなネットワーク環境を想定して設計
第523回:ヘテロジニアスネットワーク とは - ケータイ Watch
- ゲートウェイ
- ルータ
フォワーディング自体は、送信先を決定しているだけの単純なもの。
12.5.1 カーネルルーティングテーブル
カーネルの経路制御機構(外部ポリシーを定義するユーザレベルプロセスによって提供される経路制御関連機構のこと)は第一ホップ経路を判断するためのルーティングテーブルを実装する。
ブラックホール経路
CentreCOM 8948XL コマンドリファレンス: IP/経路制御
ラウンドトリップタイム
パスMTU
【基礎から応用まで】Road to ネットワークスペシャリスト
メトリックとは 【 metric 】 - 意味/解説/説明/定義 : IT用語辞典
MTU