Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测对等方是否正在使用TCP keepalives(Windows)_Windows_Sockets_Tcp_Keep Alive - Fatal编程技术网

检测对等方是否正在使用TCP keepalives(Windows)

检测对等方是否正在使用TCP keepalives(Windows),windows,sockets,tcp,keep-alive,Windows,Sockets,Tcp,Keep Alive,是否有可能查明或得到通知,您所连接的对等方是否正在使用TCP keepalives 此外,在发送keepalive时是否需要得到通知 在内核驱动程序中不使用包级过滤 我们有一个插件代理,客户希望将客户机的keepalives转发到服务器。目前,我认为我们最好的选择是允许在服务器端连接上设置keepalives,但我想检查是否有人知道检测客户端行为的方法,以便更接近keepalives的中继 谢谢 是否可以确定或通知您所连接的对等方是否正在使用TCP keepalives 不。TCP keepal

是否有可能查明或得到通知,您所连接的对等方是否正在使用TCP keepalives

此外,在发送keepalive时是否需要得到通知

在内核驱动程序中不使用包级过滤

我们有一个插件代理,客户希望将客户机的keepalives转发到服务器。目前,我认为我们最好的选择是允许在服务器端连接上设置keepalives,但我想检查是否有人知道检测客户端行为的方法,以便更接近keepalives的中继

谢谢

是否可以确定或通知您所连接的对等方是否正在使用TCP keepalives

不。TCP keepalive不使用协议扩展。它只是以一种特定的方式使用现有的协议,以引起响应

此外,在发送keepalive时是否需要得到通知

否。无法将TCP keepalive段标识为该段

在内核驱动程序中不使用包级过滤

即使你这样做也不行

我们有一个插件代理,客户希望将客户机的keepalives转发到服务器

你的客户被误导了

目前,我认为我们最好的选择是允许在服务器端连接上设置keepalives

但我想检查是否有人知道一种检测客户行为的方法,这样就可以更接近地传递keepalives


不可能。

基本上是我得出的结论。然而,我相信,如果跟踪序列号来识别一个空的ACK,序列号表示一个keepalive(SEG.SEQ=SND.NXT-1),那么在数据包级别应该是可能的。但我不会那么做。谢谢@Adrien问题是,发送TCP可以在它喜欢的任何时候这样做,而不仅仅是为了保持生命。不太可能,但可以。这就是我所说的“无协议扩展”的意思。明白了,尽管我只能想到一个目的,这将是一个保留:)-最终区别可能并不重要。