diff options
Diffstat (limited to 'tools/tcpcong_example.txt')
-rw-r--r-- | tools/tcpcong_example.txt | 491 |
1 files changed, 491 insertions, 0 deletions
diff --git a/tools/tcpcong_example.txt b/tools/tcpcong_example.txt new file mode 100644 index 00000000..837c3b20 --- /dev/null +++ b/tools/tcpcong_example.txt @@ -0,0 +1,491 @@ +Demonstrations of tcpcong, the Linux eBPF/bcc version. + +This tool traces linux kernel's tcp congestion control status change functions, +then calculate duration of every status and record it, at last prints it as +tables or histogram, which can be used for evaluating the tcp congestion +algorithm's performance. + +For example: + +./tcpcong +Tracing tcp congestion control status duration... Hit Ctrl-C to end. +^C +LAddrPort RAddrPort Open_ms Dod_ms Rcov_ms Cwr_ms Los_ms Chgs +192.168.219.3/34968 192.168.219.4/19230 884 12 102 507 0 2721 +192.168.219.3/34976 192.168.219.4/19230 869 12 133 490 0 2737 +192.168.219.3/34982 192.168.219.4/19230 807 0 0 699 0 3158 +192.168.219.3/34988 192.168.219.4/19230 892 16 88 508 0 2540 +192.168.219.3/38946 192.168.219.4/19229 894 13 97 500 0 2697 +192.168.219.3/38950 192.168.219.4/19229 840 10 73 579 1 1840 +192.168.219.3/38970 192.168.219.4/19229 862 17 91 534 0 2339 +192.168.219.3/38982 192.168.219.4/19229 812 13 92 587 0 2102 +192.168.219.3/39070 192.168.219.1/19225 855 7 61 580 0 2826 +192.168.219.3/39098 192.168.219.1/19225 880 8 47 568 0 2557 +192.168.219.3/39112 192.168.219.1/19225 674 2 10 819 0 2867 +192.168.219.3/39120 192.168.219.1/19225 757 1 11 736 0 2978 +192.168.219.3/41146 192.168.219.1/19227 736 1 10 758 0 2972 +192.168.219.3/41162 192.168.219.1/19227 662 2 10 830 0 2889 +192.168.219.3/41178 192.168.219.1/19227 646 2 11 846 0 2858 +192.168.219.3/41192 192.168.219.1/19227 812 9 67 615 0 2204 +192.168.219.3/43856 192.168.219.2/19225 745 1 5 754 0 3067 +192.168.219.3/43858 192.168.219.2/19225 827 4 36 636 0 2130 +192.168.219.3/43872 192.168.219.2/19225 739 0 2 764 0 3035 +192.168.219.3/43880 192.168.219.2/19225 747 0 3 756 0 3144 +192.168.219.3/47230 192.168.219.2/19227 830 4 38 632 0 2554 +192.168.219.3/47242 192.168.219.2/19227 782 3 32 687 0 2136 +192.168.219.3/47272 192.168.219.2/19227 611 1 3 889 0 2629 +192.168.219.3/47294 192.168.219.2/19227 832 3 38 630 0 2631 +192.168.219.3/49716 192.168.219.2/19226 846 4 44 610 0 2562 +192.168.219.3/49746 192.168.219.2/19226 765 0 4 736 0 2998 +192.168.219.3/49760 192.168.219.2/19226 812 2 47 644 0 2273 +192.168.219.3/49766 192.168.219.2/19226 724 0 2 779 0 3106 +192.168.219.3/54076 192.168.219.1/19226 690 1 9 804 0 2939 +192.168.219.3/54096 192.168.219.1/19226 715 2 10 778 0 2974 +192.168.219.3/54114 192.168.219.1/19226 878 6 61 558 0 2742 +192.168.219.3/54120 192.168.219.1/19226 738 0 9 757 0 2959 +192.168.219.3/60926 192.168.219.4/19228 711 11 80 702 0 1870 +192.168.219.3/60930 192.168.219.4/19228 785 0 0 720 0 3325 +192.168.219.3/60942 192.168.219.4/19228 762 0 1 743 0 3342 +192.168.219.3/60948 192.168.219.4/19228 877 11 102 514 0 2654 + +The example shows all tcp socket's congestion status duration for milliseconds, +open_ms column is the duration of tcp connection in open status whose cwnd can +increase; dod_ms column is the duration of tcp connection in disorder status +who receives disordered packet; rcov_ms column is the duration of tcp +connection in recovery status who receives 3 duplicated acks; cwr_ms column +is the duration of tcp connection who receives explicitly congest notifier and +two acks to reduce the cwnd. the last column chgs prints total status change +number of the socket. + +An interval can be provided, and also optionally a count. Eg, printing output +every 1 second, and including timestamps (-T): +./tcpcong -T 1 3 +Tracing tcp congestion control status duration... Hit Ctrl-C to end. + +07:37:55 +LAddrPort RAddrPort Open_ms Dod_ms Rcov_ms Cwr_ms Los_ms Chgs +192.168.219.3/34968 192.168.219.4/19230 742 15 82 311 0 1678 +192.168.219.3/34976 192.168.219.4/19230 700 12 98 340 0 1965 +192.168.219.3/34982 192.168.219.4/19230 634 0 1 516 0 2471 +192.168.219.3/34988 192.168.219.4/19230 692 12 94 354 0 1941 +192.168.219.3/38946 192.168.219.4/19229 722 12 90 323 0 2006 +192.168.219.3/38950 192.168.219.4/19229 420 7 264 439 1 951 +192.168.219.3/38970 192.168.219.4/19229 724 14 90 323 0 1986 +192.168.219.3/38982 192.168.219.4/19229 686 13 87 365 0 1675 +192.168.219.3/39070 192.168.219.1/19225 653 5 46 446 0 1998 +192.168.219.3/39098 192.168.219.1/19225 667 4 38 440 0 2098 +192.168.219.3/39112 192.168.219.1/19225 606 0 1 543 0 2146 +192.168.219.3/39120 192.168.219.1/19225 492 0 205 453 0 1916 +192.168.219.3/41146 192.168.219.1/19227 583 0 3 564 0 2332 +192.168.219.3/41162 192.168.219.1/19227 536 0 1 613 0 2192 +192.168.219.3/41178 192.168.219.1/19227 499 0 2 649 0 2064 +192.168.219.3/41192 192.168.219.1/19227 622 6 34 488 0 1660 +192.168.219.3/43856 192.168.219.2/19225 555 0 1 593 0 2359 +192.168.219.3/43858 192.168.219.2/19225 618 3 28 502 0 1773 +192.168.219.3/43872 192.168.219.2/19225 558 0 0 592 0 2318 +192.168.219.3/43880 192.168.219.2/19225 580 0 1 569 0 2303 +192.168.219.3/47230 192.168.219.2/19227 646 1 18 485 0 1776 +192.168.219.3/47242 192.168.219.2/19227 634 0 20 495 0 1582 +192.168.219.3/47272 192.168.219.2/19227 463 0 1 687 0 1854 +192.168.219.3/47294 192.168.219.2/19227 636 2 27 486 0 1901 +192.168.219.3/49716 192.168.219.2/19226 646 2 28 475 0 1832 +192.168.219.3/49746 192.168.219.2/19226 583 0 0 567 0 2333 +192.168.219.3/49760 192.168.219.2/19226 628 2 26 495 0 1755 +192.168.219.3/49766 192.168.219.2/19226 558 0 0 592 0 2412 +192.168.219.3/54076 192.168.219.1/19226 581 0 2 567 0 2042 +192.168.219.3/54096 192.168.219.1/19226 554 0 2 594 0 2239 +192.168.219.3/54114 192.168.219.1/19226 685 4 33 427 0 1859 +192.168.219.3/54120 192.168.219.1/19226 611 0 3 537 0 2322 +192.168.219.3/60926 192.168.219.4/19228 681 20 101 347 0 1636 +192.168.219.3/60930 192.168.219.4/19228 616 0 1 532 0 2310 +192.168.219.3/60942 192.168.219.4/19228 607 0 1 543 0 2433 +192.168.219.3/60948 192.168.219.4/19228 597 11 76 293 0 1641 + +07:37:57 +LAddrPort RAddrPort Open_ms Dod_ms Rcov_ms Cwr_ms Los_ms Chgs +192.168.219.3/34968 192.168.219.4/19230 469 9 255 265 0 1305 +192.168.219.3/34976 192.168.219.4/19230 580 11 91 316 0 1916 +192.168.219.3/34982 192.168.219.4/19230 566 0 0 433 0 2092 +192.168.219.3/34988 192.168.219.4/19230 583 9 63 345 0 1871 +192.168.219.3/38946 192.168.219.4/19229 449 16 69 464 0 1425 +192.168.219.3/38950 192.168.219.4/19229 569 10 68 349 0 1848 +192.168.219.3/38970 192.168.219.4/19229 573 20 66 339 0 1839 +192.168.219.3/38982 192.168.219.4/19229 553 9 60 378 0 1483 +192.168.219.3/39070 192.168.219.1/19225 471 3 243 280 0 1279 +192.168.219.3/39098 192.168.219.1/19225 598 4 37 355 0 1717 +192.168.219.3/39112 192.168.219.1/19225 522 0 1 476 0 1816 +192.168.219.3/39120 192.168.219.1/19225 518 0 1 480 0 2031 +192.168.219.3/41146 192.168.219.1/19227 500 0 3 497 0 1996 +192.168.219.3/41162 192.168.219.1/19227 448 0 2 548 0 1849 +192.168.219.3/41178 192.168.219.1/19227 441 0 4 554 0 1693 +192.168.219.3/41192 192.168.219.1/19227 555 4 34 405 0 1341 +192.168.219.3/43856 192.168.219.2/19225 471 0 3 525 0 2118 +192.168.219.3/43858 192.168.219.2/19225 541 1 25 430 0 1446 +192.168.219.3/43872 192.168.219.2/19225 483 0 1 516 0 2044 +192.168.219.3/43880 192.168.219.2/19225 492 0 0 507 0 2073 +192.168.219.3/47230 192.168.219.2/19227 581 3 29 385 0 1453 +192.168.219.3/47242 192.168.219.2/19227 571 2 22 403 0 1292 +192.168.219.3/47272 192.168.219.2/19227 393 0 0 604 0 1516 +192.168.219.3/47294 192.168.219.2/19227 575 2 27 393 0 1660 +192.168.219.3/49716 192.168.219.2/19226 584 1 25 389 0 1582 +192.168.219.3/49746 192.168.219.2/19226 513 0 0 486 0 2017 +192.168.219.3/49760 192.168.219.2/19226 560 1 24 412 0 1370 +192.168.219.3/49766 192.168.219.2/19226 474 0 0 525 0 2121 +192.168.219.3/54076 192.168.219.1/19226 504 0 1 494 0 1724 +192.168.219.3/54096 192.168.219.1/19226 490 0 2 507 0 1906 +192.168.219.3/54114 192.168.219.1/19226 611 3 25 360 0 1560 +192.168.219.3/54120 192.168.219.1/19226 520 0 1 479 0 2010 +192.168.219.3/60926 192.168.219.4/19228 527 9 53 408 0 1473 +192.168.219.3/60930 192.168.219.4/19228 551 0 0 448 0 1951 +192.168.219.3/60942 192.168.219.4/19228 538 0 0 461 0 2038 +192.168.219.3/60948 192.168.219.4/19228 511 9 68 295 1 1701 + +07:37:58 +LAddrPort RAddrPort Open_ms Dod_ms Rcov_ms Cwr_ms Los_ms Chgs +192.168.219.3/34968 192.168.219.4/19230 293 1 226 211 0 755 +192.168.219.3/34976 192.168.219.4/19230 424 4 36 354 0 1489 +192.168.219.3/34982 192.168.219.4/19230 552 0 0 446 0 2249 +192.168.219.3/34988 192.168.219.4/19230 493 4 42 327 0 1715 +192.168.219.3/38946 192.168.219.4/19229 425 4 37 340 41 1478 +192.168.219.3/38950 192.168.219.4/19229 465 5 45 335 0 1586 +192.168.219.3/38970 192.168.219.4/19229 531 5 41 420 0 1863 +192.168.219.3/38982 192.168.219.4/19229 525 5 41 427 0 1625 +192.168.219.3/39070 192.168.219.1/19225 576 4 44 374 0 1787 +192.168.219.3/39098 192.168.219.1/19225 596 6 41 355 0 1782 +192.168.219.3/39112 192.168.219.1/19225 501 0 3 494 0 1887 +192.168.219.3/39120 192.168.219.1/19225 511 0 4 483 0 2070 +192.168.219.3/41146 192.168.219.1/19227 503 0 3 492 0 2068 +192.168.219.3/41162 192.168.219.1/19227 449 1 3 545 0 1962 +192.168.219.3/41178 192.168.219.1/19227 445 0 5 546 0 1907 +192.168.219.3/41192 192.168.219.1/19227 436 4 248 309 0 1208 +192.168.219.3/43856 192.168.219.2/19225 480 0 0 519 0 2108 +192.168.219.3/43858 192.168.219.2/19225 534 3 24 437 0 1644 +192.168.219.3/43872 192.168.219.2/19225 480 0 0 519 0 2068 +192.168.219.3/43880 192.168.219.2/19225 490 0 0 508 0 2083 +192.168.219.3/47230 192.168.219.2/19227 561 3 22 411 0 1556 +192.168.219.3/47242 192.168.219.2/19227 550 2 22 424 0 1485 +192.168.219.3/47272 192.168.219.2/19227 398 0 0 601 0 1537 +192.168.219.3/47294 192.168.219.2/19227 551 1 19 427 0 1712 +192.168.219.3/49716 192.168.219.2/19226 570 1 20 405 0 1712 +192.168.219.3/49746 192.168.219.2/19226 494 0 0 503 0 2052 +192.168.219.3/49760 192.168.219.2/19226 547 1 18 431 0 1673 +192.168.219.3/49766 192.168.219.2/19226 497 0 0 501 0 1983 +192.168.219.3/54076 192.168.219.1/19226 495 0 4 499 0 1849 +192.168.219.3/54096 192.168.219.1/19226 485 0 4 508 0 2037 +192.168.219.3/54114 192.168.219.1/19226 603 5 37 354 0 1671 +192.168.219.3/54120 192.168.219.1/19226 516 0 1 482 0 2047 +192.168.219.3/60926 192.168.219.4/19228 543 5 39 412 0 1708 +192.168.219.3/60930 192.168.219.4/19228 530 0 0 469 0 2096 +192.168.219.3/60942 192.168.219.4/19228 510 0 0 489 0 2234 +192.168.219.3/60948 192.168.219.4/19228 565 4 61 367 0 1956 + +An local port and remote port can be specified, and also optionally a count. +Eg printing output every 1 second, and including timestamps (-T) for local +ports 30000-40000 and remote ports 19225-19227: +./tcpcong -T -L 30000-40000 -R 19225-19227 1 3 +Tracing tcp congestion control status duration... Hit Ctrl-C to end. + +07:39:11 +LAddrPort RAddrPort Open_ms Dod_ms Rcov_ms Cwr_ms Los_ms Chgs +192.168.219.3/39070 192.168.219.1/19225 668 4 32 455 0 1706 +192.168.219.3/39098 192.168.219.1/19225 692 4 38 424 0 2110 +192.168.219.3/39112 192.168.219.1/19225 564 0 2 593 0 2291 +192.168.219.3/39120 192.168.219.1/19225 599 0 4 555 0 2387 + +07:39:12 +LAddrPort RAddrPort Open_ms Dod_ms Rcov_ms Cwr_ms Los_ms Chgs +192.168.219.3/39070 192.168.219.1/19225 576 3 27 391 0 1525 +192.168.219.3/39098 192.168.219.1/19225 580 3 36 379 0 1893 +192.168.219.3/39112 192.168.219.1/19225 474 1 10 512 0 2009 +192.168.219.3/39120 192.168.219.1/19225 505 1 9 483 0 2022 + +07:39:13 +LAddrPort RAddrPort Open_ms Dod_ms Rcov_ms Cwr_ms Los_ms Chgs +192.168.219.3/39070 192.168.219.1/19225 546 6 27 418 0 1659 +192.168.219.3/39098 192.168.219.1/19225 564 4 40 390 0 1937 +192.168.219.3/39112 192.168.219.1/19225 479 0 3 514 0 2008 +192.168.219.3/39120 192.168.219.1/19225 515 0 4 479 0 1982 + +The (-u) option can be specified for recording the duration as miroseconds. +Eg printing output every 1 second, and including timestamps (-T) and +microseconds (-u) for local ports 30000-40000 and remote ports 19225-19227: +./tcpcong -T -u -L 30000-40000 -R 19225-19227 1 3 +Tracing tcp congestion control status duration... Hit Ctrl-C to end. + +07:39:44 +LAddrPort RAddrPort Open_us Dod_us Rcov_us Cwr_us Los_us Chgs +192.168.219.3/39070 192.168.219.1/19225 600971 3232 38601 509796 0 1843 +192.168.219.3/39098 192.168.219.1/19225 667184 5585 26285 453575 0 1969 +192.168.219.3/39112 192.168.219.1/19225 580982 22 1502 569479 0 2210 +192.168.219.3/39120 192.168.219.1/19225 600280 201 955 550752 0 2327 + +07:39:45 +LAddrPort RAddrPort Open_us Dod_us Rcov_us Cwr_us Los_us Chgs +192.168.219.3/39070 192.168.219.1/19225 567189 2029 25966 404698 0 1612 +192.168.219.3/39098 192.168.219.1/19225 597201 2263 24073 376454 0 1578 +192.168.219.3/39112 192.168.219.1/19225 500792 846 9297 489264 0 1850 +192.168.219.3/39120 192.168.219.1/19225 518700 94 749 480171 0 1967 + +07:39:46 +LAddrPort RAddrPort Open_us Dod_us Rcov_us Cwr_us Los_us Chgs +192.168.219.3/39070 192.168.219.1/19225 587340 5324 37035 370066 0 1602 +192.168.219.3/39098 192.168.219.1/19225 532986 5630 31624 345336 0 1319 +192.168.219.3/39112 192.168.219.1/19225 481936 1129 6244 510235 0 1909 +192.168.219.3/39120 192.168.219.1/19225 507196 316 6200 485737 0 1957 + + +the ipv6 example with (-u) option can be shown. +Eg printing output every 1 second, and including timestamps (-T) and +microseconds (-u) for local ports 30000-40000 and remote ports 19225-19227: +./tcpcong.py -T -u -L 30000-40000 -R 19225-19227 1 3 +Tracing tcp congestion control status duration... Hit Ctrl-C to end. + +11:31:55 +LAddrPort6 RAddrPort6 Open_us Dod_us Rcov_us Cwr_us Los_us Chgs +fe80::bace:f6ff:fe14:d21c/32810 fe80::bace:f6ff:fe43:fe96/19226 876328 0 0 137957 0 235 +fe80::bace:f6ff:fe14:d21c/32812 fe80::bace:f6ff:fe43:fe96/19226 757739 0 0 283114 0 590 +fe80::bace:f6ff:fe14:d21c/32814 fe80::bace:f6ff:fe43:fe96/19226 855426 0 0 136134 0 231 +fe80::bace:f6ff:fe14:d21c/32816 fe80::bace:f6ff:fe43:fe96/19226 695271 0 0 345443 0 606 + +11:31:56 +LAddrPort6 RAddrPort6 Open_us Dod_us Rcov_us Cwr_us Los_us Chgs +fe80::bace:f6ff:fe14:d21c/32810 fe80::bace:f6ff:fe43:fe96/19226 913925 0 0 81995 0 92 +fe80::bace:f6ff:fe14:d21c/32812 fe80::bace:f6ff:fe43:fe96/19226 785024 0 0 202819 0 777 +fe80::bace:f6ff:fe14:d21c/32814 fe80::bace:f6ff:fe43:fe96/19226 920963 0 0 80715 0 111 +fe80::bace:f6ff:fe14:d21c/32816 fe80::bace:f6ff:fe43:fe96/19226 765172 0 0 222897 0 734 + +11:31:57 +LAddrPort6 RAddrPort6 Open_us Dod_us Rcov_us Cwr_us Los_us Chgs +fe80::bace:f6ff:fe14:d21c/32810 fe80::bace:f6ff:fe43:fe96/19226 839563 0 0 98313 0 149 +fe80::bace:f6ff:fe14:d21c/32812 fe80::bace:f6ff:fe43:fe96/19226 534816 0 0 329683 0 495 +fe80::bace:f6ff:fe14:d21c/32814 fe80::bace:f6ff:fe43:fe96/19226 841706 103 2404 91273 0 132 +fe80::bace:f6ff:fe14:d21c/32816 fe80::bace:f6ff:fe43:fe96/19226 633320 0 0 286584 0 565 + + +The distribution of congestion status duration can be printed as a histogram +with the -d option and also optionally a count. Eg printing output every +1 second for microseconds, and including timestamps (-T): +./tcpcong.py -d -u -T 1 2 +Tracing tcp congestion control status duration... Hit Ctrl-C to end. + +07:40:12 + +tcp_congest_state = cwr + usecs : count distribution + 0 -> 1 : 0 | | + 2 -> 3 : 0 | | + 4 -> 7 : 11 | | + 8 -> 15 : 10 | | + 16 -> 31 : 25 | | + 32 -> 63 : 58 | | + 64 -> 127 : 117 | | + 128 -> 255 : 2924 |******* | + 256 -> 511 : 16249 |****************************************| + 512 -> 1023 : 15340 |************************************* | + 1024 -> 2047 : 786 |* | + 2048 -> 4095 : 24 | | + 4096 -> 8191 : 7 | | + 8192 -> 16383 : 0 | | + 16384 -> 32767 : 0 | | + 32768 -> 65535 : 1 | | + 65536 -> 131071 : 0 | | + 131072 -> 262143 : 1 | | + +tcp_congest_state = recovery + usecs : count distribution + 0 -> 1 : 0 | | + 2 -> 3 : 0 | | + 4 -> 7 : 1 | | + 8 -> 15 : 0 | | + 16 -> 31 : 2 | | + 32 -> 63 : 9 | | + 64 -> 127 : 28 | | + 128 -> 255 : 895 |****************************** | + 256 -> 511 : 1190 |****************************************| + 512 -> 1023 : 384 |************ | + 1024 -> 2047 : 66 |** | + 2048 -> 4095 : 2 | | + 4096 -> 8191 : 4 | | + 8192 -> 16383 : 2 | | + 16384 -> 32767 : 0 | | + 32768 -> 65535 : 0 | | + 65536 -> 131071 : 0 | | + 131072 -> 262143 : 2 | | + +tcp_congest_state = disorder + usecs : count distribution + 0 -> 1 : 0 | | + 2 -> 3 : 0 | | + 4 -> 7 : 21 |** | + 8 -> 15 : 59 |***** | + 16 -> 31 : 102 |********* | + 32 -> 63 : 256 |************************* | + 64 -> 127 : 409 |****************************************| + 128 -> 255 : 255 |************************ | + 256 -> 511 : 104 |********** | + 512 -> 1023 : 8 | | + +tcp_congest_state = open + usecs : count distribution + 0 -> 1 : 0 | | + 2 -> 3 : 11 | | + 4 -> 7 : 266 | | + 8 -> 15 : 319 | | + 16 -> 31 : 396 |* | + 32 -> 63 : 488 |* | + 64 -> 127 : 695 |** | + 128 -> 255 : 4395 |************* | + 256 -> 511 : 13329 |****************************************| + 512 -> 1023 : 12727 |************************************** | + 1024 -> 2047 : 3327 |********* | + 2048 -> 4095 : 601 |* | + 4096 -> 8191 : 45 | | + 8192 -> 16383 : 3 | | + 16384 -> 32767 : 1 | | + 32768 -> 65535 : 1 | | + +tcp_congest_state = loss + usecs : count distribution + 0 -> 1 : 0 | | + 2 -> 3 : 0 | | + 4 -> 7 : 0 | | + 8 -> 15 : 0 | | + 16 -> 31 : 0 | | + 32 -> 63 : 0 | | + 64 -> 127 : 0 | | + 128 -> 255 : 1 |****************************************| + 256 -> 511 : 1 |****************************************| + 512 -> 1023 : 0 | | + 1024 -> 2047 : 0 | | + 2048 -> 4095 : 0 | | + 4096 -> 8191 : 0 | | + 8192 -> 16383 : 0 | | + 16384 -> 32767 : 0 | | + 32768 -> 65535 : 1 |****************************************| + +07:40:14 + +tcp_congest_state = cwr + usecs : count distribution + 0 -> 1 : 0 | | + 2 -> 3 : 7 | | + 4 -> 7 : 162 | | + 8 -> 15 : 591 |* | + 16 -> 31 : 462 | | + 32 -> 63 : 351 | | + 64 -> 127 : 441 | | + 128 -> 255 : 4073 |******** | + 256 -> 511 : 19188 |****************************************| + 512 -> 1023 : 16127 |********************************* | + 1024 -> 2047 : 725 |* | + 2048 -> 4095 : 23 | | + 4096 -> 8191 : 3 | | + 8192 -> 16383 : 2 | | + 16384 -> 32767 : 0 | | + 32768 -> 65535 : 4 | | + 65536 -> 131071 : 0 | | + 131072 -> 262143 : 2 | | + +tcp_congest_state = recovery + usecs : count distribution + 0 -> 1 : 0 | | + 2 -> 3 : 0 | | + 4 -> 7 : 3 | | + 8 -> 15 : 16 | | + 16 -> 31 : 22 | | + 32 -> 63 : 37 |* | + 64 -> 127 : 75 |** | + 128 -> 255 : 1082 |******************************* | + 256 -> 511 : 1364 |****************************************| + 512 -> 1023 : 369 |********** | + 1024 -> 2047 : 67 |* | + 2048 -> 4095 : 0 | | + 4096 -> 8191 : 2 | | + 8192 -> 16383 : 0 | | + 16384 -> 32767 : 0 | | + 32768 -> 65535 : 0 | | + 65536 -> 131071 : 0 | | + 131072 -> 262143 : 5 | | + +tcp_congest_state = disorder + usecs : count distribution + 0 -> 1 : 0 | | + 2 -> 3 : 4 | | + 4 -> 7 : 43 |**** | + 8 -> 15 : 107 |*********** | + 16 -> 31 : 145 |*************** | + 32 -> 63 : 312 |********************************* | + 64 -> 127 : 370 |****************************************| + 128 -> 255 : 256 |*************************** | + 256 -> 511 : 101 |********** | + 512 -> 1023 : 8 | | + +tcp_congest_state = open + usecs : count distribution + 0 -> 1 : 0 | | + 2 -> 3 : 21 | | + 4 -> 7 : 359 | | + 8 -> 15 : 516 |* | + 16 -> 31 : 484 |* | + 32 -> 63 : 522 |* | + 64 -> 127 : 818 |** | + 128 -> 255 : 5081 |************* | + 256 -> 511 : 14852 |****************************************| + 512 -> 1023 : 13753 |************************************* | + 1024 -> 2047 : 3224 |******** | + 2048 -> 4095 : 598 |* | + 4096 -> 8191 : 41 | | + 8192 -> 16383 : 0 | | + 16384 -> 32767 : 1 | | + 32768 -> 65535 : 0 | | + 65536 -> 131071 : 0 | | + 131072 -> 262143 : 1 | | + +tcp_congest_state = loss + usecs : count distribution + 0 -> 1 : 0 | | + 2 -> 3 : 0 | | + 4 -> 7 : 0 | | + 8 -> 15 : 0 | | + 16 -> 31 : 0 | | + 32 -> 63 : 0 | | + 64 -> 127 : 1 |****** | + 128 -> 255 : 0 | | + 256 -> 511 : 2 |************* | + 512 -> 1023 : 6 |****************************************| + 1024 -> 2047 : 0 | | + 2048 -> 4095 : 0 | | + 4096 -> 8191 : 0 | | + 8192 -> 16383 : 0 | | + 16384 -> 32767 : 0 | | + 32768 -> 65535 : 1 |****** | + + +USAGE: +./tcpcong -h +usage: tcpcong [-h] [-L LOCALPORT] [-R REMOTEPORT] [-T] [-d] [-u] + [interval] [outputs] + +Summarize tcp socket congestion control status duration + +positional arguments: + interval output interval, in seconds + outputs number of outputs + +optional arguments: + -h, --help show this help message and exit + -L LOCALPORT, --localport LOCALPORT + trace local ports only + -R REMOTEPORT, --remoteport REMOTEPORT + trace the dest ports only + -T, --timestamp include timestamp on output + -d, --dist show distributions as histograms + -u, --microseconds output in microseconds + +examples: + ./tcpcong # show tcp congestion status duration + ./tcpcong 1 10 # show 1 second summaries, 10 times + ./tcpcong -L 3000-3006 1 # 1s summaries, local port 3000-3006 + ./tcpcong -R 5000-5005 1 # 1s summaries, remote port 5000-5005 + ./tcpcong -uT 1 # 1s summaries, microseconds, and timestamps + ./tcpcong -d # show the duration as histograms |