ООО «Центр Грузовой Техники»

8(812)244-68-92

Содержание

НИИЭВМАШ – Научно-исследовательский институт «Экспертизы в машиностроении»

26 Февраль 2018 admin

07 января 2018 года вступили в силу поправки к решению комиссии таможенного союза №977, а в след за ними вышел новый приказ МВД России, в соответствии с которым утвержден новый порядок допуска транспортных средств к перевозки опасных грузов. На основании изложенного, регистрация автоцистерн и прочих ТС, предназначенных для транспортировки опасных грузов, в ГИБДД прекращена. Сотни и тысячи машин не могут работать, сотрудники ДПС останавливают и отправляют автомобили на штрафные стоянки, а юридическим лицам выписываются крупные штрафы. Ситуацию не могли прояснить ни в Ространснадзоре, ни в ГИБДД, ни в МВД. На сегодняшний день, порядок наконец таки определен. Так, для получения в подразделениях МРЭО заветного разрешения, необходимо предоставить:  Читать дальше »

9 Февраль 2015 admin

Основной вопрос, волнующий всех владельцев переоборудованных транспортных средств, какие именно нужны документы и как оформить переоборудование в ГАИ? На сегодняшний день, переоборудование микроавтобусов, грузовых автомобилей и других транспортных средств в ГИБДД является практически невыполнимой задачей. Каждый раз органы ГИБДД отказывают во внесении изменений в ПТС после переоборудования, потому что на сегодняшний день процедура переоборудования является настолько сложной, что даже сами инспекторы ГАИ в ней не разбираются. Наш Научно-исследовательский институт «Экспертизы в машиностроении» является уполномоченной организацией в области производства переоборудования колесных транспортных средств, в частности переоборудования грузовых автомобилей. Мы осуществляем переоборудование фургонов, самосвалов, автобусов, машин и оборудования двигателей, в том числе переоборудование в грузопассажирский, в микроавтобус, в эвакуатор и другие виды работ.
Читать дальше »

Переоборудование. Что можно ставить, а что – нет — Kolesa.kz || Почитать

Расспросить, что разрешено сегодня улучшать в автомобилях, а что — нет, мы решили у тех, кто состояние транспортных средств, выезжающих на улицы, контролирует, то есть у самих полицейских. Свои вопросы мы задали заместителю начальника управления Государственной автомобильной инспекции КАП МВД РК Юрию Козлову.

— Предлагаем пройтись по автомобилю, как говорится, сверху донизу. Начнём, пожалуй, с багажника. Нужно ли его регистрировать?

— Багажник, предназначенный для эксплуатации именно с данным типом транспортного средства, в регистрации не нуждается. Это должно быть подтверждено документально заводским сертификатом. Все остальные, в том числе самодельные багажники, обязаны пройти процедуру проверки и оформления переоборудования, так как конструкция их не проходила никаких испытаний.

— А как быть со съёмными багажниками? Их тоже нужно вписывать в техпаспорт?

— Как правило, вписывают в особые отметки экспедиционные багажники. Их крепят к каркасу кузова, и снятие подобной конструкции довольно затратное занятие. Легкосъёмным багажникам регистрация не нужна. Но опять-таки они должны быть заводского производства либо пройти проверку соответствия в НИИ ТК. При этом документы на багажник лучше возить с собой во избежание всяческих дорожных недоразумений.

Аналогичная ситуация с фаркопом. Если техническая документация транспортного средства предусматривает буксировку прицепа (не каждое ТС для этого предназначено), у авто будут в наличии специальные крепления для установки фаркопа. Соответственно, никаких дополнительных разрешений на фаркоп не требуется. Но наши люди «творческие» и частенько пытаются совместить несовместимое. Им придётся «чужой» или кустарный фаркоп узаконивать, обратившись за разрешением в отдел технической инспекции департамента полиции по месту жительства (ОДТИ). У новых машин паспорт изделия имеется, и все допуски, в том числе фаркоп, там прописываются.

— Но если машина взята с рук, причём сразу с фаркопом? Ранее за него никто не гонял, а теперь вдруг патрульные начали. Что делать? Как узнать, разрешён ли фаркоп для этой марки и модели?

— Брать б/у авто с разного рода усовершенствованиями можно только на свой страх и риск. Чаще всего изменения в конструкцию в них делались кустарным способом, без учёта технических характеристик. К примеру, тот же багажник, изготовленный в домашних условиях, может выглядеть как заводской. Но при его производстве был использован иной вид стали. Какая получилась грузоподъёмность, не знает никто. Также неизвестно, как поведут себя крепления подобного багажника при движении с полной нагрузкой.

— Можно ли как-то выяснить, разрешён ли фаркоп на том или ином старом авто?

— Есть Интернет, есть руководства по эксплуатации. Там всё указывается. Достаточно немного напрячься и поискать. Единственное, что без проверки и регистрации нельзя ставить даже на машины, где фаркоп предусмотрен, — фаркопы кустарного производства. Отличить такие устройства от заводских можно даже визуально. К заводским фаркопам у сотрудников полиции вопросов возникнуть не должно. А если они превысят свои полномочия, нужно жаловаться руководству.

— А как быть с кенгурятником? Это сегодня больная тема.

— У нас есть технический регламент, в котором говорится, что всё, что было ввезено в ЕАЭС и зарегистрировано до 1 января 2014 года, может ездить беспрепятственно. Это касается, к примеру, Mitsubishi Pajero 2, старых Nissan Terrano, Toyota Surf, Prado 90-х — начала 2000-х годов выпуска и т. д. На них, как правило, ставились кенгурятники промышленного изготовления, хотя и разной конфигурации. Сегодня вопрос по таким авто закрыт: ввезённые до 2014 года могут ездить с кенгурятниками свободно. Вписывать в техпаспорт кенгурятники нет необходимости. Установка кенгурятников, дуг и любых других конструкций, выступающих за габариты транспортного средства, на машинах, ввезённых после 1 января 2014 года, категорически запрещена. Ту же дугу можно устанавливать на новых авто только снизу, и при этом она не должна выступать за проекцию бампера.

— Шноркель регистрируем? О нём водители также часто спрашивают.

— Шноркель? Если он конструктивно предусмотрен заводом-изготовителем, вопросов нет. Для самостоятельной установки нужно пройти проверку и регистрацию.

— Требование касается даже фирменных шноркелей, к примеру фирмы ARB, изготавливаемых специально под разные марки и модели авто?

— А кто их устанавливает, вы знаете? Это ведь изменения в систему питания двигателя. Где гарантия, что на СТО всё сделают профессионально? К тому же шноркель влияет на обзор с места водителя. Так что правильность его установки крайне важна.

— Если уж заговорили о системе питания, как быть с ГБО или увеличением/снижением мощности двигателя?

— Конструкционные изменения, та же установка ГБО или переделка системы питания, требуют прохождения экспертизы и регистрации. К сожалению, некоторые наши водители уверены, что можно поставить газ в авто и забыть о нём. В то время как ГБО обязательно должно проходить необходимое плановое техническое обслуживание, те же патрубки, расходники необходимо менять, течеискатели — проверять, в общем, оборудованию нужен уход.

Кстати, по новому стандарту, вступившему в силу в июле 2019 года, владельцы машин с ГБО должны ежегодно проходить проверку оборудования в специальных сертифицированных центрах. Без отметки о проверке техосмотр они не пройдут. Подобных учреждений в стране пока мало, но работа в этом направлении ведётся. Комитет стандартизации их регистрирует.

— А изменение мощности? Какие допуски есть по изменению? На сколько сейчас разрешено повышать или понижать мощность?

— Для узаконения изменения объёма двигателя необходимо получить разрешение завода-изготовителя либо отдела дорожно-технической инспекции. Для этого нужно обратиться с управление адмполиции по месту регистрации авто.

По стандарту замена бензиновых и дизельных двигателей легковых автомобилей на моторы другой модели возможна, только если новый ДВС будет слабее не более чем на 15 % или мощнее не более чем на 25 %, чем прежний. При необходимости разрешается заменить и бензиновый двигатель на дизельный, но только если показатели после установки увеличатся или уменьшатся не более чем на 20 %. А в случае замены дизельных на бензиновые — на 40 % при повышении мощности и на 10 % — при понижении.

Резюмируем

  1. Багажник разрешён заводской. Кустарный — только прошедший испытания, с документами.
  2. Не нуждаются в регистрации багажники, изготовленные автопроизводителем для своих машин, к примеру тойотовский для «тойот».
  3. Силовые от чужих марок и моделей регистрировать обязательно.
  4. Легкосъёмные не нужно. Но они опять-таки должны быть заводскими.
  5. Фаркоп разрешён только заводской.
  6. Если установка фаркопа предусмотрена автопроизводителем, регистрация не нужна.
  7. Если фаркоп изначально не предусмотрен, даже заводской нужно регистрировать.
  8. Кенгурятник — только на машинах старше 2014 года.
  9. Шноркели, не предусмотренные заводом, — только с разрешением и регистрацией.
  10. ГБО — только после экспертизы и регистрации.
  11. Изменение мощности — только с разрешения, не больше и не меньше, указанных в стандарте. Обязательна проверка соответствия и регистрация.

— Перейдём к дополнительному освещению. Что разрешено сегодня из тюнинга оптики, а что — нет?

— Всё, что ставится ниже уровня фар, получения разрешения и регистрации не требует (при условии, что это не кустарщина). Всё, что хоть немного выше фар, нужно регистрировать.

— Но в России разрешили дополнительное освещение закрывать. К примеру, те же люстры на багажнике.

— В России заставляют регистрировать всё, даже свет, прошедший оценку соответствия. У нас же, в Казахстане, с этим чуть попроще, но только в случае установки какого-то навесного допоборудования.

— Больная тема — дневные ходовые огни.

— По ДХО можно сказать следующее: если их установка предусматривается заводом-изготовителем — никаких проблем! Для авто той же марки и модели можно заменить, например, блок-фары обычные на фары с ДХО. Установка же всяческих диодных лент внутри, снаружи фар или на бампере вовсе запрещена. Во-первых, неизвестно, насколько ярко подобные огни светят. А во-вторых, это может привести к пожару. По закону без согласования возможна только установка заводских ДХО, предназначенных конкретно для определённой марки и модели. Всё остальное — только после оформления. Для этого нужно обратиться с заявлением в ОДТИ, получить разрешение, установить приборы, пройти проверку на правильность установки, интенсивность, цвет свечения и т. д. и внести изменения в техпаспорт.

— Разрешена ли сегодня подсветка днища?

— Мы против подобного тюнинга. С одной стороны, он вроде бы никому не мешает, с другой — это всё-таки дополнительная электрическая цепь, работающая в агрессивной среде. По факту получается мина замедленного действия: когда проводка коротнёт и чем это может закончиться, не знает никто. Патрульные должны запрещать эксплуатацию подобных авто, пока подсветку не снимут.

— А как быть с заменой фар на световые приборы от других марок?

— Она возможна только на автомобилях, снятых с производства. Причём по закону замена (установка) устройств освещения и световой сигнализации или внесение изменений в их конструкцию, включая изменение класса источников света в фарах, будет считаться переоборудованием и, соответственно, требовать получения разрешения и регистрации.

Резюмируем

  1. Дополнительный свет, устанавливаемый ниже уровня фар, регистрировать не нужно, выше — должен пройти проверку и быть вписан в техпаспорт.
  2. ДХО — только заводские.
  3. «Чужие» ДХО — после проверки и регистрации.
  4. Диодные ленты запрещены.
  5. Подсветка днища запрещена.
  6. Замена фар — только на старых авто. Проверка и регистрация обязательны.

— Как обстоят дела с занижением подвески или, наоборот, подъёмом?

— Занижение, как и лифт, в общем, всё, что касается ходовой, — обязательно по согласованию.

— Даже установка проставок?

— Устанавливая проставки или убирая пару колец с пружины, автовладельцы меняют характеристики: жёсткость, центр тяжести и т. д. Всё это сказывается на управляемости транспортного средства и должно проходить через предварительную экспертизу и протокол проверки.

— А шины другого диаметра?

— Как правило, заводы-изготовители предусматривают разбег размеров колёс. К примеру, от 13 до 15 дюймов. Всё, что больше или меньше, нужно согласовывать. Проверить, те ли шины стоят на авто, патрульные могут, открыв переднюю дверь и посмотрев на бирку с рекомендуемыми заводом размерами. Хотите сменить колёса на большие или маленькие, пишете заявление, мы рассмотрим его и отправим на предварительную техническую экспертизу. Получите одобрение и пройдёте успешно протокол безопасности — пожалуйста, ставьте! В техпаспорт изменения внесут. Но следует помнить, что с подобной записью в особых отметках уже нельзя будет ездить на штатных шинах. Для этого придётся проходить обратную процедуру.

— Разрешена ли сегодня установка или снятие сидений?

— Установка сидений, не предусмотренных конструкцией, запрещена. Демонтаж разрешён только легкосъёмных. Всё остальное согласовывается, вносятся изменения в техпаспорт. Разово снять сиденья в легковом авто можно, к примеру чтобы перевезти тот же шкаф. Но для продолжительной эксплуатации в подобном режиме нужна регистрация. При разовой перевозке груза со снятыми сиденьями у патрульных вопросов обычно не возникает. Но если вы хотите использовать такое авто в коммерческих целях, превратив его, по сути, в малотоннажный грузовичок, нужно соблюсти ряд условий. В частности, установить перегородку между грузовым и пассажирским отсеком, пройти экспертизу и т. д.

— Нас периодически спрашивают читатели, можно ли переделать пассажирскую «Газель» на бортовую?

— Можно, но это будет считаться переоборудованием, для которого потребуется получить разрешение и пройти техническую экспертизу.

— Можно ли по кузову ставить детали от более новых или старых моделей авто, например крылья, крышка капота и т. д.?

— Если при внесении изменений в конструкцию используются новые или, наоборот, старые составные части или предметы оборудования (например, при изготовлении так называемых маскл-каров с новой начинкой и «пожилой» внешностью), перед началом работ нужно получить разрешение ОДТИ, экспертов НИИ ТК, а после — пройти проверку на правильность установки.

Резюмируем

  1. Любые изменения в подвеске (лифт, проставки, занижение) — разрешение, одобрение и регистрация в СРТС.
  2. Шины другого диаметра — регистрация.
  3. Замена кузова, снятие стационарных сидений — получение разрешения и регистрация, а для установки более новых деталей кузова ещё и сертификаты или декларации от официалов.

Более подробно требования к автомобилям, находящимся в эксплуатации, и их переоборудованию изложены в Приложениях 8 и 9 Технического регламента Таможенного союза ТР ТС 018/2011 «О безопасности колёсных транспортных средств», а также в стандарте СТ РК 1418-2018 «Автомототранспортные средства. Внесение изменений в конструкцию. Общие положения и технические требования».

Удачи на дорогах!

Переоформление автомобиля с категории С на В

Абсолютно все транспортные средств подлежат определенной категории (С, А, B или D). Выяснить принадлежность автотранспорта к тому или иному виду классификации помогают его технические характеристики, грузоподъемность, количество мест для сидения, фактическая масса автомобиля.

Поэтому для того, что бы переоборудовать машину с одной категории в другую необходимо в первую очередь поставить ее характеристики в соответствие и под выбранную классификацию.

Сменить категорию транспортного средства – это не вытянуть лишние сидения.

Изменения количества посадочных мест только повлечет за собою большие проблемы при переоформлении, прохождении технического осмотра, постановки машины на учет.

Главная цель после демонтажа и всех проделанных работ, что бы автотранспорт соответствовал категории, которая записана в техпаспорте. Процесс внесения изменений необходимо проводить в установленном порядке.

Что означают категории «С» и «В»

Все транспортные средства классифицируются по категориям в зависимости от многих составляющих и технических характеристик автомобиля, объемов двигателя, веса, количество мест для сидения и многих других особенностей.

Каждая категория четко дает нам понять, каким критериям должно соответствовать транспортное средство, что бы попадать под ее классификацию.

Категория «С»

Под категорию «С» попадают все транспортные средства, максимальный вес которых превышает 3500 кг, или машины, что сцепливаются с прицепами, вес которых не больше 750 кг.

Другими словами если у вас в водительском удостоверении есть отметка с «С» категорией, то ездить вам необходимо на грузовиках, что тяжелее от 3.5 тонны и присоединять прицеп не тяжелее от 750 кг.

Водителям, что имеют данную категорию, запрещается управлять другими транспортными средствами (мотоциклами, грузовиками или легковыми машинами) что легче от 3.5 тонн.

Если вы хотите управлять автотранспортом с прицепом, масса которого превышает 0.75 тонны вам необходимо открыть смешанную категорию «СЕ».

Категория «С» имеет свои производные – под категории «С1», «С1Е» и вышеуказанную «СЕ». Они так же классифицируют транспортное средство за своим весом и наличием прицепов.

К примеру категория «С1» дает управлять грузовиком массою от 3500 кг до 7500 кг. А «С1Е» разрешает водить агрегаты с прицепами больше 750 кг, но общий вес грузовик плюс прицеп не должен быть больше 12 тонн.

Получается так, что главная категория «С» дает возможность передвигаться на всех низших категориях этого рода.

Категория «В»

Под категорию В попадает весь автотранспорт (кроме мотоциклов «А»-категории) разрешенный максимальный вес которого не больше 3500 кг, а количество пассажирских сидений, не считая водительского места, не больше восьми.

Если автотранспорт категории «В» соединен с прицепом, то его масса не должна превышать 0.75тонн, если она больше, то фактический вес автомобиля вместе с прицепом не должен быть больше 3500 кг.

Если у вас в водительском удостоверении отметка, напротив «В», то вам разрешается управления всеми вышеперечисленными транспортными средствами, что отвечают указанным требованиям.

Подкатегорией «В» является категории «ВЕ», что разрешает управлять автовладельцам машинными связанными с прицепом, что тяжелее 750 кг, но при условии суммарной массы авто плюс прицеп не большей от 3500 кг.

А подкатегория «В1» дает возможность ездить на квадрициклах (не квадроциклах) и трициклах. Так же у вас есть возможность управлять мотоколясками.

В каких случаях производится

Что бы переквалифицировать машину с одной категории в другую необходимо изменить ее характеристики, но зачем это делать?

Почему автовладельцы отчаиваются на этот шаг и заморачиваются, собирают документы, проводят в ГИБДД до недели, с какой выгодной то целью?

Первый и значительный плюс – это частота прохождения технического осмотра. Водители «С»-категории проходят проверку транспортного средства на исправность и наличие повреждений в два раза чаще, чем водители легкового автотранспорта.

Второй положительный момент – это возможность проезда по запрещенным местам для грузовиков. Очень часто по городу стоят знаки, что запрещают въезд автомобилям с весом более 3500 кг.

Так же проезд по мостам и другим местам, зонам города. Сменив категорию транспортного средства, у вас появляется больше возможностей для езды и границы расширяются

Цена страхового полиса напрямую зависит от категории машины, и указанные расценки на сайтах страховщиков это наглядно подтверждают.

Так же больше заплатить придется за диагностическую карту, ведь узлов у автотранспорта больше чем в легковом, проверять будут дольше, и стоимость соответственно выше.

Что касается страхования, нужна ли страховка при переоформлении автомобиля, то она должна быть записана уже на новую, измененную категорию.

Ведь при неправильном заполнении полиса в случае дорожно-транспортного происшествия юридическое учреждение откажет в компенсации.

Во сколько обойдется

Переоформление категории процедура не из дешевых. Мало того, что вам придется заплатить за саму процедуру и документы, так еще обращаясь за помощью к аккредитованным компаниям оплатить, придется их услуги и работу.

Средняя стоимость переоформления из «С» в «В» по России является таковой:

Предоставленные услугиЦена (рубли)
Внесение изменений в техпаспорт200
Новое регистрационное свидетельство300
Свидетельство о соответствии конструкции500
Работа по переоборудованию от компаний (в зависимости от объема)2000 – 5 000

Пакет необходимых документов

Для того, что бы переоформить категорию транспортного средства необходимо изменить технические характеристики автомобиля и представить сотрудникам ГИБДД следующие документы:

  • техпаспорт;
  • регистрационное свидетельство;
  • страховой полис ОСАГО;
  • заявление на переоформление;
  • заключение из института;
  • заявление-декларацию;
  • диагностическая карта;
  • гражданский паспорт;
  • оплаченные квитанции за выдачу свидетельства о регистрации, внесение изменений в техпаспорт или его замену.

Требования к автомобилю

Категория «С» — это грузовик с весом более 3.5 тонны и возможным прицепом как до 750 кг, так и больше при использовании подкатегорий «СЕ» и «С1Е».

Категория «В» подразумевает в себе транспортное средство о 3.5 тонн и максимальное количество посадочных мест, без водительского сидения не больше 8.

Что бы переоформить категорию автомобиля вам необходимо избавится от лишних сидений, если у вас их больше 8 и уменьшить вес агрегата, что составит меньше 3500 кг.

Если ваш автотранспорт отвечает вышеуказанным требованием, вы смело можете подавать документы на переоформление машины.

Отдельно следует обратить внимание на грузоподъемность, установка и удаление сидений, вырезка окон, устранение перегородок и прочие детали, с которыми необходимо будет иметь дело вам либо организациям, что будут проводить работы.

Куда обратиться за переоформлением

Вникнуть и понять процедуру переоформление транспортного средства – это еще полдела. Но как менять конструкцию машины, куда обращаться с чего начать? Подобные вопросы задаются на интернет-форумах каждый день.

Существует два выхода с ситуации. Вносить изменения в конструкцию транспортного средства и заняться работой по переоформлению машины могут специализированные компании – первый способ доверить работу профессионалам и мастерам своего дела.

Второй вариант – это заняться изменениями конструкции авто самостоятельно в домашних условиях.

В случае подачи заявления на переоформление автотранспорта, в декларации вам необходимо будет указать, каким образом осуществлялась работа – вами лично либо сертифицированными учреждениями.

Обратиться можно и за помощью к соседу, который занимается ремонтами машин, имеет свою станцию технического обслуживания, а в заявлении указать себя.

Но ГИБДД не проведешь в том случае, что они без особой охоты берутся за работу частников или подозрительных контор, ссылаясь на то, что не уверены в качестве роботы и безопасности изменений.

Когда сосед прикрутит сидения, не так как полагается, виновником будет работник ГИБДД, что упустил с виду и не сделал замечание.

Когда вам услуги по переоборудованию предоставила аккредитованная компания, то за качество и безопасность отвечает уже организация.

Поэтому сотрудники ГИБДД без особых проверок приступают к «бумажной волоките»

Как поступить в данном вопросе решать вам и следует отталкиваться от своих возможностей.

Если вы хороший мастер, не один год ремонтируете автотранспорт, у вас появились навыки и профессиональный взгляд, то можно хорошо сэкономить и провести работы по демонтажу самостоятельно, а установку доверить аккредитованным фирмам.

Если вы совершенно не соображаете в предстоящих работах и можете полагаться только на помощь соседа, лучше всю работу доверить специалистам и быть уверенным в результате. А время, затраченное на машину направить на работу в основной деятельности.

На Российском рынке существует множество компаний, центров и фирм, что специализируются на ремонте транспортных средств.

Большинство из них производит демонтаж оборудования и дальнейшую установку новых деталей в транспортное средство при переоформлении с категории «С» на «В».

Порядок

  1. Первое, что необходимо сделать – это посетить ГИБДД, где вы регистрировали грузовик и пройти осмотр до переоборудования. Инспектор делает пару снимков и отдает вам акт техосмотра инспектора.
  2. Потом пишем заявление, что хотите переоформить грузовик и указывает, что конкретно будете менять (количество сидений добавите до 8, уменьшите вес за счет подвески и другое). Его подписывают и оставляют в МРЭО.
  3. Потом едете домой, и переоборудует агрегат сами либо обращаетесь в акредитированные организации, что занимаются данной работой.
  4. Получаете выводы экспертизы о том, что переоборудованный агрегат безопасен и соответствует все требованиям. Его выдает компания, что имеет на это разрешение.
  5. Потом посещаете ГИБДД и экспертиза проводиться там, делаются фотографии.
  6. Оплачиваете госпошлину
  7. Потом вам выдается акт осмотра от сотрудников МРЭО.
  8. Заблаговременно собранный перечень документов плюс только что полученные бумаги и заявления подаем в приемное окошко.
  9. Потом вам выдается новое ПТС где указана «В»-категория или с внесением изменений, и новое свидетельство о регистрации.
    Процедура переоформления считается завершенной

Переоформления категории автомобиля производятся по причинам экономии денег, связанных со страховкой и техосмотрами, а так же возможностью проезжать по всем участкам города, где запрещен проезд автомашинам «С»-категории.

Переоформлять агрегат можно самостоятельно, так и обратившись за помощью в переоформлении автомобилей аккредитованным организациям, которые возьмут плату за услуги.

Процедура подразумевает несколько этапов, уплата госпошлины, предоставление необходимых документов.

Видео: Как правильно заполнить анкету для смены регистрационных данных

Контроль перегрузки TCP

Контроль перегрузки TCP В этом разделе мы вернемся к нашему изучению TCP. Как мы узнали в разделе 3.5, TCP обеспечивает надежный транспортный сервис между двумя запущенными процессами. на разных хостах. Другой чрезвычайно важный компонент TCP — это его механизм контроля перегрузки. Как мы указывали в предыдущем разделе, TCP должен использовать сквозное управление перегрузкой, а не с помощью сети контроль перегрузки, поскольку уровень IP не обеспечивает обратной связи до конца системы относительно перегрузки сети.Прежде чем углубляться в детали управления перегрузкой TCP, давайте сначала рассмотрим высокоуровневый обзор TCP механизм контроля перегрузки, а также общая цель, к которой стремится TCP когда несколько TCP-соединений должны совместно использовать полосу пропускания перегруженного ссылка. .

TCP-соединение контролирует скорость передачи, ограничивая его количество. переданных, но еще не подтвержденных сегментов. Обозначим это количество допустимых неподтвержденных сегментов как w , часто упоминаемое как размер окна TCP .В идеале TCP-соединения должны разрешено передавать как можно быстрее (т. е. иметь как можно большее число ожидающих неподтвержденных пакетов, насколько это возможно) до тех пор, пока сегменты не теряются (сбрасываются на маршрутизаторах) из-за перегрузки. В очень широком В терминах TCP-соединение начинается с небольшого значения w , а затем «зонды» на наличие дополнительной неиспользуемой полосы пропускания канала в ссылки на его сквозном пути путем увеличения w . TCP-соединение продолжает увеличиваться w до тех пор, пока не произойдет потеря сегмента (как обнаружено тайм-аутом или дублированием подтверждений).Когда случается такая потеря, TCP-соединение сокращает w до «безопасного уровня», а затем начинает снова исследуя неиспользуемую полосу пропускания, медленно увеличивая w .

Важным показателем производительности TCP-соединения является его пропускная способность. — скорость, с которой он передает данные от отправителя к получателю. Очевидно, что пропускная способность будет зависеть от значения w . W. Если отправитель TCP передает все w сегментов один за другим, он должен затем подождите в течение одного времени приема-передачи (RTT), пока он не получит подтверждения для этих сегментов, после чего он может отправить w дополнительных сегмента.Если соединение передает w сегментов размером MSS байт каждые RTT секунд, то пропускная способность соединения или скорость передачи равна ( w * MSS) / RTT байт в секунду.

Предположим теперь, что K TCP-соединений пересекают канал пропускной способности R. Предположим также, что по этому каналу не проходят UDP-пакеты, что каждое TCP-соединение передает очень большой объем данных, и это ни одно из этих TCP-соединений не проходит через какой-либо другой перегруженный канал. В идеале размеры окон в TCP-соединениях, проходящих по этой ссылке, должны быть таким, чтобы каждое соединение достигало пропускной способности R / K . В более общем случае, если соединение проходит через N ссылок, со ссылкой п имея скорость передачи R n и поддержка в общей сложности K n TCP-соединений, тогда в идеале это соединение должно обеспечивать ставка R n / K n на n -я ссылка.Однако средняя сквозная скорость этого соединения не может превышать минимальный скорость, достигнутая на всех звеньях на сквозном пути. Это сквозная скорость передачи для этого соединения составляет r = min {R 1 / K 1 , …, R N / K N } . Целью TCP является обеспечение этого соединения со сквозной скоростью . r . (На самом деле формула для r более сложная, так как мы должны принять во внимание тот факт, что один или несколько промежуточных соединения могут быть узкими по какой-либо другой ссылке, которой нет в этом сквозной путь и, следовательно, не может использовать свою долю полосы пропускания, R n / K n .В этом случае значение r будет больше, чем мин {R 1 / K 1 , …, R N / K N } . )

3.7.1 Обзор управления перегрузкой TCP

В разделе 3.5 мы видели, что каждая сторона TCP-соединения состоит из буфер приема, буфер отправки и несколько переменных ( LastByteRead, RcvWin и т. Д.) Механизм контроля перегрузки TCP имеет каждую сторону соединения отслеживают две дополнительные переменные: перегрузку окно и порог .Окно перегрузки, обозначенное CongWin, накладывает дополнительное ограничение на объем трафика, который хост может отправить в соединение. В частности, количество неподтвержденных данных, которые хост может иметь в TCP-соединение не может превышать минимум CongWin и RcvWin , т.е. LastByteSent — LastByteAcked <= min {CongWin, RcvWin}.

Порог, который мы подробно обсуждаем ниже, представляет собой переменную, которая влияет на рост CongWin .

Давайте теперь посмотрим, как окно перегрузки развивается в время жизни TCP-соединения. Чтобы сосредоточиться на контроле перегрузки (как в отличие от управления потоком), предположим, что буфер приема TCP настолько большой, что ограничение окна приема можно игнорировать. В этом случае, количество неподтвержденных данных, которые хост может иметь в TCP-соединение ограничено только CongWin . Далее предположим что отправитель имеет очень большой объем данных для отправки получателю.

После установления TCP-соединения между двумя конечными системами прикладной процесс отправителя записывает байты в TCP-отправку отправителя буфер. TCP захватывает фрагменты размера MSS, инкапсулирует каждый фрагмент в сегмент TCP и передает сегменты на сетевой уровень для передачи по сети. Окно перегрузки TCP регулирует время, в которое сегменты отправляются в сеть (т. е. передаются на сетевой уровень). Изначально окно перегрузки равно одному MSS.TCP отправляет первый сегментируется в сеть и ждет подтверждения. Если этот сегмент подтверждается до того, как истечет время его таймера, отправитель увеличивает перегрузку окно на один MSS и отправляет два сегмента максимального размера. Если эти сегменты подтверждены до истечения времени ожидания, отправитель увеличивает перегрузку окно на один MSS для каждого из подтвержденных сегментов, что приводит к перегрузке окно из четырех MSS и отправляет четыре сегмента максимального размера. Эта процедура продолжается до тех пор, пока (1) окно перегрузки ниже порогового значения и (2) подтверждения приходят до соответствующих им тайм-аутов.

На этом этапе процедуры управления перегрузкой перегрузка окно увеличивается экспоненциально быстро, т.е. окно перегрузки инициализируется до одного MSS, после одного RTT окно увеличивается до двух сегментов, после два раза туда и обратно окно увеличивается до четырех сегментов, после трех время прохождения в оба конца окно увеличивается до восьми сегментов и т. д. Эта фаза алгоритма называется медленный старт , потому что он начинается с небольшого окно перегрузки, равное одному MSS.(Скорость передачи соединения начинает медленно, но быстро ускоряется.)

Фаза медленного старта заканчивается, когда размер окна превышает значение порог . Когда окно перегрузки превышает текущее значение от порога окно перегрузки растет линейно, а не чем в геометрической прогрессии. В частности, если w — текущее значение окно перегрузки и w больше порога , затем после Вт благодарности Прибыли, TCP заменяет w на w + 1 .Это имеет эффект увеличения окна перегрузки на единицу в каждом RTT, для которого Окно подтверждений прибывает. Эта фаза алгоритма называется , предотвращение перегрузки .

Фаза предотвращения перегрузки продолжается до тех пор, пока подтверждения прибывают до соответствующих тайм-аутов. Но размер окна, а значит скорость, с которой отправитель TCP может отправлять, не может увеличиваться вечно. В конце концов, скорость TCP будет такой, что одна из ссылок на пути становится насыщенным, и потеря какой точки (и, как следствие, тайм-аут в отправитель) произойдет.Когда происходит таймаут, значение порога устанавливается на половину значения текущего окна перегрузки, а окно перегрузки сбрасывается до одного MSS. Затем отправитель снова увеличивает окно перегрузки экспоненциально быстро с использованием процедуры медленного старта до тех пор, пока окно перегрузки достигает порогового значения.

Вкратце:

  • Когда окно перегрузки ниже порогового значения, окно перегрузки растет в геометрической прогрессии.
  • Когда окно перегрузки превышает пороговое значение, окно перегрузки растет линейно.
  • Каждый раз, когда наступает тайм-аут, порог устанавливается равным половине текущего значения. окно насыщения и окно насыщения затем устанавливается равным единице.
Если мы проигнорируем фазу медленного старта, мы увидим, что TCP существенно увеличивает размер его окна на 1 каждый RTT (и, таким образом, увеличивает скорость передачи аддитивным коэффициентом), когда его сетевой путь не перегружен, и уменьшает размер его окна в два раза для каждого RTT, когда путь перегружен. По этой причине TCP часто называют аддитивным увеличением и мультипликативным уменьшением . (AIMD) алгоритм.


Рисунок 3.7-1: Развитие окна перегрузки TCP

Развитие окна перегрузки TCP показано на рисунке. 3.7-1. На этом рисунке порог изначально равно 8 * MSS. Окно скопления растет экспоненциально быстро во время медленный старт и достигает порога на третьей передаче. Затор затем окно увеличивается линейно до тех пор, пока не произойдет потеря, сразу после передачи 7. Обратите внимание, что окно перегрузки составляет 12 * MSS, когда происходит потеря. Порог затем устанавливается на.5 * CongWin = 6 * MSS и устанавливается окно перегрузки 1. И процесс продолжается. Этот алгоритм контроля перегрузки обусловлен В. Якобсону [Jac88]; ряд модификаций к исходному алгоритму Якобсона описаны в [Stevens 1994, RFC 2581].

Поездка в Неваду: Тахо, Рино и Вегас Только что описанный алгоритм управления перегрузкой TCP часто упоминается как как Tahoe . Одна из проблем алгоритма Тахо заключается в том, что когда сегмент утеряна сторона-отправитель приложения, возможно, придется ждать долгое время времени на тайм-аут.По этой причине вариант Tahoe, получивший название Reno , реализуется большинством операционных систем. Как и Тахо, Рино устанавливает свои пробки окно до одного сегмента по истечении таймера. Однако Рино тоже включает механизм быстрой ретрансляции, который мы рассмотрели в разделе 3.5. Напомним, что быстрая повторная передача запускает передачу отброшенного сегмента. если три повторяющихся ACK для сегмента получены до возникновения тайм-аута сегмента. Reno также использует быстрого восстановления механизм, который по существу отменяет фазу медленного старта после быстрого ретрансляция.Заинтересованный читатель воодушевлен, так что см. [Stevens 1994, RFC 2581] для подробностей.

Большинство реализаций TCP в настоящее время используют Reno алгоритм. Однако в литературе есть еще один алгоритм: Алгоритм Вегаса, который может улучшить производительность Рино. В то время как Тахо и Reno реагирует на перегрузку (т.е. на переполнение буферов маршрутизатора), Vegas пытается чтобы избежать перегрузки при сохранении хорошей пропускной способности. Основная идея Vegas предназначен для (1) обнаружения перегрузки в маршрутизаторах между источником и пунктом назначения. до происходит потеря пакетов, и (2) линейно понижать скорость, когда это неизбежное обнаружена потеря пакетов.Неминуемая потеря пакетов прогнозируется путем наблюдения время приема-передачи — чем больше время приема-передачи пакетов, тем больше перегрузка в маршрутизаторах. Алгоритм Вегаса подробно обсуждается в [Brakmo 1995]; изучение его характеристики приведены в [Ahn 1995]. В качестве с 1999 года Vegas не входит в состав наиболее популярных реализаций TCP.

Мы подчеркиваем, что контроль перегрузки TCP эволюционировал с годами, и все еще развивается. Что было хорошо для Интернета, когда большая часть TCP-соединения, передающие трафик SMTP, FTP и Telnet, не обязательно хорошо для сегодняшнего Интернета, в котором преобладает Интернет, или для Интернета будущего, который будет поддерживать неизвестно какие виды услуг.

Обеспечивает ли TCP справедливость?

В приведенном выше обсуждении мы отметили, что цель контроля перегрузки TCP механизм заключается в том, чтобы равномерно распределять пропускную способность узкого канала между TCP соединения, проходящие по этой ссылке. Но почему должна увеличиваться добавка TCP, Алгоритм мультипликативного уменьшения достигает этой цели, в частности учитывая, что разные TCP-соединения могут запускаться в разное время и, следовательно, может иметь разные размеры окон в данный момент времени? [Чиу 1989] предоставляет элегантное и интуитивно понятное объяснение того, почему контроль перегрузки TCP сходится, чтобы обеспечить равную долю пропускной способности узкого звена среди конкурирующие TCP-соединения.

Давайте рассмотрим простой случай, когда два TCP-соединения используют один канал со скоростью передачи R, как показано на Рисунке 3.7-2. Предположим, что два соединения имеют одинаковые MSS и RTT (так что, если они имеют одинаковый размер окна перегрузки, тогда у них одинаковая пропускная способность), что у них есть большой объем данных для отправки, и что никакие другие TCP-соединения или дейтаграммы UDP пересекают эту общую ссылку. Также мы проигнорируем медленный начать фазу TCP и предположить, что TCP-соединения работают в режиме перегрузки режим избегания (аддитивное увеличение, мультипликативное уменьшение) в любое время.


Рисунок 3.7-2: Два TCP-соединения, использующие одно узкое место ссылка

На рис. 3.7-3 показана пропускная способность двух TCP-соединений. Если TCP должен поровну распределять пропускную способность канала между двумя подключениями, тогда реализованная пропускная способность должна упасть по стрелке под углом 45 градусов («равно доля полосы пропускания «) исходящая от источника. В идеале, сумма двух пропускных способностей должно равняться R (разумеется, каждое соединение, получающее равная, но нулевая доля пропускной способности канала — нежелательная ситуация!), поэтому цель должна состоять в том, чтобы достигнутая пропускная способность упала где-то рядом пересечение линий «равная доля полосы пропускания» и «полная пропускная способность» утилизация »строчка в.Рисунок 3.7-3.

Предположим, что размеры окна TCP таковы, что в данной точке в время, соединения 1 и 2 реализуют пропускную способность, обозначенную точкой A на рисунке. 3.7-3. Поскольку совместно используемая пропускная способность канала на два соединения меньше R, потери не произойдет, и оба соединения увеличивают свое окно на 1 за RTT в результате перегрузки TCP алгоритм избегания. Таким образом, совместная пропускная способность двух подключений продолжается по линии под углом 45 градусов (одинаковое увеличение для обоих соединений), начиная из пункта А.В конечном итоге пропускная способность канала, совместно используемая два соединения будут больше, чем R, и в конечном итоге потеря пакетов будет происходить. Предположим, что соединения 1 и 2 испытывают потерю пакетов, когда они реализуют пропускную способность, указанную точкой B. Подключения 1 и 2 затем уменьшают окна в два раза. Результирующая пропускная способность реализованы, таким образом, в точке C, на полпути вдоль вектора, начинающегося в B и заканчивающийся в начале координат. Поскольку совместное использование полосы пропускания меньше чем R в точке C, два соединения снова увеличивают свою пропускную способность. по линии под углом 45 градусов, начиная с C.В конце концов, потеря снова будет возникают, например, в точке D, и эти две связи снова уменьшают свои размеры окон в два раза. И так далее. Вы должны убедить вы, что пропускная способность, реализованная двумя соединениями, в конечном итоге колеблется вдоль линии равной полосы пропускания. Вы также должны убедить себя, что две связи будут сходиться к этому поведению независимо от откуда они в двухмерном пространстве! Хотя ряд идеализированных предположений, лежащих в основе этого сценария, он по-прежнему обеспечивает интуитивное понимание того, почему TCP приводит к равному распределению полосы пропускания среди соединений.


Рисунок 3.7-3: Пропускная способность, обеспечиваемая TCP-соединениями 1 и 2

В нашем идеализированном сценарии мы предположили, что только TCP-соединения проходят через узкое место, и что только одно TCP-соединение связано с парой хост-пункт назначения. На практике эти два условия обычно не выполняются, и поэтому клиент-серверные приложения могут получать очень неравные части пропускной способности канала.

Многие сетевые приложения работают через TCP, а не UDP, потому что они хотите использовать надежную транспортную службу TCP.Но приложение разработчик, выбирающий TCP, получает не только надежную передачу данных, но и TCP контроль перегрузки. Мы только что видели, как контроль перегрузки TCP регулирует скорость передачи приложения через механизм окна перегрузки. Многие мультимедийные приложения не работают через TCP именно по этой причине — они не хотят, чтобы их скорость передачи была ограничена, даже если сеть очень загружен. В частности, многие Интернет-телефон и Интернет Приложения видеоконференцсвязи обычно работают по протоколу UDP.Эти приложения предпочитают закачивать свои аудио и видео в сеть на постоянная скорость и иногда теряют пакеты, а не снижают их скорость на «честных» уровнях во время перегрузки и без потери пакетов. Из с точки зрения TCP, мультимедийные приложения, работающие через UDP, нечестно — они не сотрудничают с другими связями и не корректировать их скорость передачи соответствующим образом. Основная проблема в в ближайшие годы будут разработаны механизмы контроля перегрузки для Интернет, которые не позволяют трафику UDP увеличивать пропускную способность Интернета. до полной остановки.

Но даже если бы мы могли заставить UDP-трафик вести себя справедливо, справедливость проблема все равно не решена полностью. Это потому, что есть ничто не мешает приложению, работающему по TCP, использовать несколько параллельных соединения. Например, веб-браузеры часто используют несколько параллельных TCP. подключения для передачи веб-страницы. (Точное количество нескольких подключений настраивается в большинстве браузеров.) Когда приложение использует несколько параллельных подключений, он получает большую долю пропускной способности в перегруженном ссылка.В качестве примера рассмотрим канал со скоростью R, поддерживающий 9 действующих клиент-сервер. приложения, причем каждое из приложений использует одно TCP-соединение. Если появляется новое приложение, которое также использует одно TCP-соединение, затем каждое приложение получает примерно такую ​​же скорость передачи R / 10. Но если это новое приложение вместо этого использует 11 параллельных TCP-соединений, тогда новое приложение получает несправедливое распределение R / 2. Потому что веб-трафик настолько распространен в Интернете, что несколько параллельных подключений не необычно.

Макроскопическое описание динамики TCP Рассмотрите возможность отправки очень большого файла через TCP-соединение. Если мы возьмем макроскопическое представление трафика, отправляемого источником, мы можем игнорировать фаза медленного старта. Действительно, соединение находится в фазе медленного старта. на относительно короткий период времени, потому что связь разрастается фазы экспоненциально быстро. Когда мы игнорируем фазу медленного старта, окно перегрузки увеличивается линейно, при возникновении потерь сокращается пополам, растет линейно, при выпадении разрубается пополам и т. д.Это дает подняться до пилообразного поведения TCP [Стивенс 1994], показанный на Рисунке 3.7-1.

Учитывая такое пилообразное поведение, какова средняя пропускная способность TCP? связь? В течение определенного интервала приема-передачи скорость, с которой TCP отправляет данные — это функция окна перегрузки и текущего RTT: когда размер окна составляет Вт * MSS и текущее время приема-передачи равно RTT, тогда скорость передачи TCP будет ( w * MSS) / RTT. Во время заторов фаза предотвращения, TCP проверяет дополнительную пропускную способность, увеличивая w на по одному на каждое RTT до тех пор, пока не произойдет потеря; обозначим W значение w при котором происходит потеря.Предполагая, что RTT и W приблизительно равны постоянна на протяжении всего соединения, скорость передачи TCP варьируется от ( Вт * MSS) / (2RTT) до ( Вт * MSS) / RTT.

Эти предположения приводят к сильно упрощенной макроскопической модели для устойчивое поведение TCP: сеть отбрасывает пакет из соединения при увеличении размера окна подключения до Вт * MSS; скопление затем окно сокращается вдвое, а затем увеличивается на один MSS за цикл туда и обратно. время, пока оно снова не достигнет Вт. Этот процесс повторяется снова и снова. Поскольку пропускная способность TCP увеличивается линейно между два крайних значения, мы имеем:

средняя пропускная способность соединения = (0,75 * Вт * MSS) / RTT.

Используя эту в высшей степени идеализированную модель для стационарной динамики TCP, мы также можем получить интересное выражение, которое связывает коэффициент потерь до доступной полосы пропускания [Mahdavi 1997]. Этот вывод изложен в домашних задачах.

3.7.2 Задержка моделирования: окно статического перегрузки

Многие TCP-соединения передают относительно небольшие файлы с одного хоста. к другому.Например, с HTTP / 1.0 каждый объект на веб-странице переносится через отдельное TCP-соединение, и многие из этих объектов представляют собой небольшой текст файлы или крошечные значки. При транспортировке небольшого файла TCP-соединение установление и медленный запуск могут существенно повлиять на задержку. В этом разделе мы представляем аналитическую модель, которая количественно оценивает влияние установления соединения и медленного старта по задержке. Для данного объекта мы определяем задержку как время с момента, когда клиент инициирует TCP-соединение до тех пор, пока клиент не получит запрошенный объект в целиком.

Представленный здесь анализ предполагает, что сеть не перегружена, то есть TCP-соединение, передающее объект, не должно разделять пропускная способность канала с другим трафиком TCP или UDP. (Прокомментируем это предположение ниже.) Также, чтобы не заслонять центральные вопросы, мы несем из анализа в контексте простой сети с одним звеном, как показано на Рисунке 3.7-4. (Эта ссылка может моделировать единственное узкое место на сквозной дорожка. См. Также домашние задания для явного распространения на случай. из нескольких ссылок.)


Рисунок 3.7-4: Простая однолинейная сеть, соединяющая клиента и сервер

Мы также делаем следующие упрощающие предположения:

  1. Объем данных, которые отправитель может передать, ограничивается исключительно окно перегрузки отправителя. (Таким образом, буферы приема TCP большие.)
  2. Пакеты не теряются и не повреждаются, поэтому повторных передач нет.
  3. Все накладные расходы заголовка протокола, включая TCP, IP и заголовки канального уровня — незначительны и игнорируются.
  4. Передаваемый объект (то есть файл) состоит из целого числа сегментов размера MSS (максимальный размер сегмента).
  5. Единственные пакеты, которые имеют существенное время передачи, — это пакеты. которые несут TCP-сегменты максимального размера. Пакеты запросов, подтверждения и пакеты установления TCP-соединения малы и имеют незначительное время передачи.
  6. Начальный порог в механизме контроля перегрузки TCP — большой значение, которое никогда не достигается окном перегрузки.
Также введем следующие обозначения:
  1. Размер передаваемого объекта составляет O бит.
  2. MSS (сегмент максимального размера) составляет S бит (например, 536 байтов).
  3. Скорость передачи канала от сервера к клиенту составляет R бит / с.
  4. Время приема-передачи обозначается RTT.
В этом разделе мы определяем RTT как время, прошедшее для небольшого пакета. для перехода от клиента к серверу, а затем обратно к клиенту, исключая время передачи пакета .Он включает в себя два сквозных задержки распространения между двумя конечными системами и время обработки в двух оконечных системах. Будем предполагать, что RTT также равно к времени приема-передачи пакета, начиная с сервера.

Хотя анализ, представленный в этом разделе, предполагает, что сеть с одним TCP-соединением, тем не менее, она проливает свет на более реалистичный случай многосвязной перегруженной сети. Для перегруженного сети, R примерно представляет собой количество полосы пропускания, получаемой в постоянном состояние в сквозном сетевом соединении; а RTT представляет собой двусторонний задержка, которая включает задержки в очереди на маршрутизаторах, предшествующих перегруженному ссылки.В случае перегруженной сети мы моделируем каждое TCP-соединение как соединение с постоянной скоростью передачи R бит / с, которому предшествует одиночный медленный старт фаза. (Примерно так ведет себя TCP Tahoe при обнаружении потерь с трехкратным подтверждением.) В наших числовых примерах мы используем значения значений R и RTT, которые отражают типичные значения для перегруженной сети.

Прежде чем приступить к формальному анализу, попробуем немного разобраться в интуиции. Давайте посмотрим, какой была бы задержка, если бы не было окна перегрузки. ограничение, то есть, если серверу было разрешено отправлять сегменты один за другим пока не будет отправлен весь объект? Чтобы ответить на этот вопрос, сначала отметьте, что один RTT требуется для инициации TCP-соединения.После одного RTT клиент отправляет запрос на объект (который совмещается с третьим сегментом в трехстороннем рукопожатии TCP). После двух RTT клиент начинает получать данные с сервера. Клиент получает данные с сервера в течение периода времени O / R, время, в течение которого сервер передает все объект. Таким образом, в случае отсутствия ограничения окна перегрузки общая задержка составляет 2 RTT + O / R. Это представляет собой нижнюю границу; процедура медленного старта, с его динамическим окном перегрузки, конечно, увеличит эту задержку.

Окно статической перегрузки

Хотя TCP использует окно динамической перегрузки, поучительно сначала проанализировать случай статического окна перегрузки. Пусть W, натуральное число, обозначают окно статической перегрузки фиксированного размера . Для статического окно перегрузки, серверу не разрешается иметь более W неподтвержденных выдающиеся сегменты. Когда сервер получает запрос от клиента, сервер немедленно отправляет клиенту W сегментов подряд. В затем сервер отправляет один сегмент в сеть для каждого подтверждения он получает от клиента.Сервер продолжает отправлять один сегмент для каждое подтверждение до тех пор, пока все сегменты объекта не будут послал. Следует рассмотреть два случая:
  1. WS / R> RTT + S / R. В этом случае сервер получает подтверждение для первого сегмента в первом окне до того, как сервер завершит передача первого окна.
  2. WS / R
Давайте сначала рассмотрим случай 1, который проиллюстрирован на рис. 3.7-5. На этом рисунке размер окна W = 4 сегмента.
Рисунок 3.7-5: случай, когда WS / R> RTT + S / R Для установления TCP-соединения требуется один RTT. После одного RTT клиент отправляет запрос на объект (который совмещается с третьим сегментом в трехстороннем рукопожатии TCP). После двух RTT клиент начинает получать данные с сервера. Сегменты периодически приходят из сервер каждые S / R секунд, и клиент подтверждает каждый сегмент, который он получает от сервера.Поскольку сервер получает первое подтверждение прежде чем он завершит отправку сегментов окна, сервер продолжает для передачи сегментов после передачи значения первого окна сегментов. И поскольку подтверждения периодически приходят в сервер каждые S / R секунд с момента получения первого подтверждения, сервер передает сегменты непрерывно, пока не будет передан весь объект. Таким образом, как только сервер начинает передавать объект со скоростью R, он продолжает передавать объект со скоростью R, пока весь объект не передается.Таким образом, задержка составляет 2 RTT + O / R.

Теперь давайте рассмотрим случай 2, который проиллюстрирован на рис. 3.7-6. В На этом рисунке размер окна W = 2 сегмента.


Рисунок 3.7-6: случай, когда WS / R Еще раз, после двух RTT клиент начинает получать сегменты. с сервера. Эти сегменты прибывают периодически каждые S / R секунд, и клиент подтверждает каждый сегмент, который он получает от сервера. Но теперь сервер завершает передачу первого окна перед первое подтверждение приходит от клиента.Поэтому после отправки окно, сервер должен остановиться и дождаться подтверждения, прежде чем возобновление передачи. Когда, наконец, приходит подтверждение, сервер отправляет клиенту новый сегмент. Как только приходит первое подтверждение, появляется окно подтверждений, с каждым последующим подтверждением интервалы между S / R секундами. Для каждого из этих подтверждений сервер отправляет ровно один сегмент. Таким образом, сервер чередуется между двумя состояниями: состояние передачи, во время которого он передает W сегментов; и застопорился состояние, в течение которого ничего не передает и ожидает подтверждения.Задержка равна 2 RTT плюс время, необходимое серверу для передать объект, O / R, плюс количество времени, в котором находится сервер заглохшее состояние. Чтобы определить количество времени, в течение которого сервер находится в остановленное состояние, пусть K = O / WS; если O / WS не является целым числом, округлить K в большую сторону до ближайшего целого числа. Обратите внимание, что K — это количество окон данных в нем. находятся в объекте размера O. Сервер находится в остановленном состоянии между пропускание каждого из окон, то есть для периодов времени K-1, с каждым периодом длительностью RTT- (W-1) S / R (см. диаграмму выше).Таким образом, для случая 2,

Задержка = 2 RTT + O / R + (K-1) [S / R + RTT — W S / R].

Объединяя два случая, получаем

Задержка = 2 RTT + O / R + (K-1) [S / R + RTT — W S / R] +

, где [x] + = max (x, 0).

На этом наш анализ статических окон завершен. Анализ ниже для динамические окна более сложны, но аналогичны анализу статических окна.

3.7.3 Задержка моделирования: окно динамического перегрузки

Теперь мы исследуем задержку передачи файла при динамической перегрузке TCP. окно в силе.Напомним, что сервер сначала запускается с перегрузкой окно одного сегмента и отправляет один сегмент клиенту. Когда он получает подтверждение для сегмента, увеличивает его окно перегрузки в два сегмента и отправляет два сегмента клиенту (разделенных S / R секунд). Когда он получает подтверждения для двух сегментов, он увеличивает окно перегрузки до четырех сегментов и отправляет четыре сегмента клиенту (опять же через интервалы S / R в секундах). Процесс продолжается, с окном насыщения, удваивающим каждое RTT.Временная диаграмма для TCP показан на рис. 3.7-7.
Рисунок 3.7-7: Время TCP при медленном запуске

Обратите внимание, что O / S — это количество сегментов в объекте; в приведенном выше диаграмма, O / S = 15. Учитывайте количество сегментов в каждом окон. Первое окно содержит 1 сегмент; второе окно содержит 2 сегмента; третье окно содержит 4 сегмента. В более общем смысле, k-е окно содержит 2 k-1 сегмента. Пусть K — количество окна, закрывающие объект; на предыдущей диаграмме K = 4.В основном мы можем выразить K через O / S следующим образом:

После передачи данных в окне сервер может остановиться (т. Е. прекратить передачу), пока он ожидает подтверждения. В предыдущем диаграмма, сервер останавливается после передачи первого и второго окон, но не после передачи третьего. Давайте теперь посчитаем количество время остановки после передачи k-го окна. Время, когда сервер начинает передавать k-е окно до тех пор, пока сервер не получит подтверждение для первого сегмента в окне — S / R + RTT.В время передачи k-го окна (S / R) 2 k-1 . Стойло время есть разница этих двух величин, то есть

[S / R + RTT — 2 k-1 (S / R)] + .

Сервер может зависнуть после передачи каждого из первые окна К-1. (Сервер готов после передачи K-го window.) Теперь мы можем рассчитать задержку для передачи файла. В задержка состоит из трех компонентов: 2RTT для настройки TCP-соединения и запрос файла; O / R — время передачи объекта; и сумма всех простоев.Таким образом,

Читателю следует сравнить приведенное выше уравнение для уравнения задержки для окна статической перегрузки; все условия точно такие же, кроме термин WS / R для статических окон заменен на 2 k-1 S / R для динамические окна. Чтобы получить более компактное выражение для задержки, пусть Q — количество остановок сервера, если объект содержит бесконечное количество сегментов:

Фактическое количество остановок сервера P = min {Q, K-1}. в предыдущая диаграмма P = Q = 2.Объединение двух приведенных выше уравнений дает

Мы можем еще больше упростить приведенную выше формулу для задержки, отметив Объединение двух приведенных выше уравнений дает следующее выражение в замкнутой форме для задержки: Таким образом, чтобы вычислить задержку, мы просто должны вычислить K и Q, установить P = min {Q, K-1} и подставьте P в приведенную выше формулу.

Интересно сравнить задержку TCP с задержкой, которая возникает, если не было управления перегрузкой (то есть не было окна перегрузки ограничение). Без контроля перегрузки задержка составляет 2RTT + O / R, что мы определяем как Минимальная задержка .Это простое упражнение, чтобы показать что

Из приведенной выше формулы видно, что медленный запуск TCP незначительно увеличить задержку, если RTT << O / R, то есть, если время приема-передачи равно намного меньше, чем время передачи объекта. Таким образом, если мы отправляем относительно большой объект по незагруженному высокоскоростному каналу, затем медленный start незначительно влияет на задержку. Однако с Интернетом мы часто передают множество мелких объектов по перегруженным ссылкам, в которых случай медленного старта может значительно увеличить задержку (как мы увидим в следующий подраздел).

Давайте теперь рассмотрим несколько примеров сценариев. Во всех сценариях мы устанавливаем S = 536 байт, общее значение по умолчанию для TCP. Мы будем использовать RTT 100 мсек, что не является нетипичным значением для континентального или межконтинентального задержка по умеренно загруженным ссылкам. Сначала рассмотрите возможность отправки довольно большой объект размером O = 100 Кбайт. Количество окон, которые закрывают это объект K = 8. Для ряда скоростей передачи следующие Диаграмма исследует влияние механизма медленного старта на задержку.

р ИЛИ п Минимальная задержка:
O / R + 2 RTT
Задержка
с медленным стартом
28 Кбит / с 28.6 с. 1 28,8 с 28.9 с.
100 кбит / с 8 сек 2 8,2 с 8.4 с.
1 Мбит / с 800 мсек 5 1 сек 1.5 сек
10 Мбит / с 80 мсек 7 0,28 с 0,98 с
Из приведенного выше графика видно, что для большого объекта медленный старт значительно увеличивает задержка только при высокой скорости передачи. Если скорость передачи низкий, то подтверждения возвращаются относительно быстро, а TCP быстро набирает максимальную скорость. Например, при R = 100 Кбит / с число периодов задержки P = 2, тогда как количество окон для передачи K = 8; таким образом, сервер останавливается только после первых двух из восьми окон.На одной с другой стороны, когда R = 10 Мбит / с, сервер останавливается между каждым окном, что вызывает значительное увеличение задержки.

Теперь рассмотрим отправку небольшого объекта размером O = 5 Кбайт. Номер окон, закрывающих этот объект, составляет K = 4. Для числа передач На следующей диаграмме рассматривается влияние механизма медленного пуска.

р ИЛИ п Минимальная задержка:
O / R + 2 RTT
Задержка
с медленным стартом
28 Кбит / с 1.43 с 1 1,63 с 1,73 с
100 кбит / с 0,4 секунды 2 0,6 с 0,757 с
1 Мбит / с 40 мсек 3 0,24 с 0,52 с
10 Мбит / с 4 мсек 3 0,20 с 0,50 с
И снова медленный старт добавляет заметную задержку, когда передача ставка высокая.Например, при R = 1 Мбит / с сервер останавливается между каждым окна, из-за чего задержка более чем вдвое превышает минимальную задержка.

Для большего RTT влияние медленного старта становится значительным для малых объекты для меньших скоростей передачи. Следующая диаграмма исследует влияние медленного старта для RTT = 1 секунда и O = 5 Кбайт (K = 4).

р ИЛИ п Минимальная задержка:
O / R + 2 RTT
Задержка
с медленным стартом
28 Кбит / с 1.43 с 3 3,4 с 5,8 с
100 кбит / с 0,4 секунды 3 2,4 с 5.2 с.
1 Мбит / с 40 мсек 3 2,0 с 5,0 с
10 Мбит / с 4 мсек 3 2,0 с 5,0 с
Таким образом, медленный запуск может значительно увеличить задержку, когда объект размер относительно невелик, а RTT относительно велик.К несчастью, это часто сценарий при отправке объектов по всему миру Интернет.

Пример: HTTP

В качестве приложения анализа задержки давайте теперь вычислим время ответа для веб-страницы, отправленной по непостоянному протоколу HTTP. Предположим, что страница состоит из одной базовой HTML-страницы и M изображений, на которые имеются ссылки. Хранить вещи простые, давайте предположим, что каждый из M + 1 объектов содержит ровно О бит.

При непостоянном HTTP каждый объект передается независимо, один за другим.Таким образом, время отклика веб-страницы — это сумма задержек для отдельных объектов. Таким образом

Обратите внимание, что время ответа для непостоянного HTTP принимает форму: время отклика = (M + 1) O / R + 2 (M + 1) RTT + задержка из-за Медленный запуск TCP для каждого из M + 1 объектов.

Очевидно, что если на веб-странице много объектов и если RTT большой, тогда непостоянный HTTP будет иметь низкое время отклика. в проблемы с домашним заданием мы исследуем время отклика для других HTTP транспортные схемы, включая постоянные соединения и непостоянные соединения с параллельным подключением.Читателю также рекомендуется см. соответствующий анализ в [Heidemann].

Список литературы

Контроль перегрузки TCP получил огромное значение учебы и баловства с момента его первоначального принятия в 1988 году. Это не Удивительно, потому что это одновременно важная и интересная тема. В настоящее время обширная и постоянно растущая литература по этой теме. Ниже мы приводим ссылки для цитат в этом разделе, а также ссылки на некоторые другие важные работает.

[Ahn 1995] J.С. Ан, П. Б. Данциг, З. Лю и Янь, Опыт с TCP Vegas: Эмуляция и эксперимент, Труды ACM SIGCOMM ’95, Бостон, август 1995 года.
[Бракмо 1995] Л. Бракмо и Л. Петерсон, TCP Вегас: полное предотвращение перегрузок в глобальном Интернете, IEEE Журнал избранных областей в коммуникациях, 13 (8): 1465-1480, октябрь 1995 г.
[Чиу 1989] Д. Чиу, Р. Джайн, «Анализ алгоритмов увеличения и уменьшения количества перегрузок в компьютере Сети », Компьютерные сети и системы ISDN, Vol.17, стр. 1 — 14.
[Floyd 1991] S. Floyd, Connections с несколькими перегруженными шлюзами в сетях с пакетной коммутацией, часть 1: одна ватт Трафик, Обзор компьютерных коммуникаций ACM, Vol. 21, № 5, г. Октябрь 1991 г., стр. 30–47.
[Heidemann 1997] J. Heidemann, K. Obraczka и J. Touch, Моделирование производительности HTTP на нескольких транспортных средствах. Протоколы, IEEE / ACM Transactions on Networking, Vol. 5, No. 5, Октябрь 1997 г., стр. 616-630.
[Hoe 1996] J.C. Мотыга, Улучшение поведение при запуске схемы управления перегрузкой для TCP. Труды ACM SIGCOMM’96, Стэнфорд, август 1996 г.
[Jacobson 1988] V. Jacobson, Congestion Избегание и контроль. Материалы ACM SIGCOMM ’88. Август 1988 г., п. 314-329.
[Лакшман 1995] Лакшман Т.В. и У. Мэдхоу, «Анализ производительности оконного управления потоком с использованием TCP / IP: влияние продуктов с высокой пропускной способностью и задержки и случайных потерь », Транзакции IFIP C-26 , High Performance Networking V, Северная Голландия, 1994, стр.135-150.
[Махдави 1997] Дж. Махдави и С. Флойд, TCP-дружественный Одноадресное управление потоком на основе скорости. неопубликованная записка, январь 1997 г.
[Nielsen 1997] H. F. Nielsen, J. Gettys, A. Baird-Smith, E. Prud’hommeaux, H.W. Ли, К. Лилли, Сеть Влияние на производительность HTTP / 1.1, CSS1 и PNG, документ W3C, 1997 г. (также появлялся в SIGCOMM ’97).
[RFC 793] «Передача Протокол управления, RFC 793, сентябрь 1981 г.
[RFC 854] J. Постел и Дж.Рейнольдс, «Спецификации протокола Telnet», RFC 854, май 1983 г.
[RFC 1122] R. Брейден, «Требования к хостам Интернета — уровни связи», RFC. 1122, октябрь 1989 г.
[RFC 1323] В. Якобсон, С. Брейден, Д. Борман, «Расширения TCP для высокой производительности», RFC 1323, май 1992 г.
[RFC 2581] M. Allman, V. Paxson, W. Стивенс, «Контроль перегрузки TCP», RFC 2581, апрель 1999 г.
[Шенкер 1990] С. Шенкер, Л. Чжан и Д.Д. Кларк, «Некоторые наблюдения за динамикой контроля перегрузки Алгоритм », ACM Computer Communications Review, 20 (4), октябрь 1990 г., стр.30-39.
[Стивенс 1994] W.R. Стивенс, TCP / IP Иллюстрированный, Том 1: Протоколы. Аддисон-Уэсли, Рединг, Массачусетс, 1994.
[Чжан 1991] Л. Чжан, С. Шенкер, и Д.Д. Кларк, Обервации о динамике алгоритма управления перегрузкой: влияние двухстороннего Трафик, ACM SIGCOMM ’91, Цюрих, 1991.

Поиск RFC и интернет-проектов

Если вас интересует проект в Интернете по определенной теме или протокол введите здесь ключевое слово (а).





Возврат к содержанию


Авторские права Кейт В. Росс и Джеймс Ф. Курозе 1996–2000 гг. Все права защищены.



Networking 101: Строительные блоки TCP Сеть (O’Reilly)

В начале 1984 года Джон Нэгл задокументировал состояние, известное как «перегрузка». коллапс «, который может повлиять на любую сеть с асимметричной пропускной способностью. емкость между узлами сети:

В отчете сделан вывод, что коллапс заторов еще не стал проблема для ARPANET, потому что большинство узлов имеют одинаковую пропускную способность, а магистраль имела значительную избыточную пропускную способность.Однако ни один из этих утверждения оставались верными долгое время. В 1986 году, когда число (5000+) и количество узлов в сети росло, серия коллапсов перегрузки инциденты охватили всю сеть — в некоторых случаях пропускная способность упало в 1000 раз, и сеть пришла в негодность.

Для решения этих проблем в TCP было реализовано несколько механизмов. для управления скоростью, с которой данные могут отправляться в обоих направлениях: контроль потока, контроль перегрузки и предотвращение перегрузки.

§Поток Контроль

Контроль потока — это механизм, предотвращающий перегрузку отправителя получатель с данными, которые он не может обработать — получатель может быть занятым, находящимся под большой нагрузкой, или может быть готов выделить только фиксированный объем буферного пространства. Чтобы решить эту проблему, каждая сторона TCP соединение объявляет (рис. 2-2) собственное окно приема (rwnd), которое сообщает размер доступного буферного пространства для хранения входящие данные.

Когда соединение устанавливается, обе стороны инициируют свои rwnd значения, используя их системные настройки по умолчанию. Типичная веб-страница будет передавать большую часть данных с сервера клиенту, сделать окно клиента вероятным узким местом. Однако если клиент передает большие объемы данных на сервер, например, в случае изображения или загрузки видео, тогда окно приема сервера может становятся ограничивающим фактором.

Если по какой-либо причине одна из сторон не может угнаться, то она может рекламировать отправителю меньшее окно. Если окно достигает ноль, то это рассматривается как сигнал о том, что больше не нужно отправлять данные пока существующие данные в буфере не будут очищены прикладной уровень. Этот рабочий процесс продолжается на протяжении всего срока службы каждое TCP-соединение: каждый пакет ACK содержит последнее значение rwnd для с каждой стороны, что позволяет обеим сторонам динамически регулировать скорость потока данных емкости и скорости обработки отправителя и получателя.Рисунок 2-2. Размер окна приема (rwnd) рекламное объявление

§Масштабирование окна (RFC 1323)

Исходная спецификация TCP выделяла 16 бит для рекламы размер окна приема, который устанавливает жесткую верхнюю границу максимальное значение (2 16 или 65 535 байт), которое может быть рекламируется отправителем и получателем. Оказывается, эта верхняя граница равна часто недостаточно для достижения оптимальной производительности, особенно в сетях которые демонстрируют продукт задержки с высокой пропускной способностью; больше об этом можно найти Продукт задержки полосы пропускания.

Чтобы решить эту проблему, RFC 1323 был разработан, чтобы предоставить «окно TCP масштабирование », которая позволяет увеличить максимальное окно приема размер от 65 535 байт до 1 гигабайта! Параметр масштабирования окна передается во время трехстороннего рукопожатия и имеет значение, которое представляет количество бит, чтобы сдвинуть влево размер 16-битного окна поле в будущих ACK.

Сегодня масштабирование окна TCP включено по умолчанию на всех основных платформы.Однако промежуточные узлы, маршрутизаторы и брандмауэры могут перепишите или даже полностью удалите эту опцию. Если ваше подключение к сервер или клиент не может в полной мере использовать доступные пропускной способности, тогда проверка взаимодействия размеров ваших окон всегда хорошее место для начала. На платформах Linux масштабирование окна настройку можно проверить и включить с помощью следующих команд:

§Медленный старт

Несмотря на наличие управления потоком в TCP, перегрузка сети коллапс стал реальной проблемой в середине-конце 1980-х годов.Проблема была в что управление потоком не позволяло отправителю перегружать получателя, но не было механизма, который бы помешал любой из сторон подавить базовая сеть: ни отправитель, ни получатель не знают доступная пропускная способность в начале нового подключения и, следовательно, нужен механизм для его оценки, а также для адаптации их скорости к постоянно меняющиеся условия в сети.

Чтобы проиллюстрировать один пример, когда такая адаптация полезна, представьте, что вы дома и смотрите потоковую передачу большого видео с пульта сервер, который сумел насытить ваш нисходящий канал, чтобы обеспечить максимальную качественный опыт.Затем другой пользователь в вашей домашней сети открывает новый подключение для загрузки некоторых обновлений программного обеспечения. Внезапно объем доступной полосы пропускания нисходящего канала для видеопотока очень велик меньше, и видеосервер должен настроить свою скорость передачи данных — в противном случае, если он продолжается с той же скоростью, данные будут просто накапливаться в некоторых промежуточный шлюз и пакеты будут отброшены, что приведет к неэффективное использование сети.

В 1988 году Ван Якобсон и Майкл Дж.Карелы задокументировали несколько алгоритмы для решения этих проблем: медленный старт, предотвращение перегрузки, быстрая ретрансляция и быстрое восстановление. Все четыре быстро стали обязательными часть спецификации TCP. Фактически, широко распространено мнение, что это было эти обновления TCP, которые предотвратили обвал Интернета в 80-х и в начале 90-х, когда трафик продолжал расти в геометрической прогрессии. темп.

Чтобы понять медленный старт, лучше всего увидеть его в действии.Итак, однажды Еще раз вернемся к нашему клиенту, который находится в Нью-Йорке, пытается получить файл с сервера в Лондоне. Во-первых, выполняется трехстороннее рукопожатие, во время которого обе стороны рекламируют их соответствующие размеры окна приема (rwnd) в пакетах ACK (Рисунок 2-2). Однажды заключительный пакет ACK помещается на провод, мы можем начать обмен Данные приложений.

Единственный способ оценить доступную емкость между клиентами и сервер должен измерить это путем обмена данными, и это именно для чего предназначен медленный старт.Для начала сервер инициализирует новую переменную окна перегрузки (cwnd) для каждого TCP-соединения и устанавливает его начальное значение на консервативное, заданное системой значение (initcwnd в Linux).

Размер окна перегрузки (cwnd)

Ограничение на стороне отправителя на объем данных, которые отправитель может иметь в полет до получения подтверждения (ACK) от клиента.

Переменная cwnd не объявляется и не обменивается между отправителем и получатель — в этом случае это будет частная переменная, поддерживаемая сервером в Лондоне.Далее вводится новое правило: максимум количество данных в пути (не подтвержденных) между клиентом и сервером — это минимум переменных rwnd и cwnd. Пока все хорошо, но как определяют ли сервер и клиент оптимальные значения для своих размеры окна скопления? В конце концов, условия сети меняются на все время, даже между теми же двумя сетевыми узлами, как мы видели ранее пример, и было бы здорово, если бы мы могли использовать алгоритм без необходимость вручную настраивать размеры окон для каждого соединения.

Решение состоит в том, чтобы начать медленно и увеличивать размер окна по мере того, как пакеты подтверждаются: медленный старт! Первоначально начальное значение cwnd был установлен на 1 сегмент сети; RFC 2581 обновил это значение до 4 сегментов. в апреле 1999 г .; совсем недавно значение было увеличено еще раз до 10 сегментов по RFC 6928 в апреле 2013 г.

Максимальный объем передаваемых данных для нового TCP-соединения — это минимум значений rwnd и cwnd; следовательно, современный сервер может отправлять клиенту до десяти сетевых сегментов, после чего он должен остановиться и ждать подтверждения.Затем для каждого полученного ACK алгоритм медленного старта указывает, что сервер может увеличивать свой cwnd размер окна на один сегмент — для каждого ACKed пакета два новых пакета можно отправить. Эта фаза TCP-соединения широко известна как алгоритм «экспоненциального роста» (рис. 2-3), как клиент, так и сервер пытается быстро использовать доступную пропускную способность на сетевой путь между ними. Рисунок 2-3. Контроль перегрузки и предотвращение перегрузки

Итак, почему медленный старт — важный фактор, о котором нужно помнить, когда мы создавать приложения для браузера? Ну, HTTP и многое другое протоколы приложений работают через TCP, и независимо от доступных пропускная способность, каждое TCP-соединение должно проходить фазу медленного старта — мы не можем сразу использовать всю емкость ссылки!

Вместо этого мы начинаем с небольшого окна перегрузки и удваиваем его для каждую поездку туда и обратно — i.е., экспоненциальный рост. В результате время требуется для достижения определенной цели пропускной способности, является функцией (Пора достичь размера cwnd размер N) времени двустороннего обмена между клиентом и сервером и начальный размер окна перегрузки.

Пора достичь размера cwnd размера N

В качестве практического примера воздействия медленного старта предположим, что следующий сценарий:

  • Окна приема клиента и сервера: 65 535 байт (64 КБ)

  • Окно начальной перегрузки: 10 сегментов (RFC 6928)

  • Время туда и обратно: 56 мс (из Лондона в Нью-Йорк)

Несмотря на размер окна приема 64 КБ, пропускная способность нового TCP соединение изначально ограничено размером окна перегрузки.Фактически, чтобы достичь предела окна приема в 64 КБ, нам сначала нужно увеличить размер окна перегрузки до 45 сегментов, что займет 168 миллисекунды:

Это три обхода (рис. 2-4) для достижения 64 КБ пропускной способности. между клиентом и сервером! Тот факт, что клиент и сервер могут иметь возможность передачи со скоростью Мбит / с + не влияет на новый соединение установлено — это медленный старт.

В приведенном выше примере используется новое (RFC 6928) значение десять сетей. сегменты для начального окна перегрузки.В качестве упражнения повторите тот же расчет со старым размером четырех сегментов — вы видите, что это добавит дополнительные 56 миллисекунд на обратный путь к выше результат!

Рисунок 2-4. Размер окна перегрузки рост

Для уменьшения количества времени, необходимого для увеличения перегрузки окна, мы можем уменьшить время обратного обмена между клиентом и сервер — например, переместите сервер географически ближе к клиенту.Или мы можем увеличить начальный размер окна перегрузки до нового RFC 6928 стоимость 10 сегментов.

Медленный запуск не является большой проблемой для больших потоковых загрузок, поскольку клиент и сервер достигнут своих максимальных размеров окна через несколько сотен миллисекунд и продолжайте передачу почти максимальные скорости — стоимость фазы медленного пуска амортизируется в течение время жизни большей передачи.

Однако для многих HTTP-соединений, которые часто бывают короткими и прерывистый, передача данных нередко завершается до достигнут максимальный размер окна.В результате производительность многих веб-приложения часто ограничены временем обратного обмена между серверами и клиент: медленный старт ограничивает доступную пропускную способность, что отрицательно сказывается на выполнении мелких переводов.

§Медленный перезапуск

В дополнение к регулированию скорости передачи новых соединений, TCP также реализует медленный перезапуск (SSR) механизм, который сбрасывает окно перегрузки соединения после он не использовался в течение определенного периода времени.Обоснование просто: условия сети могли измениться во время подключения простаивает, и, чтобы избежать перегрузки, окно сбрасывается до «безопасный» дефолт.

Неудивительно, что SSR может оказывать значительное влияние на производительность долгоживущих TCP-соединений, которые могут простаивать в течение некоторого времени — например, из-за бездействия пользователя. В результате обычно рекомендуется отключить SSR на сервере, чтобы повысить производительность долгоживущих HTTP-соединений.На платформах Linux настройка SSR можно проверить и отключить с помощью следующих команд:

Чтобы проиллюстрировать влияние трехстороннего рукопожатия и фаза медленного старта простой передачи HTTP. Предположим, что наш клиент в Нью-Йорке запрашивает файл размером 64 КБ с сервера в Лондоне более новое TCP-соединение (рис. 2-5) и следующее соединение параметры на месте:

  • Время туда и обратно: 56 мс

  • Пропускная способность клиента и сервера: 5 Мбит / с

  • Окно приема клиента и сервера: 65 535 байт

  • Окно начальной перегрузки: 10 сегментов ()

  • Время обработки сервером ответа: 40 мс

  • Нет потери пакетов, ACK на пакет, запрос GET помещается в один сегмент

Рисунок 2-5.Получение файла поверх нового TCP соединение
0 мс

Клиент начинает квитирование TCP с пакета SYN.

28 мс

Сервер отвечает SYN-ACK и указывает размер rwnd.

56 мс

Клиент подтверждает SYN-ACK, указывает его размер rwnd и немедленно отправляет HTTP-запрос GET.

84 мс

Сервер получает HTTP-запрос.

124 мс

Сервер завершает формирование ответа размером 64 КБ и отправляет 10 TCP сегменты перед приостановкой для ACK (начальный размер cwnd равен 10).

152 мс

Клиент получает 10 сегментов TCP и ACK каждый.

180 мс

Сервер увеличивает свой cwnd для каждого ACK и отправляет 20 TCP сегменты.

208 мс

Клиент получает 20 сегментов TCP и ACK каждый.

236 мс

Сервер увеличивает свой cwnd для каждого ACK и отправляет оставшиеся 15 Сегменты TCP.

264 мс

Клиент получает 15 сегментов TCP, каждый из которых получает подтверждение.

264 мс для передачи файла размером 64 КБ по новому TCP-соединению с 56 мс время обмена между клиентом и сервером! Для сравнения, давайте сейчас предполагаем, что клиент может повторно использовать одно и то же TCP-соединение (Рисунок 2-6) и отправляет тот же запрос еще раз. Рисунок 2-6. Получение файла через существующее TCP-соединение

0 мс

Клиент отправляет HTTP-запрос.

28 мс

Сервер получает HTTP-запрос.

68 мс

Сервер завершает создание ответа размером 64 КБ, но cwnd значение уже превышает 45 сегментов, необходимых для отправки файл; следовательно, он отправляет все сегменты за один пакет.

96 мс

Клиент получает все 45 сегментов, каждый из которых получает ACK.

Тот же запрос, сделанный по тому же соединению, но без затрат трехстороннего рукопожатия и штрафа фазы медленного старта, теперь потребовалось 96 миллисекунд, что означает улучшение на 275% представление!

В обоих случаях тот факт, что и сервер, и клиент доступ к 5 Мбит / с пропускной способности восходящего потока не повлиял на запуск фаза TCP-соединения. Вместо этого задержка и перегрузка размеры окон были ограничивающими факторами.

Фактически разница в производительности между первым и вторым запрос, отправленный через существующее соединение, будет расширяться, только если мы увеличить время поездки туда и обратно; в качестве упражнения попробуйте несколько разные значения. Как только вы разовьете интуицию в механике Контроль перегрузки TCP, десятки оптимизаций, таких как поддержка активности, конвейерная обработка и мультиплексирование не потребуют дополнительной мотивации.

§Увеличение окна начальной загрузки TCP

Увеличение начального размера cwnd на сервере до нового RFC 6928 значение 10 сегментов (IW10) — один из самых простых способов улучшить производительность для всех пользователей и всех приложений, работающих через TCP.А также хорошая новость в том, что многие операционные системы уже обновлены. их последние ядра, чтобы использовать увеличенное значение — проверьте соответствующая документация и примечания к выпуску.

Для Linux IW10 является новым значением по умолчанию для всех ядер выше 2.6.39. Однако не останавливайтесь на достигнутом: обновитесь до версии 3.2+, чтобы также воспользоваться преимуществами другие важные обновления; см. Пропорциональное снижение скорости для TCP.

§Предотвращение перегрузки

Важно понимать, что TCP специально разработан для использовать потерю пакетов в качестве механизма обратной связи, чтобы помочь регулировать его представление.Другими словами, вопрос не в , а в , а в вместо , когда произойдет потеря пакета . Медленный старт инициализирует соединение с консервативным окном и для каждого туда и обратно, удваивает объем данных в полете, пока он не превысит окно управления потоком получателя, перегрузка, настроенная системой пороговое окно (ssthresh) или до тех пор, пока пакет не будет потерян, после чего алгоритм предотвращения перегрузки (рисунок 2-3) вступает во владение.

Неявное предположение при предотвращении перегрузки состоит в том, что потеря пакетов свидетельствует о перегрузке сети: где-то по пути у нас обнаружил перегруженный канал или маршрутизатор, который был вынужден отключить пакет, и, следовательно, нам нужно настроить наше окно, чтобы не вызывать дополнительных потеря пакетов, чтобы избежать перегрузки сети.

Как только окно перегрузки сброшено, предотвращение перегрузки указывает собственные алгоритмы увеличения окна, чтобы минимизировать дальнейшие потери.В определенный момент произойдет еще одно событие потери пакета, и процесс повторится еще раз. Если вы когда-нибудь смотрели на пропускную способность отслеживание TCP-соединения и обнаружил в нем пилообразный узор, теперь вы знаете, почему это выглядит так: это контроль перегрузки и алгоритмы предотвращения, регулирующие размер окна перегрузки для учета за потерю пакетов в сети.

Наконец, стоит отметить, что улучшение контроля перегрузки и избегание — активная область как для академических исследований, так и для коммерческих продукты: есть приспособления под разные типы сетей, разные типы передачи данных и так далее.Сегодня, в зависимости от вашей платформы, вы, вероятно, запустите один из множества вариантов: TCP Tahoe и Reno (оригинальные реализации), TCP Vegas, TCP New Reno, TCP BIC, TCP CUBIC (по умолчанию в Linux) или составной TCP (по умолчанию в Windows), среди многих другие. Однако, независимо от вкуса, основная производительность последствия контроля перегрузок и предотвращения перегрузок актуальны для всех.

§Пропорциональное снижение скорости для TCP

Определение оптимального способа восстановления после потери пакетов — это нетривиальное упражнение: если вы слишком агрессивны, то прерывистое потерянный пакет существенно повлияет на пропускную способность всего подключения, и если вы не настроитесь достаточно быстро, вы будете вызвать большую потерю пакетов!

Первоначально TCP использовал мультипликативное уменьшение и добавление Алгоритм увеличения (AIMD): при потере пакета уменьшите вдвое размер окна перегрузки, а затем медленно увеличивайте окно на фиксированная сумма за поездку туда и обратно.Однако во многих случаях AIMD слишком консервативны, а значит, были разработаны новые алгоритмы.

Пропорциональное снижение скорости (PRR) — это новый алгоритм, определенный RFC 6937, целью которого является повышение скорости восстановления, когда пакет потерян. Насколько это лучше? Согласно сделанным измерениям в Google, где был разработан новый алгоритм, он обеспечивает 3–10% уменьшение средней задержки для соединений с потерей пакетов.

PRR теперь является алгоритмом предотвращения перегрузки по умолчанию в Linux. 3.2+ ядра — еще один веский повод обновить серверы!

Оптимизация TCP для повышения производительности сети в Google Cloud и гибридных сценариях

Эта статья поможет вам понять способы уменьшения задержки соединения между процессы в Google Cloud. В статье описаны методы вычислить правильные настройки для уменьшения задержки TCP-соединения.

Современная архитектура микросервисов утверждает, что разработчики должны создавать небольшие услуги с единоличной ответственностью.Службы должны взаимодействовать с использованием TCP или UDP, в зависимости от ожидаемой надежности системы. Поэтому это критически важен для систем на основе микросервисов для надежной и низкой задержка.

Google Cloud обеспечивает надежность и низкую задержку, обеспечивая глобальная сеть, Это означает, что наши пользователи также могут выйти на глобальный уровень. Наличие глобальной сети означает что пользователь может просто создать VPC что может охватывать регионы и зоны. Приложения могут подключаться друг к другу в разных регионах и зонах без каких-либо ограничений. покидая сеть Google Cloud.

Приложения, написанные для традиционной среды центра обработки данных могут демонстрировать низкую производительность при перемещении в гибридное облако среды, то есть когда некоторые компоненты приложения работают в корпоративной среде. дата-центр и другие работают в облаке. Низкая производительность может быть результатом ряд факторов. Эта статья посвящена задержкам приема-передачи и тому, как задержка влияет на производительность TCP в приложениях, которые перемещают значительный объем данных в любой части сети.

Проблема: задержка и поведение TCP

TCP использует оконный механизм для предотвращения выхода быстрого отправителя за пределы медленного. получатель. Получатель объявляет, сколько данных отправитель должен отправить до отправитель должен дождаться обновления окна от получателя. В результате, если приложение-получатель не может получать данные о соединении, существует ограничение на сколько данных может быть поставлено в очередь в ожидании приложения.

Окно TCP позволяет эффективно использовать память при отправке и получении системы.Поскольку принимающее приложение потребляет данные, обновления окна отправляются на Отправитель. Максимально быстрое обновление окна — это всего одна операция в оба конца, что приводит к следующей формуле для одного из пределов объемного переноса производительность TCP-соединения:

Пропускная способность <= размер окна / время приема-передачи (RTT), задержка

В оригинальном дизайне для TCP это окно имеет максимальный размер 65535 байт. (64 Кбайт — 1). Это был максимальный объем данных, который отправитель мог отправить. до того, как отправитель получит обновление окна, чтобы разрешить передачу большего количества данных послал.

Изменения в TCP с момента его введения

С момента появления TCP были изменены некоторые ключевые функции:

  • Типичная скорость сети увеличилась на четыре порядка.
  • Типичный объем памяти в системе увеличился на четыре порядка.

Результатом первого изменения является то, что исходные размеры окна TCP привели к неэффективное использование сетевых ресурсов. Отправитель отправит окно на сумму данные на максимально возможной скорости в условиях сети, а затем бездействовать в течение значительное время ожидания обновления окна TCP.В результатом второго изменения является то, что отправители и получатели могут использовать больше памяти для работы в сети, чтобы устранить ограничение, обнаруженное при первом изменении.

Следующая диаграмма иллюстрирует этот обмен.

Отправитель не может полностью использовать сеть, потому что он ожидает TCP обновление окна перед отправкой дополнительных данных.

Отправка большего количества данных за раз

Решение состоит в том, чтобы отправлять больше данных за раз. Поскольку пропускная способность сети увеличивается, больше данных может поместиться в трубу (сеть), и по мере того, как труба получает дольше, требуется больше времени, чтобы подтвердить получение данных.Этот отношение известно как произведение задержки полосы пропускания (BDP). Это рассчитано как полоса пропускания, умноженная на время приема-передачи (RTT), в результате получается значение который определяет оптимальное количество бит для отправки, чтобы заполнить канал. В формула такая:

BDP (биты) = пропускная способность (бит / сек) * RTT (секунды)

Вычисленный BDP используется в качестве размера окна TCP для оптимизации.

Например, представьте, что у вас есть сеть 10 Гбит / с с RTT 30 миллисекунды.В качестве размера окна используйте значение исходного размера окна TCP. (65535 байт). Это значение не дает возможности воспользоваться преимуществом пропускная способность. Максимально возможная производительность TCP по этой ссылке составляет следует:

(65535 байт * 8 бит / байт) = полоса пропускания * 0,030 секунды Полоса пропускания
= (65535 байт * 8 бит / байт) / 0,030 секунды Полоса пропускания
= 524280 бит / 0,030 секунды Полоса пропускания
= 17476000 бит / сек

Другими словами, эти значения дают немного большую пропускную способность. чем 17 Мбит / с, что составляет небольшую долю от 10 Гбит / с сети возможность.

Решение: масштабирование размера окна TCP

Для устранения ограничений производительности, налагаемых оригинальной разработкой TCP. размер окна, были введены расширения протокола TCP, которые позволяют размер окна можно масштабировать до гораздо больших значений. Масштабирование окна поддерживает окна до 1 073 725 440 байт, или почти 1 ГиБ. Эта функция описана в RFC 7323 в качестве Параметр масштабирования окна TCP.

Расширения шкалы окна расширяют определение окна TCP, чтобы использовать 30 бит, а затем используйте неявный масштабный коэффициент для переноса этого 30-битного значения в 16-битном поле окна заголовка TCP.Чтобы узнать, включена ли эта функция в ОС Linux систем, используйте следующую команду:

  sudo sysctl net.ipv4.tcp_window_scaling
  

(На всех виртуальных машинах Google Cloud Linux эта функция включена по умолчанию.) Возвращаемое значение 1 указывает, что опция включена. Если функция отключена, вы можете включить ее с помощью следующей команды:

  sudo sysctl -w net.ipv4.tcp_window_scaling = 1
  

Пропускная способность с большим размером окна

Вы можете использовать предыдущий пример, чтобы показать преимущества масштабирования окна.Как и раньше, предположим, что сеть 10 Гбит / с с задержкой 30 миллисекунд, а затем вычислить новый размер окна по этой формуле:

(скорость канала * задержка) / 8 бит = размер окна

Если вы вставите примеры чисел, вы получите следующее:

(10 Гбит / с * 30 мс / 1000 с) / 8 бит / байт = размер окна
(10000 Мбит / с * 0,030 секунды) / 8 бит / байт = 37,5 МБ

Увеличение размера окна TCP до 37 МБ может увеличить теоретический предел Производительность массовой передачи TCP до значения, приближающегося к возможностям сети.Из Конечно, многие другие факторы могут ограничивать производительность, в том числе накладные расходы системы, средний размер пакета и количество других потоков, разделяющих ссылку, но, как вы можете видите, размер окна существенно снижает ограничения, наложенные предыдущими ограниченный размер окна.

Настройка параметров Linux для изменения размера окна TCP

В Linux размер окна TCP зависит от следующего: sysctl (8) перестраиваемые:

  net.core.rmem_max
net.core.wmem_max
net.ipv4.tcp_rmem
сеть.ipv4.tcp_wmem
  

Первые две настройки влияют на максимальный размер окна TCP для приложений, которые пытаться напрямую управлять размером окна TCP, ограничивая приложения запрос не более чем на эти значения. Вторые две настройки влияют на TCP размер окна для приложений, которые позволяют автонастройке Linux делать всю работу.

Оптимальное значение размера окна зависит от ваших конкретных обстоятельств, но одно начальная точка — это наибольшее значение BDP (произведение задержки полосы пропускания) для пути или пути, по которым вы ожидаете, что система будет отправлять данные.В этом случае вы хотите установите настройки, выполнив следующие шаги:

  1. Убедитесь, что у вас есть права root.
  2. Получить текущие настройки буфера. Сохраните эти настройки на случай, если вы захотите откатить эти изменения.

      sudo sysctl -a | grep mem
      
  3. Задайте для переменной среды новый размер окна TCP, который вы хотите использование:

      MaxExpectedPathBDP = 8388608
      
  4. Установить максимальный размер приемного буфера ОС для всех типов подключений:

      sudo sysctl -w net.core.rmem_max = $ MaxExpectedPathBDP
      
  5. Установить максимальный размер буфера отправки ОС для всех типов подключений:

      sudo sysctl -w net.core.wmem_max = $ MaxExpectedPathBDP
      
  6. Установить настройки буфера памяти приема TCP ( tcp_rmem ):

      sudo sysctl -w net.ipv4.tcp_rmem = "4096 87380 $ MaxExpectedPathBDP"
      

    Параметр tcp_rmem принимает три значения:

    • Минимальный размер буфера приема, который может быть выделен для сокета TCP.В этом примере значение составляет 4096 байта.
    • Размер приемного буфера по умолчанию, который также переопределяет / proc / sys / net / core / rmem_default значение, используемое другими протоколами. в Например, значение составляет 87380 байта.
    • Максимальный размер буфера приема, который может быть выделен для сокета TCP. В примере это значение, которое вы установили ранее ( 8388608 байта).
  7. Установить настройки буфера памяти отправки TCP ( tcp_wmem ):

      sudo sysctl -w net.ipv4.tcp_wmem = "4096 16384 $ MaxExpectedPathBDP"
      

    Параметр tcp_wmem принимает три значения:

    • Минимальное пространство буфера отправки TCP, доступное для одного сокета TCP.
    • Буферное пространство по умолчанию, разрешенное для одного сокета TCP.
    • Максимальное пространство буфера отправки TCP.
  8. Настройте параметры таким образом, чтобы при последующих подключениях использовались значения, которые вы указано:

      sudo sysctl -w net.ipv4.route.flush = 1
      

Чтобы сохранить эти настройки при перезагрузках, добавьте заданные вами команды ранее в файл /etc/sysctl.conf :

  sudo bash -c 'cat << EOF >> /etc/sysctl.conf
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 16384 8388608
net.ipv4.route.flush = 1
EOF '
  

Тестирование RTT с обновленным размером окна

Когда TCP имеет достаточно большой размер окна для использования BDP, изображение изменения, как показано на следующей диаграмме:

Размер окна TCP всегда можно адаптировать в зависимости от ресурсов, доступных для вовлеченный процесс и используемый алгоритм TCP.Как видно на схеме, окно масштабирование позволяет подключению выходить далеко за пределы размера окна 65 КБ, определенного в исходная спецификация TCP.

Вы можете проверить это сами. Во-первых, убедитесь, что вы установили размер окна TCP изменения на вашем локальном компьютере и на удаленном компьютере, установив параметры на обеих машинах. Затем выполните следующие команды :.

  dd if = / dev / urandom of = sample.txt bs = 1M count = 1024 iflag = fullblock
scp sample.txt ваше_имя_пользователя@remotehost.com: / some / remote / directory
  

Первая команда создает образец размером 1 ГБ .txt , содержащий случайные данные. В вторая команда копирует этот файл с вашего локального компьютера на удаленный.

Обратите внимание на вывод команды scp на консоли, которая отображает пропускную способность в Кбит / с. Вы должны увидеть значительную разницу в результатах до и после TCP. размер окна меняется.

Что дальше

Повышение гибкости TCP в гетерогенной сети

Abstract

Из-за набора постоянных начальных значений производительность обычного TCP значительно падает при столкновении с гетерогенной сетью, показывая низкую пропускную способность и несправедливость.Эта статья сначала демонстрирует хаотический характер управления перегрузкой TCP в гетерогенной сети, особенно чувствительность к начальному значению. Вдохновленная достоинствами природного алгоритма, предлагается новая структура контроля перегрузки TCP (IPPM, Internet Prey-Predator Model). Такие параметры, как доступная пропускная способность канала ( C, ), окно перегрузки ( W, ) и длина очереди ( Q ), собираются IPPM, который вычисляет максимальное значение C в соответствии с взаимодействующими отношениями, существующими в C , W и Q , и IPPM инициирует TCP ssthresh с вычисленным значением.Множество результатов моделирования показывают, что модифицированный протокол TCP может эффективно предотвращать перегрузку сети и потерю пакетов. Кроме того, он обеспечивает высокую степень использования ресурсов, скорость конвергенции, справедливость и стабильность.

Образец цитирования: Hui W, Peiyu L, Zhihui F, Zheqing L, Xuhui W. (2016) Повышение гибкости TCP в гетерогенной сети. PLoS ONE 11 (9): e0161249. https://doi.org/10.1371/journal.pone.0161249

Редактор: Вэнь-Бо Ду, Бейханский университет, КИТАЙ

Поступила: 15 апреля 2016 г .; Принято: 2 августа 2016 г .; Опубликовано: 22 сентября 2016 г.

Авторские права: © 2016 Hui et al.Это статья в открытом доступе, распространяемая в соответствии с условиями лицензии Creative Commons Attribution License, которая разрешает неограниченное использование, распространение и воспроизведение на любом носителе при условии указания автора и источника.

Доступность данных: Все соответствующие данные находятся в документе и его файлах с вспомогательной информацией.

Финансирование: Эта работа поддержана Национальным фондом естественных наук Китая в рамках гранта № 61070247, научно-технологического проекта провинции Хэнань в рамках гранта №132102210246, № 13B510001, № 14A510015 и №NGII20150311.

Конкурирующие интересы: Авторы заявили, что никаких конкурирующих интересов не существует.

1 Введение

В связи с существующими высокими значениями ошибок беспроводной связи, длительной задержкой передачи и сложной сетевой структурой в гетерогенной сети производительность традиционного TCP серьезно ограничена, поскольку TCP разработан для проводных сетей [1–2]. Мы анализируем причины упомянутых выше проблем до и после потери пакетов.До потери пакетов традиционный TCP имеет низкую адаптируемость и низкую гибкость. Как мы все знаем, TCP имеет много постоянных начальных значений, когда начинается передача. Например, начальное значение cwnd установлено как 1 mss (максимальный размер сегмента), а начальное значение ssthresh установлено как 65535 байт. Из-за стабильной среды в проводной сети постоянные значения не слишком сильно ограничивают производительность TCP, но в гетерогенной сети это вызовет множество проблем. Например, значение ssthresh, которое является порогом между фазой SS (медленный запуск) и фазой CA (предотвращение перегрузки).С одной стороны, если начальное значение ssthresh относительно мало в среде с большой пропускной способностью, небольшой задержкой и небольшой нагрузкой на канал, то поток TCP завершит фазу SS и преждевременно перейдет в фазу CA, что приведет к низкому использованию канала. С другой стороны, если ssthresh слишком велик для текущего состояния канала, отправитель увеличит скорость отправки, что может вызвать перегрузку канала и потерю пакетов. После потери пакета традиционный протокол TCP не может определить конкретную причину потери пакета.В проводной сети большая часть потерь пакетов вызвана перегрузкой, но в беспроводных или гетерогенных сетях BER — еще одна важная причина потери пакетов, которая также может вызвать снижение производительности TCP [3].

Чтобы решить проблему плохой гибкости, вызванной постоянными начальными настройками, мы предполагаем, что динамическая и соответствующая установка начального значения превратит сложную сетевую передачу в простую в использовании систему. В качестве предварительного условия передача TCP должна быть чувствительной к начальному значению.Как известно, чувствительность к начальному значению является важной характеристикой системы хаоса. Таким образом, мы должны подтвердить, что протокол TCP ведет себя хаотично в гетерогенной сети. В последние годы в литературе было опубликовано большое количество исследований по анализу природы протокола TCP. Чжао использовал реконструкцию фазового пространства в теории хаоса для обнаружения скрытого канала в исходных порядковых номерах TCP и решил проблему тестирования скрытого канала [4]. JS. Ван проверил характер бифуркации и хаоса в RED-AQM и доказал наличие порога задержки связи для определения устойчивости системы [5].Верес указал, что контроль перегрузки TCP выполняет определенную периодичность и предсказуемость, и подтвердил хаотический характер TCP в проводной сети [6]. Насколько нам известно, хаотический характер управления перегрузкой TCP в гетерогенной сети еще не подтвержден, и нет исследований, связанных с использованием теории хаоса для повышения производительности TCP в гетерогенной сети. В следующем разделе будет продемонстрирована хаотическая природа управления перегрузкой TCP в гетерогенной сети.

Чтобы вычислить начальное значение более научно и разумно и повысить гибкость TCP в гетерогенной сети, мы используем идею алгоритма, вдохновленного природой. Алгоритм, вдохновленный природой, обладает такими качествами, как самоорганизация, надежность, масштабируемость и адаптируемость, которые очень востребованы в сложной сетевой среде [7]. Кроме того, вдохновленные природой алгоритмы применялись во многих областях, таких как сетевая безопасность, повсеместные вычисления, сенсорные сети и искусственный интеллект, которые добились замечательных достижений [8–9].После анализа естественных алгоритмов и механизмов управления перегрузкой, мы предлагаем новую структуру модели управления перегрузкой TCP, основанную на алгоритме «жертва-хищник» [10]. В этой модели параметры TCP инициализируются расчетными значениями, что позволяет TCP оставаться в эффективном рабочем состоянии и максимально использовать доступную пропускную способность сети.

Остальная часть статьи организована следующим образом. В разделе 2 анализируется и проверяется хаотическая характеристика управления перегрузкой TCP в гетерогенной сети.В разделе 3 представлены теоретические основы и структура IPPM. Раздел 4 посвящен анализу параметров предложенной модели. В разделе 5 представлены и обсуждаются результаты моделирования, уделяя особое внимание пропускной способности, справедливости и скорости потери пакетов IPPM. Наконец, мы подводим итоги этого документа, а также будущей работы.

2 Обсуждение

Если система демонстрирует характеристики периодичности, странного аттрактора и чувствительности к начальному значению, мы подтверждаем эту систему как хаотическую [11].Далее мы выясним, сохраняет ли контроль перегрузки TCP в гетерогенной сети эти характеристики с помощью NS2. Сетевая среда показана на рис. 1, где S обозначает отправителя, AP (точка доступа) представляет последний переход точки беспроводного доступа, D обозначает беспроводной приемник.

2.1 Странный аттрактор хаотической природы

Странный аттрактор — это производство в хаотической системе, которое отражает двигательную характеристику неупорядоченного устойчивого состояния, а также своего рода морфологию движения хаотической системы.Мы можем доказать хаотичность системы, анализируя одномерный аттрактор [12].

Поскольку cwnd является лишь одним из множества параметров во всей системе, а не непрерывным, это означает, что cwnd не может эффективно описывать свойства сложной системы, особенно скрытую природу системы. Особенно важно более точно выразить текущее рабочее состояние системы. В литературе [13] предложен алгоритм временного сдвига для восстановления фазового пространства параметра, чтобы эффективно показать некоторые скрытые свойства в сложной системе.Алгоритм показан следующим образом: (1) (2) где x и y представляют два потока TCP. n обозначает диапазон контрольной статистики, большее значение n указывает на лучшую реконструкцию. Этот метод имеет два преимущества:

1) Пусть w представляет количество cwnd, возможные точки фазового пространства cwnd увеличатся с w 2 до (nw-n) 2 с использованием этого метода.

2) Расстояние между x [i] и x [i + 1] становится меньше при использовании этого метода, которое должно точно не превышать (2 * w-2) / n . Таким образом, этот алгоритм временного сдвига может более точно и непрерывно выражать свойства системы.

Мы устанавливаем начальные условия системы следующим образом: пропускная способность узкого канала ( BB ) = 0,5 Мбит / с, задержка канала ( LD ) = 10 мс и длина очереди ( QL ) = 20 пакетов, диапазон контроля статистика ( n ) = 100.Данные отправляются из S 1 и S 2 по проводной связи, а затем они будут отправлены с точки доступа на D 1 и D 2 соответственно. Два потока TCP выражаются как TCP 0 и TCP 1 , размер окна отправки соответственно обозначен как cwnd (0) и cwnd (1) .После использования описанного выше алгоритма для восстановления фазового пространства cwnd мы можем получить Рис. 2, где x [i] и y [i] представляют пару значений, созданных алгоритмом временного сдвига в определенный момент. Рис. 2 показывает, что аттрактор появляется после достаточного времени работы и устойчиво работает в некотором правдоподобном неупорядоченном состоянии.

Обычный метод подтверждения аттрактора как странного аттрактора — это выяснить, имеет ли аттрактор фрактальную структуру [14]. Фрактальная размерность аттрактора может быть рассчитана методом размерности ящика следующим образом.Предполагая, что S представляет длину квадрата Δ, F является непустым и ограниченным набором, а N (F) обозначает номер квадрата, в котором F пересекается с S . Тогда размер ящика вышеупомянутого аттрактора D (F) можно выразить следующим образом: (3) (4)

В уравнениях (3) и (4) мы считаем, что линейная зависимость между y и x составляет y = lgN (F) и x = lg (1 / Δ) . k — наклон lgN (F) ~ lg (1 / Δ) , а b — пересечение.Мы можем получить размер коробки этого аттрактора D (F) = k≈ 2,3371 после аппроксимации методом наименьших квадратов. Размер этого ящика не является целочисленным, что указывает на то, что аттрактор имеет фрактальную структуру, которую мы назвали странным аттрактором. Странный аттрактор — одна из основных характеристик хаоса, поэтому он противоречит нашей гипотезе и, следовательно, доказывает результат.

2.2 Чувствительность к исходному значению хаотичности

Чувствительность к начальному значению относится к незначительному изменению в начале, которое приводит к огромной разнице в конце.Это одно из важных свойств хаотической системы, а именно эффект бабочки. Затем мы проанализируем чувствительность начального значения контроля перегрузки TCP в гетерогенной среде, учитывая, что пропускная способность узкого канала ( BB ) = 2 Мбит / с, а остальные условия остаются неизменными. Результаты моделирования сравниваются между четырьмя группами экспериментов. В каждой группе TCP 0 начинает отправлять данные с 0,1 с, а TCP 1 начинается с 0.1 с, 0,5 с, 1 с и 5 с соответственно, оба они записывают значение cwnd на 10 мс. Результаты экспериментов показаны на рис. 3.

На рис. 3 показаны изменения cwnd в сценариях двух потоков при запуске в разное время. Очевидно, что последующие эволюции системы проявляют совершенно разные формы после крошечного изменения начального состояния. Вкратце, последовательность двух потоков представляет собой неравномерность и чувствительность к начальному значению, которые соответствуют свойству системы хаоса. Более того, в случае рис. 3 (b) мы можем обнаружить, что система работает хорошо, без потери пакетов, и два потока синхронно поддерживают высокую скорость передачи.В то время как в других случаях система имеет другую степень перегруженности или потери. Интуитивно система на рис. 3 (b) становится более простой и эффективной, что может доказать, что правильное начальное значение может превратить сложную систему в относительно простую и эффективную.

Далее доказывая исходную чувствительность TCP в гетерогенной сети, мы увеличиваем количество TCP-потоков до 30, в частности, BB = 1 Мбит / с, LD = 15 мс, QL = 60 пакетов.Когда время выполнения достигает 50 с, один из потоков выбирается случайным образом, и его cwnd увеличивается на 1, затем мы сравнивали систему с неизмененной. Чтобы интуитивно показать различия между этими двумя системами, мы определяем евклидово расстояние cwnd в фазовом пространстве следующим образом: (5)

В формуле (5) w orig ( i , t ) представляет собой cwnd потока (i) в момент времени t в исходной системе, w pert ( i , t ) представляет значение cwnd потока (i) в момент времени t в измененной системе.N обозначает количество TCP-потоков, здесь мы устанавливаем N = 30. На рис. 4 показана разница между двумя системами в фазовом пространстве cwnd во времени. Евклидово расстояние двух систем в фазовом пространстве cwnd равно 0 до изменения (до 50 секунд), что указывает на то, что две системы в точности совпадают. Из-за небольшого изменения, сделанного в 50-х годах (увеличение cwnd одного потока), последующее развитие системы полностью отличается от предыдущего. Это предполагает, что система имеет эффект бабочки, а эффект бабочки является одним из важных показателей хаотической системы.Учитывая эти особенности, не должно быть сомнений в том, что управление перегрузкой TCP имеет хаотический характер в гетерогенной сети.

3 Модели

В соответствии с предыдущим разделом, в котором проверялась хаотическая характеристика контроля перегрузки TCP в гетерогенной сети, мы могли сделать вывод, что набор соответствующих параметров может привести гетерогенную систему к стабильному и сбалансированному состоянию с высокой пропускной способностью. утилизация. Для достижения этой цели предлагается модель Интернет-жертва-хищник, вдохновленная природой.Причина, по которой мы выбираем алгоритм модели хищник-жертва, заключается в том, что модель хищник-жертва имеет высокую логическую взаимосвязь с механизмом контроля перегрузки TCP (представлен в следующем разделе). Более того, алгоритм, вдохновленный природой, имеет большое преимущество при решении проблемы в сложной системе.

3.1 Prey-Predator Модель

В пищевой цепи экосистемы мы предполагаем, что a и b представляют жертву и хищника соответственно, N (a) и N (b) обозначают количество каждого вида.Взаимодействие между a и b можно объяснить уравнениями (6) и (7) [6]: (6) (7) где α — естественный темп прироста a , β — коэффициент смертности, когда a является жертвами b . χ представляет собой возрастающую скорость b после молитвы на a , δ — естественный коэффициент смертности b . C N (a) относится к грузоподъемности a при отсутствии b , что означает максимальное значение N (a) .Это двухуровневая модель жертва-хищник, и ее можно расширить до трехуровневой модели, как показано в уравнениях (8) — (10). Где ε — коэффициент смертности b, когда на него охотится c. φ — это скорость увеличения c после молитвы на b . γ представляет собой естественную смерть c .

(8) (9) (10)

В трехуровневой модели жертва-хищник, когда количество b резко сокращается, a будет расти экспоненциально, поэтому b сыграл важную роль в сокращении роста .С другой стороны, когда количество a уменьшается быстро и существенно, b будет уменьшаться экспоненциально, взаимосвязь между a и b показывает характер зависимостей отношений. Кроме того, a имеет наибольшую грузоподъемность при отсутствии b . Точно так же соотношение между c и b такое же, как a и b .

3.2 Internet Prey-Predator Модель

Мы рассматриваем гетерогенную сеть как экологическую систему, в которой обитают такие виды, как cwnd, длина очереди и пропускная способность канала.Значения параметров представляют количество каждого вида, которые связаны друг с другом и влияют друг на друга, а отношения между cwnd, доступной пропускной способностью канала и длиной очереди можно описать следующим образом:

(1) Во-первых, для доступной пропускной способности канала ( C ) и cwnd ( W ), когда скорость отправки пакетов снижается, доступная пропускная способность канала увеличивается, и наоборот. С другой стороны, если есть какой-либо рост доступной пропускной способности канала, скорость отправки будет расти, и наоборот.Более того, полоса пропускания в узком канале также ограничивает максимальное значение доступной пропускной способности канала.

(2) Во-вторых, для длины очереди ( Q ) и W при отсутствии ожидающего пакета cwnd будет расти, и наоборот. Когда скорость отправки пакетов снижается, длина очереди уменьшается, и наоборот. Пропускная способность канала ограничивает максимальное значение скорости отправки пакетов.

(3) Очевидно, что отношения взаимного ограничения между C , W и Q соответствуют логике модели жертва-хищник.Другими словами, мы можем использовать модель «жертва-хищник» для определения проблемы перегрузки в гетерогенной сети, а экосистема Интернета описана на рис. 5.

Согласно трехуровневой модели жертва-хищник, модель интернет-жертва-хищник объясняется уравнениями (11) — (13), (11) (12) (13) где σ — положительный коэффициент сглаживания, а W i представляет значение cwnd, C c и C w — максимальное значение (грузоподъемность) C и W , α , β , χ , δ , ε , φ , γ были представлены выше. Q можно рассчитать по следующему уравнению, где размер пакета составляет 1040 байт.

(14)

3.3 Алгоритм управления перегрузкой

В этой статье мы разделяем управление перегрузкой TCP на две фазы: до потери пакета и после потери пакета. Предотвращение перегрузки сети — основная задача IPPM перед потерей пакетов, которую мы проиллюстрируем ниже. После потери мы можем определить причину потери пакета и принять соответствующие меры, чтобы справиться с потерей перегрузки и потерей беспроводной связи, что не является основным содержанием этой статьи.

Когда начинается поток TCP, отправитель собирает параметры из сети и вычисляет правильное значение cwnd, используя IPPM для динамической инициализации параметра. Таким образом, поток TCP может работать с оптимальным состоянием и улучшать адаптируемость к различным средам и состояниям передачи, чтобы избежать возникновения перегрузки, а также отбрасывания пакетов. Процессы сбора и настройки проводятся периодически, что может улучшить адаптируемость TCP и внести соответствующие корректировки в соответствии с динамическим изменением сети.Структура предлагаемого алгоритма управления перегрузкой TCP изображена на рис. 6.

4 Результаты

В этом разделе мы анализируем и проверяем тенденции изменения C, W и Q, а затем оцениваем производительность IPPM. Рассмотрим сценарии с четырьмя потоками, отправляемыми из S 1 ~ S 4 соответственно, а начальные значения cwnds установлены как: W 1 = 1, W 2 = 6, W 3 = 8, W 4 = 13, в частности, другие параметры установлены как: α = C c = C w = BB , β = 1, ε = δ = σ = 0.1, χ i = 0,5, BB = 20 Мбит / с, LD = 30 мс, размер пакета = 1040B. Моделирование выполняется в топологии рис.1 и уравнения (11) — (14) используются для построения графика изменения Q , BB и W 1 ~ W 4 . Результаты показаны на рис. 7–9.

Из Рис. 7 мы можем сделать вывод, что, хотя W 1 ~ W 4 установлены с другим начальным значением, они могут наконец сойтись к сбалансированному состоянию после прохождения периода time, причем скорость отправки всех потоков практически одинакова.Итак, IPPM — это лекарство от традиционного TCP с дефектами несправедливости.

Как видно из рис. 8, длина очереди узкого канала связи резко увеличивается в первые 5 секунд, а затем достигает установившегося состояния почти до нуля, что означает, что в узком канале нет пакетов, и все пакеты передаются плавно. На рис. 9 показано изменение доступной пропускной способности узкого канала. Мы можем обнаружить, что доступная пропускная способность, наконец, почти близка к нулю, что означает использование пропускной способности почти до 100%.

Затем мы оцениваем производительность IPPM в отношении пропускной способности, справедливости и скорости потери пакетов. Как мы все знаем, ssthresh — это порог cwnd между фазами SS и CA, где cwnd увеличивается экспоненциально до и линейно после. Поэтому очень важно, как выбрать подходящее значение для ssthresh. Это причина, по которой мы выбираем ssthresh в качестве параметра для инициализации, чтобы улучшить производительность обычного TCP. Эксперименты завершаются в NS2 с использованием топологии, показанной на рис. 1, и результаты сравниваются с традиционным TCP.Мы рассматриваем сценарии с BB, = (10, 20 Мбит / с), LD, = (10, 20, 30 мс) и количеством потоков = (2,4,8). Значения ssthresh, вычисленные IPPM в различных условиях, показаны в таблице 1.

Чтобы дать читателям интуитивное представление об улучшении производительности IPPM, мы сравниваем пропускную способность улучшенного TCP с традиционным TCP в гетерогенной сети и продуктовой сети с высокой пропускной способностью и задержкой, а также оцениваем свойства справедливости и потери пакетов между предлагаемым TCP и обычным TCP. , а результаты показаны на Рис. 10–17:

.

1) Пропускная способность в гетерогенной сети: на рисунках 10–13 показано сравнение пропускной способности улучшенного TCP и традиционного TCP при сценариях с 2 и 4 потоками в каждом.Как видно из этих цифр, пропускная способность улучшенного TCP выше, чем у традиционного TCP, и с увеличением произведения пропускной способности и задержки улучшение пропускной способности становится более заметным.

2) Пропускная способность в сети продукта с высокой пропускной способностью и задержкой: для устранения ограничений беспроводной связи и создания сети с большой пропускной способностью и длительной задержкой мы выбираем проводную топологию для моделирования эксперимента. Смоделированные здесь конфигурации: BB = 100 Мбит / с, LD = 100 мс.На рис. 14 показано сравнение пропускной способности улучшенного TCP и традиционного TCP в сценариях с 2, 4 и 8 потоками в среде продукта с большой задержкой полосы пропускания. Пропускная способность улучшенного TCP составляет 19156,68M, что почти в 6 раз больше, чем у традиционного TCP 2582,36M.

3) Показатели справедливости: мы вводим уравнение, называемое индексом справедливости, как показано в уравнении 15. Где m обозначает количество пользователей, участвующих в вычислении индекса справедливости, а x i представляет ресурс, принадлежащий пользователю. и .Значение индекса справедливости варьируется от 0 до 1, чем ближе индекс к 1, тем он лучше [15].

(15)

Мы вычисляем индекс справедливости каждого потока, используя приведенное выше уравнение в сценарии двух потоков. Индекс справедливости традиционного потока TCP составляет 0,836. Напротив, индекс справедливости улучшенного потока TCP составляет 0,997, что почти близко к 1. Очевидно, справедливость улучшенного TCP намного лучше, чем у обычного TCP. Кроме того, чтобы оценить справедливость TCP с помощью различных параметров, мы рассматриваем 100-мегабайтное узкое место с задержкой приема-передачи (RTT) 100 мс.Результаты моделирования показаны в Таблице 2 и на Рисунке 15. В Таблице 2 мы обнаруживаем, что пропускная способность потока 1 и потока 2 почти одинакова в случае улучшенного TCP, что означает, что эти два потока совместно используют ресурсы канала связи в равной степени. В то время как в традиционном TCP они кардинально отличаются. На рис. 15 легко заметить, что четыре параметра постепенно сходятся к установившемуся состоянию под ограничением IPPM. Что еще более важно, W 1 перекрывается с W 2 , поэтому нет сильного TCP или слабого TCP, и два потока распределяются с справедливой скоростью отправки и использованием полосы пропускания.

4) Характеристики потери пакетов: на рис. 16 показано изменение cwnd при традиционном TCP, мы можем обнаружить, что W 1 обнаруживает потерю пакета через 2,8 секунды, а W 2 потерянный пакет за 3,2 секунды. После потери пакетов отправители сокращают свой cwnd до 1, а затем остаются в фазе CA до конца моделирования. К сожалению, скорость отправки двух потоков сохраняется на низком уровне, как и использование полосы пропускания на этапе CA. Статистика в таблице 3 показывает, что количество потерянных пакетов достигает 4835 в традиционном TCP, что является причиной серьезного вырождения традиционного TCP.

В то время как в наших усилиях, как показано на рис. 17, cwnds этих двух потоков увеличиваются до 1000 экспоненциально в первые 4 секунды и переходят в фазу CA до конца. Нет потери пакетов, и скорость отправки остается на высоком уровне во время моделирования.

Как мы все знаем, когда в традиционном TCP произошла потеря пакета, отправитель резко снизит скорость отправки, особенно в ситуации полной перегрузки, чтобы уменьшить перегрузку, cwnd будет немедленно установлен на 1.В нашем моделировании традиционного TCP, когда происходит потеря первого пакета, высокая скорость отправки приводит к последовательным потерям пакетов. В результате отправители повторно передадут отброшенный пакет и сохранят небольшую скорость отправки на этапе CA, и это является причиной значительного снижения производительности традиционного TCP. Поскольку IPPM может предотвратить потерю пакетов, он может улучшить производительность обычного TCP. Учитывая эти особенности, не должно быть никаких сомнений в том, что IPPM внес значительный вклад в повышение производительности обычного TCP в сокращении потерь пакетов.

5 Заключение

В этой статье мы обращаемся к проблеме снижения производительности TCP в гетерогенной сети с помощью алгоритма управления перегрузкой IPPM. В частности, мы обнаруживаем хаотический характер TCP в гетерогенной сети, особенно чувствительность к начальному параметру. Затем мы предлагаем новую структуру управления перегрузкой TCP в сочетании с достоинствами алгоритма, вдохновленного природой, который может гибко инициировать TCP с использованием модели интернет-хищника и быстро привести сеть к стабильному и сбалансированному состоянию с высокой загрузкой полосы пропускания.Численные результаты в различных ситуациях показывают, что предложенный алгоритм демонстрирует высокую степень использования полосы пропускания, лучшую терпкость и справедливость.

Интересным направлением для дальнейшей работы является разработка IPPM с более связанными параметрами, такими как частота потерь, частота ошибок по битам и RTT, для обогащения модели. Более того, мы планируем перенести алгоритм IPPM в реальную сетевую среду и провести глубокие исследования в области повышения производительности TCP с помощью теории хаотического управления.

Благодарности

Работа поддержана Национальным фондом естественных наук Китая в рамках гранта No.61070247, научно-технологический проект провинции Хэнань по грантам № 132102210246, № 13B510001, № 14A510015 и №NGII20150311.

Вклад авторов

  1. Задумал и спроектировал эксперименты: WH LP.
  2. Проведены опыты: ЛП ФЗ.
  3. Проанализированы данные: ЛП ЛЗ.
  4. Предоставленные реагенты / материалы / инструменты для анализа: LZ WX.
  5. Написал документ: WH LP FZ.

Ссылки

  1. 1. П. Мао Л. Лю. Усовершенствования протокола адаптивного перегрузки для беспроводных сетей [C], 3-я Международная конференция по управлению, версия 74, стр. 179–185, 2015.
  2. 2. Wu RQ, Jie H, Ding N. Улучшенный алгоритм управления перегрузкой TCP, основанный на оценке пропускной способности в гетерогенных сетях. [J], Journal of Communications, v 9, n 10, p 792–797, 2014.
  3. 3. Янсян, Чжэнь; Фанг, Вс; Мингян, Коу.Алгоритм нечеткой дифференциации потерь пакетов, основанный на соотношении времени подтверждения и тайм-аута в гетерогенной сети [C], Международная конференция WRI по коммуникациям и мобильным вычислениям 2010 г., т. 1, стр. 453–457, 2010 г.
  4. 4. Чжао Х., Ши Ю. Обнаружение скрытых каналов в компьютерных сетях на основе теории хаоса. [J] IEEE TRANSACTIONS ON Information FORENSIC AND SECURITY (S1556-6013), v 8 (2), p 273–282, 2013.
  5. 5. Ван Дж. С., Юань RX, Гао З. В., Ван Диджей. Бифуркация Хопфа и неконтролируемый стохастический хаос, вызванный трафиком, в системе управления перегрузками RED-AQM.[J] CHINESE PHYSICS B (S1674-1056), v20 (9), 2011.
  6. 6. Верес А., Бода М. Хаотический характер управления перегрузкой TCP [C]. Труды IEEE INFOCOM. Тель-Авив, Израиль: IEEE Computer Society, v 3, p 1715–1723, 2000.
  7. 7. Милнер Стюарт; Дэвис Кристофер; Чжан Хайцзюнь; Льорка Хайме. Вдохновленные природой самоорганизация, управление и оптимизация в гетерогенных беспроводных сетях. [J] IEEE Transactions on Mobile Computing, v 11, n 7, p 1207–1222, 2012.
  8. 8.Мирджалили С., Мирджалили С.М., Хатамлоу А; Multi-Verse Optimizer: природный алгоритм для глобальной оптимизации, [J] Physical Review C Nuclear Physics, т. 49 (1), стр. 1–19, 2015.
  9. 9. Вэй Дж., Кундур Д., БатлерПурри К.Л. Новый био-вдохновленный метод быстрой идентификации когерентности генератора в реальном времени, [J] IEEE Transactions on Smart Grid, v6, p 178–188, 2015.
  10. 10. Lotka AJ. Элементы физической биологии, последняя публикация, 1956 г.
  11. 11.Лю Ф, Гуань Чж, Ван Хо. Анализ устойчивости и бифуркации Хопфа в модели жидкости TCP. [J] НЕЛИНЕЙНЫЙ АНАЛИЗ РЕАЛЬНЫХ МИРОВЫХ ПРИЛОЖЕНИЙ (S1468-1218), v 12 (1), p353–363, 2011.
  12. 12. Аврейцевич Й. Хаос и синхронизация. Springer International Publishing, стр. 527–604, 2014.
  13. 13. Паккард Н.Х., Кратчфилд Дж. П., Фермер Дж. Д. и Шоу Р. С.. Геометрия из временного ряда. [J] Phys. Rev. Lett. (S0031-9007), v45, p712–716, 1980.
  14. 14. Shivamoggi BK.Хаос в диссипативных системах. Springer, Нидерланды, v103, p189–244, 2014.
  15. 15. Чандра Э., Субрамани Б. Обзор контроля перегрузки, Глобальный журнал компьютерных наук и технологий. 1 (9), Issue 5, p 82–87, 2010.

Повышение гибкости TCP в гетерогенной сети

PLoS One. 2016; 11 (9): e0161249.

Ван Хуэй

1 Сетевой информационный центр Хэнаньского университета науки и технологий, Ло Ян, 471003, Китай

Ли Пэйю

1 Сетевой информационный центр Хэнаньского университета науки и технологий, Луо Ян, 471003 , Китай

Fan Zhihui

1 Сетевой информационный центр Хэнаньского университета науки и технологий, Ло Ян, 471003, Китай

Ли Чжэцин

1 Сетевой информационный центр Хэнаньского университета науки и технологий, Луо Ян , 471003, Китай

Wei Xuhui

2 Колледж информационной инженерии Хэнаньского университета науки и технологий, Ло Ян, 471003, Китай

Вэнь-Бо Ду, редактор

1 Сетевой информационный центр провинции Хэнань Университет науки и технологий, Луо Ян, 471003, Китай

2 Колледж информационной инженерии Хэнаньского университета of Science and Technology, Luo Yang, 471003, China

Beihang University, CHINA

Конкурирующие интересы: Авторы заявили, что никаких конкурирующих интересов не существует.

  • Задумал и спроектировал эксперименты: WH LP.

  • Проведены опыты: ЛП ФЗ.

  • Проанализированы данные: LP LZ.

  • Предоставленные реагенты / материалы / инструменты для анализа: LZ WX.

  • Написал документ: WH LP FZ.

Поступила 15.04.2016; Принято 2 августа 2016 г.

Это статья в открытом доступе, распространяемая в соответствии с условиями лицензии Creative Commons Attribution License, которая разрешает неограниченное использование, распространение и воспроизведение на любом носителе при условии указания автора и источника.
Дополнительные материалы
S1 Файл: Репликация. (ZIP)

GUID: 4AF56FB3-902E-4C94-8580-7E6ADFC

S2 Файл: Данные для и репликация. (ZIP)

GUID: DF48044E-E55E-4C17-8C98-415F85FDC3A8

S3 Файл: Данные для и репликация. (ZIP)

GUID: 40D7092D-D2C9-47A2-BE3D-26B19AD9A69F

S4 Файл: Данные для и репликация. (ZIP)

GUID: EEB7CF65-287A-4597-B3DF-53D46C6E63FC

S5 Файл: Репликация.(ZIP)

GUID: E7B4AEA2-2215-4D80-BB83-66B5C151329E

Файл S6: Репликация. (ZIP)

GUID: 839B8B85-73C8-45A0-9E7B-4253C86D25DE

S7 Файл: Данные для и репликация. (ZIP)

GUID: 37F17346-ADFE-453D-8D7D-60EE66C

Файл S8: Данные для файлов. (ZIP)

GUID: 4A30CA71-BD7D-4A2F-A0F8-5B028DDCE700

Файл S9: Данные для репликации. (ZIP)

GUID: 872A9FF8-B01A-46D4-9D20-7FEC87A6BD32

S10 Файл: Данные для и репликация.(ZIP)

GUID: EA6B291C-00C3-4555-8FD7-6B96B3EE650C

S11 Файл: Данные для файлов. (ZIP)

GUID: 2182BC96-F332-42AE-B67E-931F9CB45958

S12 Файл: Данные для и репликация. (ZIP)

GUID: A513E2F6-648A-4F9B-A6DA-A6D89E05AC7F

S13 Файл: Данные для и репликация. (ZIP)

GUID: 4951D86E-554A-42F2-9699-2104AD1B6371

S14 Файл: Данные для и репликация. (ZIP)

GUID: F29A70DA-8213-4628-B97A-95253B586AAC

S15 Файл: Данные для и репликация.(ZIP)

GUID: AF5DC65E-52D7-4276-A777-A546F35042B5

S16 Файл: Данные для и репликация. (ZIP)

GUID: D589FFCD-9CA3-42F5-9E7D-94F50E1BC675

S17 Файл: Данные для и репликация. (ZIP)

GUID: 8BDB6497-501B-45A5-BA5D-7F0743312EFB

Заявление о доступности данных

Все соответствующие данные находятся в документе и файлах с вспомогательной информацией.

Abstract

Из-за набора постоянных начальных значений производительность обычного TCP значительно падает при столкновении с гетерогенной сетью, показывая низкую пропускную способность и несправедливость.Эта статья сначала демонстрирует хаотический характер управления перегрузкой TCP в гетерогенной сети, особенно чувствительность к начальному значению. Вдохновленная достоинствами природного алгоритма, предлагается новая структура контроля перегрузки TCP (IPPM, Internet Prey-Predator Model). Такие параметры, как доступная пропускная способность канала ( C, ), окно перегрузки ( W, ) и длина очереди ( Q ), собираются IPPM, который вычисляет максимальное значение C в соответствии с взаимодействующими отношениями, существующими в C , W и Q , и IPPM инициирует TCP ssthresh с вычисленным значением.Множество результатов моделирования показывают, что модифицированный протокол TCP может эффективно предотвращать перегрузку сети и потерю пакетов. Кроме того, он обеспечивает высокую степень использования ресурсов, скорость конвергенции, справедливость и стабильность.

1 Введение

Из-за существующей высокой ошибки беспроводной связи, длительной задержки передачи и сложной сетевой структуры в гетерогенной сети производительность традиционного TCP серьезно ограничена, поскольку TCP разработан для проводной сети [1–2]. Мы анализируем причины упомянутых выше проблем до и после потери пакетов.До потери пакетов традиционный TCP имеет низкую адаптируемость и низкую гибкость. Как мы все знаем, TCP имеет много постоянных начальных значений, когда начинается передача. Например, начальное значение cwnd установлено как 1 mss (максимальный размер сегмента), а начальное значение ssthresh установлено как 65535 байт. Из-за стабильной среды в проводной сети постоянные значения не слишком сильно ограничивают производительность TCP, но в гетерогенной сети это вызовет множество проблем. Например, значение ssthresh, которое является порогом между фазой SS (медленный запуск) и фазой CA (предотвращение перегрузки).С одной стороны, если начальное значение ssthresh относительно мало в среде с большой пропускной способностью, небольшой задержкой и небольшой нагрузкой на канал, то поток TCP завершит фазу SS и преждевременно перейдет в фазу CA, что приведет к низкому использованию канала. С другой стороны, если ssthresh слишком велик для текущего состояния канала, отправитель увеличит скорость отправки, что может вызвать перегрузку канала и потерю пакетов. После потери пакета традиционный протокол TCP не может определить конкретную причину потери пакета.В проводной сети большая часть потерь пакетов вызвана перегрузкой, но в беспроводных или гетерогенных сетях BER — еще одна важная причина потери пакетов, которая также может вызвать снижение производительности TCP [3].

Чтобы решить проблему плохой гибкости, вызванной постоянными начальными настройками, мы предполагаем, что динамическая и соответствующая установка начального значения превратит сложную сетевую передачу в простую в использовании систему. В качестве предварительного условия передача TCP должна быть чувствительной к начальному значению.Как известно, чувствительность к начальному значению является важной характеристикой системы хаоса. Таким образом, мы должны подтвердить, что протокол TCP ведет себя хаотично в гетерогенной сети. В последние годы в литературе было опубликовано большое количество исследований по анализу природы протокола TCP. Чжао использовал реконструкцию фазового пространства в теории хаоса для обнаружения скрытого канала в исходных порядковых номерах TCP и решил проблему тестирования скрытого канала [4]. JS. Ван проверил характер бифуркации и хаоса в RED-AQM и доказал наличие порога задержки связи для определения устойчивости системы [5].Верес указал, что контроль перегрузки TCP выполняет определенную периодичность и предсказуемость, и подтвердил хаотический характер TCP в проводной сети [6]. Насколько нам известно, хаотический характер управления перегрузкой TCP в гетерогенной сети еще не подтвержден, и нет исследований, связанных с использованием теории хаоса для повышения производительности TCP в гетерогенной сети. В следующем разделе будет продемонстрирована хаотическая природа управления перегрузкой TCP в гетерогенной сети.

Чтобы вычислить начальное значение более научно и разумно и повысить гибкость TCP в гетерогенной сети, мы используем идею алгоритма, вдохновленного природой. Алгоритм, вдохновленный природой, обладает такими качествами, как самоорганизация, надежность, масштабируемость и адаптируемость, которые очень востребованы в сложной сетевой среде [7]. Кроме того, вдохновленные природой алгоритмы применялись во многих областях, таких как сетевая безопасность, повсеместные вычисления, сенсорные сети и искусственный интеллект, которые добились замечательных достижений [8–9].После анализа естественных алгоритмов и механизмов управления перегрузкой, мы предлагаем новую структуру модели управления перегрузкой TCP, основанную на алгоритме «жертва-хищник» [10]. В этой модели параметры TCP инициализируются расчетными значениями, что позволяет TCP оставаться в эффективном рабочем состоянии и максимально использовать доступную пропускную способность сети.

Остальная часть этого документа организована следующим образом. В разделе 2 анализируется и проверяется хаотическая характеристика управления перегрузкой TCP в гетерогенной сети.В разделе 3 представлены теоретические основы и структура IPPM. Раздел 4 посвящен анализу параметров предложенной модели. В разделе 5 представлены и обсуждаются результаты моделирования, уделяя особое внимание пропускной способности, справедливости и скорости потери пакетов IPPM. Наконец, мы подводим итоги этого документа, а также будущей работы.

2 Обсуждение

Если система демонстрирует характеристики периодичности, странного аттрактора и чувствительности по начальному значению, мы подтверждаем эту систему как хаотическую [11].Далее мы выясним, сохраняет ли контроль перегрузки TCP в гетерогенной сети эти характеристики с помощью NS2. Сетевая среда показана как, где S обозначает отправителя, AP (точка доступа) представляет последний переход точки беспроводного доступа, D обозначает беспроводной приемник.

Топологический граф гетерогенной сети.

2.1 Странный аттрактор хаотической природы

Странный аттрактор — это порождение хаотической системы, которое отражает двигательную характеристику неупорядоченного устойчивого состояния, а также своего рода морфологию движения хаотической системы.Мы можем доказать хаотичность системы, анализируя одномерный аттрактор [12].

Поскольку cwnd является лишь одним из множества параметров во всей системе, а не непрерывным, это означает, что cwnd не может эффективно описывать свойства сложной системы, особенно скрытую природу системы. Особенно важно более точно выразить текущее рабочее состояние системы. В литературе [13] предложен алгоритм временного сдвига для восстановления фазового пространства параметра, чтобы эффективно показать некоторые скрытые свойства в сложной системе.Алгоритм показан следующим образом:

x [i] = 1n∑j = 1ncwndx [i − j]

(1)

y [i] = 1n∑j = 1ncwndy [i − j]

(2)

где x и y представляют два потока TCP. n обозначает диапазон контрольной статистики, большее значение n указывает на лучшую реконструкцию. Этот метод имеет два преимущества:

1) Пусть w представляет количество cwnd, возможные точки фазового пространства cwnd увеличатся с w 2 до (nw-n) 2 , используя этот метод.

2) Расстояние между x [i] и x [i + 1] становится меньше при использовании этого метода, которое должно точно не превышать (2 * w-2) / n . Таким образом, этот алгоритм временного сдвига может более точно и непрерывно выражать свойства системы.

Мы устанавливаем начальные условия системы следующим образом: пропускная способность узкого канала ( BB ) = 0,5 Мбит / с, задержка канала ( LD ) = 10 мс и длина очереди ( QL ) = 20 пакетов, диапазон контрольная статистика ( n ) = 100.Данные отправляются из S 1 и S 2 по проводной связи, а затем они будут отправлены с точки доступа на D 1 и D 2 соответственно. Два потока TCP выражаются как TCP 0 и TCP 1 , размер окна отправки соответственно обозначен как cwnd (0) и cwnd (1) .После использования вышеуказанного алгоритма для восстановления фазового пространства cwnd мы можем получить, где x [i] и y [i] представляют пару значений, созданных алгоритмом временного сдвига в определенный момент. указывает на то, что аттрактор появляется после достаточного времени работы, и он устойчиво работает в некотором правдоподобном неупорядоченном состоянии.

Аттрактор в фазовом пространстве cwnd.

Обычный метод подтверждения аттрактора как странного аттрактора — это выяснить, имеет ли аттрактор фрактальную структуру [14].Фрактальная размерность аттрактора может быть рассчитана методом размерности ящика следующим образом. Предполагая, что S представляет длину квадрата Δ, F является непустым и ограниченным набором, а N (F) обозначает номер квадрата, в котором F пересекается с S . Тогда размер ящика вышеупомянутого аттрактора D (F) можно выразить следующим образом:

D (F) = limΔ → 0lgN (F) lg (1 / Δ)

(3)

В уравнениях (3) и (4) мы считаем, что линейная связь между y и x равны y = lgN (F) и x = lg (1 / Δ) . k — наклон lgN (F) ~ lg (1 / Δ) , а b — пересечение. Мы можем получить размер коробки этого аттрактора D (F) = k≈ 2,3371 после аппроксимации методом наименьших квадратов. Размер этого ящика не является целочисленным, что указывает на то, что аттрактор имеет фрактальную структуру, которую мы назвали странным аттрактором. Странный аттрактор — одна из основных характеристик хаоса, поэтому он противоречит нашей гипотезе и, следовательно, доказывает результат.

2.2 Чувствительность к начальному значению хаотического характера

Чувствительность к начальному значению относится к незначительному изменению в начале, которое приводит к огромной разнице в конце.Это одно из важных свойств хаотической системы, а именно эффект бабочки. Затем мы проанализируем чувствительность начального значения контроля перегрузки TCP в гетерогенной среде, учитывая, что пропускная способность узкого канала ( BB ) = 2 Мбит / с, а остальные условия остаются неизменными. Результаты моделирования сравниваются между четырьмя группами экспериментов. В каждой группе TCP 0 начинает отправлять данные с 0,1 с, а TCP 1 начинается с 0.1 с, 0,5 с, 1 с и 5 с соответственно, оба они записывают значение cwnd на 10 мс. Результаты экспериментов представлены на рис.

Два потока TCP с разным временем начала.

показывает изменения cwnd в сценариях двух потоков при запуске в разное время. Очевидно, что последующие эволюции системы проявляют совершенно разные формы после крошечного изменения начального состояния. Вкратце, последовательность двух потоков представляет собой неравномерность и чувствительность к начальному значению, которые соответствуют свойству системы хаоса.Более того, в случае, мы можем обнаружить, что система работает хорошо, без потери пакетов, и два потока синхронно поддерживают высокую скорость отправки. В то время как в других случаях система имеет другую степень перегруженности или потери. Интуитивно система становится более простой и эффективной, что может доказать, что правильное начальное значение может превратить сложную систему в относительно простую и эффективную.

В дальнейшем доказывая чувствительность TCP к начальному значению в гетерогенной сети, мы увеличиваем количество TCP-потоков до 30, в частности, BB = 1 Мбит / с, LD = 15 мс, QL = 60 пакетов.Когда время выполнения достигает 50 с, один из потоков выбирается случайным образом, и его cwnd увеличивается на 1, затем мы сравнивали систему с неизмененной. Чтобы интуитивно показать различия между этими двумя системами, мы определяем евклидово расстояние cwnd в фазовом пространстве следующим образом:

Ed (t) = ∑i = 1N (worig (i, t) −wpert (i, t)) 2

(5)

В формуле (5), w orig ( i , t ) представляет cwnd потока (i) в момент времени t в исходной системе, w pert ( i , t ) представляет значение cwnd поток (i) в момент времени t в измененной системе.N обозначает количество TCP-потоков, здесь мы устанавливаем N = 30. показывает разницу между двумя системами в фазовом пространстве cwnd во времени. Евклидово расстояние двух систем в фазовом пространстве cwnd равно 0 до изменения (до 50 секунд), что указывает на то, что две системы в точности совпадают. Из-за небольшого изменения, сделанного в 50-х годах (увеличение cwnd одного потока), последующее развитие системы полностью отличается от предыдущего. Это предполагает, что система имеет эффект бабочки, а эффект бабочки является одним из важных показателей хаотической системы.Учитывая эти особенности, не должно быть сомнений в том, что управление перегрузкой TCP имеет хаотический характер в гетерогенной сети.

Отличие оригинальной системы от модифицированной.

3 Модели

В соответствии с предыдущим разделом, в котором проверялась хаотическая характеристика управления перегрузкой TCP в гетерогенной сети, мы могли сделать вывод, что набор соответствующих параметров может привести гетерогенную систему к стабильному и сбалансированному состоянию с высокая загрузка полосы пропускания.Для достижения этой цели предлагается модель Интернет-жертва-хищник, вдохновленная природой. Причина, по которой мы выбираем алгоритм модели хищник-жертва, заключается в том, что модель хищник-жертва имеет высокую логическую взаимосвязь с механизмом контроля перегрузки TCP (представлен в следующем разделе). Более того, алгоритм, вдохновленный природой, имеет большое преимущество при решении проблемы в сложной системе.

3.1 Модель хищника-жертвы

В пищевой цепи экосистемы мы предполагаем, что a и b представляют жертву и хищника соответственно, N (a) и N (b) обозначают количество каждого разновидность.Взаимодействие между a и b можно объяснить уравнениями (6) и (7) [6]:

dN (a) dt = α (1 − N (a) CN (a)) N (a) −βN (a) N (б)

(6)

dN (b) dt = χN (a ) N (б) −δN (б)

(7)

где α — естественный темп прироста a , β — коэффициент смертности, когда a является жертвами b . χ представляет собой возрастающую скорость b после молитвы на a , δ — естественный коэффициент смертности b . C N (a) относится к грузоподъемности a при отсутствии b , что означает максимальное значение N (a) . Это двухуровневая модель жертва-хищник, и ее можно расширить до трехуровневой модели, как показано в уравнениях (8) — (10). Где ε — коэффициент смертности b, когда на него охотится c. φ — это скорость увеличения c после молитвы на b . γ представляет собой естественную смерть c .

dN (a) dt = (α (1 − N (a) CN (a)) — βN (b)) N (a)

(8)

dN (b) dt = (χ (1− N (б) CN (б)) + δN (а) −εN (в)) N (б)

(9)

dN (в) dt = (φN (б) −γ) N (в)

(10)

В трехуровневой модели жертва-хищник, когда количество b резко сокращается, a будет расти экспоненциально, поэтому b сыграл важную роль в сокращении роста a . С другой стороны, когда количество a уменьшается быстро и существенно, b будет уменьшаться экспоненциально, взаимосвязь между a и b показывает характер зависимостей отношений.Кроме того, a имеет наибольшую грузоподъемность при отсутствии b . Точно так же соотношение между c и b такое же, как a и b .

3.2 Internet Prey-Predator Model

Мы рассматриваем гетерогенную сеть как экологическую систему, в которой обитают такие виды, как cwnd, длина очереди и пропускная способность канала. Значения параметров представляют количество каждого вида, которые связаны друг с другом и влияют друг на друга, а отношения между cwnd, доступной пропускной способностью канала и длиной очереди можно описать следующим образом:

(1) Во-первых, для доступной емкости канала ( C ) и cwnd ( W ), когда скорость отправки пакетов снижается, доступная пропускная способность канала увеличивается, и наоборот.С другой стороны, если есть какой-либо рост доступной пропускной способности канала, скорость отправки будет расти, и наоборот. Более того, полоса пропускания в узком канале также ограничивает максимальное значение доступной пропускной способности канала.

(2) Во-вторых, для длины очереди ( Q ) и W при отсутствии ожидающего пакета cwnd будет расти, и наоборот. Когда скорость отправки пакетов снижается, длина очереди уменьшается, и наоборот. Пропускная способность канала ограничивает максимальное значение скорости отправки пакетов.

(3) Очевидно, что отношения взаимного ограничения между C , W и Q соответствуют логике модели жертва-хищник. Другими словами, мы можем использовать модель «жертва-хищник» для определения проблемы перегрузки в гетерогенной сети, а экосистема Интернета описывается как.

Согласно трехуровневой модели жертва-хищник, модель интернет-жертва-хищник объясняется уравнениями (11) — (13),

dCdt = C (α (1 − CCc) −β∑j = 1kWj) σ

(11)

dWidt = Wi (χi (1 − WiCW) + δC − εQ) i = 1,… ‥ k

(12)

dQdt = Q (∑i = 1kφiwi − γ) σ γ = Min (BB, Q + ∑Wi)

(13)

где σ — положительный коэффициент сглаживания, а W i представляет значение cwnd, C c и C w — максимальное значение (грузоподъемность) C и W , α , β , χ , δ , ε , φ , γ были представлены выше. Q можно рассчитать по следующему уравнению, где размер пакета составляет 1040 байт.

Q = BB * RTT * 1000Packetsize * 8

(14)

3.3 Алгоритм управления перегрузкой

В этой статье мы разделяем управление перегрузкой TCP на две фазы: до потери пакета и после потери пакета. Предотвращение перегрузки сети — основная задача IPPM перед потерей пакетов, которую мы проиллюстрируем ниже. После потери мы можем определить причину потери пакета и принять соответствующие меры, чтобы справиться с потерей перегрузки и потерей беспроводной связи, что не является основным содержанием этой статьи.

Когда начинается поток TCP, отправитель собирает параметры из сети и вычисляет правильное значение cwnd, используя IPPM для динамического инициирования параметра. Таким образом, поток TCP может работать с оптимальным состоянием и улучшать адаптируемость к различным средам и состояниям передачи, чтобы избежать возникновения перегрузки, а также отбрасывания пакетов. Процессы сбора и настройки проводятся периодически, что может улучшить адаптируемость TCP и внести соответствующие корректировки в соответствии с динамическим изменением сети.Структура предлагаемого алгоритма управления перегрузкой TCP изображена как.

Структура улучшенного механизма управления перегрузкой TCP.

4 Результаты

В этом разделе мы анализируем и проверяем тенденции изменения C, W и Q, а затем оцениваем производительность IPPM. Рассмотрим сценарии с четырьмя потоками, отправляемыми из S 1 ~ S 4 соответственно, а начальные значения cwnds установлены как: W 1 = 1, W 2 = 6, W 3 = 8, W 4 = 13, в частности, другие параметры установлены как: α = C c = C w = BB , β = 1, ε = δ = σ = 0.1, χ i = 0,5, BB = 20 Мбит / с, LD = 30 мс, размер пакета = 1040B. Моделирование выполняется под топологией, и уравнения (11) — (14) используются для построения графика изменения Q , BB и W 1 ~ W 4 . Результаты показаны на фиг.

Развитие cwnd в предложенном алгоритме.

(a) Изменение cwnd для W1. (б) Замена cwnd на W2.(c) Замена cwnd на W3. (d) Замена cwnd на W4.

Изменение доступной полосы пропускания для узкого звена.

Из, мы можем сделать вывод, что, хотя W 1 ~ W 4 установлены с другим начальным значением, они могут наконец сойтись к сбалансированному состоянию после прохождения периода time, причем скорость отправки всех потоков практически одинакова. Итак, IPPM — это лекарство от традиционного TCP с дефектами несправедливости.

Как видно из, длина очереди узкого канала связи резко увеличивается в первые 5 секунд, а затем достигает устойчивого состояния почти до нуля, что означает, что в узком канале нет пакетов, и все пакеты передаются плавно. показывает изменение доступной пропускной способности узкого канала, мы можем обнаружить, что доступная пропускная способность, наконец, почти близка к нулю, что означает использование пропускной способности почти до 100%.

Развитие очереди для узкого звена.

Затем мы оцениваем производительность IPPM по пропускной способности, справедливости и скорости потери пакетов. Как мы все знаем, ssthresh — это порог cwnd между фазами SS и CA, где cwnd увеличивается экспоненциально до и линейно после. Поэтому очень важно, как выбрать подходящее значение для ssthresh. Это причина, по которой мы выбираем ssthresh в качестве параметра для инициализации, чтобы улучшить производительность обычного TCP. Эксперименты завершаются в NS2 с использованием топологии, показанной на, и результаты сравниваются с традиционным TCP.Мы рассматриваем сценарии с BB, = (10, 20 Мбит / с), LD, = (10, 20, 30 мс) и количеством потоков = (2,4,8). Значения ssthresh, вычисленные IPPM в различных условиях, показаны как.

Таблица 1

Значение ssthresh, вычисленное IPPM.

925 9252 для понимания
Пропускная способность (мб) Задержка (мс) Номер потока ssthreshValue Полоса пропускания (мб) Задержка (мс) Номер потока ssthreshValue
10 2 6.00 20 10 2 12,00
4 3,01 4 6,01
8 1,50 8 3,00
3,00
11,5 20 2 23,00
4 6,01 4 12,03
8 3,00 8 6,00
2 .38 30 2 34.32
4 9,01 4 18,02
8 4,50 8 9,00
улучшение производительности IPPM, мы сравниваем пропускную способность улучшенного TCP с традиционным TCP в гетерогенной сети и сети продукта с высокой пропускной способностью и задержкой, мы также оцениваем свойства справедливости и потери пакетов между предлагаемым TCP и обычным TCP, и результаты показаны на рис. :

Сравнение пропускной способности для 2 потоков TCP при пропускной способности = 10M.

Замена cwnd на улучшенный TCP.

1) Пропускная способность в гетерогенной сети: Рис. — показывает сравнение пропускной способности улучшенного TCP и традиционного TCP при сценариях с 2 и 4 потоками в каждом. Как видно из этих цифр, пропускная способность улучшенного TCP выше, чем у традиционного TCP, и с увеличением произведения пропускной способности и задержки улучшение пропускной способности становится более заметным.

Сравнение пропускной способности для 4 потоков TCP при пропускной способности = 20M.

2) Пропускная способность в сети продукта с высокой пропускной способностью и задержкой: чтобы устранить ограничение беспроводной связи и создать сеть с большой пропускной способностью и большой задержкой, мы выбрали проводную топологию для моделирования эксперимента. Смоделированные здесь конфигурации: BB = 100 Мбит / с, LD = 100 мс. показывает сравнение пропускной способности улучшенного TCP и традиционного TCP в сценариях с 2, 4 и 8 потоками в среде продукта с большой задержкой полосы пропускания. Пропускная способность улучшенного TCP составляет 19156.68M, что почти в 6 раз больше, чем у традиционного TCP 2582,36M.

Сравнение пропускной способности для продуктовой сети с высокой пропускной способностью и задержкой.

3) Показатели справедливости: мы вводим уравнение, называемое индексом справедливости, как показано в уравнении 15. Где m обозначает количество пользователей, участвующих в вычислении индекса справедливости, а x i представляет ресурс, принадлежащий пользователем i . Значение индекса справедливости варьируется от 0 до 1, чем ближе индекс к 1, тем он лучше [15].

F (x) = (∑xi) 2m (∑xi2)

(15)

Мы вычисляем индекс справедливости каждого потока, используя приведенное выше уравнение в сценарии двух потоков. Индекс справедливости традиционного потока TCP составляет 0,836. Напротив, индекс справедливости улучшенного потока TCP составляет 0,997, что почти близко к 1. Очевидно, справедливость улучшенного TCP намного лучше, чем у обычного TCP. Кроме того, чтобы оценить справедливость TCP с помощью различных параметров, мы рассматриваем 100-мегабайтное узкое место с задержкой приема-передачи (RTT) 100 мс.Результаты моделирования показаны как и. Мы обнаруживаем, что пропускная способность потоков flow1 и flow2 почти одинакова в случае улучшенного TCP, что означает, что эти два потока совместно используют ресурсы связи в равной степени. В то время как в традиционном TCP они кардинально отличаются. Можно легко заметить, что четыре параметра постепенно сходятся к установившемуся состоянию под ограничением IPPM. Что еще более важно, W 1 перекрывается с W 2 , поэтому нет сильного TCP или слабого TCP, и два потока распределяются с справедливой скоростью отправки и использованием полосы пропускания.

Справедливость двух потоков.

Таблица 2

Сравнение пропускной способности для 2 потоков.

Пропускная способность потока1 / Мб Пропускная способность потока2 / Мб
Улучшенный TCP 9578.35 9578.33
,49

4) Характеристики потери пакетов: показано изменение cwnd при традиционном TCP, мы можем обнаружить, что W 1 обнаруживает потерю пакетов на 2.8s и W 2 пакет потерь на 3,2 с. После потери пакетов отправители сокращают свой cwnd до 1, а затем остаются в фазе CA до конца моделирования. К сожалению, скорость отправки двух потоков сохраняется на низком уровне, как и использование полосы пропускания на этапе CA. Статистика показывает, что количество потерянных пакетов достигает 4835 в традиционном TCP, что является причиной серьезного вырождения традиционного TCP.

Замена cwnd на традиционный TCP.

Таблица 3

Сравнение отбрасываемых пакетов для 4, 8 потоков.

Номер потока Время отбрасывания пакета для традиционного TCP Время отбрасывания пакета для улучшенного TCP
4 3104 0
8 4786 8

В то время как в наших усилиях, как показано на, cwnds этих двух потоков увеличиваются до 1000 экспоненциально в первые 4 секунды и переходят в фазу CA до конца. Нет потери пакетов, и скорость отправки остается на высоком уровне во время моделирования.

Как мы все знаем, когда в традиционном TCP произошла потеря пакета, отправитель резко снизит скорость отправки, особенно в ситуации полной перегрузки, чтобы уменьшить перегрузку, cwnd будет немедленно установлен на 1. В нашем моделировании традиционного TCP, когда происходит потеря первого пакета, высокая скорость отправки приводит к последовательным потерям пакетов. В результате отправители повторно передадут отброшенный пакет и сохранят небольшую скорость отправки на этапе CA, и это является причиной значительного снижения производительности традиционного TCP.Поскольку IPPM может предотвратить потерю пакетов, он может улучшить производительность обычного TCP. Учитывая эти особенности, не должно быть никаких сомнений в том, что IPPM внес значительный вклад в повышение производительности обычного TCP в сокращении потерь пакетов.

5 Заключение

В этой статье мы обращаемся к проблеме снижения производительности TCP в гетерогенной сети с помощью алгоритма управления перегрузкой IPPM. В частности, мы обнаруживаем хаотический характер TCP в гетерогенной сети, особенно чувствительность к начальному параметру.Затем мы предлагаем новую структуру управления перегрузкой TCP в сочетании с достоинствами алгоритма, вдохновленного природой, который может гибко инициировать TCP с использованием модели интернет-хищника и быстро привести сеть к стабильному и сбалансированному состоянию с высокой загрузкой полосы пропускания. Численные результаты в различных ситуациях показывают, что предложенный алгоритм демонстрирует высокую степень использования полосы пропускания, лучшую терпкость и справедливость.

Интересным направлением для дальнейшей работы является разработка IPPM с более связанными параметрами, такими как частота потерь, частота ошибок по битам и RTT, для обогащения модели.Более того, мы планируем перенести алгоритм IPPM в реальную сетевую среду и провести глубокие исследования в области повышения производительности TCP с помощью теории хаотического управления.

Вспомогательная информация

Файл S1
Репликация.

(ZIP)

Файл S2
Данные для файлов.

(ZIP)

Файл S3
Данные для файлов.

(ZIP)

Файл S4
Данные для файлов.

(ZIP)

Файл S5
Репликация.

(ZIP)

Файл S6
Репликация.

(ZIP)

S7 File
Данные для файлов.

(ZIP)

Файл S8
Данные для файлов.

(ZIP)

Файл S9 ​​
Данные для файлов.

(ZIP)

Файл S10
Данные для файлов.

(ZIP)

Файл S11
Данные для файлов.

(ZIP)

Файл S12
Данные для файлов.

(ZIP)

Файл S13
Данные для файлов.

(ZIP)

Файл S14
Данные для файлов.

(ZIP)

Файл S15
Данные для файлов.

(ZIP)

Файл S16
Данные для файлов.

(ZIP)

Файл S17
Данные для файлов.

(ZIP)

Благодарности

Эта работа поддержана Национальным фондом естественных наук Китая в рамках гранта № 61070247, научно-технологического проекта провинции Хэнань в рамках гранта № 132102210246, № 13B510001, № 14A510015, и № NGII20150311.

Отчет о финансировании

Эта работа поддержана Национальным фондом естественных наук Китая в рамках гранта № 61070247, научно-технологического проекта провинции Хэнань в рамках гранта №132102210246, № 13B510001, № 14A510015 и №NGII20150311.

Доступность данных

Все соответствующие данные находятся в документе и его файлах с вспомогательной информацией.

Ссылки

1. P Mao L Liu. Усовершенствования протокола адаптивного перегрузки для беспроводных сетей [C], 3-я Международная конференция по управлению, v 74, p 179–185, 2015.

2. Wu RQ, Jie H, Ding N. Улучшенный алгоритм контроля перегрузки TCP на основе полосы пропускания Оценка в гетерогенных сетях.[J], Journal of Communications, v 9, n 10, p 792–797, 2014. [Google Scholar]

3. Янсян, Чжэнь; Фанг, Вс; Мингян, Коу. Алгоритм нечеткой дифференциации потерь пакетов, основанный на соотношении времени подтверждения и тайм-аута в гетерогенной сети [C], Международная конференция WRI по коммуникациям и мобильным вычислениям 2010 г., т. 1, стр. 453–457, 2010 г.

4. Чжао Х., Ши Ю. Обнаружение скрытых каналов в компьютерных сетях на основе теории хаоса. [J] IEEE TRANSACTIONS ON Information FORENSIC AND SECURITY (S1556-6013), v 8 (2), p 273–282, 2013.[Google Scholar] 5. Ван Дж. С., Юань RX, Гао З. В., Ван Диджей. Бифуркация Хопфа и неконтролируемый стохастический хаос, вызванный трафиком, в системе управления перегрузками RED-AQM. [J] КИТАЙСКАЯ ФИЗИКА B (S1674-1056), v20 (9), 2011. [Google Scholar]

6. Верес А., Бода М. Хаотический характер управления перегрузкой TCP [C]. Труды IEEE INFOCOM. Тель-Авив, Израиль: Компьютерное общество IEEE, т. 3, стр. 1715–1723, 2000.

7. Милнер Стюарт; Дэвис Кристофер; Чжан Хайцзюнь; Льорка Хайме. Вдохновленные природой самоорганизация, управление и оптимизация в гетерогенных беспроводных сетях.[J] IEEE Transactions on Mobile Computing, v 11, n 7, p 1207–1222, 2012. [Google Scholar] 8. Мирджалили С., Мирджалили С.М., Хатамлоу А; Multi-Verse Optimizer: природный алгоритм для глобальной оптимизации, [J] Physical Review C Nuclear Physics, т. 49 (1), стр. 1–19, 2015. [Google Scholar] 9. Вэй Дж., Кундур Д., БатлерПурри К.Л. Новый био-вдохновленный метод быстрой идентификации когерентности генератора в реальном времени, [J] IEEE Transactions on Smart Grid, v6, p 178–188, 2015. [Google Scholar] 10. Lotka AJ. Элементы физической биологии.Публикация Dover, 1956. [Google Scholar] 11. Лю Ф, Гуань Чж, Ван Хо. Анализ устойчивости и бифуркации Хопфа в модели жидкости TCP. [J] НЕЛИНЕЙНЫЙ АНАЛИЗ РЕАЛЬНЫХ МИРОВЫХ ПРИЛОЖЕНИЙ (S1468-1218), v 12 (1), p353–363, 2011. [Google Scholar] 12. Аврейцевич Й. Хаос и синхронизация. Springer International Publishing, p 527–604, 2014. [Google Scholar] 13. Паккард Н.Х., Кратчфилд Дж. П., Фермер Дж. Д. и Шоу Р. С.. Геометрия из временного ряда. [J] Phys. Rev. Lett. (S0031-9007), v45, p712–716, 1980. [Google Scholar] 14.Shivamoggi BK. Хаос в диссипативных системах. Springer; Нидерланды, v103, p189–244, 2014. [Google Scholar] 15. Чандра Э., Субрамани Б. Исследование по контролю за перегрузками, Global Журнал компьютерных наук и технологий. 1 (9), Issue 5, p 82–87, 2010. [Google Scholar] Сетевые адаптеры для настройки производительности

| Документы Microsoft

  • 14 минут на чтение
Эта страница полезна?

Оцените свой опыт

да Нет

Любой дополнительный отзыв?

Отзыв будет отправлен в Microsoft: при нажатии кнопки отправки ваш отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

Представлять на рассмотрение

В этой статье

Применимо к: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, версии 21h3 и 20h3

Используйте информацию в этом разделе, чтобы настроить производительность сетевых адаптеров для компьютеров под управлением Windows Server 2016 и более поздних версий.Если ваши сетевые адаптеры предоставляют параметры настройки, вы можете использовать эти параметры для оптимизации пропускной способности сети и использования ресурсов.

Правильные параметры настройки сетевых адаптеров зависят от следующих переменных:

  • Сетевой адаптер и его набор функций
  • Тип рабочей нагрузки, которую выполняет сервер
  • Аппаратные и программные ресурсы сервера
  • Ваши цели производительности для сервера

В следующих разделах описаны некоторые параметры настройки производительности.

Включение функций разгрузки

Включение функций разгрузки сетевого адаптера обычно полезно. Однако сетевой адаптер может быть недостаточно мощным, чтобы справиться с возможностями разгрузки с высокой пропускной способностью.

Важно

Не используйте функции разгрузки Разгрузка задачи IPsec или Разгрузка TCP Chimney . Эти технологии не рекомендуются в Windows Server 2016 и могут отрицательно повлиять на производительность сервера и сети. Кроме того, эти технологии могут не поддерживаться Microsoft в будущем.

Например, рассмотрим сетевой адаптер с ограниченными аппаратными ресурсами. В этом случае включение функций разгрузки сегментации может снизить максимально устойчивую пропускную способность адаптера. Однако, если снижение пропускной способности приемлемо, следует включить функции разгрузки сегментации.

Примечание

Некоторые сетевые адаптеры требуют, чтобы вы включали функции разгрузки независимо для путей отправки и получения.

Включение масштабирования на стороне приема (RSS) для веб-серверов

RSS может улучшить веб-масштабируемость и производительность, когда на сервере меньше сетевых адаптеров, чем логических процессоров.Когда весь веб-трафик проходит через сетевые адаптеры с поддержкой RSS, сервер может обрабатывать входящие веб-запросы от разных подключений одновременно на разных процессорах.

Важно

Избегайте использования сетевых адаптеров без RSS и сетевых адаптеров с поддержкой RSS на одном сервере. Из-за логики распределения нагрузки в RSS и протоколе передачи гипертекста (HTTP) производительность может сильно снизиться, если сетевой адаптер, не поддерживающий RSS, принимает веб-трафик на сервере, имеющем один или несколько сетевых адаптеров с поддержкой RSS.В этом случае следует использовать сетевые адаптеры с поддержкой RSS или отключить RSS на вкладке свойств сетевого адаптера Дополнительные свойства .

Чтобы определить, поддерживает ли сетевой адаптер RSS, вы можете просмотреть информацию RSS на вкладке свойств сетевого адаптера Дополнительные свойства .

Профили RSS и очереди RSS

Стандартный профиль RSS по умолчанию — NUMAStatic , который отличается от профиля по умолчанию, который использовался в предыдущих версиях Windows.Перед тем, как начать использовать профили RSS, просмотрите доступные профили, чтобы понять, когда они полезны и как они применимы к вашей сетевой среде и оборудованию.

Например, если вы открываете диспетчер задач и просматриваете логические процессоры на своем сервере, и кажется, что они недостаточно используются для приема трафика, вы можете попробовать увеличить количество очередей RSS с двух по умолчанию до максимума, поддерживаемого вашим сетевым адаптером. . Ваш сетевой адаптер может иметь параметры для изменения количества очередей RSS как часть драйвера.

Увеличение ресурсов сетевого адаптера

Для сетевых адаптеров, которые позволяют вручную настраивать ресурсы, такие как буферы приема и отправки, следует увеличить выделенные ресурсы.

Некоторые сетевые адаптеры устанавливают свои буферы приема на низкий уровень для экономии памяти, выделенной хостом. Низкое значение приводит к отбрасыванию пакетов и снижению производительности. Поэтому для сценариев с интенсивным приемом мы рекомендуем увеличить значение буфера приема до максимума.

Примечание

Если сетевой адаптер не предоставляет ручную настройку ресурсов, он либо динамически настраивает ресурсы, либо для ресурсов устанавливается фиксированное значение, которое нельзя изменить.

Включение модерации прерываний

Для управления модерацией прерываний некоторые сетевые адаптеры предоставляют разные уровни модерации прерываний, разные параметры объединения буферов (иногда отдельно для буферов отправки и приема) или и то, и другое.

Следует рассмотреть возможность модерации прерываний для рабочих нагрузок, связанных с процессором.При использовании модерации прерываний рассмотрите компромисс между экономией центрального процессора и задержкой по сравнению с увеличенной экономией центрального процессора из-за большего количества прерываний и меньшей задержки. Если сетевой адаптер не выполняет модерацию прерываний, но предоставляет возможность объединения буферов, вы можете повысить производительность, увеличив количество объединенных буферов, чтобы обеспечить большее количество буферов на отправку или прием.

Настройка производительности для обработки пакетов с малой задержкой

Многие сетевые адаптеры предоставляют опции для оптимизации задержки, вызванной операционной системой.Задержка — это время, прошедшее между обработкой входящего пакета сетевым драйвером и отправкой пакета обратно сетевым драйвером. Это время обычно измеряется в микросекундах. Для сравнения, время передачи пакетов на большие расстояния обычно измеряется в миллисекундах (на порядок больше). Эта настройка не сокращает время, которое пакет проводит в пути.

Ниже приведены некоторые предложения по настройке производительности для сетей, чувствительных к микросекундам.

  • Установите в BIOS компьютера значение High Performance с отключенными C-состояниями.Однако обратите внимание, что это зависит от системы и BIOS, и некоторые системы будут обеспечивать более высокую производительность, если операционная система контролирует управление питанием. Вы можете проверить и настроить параметры управления питанием в разделе «Настройки » или с помощью команды powercfg . Для получения дополнительной информации см. Параметры командной строки Powercfg.

  • Установите профиль управления питанием операционной системы на High Performance System .

    Примечание

    Этот параметр не работает должным образом, если в BIOS системы отключено управление питанием операционной системы.

  • Включить статическую разгрузку. Например, включите параметры контрольных сумм UDP, контрольных сумм TCP и отправки большой разгрузки (LSO).

  • Если трафик является многопоточным, например, при приеме большого объема многоадресного трафика, включите RSS.

  • Отключить настройку Interrupt Moderation для драйверов сетевых карт, которые требуют минимально возможной задержки. Помните, что эта конфигурация может использовать больше процессорного времени и представляет собой компромисс.

  • Обрабатывать прерывания сетевого адаптера и DPC на базовом процессоре, который использует кэш ЦП совместно с ядром, используемым программой (потоком пользователя), обрабатывающим пакет. Настройку соответствия ЦП можно использовать для направления процесса определенным логическим процессорам в сочетании с конфигурацией RSS для достижения этой цели. Использование одного и того же ядра для прерывания, DPC и потока пользовательского режима демонстрирует худшую производительность по мере увеличения нагрузки, поскольку ISR, DPC и поток борются за использование ядра.

Прерывания управления системой

Многие аппаратные системы используют прерывания управления системой (SMI) для различных функций обслуживания, таких как сообщение об ошибках памяти с кодом коррекции ошибок (ECC), поддержание совместимости с устаревшими USB-устройствами, управление вентилятором и управление настройками питания, управляемыми BIOS.

SMI является прерыванием с наивысшим приоритетом в системе и переводит ЦП в режим управления. Этот режим вытесняет все остальные действия, пока SMI выполняет процедуру обслуживания прерывания, обычно содержащуюся в BIOS.

К сожалению, такое поведение может привести к скачкам задержки в 100 микросекунд и более.

Если вам нужно добиться минимальной задержки, вам следует запросить версию BIOS у вашего поставщика оборудования, которая сокращает SMI до минимально возможной степени. Эти версии BIOS часто называют «BIOS с низкой задержкой» или «BIOS без SMI». В некоторых случаях аппаратная платформа не может полностью исключить активность SMI, поскольку она используется для управления основными функциями (например, охлаждающими вентиляторами).

Примечание

Операционная система не может управлять SMI, потому что логический процессор работает в специальном режиме обслуживания, который предотвращает вмешательство операционной системы.

Настройка производительности TCP

Для настройки производительности TCP можно использовать следующие элементы.

Автонастройка окна приема TCP

В Windows Vista, Windows Server 2008 и более поздних версиях Windows сетевой стек Windows использует функцию с именем Уровень автоматической настройки окна приема TCP для согласования размера окна приема TCP.Эта функция может согласовывать определенный размер окна приема для каждой связи TCP во время установления связи TCP.

В более ранних версиях Windows сетевой стек Windows использовал окно приема фиксированного размера (65 535 байт), которое ограничивало общую потенциальную пропускную способность для соединений. Общая достижимая пропускная способность TCP-соединений может ограничивать сценарии использования сети. Автонастройка окна приема TCP позволяет этим сценариям полностью использовать сеть.

Для окна приема TCP определенного размера можно использовать следующее уравнение для расчета общей пропускной способности одного соединения.

Общая достижимая пропускная способность в байтах = Размер окна приема TCP в байтах * (задержка соединения 1/ в секундах )

Например, для соединения с задержкой 10 мс общая достижимая пропускная способность составляет всего 51 Мбит / с. Это значение приемлемо для крупной корпоративной сетевой инфраструктуры. Однако, используя автонастройку для настройки окна приема, соединение может достичь полной скорости линии соединения 1 Гбит / с.

Некоторые приложения определяют размер окна приема TCP. Если приложение не определяет размер окна приема, скорость соединения определяет размер следующим образом:

  • Менее 1 мегабит в секунду (Мбит / с): 8 килобайт (КБ)
  • от 1 Мбит / с до 100 Мбит / с: 17 КБ
  • от 100 Мбит / с до 10 гигабит в секунду (Гбит / с): 64 КБ
  • 10 Гбит / с или быстрее: 128 КБ

Например, на компьютере с установленным сетевым адаптером 1 Гбит / с размер окна должен быть 64 КБ.

Эта функция также в полной мере использует другие функции для повышения производительности сети. Эти функции включают в себя остальные параметры TCP, определенные в RFC 1323. Используя эти функции, компьютеры под управлением Windows могут согласовывать размеры окна приема TCP, которые меньше, но масштабируются на определенное значение в зависимости от конфигурации. Такое поведение легче обрабатывать для сетевых устройств.

Просмотрите и настройте уровень автонастройки окна приема TCP

Для просмотра или изменения уровня автонастройки окна приема TCP можно использовать команды netsh или командлеты Windows PowerShell.

Примечание

В отличие от версий Windows, предшествующих Windows 10 или Windows Server 2019, вы больше не можете использовать реестр для настройки размера окна приема TCP. Дополнительные сведения об устаревших параметрах см. В разделе «Устаревшие параметры TCP».

Примечание

Для получения подробной информации о доступных уровнях автонастройки см. Уровни автонастройки.

Использование netsh для просмотра или изменения уровня автонастройки

Чтобы просмотреть текущие настройки, откройте окно командной строки и выполните следующую команду:

  netsh interface tcp show global
  

Вывод этой команды должен выглядеть следующим образом:

  Запрос активного состояния...

Глобальные параметры TCP
-----
Состояние масштабирования на стороне приема: включено
Состояние разгрузки дымохода: отключено
Уровень автонастройки окна приема: нормальный
Дополнительный поставщик контроля перегрузки: по умолчанию
Возможность ECN: отключено
RFC 1323 Временные метки: отключено
Начальный RTO: 3000
Состояние объединения сегментов приема: включено
Отказоустойчивость Non Sack Rtt: отключена
Максимальное количество повторных передач SYN: 2
Быстрое открытие: включено
Fast Open Fallback: включен
Профиль времени размещения: выкл.
  

Чтобы изменить параметр, выполните в командной строке следующую команду:

  netsh interface tcp set global autotuninglevel = <значение>
  

Примечание

В предыдущей команде < Value > представляет новое значение для уровня автонастройки.

Дополнительные сведения об этой команде см. В разделе Команды Netsh для протокола управления передачей интерфейса.

Использование Powershell для просмотра или изменения уровня автонастройки

Чтобы просмотреть текущие параметры, откройте окно PowerShell и выполните следующий командлет.

  Get-NetTCPSetting | Выберите SettingName, AutoTuningLevelLocal
  

Выходные данные этого командлета должны выглядеть следующим образом.

  Имя параметра AutoTuningLevelLocal
----------- --------------------
Автоматический
ИнтернетПользовательский Обычный
Центр обработки данных Пользовательский Обычный
Совместимость Нормальный
Датацентр Нормальный
Интернет Нормальный
  

Чтобы изменить параметр, запустите следующий командлет в командной строке PowerShell.

  Set-NetTCPSetting -AutoTuningLevelLocal <значение>
  

Примечание

В предыдущей команде < Value > представляет новое значение для уровня автонастройки.

Дополнительные сведения об этих командлетах см. В следующих статьях:

Уровни автонастройки

Вы можете установить автонастройку окна приема на любой из пяти уровней. Уровень по умолчанию — Нормальный . В следующей таблице описаны уровни.

Уровень Шестнадцатеричное значение Комментарии
Нормальный (по умолчанию) 0x8 (масштабный коэффициент 8) Увеличьте окно приема TCP для соответствия почти всем сценариям.
Отключено Масштабный коэффициент недоступен Установите для окна приема TCP значение по умолчанию.
Запрещено 0x4 (масштабный коэффициент 4) Установите для окна приема TCP значение, превышающее значение по умолчанию, но ограничьте такой рост в некоторых сценариях.
Сильно ограниченные 0x2 (коэффициент масштабирования 2) Установить окно приема TCP, превышающее значение по умолчанию, но делайте это очень осторожно.
Экспериментальная 0xE (масштабный коэффициент 14) Установите окно приема TCP на увеличение, чтобы приспособиться к экстремальным сценариям.

Если вы используете приложение для захвата сетевых пакетов, оно должно сообщать данные, подобные приведенным ниже, для различных параметров уровня автонастройки окна.

  • Уровень автонастройки: Нормальный (состояние по умолчанию)

      Кадр: номер = 492, длина захваченного кадра = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4), DestinationAddress: [D8-FE-E3-65-F3-FD], SourceAddress: [C8-5B-76-7D-FA-7F]
    + IPv4: Src = 192.169.0.5, пункт назначения = 192.169.0.4, следующий протокол = TCP, идентификатор пакета = 2667, общая длина IP = 52
    - Tcp: [Bad CheckSum] Flags = ...... S., SrcPort = 60975, DstPort = Microsoft-DS (445), PayloadLen = 0, Seq = 40755, Ack = 0, Win = 64240 (согласование масштабного коэффициента 0x8) = 64240
    SrcPort: 60975
    DstPort: Microsoft-DS (445)
    SequenceNumber: 40755 (0xF2EC9319)
    Номер подтверждения: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Флаги: ...... S. -------------------------------------------------- -------> Флаг SYN установлен
    Окно: 64240 (согласование масштабного коэффициента 0x8) = 64240 ---------> Окно приема TCP установлено на 64 КБ в соответствии с битрейтом NIC Link.Обратите внимание, что он показывает коэффициент масштабирования 0x8.
    Контрольная сумма: 0x8182, неверно
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + Нет Вариант:
    + WindowsScaleFactor: ShiftCount: 8 -----------------------------> Коэффициент масштабирования, определяемый AutoTuningLevel
    + Нет Вариант:
    + Нет Вариант:
    + SACKРазрешено:
      
  • Уровень автонастройки: Выключено

      Кадр: номер = 353, длина захваченного кадра = 62, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4), DestinationAddress: [D8-FE-E3-65-F3-FD], SourceAddress: [C8-5B-76-7D-FA-7F]
    + IPv4: Src = 192.169.0.5, пункт назначения = 192.169.0.4, следующий протокол = TCP, идентификатор пакета = 2576, общая длина IP = 48
    - Tcp: [Bad CheckSum] Flags = ...... S., SrcPort = 60956, DstPort = Microsoft-DS (445), PayloadLen = 0, Seq = 2315885330, Ack = 0, Win = 64240 () = 64240
    SrcPort: 60956
    DstPort: Microsoft-DS (445)
    SequenceNumber: 2315885330 (0x8A099B12)
    Номер подтверждения: 0 (0x0)
    + DataOffset: 112 (0x70)
    + Флаги: ...... S. -------------------------------------------------- -------> Флаг SYN установлен
    Окно: 64240 () = 64240 ----------------------------------------> Прием TCP Окно установлено как 64K в соответствии с битрейтом NIC Link.Обратите внимание, что коэффициент масштабирования не определен. В этом случае коэффициент масштабирования не отправляется как параметр TCP, поэтому он не будет использоваться Windows.
    Контрольная сумма: 0x817E, неверно
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + Нет Вариант:
    + Нет Вариант:
    + SACKРазрешено:
      
  • Уровень автонастройки: Ограниченный

      Кадр: номер = 3, длина захваченного кадра = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4), DestinationAddress: [D8-FE-E3-65-F3-FD], SourceAddress: [C8-5B-76-7D-FA-7F]
    + IPv4: Src = 192.169.0.5, пункт назначения = 192.169.0.4, следующий протокол = TCP, идентификатор пакета = 2319, общая длина IP = 52
    - Tcp: [Bad CheckSum] Flags = ...... S., SrcPort = 60890, DstPort = Microsoft-DS (445), PayloadLen = 0, Seq = 1966088568, Ack = 0, Win = 64240 (согласование масштабного коэффициента 0x4) = 64240
    SrcPort: 60890
    DstPort: Microsoft-DS (445)
    SequenceNumber: 1966088568 (0x75302178)
    Номер подтверждения: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Флаги: ...... S. -------------------------------------------------- -------> Флаг SYN установлен
    Окно: 64240 (согласование масштабного коэффициента 0x4) = 64240 ---------> Окно приема TCP установлено как 64K в соответствии с битрейтом NIC Link.Обратите внимание, что он показывает коэффициент масштабирования 0x4.
    Контрольная сумма: 0x8182, неверно
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + Нет Вариант:
    + WindowsScaleFactor: ShiftCount: 4 -------------------------------> Коэффициент масштабирования, определяемый AutoTuningLevel.
    + Нет Вариант:
    + Нет Вариант:
    + SACKРазрешено:
      
  • Уровень автонастройки: Сильно ограничен

      Кадр: номер = 115, длина захваченного кадра = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4), DestinationAddress: [D8-FE-E3-65-F3-FD], SourceAddress: [C8-5B-76-7D-FA-7F]
    + IPv4: Src = 192.169.0.5, пункт назначения = 192.169.0.4, следующий протокол = TCP, идентификатор пакета = 2388, общая длина IP = 52
    - Tcp: [Bad CheckSum] Flags = ...... S., SrcPort = 60903, DstPort = Microsoft-DS (445), PayloadLen = 0, Seq = 1463725706, Ack = 0, Win = 64240 (согласование масштабного коэффициента 0x2) = 64240
    SrcPort: 60903
    DstPort: Microsoft-DS (445)
    SequenceNumber: 1463725706 (0x573EAE8A)
    Номер подтверждения: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Флаги: ...... S. -------------------------------------------------- -------> Флаг SYN установлен
    Окно: 64240 (согласование масштабного коэффициента 0x2) = 64240 ---------> Окно приема TCP установлено как 64 КБ в соответствии с битрейтом NIC Link.Обратите внимание, что он показывает коэффициент масштабирования 0x2.
    Контрольная сумма: 0x8182, неверно
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + Нет Вариант:
    + WindowsScaleFactor: ShiftCount: 2 ------------------------------> Коэффициент масштабирования, определяемый AutoTuningLevel
    + Нет Вариант:
    + Нет Вариант:
    + SACKРазрешено:
      
  • Уровень автонастройки: Экспериментальный

      Кадр: номер = 238, длина захваченного кадра = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4), DestinationAddress: [D8-FE-E3-65-F3-FD], SourceAddress: [C8-5B-76-7D-FA-7F]
    + IPv4: Src = 192.169.0.5, пункт назначения = 192.169.0.4, следующий протокол = TCP, идентификатор пакета = 2490, общая длина IP = 52
    - Tcp: [Bad CheckSum] Flags = ...... S., SrcPort = 60933, DstPort = Microsoft-DS (445), PayloadLen = 0, Seq = 2095111365, Ack = 0, Win = 64240 (согласование масштабного коэффициента 0xe) = 64240
    SrcPort: 60933
    DstPort: Microsoft-DS (445)
    SequenceNumber: 2095111365 (0x7CE0DCC5)
    Номер подтверждения: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Флаги: ...... S. -------------------------------------------------- -------> Флаг SYN установлен
    Окно: 64240 (согласование масштабного коэффициента 0xe) = 64240 ---------> Окно приема TCP установлено равным 64 КБ в соответствии с битрейтом NIC Link.Обратите внимание, что он показывает коэффициент масштабирования 0xe.
    Контрольная сумма: 0x8182, неверно
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + Нет Вариант:
    + WindowsScaleFactor: ShiftCount: 14 -----------------------------> Коэффициент масштабирования, определяемый AutoTuningLevel
    + Нет Вариант:
    + Нет Вариант:
    + SACKРазрешено:
      
Устаревшие параметры TCP

Следующие параметры реестра из Windows Server 2003 больше не поддерживаются и игнорируются в более поздних версиях.

  • Размер окна TcpWindow
  • NumTcbTablePartitions
  • MaxHashTableSize

Все эти параметры были расположены в следующем подразделе реестра:

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Tcpip \ Parameters

Платформа фильтрации Windows

Windows Vista и Windows Server 2008 представили платформу фильтрации Windows (WFP).WFP предоставляет API-интерфейсы независимым поставщикам программного обеспечения (ISV), не относящимся к Microsoft, для создания фильтров обработки пакетов. Примеры включают брандмауэр и антивирусное программное обеспечение.

Ссылки на все разделы этого руководства см. В разделе Настройка производительности сетевой подсистемы.

Настройка производительности

TCP / IP для виртуальных машин Azure

  • 23 минуты на чтение
Эта страница полезна?

Оцените свой опыт

да Нет

Любой дополнительный отзыв?

Отзыв будет отправлен в Microsoft: при нажатии кнопки отправки ваш отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

Представлять на рассмотрение

В этой статье

В этой статье обсуждаются распространенные методы настройки производительности TCP / IP и некоторые вещи, которые следует учитывать при их использовании для виртуальных машин, работающих в Azure. В нем будет представлен базовый обзор методов и выяснено, как их можно настроить.

Общие методы настройки TCP / IP

MTU, фрагментация и разгрузка большой отправки

MTU

Максимальная единица передачи (MTU) — это кадр (пакет) наибольшего размера, указанный в байтах, который может быть отправлен по сетевому интерфейсу.MTU — это настраиваемый параметр. MTU по умолчанию, используемый на виртуальных машинах Azure, и значение по умолчанию для большинства сетевых устройств во всем мире — 1500 байт.

Фрагментация

Фрагментация происходит при отправке пакета, превышающего MTU сетевого интерфейса. Стек TCP / IP разбивает пакет на более мелкие части (фрагменты), которые соответствуют MTU интерфейса. Фрагментация происходит на уровне IP и не зависит от основного протокола (например, TCP). Когда по сетевому интерфейсу отправляется 2000-байтовый пакет с MTU 1500, пакет будет разбит на один 1500-байтовый пакет и один 500-байтовый пакет.

Сетевые устройства на пути между источником и местом назначения могут либо отбрасывать пакеты, превышающие MTU, либо фрагментировать пакет на более мелкие части.

Бит Не фрагментировать в IP-пакете

Бит Не фрагментировать (DF) — это флаг в заголовке протокола IP. Бит DF указывает, что сетевые устройства на пути между отправителем и получателем не должны фрагментировать пакет. Этот бит может быть установлен по многим причинам. (См. Один пример в разделе «Обнаружение MTU пути» этой статьи.) Когда сетевое устройство получает пакет с установленным битом «Не фрагментировать», и этот пакет превышает MTU интерфейса устройства, стандартное поведение заключается в том, что устройство отбрасывает пакет. Устройство отправляет ICMP-сообщение о необходимости фрагментации обратно исходному источнику пакета.

Влияние фрагментации на производительность

Фрагментация может отрицательно сказаться на производительности. Одной из основных причин влияния на производительность является влияние фрагментации и повторной сборки пакетов на ЦП / память.Когда сетевому устройству необходимо фрагментировать пакет, ему необходимо выделить ресурсы ЦП / памяти для выполнения фрагментации.

То же самое происходит при повторной сборке пакета. Сетевое устройство должно хранить все фрагменты до тех пор, пока они не будут получены, чтобы оно могло собрать их в исходный пакет. Этот процесс фрагментации и повторной сборки также может вызвать задержку.

Другое возможное отрицательное влияние фрагментации на производительность заключается в том, что фрагментированные пакеты могут поступать не по порядку.Когда пакеты принимаются не по порядку, некоторые типы сетевых устройств могут их отбрасывать. Когда это происходит, весь пакет необходимо повторно передать.

Фрагменты обычно отбрасываются устройствами безопасности, такими как сетевые брандмауэры, или когда буферы приема сетевого устройства исчерпаны. Когда буферы приема сетевого устройства исчерпаны, сетевое устройство пытается повторно собрать фрагментированный пакет, но не имеет ресурсов для сохранения и повторного принятия пакета.

Фрагментацию можно рассматривать как отрицательную операцию, но поддержка фрагментации необходима, когда вы подключаете различные сети через Интернет.

Преимущества и последствия модификации MTU

Вообще говоря, вы можете создать более эффективную сеть, увеличив MTU. Каждый передаваемый пакет имеет информацию заголовка, которая добавляется к исходному пакету. Когда при фрагментации создается больше пакетов, возникают дополнительные накладные расходы на заголовок, что снижает эффективность сети.

Вот пример. Размер заголовка Ethernet составляет 14 байтов плюс 4-байтовая последовательность проверки кадра для обеспечения согласованности кадра. Если отправляется один пакет размером 2000 байт, в сеть добавляется 18 байтов служебных данных Ethernet.Если пакет разделен на 1500-байтовый пакет и 500-байтовый пакет, каждый пакет будет иметь 18 байтов заголовка Ethernet, всего 36 байтов.

Имейте в виду, что увеличение MTU не обязательно приведет к созданию более эффективной сети. Если приложение отправляет только 500-байтовые пакеты, накладные расходы заголовка будут существовать независимо от того, составляет ли MTU 1500 или 9000 байтов. Сеть станет более эффективной только в том случае, если в ней будут использоваться пакеты большего размера, на которые влияет MTU.

Azure и VM MTU

MTU по умолчанию для виртуальных машин Azure составляет 1500 байт.Стек виртуальной сети Azure попытается фрагментировать пакет размером 1400 байт.

Обратите внимание, что стек виртуальной сети не является неэффективным по своей сути, поскольку он фрагментирует пакеты размером 1400 байт, даже если MTU виртуальных машин составляет 1500. Большой процент сетевых пакетов намного меньше 1400 или 1500 байтов.

Лазурь и фрагментация
Стек виртуальной сети

настроен на отбрасывание «фрагментов не по порядку», то есть фрагментированных пакетов, которые не поступают в их исходном фрагментированном порядке.Эти пакеты отбрасываются в основном из-за объявленной в ноябре 2018 года уязвимости сетевой безопасности под названием FragmentSmack.

FragmentSmack — это дефект в способе обработки ядром Linux повторной сборки фрагментированных пакетов IPv4 и IPv6. Удаленный злоумышленник может использовать эту уязвимость для запуска дорогостоящих операций повторной сборки фрагментов, что может привести к увеличению загрузки ЦП и отказу в обслуживании в целевой системе.

Настройте MTU

Вы можете настроить MTU виртуальной машины Azure, как и в любой другой операционной системе.Но при настройке MTU следует учитывать описанную выше фрагментацию в Azure.

Мы не поощряем клиентов увеличивать MTU виртуальных машин. Это обсуждение предназначено для объяснения деталей того, как Azure реализует MTU и выполняет фрагментацию.

Важно

Не известно, что увеличение MTU улучшает производительность и может отрицательно сказаться на производительности приложения.

Большая отправка, выгрузка

Разгрузка большой отправки (LSO) может улучшить производительность сети за счет разгрузки сегментации пакетов на адаптер Ethernet.Когда LSO включен, стек TCP / IP создает большой пакет TCP и отправляет его адаптеру Ethernet для сегментации перед пересылкой. Преимущество LSO заключается в том, что он может освободить ЦП от сегментации пакетов по размерам, соответствующим MTU, и передать эту обработку интерфейсу Ethernet, где она выполняется аппаратно. Дополнительные сведения о преимуществах LSO см. В разделе Поддержка разгрузки большой отправки.

Когда LSO включен, клиенты Azure могут видеть кадры большого размера при захвате пакетов.Эти большие размеры кадра могут привести некоторых клиентов к мысли, что происходит фрагментация или что используется большой MTU, когда это не так. С помощью LSO адаптер Ethernet может объявлять больший максимальный размер сегмента (MSS) стеку TCP / IP, чтобы создать больший пакет TCP. Затем весь этот несегментированный кадр пересылается на адаптер Ethernet и будет виден при захвате пакета, выполняемом на виртуальной машине. Но пакет будет разбит на множество более мелких кадров адаптером Ethernet в соответствии с MTU адаптера Ethernet.

Масштабирование окна TCP MSS и PMTUD

Максимальный размер сегмента TCP

Максимальный размер сегмента TCP (MSS) — это параметр, ограничивающий размер сегментов TCP, что позволяет избежать фрагментации пакетов TCP. Операционные системы обычно используют эту формулу для установки MSS:

MSS = MTU - (размер заголовка IP + размер заголовка TCP)

Заголовок IP и заголовок TCP составляют по 20 байтов, или всего 40 байтов. Таким образом, интерфейс с MTU 1500 будет иметь MSS 1460.Но MSS можно настроить.

Этот параметр согласован в трехстороннем подтверждении связи TCP, когда сеанс TCP устанавливается между источником и получателем. Обе стороны отправляют значение MSS, и меньшее из двух используется для TCP-соединения.

Имейте в виду, что MTU источника и назначения — не единственные факторы, определяющие значение MSS. Промежуточные сетевые устройства, такие как VPN-шлюзы, включая Azure VPN Gateway, могут настраивать MTU независимо от источника и назначения, чтобы обеспечить оптимальную производительность сети.

Обнаружение MTU пути

MSS согласовывается, но он может не указывать фактический MSS, который может использоваться. Это связано с тем, что другие сетевые устройства на пути между источником и местом назначения могут иметь меньшее значение MTU, чем источник и место назначения. В этом случае устройство, MTU которого меньше, чем размер пакета, отбросит пакет. Устройство отправит обратно сообщение ICMP Fragmentation Needed (Тип 3, Код 4), которое содержит его MTU. Это сообщение ICMP позволяет хосту-источнику соответствующим образом уменьшить свой MTU пути.Этот процесс называется Path MTU Discovery (PMTUD).

Процесс PMTUD неэффективен и влияет на производительность сети. Когда отправляются пакеты, превышающие MTU сетевого пути, пакеты необходимо повторно передать с более низким MSS. Если отправитель не получает сообщение ICMP Fragmentation Needed, возможно, из-за сетевого брандмауэра на пути (обычно называемого черной дырой PMTUD ), отправитель не знает, что ему нужно снизить MSS, и будет постоянно повторять передачу. пакет.Вот почему мы не рекомендуем увеличивать MTU виртуальной машины Azure.

VPN и MTU

Если вы используете виртуальные машины, которые выполняют инкапсуляцию (например, IPsec VPN), есть некоторые дополнительные соображения относительно размера пакета и MTU. VPN добавляют к пакетам больше заголовков, что увеличивает размер пакета и требует меньшего MSS.

Для Azure мы рекомендуем установить ограничение TCP MSS на 1350 байт и MTU интерфейса туннеля на 1400. Дополнительные сведения см. На странице VPN-устройства и параметры IPSec / IKE.

Задержка, время приема-передачи и масштабирование окна TCP

Задержка и время приема-передачи

Задержка в сети определяется скоростью света в оптоволоконной сети. Пропускная способность сети TCP также эффективно регулируется временем приема-передачи (RTT) между двумя сетевыми устройствами.

Маршрут Расстояние В одну сторону RTT
из Нью-Йорка в Сан-Франциско 4148 км 21 мс 42 мс
из Нью-Йорка в Лондон 5,585 км 28 мс 56 мс
из Нью-Йорка в Сидней 15,993 км 80 мс 160 мс

В этой таблице показано расстояние по прямой между двумя точками.В сетях расстояние обычно больше, чем расстояние по прямой. Вот простая формула для расчета минимального RTT в зависимости от скорости света:

минимальное RTT = 2 * (расстояние в километрах / скорость распространения)

Вы можете использовать 200 для скорости распространения. Это расстояние в километрах, которое свет проходит за 1 миллисекунду.

Возьмем, к примеру, Нью-Йорк и Сан-Франциско. Расстояние по прямой — 4 148 км. Подставляя это значение в уравнение, мы получаем следующее:

Минимальное RTT = 2 * (4,148/200)

Вывод уравнения в миллисекундах.

Если вы хотите добиться максимальной производительности сети, логичным вариантом будет выбор пунктов назначения с кратчайшим расстоянием между ними. Вы также должны спроектировать свою виртуальную сеть так, чтобы оптимизировать путь трафика и уменьшить задержку. Дополнительные сведения см. В разделе «Рекомендации по проектированию сети» данной статьи.

Влияние задержки и времени приема-передачи на TCP

Время приема-передачи напрямую влияет на максимальную пропускную способность TCP. В протоколе TCP размер окна — это максимальный объем трафика, который может быть отправлен по TCP-соединению до того, как отправителю потребуется получить подтверждение от получателя.Если TCP MSS установлен на 1460, а размер окна TCP установлен на 65 535, отправитель может отправить 45 пакетов, прежде чем он должен будет получить подтверждение от получателя. Если отправитель не получает подтверждения, он повторно передает данные. Вот формула:

Размер окна TCP / TCP MSS = количество отправленных пакетов

В этом примере 65 535/1460 округлено до 45.

Это состояние «ожидания подтверждения», механизм для обеспечения надежной доставки данных, является причиной того, что RTT влияет на пропускную способность TCP.Чем дольше отправитель ждет подтверждения, тем дольше ему нужно ждать перед отправкой дополнительных данных.

Вот формула для расчета максимальной пропускной способности одного TCP-соединения:

Размер окна / (задержка RTT в миллисекундах / 1000) = максимальное количество байтов в секунду

В этой таблице показана максимальная пропускная способность одного TCP-соединения в мегабайтах в секунду. (Для удобочитаемости в качестве единицы измерения используются мегабайты.)

Размер окна TCP (байты) Задержка RTT (мс) Максимальная пропускная способность, мегабайт / с Максимальная пропускная способность, мегабит / с
65 535 1 65.54 524,29
65 535 30 2,18 17,48
65 535 60 1,09 8,74
65 535 90,73 5,83
65 535 120 .55 4,37

Если пакеты потеряны, максимальная пропускная способность TCP-соединения будет уменьшена, пока отправитель повторно передает данные, которые он уже отправил.

Масштабирование окна TCP

Масштабирование окна TCP — это метод, который динамически увеличивает размер окна TCP, чтобы разрешить отправку большего количества данных до того, как потребуется подтверждение. В предыдущем примере было отправлено 45 пакетов до того, как потребуется подтверждение. Если вы увеличите количество пакетов, которые могут быть отправлены до того, как потребуется подтверждение, вы уменьшите количество раз, когда отправитель ожидает подтверждения, что увеличивает максимальную пропускную способность TCP.

Эта таблица иллюстрирует эти отношения:

Размер окна TCP (байты) Задержка RTT (мс) Максимальная пропускная способность, мегабайт / с Максимальная пропускная способность, мегабит / с
65 535 30 2.18 17,48
131 070 30 4,37 34,95
262,140 30 8,74 69,91
524 280 30 17,48 139,81

Но значение заголовка TCP для размера окна TCP составляет всего 2 байта, что означает, что максимальное значение для окна приема составляет 65 535. Для увеличения максимального размера окна был введен масштабный коэффициент окна TCP.3) = 262,140 байт

Коэффициент масштабирования 14 приводит к размеру окна TCP 14 (максимально допустимое смещение). Размер окна TCP составит 1 073 725 440 байт (8,5 гигабит).

Поддержка масштабирования окна TCP

Windows может устанавливать разные коэффициенты масштабирования для разных типов подключения. (Классы подключений включают центр обработки данных, Интернет и т. Д.) Используйте команду Get-NetTCPConnection PowerShell для просмотра типа подключения масштабирования окна:

  Get-NetTCPConnection
  

Для просмотра значений каждого класса можно использовать команду Get-NetTCPSetting PowerShell:

  Get-NetTCPSetting
  

Вы можете установить начальный размер окна TCP и коэффициент масштабирования TCP в Windows с помощью команды Set-NetTCPSetting PowerShell. 14)

Эти параметры с наибольшей вероятностью повлияют на производительность TCP, но имейте в виду, что многие другие факторы в Интернете, не зависящие от Azure, также могут влиять на производительность TCP.

Увеличить размер MTU

Поскольку больший MTU означает больший MSS, вы можете задаться вопросом, может ли увеличение MTU повысить производительность TCP. Возможно нет. У размера пакета есть свои плюсы и минусы, помимо TCP-трафика. Как обсуждалось ранее, наиболее важными факторами, влияющими на производительность TCP, являются размер окна TCP, потеря пакетов и RTT.

Важно

Мы не рекомендуем клиентам Azure изменять значение MTU по умолчанию на виртуальных машинах.

Ускоренное сетевое масштабирование и масштабирование на стороне приема

Ускоренная работа в сети

Сетевые функции виртуальной машины исторически требовали высокой загрузки ЦП как на гостевой виртуальной машине, так и на гипервизоре / хосте.Каждый пакет, который проходит через хост, обрабатывается программно центральным процессором, включая всю инкапсуляцию и декапсуляцию виртуальной сети. Таким образом, чем больше трафика проходит через хост, тем выше нагрузка на ЦП. И если центральный процессор занят другими операциями, это также повлияет на пропускную способность сети и задержку. Azure решает эту проблему с помощью ускоренной работы в сети.

Accelerated Network обеспечивает стабильную сверхмалую задержку в сети благодаря внутреннему программируемому оборудованию Azure и таким технологиям, как SR-IOV.Ускоренная работа в сети перемещает большую часть программно-определяемого сетевого стека Azure с ЦП на SmartNIC на базе FPGA. Это изменение позволяет приложениям конечных пользователей восстанавливать вычислительные циклы, что снижает нагрузку на виртуальную машину, снижает дрожание и несогласованность в задержках. Другими словами, производительность может быть более детерминированной.

Accelerated Network повышает производительность, позволяя гостевой виртуальной машине обходить хост и устанавливать канал данных напрямую с помощью SmartNIC хоста. Вот некоторые преимущества ускоренной работы в сети:

  • Меньшая задержка / большее количество пакетов в секунду (pps) : удаление виртуального коммутатора из канала данных устраняет время, затрачиваемое на хосте для обработки политик, и увеличивает количество пакетов, которые могут быть обработаны в виртуальной машине.

  • Уменьшение джиттера : Обработка виртуального коммутатора зависит от объема политики, которую необходимо применить, и рабочей нагрузки процессора, выполняющего обработку. Передача применения политик на оборудование устраняет эту изменчивость, доставляя пакеты непосредственно в виртуальную машину, устраняя связь между хостами и все программные прерывания и переключение контекста.

  • Пониженная загрузка ЦП : Обход виртуального коммутатора на хосте приводит к меньшей загрузке ЦП для обработки сетевого трафика.

Чтобы использовать ускоренную сеть, необходимо явно включить ее на каждой применимой виртуальной машине. См. Инструкции в разделе Создание виртуальной машины Linux с ускоренной сетью.

Масштабирование на стороне приема

Масштабирование на стороне приема (RSS) — это технология сетевого драйвера, которая более эффективно распределяет прием сетевого трафика за счет распределения обработки приема между несколькими ЦП в многопроцессорной системе. Проще говоря, RSS позволяет системе обрабатывать больше полученного трафика, потому что он использует все доступные процессоры вместо одного.Для более технического обсуждения RSS см. Введение для получения бокового масштабирования.

Чтобы получить максимальную производительность при включении ускоренной сети на виртуальной машине, необходимо включить RSS. RSS также может принести пользу виртуальным машинам, которые не используют ускоренное сетевое управление. Обзор того, как определить, включен ли RSS и как его включить, можно найти в разделе Оптимизация пропускной способности сети для виртуальных машин Azure.

TCP TIME_WAIT и TIME_WAIT убийство

TCP TIME_WAIT — еще один распространенный параметр, влияющий на производительность сети и приложений.На загруженных виртуальных машинах, которые открывают и закрывают множество сокетов в качестве клиентов или серверов (IP-адрес источника: порт источника + IP-адрес назначения: порт назначения), во время нормальной работы TCP данный сокет может оказаться в состоянии TIME_WAIT для много времени. Состояние TIME_WAIT предназначено для того, чтобы разрешить доставку любых дополнительных данных в сокет перед его закрытием. Таким образом, стеки TCP / IP обычно предотвращают повторное использование сокета, молча отбрасывая TCP SYN-пакет клиента.

Время, в течение которого сокет находится в TIME_WAIT, можно настроить.Он может составлять от 30 секунд до 240 секунд. Сокеты — это ограниченный ресурс, и количество сокетов, которые можно использовать в любой момент времени, можно настроить. (Количество доступных сокетов обычно составляет около 30 000.) Если доступные сокеты потребляются, или если клиенты и серверы имеют несовпадающие настройки TIME_WAIT, а виртуальная машина пытается повторно использовать сокет в состоянии TIME_WAIT, новые соединения не будут выполнены как пакеты TCP SYN молча сбрасываются.

Значение диапазона портов для исходящих сокетов обычно настраивается в стеке TCP / IP операционной системы.То же самое верно для настроек TCP TIME_WAIT и повторного использования сокетов. Изменение этих чисел потенциально может улучшить масштабируемость. Но, в зависимости от ситуации, эти изменения могут вызвать проблемы совместимости. Будьте осторожны, если измените эти значения.

Вы можете использовать убийство TIME_WAIT, чтобы устранить это ограничение масштабирования. Убийство TIME_WAIT позволяет повторно использовать сокет в определенных ситуациях, например, когда порядковый номер в IP-пакете нового соединения превышает порядковый номер последнего пакета из предыдущего соединения.В этом случае операционная система позволит установить новое соединение (примет новый SYN / ACK) и принудительно закрыть предыдущее соединение, которое находилось в состоянии TIME_WAIT. Эта возможность поддерживается на виртуальных машинах Windows в Azure. Чтобы узнать о поддержке других виртуальных машин, обратитесь к поставщику ОС.

Чтобы узнать о настройке параметров TCP TIME_WAIT и диапазона портов источника, см. Параметры, которые можно изменить для повышения производительности сети.

Факторы виртуальной сети, которые могут повлиять на производительность

Максимальная исходящая пропускная способность ВМ

Azure предоставляет виртуальные машины разных размеров и типов, каждая из которых обладает различным набором возможностей производительности.Одна из этих возможностей — пропускная способность сети (или полоса пропускания), которая измеряется в мегабитах в секунду (Мбит / с). Поскольку виртуальные машины размещаются на общем оборудовании, емкость сети должна быть справедливо распределена между виртуальными машинами, использующими одно и то же оборудование. Большим виртуальным машинам выделяется больше пропускной способности, чем виртуальным машинам меньшего размера.

Пропускная способность сети, выделенная каждой виртуальной машине, измеряется по исходящему (исходящему) трафику от виртуальной машины. Весь сетевой трафик, покидающий виртуальную машину, засчитывается в выделенный лимит, независимо от места назначения.Например, если для виртуальной машины установлено ограничение в 1000 Мбит / с, это ограничение применяется независимо от того, предназначен ли исходящий трафик для другой виртуальной машины в той же виртуальной сети или за пределами Azure.

Входящий трафик напрямую не измеряется и не ограничивается. Но есть и другие факторы, такие как ограничения ЦП и хранилища, которые могут повлиять на способность виртуальной машины обрабатывать входящие данные.

Accelerated Network предназначена для повышения производительности сети, включая задержку, пропускную способность и использование ЦП.Ускоренная работа в сети может повысить пропускную способность виртуальной машины, но это возможно только в пределах выделенной ей пропускной способности.

Виртуальные машины Azure имеют по крайней мере один подключенный к ним сетевой интерфейс. Их может быть несколько. Пропускная способность, выделенная виртуальной машине, представляет собой сумму всего исходящего трафика по всем сетевым интерфейсам, подключенным к машине. Другими словами, полоса пропускания распределяется для каждой виртуальной машины независимо от того, сколько сетевых интерфейсов подключено к машине.

Ожидаемая исходящая пропускная способность и количество сетевых интерфейсов, поддерживаемых виртуальными машинами каждого размера, подробно описаны в разделе «Размеры для виртуальных машин Windows в Azure». Чтобы увидеть максимальную пропускную способность, выберите тип, например Общего назначения , а затем найдите раздел о серии размеров на странице результатов (например, «Серия Dv2»). Для каждой серии есть таблица с сетевыми характеристиками в последнем столбце, озаглавленном «Макс. Количество сетевых адаптеров / ожидаемая пропускная способность сети (Мбит / с)».

Предел пропускной способности применяется к виртуальной машине.Эти факторы не влияют на пропускную способность:

  • Количество сетевых интерфейсов : ограничение пропускной способности применяется к сумме всего исходящего трафика с виртуальной машины.

  • Ускоренная работа в сети : Хотя эта функция может быть полезна для достижения опубликованного лимита, она не меняет лимит.

  • Пункт назначения для трафика : все пункты назначения учитываются в лимите исходящего трафика.

  • Протокол : весь исходящий трафик по всем протоколам учитывается при подсчете лимита.

Дополнительные сведения см. В разделе Пропускная способность сети виртуальной машины.

Соображения относительно производительности Интернета

Как обсуждалось в этой статье, факторы в Интернете и вне контроля Azure могут влиять на производительность сети. Вот некоторые из этих факторов:

  • Задержка : На время приема-передачи между двумя пунктами назначения могут влиять проблемы в промежуточных сетях, трафик, который не проходит по «кратчайшему» пути, и неоптимальные пути пиринга.

  • Потеря пакетов : потеря пакетов может быть вызвана перегрузкой сети, проблемами физического пути и неэффективными сетевыми устройствами.

  • Размер MTU / Фрагментация : Фрагментация по пути может привести к задержкам в поступлении данных или к пакетам, прибывающим не по порядку, что может повлиять на доставку пакетов.

Traceroute — хороший инструмент для измерения характеристик производительности сети (таких как потеря пакетов и задержка) на каждом сетевом пути между исходным устройством и целевым устройством.

Рекомендации по проектированию сети

Наряду с соображениями, обсуждавшимися ранее в этой статье, топология виртуальной сети может влиять на производительность сети. Например, конструкция с концентратором и спицами, которая передает трафик по всему миру в виртуальную сеть с одним концентратором, приведет к задержке сети, что повлияет на общую производительность сети.

Количество сетевых устройств, через которые проходит сетевой трафик, также может влиять на общую задержку. Например, в схеме с концентратором и лучом, если трафик проходит через виртуальное устройство лучевой сети и виртуальное устройство концентратора перед переходом в Интернет, сетевые виртуальные устройства могут вызвать задержку.

Регионы Azure, виртуальные сети и задержка

регионов Azure состоят из нескольких центров обработки данных, существующих в пределах одной географической области. Эти центры обработки данных могут физически не находиться рядом друг с другом. В некоторых случаях их разделяет целых 10 километров. Виртуальная сеть представляет собой логическое наложение поверх физической сети центра обработки данных Azure. Виртуальная сеть не подразумевает какой-либо конкретной топологии сети в центре обработки данных.

Например, две виртуальные машины, которые находятся в одной виртуальной сети и подсети, могут находиться в разных стойках, рядах или даже центрах обработки данных.Они могут быть разделены футами оптоволоконного кабеля или километрами оптоволоконного кабеля. Этот вариант может вызвать переменную задержку (разница в несколько миллисекунд) между разными виртуальными машинами.

На географическое размещение виртуальных машин и возможную результирующую задержку между двумя виртуальными машинами может влиять конфигурация групп доступности и зон доступности. Но расстояние между центрами обработки данных в регионе зависит от региона и в первую очередь зависит от топологии центра обработки данных в регионе.

Истощение порта источника NAT

Развертывание в Azure может обмениваться данными с конечными точками за пределами Azure в общедоступном Интернете и / или в общедоступном IP-пространстве. Когда экземпляр инициирует исходящее соединение, Azure динамически сопоставляет частный IP-адрес с общедоступным IP-адресом. После того, как Azure создаст это сопоставление, обратный трафик для исходящего исходящего потока также может достигать частного IP-адреса, с которого исходил поток.

Для каждого исходящего подключения балансировщику нагрузки Azure необходимо поддерживать это сопоставление в течение некоторого периода времени.Благодаря многопользовательской природе Azure поддержание этого сопоставления для каждого исходящего потока для каждой виртуальной машины может потребовать значительных ресурсов. Таким образом, существуют ограничения, которые установлены и основаны на конфигурации виртуальной сети Azure. Или, точнее говоря, виртуальная машина Azure может устанавливать только определенное количество исходящих подключений в определенный момент времени. Когда эти ограничения будут достигнуты, виртуальная машина не сможет устанавливать больше исходящих подключений.

Но это поведение можно настроить. Дополнительные сведения об исчерпании портов SNAT и SNAT см. В этой статье.

Измерение производительности сети в Azure

Ряд максимумов производительности в этой статье связаны с задержкой в ​​сети / временем приема-передачи (RTT) между двумя виртуальными машинами. В этом разделе представлены некоторые предложения по тестированию задержки / RTT и по тестированию производительности TCP и производительности сети виртуальных машин. Вы можете настроить и протестировать производительность TCP / IP и сетевых значений, обсужденных ранее, используя методы, описанные в этом разделе. Вы можете включить значения задержки, MTU, MSS и размера окна в расчеты, представленные ранее, и сравнить теоретические максимумы с фактическими значениями, которые вы наблюдаете во время тестирования.

Измерение времени приема-передачи и потери пакетов

Производительность

TCP во многом зависит от RTT и потери пакетов. Утилита PING, доступная в Windows и Linux, предоставляет самый простой способ измерить RTT и потерю пакетов. Вывод PING покажет минимальную / максимальную / среднюю задержку между источником и получателем. Он также покажет потерю пакетов. По умолчанию PING использует протокол ICMP. Вы можете использовать PsPing для проверки TCP RTT. Для получения дополнительной информации см. PsPing.

Измерьте фактическую пропускную способность TCP-соединения

NTttcp — это инструмент для тестирования производительности TCP на виртуальной машине Linux или Windows.Вы можете изменить различные настройки TCP, а затем протестировать преимущества с помощью NTttcp. Для получения дополнительной информации см. Эти ресурсы:

Измерьте фактическую пропускную способность виртуальной машины

Вы можете протестировать производительность различных типов виртуальных машин, ускоренных сетей и т. Д. С помощью инструмента iPerf. iPerf также доступен для Linux и Windows. iPerf может использовать TCP или UDP для проверки общей пропускной способности сети. На тесты пропускной способности iPerf TCP влияют факторы, обсуждаемые в этой статье (например, задержка и RTT).Таким образом, UDP может дать лучшие результаты, если вы просто хотите проверить максимальную пропускную способность.

Дополнительные сведения см. В статьях:

Обнаружение неэффективного поведения TCP

При захвате пакетов клиенты Azure могут видеть TCP-пакеты с TCP-флагами (SACK, DUP ACK, RETRANSMIT и FAST RETRANSMIT), которые могут указывать на проблемы с производительностью сети. Эти пакеты конкретно указывают на неэффективность сети, которая возникает в результате потери пакетов. Но потеря пакетов не обязательно вызвана проблемами производительности Azure.Проблемы с производительностью могут быть результатом проблем приложений, проблем с операционной системой или других проблем, которые могут не иметь прямого отношения к платформе Azure.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *