Ci sono (almeno) due diverse informazioni che potreste desiderare: la quantità di dati che non è stata ancora inviata e la quantità di dati che è stata inviata ma non modificata.
Su Linux: SIOCOUTQ
è documentato per fornire la quantità di dati non inviati, ma in realtà fornisce la somma di (dati non inviati + dati inviati ma non dati ACK). A recent patch (Feb 2016) è stato possibile ottenere i dati non inviati effettivi dal campo tcpi_notsent_bytes
nella struttura TCP_INFO
.
su MacOS e iOS: getsockopt(fd, SOL_SOCKET, SO_NWRITE, ...)
è proprio come SIOCOUTQ
: è documentato per dare la quantità di dati inviati, ma in realtà dà la somma di (i dati non inviati + dati inviati-ma-non-ACK-DE). Non conosco alcun modo per ottenere informazioni più dettagliate.
Su Windows: GetPerTcpConnectionEStats
con l'opzione TcpConnectionEstatsSendBuff
fornisce sia i dati non inviati che i dati inviati ma non l'ACK as two separate numbers.
Non so come ottenere queste informazioni su altri sistemi operativi.
fonte
2016-10-23 19:52:55
Hai mai trovato una soluzione? –
No, TCP_INFO solo per Linux era accettabile per me. – darkk