Sous Linux / Mac / Windows, est-il possible d’accéder à l’horodatage TCP et / ou au RTT dans l’espace utilisateur d’un socket TCP connecté? Je fais référence à l’horodatage TCP et au calcul RTT associé activé par la RFC 1323 . Évidemment, je pourrais utiliser un socket brut, mais le socket ne serait ni connecté ni capable d’envoyer des paquets TCP sur Windows (post XP Update 3, je crois).
Sous Windows (EstatsType = TcpConnectionEstatsFineRtt):
GetPerTcp6ConnectionEStats
GetPerTcpConnectionEStats
Sous Linux (tcp_info.tcpi_rtt):
Mesure des fenêtres de congestion TCP (getsockopt)
Sur Mac (xtcpcb64.t_srtt):
sysctl TCPCTL_PCBLIST pour acquérir la structure xtcpcb64
Je veux annexer plus d’informations.
Pour iOS / MacOSX, j’ai trouvé une autre méthode très similaire à Linux tcp_info
. C’est la struct tcp_connection_info
. Vous pouvez le trouver dans le usr/include/netinet/tcp.h
du usr/include/netinet/tcp.h
iOS / MacOSX xcode. Vous pouvez l’utiliser comme suit:
int length = sizeof(struct tcp_connection_info); getsockopt(socket_fd, IPPROTO_TCP, TCP_CONNECTION_INFO, (void *)info, (socklen_t *)&length);
Je l’ai testé sur iOS 10.2.