エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
自作IPルーター実装時に「Message too long」はなぜ起きたのか ― Linux / AF_PACKET / GRO・GSO が生む“見えない巨大パケット”の正体 ― - Code Day's Night
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
自作IPルーター実装時に「Message too long」はなぜ起きたのか ― Linux / AF_PACKET / GRO・GSO が生む“見えない巨大パケット”の正体 ― - Code Day's Night
PHPのsocket拡張を使ってLinuxで動作するIPルーターを自作しています。 実機で動作確認している際に、デ... PHPのsocket拡張を使ってLinuxで動作するIPルーターを自作しています。 実機で動作確認している際に、データーを転送したところで「Message too long」のエラーがたまに出ていました。 今回はその原因を探った記事です。 今回の環境は次のようになっています。Host AとBは異なるサブネットに属していて、その間に自作のIPルーターを置いています。 Host A -> 自作IP Router -> Host B TL;DR ワイヤ上(LANケーブル)では MTU 1500 の正常な Ethernet フレーム Linux カーネル内部で GRO/GSO により TCP 単位で合体 AF_PACKET は 合体後の巨大 skb をそのまま渡す それを別 NIC に L2 で書き戻そうとして EMSGSIZE(Message too long) が発生 1. 発端:Messag

