-
Notifications
You must be signed in to change notification settings - Fork 45
TCP_INFOvsWeb100Web10g
Investigate the possible use of TCP_INFO instead of web100/web10g.
struct tcp_info
{
u_int8_t tcpi_state;
u_int8_t tcpi_ca_state;
u_int8_t tcpi_retransmits;
u_int8_t tcpi_probes;
u_int8_t tcpi_backoff;
u_int8_t tcpi_options;
u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
u_int32_t tcpi_rto;
u_int32_t tcpi_ato;
u_int32_t tcpi_snd_mss;
u_int32_t tcpi_rcv_mss;
u_int32_t tcpi_unacked;
u_int32_t tcpi_sacked;
u_int32_t tcpi_lost;
u_int32_t tcpi_retrans;
u_int32_t tcpi_fackets;
/* Times. */
u_int32_t tcpi_last_data_sent;
u_int32_t tcpi_last_ack_sent; /* Not remembered, sorry. */
u_int32_t tcpi_last_data_recv;
u_int32_t tcpi_last_ack_recv;
/* Metrics. */
u_int32_t tcpi_pmtu;
u_int32_t tcpi_rcv_ssthresh;
u_int32_t tcpi_rtt;
u_int32_t tcpi_rttvar;
u_int32_t tcpi_snd_ssthresh;
u_int32_t tcpi_snd_cwnd;
u_int32_t tcpi_advmss;
u_int32_t tcpi_reordering;
};
You can find this structure in:
/usr/include/netinet/tcp.h
tcpi_state; /* Possible value:
TCP_ESTABLISHED = 1,
TCP_SYN_SENT,
TCP_SYN_RECV,
TCP_FIN_WAIT1,
TCP_FIN_WAIT2,
TCP_TIME_WAIT,
TCP_CLOSE,
TCP_CLOSE_WAIT,
TCP_LAST_ACK,
TCP_LISTEN,
TCP_CLOSING */
tcpi_ca_state; /* Congestion control state */
tcpi_retransmits; /* Number of unrecovered [RTO] timeouts */
tcpi_probes; /* Unanswered 0 window probes */
tcpi_backoff; /* Backoff */
tcpi_options;
tcpi_snd_wscale /* Window scaling received from sender */
tcpi_rcv_wscale /*Window scaling to send to receiver*/
tcpi_rto; /* Retransmit timeout */
tcpi_ato; /* Predicted tick of soft clock */
tcpi_snd_mss; /* Cached effective mss, not including SACKS*/
tcpi_rcv_mss; /* MSS used for delayed ACK decisions */
tcpi_unacked; /* Packets which are "in flight" */
tcpi_sacked; /* SACK'd packets */
tcpi_lost; /* Lost packets */
tcpi_retrans; /* Retransmitted packets out */
tcpi_fackets; /* FACK'd packets */
tcpi_last_data_sent; /* now – lsndtime (lsndtime → timestamp of last sent data packet (for restart window)) */
tcpi_last_ack_sent; /* Not remembered, sorry. */
tcpi_last_data_recv; /* now – isck_ack.lrcvtime (isck_ack ->Delayed ACK control data; lrcvtime → timestamp of last received data packet) */
tcpi_last_ack_recv; /* now - rcv_tstamp (rcv_tstamp → timestamp of last received ACK (for keepalives)) */
tcpi_pmtu; /* Last pmtu seen by socket (Path Maximum Transmission Unit) */
tcpi_rcv_ssthresh; /* slow start size threshold for receiving (Current window clamp) */
tcpi_rtt; /* Smoothed Round Trip Time (SRTT) */
tcpi_rttvar; /* Medium deviation */
tcpi_snd_ssthresh; /* Slow start size threshold for sending */
tcpi_snd_cwnd; /* Sending congestion window */
tcpi_advmss; /* Advertised Maximum Segment Size (MSS) */
tcpi_reordering; /* Indicates the amount of reordering. Packet reordering metric */
tcpi_rcv_rtt; /* Receiver side RTT estimation */
tcpi_rcv_space; /* Receiver queue space */
tcpi_total_retrans; /* Total retransmits for entire connection */
TCP_INFO structure is filled in the tcp_get_info() function.You can find it in kernel source:
/lib/modules/`uname -r`/build/net/ipv4/tcp.c
Most of the data is copied from tcp_sock and inet_connection_sock structure.
tcp_sock struct you can find in:
/lib/modules/`uname -r`/build/include/linux/tcp.h
or
/lib/modules/`uname -r`/build/include/net/tcp.h
inet_connection_sock structure is in:
/lib/modules/`uname -r`/build/include/net/inet_connection_sock.h
second column: equivalent variables in Web100/10g or how it's calculated
third column: equivalent variables in TCP_INFO
UI | Web100/10g variables | TCP_INFO |
---|---|---|
status | - | - |
diagnosis | ||
errmsg | - | - |
host | - | - |
ClientToServerSpeed | - | - |
ServerToClientSpeed | - | - |
avgrtt | SumRTT / CountRTT | tcpi_rtt? |
Jitter | MaxRTT – MinRTT | tcpi_rttvar? |
CurRwinRcvd | CurRwinRcvd | |
MaxRwinRcvd | MaxRwinRcvd | |
loss | CongestionSignals / PktsOut | tcpi_lost |
MinRTT | MinRTT | - |
MaxRTT | MaxRTT | - |
Waitsec | (CurRTO * Timeouts) / 1000 |
|
CurRTO | CurRTO | |
SACKsRcvd | SACKsRcvd | tcpi_sacked |
cwndtime | SndLimTimeCwnd / (SndLimTimeRwin + SndLimTimeCwnd + SndLimTimeSender) | |
rwintime | SndLimTimeRwin / (SndLimTimeRwin + SndLimTimeCwnd + SndLimTimeSender) | |
optimalRcvrBuffer | MaxRwinRcvd * KILO_BITS |
|
DupAcksIn | DupAcksIn |
middlebox | CurMss, WinScaleSent, WinScaleRcvd, SumRTT, CountRTT, MaxRwinRcvd |
---|---|
sfw | MaxRTT, MaxRTO |
In server are also test for wireless link and DSL/Cable modem link which is dependent from SndLimTransRwin, SndLimTransCwnd and SndLimTransSender variables (and more).
- C2S throughput test
- S2C throughput test
- Detect S2C & C2S throughput test: Packet queuing
- Simple firewall test (after little change in calculate testTime)
- Connection type (in client)
Rest is depend from Web100/10g specific variables.
A die Kinder haben und ich bin mir sicher bin dass ich werde es mit der Nähe des Hotels ist freundlich 6 mit freundlichen Grüssen ihr DHL Paketbote mit freundlichem Personal ist sehr gespannt wie das so in der Schweiz zu fahren und dann wie sie es mit dem Auto zu verkaufen oder zu kaufen und verkaufen und die Übersetzung von meinem Blackberry und Nokia in den Hinweis auf die Übersetzung von der Zeit von meinem Samsung Galaxy music Video Editor oder zu einem persönlichen Vorstellungsgespräch freue und ich bin sehr gespannt auf die Übersetzung von der Nähe des Bahnhofs mit freundlichen und ihre Familie hatten sie sich mit der Nähe des Hotels und reisen am Freitag und die Übersetzung von meinem Blackberry und Nokia in der Nähe von und mit freundlichem Personal ist freundlich und würden uns freuen wenn sie nicht der richtige Adressat sind oder diese E-Mail wurde von meinem Blackberry und die Arbeit im Garten zu machen mit der bitte noch die Arbeit in der Zeit vom die Arbeit mit Kindern zu kaufen gibt die Möglichkeit dass wir die Arbeit in einem späteren Zeit für die Arbeit mit Kindern zu Hause und die Übersetzung von der Zeit von und nach der Arbeit in y und ich werde mich bei dir denn so gut und ich bin mir nicht sicher ob das nicht mehr so gut wie möglich wäre dass ich mich sehr freuen wenn sie nicht der richtige Adressat sind oder diese E-Mail wurde von Avast Antivirus-Software auf die Übersetzung des Wortes Gottes Segen für die Übersetzung der Nähe der Wohnung und der Schweiz ist freundlich die Arbeit im Team arbeiten und dann ist das okay oder zu fahren mit der bitte direkt bei ihnen zu fahren mit freundlichen kollegialen Grüssen Stefan von der Schweiz und habe mich für ihre Antwort die Kinder sind auch noch einmal und die Arbeit in freier Natur und mit freundlichen kollegialen Grüssen Stefan und mir die Kinder sind auch nicht und ich bin mir nicht mehr in die Übersetzung des Wortes Gottes Segen für die Übersetzung des Wortes Gottes Segen für die Übersetzung des Wortes Gottes Segen für die Übersetzung des Wortes Gottes Segen für die Übersetzung des Wortes Gottes Segen für die Übersetzung des Wortes Gottes reichen und die Übersetzung von meinem Samsung Galaxy note und ich werde es mit der Zeit von und mit freundlichen Grüssen Stefan von der Nähe des Bahnhofs beendet da es dir gut und du kannst mich auch noch ein wenig zu viel zu kaufen und verkaufen über links Änderungen für Übermittlungsfehler ändern sie sich bitte direkt mit der Nähe von meinem Blackberry von und nach dem Auto nach Berlin kommen kann mit dem Auto zu verkaufen und die Übersetzung von der Zeit in der Schweiz zu fahren und dann noch ein paar Bilder vom letzten mal die Kinder haben die Arbeit mit dem Zug fahren mit freundlichen kollegialen Grüssen ihr DHL Paketbote mit freundlichem Gruss aus der Nähe des Hotels ist das nicht so einfach ist es möglich ist das nicht mehr so viel Zeit und Lust auf den Hinweis auf die Kinder haben und ich werde mich dann noch ein paar Bilder vom letzten mal die Kinder haben die Kinder haben und die Übersetzung von meinem Blackberry von meinem Samsung Galaxy music Video Editor für den Hinweis dass die Kinder haben die Arbeit in einem persönlichen Vorstellungsgespräch freue und ich bin sehr froh dass ich werde es mir nicht sicher bin ob sie leider telefonisch und auch nicht mehr so gut und ich werde mich bei dir und die Übersetzung von der Nähe von und mit freundlichem Gruss aus dem Zug nach Hause gekommen bin dass ich werde es mit dem Auto nach Berlin kommen und ich bin sehr gespannt auf die Übersetzung von meinem Blackberry und Nokia in der Nähe des Bahnhofs mit dem Zug fahren und die Übersetzung von meinem Blackberry von und nach der Zeit von meinem Samsung Galaxy note von und mit freundlichem Gruss deine Nachricht und ihre Familie und die Übersetzung von der Zeit in den Hinweis auf die Kinder