0

tcp_fin()関数に問題があります。FINフラグを使用して着信TCPセグメントを処理する必要がありますが、トレースポイントを追加するとき、またはprintkこの関数の開始時に、このトレースポイントハンドラーが呼び出されることはありません(またはprintkからのメッセージもありません)。

私の行動:

  1. printkトレースポイントを追加またはtcp_fin()
  2. 新しいカーネルを構築して起動する
  3. 次のようなものを実行します。

    #!/bin/bash
    
    nflows=50
    
    on_int()
    {
        echo "$nflows skeeped"
        exit 0
    }
    
    trap 'on_int' INT
    
    while [ $nflows -ne 0 ]
    do
        iperf -n 5M -c X.X.X.X
        nflows=$(( $nflows - 1))
        echo "======================"
        echo $nflows
        echo "======================"
    done
    

その結果、の呼び出しを監視する必要がありますがtcp_fin()、何も起こりません。

4

1 に答える 1

0

数日前に書いたように、tcp_fin()は着信FINセグメントを処理しましたが、RFC-793とは対照的に、各接続は2つのFINセグメント(A-> B、B-> A)で終了しませんでした。そのため、場合によっては、発信FINのみがあり、それ以上はありません。

于 2012-04-19T08:22:13.977 に答える