- このダイアグラムはLinuxネットワークスタックのすべての層と要素を視覚的に示しています
- 図には仮想化、Linuxコンテナ、エミュレーション、パラバーチャライゼーションなど、さまざまな仮想化技術が含まれています
- ネットワークソケットから**ネットワークスタック(上位:TCP, UDP / 下位:GRO, RPS, RFS, GSO)**まで、全体の層構造を網羅しています
# 主要構成要素
- ネットワークスタック
- ネットワークスタックの上位層(TCP, UDP)
- ネットワークスタックの下位層(GRO, RPS, RFS, GSO)
- ネットワークスケジューラ構成
- NetFilterとトラフィックコントロール
- ブリッジ、Bondインターフェース、Tapインターフェースなど、さまざまなネットワークインターフェースを含む
- デバイスドライバ
- NICで加速されるネットワーク機能
- チェックサムオフロード、VLAN、VxLAN、GRE、TSO、LRO、RSSなど
# 特徴と付加情報
- 各層は最適化のヒントと統計情報を併せて提供します
- ネットワークカードに至る全体的なフローを詳細に接続しています
- この図は「Operativni sustavi i računalne mreže - Linux u primjeni」教科書の一部として、専門的な参考資料として活用価値が高い
1件のコメント
Hacker Newsのコメント
このレベルの高い資料がもっと必要だと感じた。
私は何年も iptables をきちんと活用できなかった。
本を買ったり、ブログのさまざまな例も試してみたが、何がどう動いているのか理解できず、正しく使えなかった。
そのうち、パケットがカーネルを通過する過程を示す図(フローチャート)を見つけて、各ルールチェーンが適用される正確な順序と sysctl の値がどこで反映されるかが分かるようになった。
この図のおかげで、思い通りにルールを直接書けるようになり、動作と性能を考慮して適切なルールを選べるようになった。
1枚の図がまるで世界を変えるようで、最初の試行からきちんと動いた。
良い図の力がいかに強いかを体験した。
これはここにあるものか気になる
パケットがファイアウォールでどのルールに正確にヒットしたかをログに残す TRACE ターゲットも必ず言及したい
大規模ファイアウォールでは本当に必須のツールだ
その図を共有してくれるかどうか聞きたい
私も iptables の世界をきちんと体験してみたい
私も長い間 iptables を理解できなかった
それで FreeBSD と pf tables を知り、今ではネットワークエンジニアのように感じている
もちろん勉強には時間と労力がかかったが、学習がうまく噛み合い、だんだん積み上げながら学べた
誰でも実際に挑戦してみることを勧める
FreeBSD ファイアウォール関連の公式ドキュメントも参照に値する
最近では『The Book of PF』第4版という本も出版された
もし興味がある人がいれば、この図の作者が Linux ディスク I/O フロー図も作成していることを知らせたい
こちらでディスク I/O の図が確認できる
これらの図は、著者の本『Operativni sustavi i računalne mreže - Linux u primjeni』から始まっている
原典も公開されている
著者の卓越した、親切な仕事に拍手を送りたい
この本に英語版の翻訳があるのか気になる
ディスク I/O 図がとても優れている
共有してくれてありがとう、という気持ちを伝える
Linux Kernel map も本当に優れた資料なので、参考にしてほしい
[Linux Kernel map リンク](https://commons.wikimedia.org/wiki/File:Linux_kernel_map.png)
Hrvoje Horvat に、こうした詳細な図を作ってくれたことへの感謝を伝えたい
おかげでネットワークスタックの勉強が本当にずっと簡単になる気がする
著者の本『Operativni sustavi i računalne mreže - Linux u primjeni』は、クロアチア語を学ぶ価値が感じられるほどだ
本の刊行を祝うとともに、この貴重な貢献に改めて感謝する
本のリンク
著者の作業は信じられないほど素晴らしい
心から英語版の翻訳があればいいと思っている
本当に素晴らしい資料だと思う
もし誰かがこの図を自動生成する可視化ツールを開発できたなら、もっと盛り上がると思うが、現実的にはほぼ不可能に近いだろう
それでも Mermaid や PlantUML のようなツールはある程度似た領域を示せるし、PGF/TikZ は画像生成ではなくテキスト生成で挑戦してみる価値がある
コンテナ環境でも VM と同じように独自の TCP/IP スタックを使える点を付け加えたい
slirp4netns を使うと、コンテナは独自のネットワーキングを持ち、pasta を使うとカーネルの TCP/IP スタックを直接活用する
気になるならこちらの図を見ていただければ詳しい
私は特にネットワークスタックを正式に勉強してきたわけではないのに、何十年も Linux を使ってきたので、ほとんどのスタック構造に慣れていて不思議に思う
この図を SVG ファイルで見られるのか気になる
PDF にしか含まれておらず、読みにくいと感じる
簡略化された図である
実際には iptables や nftables までは入っていない