connect()调用数= TCP SYN段?

时间:2011-02-07 14:27:54

标签: networking

我可以运行系统调用日志记录实用程序。现在我看到的TCP SYN包的数量不等于我记录的connect()系统调用的数量?这可能是什么原因? 是否有其他系统调用内部调用connect?

1 个答案:

答案 0 :(得分:1)

有各种各样的原因。

如果connect()由于地址不可路由而失败,它可能根本不会生成SYN数据包(例如arp timeout)。同样,如果连接失败并出现其他一些错误(例如无效参数)。

SYN数据包可能会进入您未查看的界面(例如localhost)

内核将重试;如果没有对请求的回复,它将在最终返回超时之前再次尝试(可能是几次)。