标签: retransmit-timeout

什么时候TCP连接被认为是空闲的?

我需要在任何连接上启用TCP keepalive,现在我正在努力处理测试用例的结果.我想这是因为我真的不明白第一次发送keepalive探测器的时间.我tcp_keepalive_time在Linux 的文档中阅读了以下内容:

发送的最后一个数据包(简单的ACK不被认为是数据)和第一个keepalive探针之间的间隔; 在连接被标记为需要保持连接后,此计数器不再使用

其他一些消息来源表示这是连接空闲的时间,但它们没有进一步定义这意味着什么.我还调查了史蒂文斯找到一个更正式的定义,因为我想知道"最后发送的数据包"在考虑重传时实际意味着什么.

在我的测试用例中,我有一个连接,其中数据仅以相当高的速率从服务器发送到客户端.为了测试keepalive,我们拔掉了客户端网卡上的电缆.我现在可以看到网络堆栈尝试发送数据并进入重传状态,但是没有发送保持活动探测.在重传期间不发送保持活动探测是否正确?

sockets linux tcp keep-alive retransmit-timeout

12
推荐指数
1
解决办法
1万
查看次数

如何在 C 中嗅探数据包时查找 TCP 重传

我写了一个简单的源文件,它可以使用 C 中的 libpcap 库读取 pcap 文件。我可以一个一个地解析数据包并分析它们。我希望能够推断出我解析的 TCP 数据包是否是 TCP 重传。在广泛搜索网络后,我得出结论,为此,我需要跟踪流量行为,这意味着还要分析以前收到的数据包。

我真正想要实现的是,在基本层面上,tcp.analysis.retransmission过滤器在wireshark中所做的事情。

这是一个 MRE,它读取 pcap 文件并分析通过 IPv4 发送的 TCP 数据包。该功能find_retransmissions是分析数据包的地方。

#include <pcap.h>
#include <stdio.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <net/ethernet.h>
#include <string.h>

void process_packet(u_char *,const struct pcap_pkthdr * , const u_char *);
void find_retransmissions(const u_char * , int );

int main()
{
    pcap_t *handle;
    char errbuff[PCAP_ERRBUF_SIZE];
    handle = pcap_open_offline("smallFlows.pcap", errbuff);
    pcap_loop(handle, -1, process_packet, NULL);
}

void process_packet(u_char *args,
                    const struct pcap_pkthdr * …
Run Code Online (Sandbox Code Playgroud)

c tcp pcap libpcap retransmit-timeout

5
推荐指数
1
解决办法
2024
查看次数

Windows如何确定将哪个设置/模板(Internet vs Datacenter)应用于TCP连接?

为了全局配置最小RTO; 延迟Ack超时; Windows 7及以上版本的拥塞算法等应该使用网络TCP模板.要查看那些可以使用Get-NetTCPSetting powershell cmdlet:

PS C:\Users\Administrator> Get-NetTCPSetting

(...)

SettingName                   : Datacenter
MinRto(ms)                    : 20
InitialCongestionWindow(MSS)  : 4
CongestionProvider            : DCTCP
CwndRestart                   : True
DelayedAckTimeout(ms)         : 10
MemoryPressureProtection      : Enabled
AutoTuningLevelLocal          : Normal
AutoTuningLevelGroupPolicy    : NotConfigured
AutoTuningLevelEffective      : Local
EcnCapability                 : Enabled
Timestamps                    : Disabled
InitialRto(ms)                : 3000
ScalingHeuristics             : Disabled
DynamicPortRangeStartPort     : 49152
DynamicPortRangeNumberOfPorts : 16384

SettingName                   : Internet
MinRto(ms)                    : 300
InitialCongestionWindow(MSS)  : 4
CongestionProvider            : CTCP
CwndRestart                   : False
DelayedAckTimeout(ms)         : 50
MemoryPressureProtection      : Enabled
AutoTuningLevelLocal …
Run Code Online (Sandbox Code Playgroud)

windows networking tcp retransmit-timeout

4
推荐指数
1
解决办法
3866
查看次数

标签 统计

retransmit-timeout ×3

tcp ×3

c ×1

keep-alive ×1

libpcap ×1

linux ×1

networking ×1

pcap ×1

sockets ×1

windows ×1