{ "info": { "author": "Riccardo Ravaioli", "author_email": "rickyrav@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "===========\nIcmp Tool\n===========\n\nIcmp Tool provides a straight-forward way to characterize the responsiveness to TTL-limited probes of routers close to you.\nThe tool is based on code we used for a large scale campaign on PlanetLab. For details on how the router classification works,\nrefer to our paper \"Characterizing ICMP Rate Limitation on Routers\": http://goo.gl/cU004b\nTypical usage looks like this::\n\n #!/usr/bin/env python\n\n from icmptool import icmptool\n\n routers_by_hop = icmptool(dest='8.8.8.8', ttls=[1,2,3], min_rate=1, max_rate=500, n_of_rates=5, duration=8)\n # extract and print rate-limitation parameters\n for hop in routers_by_hop:\n for router in routers_by_hop[hop]:\n print \"router %s at hop %s is of type %s for the tested probing rates\" % (\n router, hop, routers_by_hop[hop][router]['rtype_description'])\n if 'fr-onoff' in routers_by_hop[hop][router]['rtype_str']:\n print(\"\\tOn-off parameters are:\\n\\t\\tBurst Size: \"\n \"%s packets\\n\\t\\tInter Burst Time: %s seconds\"\n \"\\n\\t\\t=> max answering rate %d pps \" % (routers_by_hop[hop][router]['onoff_parameters']['bsize'],\n routers_by_hop[hop][router]['onoff_parameters']['iat'],\n routers_by_hop[hop][router]['onoff_parameters']['bsize']))\n elif 'fr-rl' in routers_by_hop[hop][router]['rtype_str']: #generically rate-limited\n print \"\\tMaximum answering rate is %s\" % routers_by_hop[hop][router]['extra_info']['limited_ans_rate']\n\n\nBy doing that, we probed routers at hops 1, 2, 3 on the path to 8.8.8.8, at 5 exponentially-spaced probing rates between 1 pps and 500 pps, for 8 seconds each time.\nrouters_by_hop will now contain at key i details of the responsiveness of the router on hop i.\n\nAlternatively, the script icmp_tool.py can be called from the shell to perform the same task. The above example simply becomes::\n\n $ ./icmp_tool.py --dest 8.8.8.8 --ttls 1 2 3 --min_rate 1 --max_rate 500 --n_of_rates 5 --duration 8\n \nIcmp Tool sends TTL-limited probes at constant rate(s) to the routers at the specified hops\nand by studying the timeseries of the received ICMP time-exceeded replies \nit determines the responsiveness of nearby routers to these probes. A responsive router typically \nshows 3 responsiveness phases in the following order::\n\n [fully-responsive] [rate-limited] [irregular]\n\nDepending on the chosen probing rates and on the configuration of the router,\nnot all phases might appear. The most common implementation\nof rate limitation is with an on-off pattern, of which we provide the parameters:\nburst size, period length and resulting answering rate. In some cases,\nrate limitation is implemented with a maximum constant answering rate, but no such\npattern is observable. We call this a generically rate-limited router (rl).\nThe irregular phase, if any, might appear whether or not rate limitation has been configured.\nAfter a certain threshold, the responsiveness of the router might simply not follow any pattern\nand become less predictable.\n\nThe tool uses **tcpdump** to capture outgoing probes and incoming replies. It requires **sudo** privileges.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.python.org/pypi/IcmpTool", "keywords": null, "license": "LICENSE.txt", "maintainer": null, "maintainer_email": null, "name": "IcmpTool", "package_url": "https://pypi.org/project/IcmpTool/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/IcmpTool/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://pypi.python.org/pypi/IcmpTool" }, "release_url": "https://pypi.org/project/IcmpTool/0.1.8/", "requires_dist": null, "requires_python": null, "summary": "Characterizes ICMP responsiveness of routers.", "version": "0.1.8" }, "last_serial": 1582991, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "1e0e3b8f7ca41ab4b2144769ff2ecee7", "sha256": "a02ca5db1fb32cb034aa3562ee2951881c39d0c34eb58ead197948ce72f60410" }, "downloads": -1, "filename": "IcmpTool-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1e0e3b8f7ca41ab4b2144769ff2ecee7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34926, "upload_time": "2015-04-01T08:58:48", "url": "https://files.pythonhosted.org/packages/f6/f4/e998feee22667f0bf000a8151fff705bdf4710d4fee842c5e4c569bf6e27/IcmpTool-0.1.0.tar.gz" } ], "0.1.1": [], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f64319a6a09235659986626542658520", "sha256": "bc8e9f6b2d43f0d20a01a619295017920c7e805f226790970809b14eb9f3a332" }, "downloads": -1, "filename": "IcmpTool-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f64319a6a09235659986626542658520", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36003, "upload_time": "2015-04-01T15:12:06", "url": "https://files.pythonhosted.org/packages/5d/99/1346d054537196ddc17434ae0618256bc8809c807b5e33e58e6e70ae679b/IcmpTool-0.1.2.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "e145e0842c312b6127e478662a017269", "sha256": "781afb333f2b8855ab16cc2441b2a37d85fcd8877b93e55ae1b6b5eda9e93b91" }, "downloads": -1, "filename": "IcmpTool-0.1.4.tar.gz", "has_sig": false, "md5_digest": "e145e0842c312b6127e478662a017269", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36572, "upload_time": "2015-04-01T15:44:10", "url": "https://files.pythonhosted.org/packages/c9/dd/c8b522b552f2cb159aa7a6d45653231ff8a241e8d6216b7f52a9e864826f/IcmpTool-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "f9a97172c93d094cef93daad46f4b417", "sha256": "8f807309cc0a6018f8f3c779619c13c84a1f59950c165020f6957ef22951c118" }, "downloads": -1, "filename": "IcmpTool-0.1.5.tar.gz", "has_sig": false, "md5_digest": "f9a97172c93d094cef93daad46f4b417", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36565, "upload_time": "2015-04-01T15:47:49", "url": "https://files.pythonhosted.org/packages/71/c6/5fbdd0371335d751ced7957d3b0eb4e3223b705b911ff60e0eb088bd159e/IcmpTool-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "171275b035be0b07a035a7cd75227cbc", "sha256": "a108ee1957e3edc4d2086a083078d2aba10a698d4ad0f141e12e68574995c73d" }, "downloads": -1, "filename": "IcmpTool-0.1.6.tar.gz", "has_sig": false, "md5_digest": "171275b035be0b07a035a7cd75227cbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36573, "upload_time": "2015-04-01T16:02:09", "url": "https://files.pythonhosted.org/packages/03/32/386802fb70eb33322350eb091e4360695c5d49a264b0f082054f2f36440d/IcmpTool-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "389059b4ee13dc0280fe57b11dff449a", "sha256": "a471fd3a6294f82427081ebb35d2b9a97d05d9311c72c5cbc5754416f48b17a3" }, "downloads": -1, "filename": "IcmpTool-0.1.7.tar.gz", "has_sig": false, "md5_digest": "389059b4ee13dc0280fe57b11dff449a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36572, "upload_time": "2015-04-01T16:04:11", "url": "https://files.pythonhosted.org/packages/d3/91/4894d6178f4f1ab6f01af044db3a72be41c05e2799d395e609c3d137ecf5/IcmpTool-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "e0f2fc7b2d1728ce84976fd6911ae826", "sha256": "f5af6a89d9f168a2537902fb666cf7554b023c7e56c1de355ea22227f656a089" }, "downloads": -1, "filename": "IcmpTool-0.1.8.tar.gz", "has_sig": false, "md5_digest": "e0f2fc7b2d1728ce84976fd6911ae826", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36564, "upload_time": "2015-04-02T22:34:10", "url": "https://files.pythonhosted.org/packages/66/60/cd92c87c2353ede7937c4ebc26d5a2e030e2df9587dd6de3a65dd26261f1/IcmpTool-0.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e0f2fc7b2d1728ce84976fd6911ae826", "sha256": "f5af6a89d9f168a2537902fb666cf7554b023c7e56c1de355ea22227f656a089" }, "downloads": -1, "filename": "IcmpTool-0.1.8.tar.gz", "has_sig": false, "md5_digest": "e0f2fc7b2d1728ce84976fd6911ae826", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36564, "upload_time": "2015-04-02T22:34:10", "url": "https://files.pythonhosted.org/packages/66/60/cd92c87c2353ede7937c4ebc26d5a2e030e2df9587dd6de3a65dd26261f1/IcmpTool-0.1.8.tar.gz" } ] }