0

我在使用tcp_fin()函数时遇到了问题。它应该处理带有 FIN 标志的传入 TCP 段,但是当我添加跟踪点或只是printk在此函数的开头时,此跟踪点处理程序永远不会调用(或没有来自 printk 的任何消息)。

我的行动:

  1. 添加跟踪点printktcp_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 相比,不是每个连接都由两个 FIN 段(A->B,B->A)结束。所以在某些情况下,我们只有传出的 FIN 而没有更多。

于 2012-04-19T08:22:13.977 回答