{"id":19573941,"url":"https://github.com/hexresearch/hxrpp","last_synced_at":"2025-02-26T11:17:19.396Z","repository":{"id":99626780,"uuid":"105739404","full_name":"hexresearch/hxrpp","owner":"hexresearch","description":null,"archived":false,"fork":false,"pushed_at":"2017-10-05T11:07:54.000Z","size":92,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-01-09T03:56:51.439Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hexresearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-04T06:49:19.000Z","updated_at":"2018-09-17T08:11:01.000Z","dependencies_parsed_at":"2023-04-10T04:28:17.433Z","dependency_job_id":null,"html_url":"https://github.com/hexresearch/hxrpp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexresearch%2Fhxrpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexresearch%2Fhxrpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexresearch%2Fhxrpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexresearch%2Fhxrpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hexresearch","download_url":"https://codeload.github.com/hexresearch/hxrpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240840106,"owners_count":19866168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T06:37:05.751Z","updated_at":"2025-02-26T11:17:19.262Z","avatar_url":"https://github.com/hexresearch.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## 5-oct-2017\n\nПопытка измерять пропускную  способность канала методом packet pairs ( примерно, как в pprate ).\n\nЧто видно на текущий момент:\n\nЧто хорошо:\n\n - Канал занимается очень слабо, и его использование не приводит к бану/отключению сетевого\n   интерфейса на хостинге. Можно мерять с очень низкими издержками, мало серверов, маленький\n   трафик, etc\n\n - В целом, похоже, что работает. Т.е на разных каналах величины сходятся к цифрам,\n   которые соответствуют ширине канала с точностью до выплесков и некоторой \n   систематической погрешности, которые можно устранить.\n\n - Т.е правдоподобно меряется и ethernet и wifi на текущий момент   \n\n\nЧто плохо:\n\n\n - Судя по всему, в условиях, когда канал загружен не полностью,\n   меряется максимальная пропускная способность канала **без шейпинга**.\n   Более того, шейпинг, *видимо* работает так, что какие-то существенные\n   задержки в *packet inter-arrival time intervals* начинают вноситься только\n   тогда, когда загрузка канала приближается к максимальной.\n\n   Следовательно, методика меряет физическую пропускную способность\n   провода Ethernet, который воткнут в роутер, но не то, насколько\n   этот канал зашейплен.\n\n   По крайней мере, на текущий момент ситуация выглядит так, т.е\n   если эта гипотеза верна, то даже улучшение точности таймстемпов\n   пакетов никак не поможет.\n\n\nНапример, вот гистограмма с шагом 10 мегабит на канале 100 мегабит,\nзашейпленном на 80 мегабит у провайдера:\n\n\n\t10 1486   # выплеск, интервалы между двойками пакетов\n\t20 5\n\t30 25\n\t40 6\n\t50 1\n\t70 28\n\t80 80        #\n\t90 186       # \u003c- куда-то сюда мы должны были попасть\n\t100 271      # \u003c-- вот это вот всё, что ниже --- объясняется\n\t110 293      # тем, что времена прибытия пакетов меряется не на роутере,\n\t120 182      # где канал 100mbit, а на точке за роутером, где 1000mbit,\n\t130 67       # а пакеты в роутере каким-то образом буферизуются и\n\t140 41       # интервалы между ними не сохраняются\n\t150 27       # т.е **в теории**, если мерять непосредственно на роутере\n\t160 15       # и иметь точные таймстемпы пакетов --- всё может стать\n\t170 8        # несколько лучше.\n\t180 7\n\t190 4\n\t200 10\n\t210 4\n\t220 8\n\t230 9\n\t240 4\n\t250 2\n\t260 6\n\t270 16\n\t280 13\n\t290 14\n\t300 13\n\t310 6\n\t320 4\n\t330 4\n\t340 5\n\t360 1\n\t370 3\n\t380 1\n\t390 2\n\t400 3\n\t410 2\n\t420 3\n\t430 4\n\t440 7\n\t450 3\n\t460 9\n\t470 4\n\t480 2\n\t490 26\n\t500 16\n\t510 18\n\t520 7\n\t530 3\n\t540 4\n\t550 2\n\t660 1\n\t960 1\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexresearch%2Fhxrpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexresearch%2Fhxrpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexresearch%2Fhxrpp/lists"}