Salut, ce comportement est normal, le nombre de tentative est était fixé par la clé de registre TcpMaxConnectRetransmissions
( https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc739819(v=ws.10)?redirectedfrom=MSDN#tcpmaxconnectretransmissions ). Cependant, ça semble déprécié depuis Windows 7 (malgré qu'un patch semble exister) :
The registry key TcpMaxConnectRetransmissions is no more supported since Windows Server 2008 / Windows Vista.
https://support.microsoft.com/en-us/topic/you-cannot-customize-some-tcp-configurations-by-using-the-netsh-command-in-windows-server-2008-r2-c1feebea-82a8-cb05-83c7-46ffb5fd9cec
Godrik à plutôt bien résumé la situation :
Soit tu trouve un workaround pour forcer Windows à utiliser une nouvelle valeur (genre cette classe WMI https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/settcpmaxdataretransmissions-method-in-class-win32-networkadapterconfiguration )
Soit en effet, tu utilise des raw sockets, cependant il y a pas mal de limitation sous Windows (https://docs.microsoft.com/en-us/windows/win32/winsock/tcp-ip-raw-sockets-2 ) mais si cela ne te bloque pas, c'est la solution idéale
Soit faire un driver, mais c'est plus compliqué et surtout il devra être signé si ton outil est amené à être partagé ( https://docs.microsoft.com/en-us/windows-hardware/drivers/install/kernel-mode-code-signing-policy--windows-vista-and-later- )
Dernière potentielle solution, tu peux astucieusement mettre en place un timeout de connexion afin de ne réaliser qu'un échange de paquet :
TcpMaxConnectRetransmissions
Data type: uint32
Access type: Read-only
Qualifiers: MappingStrings ("Win32Registry|SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters|TcpMaxConnectRetransmissions")
Number of times TCP attempts to retransmit a Connect Request before terminating the connection. The initial retransmission timeout is 3 seconds. The retransmission timeout doubles for each attempt. Default: 3, Valid Range: 0 - 0xFFFFFFFF.
Tu peux donc tenter de modifier le timeout des options de ton socket (TCP_MAXRT
et depuis Windows 10 TCP_MAXRTMS
)
https://github.com/nmap/nmap/issues/2113#issuecomment-683426090
N'hésite pas à nous tenir au courant