【问题标题】:TCP Retransmissions in Socket Configuration套接字配置中的 TCP 重传
【发布时间】:2012-01-15 17:06:27
【问题描述】:

我在 C++ 中用作套接字(Winsock2 用于 windows,socket.h 用于 linux) 有没有办法将 TCP 重传配置为少于或多于默认值? 我的意思是:我知道有注册表项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
TCPMaxDataRetransmissions

我可以为所有应用程序配置它,但我只想将我的应用程序中的套接字配置为非默认值。

【问题讨论】:

    标签: c++ winapi sockets tcp registry


    【解决方案1】:

    我还没有尝试过,但我知道您可以设置一个 TCP_MAXRT 选项。刚刚在包含目录中快速搜索,我看到它在 Windows 的 ws2ipdef.h 中定义。

    int maxrt = 10;
    setsockopt(sock, IPPROTO_TCP, TCP_MAXRT, &maxrt, sizeof(maxrt));
    

    【讨论】:

    • 你知道我在哪里可以找到这个选项的微软文档吗?
    【解决方案2】:

    这里http://msdn.microsoft.com/en-us/library/windows/desktop/ee470551%28v=vs.85%29.aspx

    在备注部分你有很好的解释它是如何在不同版本的窗口上工作的。

    【讨论】:

    • 这如何回答我的问题?保持活力不是重传!
    • TCPMaxDataRetransmissions 是 keep-alive 的重试次数:在 Windows Vista 及更高版本上,keep-alive 探测(数据重新传输)的次数设置为 10,并且无法更改。在 Windows Server 2003、Windows XP 和 Windows 2000 上,keep-alive 探测数的默认设置为 5。keep-alive 探测数可通过 TcpMaxDataRetransmissions 和 PPTPTcpMaxDataRetransmissions 注册表设置进行控制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 2012-01-03
    • 2011-09-20
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    相关资源
    最近更新 更多