同じシステム上の2つのプロセス間に40 Gbps以上の速度で数時間のWebソケットトラフィックを送信するアプリケーションがあります。サーバーはシステム上の物理インターフェイスのIPアドレスにバインドされます。数時間後、受信側が十分に長い間SYNに応答できず、Webソケットが閉じました。
このようにローカルトラフィックの場合、パケットフローはどうなりますか?物理NICドライバに到達し、トラフィックがループバックインターフェイスをヘアピンします(アドレスは指定されていませんが、それでもローカルですが)。
このトラフィックはqueue、bpf、iptablesに達しますか?
答え1
私が知る限り、どのローカル割り当てIPアドレスが使用されているかに関係なく、すべてのローカルトラフィックはそのインターフェイスを通過lo
し、物理インターフェイスに到達しません。を使用してテストできますip route get 1.2.3.4
。1.2.3.4
ローカルアドレスはどこに表示され、表示する必要がありますdev lo
。
私は一般的なカーネルbpfとiptablesのパスがlo
適用されていると仮定していますが、それを直接チェックしませんでした。これはテストするのも簡単です(直接実行できます)。適切なiptablesルールまたはbpfプログラムを作成し、破損していることを確認してください。