♨️

パケット処理とは

に公開

L2ヘッダを張り替える行為

IPヘッダの宛先IPは書き換えない
各ホップでやっているのは宛先IPを見て FIBを引く
次ホップを決める
L2(Ethernet)ヘッダの宛先MACを書き換える

次ホップIPは
パケットに入らない
MACアドレス解決のために一瞬使われて消える情報


NICは受信した物理信号を 0/1 に復元し、

DMAを使って直接ホストのメモリ(RAM)に書き込む

CPUはコピー処理をしない

書き込み先は:

特別なハードではなく

普通のRAMの一部をOSが「DMA用」として指定した領域

(DMAバッファ / RXバッファ)

DMAは

メモリ領域ではなく

「デバイスがCPUを介さずRAMにアクセスする仕組み」

[ NIC ]
↓ 物理信号 → ビット列
↓ DMA
[ RAM(DMAバッファ) ]

[ カーネル ]

  • パケットとして解釈
  • 宛先IPを見る
  • FIBを引く
  • 次ホップ決定

    L2ヘッダを書き換え

    [ NIC ] → 次ホップへ送信

Discussion