09. networking: パケットはどう届くのか

09. networking: パケットはどう届くのか

Webサーバーを動かすなら、networkingの理解は必須です。

ここでは「curlがなぜ返るのか」をLinux内部の流れで見ます。

基本の流れ

1. アプリがsocketを作る

2. kernelのnetwork stackを通る

3. NICドライバからパケット送信

4. 受信側で逆順に処理

図解テキスト


nginx process
  -> socket()
  -> bind(0.0.0.0:80)
  -> listen()
  -> accept()

client packet
  -> NIC
  -> kernel net stack (IP/TCP)
  -> socket queue
  -> nginx worker

最低限おさえる用語

  • interface: eth0, ens5 など
  • routing: どの経路で送るか
  • port: アプリ識別子 (80, 443, 22)
  • state: ESTABLISHED, LISTEN など

手を動かす


ip addr
ip route
ss -ltnp | head -n 30
curl -I http://127.0.0.1

Docker/AWSで効くポイント

  • Dockerはnetwork namespaceやvethを使う
  • AWSではsecurity groupとOS側のlisten状態を両方確認する
  • 「疎通しない」は経路、ポート、プロセスの3点で切り分ける

つまり何なのか

networkingは魔法ではなく、kernelが管理するデータ配送システムです。

構造を知れば、接続障害を順序立てて調査できます。

今回理解できたこと

  • アプリ通信はsocket APIとkernel stackで成立する
  • 疎通調査はinterface、route、listenの確認が基本
  • nginx運用前にnetwork基礎を押さえる価値が高い

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です