我在C中开发了一个网络流量分类程序。我使用5元组来确定流量。 5元组是:
但是,除了确定流量之外,我还必须决定流量关闭的时间。首先,我计划在TCP中使用FIN标志,但我有一个问题:
它可以是多个包,包括流中的FIN标志。我什么时候决定流量完全关闭?
其次,如果我要使用超时机制来确定流量是关闭/关闭的,那么时间阈值应该是多少?
答案 0 :(得分:1)
FIN
标志表示发件人已完成,将不再发送。另一方可以继续发送或关闭或不做任何事情。这被称为“半封闭”连接。一旦FIN
双向通过,连接就会“关闭”。
如果主机不想再接收,它只会完全断开连接,并且只对RST
响应所有传入的数据包。不过,如果没有先发送一个FIN
来表示关闭,那将是“糟糕的形式”。
至于超时...... TCP通常没有“空闲超时”。如果您指的是“无响应超时”,则取决于主机的配置。如果主机因超时而中止连接,则可能获得RST
。