Es gibt (mindestens) zwei verschiedene Informationen, die Sie möglicherweise wünschen: die Menge der Daten, die noch nicht gesendet wurden, und die Menge der Daten, die gesendet, aber nicht bestätigt wurden.
Unter Linux: SIOCOUTQ
ist dokumentiert, um die Menge der nicht gesendeten Daten zu geben, aber gibt tatsächlich die Summe von (ungesendeten Daten + send-but-not-ACK-ed Daten). A recent patch (Feb 2016) machte es möglich, die tatsächlichen nicht gesendeten Daten aus dem tcpi_notsent_bytes
Feld in der TCP_INFO
Struktur zu erhalten.
Auf macOS und iOS: getsockopt(fd, SOL_SOCKET, SO_NWRITE, ...)
ist wie SIOCOUTQ
: es dokumentiert ist die Menge der noch nicht gesendeten Daten zu geben, aber tatsächlich gibt die Summe von (nicht gesendete Daten + gesendet-but-not-ACK-ed-Daten). Ich kenne keine Möglichkeit, detailliertere Informationen zu erhalten.
Unter Windows: GetPerTcpConnectionEStats
mit der Option TcpConnectionEstatsSendBuff
erhalten Sie sowohl nicht gesendete Daten als auch Daten, die gesendet, aber nicht bestätigt wurden as two separate numbers.
Ich weiß nicht, wie Sie diese Informationen auf anderen Betriebssystemen erhalten.
Haben Sie jemals eine Lösung gefunden? –
Nein, Linux-only TCP_INFO war für mich akzeptabel. – darkk