{
    "content": [
        {
            "type": "text",
            "text": "# tc-choke(8) (man)\n\n**Summary:** choke - choose and keep scheduler\n\n**Synopsis:** tc  qdisc ... choke limit packets min packets max packets avpkt bytes burst packets [ ecn ] [\nbandwidth rate ] probability chance\n\n## See Also\n\n- tc(8)\n- tc-red(8)\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **SYNOPSIS** (4 lines)\n- **DESCRIPTION** (5 lines)\n- **ALGORITHM** (10 lines)\n- **PARAMETERS** (4 lines)\n- **SOURCE** (7 lines)\n- **SEE ALSO** (3 lines)\n- **AUTHOR** (5 lines)\n\n## Full Content\n\n### NAME\n\nchoke - choose and keep scheduler\n\n### SYNOPSIS\n\ntc  qdisc ... choke limit packets min packets max packets avpkt bytes burst packets [ ecn ] [\nbandwidth rate ] probability chance\n\n### DESCRIPTION\n\nCHOKe (CHOose and Keep for responsive flows, CHOose and Kill for  unresponsive  flows)  is  a\nclassless qdisc designed to both identify and penalize flows that monopolize the queue. CHOKe\nis a variation of RED, and the configuration is similar to RED.\n\n### ALGORITHM\n\nOnce the queue hits a certain average length, a random packet is drawn  from  the  queue.  If\nboth the to-be-queued and the drawn packet belong to the same flow, both packets are dropped.\nOtherwise, if the queue length is still below the maximum length, the new packet has  a  con‐\nfigurable  chance of being marked (which may mean dropped).  If the queue length exceeds max,\nthe new packet will always be marked (or dropped).  If the queue length  exceeds  limit,  the\nnew packet is always dropped.\n\nThe marking probability computation is the same as used by the RED qdisc.\n\n### PARAMETERS\n\nThe parameters are the same as for RED, except that RED uses bytes whereas choke counts pack‐\nets. See tc-red(8) for a description.\n\n### SOURCE\n\no      R. Pan, B. Prabhakar, and K. Psounis, \"CHOKe,  A  Stateless  Active  Queue  Management\nScheme for Approximating Fair Bandwidth Allocation\", IEEE INFOCOM, 2000.\n\no      A.  Tang,  J.  Wang, S. Low, \"Understanding CHOKe: Throughput and Spatial Characteris‐\ntics\", IEEE/ACM Transactions on Networking, 2004\n\n### SEE ALSO\n\ntc(8), tc-red(8)\n\n### AUTHOR\n\nschedchoke was contributed by Stephen Hemminger.\n\n\n\niproute2                                     August 2011                                       TC(8)\n\n"
        }
    ],
    "structuredContent": {
        "command": "tc-choke",
        "section": "8",
        "mode": "man",
        "summary": "choke - choose and keep scheduler",
        "synopsis": "tc  qdisc ... choke limit packets min packets max packets avpkt bytes burst packets [ ecn ] [\nbandwidth rate ] probability chance",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "tc",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/tc/8/json"
            },
            {
                "name": "tc-red",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/tc-red/8/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "ALGORITHM",
                "lines": 10,
                "subsections": []
            },
            {
                "name": "PARAMETERS",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "SOURCE",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 5,
                "subsections": []
            }
        ]
    }
}