Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

Директ длина заголовка: Символы объявлений Я.Директ

Содержание

Зачем нужен второй заголовок в Яндекс.Директ? Использование заголовка на примерах

Не так давно Яндекс добавил возможность использования второго заголовка длиной до 30 символов для текстово-графических объявлений.

Связано это с исследованиями Яндекса, которые показали, что длинные заголовки привлекают внимание пользователей лучше, чем короткие. Следовательно, это приводит к увеличению числа кликов и прибыли (как рекламодателя, так и Яндекса).

Как обещает российская компания — использование второго заголовка позволяет увеличить CTR рекламным объявлений: до 5% на ПК и до 10% — на рекламе в мобильных устройствах.

Отмечу, что приложение Директ Коммандер также поддерживает создание объявлений с двумя заголовками. Почитайте, что пишет сам Яндекс о новых возможностях — https://yandex.ru/support/direct-news/n-2017-08-15.html

Что можно написать во втором заголовке

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

1. Можно использовать в качестве призыва к действию:

2. Описывать преимущества товара или компании: акции, гарантия, цена или скидка:

3. Дополнительное упоминание бренда и компании:

4. Прочая дополнительная информация:

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

Вывод

Нововведения Яндекса дают ощутимую свободу для творчества всем рекламодателям. Длина первой части осталась неизменной и составляет 35 символов, вторая позволит добавить 30 дополнительных знаков. Кроме этого, увеличилась длина объявления с 75 знаков до 81-го.

Невероятная возможность реализовать все задуманные фантазии в месседже для клиента!

Но это еще не все! Теперь не учитываются знаки препинания в общем объеме текста, что позволяет написать максимально «вкусное» и интересное предложение для аудитории. Однако, и здесь есть ограничения по количеству ‒ максимум 15 знаков, но этого более чем достаточно. К таким относятся:

  • кавычки и двоеточие;
  • запятая и точка;
  • восклицательный знак.

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

Остались вопросы по настройке? Задавайте в комментариях ниже или пишите мне на личную почту [email protected]. С удовольствием помогу с решением вопроса

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

Читайте дальше:

Метки #контекстная реклама, #яндекс.директ

когда показывается и как работает

Второй заголовок – используем с умом

1. Сейчас длина первого заголовка составляет 35 символов. При этом пунктуация не засчитывается – смело ставьте до 15 знаков препинания. Каждый рекламодатель согласится, наличие такого числа знаков удобно, ведь часто из-за нехватки символов приходится резать или переписывать все объявление снова. Оно и понятно, чем больше заголовок соответствует запросу пользователя, тем выше становится и конверсия сайта.

2. Второй заголовок содержит 30 символов, что только при нововведении рекламодатели оценивали как чудо ☺ Конечно, включили и 15 знаков препинания, какие не считают. Объявления стали еще заметнее и интереснее:

Когда ставите 2-й заголовок – обращайте внимание пользователей на главные выгоды предложения: «Собственное производство», «Доставим бесплатно», «Скидки 70% до конца июня» и прочее.

Когда показывается второй заголовок объявления, велика вероятность повышения показателя кликабельности, CTR: на персональных компьютерах – до 5%, а на смартфонах и планшетах – аж до 10%.

Ну, и сам текст объявления стал полнее и привлекательнее для целевой аудитории, как видите. Размещайте до 81 символа – больше рассказывайте о преимуществах и делитесь информацией с будущими заказчиками.

Теперь перейдем к проблеме, которая встречается достаточно часто. Многие рекламодатели задаются вопросом, почему на поиске не отображается второй заголовок, который они старательно прописали в интерфейсе Яндекс Директа. И дело тут вовсе не в случайности, как многие считают. Дело в том, что у Яндекса существует ограничение по символам, для обоих заголовков (суммарное). И покажется второй заголовок или нет зависит от площади, которую займут на экране оба заголовка. К сожалению у нас нет возможности использовать 65 символов (35+30). Рекомендуется, что сумма символов двух заголовков, включая пробелы, не превышала 50-56 знаков. Посмотреть, будет ли показываться ваш второй заголовок или нет, можно в предварительном просмотре.

Также не стоит забывать, что второй заголовок не отображается, при показе в сетях.

Выводы

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

Не считайте ворон! Регулярно следите за новыми фишками и свежими инструментами в старых опциях Директа. Создавайте полезные, понятные и привлекательные объявления! ☺

Заголовок объявления Яндекс Директ — требования и рекомендации Контекстная реклама

Хороший заголовок в объявлениях Яндекс Директ не только привлечет внимание целевой аудитории, что приведет к повышению CTR (т.е. кликабельности), но и уменьшит стоимость объявления. Чтобы сделать такой заголовок необходимо правильно подобрать ключевые фразы, предварительно проанализировав поисковые запросы, а также дать исчерпывающий ответ на запрос пользователя.

Как сделать хороший заголовок:

1.Покажите уникальность через акции, скидки, уникальные условия, гарантии, — словом дайте те “плюшки”, которые можете, чтобы пользователь выбрал именно ваш товар/услугу.

  1. Привлеките внимание стоимостью товара или услуги, чтобы по ссылке проходили уже “тепленькие” клиенты, готовы купить.
  2. Укажите название бренда, если оно на слуху.
  3. Не обманывайте. Пишите только то, что действительно можете предложить.
  4. Побудите пользователя к целевому действию: Успейте купить/ оформить!
  5. Сделайте второй заголовок, больше, чтобы расширить.

Расширьте заголовок, чтобы сообщить больше информации. По данным “Яндекса”, CTR с таким заголовком возрастает на 5% — 10%. Напишите второй самостоятельный заголовок, чтобы добавить больше информации к вашему объявлению.

Какие ограничения по числу символов?

Сегодня размер заголовка объявления в Яндекс Директ составляет 35 символов для первого заголовка и 30 для второго, для мобильной версии объявления длина заголовка составляет 33 символа.

Восклицательные знаки в заголовках

Не бойтесь использовать восклицательные знаки, это усилит впечатление от заголовка, к тому же знаки препинания не влияют на символы, т.е. на количество знаков. Например: “Купите саженцы помидоров! Скидка 50%!” Заметьте, что все заголовки и подзаголовки пишутся в повелительном наклонении. Это делается специально, чтобы подсознательно влиять на людей. Как показывают тесты, объявления в таком тоне имеют наибольшую кликабельность, вместо скучных “купить”, “заказать”.

Зачем нужен второй заголовок?

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

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

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

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

 

Вам могут быть интересны другие наши статьи:

Ставки в Директ 

Яндекс аудитории

Яндекс Директ слова 

 

 

Заголовок Яндекс.Директ | Расширяем до 56 символов!

Многие из вас, уважаемые пользователи, мне часто задают вопрос: «Как именно увеличить заголовок Яндекс.Директ?». Просто у некоторых не получается сделать это правильно. А ведь от заголовка Яндекс.Директ зависит весь успех контекстной рекламы, вся ваша прибыль от продаж и эффективный рост бизнеса!

Как мы знаем, стандартная длина заголовка в Яндекс.Директе — 33 символа, учитывая пробелы. И если вы в настройках кампании не отключали функцию подстановки части текста объявления в заголовок, то заголовок, зачастую, будет показываться в непривлекательном виде типа обрубка, прямо как в фильме ужасов, вот так (выделено красным). 😯

Будет добавляться «некрасивый» обрубок в виде адреса сайта или будет подхватываться из начала текста объявления то, что влезет уже в расширенный заголовок Яндекс.Директ (56 символов). Это может быть какое-нибудь словосочетание или короткая фраза из начала объявления, после которой стоит точка. Оно нам надо? НЕТ!

Мы сделаем длинный заголовок, максимально привлекающий внимание, куда влезут даже ключевые слова длиной в 53 символа, которые чаще всего являются НЧ запросами и стоят меньше денег (цена за клик)!

Расширенный заголовок Яндекс.Директ

Итак, сразу стоит сказать, почему мы можем расширить заголовок только до 53 символов, а не до 56. Все дело в том, что когда Директ добавляет часть текста в заголовок, то перед этой «добавкой» он ставит 3 знака: пробел, тире, пробел, — в итоге нам остается только 53 символа, вместе с точкой, восклицательным или другим знаком на конце заголовка.

Вот пример расширенного заголовка Яндекс.Директ в 56 символов со всеми необходимыми знаками препинания. Ключ «оказание услуг по бухгалтерскому обслуживанию дешево»: 53 символа с точкой на конце + добавленные Директом 3 заветных знака = 56 символов.

Как видите, получился классный заголовок (1), в который полностью вмещается ключ без всяких обрубков (вид объявления при показах). А в тексте объявления (2) пишется так, чтобы после остатка нашего ключа была обязательна точка или другой знак, заканчивающий предложение, иначе Яндекс не подхватит текст в заголовок из-за превышения количества символов. Таким образом, вы можете экспериментировать с длиной текста и ключа, главное — ключ должен быть не более 53 символов со знаком препинания на конце или 52 символов без знака препинания.

В итоге, с такой длиной заголовка Яндекс.Директ вы получаете магнетически привлекающее внимание объявление, которое увеличивает кликабельность и тем самым повышает CTR, что конечно же ведет к снижению цен за клики! Многие рекламодатели вообще не используют такие длинные ключевые слова, теряя реально целевых клиентов и выгодные цены за клики, все в ваших руках — накажите своих конкурентов, используя расширенный заголовок!

 

Второй заголовок в объявлениях Яндекс Директ и РСЯ

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

Что это такое и зачем нужно

Второй заголовок в Яндекс.Директе появился только в 2017 году. Чтобы оценить всю крутость этого события, можно сравнить внешний вид рекламы.

Вот первый случай – приписывается домен.

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

Вот другой вариант – подстановка фрагмента текста.

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

А вот пример использования второго заголовка в объявлении.

Чем отличается от предыдущего? Длиной. Основной текст выводится в полном объеме, что делает объявление не только заметнее, но и информативнее.

Итак, второй заголовок в Яндекс.Директе дает нам:

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

Но нужно учитывать несколько моментов.

Нюансы использования

Прежде всего важно знать, когда показывается второй заголовок в Директе. Сейчас он используется в рекламе на поиске Яндекса, но показы НЕ гарантированы и зависят от площади, которую занимают оба заголовка на экране.

Это значит, что:

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

Второй заголовок в РСЯ сейчас только тестируется, поэтому добавлять его нет смысла.

Как заполнять

Немного математики:

  • длина второго заголовка в Директе фиксирована: максимум 30 символов плюс 15 знаков препинания;
  • ограничение по ширине для обоих заголовков – 517 пикселей. Тут нужно помнить, что подсветка увеличивает ширину;
  • суммарная длина для стабильного показа – до 56 символов с учетом тире и двух пробелов.

О содержании:

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

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

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

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

  • вопрос-ответ. Особенно актуально, если в первом заголовке вписывается ключ с «где», «как» и пр.;

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

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

Submit Rating

Рейтинг: / 5. Голосов:

Длинный заголовок в Яндекс Директ

Вместе с пробелами и знаками препинания длина заголовка в рекламных кампаниях Яндекс директ может
составлять всего 33 символа. Существует несколько хитростей о том, как сделать длинные заголовки в директе. Одна из
них – перенос первого предложения из самого объявления в заголовок, ещё одна –
добавление в заголовок ссылки на ваш сайт.

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

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

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

Подставка в заголовок, первого предложения в вашем
объявлении, также не сработает, если она будет с ним одинаковой или
единственной в теле текста.
Лучше всего в заголовки Яндекс директ
добавлять самые важные преимущества вашего бизнеса. Укажите акции, скидки,
стоимость продукта/услуг.

h-1: Длинный заголовок в Яндекс
директ

Кейвордс:Длинный заголовок в яндекс директ, длинные заголовки в директе, заголовок в яндекс
директ, длина заголовка директ, длина заголовка яндекс директ, заголовок яндекс
директ, яндекс директ заголовок, сколько символов в объявлении яндекс директ,
допускаемые символы в директ заголовок

Тайтл:Как
сделать длинный заголовок в Яндекс директ

Дискрипшн: Вместе с пробелами и знаками препинания длина заголовка в рекламных кампаниях
Яндекс
директ может составлять всего 33 символа. Существует несколько хитростей
о том, как сделать длинные заголовки в
директе

Новинка от Яндекс.Директ: допсимволы и двойные заголовки

18 августа 2017 г.

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

Если раньше длина заголовка объявления в Я.Директ не могла быть больше 33 символов, то теперь у рекламодателей появилась возможность делать по два заголовка у объявления, длиной до 35 и 30 символов соответственно. Длина текста тоже увеличилась — с 75 до 81 символа.

Принесут ли нововведения пользу?

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

Когда в Директе появилась возможность подставлять часть текста в заголовок, многие рекламодатели стали пользоваться этой опцией, и весьма успешно — CTR их объявлений увеличивался. Однако у такого способа расширения заголовка был минус: существенно уменьшался размер текста за счет того, что его часть перемещалась в заголовок объявления. Теперь такая проблема исчезла, ведь с новой возможностью Директа можно ставить сразу два заголовка и при этом не только сохранить текст, но и расширить его до 81 символа!

Эксперименты, которые проводила команда Яндекса, показали, что расширенные заголовки и текст объявлений смогут увеличить CTR на 5% на десктопах и на целых 10% на мобильных устройствах. Отличные показатели для такой, на первый взгляд, не слишком существенной опции.

Еще больше новшеств от Я.Директ

На двойных заголовках и увеличенном тексте приятные сюрпризы от Яндекса не закончились. Теперь в объявлениях Директа знаки препинания не будут включаться в общий подсчет символов. Речь идет о следующих знаках:

  • Точка (.)
  • Запятая (,)
  • Двоеточие (:)
  • Точка с запятой (;)
  • Кавычки (“»)
  • Восклицательный знак (!)

По одному из многочисленных предположений эта мера — попытка сократить к минимуму объявления с пунктуационными ошибками. Ведь раньше из-за необходимости уместить заголовок в 33 символа, а текст — в 35, многие пропускали знаки препинания. Такая «экономия» приходится по вкусу далеко не всем потенциальным клиентам, поэтому CTR может снижаться.

Как понять, какие объявления эффективнее — классические или обновленные?

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

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

Обзор потоковой обработки

IPv6 | Руководство пользователя потоковой и пакетной обработки для устройств безопасности

В этом разделе описывается протокол управляющих сообщений Интернета (ICMP),
Сообщения ICMP и то, как ОС Junos для шлюзов служб серии SRX использует
их.

ICMP обеспечивает основу для сообщения об ошибках обработки пакетов,
для диагностических целей и для функций, специфичных для реализации.
Сообщения об ошибках ICMP позволяют одному узлу информировать другой
узел, что что-то пошло не так во время передачи данных.Когда была определена версия IP 6 (IPv6), различия между версией IP
4 (IPv4), и он был достаточно значительным, чтобы потребовать новую версию
ICMP.

Каждому сообщению ICMPv6 предшествует заголовок IPv6 и ноль.
или более заголовков расширения IPv6. Заголовок ICMPv6 идентифицируется
Значение следующего заголовка 58 в непосредственно предшествующем заголовке. Этот
отличается от значения, используемого для идентификации ICMP для IPv4. Все ICMPv6
сообщения об ошибках содержат 32 бита данных, зависящих от типа, чтобы помочь пакету
получатель находит встроенный вызывающий пакет.

Большинство пакетов ICMPv6 имеют одинаковые характеристики и поведение.
как обычные пакеты IPv6, и модуль потока ОС Junos обрабатывает их
через обработку первого и быстрого пути так же, как и
делает нормальные пакеты IPv6. Таблица 2 показывает
встроенные типы пакетов ICMPv6, которые модуль потока обрабатывает по-разному
из обычных пакетов ICMPv6.

Для этих пакетов модуль потока использует кортеж, который он создает.
из встроенного пакета ICMPv6 для поиска подходящего сеанса.Он продолжает обрабатывать пакет без изменения максимальной передачи.
единицы (MTU) до тех пор, пока он не найдет соответствующий сеанс, если он не получит
Сообщение ICMPv6 Packet Too Big для интерфейса. В этом случае это
изменяет размер MTU для этого интерфейса. Если модуль потока
не удалось найти подходящий сеанс или получить действительный заголовок IPv6
из встроенной полезной нагрузки он отбрасывает пакет.

Примечание.

Сообщение «Пакет слишком большой» — единственный тип пакета ICMPv6.
это заставит модуль потока изменить интерфейс.

Таблица 2: Пакеты ICMPv6, обрабатываемые ОС Junos
В отличие от других пакетов ICMPv6

Сообщение

Значение

01-Назначение недоступно

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

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

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

02-пакет слишком большой

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

Если сообщение Packet Too Big не относится к устройству
а скорее это транзитный пакет, устройство пытается сопоставить встроенный
Данные из пяти кортежей с сеансом.

  • Если существует соответствующий сеанс, устройство доставляет его
    исходный узел.

  • Если соответствующий сеанс не существует, устройство отключается
    пакет

Примечание.

Сообщение «Пакет слишком большой» — единственный тип пакета ICMPv6.
это заставит модуль потока изменить интерфейс.

03-время превышено

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

Проблема с 04 параметрами

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

Заголовок файла

Заголовок файла

Далее: Справочники
Up: Физическое представление файловой системы
Предыдущая: Физическое представление файловой системы

Заголовок файла

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

Обратите внимание, что FileHeader содержит только « прямые » указатели на
блоки данных файла, ограничивая максимальный размер файла Nachos до
чуть меньше 4K байтов.

Поддерживаются следующие операции FileHeader :

bool Allocate (BitMap * bitMap, int fileSize):
Найти и выделить
Достаточно свободных секторов для файла Размер данных байт.Начос использует
битовый вектор, чтобы отслеживать, какие секторы выделены, а какие
бесплатно. Аргумент bitMap — это битовая карта, из которой блоки данных
должны быть выделены (например, список фрилансеров).
void Deallocate (BitMap * bitMap):
Вернуться в список бесплатных
(например, bitMap ) блоки, выделенные этому файлу
(заголовок). Освобождаются только блоки данных файла; сектор
содержащий FileHeader сам должен быть освобожден
раздельно.Эта операция вызывается, когда файл удаляется из
система.
void FetchFrom (int sectorNumber):
Прочитать заголовок файла
хранится в секторе с номером сектора с нижележащего диска.
void WriteBack (int sectorNumber)
Записать заголовок файла
в сектор номер сектор номер .
int FileLength ():
Возвращает текущий размер файла.
int ByteToSector (целое смещение)
Сопоставить смещение внутри файла в
фактический номер сектора, который содержит этот байт данных.

Поскольку FileHeader помещается в один сектор, сектор
число, содержащее FileHeader , однозначно идентифицирует этот
файл. Мы будем использовать fnode (для FileheaderNODE), чтобы ссылаться на
сектор, содержащий FileHeader .


Далее: Справочники
Up: Физическое представление файловой системы
Предыдущая: Физическое представление файловой системы

Томас Нартен
Пн 3 фев 15:00:27 EST 1997

Как выбрать правильный коллектор

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

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

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

Tri-Y Long-Tube: Tri-Y заголовки стали популярными, когда они использовались Shelby для GT350 Mustang. Конструкция tri-Y объединяет короткую первичную обмотку, которая соединена с другим цилиндром, который синхронизирован в порядке зажигания, в коллектор 2-в-1, который переходит на вторичную трубку большего диаметра.Две вторичные трубки затем объединяются в окончательный коллектор 2-в-1, создавая общую длину, аналогичную конструкции 4-в-1. Традиционная конструкция хорошо работает для увеличения крутящего момента от холостого хода до 4500-5000 об / мин, поэтому они очень эффективны для уличного использования, однако автокроссеры и дорожные гонщики также любят их за их средний крутящий момент и повышенную чувствительность дроссельной заслонки. Команды NASCAR используют производную конструкцию, называемую 4-в-2-в-1 (4: 2: 1), в которой используются гораздо более длинные первичные и вторичные трубки для повышения эффективности на более высоких оборотах.

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

Mid-Length: Созданные в качестве альтернативы коротким трубкам без проблем с дорожным просветом, характерных для полной длины, заголовки средней длины удерживают трубы и коллектор над шасси, но позволяют использовать более длинные основные длины.Длина первичных трубок не так уж велика, но коллекторы очень короткие, что влияет на их настраиваемость. Заголовки средней длины почти всегда обеспечивают больше полезной энергии на улице, чем короткие, хотя и не так много, как конструкции с длинными трубками или треугольником.

Чтобы выбрать правильный диаметр первичной трубки, существует множество формул, используемых в конструкции гоночных заголовков, но для трамвая Дон Линдфорс из PerTronix (производитель заголовков Doug’s, Patriot и JBA) говорит, что следующее является отличным эмпирическое правило: 200-325 л.с. ищите 1.Первичные колеса диаметром 50 дюймов, 275–425 л.с. — 1,625 дюйма, 400–500 л.с. — 1,75–1,875 дюйма, 500 л.с. и выше — 2 дюйма или больше. Если вы хотите получить более конкретную информацию, имея в виду, что меньшие диаметры устанавливают нижний предел пикового крутящего момента, двигатель мощностью 300 л.с. может использовать первичный 1,5 или 1,75 дюйма в зависимости от того, хотите ли вы крутящий момент при более низких оборотах в минуту или позвольте ему продолжать двигаться выше при более высоких оборотах. Увеличение первичного диаметра всего на 0,25 дюйма приведет к увеличению пикового крутящего момента примерно на 700-800 об / мин.

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

Площадь первичной трубы ( PPA) = (пиковый крутящий момент 88,200 об / мин) 1 цилиндр ci

Чтобы найти PPA, мы используем A = r
Для нескольких распространенных размеров жатки это:
1 = 2,07
1 = 2,19
1 = 2,53

Для Например, для двигателя 350ci с целевым максимальным крутящим моментом 5000 об / мин:
PPA = (5000 88200) 43.75 ci
PPA = 2,48

Чтобы узнать, каковы теоретические пиковые обороты крутящего момента определенного набора коллекторов для вашего конкретного двигателя, просто измените формулу:
Пик крутящего момента об / мин = (PPA 88,200) 1 цилиндр ci
1 (2,07) = 4,175
1 (2,19) = 4,415
1 (2,53) = 5,100

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

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

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

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

Один пример:
Длина первичной трубки = [(850 Длительность выхлопа) об / мин] 3

Продолжительность выхлопа = 180 + количество градусов до нижней мертвой точки (НМТ), которое открывается выпускной клапан

об / мин = частота вращения двигателя мы пытаемся настроить первичную длину для

Например: выпускной клапан открывается при 60 градусах НМТ, поэтому продолжительность выпуска составляет 60 + 180 или 240

Использование того же двигателя 350ci, работающего в диапазоне 5000 об / мин, что и раньше :
Длина первичной трубки = 850 240 = 204 000, затем 204 000 5000 = 40.8, затем 40,8 3 = 37,8 дюйма

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

Но Это действительно не так просто в мире гонок. Чтобы получить полную картину того, какой именно длины (и диаметра, если на то пошло) должен быть индивидуальный набор заголовков для конкретной машины, Крис Вандергрифф из подразделения заголовков гонок Hedman Husler говорит, что ему необходимо учитывать все аспекты комбинации от характеристик распредвала до головок цилиндров, типа топлива, сумматора мощности и, конечно же, диапазона оборотов.Например, автомобили с азотом, как правило, хотят большего объема, чем автомобили без наддува. Формулы могут увести вас так далеко, но многое из того, что создают лучшие разработчики пользовательских заголовков гонок, основано на опыте и тестировании на треке.

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

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

Чтобы противостоять этому, было создано несколько различных схем, которые работают для более тонкого объединения основных цветов в коллектор и управления импульсами. Конструкции различаются от конусов до труб с косой резкой или даже многоступенчатых коллекторов 4-2-1, но цель одна и та же: контролировать поток выхлопных газов и поддерживать скорость, не влияя отрицательно на волну давления выхлопных газов.Эти более дорогие коллекторы обычно встречаются только на более дорогих жатках, поскольку трудозатраты на их изготовление намного выше. Тем не менее, такие компании, как Burns Stainless и Cone Engineering, имеют комплекты, которые можно добавить к коллектору для улучшения потока коллектора. Если вы хотите стать еще более агрессивным, у Flowmaster и Stainless Headers есть коллекторы слияния 4-2-1, которые могут отлично работать для расширения кривой мощности. С другой стороны, многие гонщики добились больших успехов и получили сильные награды, просто отрегулировав длину своих коллекторов.Это определенно подход «попробуй и посмотри», который лучше всего оставить гонщикам, ищущим последнюю каплю мощности под кривой.

Что мне нужно для моей машины?

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

Имея это в виду, первое, с чем вы столкнетесь, — это физическая установка жатки. Надо подумать гораздо больше, чем вы, вероятно, думаете, поэтому Ли Робинсон из Hedman Hedders помог нам составить очень практичный список вещей, которые вам нужно знать о своем проекте, прежде чем вы даже поднимете трубку или начнете искать заголовки. Отметьте PopularHotRodding.com для нашего эксклюзивного веб-краткого обзора всех мелочей, о которых вы, возможно, не задумывались!

Посмотреть все 4 фотографииBurns Stainless специализируется на нестандартных заголовках, но они известны своими объединенными коллекторами, созданными с помощью передового программного обеспечения X-Design. Их, а также их настраиваемый выхлопной коллектор Burns (B-TEC) можно дооснастить любой жаткой, и они предлагают идеальный вариант для гонщиков, желающих настроить свои коллекторы жатки.

Прямой хост SMB через TCP / IP — Windows Server

  • 2 минуты на чтение

В этой статье

В этой статье описывается, как направить блок сообщений сервера хоста (SMB) через TCP / IP.

Применимо к: Windows Server 2012 R2
Исходный номер базы знаний: 204279

Сводка

Windows поддерживает общий доступ к файлам и принтерам с использованием протокола SMB, размещенного непосредственно на TCP. Это отличается от более ранних операционных систем, в которых трафик SMB требует, чтобы протокол NetBIOS поверх TCP (NBT) работал с транспортом TCP / IP. Удаление транспорта NetBIOS дает несколько преимуществ, в том числе:

  • Упрощение транспортировки трафика SMB.
  • Удаление широковещательной передачи WINS и NetBIOS как средства разрешения имен.
  • Стандартизация разрешения имен в DNS для совместного использования файлов и принтеров.

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

Дополнительная информация

NetBIOS через TCP традиционно использует следующие порты:

  • nbname: 137 / UDP
  • nbname: 137 / TCP
  • nbdatagram: 138 / UDP
  • nbsession: 139 / TCP

Прямое размещение NetBIOS-less SMB-трафик использует порт 445 (TCP и UDP).В этой ситуации четырехбайтовый заголовок предшествует трафику SMB. Первый байт этого заголовка всегда равен 0x00, а следующие 3 байта — это длина оставшихся данных.

Используйте следующие шаги, чтобы отключить NetBIOS через TCP / IP; эта процедура заставляет весь трафик SMB размещаться напрямую. Будьте осторожны при реализации этого параметра, поскольку он приводит к тому, что компьютер под управлением Windows не может взаимодействовать с более ранними операционными системами, используя трафик SMB:

  1. Выберите Start , укажите на Settings , а затем щелкните Network and Dial-up Connection .
  2. Щелкните правой кнопкой мыши Подключение по локальной сети , а затем щелкните Свойства .
  3. Щелкните Протокол Интернета (TCP / IP) , а затем щелкните Свойства .
  4. Щелкните Advanced .
  5. Щелкните вкладку WINS , а затем щелкните Отключить NetBIOS через TCP / IP .

Вы также можете отключить NetBIOS через TCP / IP с помощью DHCP-сервера с кодом опции 1, зависящим от поставщика Microsoft (Отключить NetBIOS через TCP / IP).Установка этого параметра на значение 2 отключает NBT. Дополнительные сведения об использовании этого метода см. В файле справки DHCP-сервера в Windows.

Чтобы определить, включен ли NetBIOS через TCP / IP на компьютере под управлением Windows, введите команду net config redirector или net config server в командной строке. В выходных данных показаны привязки для устройства NetbiosSmb (которое является транспортом без NetBIOS) и для устройства NetBT_Tcpip (которое является транспортом NetBIOS через TCP). Например, в следующем примере выходных данных показаны как прямой хостинг, так и транспорт NBT, привязанный к адаптеру:

  Рабочая станция активна на
NetbiosSmb (000000000000)
NetBT_Tcpip_ {610E2A3A-16C7-4E66-A11D-A483A5468C10} (02004C4F4F50)
NetBT_Tcpip_ {CAF8956D-99FB-46E3-B04B-D4BB1AE93982} (009027CED4C2)
  

NetBT_Tcpip привязан к каждому адаптеру индивидуально; экземпляр NetBT_Tcpip отображается для каждого сетевого адаптера, к которому он привязан.NetbiosSmb — это глобальное устройство, которое не привязано к отдельным адаптерам. Это означает, что SMB с прямым размещением нельзя отключить в Windows без полного отключения общего доступа к файлам и принтерам для сетей Microsoft.

AMQP 0-9-1 Описание модели — RabbitMQ

В этом руководстве представлен обзор протокола AMQP 0-9-1, одного из протоколов
поддерживается RabbitMQ.

Что такое AMQP 0-9-1?

AMQP 0-9-1 (Advanced Message Queuing Protocol) — это обмен сообщениями.
протокол, который позволяет согласовывать клиентские приложения с
общаться с соответствующими брокерами промежуточного программного обеспечения для обмена сообщениями.

Брокеры и их роль

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

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

AMQP 0-9-1 Краткое описание модели

Модель AMQP 0-9-1 имеет следующий взгляд на мир:
сообщения публикуются на биржах ,
которые часто сравнивают с почтовыми отделениями или почтовыми ящиками.Обмены тогда
распространять копии сообщений в очереди , используя правила, называемые
привязки . Затем брокер либо доставляет сообщения
потребители подписались на очереди или потребители
извлекать / извлекать сообщения из очередей по запросу.

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

Сети ненадежны, и приложения могут не обрабатывать
сообщения, поэтому модель AMQP 0-9-1 имеет понятие
подтверждения сообщений : когда сообщение доставлено
потребителю потребитель уведомляет брокера ,
либо автоматически, либо как только приложение
разработчик решает это сделать. Когда сообщения подтверждения
используются, брокер полностью удалит только сообщение
из очереди, когда он получает уведомление для этого сообщения
(или группа сообщений).

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

Очереди, обмены и привязки вместе именуются объектами AMQP .

AMQP 0-9-1 — это программируемый протокол

AMQP 0-9-1 — это программируемый протокол в том смысле, что AMQP 0-9-1
сущности и схемы маршрутизации в первую очередь определяются приложениями
сами, а не брокер-администратор.Соответственно,
предусмотрено для протокольных операций, объявляющих
очереди и обмены, определить привязки между ними,
подписаться на очереди и так далее.

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

Приложения объявляют сущности AMQP 0-9-1, которые им нужны,
определить необходимые схемы маршрутизации и выбрать удаление
AMQP 0-9-1, когда они больше не используются.

Обмены — это объекты AMQP 0-9-1, в которых
послал. Биржи принимают сообщение и направляют его в ноль или
больше очередей. Используемый алгоритм маршрутизации зависит от
тип обмена и правила, называемые привязками .
Брокеры AMQP 0-9-1 предоставляют четыре типа обмена:

Тип обмена Предварительно объявленные имена по умолчанию
Прямой обмен (пустая строка) и amq.direct
Обмен вентиляторами амк.вентилятор
Обмен темами amq.topic
Обмен заголовками amq.match (и заголовки amq. в RabbitMQ)

Помимо типа обмена, биржи декларируются с рядом
атрибуты, наиболее важные из которых:

  • Имя
  • Долговечность (биржи переживают перезапуск брокера)
  • Автоудаление (обмен удаляется, когда от него отсоединяется последняя очередь)
  • Аргументы (необязательно, используются плагинами и специфичными для брокера функциями)

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

Обмен по умолчанию

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

Например, когда вы объявляете очередь с именем
«поиск-индексация-онлайн», брокер AMQP 0-9-1 свяжет его
к обмену по умолчанию, используя «поиск-индексирование-онлайн» как
ключ маршрутизации (в этом контексте иногда называемый ключом привязки).
Таким образом, сообщение, опубликованное по умолчанию
обмен с ключом маршрутизации «поиск-индексация-онлайн»
будет направлен в очередь «поиск-индексация-онлайн». В
другими словами, обмен по умолчанию заставляет
можно доставлять сообщения прямо в очереди, даже
хотя технически это не так.

Прямой обмен

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

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

Прямые обмены часто используются для распределения задач между
несколько воркеров (экземпляры одного и того же приложения) в
круговая система.При этом важно
понимать, что в AMQP 0-9-1 сообщения балансируются по нагрузке.
между потребителями, а не между очередями.

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

Обмен вентиляторами

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

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

  • Многопользовательские онлайн-игры могут использовать его
    для обновлений таблицы лидеров или других глобальных событий
  • Спортивные новостные сайты могут использовать разветвленные обмены для
    распространение обновлений результатов среди мобильных клиентов в ближайшем
    в реальном времени
  • Распределенные системы могут транслировать различные состояния и
    обновления конфигурации
  • Групповые чаты позволяют распределять сообщения между участниками
    используя разветвленный обмен (хотя AMQP не имеет
    встроенная концепция присутствия, поэтому XMPP может быть лучшим выбором)

Обмен разветвлениями можно представить графически следующим образом:

Обмен темами

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

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

Пример использования:

  • Распространение данных, относящихся к конкретному географическому региону
    расположение, например, точек продаж
  • Обработка фоновых задач несколькими работниками,
    каждый способен выполнять определенный набор задач
  • Обновления цен на акции (и обновления других видов финансовых данных)
  • Обновления новостей, которые включают категоризацию или тегирование
    (например, только для определенного вида спорта или команды)
  • Оркестровка различных видов услуг в облаке
  • Распределенная архитектура / сборки программного обеспечения для конкретных ОС или
    упаковка, в которой каждый строитель может обрабатывать только одну архитектуру или OS

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

Можно привязать очередь к обмену заголовками, используя
более одного заголовка для сопоставления. В этом случае брокер
требуется еще одна информация из приложения
разработчик, а именно должен ли он рассматривать сообщения с любыми
совпадающих заголовков или всех? Это то, что
Аргумент привязки «x-match» предназначен для.Когда «х-матч»
аргумент установлен на «любой», только одно совпадающее значение заголовка
достаточно. В качестве альтернативы можно установить для «x-match» значение «all»
требует, чтобы все значения совпадали.

Обмен заголовками

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

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

Очереди в модели AMQP 0-9-1 очень похожи на очереди в
другие системы очередей сообщений и задач: они хранят
сообщения, которые используются приложениями. Совместное использование очередей
некоторые свойства с обменами, но есть и дополнительные
недвижимость:

  • Имя
  • Durable (очередь выдержит перезапуск брокера)
  • Exclusive (используется только одним соединением, и очередь будет удалена, когда это соединение закрывается)
  • Автоудаление (очередь, в которой был хотя бы один потребитель, удаляется, когда последний потребитель отписывается)
  • Аргументы (необязательно; используются плагинами и специфичными для брокера функциями, такими как TTL сообщения, ограничение длины очереди и т. Д.)

Прежде чем использовать очередь, ее необходимо объявить.Объявление
очередь вызовет ее создание, если она еще не
существовать. Объявление не будет иметь эффекта, если очередь
уже существует, и его атрибуты такие же, как и в
декларация. Когда существующие атрибуты очереди не являются
такие же, как в объявлении исключения на уровне канала
с кодом 406 (PRECONDITION_FAILED) будет поднят.

Имена очередей

Приложения могут выбирать имена очередей или просить брокера сгенерировать
имя для них. Имена очередей могут содержать до 255 байт в кодировке UTF-8.
символы.Брокер AMQP 0-9-1 может создать уникальную очередь
имя от имени приложения. Чтобы использовать эту функцию, передайте пустой
строка в качестве аргумента имени очереди. Сгенерированное имя будет возвращено
клиенту с ответом на объявление очереди.

Имена очередей начинаются с «amq». зарезервированы для внутренних
использование брокером. Попытки объявить очередь с именем, которое
нарушение этого правила приведет к исключению на уровне канала
с кодом ответа 403 (ACCESS_REFUSED).

Долговечность очереди

В AMQP 0-9-1 очереди могут быть объявлены как постоянные или временные.Метаданные постоянной очереди хранятся на диске, а метаданные временной очереди —
по возможности хранятся в памяти.

Такое же различие делается для сообщений во время публикации.

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

Эта тема более подробно рассматривается в руководстве по очередям.

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

Для аналогии:

  • Очередь — это как пункт назначения в Нью-Йорке
  • Обмен похож на аэропорт имени Джона Кеннеди
  • Привязки — это маршруты из аэропорта JFK до пункта назначения.Достичь этого может быть ноль или много способов

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

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

Хранить сообщения в очередях бесполезно, если только приложения
может поглотить их. В модели AMQP 0-9-1 есть
приложения могут сделать это двумя способами:

  • Подпишитесь, чтобы получать сообщения («push API»): это рекомендуемый вариант.
  • Polling («pull API»): этот способ очень неэффективен , и следует избегать в большинстве случаев

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

У каждого потребителя (подписки) есть идентификатор, называемый
Потребительская бирка . Его можно использовать для отказа от подписки на
Сообщения. Потребительские теги — это просто строки.

Сообщение Подтверждение

Потребительские приложения — то есть приложения, которые получают и обрабатывают
сообщения — иногда могут не обрабатывать отдельные
сообщения или иногда просто вылетает.Также есть возможность
сетевых проблем, вызывающих проблемы. Возникает вопрос:
когда брокеру следует удалять сообщения из очередей? В
Спецификация AMQP 0-9-1 дает потребителям контроль над этим. Есть
два режима подтверждения:

  • После того, как брокер отправит сообщение приложению (используя метод basic.deliver или basic.get-ok).
  • После того, как приложение отправит подтверждение (с использованием метода basic.ack).

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

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

Отклонение сообщений

Когда приложение-потребитель получает сообщение, обработка
этого сообщения может или не может быть успешным. Приложение может
указать брокеру, что обработка сообщения не удалась
(или не может быть достигнуто в то время) путем отклонения
сообщение. При отклонении сообщения приложение может спросить
брокер отклонил или повторно поставил его в очередь. Когда есть только один
потребителя в очереди, убедитесь, что вы не создаете бесконечное
Циклы доставки сообщений путем отклонения и повторной постановки сообщения в очередь
от одного и того же потребителя снова и снова.

Отрицательные благодарности

Сообщения отклоняются методом basic.reject.
У basic.reject есть одно ограничение:
нет способа отклонить несколько сообщений, как это можно сделать
с благодарностями. Однако, если вы используете RabbitMQ,
тогда есть решение. RabbitMQ предоставляет AMQP 0-9-1
расширение, известное как отрицательных подтверждений или nacks . Для
дополнительную информацию см. в разделе «Подтверждения».
и направляющие для удлинителя basic.nack.

Предварительная загрузка сообщений

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

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

Сообщения в модели AMQP 0-9-1 имеют атрибутов . Некоторые
атрибуты настолько распространены, что спецификация AMQP 0-9-1
определяет их, и разработчикам приложений не нужно думать
о точном названии атрибута. Некоторые примеры:

  • Тип содержимого
  • Кодировка содержимого
  • Маршрутный ключ
  • Режим доставки (постоянный или нет)
  • Приоритет сообщения
  • Отметка времени публикации сообщения
  • Срок годности
  • Идентификатор приложения издателя

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

Сообщения также имеют полезную нагрузку (данные, которые
они несут), который брокеры AMQP рассматривают как непрозрачный массив байтов.
Брокер не будет проверять или изменять полезную нагрузку. Возможно
чтобы сообщения содержали только атрибуты и не содержали полезной нагрузки. Это
часто используются форматы сериализации, такие как JSON, Thrift,
Буферы протокола и MessagePack для сериализации структурированных данных
чтобы опубликовать его как полезную нагрузку сообщения.Одноранговые узлы протокола
обычно используют поля «content-type» и «content-encoding», чтобы
сообщить эту информацию, но только по соглашению.

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

Подробнее читайте в руководстве для издателей.

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

Эта ситуация очень распространена, поэтому AMQP 0-9-1 имеет встроенный
функция называется подтверждения сообщений (иногда
обозначается как acks ), которые потребители используют для подтверждения
доставка и / или обработка сообщений. Если приложение вылетает
(брокер AMQP замечает это, когда соединение закрывается), если
подтверждение для сообщения ожидалось, но не получено
брокером AMQP сообщение повторно ставится в очередь (и, возможно,
немедленно доставляется другому потребителю, если таковой существует).

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

AMQP 0-9-1 состоит из нескольких
методов . Методы — это операции (например, HTTP-методы)
и не имеют ничего общего с методами в объектно-ориентированном
языки программирования. Методы протокола в AMQP 0-9-1 сгруппированы в
классы . Классы — это просто логические группы AMQP
методы. Справочник AMQP 0-9-1 содержит полную информацию обо всех методах AMQP.

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

  • обмен.объявить
  • exchange.declare-ok
  • exchange.delete
  • exchange.delete-ok

(обратите внимание, что ссылка на сайт RabbitMQ также включает
Специфичные для RabbitMQ расширения класса обмена, которые мы
не буду обсуждать в этом руководстве).

Операции, указанные выше, образуют логические пары:
обмен.объявить и
exchange.declare-ок,
exchange.delete и
exchange.delete-ок. Эти операции
«запросы» (отправленные клиентами) и «ответы» (отправленные
брокеры в ответ на вышеупомянутые «запросы»).

В качестве примера клиент просит брокера объявить новый
обменять методом exchange.declare:

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

Если операция прошла успешно, брокер отвечает методом exchange.declare-ok:

exchange.declare-ok не несет
параметры кроме номера канала (каналы будут
описано далее в этом руководстве).

Последовательность событий очень похожа на другой
пара методов в очереди AMQP 0-9-1 класс метода : queue.declare и
queue.declare-ok:

Не все методы AMQP 0-9-1 имеют аналоги.Некоторые
(наиболее широко используется basic.publish)
не имеют соответствующих методов «ответа»
и некоторые другие (например, basic.get)
иметь более одного возможного «ответа».

Соединения AMQP 0-9-1 обычно долговечны. AMQP 0-9-1 — это
протокол уровня приложений, использующий TCP для надежной
Доставка. Подключения используют аутентификацию и могут быть
защищен с помощью TLS. Когда приложение больше не нуждается
чтобы подключиться к серверу, он должен изящно закрываться
его соединение AMQP 0-9-1 вместо внезапного закрытия основного TCP-соединения.

Некоторым приложениям требуется несколько подключений к
маклер. Однако нежелательно хранить много TCP.
соединения открываются одновременно, потому что это потребляет
системные ресурсы и затрудняет настройку
межсетевые экраны. Соединения AMQP 0-9-1 мультиплексируются с
каналов , которые можно рассматривать как «легкие»
соединения, которые используют одно TCP-соединение ».

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

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

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

Чтобы один брокер мог размещать несколько
изолированные «среды» (группы пользователей, биржи,
очереди и так далее), AMQP 0-9-1 включает концепцию виртуальных хостов (vhosts).Они похожи на виртуальные хосты, используемые многими популярными веб-серверами, и обеспечивают полностью изолированные
среды, в которых живут сущности AMQP. Клиенты протокола
укажите, какие vhosts они хотят использовать во время согласования соединения.

AMQP 0-9-1 имеет несколько точек расширения:

Эти особенности делают модель AMQP 0-9-1 еще более гибкой.
и применим к очень широкому кругу задач.

Есть много клиентов AMQP 0-9-1 для многих
популярные языки программирования и платформы.Некоторые из них следуют терминологии AMQP
внимательно и обеспечиваем реализацию только методов AMQP. Некоторые
другие имеют дополнительные функции, удобные методы
и абстракции. Некоторые клиенты асинхронны
(неблокирующий), некоторые синхронные (блокирующие), некоторые поддерживают
обе модели. Некоторые клиенты поддерживают расширения, зависящие от поставщика.
(например, расширения для RabbitMQ).

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

Получение помощи и обратная связь

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

Помогите нам улучшить документы

<3

Если вы хотите внести свой вклад в улучшение сайта,
его исходный код доступен на GitHub.Просто создайте вилку репозитория и отправьте запрос на перенос. Спасибо!

Трубопроводы для мощности: как выбрать лучшие коллекторы для вашей комбинации

Максимальное увеличение потока выхлопных газов — ключевой элемент в достижении максимальной производительности любого высокопроизводительного двигателя. Будь то заводской маслкар мощностью 400 л.с. с октановым числом 93 или бензиновый двигатель Top Fueler, правильно спроектированный набор коллекторов обеспечит оптимальную очистку и позволит двигателю раскрыть свой потенциал.

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

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

«При выборе оптимальной гоночной жатки в первую очередь следует учитывать тип двигателя», — сказал Винс Роман, владелец Burns Stainless. «Мы также спрашиваем, двигатель ли это рядный или V-образный? А что за приложение? Очевидно, мы говорим о двигателях для дрэг-рейсинга, но, что более важно, какие обороты вы используете, чтобы покинуть линию и переключиться, и каких оборотов достигнет двигатель, когда он пересечет финишную черту? »

Он продолжил: «Конструкция выпускного коллектора во многом будет зависеть от диапазона оборотов, в котором будет работать двигатель.Кроме того, какие улучшения вам нужны? Вы хотите улучшить нижнюю часть, нужно ли увеличивать обороты в верхней части? Диапазон оборотов двигателя будет играть важную роль в определении размера и длины основных выхлопных газов. Также обратите внимание на головку блока цилиндров. Разные головки цилиндров имеют разные конструкции монтажных болтов и размеры портов. Как правило, выпускной первичный элемент может быть больше, чем выпускной порт, но любые препятствия, например, из-за слишком маленькой первичной трубы или несоответствующего отверстия / выхлопного отверстия.

Стивен Циммерман, из Stainless Header Mfg. Inc., добавил: «Следует учесть несколько моментов: действительно ли что-то готовое будет работать на необходимом уровне, или лучше подойдет специально созданный набор. чтобы соответствовать уникальной конфигурации двигателя каждого гонщика. При проектировании следует учитывать размер первичной трубки, тип материала и диаметр соединения коллектора. После этого начните работать над другими аспектами / переменными, включая первичную длину, размер слияния по сравнению с размером выхода, размер шага и, наконец, длину коллектора или мегафона.”

Правильный выбор размеров первичных трубок — отличное место для начала. Правильное выполнение этого требования обеспечит максимальную мощность и наиболее полезный диапазон мощности. Здесь в игру вступают вес автомобиля, тип трансмиссии и передача. Например, Chevy 350 с облегченной коробкой передач с ручным переключением передач, вероятно, будет запущен на высоких оборотах, и двигатель никогда не увидит нижнюю часть диапазона мощности. В этом случае вы можете выбрать более крупную жатку, которая обеспечивает максимальную мощность при пиковых оборотах, не беспокоясь о потере крутящего момента на низких оборотах.В отличие от этого, тот же двигатель в более тяжелом автомате, например, в универсале, может потребовать меньшего первичного агрегата и даже X-образной трубы, добавленной к коллекторам для увеличения крутящего момента на низких оборотах.

«Первичный размер и диаметр коллектора в значительной степени зависят от кубического дюйма двигателя, количества цилиндров, пиковых / рабочих оборотов в минуту, но, что наиболее важно, от уровней мощности, — пояснил Циммерман. «Мощность в лошадиных силах является прямым результатом потока воздуха через двигатель, и, таким образом, чем выше уровень мощности, тем выше потребность в потоке воздуха.Конечно, другие аспекты резко изменят размер, особенно сумматоры мощности, такие как турбокомпрессоры, нагнетатели или закись азота. Вдобавок ко всему, есть много отличных программ, которые могут запускать множество уравнений и алгоритмов, чтобы помочь определить размер заголовка, помимо многих других функций. Эти программы — прекрасное место для нас, поскольку мы занимаемся дизайном заголовков каждый день, но для любого изготовителя, создающего одноразовый набор, затраты на программное обеспечение могут не окупиться. Вот почему мы предлагаем бесплатные консультации по технологиям и дизайну 40 часов в неделю для всех, кто звонит, независимо от того, совершают ли они покупки у нас или нет.У нас есть опыт и информация, чтобы помочь любому строителю ».

Мы также спросили: Как гонщик должен определять, нужны ли заголовки шагов? Циммерман продолжил: «Конструкции со ступенчатым коллектором обычно предназначены для двигателей с азотом и без наддува, хотя мы действительно видим некоторые из них на установках нагнетателя. Ступенчатые коллекторы дают преимущество более высокой скорости выхлопного газа в цилиндре за счет меньшего внутреннего диаметра трубы, в то же время обеспечивая преимущества более высоких возможностей потока дальше по потоку на большем внутреннем диаметре трубы.Это очень удобно для водителя, поскольку выхлопные газы все еще расширяются от тепла и сгорания, а внутри выхлопных труб требуется больший объем пространства для поддержания надлежащего потока. Это также выгодно для изготовителя, поскольку позволяет выполнять скользящие соединения и последующие сварные швы внахлест на трубах коллектора, что часто может привести к облегчению сварных швов и более прочным соединениям на трубах коллектора. Еще один положительный эффект ступенчатой ​​конструкции — это способность трубок предотвращать обратное вращение. Наличие ступеньки в трубках создаст небольшое перекрытие и перепад давления, гарантируя, что выхлоп продолжит движение вниз по потоку, и предотвратит возврат назад к выпускным отверстиям.

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

«Кроме того, выбор между двухэтапным или трехэтапным заголовком может в значительной степени зависеть от упаковки, а также от производительности. Чтобы действительно увидеть пользу от каждого отдельного шага, потребуется определенная длина. И если у строителя есть место, например, только для 20-дюймовой коллекторной трубы, при разделении на 33/33/33 длины основной трубы каждая основная ступенька будет меньше 7 дюймов, что может оказаться не таким выгодным, как двухступенчатая. ступенчатая система разделена на 50/50, каждая трубка имеет длину 10 дюймов.Конечно, все это очень ситуативные и зависящие от двигателя переменные, и лучше обсудить некоторые из этих вопросов, когда будет доступна дополнительная информация о двигателе, такая как характеристики кулачка, соотношение диаметра / хода и типы топлива также часто являются необходимыми факторами. ”

Марк Эмерсон из Hooker Headers добавил: «Лучший способ определить оптимальный размер первичной трубки и коллектора — это отметить, какая конкретная комбинация больше всего нравится этой конкретной комбинации. Это не всегда является наиболее рентабельным, поэтому такие инструменты, как программное обеспечение Pipemax, позволяют пользователям вводить свою конкретную информацию, чтобы получить рекомендации по выбору оптимальных размеров для своей установки.«И, как мы знаем, нет ничего лучше, чем хороший последовательный тест.

Роман посоветовал гонщикам: «Зайдите на сайт Burns Stainless и заполните форму спецификации гоночного двигателя. Burns поможет гонщикам выбрать первичный размер и длину коллекторов после определения диаметра отверстия, хода, степени сжатия, размеров впускных и выпускных клапанов, конструкции распределительного вала и диапазона рабочих оборотов двигателя. Диапазон оборотов двигателя является наиболее важным фактором при определении длины первичного контура, в то время как рабочий объем и мощность важны для определения диаметра первичной трубы.

«Кроме того, размеры и конструкция коллектора слияния определяются в зависимости от области применения, выходной мощности и диапазона рабочих оборотов. Обычно для дрэг-рейсинга без глушителей лучше использовать обратный конус-мегафонный коллектор. Размеры выпускного отверстия коллектора [или горловины] и диаметры выпускного отверстия рассчитываются в зависимости от конкретного случая применения. Burns Stainless использует проприетарное программное обеспечение X-Design для определения размеров заголовков и коллекторов. Размер коллектора зависит от параметров двигателя, таких как диаметр цилиндра, ход поршня, размер клапана и конструкция распределительного вала.Количество ступеней определяется размером коллектора и размером выпускного отверстия. Хорошо разработанный современный гоночный двигатель обычно требует трехступенчатой ​​конструкции. Для двигателей с более низкой выходной мощностью потребуется двухступенчатая или, может быть, только одноступенчатая конструкция ».

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

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

Продолжая, Циммерман заявил: «Размер первичной трубы, ступенчатый размер [при построении ступенчатого коллектора] и размер коллектора являются более важными факторами, чем первичная длина.Но, если предположить, что вы учли эти другие факторы, длина трубки, безусловно, будет следующей лучшей переменной. Не вдаваясь в подробности, длина трубки будет определяться на основе рабочих оборотов двигателя или пиковых оборотов в лошадиных силах, общего рабочего объема двигателя, пиковой мощности, типа топлива, а затем применения самого транспортного средства. Мотор ящика малого блока с установкой Tri-Y на овальном автомобиле для бездорожья будет иметь значительно разные требования к длине жатки, чем тот же самый малый блок, используемый в гоночном автомобиле на выносливость.Существует несколько отличных программ, которые могут дать точные оценки длины первичной трубы на основе различных параметров двигателя и распределительного вала. Конечно, настоящим испытанием всегда будет динотон и пробег на четверть мили. Отмечая изменения в вашей 60-футовой максимальной скорости и т. Д. самые важные. Как очень общее практическое правило [н / д, в частности], более короткие трубные коллекторы лучше подходят для приложений с высокими оборотами, в то время как более длинные трубные коллекторы обычно лучше для более низких значений крутящего момента. С другой стороны, турбо-системы обычно выигрывают от более короткой длины трубы, так как это сокращает время катушки и увеличивает скорость выпуска по сравнению с более длинной коллекторной трубой того же диаметра.

«Тем не менее, иногда это может быть более косвенным при выборе размера трубы, чем производитель может первоначально подумать. Как правило, размер трубки зависит от мощности, которая является прямым результатом воздушного потока, определяемого частотой вращения и объемным КПД двигателя [VE]. Так что да, число оборотов в минуту влияет на размер трубки, который лучше всего использовать. Двигатели с более высокими оборотами обычно лучше реагируют на коллектор с более короткой длиной первичной трубы, чем двигатель с более низкими оборотами. Это результат общего потока выхлопных газов и волн давления. Двигатели с более высокими оборотами имеют более высокую частоту импульсов выхлопа из-за того, что выпускной клапан открывается / закрывается с большей скоростью, чем системы с более низкими оборотами.Поскольку эти импульсы отражаются через выхлопную систему, они могут начать мешать, вызывая турбулентность в трубах, чем дольше выхлоп находится перед выходом в атмосферу.

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

Коллекторы

Как вы понимаете, не существует «лучшего» типа / типа коллекторов жатки. «Теоретически V-8 обычно лучше всего реагируют на хорошо оптимизированные конструкции Tri-Y», — сказал Роман. «Тем не менее, конструкции Tri-Y должны быть оптимизированы для гоночного типа и конструкции двигателя и часто требуют значительных испытаний и оптимизации, в то время как конструкции« четыре в один »со сливными коллекторами могут быть оптимально сконфигурированы с помощью X-Design и, как правило, дают наилучшие результаты. из коробки.

Циммерман добавил: «Каждое приложение двигателя будет иметь свой собственный« лучший »стиль коллекционера. Неприменимые приложения, например, получат большую выгоду от настоящего коллектора слияния, где есть слияние, скажем, 3,5 дюйма и коническое расширение до 4- или 4,5-дюймового коллектора. Этот «защемление» в точке слияния действует как трубка Вентури, создавая зону низкого давления внутри коллектора. Это падение давления вызывает увеличение скорости выхлопа, и в сочетании с четырьмя трубками, соединяющимися одновременно, это значительно улучшает продувку цилиндров.

Emerson добавил: «Тип коллектора, который вы выбираете, зависит от комбинации, но мы предпочитаем коллектор в стиле слияния четыре в один с добавлением копья слияния. Коллектор типа «четыре к одному» позволяет при необходимости укоротить общий коллектор, а наконечник слияния помогает сгладить переход выхлопного импульса, поступающего в коллектор, для поддержания скорости импульса ».

Материал и покрытия коллектора

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

«Наиболее распространенными материалами, используемыми в гоночных жатках, являются низкоуглеродистая и нержавеющая сталь, — сказал Роман. «Также используются инконель и титан, хотя мы не рекомендуем титан для большинства автомобильных гонок. Низкоуглеродистая сталь — наименее дорогой и наиболее доступный вариант. Обратной стороной низкоуглеродистой стали является коррозия. Это не только ограничивает долговечность жатки, для экстремальных двигателей с большими кулачками перекрытия, частицы оксида железа из ржавых коллекторов могут попадать в цилиндр во время реверсирования, вызывая повреждение стенки цилиндра и кольца.Коррозию можно минимизировать, используя керамические покрытия. Мы рекомендуем покрывать выхлопной коллектор изнутри и снаружи.

«В коллекторах используются три распространенных вида нержавеющей стали. Из них 409 — наименее дорогой нержавеющий сплав. Это ферритный сплав, содержащий хром и никель, но с относительно высоким содержанием железа, что делает его восприимчивым к ржавчине. Она лучше, чем алюминизированная сталь, но со временем ржавеет, а также имеет ограниченные высокотемпературные свойства. Далее идет нержавеющая сталь 304, которая является «рабочей лошадкой» из нержавеющего сплава.Это аустенитный материал с низким содержанием железа, что придает ему отличные антикоррозионные свойства. Обратите внимание, что нержавеющая сталь 304 обладает отличной свариваемостью и формуемостью, что делает ее отличным выбором для выпускных коллекторов. Легкий способ отличить 409 от 304 или других аустенитных нержавеющих сталей — с помощью магнита. Магнит не прилипает к 304.

«Следующим распространенным нержавеющим сплавом, используемым в выхлопе, является нержавеющая сталь 321. По сути, это 304, который стабилизирован небольшим количеством титана или ниобия, обеспечивая лучшую прочность при более высоких температурах.Burns Stainless рекомендует использовать 321SS, когда температура выхлопных газов превышает 1400 градусов по Фаренгейту, что может быть легко достигнуто во многих применениях с турбонаддувом. Кроме того, 321 может быть хорошим выбором для тонкостенных коллекторов, чтобы обеспечить дополнительный запас прочности ».

Он продолжил: «Лучшим материалом для гоночных головок являются сплавы Inconel. Эти сплавы с высоким содержанием никеля и хрома использовались в гонках Формулы-1 на протяжении десятилетий. Самый распространенный сплав — 625, который обладает превосходными высокотемпературными свойствами и рекомендуется для выхлопных газов, температура выхлопных газов которых превышает 1800 градусов по Фаренгейту.”

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

Source Box:

Burns Stainless
949.631.5120
Burnsstternet.com

Hooker Headers
1.866.464.6553
Holley.com/brands/hooker

Заголовки Lemons
805.239.8998
Lemonsheaders.com

Заголовки и выхлопные трубы Pro Fabrication
704.795.7563
Profabrication.com

Заголовки из нержавеющей стали M .
800.290.3920
Stainlessheaders.com

Производительность TA
480.922.6807
Taperformance.com

Устранение проблем фрагментации IPv4, MTU, MSS и PMTUD с помощью GRE и IPsec

Введение

В этом документе описывается, как работают фрагментация IPv4 и обнаружение максимального блока передачи на пути (PMTUD), а также обсуждаются некоторые сценарии, которые включают поведение PMTUD в сочетании с различными комбинациями туннелей IPv4.Текущее широкое использование туннелей IPv4 в Интернете выдвинуло на первый план проблемы, связанные с фрагментацией IPv4 и PMTUD.

Фрагментация и повторная сборка IPv4

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

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

На этом изображении показана структура заголовка IPv4.

Идентификация составляет 16 бит и представляет собой значение, присвоенное отправителем дейтаграммы IPv4, чтобы помочь в повторной сборке фрагментов дейтаграммы.

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

В поле флагов заголовка IPv4 есть три бита для флагов управления.Важно отметить, что бит «не фрагментировать» (DF) играет центральную роль в PMTUD, поскольку он определяет, разрешено ли фрагментировать пакет.

Бит 0 зарезервирован и всегда установлен в 0. Бит 1 — это бит DF (0 = «может фрагментировать», 1 = «не фрагментировать»). Бит 2 — это бит MF (0 = «последний фрагмент», 1 = «дополнительные фрагменты»).

Значение Бит 0 Зарезервирован Бит 1 DF Бит 2 MF
0 0 мая Последняя
1 0 Не надо Подробнее

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

Первый фрагмент имеет смещение 0, длина этого фрагмента — 1500; это включает 20 байтов для слегка измененного исходного заголовка IPv4.

Второй фрагмент имеет смещение 185 (185 x 8 = 1480), что означает, что часть данных этого фрагмента начинается с 1480 байтов исходной дейтаграммы IPv4.Длина этого фрагмента 1500; это включает дополнительный заголовок IPv4, созданный для этого фрагмента.

Третий фрагмент имеет смещение 370 (370 x 8 = 2960), что означает, что часть данных этого фрагмента начинается с 2960 байтов исходной дейтаграммы IPv4. Длина этого фрагмента 1500; это включает дополнительный заголовок IPv4, созданный для этого фрагмента.

Четвертый фрагмент имеет смещение 555 (555 x 8 = 4440), что означает, что часть данных этого фрагмента начинается с 4440 байтов исходной дейтаграммы IPv4.Длина этого фрагмента — 700 байт; это включает дополнительный заголовок IPv4, созданный для этого фрагмента.

Только после получения последнего фрагмента можно определить размер исходной дейтаграммы IPv4.

Смещение фрагмента в последнем фрагменте (555) дает смещение данных в 4440 байтов в исходной дейтаграмме IPv4. Если затем добавить байты данных из последнего фрагмента (680 = 700-20), получится 5120 байтов, которые являются частью данных исходной дейтаграммы IPv4.Затем добавление 20 байтов для заголовка IPv4 равняется размеру исходной дейтаграммы IPv4 (4440 + 680 + 20 = 5140), как показано на изображениях.

Проблемы с фрагментацией IPv4

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

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

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

Другая проблема фрагментации связана с тем, как обрабатываются отброшенные фрагменты. Если один фрагмент дейтаграммы IPv4 отбрасывается, тогда необходимо повторно отправить всю исходную дейтаграмму IPv4, и она также будет фрагментирована.Вы видите пример этого в сетевой файловой системе (NFS). NFS по умолчанию имеет размер блока чтения и записи 8192, поэтому дейтаграмма NFS IPv4 / UDP составляет примерно 8500 байт (включая заголовки NFS, UDP и IPv4). Отправляющая станция, подключенная к Ethernet (MTU 1500), должна фрагментировать 8500-байтовую дейтаграмму на шесть частей; пять фрагментов по 1500 байт и один фрагмент размером 1100 байт. Если какой-либо из шести фрагментов отброшен из-за перегруженного канала, полная исходная дейтаграмма должна быть повторно передана, а это означает, что необходимо будет создать еще шесть фрагментов.Если этот канал отбрасывает один из шести пакетов, то вероятность того, что любые данные NFS могут быть переданы по этому каналу, мала, поскольку по крайней мере один фрагмент IPv4 будет отброшен из каждой исходной датаграммы IPv4 NFS 8500 байт.

Брандмауэры

, которые фильтруют пакеты или управляют ими на основе информации с уровней 4 (L4) по уровень 7 (L7) в пакете, могут иметь проблемы с правильной обработкой фрагментов IPv4. Если фрагменты IPv4 не в порядке, брандмауэр может заблокировать не исходные фрагменты, потому что они не несут информацию, которая соответствовала бы фильтру пакетов.Это означало бы, что исходная дейтаграмма IPv4 не могла быть повторно собрана принимающим хостом. Если брандмауэр настроен так, чтобы разрешать не исходные фрагменты с недостаточной информацией для правильного соответствия фильтру, то может произойти атака не начального фрагмента через брандмауэр. Кроме того, некоторые сетевые устройства (например, Content Switch Engine) направляют пакеты на основе информации с уровней L4 по L7, и если пакет охватывает несколько фрагментов, то устройству могут быть проблемы с применением своих политик.

Избегайте фрагментации IPv4: что делает TCP MSS и как это работает

Максимальный размер сегмента TCP (MSS) определяет максимальный объем данных, который хост готов принять в одной дейтаграмме TCP / IPv4.Эта дейтаграмма TCP / IPv4 может быть фрагментирована на уровне IPv4. Значение MSS отправляется как опция заголовка TCP только в сегментах TCP SYN. Каждая сторона TCP-соединения сообщает свое значение MSS другой стороне. Вопреки распространенному мнению, значение MSS не согласовывается между хостами. От отправляющего хоста требуется ограничить размер данных в одном сегменте TCP до значения, меньшего или равного MSS, сообщаемого принимающим хостом.

Первоначально MSS означало, какой размер буфера (больше или равный 65496 байт) был выделен на принимающей станции, чтобы иметь возможность хранить данные TCP, содержащиеся в одной дейтаграмме IPv4.MSS был максимальным сегментом (фрагментом) данных, который получатель TCP был готов принять. Этот сегмент TCP может достигать 64 КБ (максимальный размер дейтаграммы IPv4), и он может быть фрагментирован на уровне IPv4 для передачи по сети на принимающий узел. Принимающий хост должен повторно собрать дейтаграмму IPv4, прежде чем он передаст полный сегмент TCP на уровень TCP.

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

Сценарий 1 иллюстрирует, как впервые была реализована MSS. Узел A имеет буфер размером 16 КБ, а узел B — буфер 8 КБ. Они отправляют и получают свои значения MSS и настраивают свои MSS отправки для отправки данных друг другу. Обратите внимание, что хосту A и хосту B придется фрагментировать дейтаграммы IPv4, которые больше, чем MTU интерфейса, но все же меньше, чем отправляемый MSS, потому что стек TCP может передавать 16 КБ или 8 Кбайт данных вниз по стеку в IPv4. В случае хоста B пакеты могут быть фрагментированы дважды: один раз для попадания в локальную сеть Token Ring, а второй — в локальную сеть Ethernet.

Сценарий 1

  1. Хост A отправляет свое значение MSS, равное 16 КБ, хосту B.
  2. Хост B получает значение MSS 16K от хоста A.
  3. Хост B устанавливает значение MSS для отправки равным 16K.
  4. Хост B отправляет значение MSS 8K хосту A.
  5. Хост A получает значение MSS 8K от хоста B.
  6. Хост A устанавливает значение MSS для отправки равным 8K.

Чтобы помочь избежать фрагментации IPv4 на конечных точках TCP-соединения, выбор значения MSS был изменен на минимальный размер буфера и MTU исходящего интерфейса (- 40).Номера MSS на 40 байт меньше, чем номера MTU, потому что MSS — это просто размер данных TCP, который не включает 20-байтовый заголовок IPv4 и 20-байтовый заголовок TCP. MSS основан на размерах заголовков по умолчанию; стек отправителя должен вычесть соответствующие значения для заголовка IPv4 и заголовка TCP в зависимости от того, какие параметры TCP или IPv4 используются.

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

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

Сценарий 2

  1. Хост A сравнивает свой буфер MSS (16K) и свой MTU (1500-40 = 1460) и использует меньшее значение в качестве MSS (1460) для отправки на хост B.
  2. Хост B получает MSS отправки хоста A (1460) и сравнивает его со значением MTU своего исходящего интерфейса — 40 (4422).
  3. Хост B устанавливает меньшее значение (1460) в качестве MSS для отправки дейтаграмм IPv4 на хост A.
  4. Хост B сравнивает свой буфер MSS (8K) и свой MTU (4462-40 = 4422) и использует 4422 в качестве MSS для отправки на хост A.
  5. Хост A получает MSS отправки хоста B (4422) и сравнивает его со значением MTU своего исходящего интерфейса -40 (1460).
  6. Хост A устанавливает меньшее значение (1460) в качестве MSS для отправки дейтаграмм IPv4 на хост B.

1460 — значение, выбранное обоими хостами в качестве отправляемого MSS друг для друга. Часто значение MSS для отправки будет одинаковым на всех концах TCP-соединения.

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

Что такое PMTUD?

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

Примечание : PMTUD поддерживается только TCP и UDP.Другие протоколы его не поддерживают. Если PMTUD включен на хосте, а это почти всегда включено, для всех пакетов TCP и UDP от хоста будет установлен бит DF.

Когда хост отправляет полный пакет данных MSS с установленным битом DF, PMTUD уменьшает значение MSS отправки для соединения, если он получает информацию о том, что пакет требует фрагментации. Хост обычно «запоминает» значение MTU для пункта назначения, поскольку он создает запись «хост» (/ 32) в своей таблице маршрутизации с этим значением MTU.

Если маршрутизатор пытается переслать дейтаграмму IPv4 с установленным битом DF по каналу с меньшим значением MTU, чем размер пакета, маршрутизатор отбрасывает пакет и возвращает сообщение протокола управляющих сообщений Интернета (ICMP) «Назначение недостижимо. «сообщение источнику этой дейтаграммы IPv4 с кодом, который указывает» необходима фрагментация и установлен DF «(тип 3, код 4).Когда исходная станция получает сообщение ICMP, она снижает MSS отправки, а когда TCP повторно передает сегмент, он будет использовать меньший размер сегмента.

Вот пример сообщения ICMP «требуется фрагментация и установка DF», которое вы можете увидеть на маршрутизаторе после включения команды debug ip icmp :

 ICMP: dst (10.10.10.10) фраг. необходимо и установить пеленгатор
недоступен отправлен на 10.1.1.1 

На этой диаграмме показан формат заголовка ICMP сообщения «Требуется фрагментация и набор DF» «Пункт назначения недоступен».

Согласно RFC 1191, маршрутизатор, который возвращает сообщение ICMP, в котором указывается, что «необходима фрагментация и установлен DF», должен включать MTU этой сети со следующим переходом в младшие 16 битов поля дополнительного заголовка ICMP, помеченного как «неиспользуемое». в спецификации ICMP RFC 792.

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

PMTUD выполняется постоянно для всех пакетов, поскольку путь между отправителем и получателем может динамически меняться. Каждый раз, когда отправитель получает ICMP-сообщение «Can’t Fragment», он обновляет информацию о маршрутизации (где хранится PMTUD).

Во время PMTUD могут произойти две вещи:

1. Пакет может добраться до получателя без фрагментации.

Примечание : Чтобы маршрутизатор мог защитить ЦП от DoS-атак, он снижает количество отправляемых ICMP-сообщений о недоступности до двух в секунду. Следовательно, в этом контексте, если у вас есть сетевой сценарий, в котором вы ожидаете, что маршрутизатору потребуется отвечать более чем двумя сообщениями ICMP (тип = 3, код = 4) в секунду (могут быть разные хосты), вам может потребоваться для отключения дросселирования сообщений ICMP с помощью команды no ip icmp rate-limit unreachable [df] interface .

2. Отправитель может получать сообщения ICMP «Can’t Fragment» с любого (или каждого) перехода на пути к получателю.

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

Хорошим примером этого является HTTP-соединение, показанное ниже в Сценарии 3.Клиент TCP отправляет небольшие пакеты, а сервер отправляет большие пакеты. В этом случае только большие пакеты сервера (больше 576 байт) вызовут PMTUD. Пакеты клиента имеют небольшой размер (менее 576 байт) и не запускают PMTUD, поскольку не требуют фрагментации для передачи по каналу с размером MTU 576 байтов.

Сценарий 3

Сценарий 4 показывает пример асимметричной маршрутизации, когда один из путей имеет меньший минимальный MTU, чем другой. Асимметричная маршрутизация происходит, когда используются разные пути для отправки и получения данных между двумя конечными точками.В этом сценарии PMTUD инициирует снижение MSS отправки только в одном направлении потока TCP. Трафик от TCP-клиента к серверу проходит через маршрутизатор A и маршрутизатор B, тогда как обратный трафик, который приходит от сервера к клиенту, проходит через маршрутизатор D и маршрутизатор C. Когда TCP-сервер отправляет пакеты клиенту, PMTUD срабатывает. сервер, чтобы снизить MSS отправки, потому что маршрутизатор D должен фрагментировать пакеты размером 4092 байта, прежде чем он сможет отправить их маршрутизатору C.

Клиент, с другой стороны, никогда не получит ICMP-сообщение «Destination Unreachable» с кодом, который указывает «необходима фрагментация и установлен DF», потому что маршрутизатор A не должен фрагментировать пакеты, когда он отправляет их на сервер через маршрутизатор B .

Сценарий 4

Примечание : Команда ip tcp path-mtu-discovery используется для включения обнаружения пути TCP MTU для TCP-соединений, инициированных маршрутизаторами (например, BGP и Telnet).

Проблемы с PMTUD

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

  • Маршрутизатор может отбросить пакет и не отправить сообщение ICMP. (Нечасто)

  • Маршрутизатор может сгенерировать и отправить сообщение ICMP, но сообщение ICMP блокируется маршрутизатором или межсетевым экраном между этим маршрутизатором и отправителем.(Обычный)

  • Маршрутизатор может сгенерировать и отправить сообщение ICMP, но отправитель игнорирует это сообщение. (Нечасто)

Первый и последний из трех маркеров здесь необычны и обычно являются результатом ошибки, но средний маркер описывает общую проблему. Люди, реализующие фильтры пакетов ICMP, как правило, блокируют все типы сообщений ICMP, а не только определенные типы сообщений ICMP. Фильтр пакетов может блокировать все типы сообщений ICMP, кроме тех, которые «недоступны» или «истекло время».»Успех или сбой PMTUD зависит от того, проходят ли сообщения о недоступности ICMP отправителю пакета TCP / IPv4. Сообщения ICMP с превышением времени важны для решения других проблем IPv4. Показан пример такого фильтра пакетов, реализованного на маршрутизаторе. здесь.

 список доступа 101 разрешить icmp любые недостижимые
список доступа 101 разрешить icmp в любое время превышено
список доступа 101 запретить icmp любой любой
список доступа 101 разрешить ip любой любой 

Существуют и другие методы, которые могут помочь решить проблему полной блокировки ICMP.

  • Сбросьте бит DF на маршрутизаторе и в любом случае разрешите фрагментацию (хотя это может быть не очень хорошей идеей. Дополнительные сведения см. В разделе «Проблемы с IP-фрагментацией»).

  • Управляйте значением опции TCP MSS MSS с помощью команды интерфейса ip tcp adjust-mss <500-1460> .

В следующем сценарии маршрутизатор A и маршрутизатор B находятся в одном административном домене. Маршрутизатор C недоступен и блокирует ICMP, поэтому PMTUD не работает.Обходной путь в этой ситуации — сбросить бит DF в обоих направлениях на маршрутизаторе B, чтобы разрешить фрагментацию. Это можно сделать с помощью политики маршрутизации. Синтаксис для сброса бита DF доступен в программном обеспечении Cisco IOS® версии 12.1 (6) и позже.

 интерфейс serial0
...
ip policy route-map clear-df-bit
карта маршрута clear-df-bit разрешение 10
сопоставить IP-адрес 111
установить ip df 0
 
список доступа 111 разрешить tcp любой любой 

Другой вариант — изменить значение параметра TCP MSS для пакетов SYN, проходящих через маршрутизатор (доступно в Cisco IOS® 12.2 (4) Т и более поздние). Это уменьшает значение параметра MSS в пакете TCP SYN так, чтобы оно было меньше значения (1460) в команде ip tcp adjust-mss . В результате отправитель TCP будет отправлять сегменты, не превышающие это значение. Размер пакета IPv4 будет на 40 байтов больше (1500), чем значение MSS (1460 байтов), чтобы учесть заголовок TCP (20 байтов) и заголовок IPv4 (20 байтов).

Вы можете настроить MSS пакетов TCP SYN с помощью команды ip tcp adjust-mss .Этот синтаксис уменьшит значение MSS для сегментов TCP до 1460. Эта команда влияет как на входящий, так и на исходящий трафик на интерфейсе serial0.

 интервал s0
IP TCP Adjust-MSS 1460 

Проблемы фрагментации IPv4 стали более распространенными, поскольку туннели IPv4 получили более широкое распространение. Причина того, что туннели вызывают большую фрагментацию, заключается в том, что инкапсуляция туннеля добавляет «накладные расходы» к размеру пакета. Например, добавление Generic Router Encapsulation (GRE) добавляет к пакету 24 байта, и после этого увеличения может потребоваться фрагментация пакета, поскольку он превышает исходящий MTU.В следующем разделе этого документа вы увидите примеры проблем, которые могут возникнуть при использовании туннелей и фрагментации IPv4.

Общие сетевые топологии, требующие PMTUD

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

  • Конечные хосты, подключенные к Token Ring (или FDDI), между которыми установлено соединение Ethernet.MTU Token Ring (или FDDI) на концах больше, чем MTU Ethernet в середине.

  • PPPoE (часто используется с ADSL) требует 8 байтов для своего заголовка. Это снижает эффективный MTU Ethernet до 1492 (1500-8).

Протоколы туннелирования, такие как GRE, IPv4sec и L2TP, также требуют места для соответствующих заголовков и трейлеров. Это также снижает эффективный MTU исходящего интерфейса.

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

Туннель

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

  • Пассажирский протокол (AppleTalk, Banyan VINES, CLNS, DECnet, IPv4 или IPX)

  • Carrier protocol — один из этих протоколов инкапсуляции:

    • GRE — многопротокольный протокол несущей Cisco.См. RFC 2784 и RFC 1701 для получения дополнительной информации.

    • IPv4 в туннелях IPv4 — дополнительную информацию см. В RFC 2003.

  • Транспортный протокол — Протокол, используемый для передачи инкапсулированного протокола.

Пакеты, показанные в этом разделе, иллюстрируют концепции туннелирования IPv4, где GRE — это протокол инкапсуляции, а IPv4 — транспортный протокол. Пассажирский протокол тоже IPv4. В этом случае IPv4 является одновременно транспортным и пассажирским протоколом.

Обычный пакет

Туннельный пакет

  • IPv4 — транспортный протокол.

  • GRE — протокол инкапсуляции.

  • IPv4 — протокол для пассажиров.

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

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

Реальная альтернатива — туннелирование DECnet через магистраль IPv4.Туннелирование инкапсулирует пакеты DECnet внутри IPv4 и отправляет их по магистрали в конечную точку туннеля, где инкапсуляция удаляется, и пакеты DECnet могут быть маршрутизированы к месту назначения через DECnet.

Инкапсуляция трафика внутри другого протокола дает следующие преимущества:

  • Конечные точки используют частные адреса (RFC 1918), а магистраль не поддерживает маршрутизацию этих адресов.

  • Разрешить виртуальные частные сети (VPN) через WAN или Интернет.

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

  • Шифрование трафика через магистраль или Интернет.

В остальной части документа IPv4 используется в качестве протокола пассажира, а IPv4 — в качестве транспортного протокола.

Соображения относительно туннельных интерфейсов

Это соображения при туннелировании.

  • Быстрая коммутация туннелей GRE была представлена ​​в Cisco IOS® Release 11.1, а переключение CEF было введено в версии 12.0. Коммутация CEF для многоточечных туннелей GRE была представлена ​​в версии 12.2 (8) T. Инкапсуляция и декапсуляция в конечных точках туннеля были медленными операциями в более ранних версиях Cisco IOS®, когда поддерживалась только коммутация процессов.

  • При туннелировании пакетов возникают проблемы с безопасностью и топологией. Туннели могут обходить списки контроля доступа (ACL) и брандмауэры. Если вы туннелируете через брандмауэр, вы в основном обойдете брандмауэр для любого пассажирского протокола, который вы туннелируете.Поэтому рекомендуется включить функциональные возможности межсетевого экрана на конечных точках туннеля, чтобы обеспечить соблюдение любой политики в протоколах пассажиров.

  • Туннелирование может создавать проблемы с транспортными протоколами с ограниченными таймерами (например, DECnet) из-за увеличенной задержки.

  • Туннелирование между средами с разными скоростями каналов, такими как быстрые звонки FDDI и через медленные телефонные линии со скоростью 9600 бит / с, может вызвать проблемы с переупорядочением пакетов.Некоторые пассажирские протоколы плохо работают в смешанных сетях.

  • Туннели «точка-точка» могут использовать полосу пропускания физического канала. Если вы запускаете протоколы маршрутизации по нескольким туннелям «точка-точка», имейте в виду, что каждый туннельный интерфейс имеет полосу пропускания, а физический интерфейс, по которому проходит туннель, имеет полосу пропускания. Например, вы хотите установить пропускную способность туннеля на 100 Кб, если 100 туннелей работают по каналу 10 Мб. Пропускная способность по умолчанию для туннеля составляет 9 КБ.

  • Протоколы маршрутизации

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

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

    % TUN-RECURDOWN Интерфейсный туннель 0
    временно отключен из-за рекурсивной маршрутизации 

Маршрутизатор как участник PMTUD в конечной точке туннеля

Маршрутизатор выполняет две разные роли PMTUD, когда он является конечной точкой туннеля.

  • В первой роли маршрутизатор является пересылкой пакетов хоста. Для обработки PMTUD маршрутизатор должен проверить бит DF и размер исходного пакета данных и при необходимости предпринять соответствующие действия.

  • Вторая роль вступает в игру после того, как маршрутизатор инкапсулирует исходный пакет IPv4 внутри туннельного пакета. На этом этапе маршрутизатор действует больше как хост в отношении PMTUD и туннельного пакета IPv4.

Давайте посмотрим, что происходит, когда маршрутизатор действует в первой роли, маршрутизатор, который пересылает пакеты IPv4 хоста, по отношению к PMTUD.Эта роль вступает в игру до того, как маршрутизатор инкапсулирует пакет IPv4 хоста в туннельный пакет.

Если маршрутизатор участвует в качестве пересылки пакета хоста, он выполнит следующие действия:

  • Проверить, установлен ли бит DF

  • Проверьте, какой размер пакета может вместить туннель

  • Фрагмент (если пакет слишком велик и бит DF не установлен), инкапсулируйте фрагменты и отправьте; или

  • Отбросить пакет (если пакет слишком велик и установлен бит DF) и отправить сообщение ICMP отправителю

  • Инкапсулировать (если пакет не слишком большой) и отправить

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

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

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

В примере 1 бит DF не установлен (DF = 0), а MTU IPv4 туннеля GRE составляет 1476 (1500–24).

Пример 1

1. Маршрутизатор пересылки (в источнике туннеля) получает 1500-байтовую дейтаграмму со сбросом бита DF (DF = 0) от отправляющего хоста. Эта дейтаграмма состоит из 20-байтового IP-заголовка и 1480-байтовой полезной нагрузки TCP.

IPv4 1480 байт TCP + данные

2. Поскольку пакет слишком велик для MTU IPv4 после добавления служебных данных GRE (24 байта), маршрутизатор переадресации разбивает датаграмму на два фрагмента по 1476 (20 байтов заголовка IPv4 + 1456 байтов полезной нагрузки IPv4) и 44 байта (20 байтов заголовка IPv4 + 24 байта полезной нагрузки IPv4), поэтому после добавления инкапсуляции GRE размер пакета не превышает MTU исходящего физического интерфейса.

IP 0 1456 байт TCP + данные

3. Маршрутизатор пересылки добавляет инкапсуляцию GRE, которая включает 4-байтовый заголовок GRE плюс 20-байтовый заголовок IPv4, к каждому фрагменту исходной дейтаграммы IPv4. Эти две дейтаграммы IPv4 теперь имеют длину 1500 и 68 байтов, и эти дейтаграммы рассматриваются как отдельные дейтаграммы IPv4, а не как фрагменты.

IPv4 GRE IP 0 1456 байт TCP + данные
IPv4 GRE IP 1 24 байта данных

4.Маршрутизатор назначения туннеля удаляет инкапсуляцию GRE из каждого фрагмента исходной дейтаграммы, в результате чего остаются два фрагмента IPv4 длиной 1476 и 24 байта. Эти фрагменты дейтаграммы IPv4 отдельно пересылаются этим маршрутизатором принимающему узлу.

IP 0 1456 байт TCP + данные

5. Принимающий хост повторно собирает эти два фрагмента в исходную дейтаграмму.

IPv4 1480 байт TCP + данные

Сценарий 5 описывает роль маршрутизатора пересылки в контексте топологии сети.

В этом примере маршрутизатор действует в той же роли маршрутизатора пересылки, но на этот раз установлен бит DF (DF = 1).

Пример 2

1. Маршрутизатор пересылки в источнике туннеля получает 1500-байтовую дейтаграмму с DF = 1 от отправляющего хоста.

IPv4 1480 байт TCP + данные

2. Поскольку бит DF установлен, а размер дейтаграммы (1500 байт) больше MTU IPv4 туннеля GRE (1476), маршрутизатор отбрасывает дейтаграмму и отправляет сообщение «Требуется фрагментация ICMP, но установлен бит DF. «сообщение источнику дейтаграммы.Сообщение ICMP уведомит отправителя о том, что MTU равно 1476.

3. Хост-отправитель получает сообщение ICMP и при повторной отправке исходных данных использует 1476-байтовую дейтаграмму IPv4.

IPv4 1456 байт TCP + данные

4. Длина этой дейтаграммы IPv4 (1476 байт) теперь равна значению MTU IPv4 туннеля GRE, поэтому маршрутизатор добавляет инкапсуляцию GRE в дейтаграмму IPv4.

IPv4 GRE IPv4 1456 байт TCP + данные

5.Принимающий маршрутизатор (в пункте назначения туннеля) удаляет инкапсуляцию GRE дейтаграммы IPv4 и отправляет ее принимающему узлу.

IPv4 1456 байт TCP + данные

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

Примечание : По умолчанию маршрутизатор не выполняет PMTUD для генерируемых им пакетов туннеля GRE. Команда tunnel path-mtu-discovery может использоваться для включения PMTUD для туннельных пакетов GRE-IPv4.

Пример 3 показывает, что происходит, когда хост отправляет дейтаграммы IPv4, которые достаточно малы, чтобы поместиться в MTU IPv4 на интерфейсе туннеля GRE. Бит DF в этом случае может быть установлен или сброшен (1 или 0). В туннельном интерфейсе GRE не настроена команда tunnel path-mtu-discovery , поэтому маршрутизатор не будет выполнять PMTUD для пакета GRE-IPv4.

Пример 3

1. Маршрутизатор пересылки в источнике туннеля получает 1476-байтовую дейтаграмму от отправляющего хоста.

IPv4 1456 байт TCP + данные

2. Этот маршрутизатор инкапсулирует 1476-байтовую дейтаграмму IPv4 внутри GRE, чтобы получить 1500-байтовую дейтаграмму GRE IPv4. Бит DF в заголовке GRE IPv4 будет очищен (DF = 0). Затем этот маршрутизатор пересылает этот пакет в пункт назначения туннеля.

IPv4 GRE IPv4 1456 байт TCP + данные

3.Предположим, что между источником и местом назначения туннеля находится маршрутизатор с MTU канала 1400. Этот маршрутизатор фрагментирует пакет туннеля, поскольку бит DF сброшен (DF = 0). Помните, что этот пример фрагментирует самый внешний IPv4, поэтому заголовки GRE, внутреннего IPv4 и TCP будут отображаться только в первом фрагменте.

IP 0 GRE IP 1352 байта TCP + данные

4. Маршрутизатор назначения туннеля должен повторно собрать пакет туннеля GRE.

IP GRE IP 1456 байт TCP + данные

5. После повторной сборки пакета туннеля GRE маршрутизатор удаляет заголовок GRE IPv4 и отправляет исходную дейтаграмму IPv4 на своем пути.

IPv4 1456 байт TCP + данные

Следующий пример показывает, что происходит, когда маршрутизатор действует в роли отправляющего хоста по отношению к PMTUD и к туннельному пакету IPv4.На этот раз бит DF установлен (DF = 1) в исходном заголовке IPv4, а команда tunnel path-mtu-discovery была настроена так, что бит DF будет скопирован из внутреннего заголовка IPv4 во внешний (GRE + IPv4) заголовок.

Пример 4

1. Маршрутизатор пересылки в источнике туннеля получает 1476-байтовую дейтаграмму с DF = 1 от отправляющего хоста.

IPv4 1456 байт TCP + данные

2.Этот маршрутизатор инкапсулирует 1476-байтовую дейтаграмму IPv4 внутри GRE, чтобы получить 1500-байтовую дейтаграмму GRE IPv4. В этом заголовке IPv4 GRE будет установлен бит DF (DF = 1), поскольку в исходной дейтаграмме IPv4 был установлен бит DF. Затем этот маршрутизатор пересылает этот пакет в пункт назначения туннеля.

IPv4 GRE IPv4 1456 байт TCP

3. Снова предположим, что между источником и местом назначения туннеля есть маршрутизатор с MTU канала 1400.Этот маршрутизатор не будет фрагментировать туннельный пакет, так как бит DF установлен (DF = 1). Этот маршрутизатор должен отбросить пакет и отправить сообщение об ошибке ICMP на маршрутизатор-источник туннеля, поскольку это IPv4-адрес источника в пакете.

4. Маршрутизатор пересылки в источнике туннеля получает это сообщение об ошибке «ICMP» и снижает MTU IPv4 туннеля GRE до 1376 (1400–24). В следующий раз, когда отправляющий узел повторно передает данные в 1476-байтовом пакете IPv4, этот пакет может быть слишком большим, и этот маршрутизатор отправит отправителю сообщение об ошибке «ICMP» со значением MTU 1376.Когда отправляющий хост повторно передает данные, он отправит их в 1376-байтовом пакете IPv4, и этот пакет пройдет через туннель GRE к принимающему хосту.

Сценарий 5

Этот сценарий иллюстрирует фрагментацию GRE. Помните, что вы фрагментируете перед инкапсуляцией для GRE, затем выполняете PMTUD для пакета данных, и бит DF не копируется, когда пакет IPv4 инкапсулируется GRE. В этом сценарии бит DF не установлен. MTU IPv4 интерфейса GRE по умолчанию на 24 байта меньше, чем MTU IPv4 физического интерфейса, поэтому MTU IPv4 интерфейса GRE составляет 1476, как показано на рисунке.

  1. Отправитель отправляет 1500-байтовый пакет (20-байтовый заголовок IPv4 + 1480 байтов полезной нагрузки TCP).
  2. Поскольку MTU туннеля GRE составляет 1476, пакет размером 1500 байт разбивается на два фрагмента IPv4 по 1476 и 44 байта, каждый в ожидании дополнительных 24 байтов заголовка GRE.
  3. 24 байта заголовка GRE добавляются к каждому фрагменту IPv4. Теперь фрагменты имеют размер 1500 (1476 + 24) и 68 (44 + 24) байтов каждый.
  4. Пакеты GRE + IPv4, содержащие два фрагмента IPv4, пересылаются одноранговому маршрутизатору туннеля GRE.
  5. Одноранговый маршрутизатор туннеля GRE удаляет заголовки GRE из двух пакетов.
  6. Этот маршрутизатор пересылает два пакета на хост назначения.
  7. Хост назначения повторно собирает фрагменты IPv4 обратно в исходную дейтаграмму IPv4.
Сценарий 6

Этот сценарий аналогичен сценарию 5, но на этот раз установлен бит DF. В сценарии 6 маршрутизатор настроен на выполнение PMTUD для туннельных пакетов GRE + IPv4 с помощью команды tunnel path-mtu-discovery , а бит DF копируется из исходного заголовка IPv4 в заголовок GRE IPv4.Если маршрутизатор получает ошибку ICMP для пакета GRE + IPv4, он уменьшает MTU IPv4 на интерфейсе туннеля GRE. Опять же, помните, что MTU IPv4 туннеля GRE по умолчанию установлен на 24 байта меньше, чем MTU физического интерфейса, поэтому здесь MTU GRE IPv4 составляет 1476. Также обратите внимание, что в пути туннеля GRE есть ссылка на 1400 MTU, как показано на изображение.

  1. Маршрутизатор получает пакет размером 1500 байт (20-байтовый заголовок IPv4 + полезная нагрузка TCP 1480) и отбрасывает пакет. Маршрутизатор отбрасывает пакет, поскольку он превышает MTU IPv4 (1476) на туннельном интерфейсе GRE.
  2. Маршрутизатор отправляет отправителю сообщение об ошибке ICMP, сообщающее ему, что MTU следующего перехода составляет 1476. Хост будет записывать эту информацию, обычно как маршрут хоста для пункта назначения в своей таблице маршрутизации.
  3. Передающий хост использует размер пакета 1476 байт при повторной отправке данных. Маршрутизатор GRE добавляет 24 байта инкапсуляции GRE и отправляет пакет размером 1500 байтов.
  4. Пакет размером 1500 байт не может пройти по каналу длиной 1400 байт, поэтому он отбрасывается промежуточным маршрутизатором.
  5. Промежуточный маршрутизатор отправляет ICMP (тип = 3, код = 4) маршрутизатору GRE с MTU следующего перехода, равным 1400.Маршрутизатор GRE уменьшает это значение до 1376 (1400–24) и устанавливает внутреннее значение MTU IPv4 на интерфейсе GRE. Это изменение можно увидеть только при использовании команды debug tunnel command ; его нельзя увидеть в выходных данных команды show ip interface tunnel <#> .
  6. В следующий раз, когда хост повторно отправит 1476-байтовый пакет, маршрутизатор GRE отбросит пакет, поскольку он больше, чем текущий MTU IPv4 (1376) на туннельном интерфейсе GRE.
  7. Маршрутизатор GRE отправит отправителю еще один протокол ICMP (тип = 3, код = 4) с MTU следующего перехода, равным 1376, и хост обновит свою текущую информацию с новым значением.
  8. Хост снова отправляет данные, но теперь в меньшем пакете размером 1376 байт GRE добавляет 24 байта инкапсуляции и пересылает их дальше. На этот раз пакет дойдет до однорангового узла туннеля GRE, где он будет декапсулирован и отправлен на узел назначения.

Примечание : Если команда tunnel path-mtu-discovery не была настроена на маршрутизаторе пересылки в этом сценарии, и бит DF был установлен в пакетах, пересылаемых через туннель GRE, хост 1 все равно будет успешно отправлять Пакеты TCP / IPv4 отправляются на Хост 2, но они будут фрагментированы посередине на звене 1400 MTU.Также одноранговому узлу туннеля GRE придется собрать их заново, прежде чем он сможет декапсулировать и пересылать их дальше.

Туннельный режим Pure IPsec

Протокол безопасности IPv4 (IPv4sec) — это основанный на стандартах метод, обеспечивающий конфиденциальность, целостность и подлинность информации, передаваемой по сетям IPv4. IPv4sec обеспечивает шифрование IPv4 на сетевом уровне. IPv4sec удлиняет пакет IPv4, добавляя по крайней мере один заголовок IPv4 (туннельный режим). Добавленные заголовки различаются по длине в зависимости от режима конфигурации IPv4sec, но они не превышают ~ 58 байт (инкапсуляция полезной нагрузки (ESP) и аутентификация ESP (ESPauth)) на пакет.

IPv4sec имеет два режима: туннельный и транспортный.

  1. Туннельный режим является режимом по умолчанию. В туннельном режиме весь исходный пакет IPv4 защищен (зашифрован, аутентифицирован или и то, и другое) и инкапсулирован заголовками и трейлерами IPv4sec. Затем к пакету добавляется новый заголовок IPv4, в котором конечные точки IPv4sec (одноранговые узлы) указываются в качестве источника и назначения. Туннельный режим может использоваться с любым одноадресным трафиком IPv4 и должен использоваться, если IPv4sec защищает трафик от хостов, находящихся за одноранговыми узлами IPv4sec.Например, туннельный режим используется с виртуальными частными сетями (VPN), где узлы в одной защищенной сети отправляют пакеты узлам в другой защищенной сети через пару одноранговых узлов IPv4sec. В сетях VPN «туннель» IPv4sec защищает трафик IPv4 между хостами, шифруя этот трафик между одноранговыми маршрутизаторами IPv4sec.
  2. В транспортном режиме (настроенном с помощью подкоманды mode transport в определении преобразования) защищается только полезная нагрузка исходного пакета IPv4 (зашифрованная, аутентифицированная или и то, и другое).Полезная нагрузка инкапсулируется заголовками и трейлерами IPv4sec. Исходные заголовки IPv4 остаются нетронутыми, за исключением того, что поле протокола IPv4 изменяется на ESP (50), а исходное значение протокола сохраняется в трейлере IPv4sec для восстановления при расшифровке пакета. Транспортный режим используется только тогда, когда трафик IPv4, который должен быть защищен, проходит между самими одноранговыми узлами IPv4sec, IPv4-адреса источника и назначения в пакете совпадают с адресами одноранговых узлов IPv4sec. Обычно транспортный режим IPv4sec используется только тогда, когда другой протокол туннелирования (например, GRE) используется для первой инкапсуляции пакета данных IPv4, а затем IPv4sec используется для защиты туннельных пакетов GRE.

IPv4sec всегда выполняет PMTUD для пакетов данных и для своих собственных пакетов. Существуют команды настройки IPv4sec для изменения обработки PMTUD для пакета IPv4sec IPv4sec, IPv4sec может очищать, устанавливать или копировать бит DF из заголовка IPv4 пакета данных в заголовок IPv4sec IPv4. Это называется функцией «DF Bit Override Functionality».

Примечание : вы действительно хотите избежать фрагментации после инкапсуляции, когда вы выполняете аппаратное шифрование с помощью IPv4sec. Аппаратное шифрование может дать вам пропускную способность около 50 Мбит / с, что зависит от оборудования, но если пакет IPv4sec фрагментирован, вы потеряете от 50 до 90 процентов пропускной способности.Эта потеря связана с тем, что фрагментированные пакеты IPv4sec коммутируются для повторной сборки, а затем передаются механизму аппаратного шифрования для дешифрования. Эта потеря пропускной способности может снизить пропускную способность аппаратного шифрования до уровня производительности программного шифрования (2-10 Мбайт).

Сценарий 7

Этот сценарий описывает фрагментацию IPv4sec в действии. В этом сценарии MTU на всем пути составляет 1500. В этом сценарии бит DF не установлен.

  1. Маршрутизатор получает 1500-байтовый пакет (20-байтовый заголовок IPv4 + 1480 байтов полезной нагрузки TCP), предназначенный для хоста 2.
  2. Пакет размером 1500 байт зашифрован с помощью IPv4sec, и добавляются 52 байта служебных данных (заголовок IPv4sec, концевик и дополнительный заголовок IPv4). Теперь IPv4sec необходимо отправить пакет размером 1552 байта. Поскольку исходящий MTU равен 1500, этот пакет необходимо фрагментировать.
  3. Два фрагмента создаются из пакета IPv4sec. Во время фрагментации для второго фрагмента добавляется дополнительный 20-байтовый заголовок IPv4, в результате чего получается 1500-байтовый фрагмент и 72-байтовый фрагмент IPv4.
  4. Туннельный одноранговый маршрутизатор IPv4sec получает фрагменты, удаляет дополнительный заголовок IPv4 и объединяет фрагменты IPv4 обратно в исходный пакет IPv4sec.Затем IPv4sec расшифровывает этот пакет.
  5. Затем маршрутизатор пересылает исходный пакет данных размером 1500 байт на хост 2.
Сценарий 8

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

В этом сценарии вы увидите, как PMTU IPv4sec изменяется на более низкое значение в результате необходимости фрагментации. Помните, что бит DF копируется из внутреннего заголовка IPv4 во внешний заголовок IPv4, когда IPv4sec шифрует пакет. Значения медиа-MTU и PMTU хранятся в ассоциации безопасности IPv4sec (SA). MTU носителя основан на MTU интерфейса исходящего маршрутизатора, а PMTU основан на минимальном MTU, наблюдаемом на пути между одноранговыми узлами IPv4sec. Помните, что IPv4sec инкапсулирует / шифрует пакет перед попыткой фрагментировать его, как показано на изображении.

  1. Маршрутизатор получает пакет размером 1500 байт и отбрасывает его, потому что при добавлении служебных данных IPv4sec размер пакета превышает PMTU (1500).
  2. Маршрутизатор отправляет ICMP-сообщение узлу 1, сообщая ему, что MTU следующего перехода составляет 1442 (1500 — 58 = 1442). Эти 58 байтов являются максимальными накладными расходами IPv4sec при использовании IPv4sec ESP и ESPauth. Реальные накладные расходы IPv4sec могут быть на 7 байтов меньше этого значения. Хост 1 записывает эту информацию, обычно как маршрут хоста для пункта назначения (Хост 2), в свою таблицу маршрутизации.
  3. 3. Хост 1 понижает свой PMTU для хоста 2 до 1442, поэтому хост 1 будет отправлять меньшие (1442 байта) пакеты при повторной передаче данных на хост 2. Маршрутизатор получает 1442-байтовый пакет, а IPv4sec добавляет 52 байта накладных расходов на шифрование. Таким образом, результирующий пакет IPv4sec составляет 1496 байт. Поскольку в заголовке этого пакета установлен бит DF, он отбрасывается средним маршрутизатором с 1400-байтовым каналом MTU.
  4. Средний маршрутизатор, сбросивший пакет, отправляет ICMP-сообщение отправителю пакета IPv4sec (первый маршрутизатор), сообщая ему, что MTU следующего перехода составляет 1400 байтов.Это значение записывается в PMTU SA IPv4sec.
  5. В следующий раз, когда хост 1 повторно отправит 1442-байтовый пакет (он не получил подтверждения для этого), IPv4sec отбросит пакет. Маршрутизатор снова отбрасывает пакет, потому что служебные данные IPv4sec, добавленные к пакету, увеличивают его, чем PMTU (1400).
  6. Маршрутизатор отправляет ICMP-сообщение узлу 1, сообщая ему, что MTU следующего перехода теперь составляет 1342 (1400 — 58 = 1342). Хост 1 снова запишет эту информацию.
  7. Когда Хост 1 снова повторно передает данные, он будет использовать пакет меньшего размера (1342).Этот пакет не потребует фрагментации и пройдет через туннель IPv4sec к узлу 2.

GRE и IPv4sec вместе

Более сложные взаимодействия для фрагментации и PMTUD происходят, когда IPv4sec используется для шифрования туннелей GRE. IPv4sec и GRE объединяются таким образом, потому что IPv4sec не поддерживает многоадресные пакеты IPv4, что означает, что вы не можете запустить протокол динамической маршрутизации в сети IPv4sec VPN. Туннели GRE поддерживают многоадресную рассылку, поэтому туннель GRE может использоваться для первой инкапсуляции многоадресного пакета протокола динамической маршрутизации в одноадресный пакет GRE IPv4, который затем может быть зашифрован с помощью IPv4sec.При этом IPv4sec часто развертывается в транспортном режиме поверх GRE, поскольку одноранговые узлы IPv4sec и конечные точки туннеля GRE (маршрутизаторы) совпадают, а транспортный режим позволяет сэкономить 20 байтов служебных данных IPv4sec.

Интересен случай, когда пакет IPv4 был разделен на два фрагмента и инкапсулирован GRE. В этом случае IPv4sec увидит два независимых пакета GRE + IPv4. Часто в конфигурации по умолчанию один из этих пакетов будет достаточно большим, чтобы его нужно было фрагментировать после того, как он был зашифрован.Одноранговому узлу IPv4sec необходимо будет повторно собрать этот пакет перед расшифровкой. Эта «двойная фрагментация» (один раз перед GRE и еще раз после IPv4sec) на отправляющем маршрутизаторе увеличивает задержку и снижает пропускную способность. Кроме того, повторная сборка переключается на процесс, поэтому всякий раз, когда это происходит, на принимающем маршрутизаторе будет сбой ЦП.

Этой ситуации можно избежать, установив «ip mtu» на туннельном интерфейсе GRE на достаточно низкий уровень, чтобы учесть накладные расходы как от GRE, так и от IPv4sec (по умолчанию для туннельного интерфейса GRE «ip mtu» установлено значение MTU исходящего реального интерфейса. — байты служебных данных GRE).

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

Комбинация туннелей Требуется конкретный MTU Рекомендуемый MTU
GRE + IPv4sec (транспортный режим) 1440 байт 1400 байт
GRE + IPv4sec (туннельный режим) 1420 байт 1400 байт

Примечание : Рекомендуется значение MTU 1400, поскольку оно охватывает наиболее распространенные комбинации режимов GRE + IPv4sec.Кроме того, нет заметных недостатков в допущении дополнительных 20 или 40 байтов служебных данных. Легче запомнить и установить одно значение, и это значение охватывает почти все сценарии.

Сценарий 9

IPv4sec развернут поверх GRE. Исходящий физический MTU — 1500, PMTU IPv4sec — 1500, а MTU IPv4 GRE — 1476 (1500-24 = 1476). Из-за этого пакеты TCP / IPv4 будут фрагментированы дважды: один раз перед GRE и один раз после IPv4sec. Пакет будет фрагментирован перед инкапсуляцией GRE, и один из этих пакетов GRE будет снова фрагментирован после шифрования IPv4sec.

Настройка «ip mtu 1440» (транспортный режим IPv4sec) или «ip mtu 1420» (режим туннеля IPv4sec) в туннеле GRE устранит возможность двойной фрагментации в этом сценарии.

  1. Маршрутизатор получает датаграмму размером 1500 байт.
  2. Перед инкапсуляцией GRE фрагментирует 1500-байтовый пакет на две части: 1476 (1500–24 = 1476) и 44 (24 данных + 20 заголовок IPv4) байта.
  3. GRE инкапсулирует фрагменты IPv4, что добавляет 24 байта к каждому пакету.В результате получается два пакета GRE + IPv4sec по 1500 (1476 + 24 = 1500) и 68 (44 + 24) байтов каждый.
  4. IPv4sec шифрует два пакета, добавляя к каждому 52 байта (туннельный режим IPv4sec) служебных данных инкапсуляции, чтобы получить 1552-байтовый и 120-байтовый пакет.
  5. 1552-байтовый пакет IPv4sec фрагментирован маршрутизатором, поскольку он превышает исходящий MTU (1500). Пакет размером 1552 байта разделяется на части: пакет размером 1500 и 72 байта (52 байта «полезная нагрузка» плюс дополнительный 20-байтовый заголовок IPv4 для второго фрагмента).Три пакета: 1500-байтовые, 72-байтовые и 120-байтовые пакеты пересылаются одноранговому узлу IPv4sec + GRE.
  6. Принимающий маршрутизатор повторно собирает два фрагмента IPv4sec (1500 байтов и 72 байта), чтобы получить исходный 1552-байтовый пакет IPv4sec + GRE. С 120-байтовым пакетом IPv4sec + GRE ничего делать не нужно.
  7. IPv4sec расшифровывает как 1552-байтовые, так и 120-байтовые пакеты IPv4sec + GRE, чтобы получить 1500-байтовые и 68-байтовые пакеты GRE.
  8. GRE декапсулирует 1500-байтовые и 68-байтовые пакеты GRE, чтобы получить 1476-байтовые и 44-байтовые фрагменты пакета IPv4.Эти фрагменты пакета IPv4 пересылаются на хост назначения.
  9. Хост 2 повторно собирает эти фрагменты IPv4, чтобы получить исходную 1500-байтовую дейтаграмму IPv4.

Сценарий 10 аналогичен сценарию 8, за исключением того, что в пути туннеля используется канал с меньшим значением MTU. Это наихудший сценарий для первого пакета, отправленного с хоста 1 на хост 2. После последнего шага в этом сценарии хост 1 устанавливает правильный PMTU для хоста 2, и все в порядке для TCP-соединений между хостом 1 и хостом 2.Потоки TCP между хостом 1 и другими хостами (достижимыми через туннель IPv4sec + GRE) должны будут пройти только три последних шага сценария 10.

В этом сценарии команда tunnel path-mtu-discovery настроена для туннеля GRE, а бит DF установлен для пакетов TCP / IPv4, исходящих от хоста 1.

Сценарий 10

  • Маршрутизатор получает пакет размером 1500 байт. Этот пакет отбрасывается GRE, поскольку GRE не может фрагментировать или пересылать пакет, поскольку установлен бит DF, а размер пакета превышает исходящий интерфейс «ip mtu» после добавления служебных данных GRE (24 байта).
  • Маршрутизатор отправляет ICMP-сообщение узлу 1, чтобы сообщить ему, что MTU следующего перехода составляет 1476 (1500–24 = 1476).
  • Хост 1 изменяет свой PMTU для хоста 2 на 1476 и отправляет меньший размер при повторной передаче пакета. GRE инкапсулирует его и передает пакет размером 1500 байт в IPv4sec. IPv4sec отбрасывает пакет, потому что GRE скопировала бит DF (установленный) из внутреннего заголовка IPv4, а из-за служебных данных IPv4sec (максимум 38 байтов) пакет слишком велик для пересылки через физический интерфейс.
  • IPv4sec отправляет сообщение ICMP в GRE, которое указывает, что MTU следующего прыжка составляет 1462 байта (поскольку для шифрования и служебных данных IPv4 будет добавлено максимум 38 байтов). GRE записывает значение 1438 (1462–24) как «ip mtu» на туннельном интерфейсе.
  • Примечание : Это изменение значения хранится внутри и не может быть замечено в выходных данных команды show ip interface tunnel <#> . Вы увидите это изменение, только если включите команду debug tunnel .
  • В следующий раз, когда узел 1 повторно передает 1476-байтовый пакет, GRE отбрасывает его.
  • Маршрутизатор отправляет сообщение ICMP узлу 1, которое указывает, что 1438 — это MTU следующего перехода.
  • Хост 1 понижает PMTU для хоста 2 и повторно передает 1438-байтовый пакет. На этот раз GRE принимает пакет, инкапсулирует его и передает IPv4sec для шифрования. Пакет IPv4sec пересылается на промежуточный маршрутизатор и отбрасывается, поскольку его MTU исходящего интерфейса составляет 1400.
  • Промежуточный маршрутизатор отправляет сообщение ICMP в IPv4sec, которое сообщает ему, что MTU следующего перехода составляет 1400.Это значение записывается IPv4sec в значение PMTU связанной IPv4sec SA.
  • Когда узел 1 повторно передает 1438-байтовый пакет, GRE инкапсулирует его и передает IPv4sec. IPv4sec отбрасывает пакет, потому что он изменил свой PMTU на 1400.
  • IPv4sec отправляет ошибку ICMP в GRE, которая указывает, что MTU следующего перехода составляет 1362, и GRE записывает значение 1338 внутренне.
  • Когда узел 1 повторно передает исходный пакет (поскольку он не получил подтверждения), GRE отбрасывает его.
  • Маршрутизатор отправляет ICMP-сообщение узлу 1, в котором указано, что MTU следующего перехода составляет 1338 (1362–24 байта). Хост 1 снижает значение PMTU для хоста 2 до 1338.
  • Хост 1 повторно передает 1338-байтовый пакет, и на этот раз он наконец может пройти весь путь до хоста 2.

Дополнительные рекомендации

Настройка команды tunnel path-mtu-discovery на туннельном интерфейсе может помочь взаимодействию GRE и IPv4sec, если они настроены на одном маршрутизаторе.Помните, что без настроенной команды tunnel path-mtu-discovery бит DF всегда будет сброшен в заголовке GRE IPv4. Это позволяет фрагментировать пакет GRE IPv4, даже если в заголовке IPv4 инкапсулированных данных установлен бит DF, который обычно не позволяет фрагментировать пакет.

Если на туннельном интерфейсе GRE настроена команда tunnel path-mtu-discovery , это произойдет.

  1. GRE скопирует бит DF из заголовка данных IPv4 в заголовок GRE IPv4.
  2. Если бит DF установлен в заголовке IPv4 GRE и пакет будет «слишком большим» после шифрования IPv4sec для MTU IPv4 на физическом исходящем интерфейсе, то IPv4sec отбросит пакет и уведомит туннель GRE, чтобы уменьшить его MTU IPv4. размер.
  3. IPv4sec выполняет PMTUD для своих собственных пакетов, и если PMTU IPv4sec изменяется (если он уменьшается), то IPv4sec не сразу уведомляет GRE, но когда приходит другой «слишком большой» пакет, происходит процесс на шаге 2.
  4. MTU IPv4

  5. GRE теперь меньше, поэтому он отбрасывает все пакеты данных IPv4 с установленным битом DF, которые теперь слишком велики, и отправляет сообщение ICMP на отправляющий хост.

Команда tunnel path-mtu-discovery помогает интерфейсу GRE динамически устанавливать MTU IPv4, а не статически с помощью команды ip mtu . На самом деле рекомендуется использовать обе команды. Команда ip mtu используется для предоставления места для служебных данных GRE и IPv4sec относительно MTU IPv4 локального физического исходящего интерфейса. Команда tunnel path-mtu-discovery позволяет дополнительно уменьшить MTU IPv4 туннеля GRE, если на пути между одноранговыми узлами IPv4sec имеется канал с меньшим значением MTU IPv4.

Вот некоторые из действий, которые вы можете сделать, если у вас есть проблемы с PMTUD в сети, где настроены туннели GRE + IPv4sec.

Этот список начинается с наиболее желательного решения.

  1. Исправьте проблему с неработающим PMTUD, которая обычно вызывается маршрутизатором или брандмауэром, блокирующим ICMP.
  2. Используйте команду ip tcp adjust-mss на интерфейсах туннеля, чтобы маршрутизатор уменьшил значение TCP MSS в пакете TCP SYN.Это поможет двум конечным хостам (отправителю и получателю TCP) использовать пакеты, достаточно маленькие, так что PMTUD не нужен.
  3. Используйте политику маршрутизации на входном интерфейсе маршрутизатора и настройте карту маршрутов, чтобы очистить бит DF в заголовке данных IPv4, прежде чем он попадет в интерфейс туннеля GRE. Это позволит фрагментировать пакет данных IPv4 перед инкапсуляцией GRE.
  4. Увеличьте «ip mtu» на туннельном интерфейсе GRE, чтобы он был равен MTU исходящего интерфейса. Это позволит инкапсулировать пакет данных IPv4 в GRE без предварительной его фрагментации.Затем пакет GRE будет зашифрован IPv4sec, а затем фрагментирован для выхода через физический исходящий интерфейс. В этом случае вы не должны настраивать команду tunnel path-mtu-discovery на интерфейсе туннеля GRE. Это может значительно снизить пропускную способность, поскольку повторная сборка пакетов IPv4 на одноранговом узле IPv4sec выполняется в режиме коммутации процессов.

Связанная информация

.

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

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