ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопасность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

14 минут чтени€

ѕочитать лекцию є21 про беспроводную св€зь по 802.11 можно тут.

¬ предыдущих лекци€х мы рассмотрели два примера передачи данных вида point-to-point по физическим носител€м. ¬ этих лекци€х будут рассмотрены четыре примера передачи данных вида end-to-end. Ќа рисунке 1 показана Recursive Internet Architecture (RINA).

ѕримеры транспортного протокола, функци€ протокола и RINA

 онечно, не каждый транспортный протокол точно сопоставл€етс€ с одним функциональным слоем в RINA, но сопоставление достаточно близко, чтобы быть полезным. √лавное, что нужно запомнить-дл€ каждого транспортного протокола есть четыре вопроса, которые вы можете задать:

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

 аждый из этих вопросов может включать р€д дополнительных вопросов, таких как определение Maximum Transmission Unit (MTU), обеспечение репликации пакетов дл€ многоадресной рассылки и т. д.

¬ этих лекци€х будут рассмотрены четыре протокола:

  • »нтернет-протокол (IP), который обеспечивает нижнюю половину второй пары слоев. ќсновное внимание при рассмотрении IP удел€етс€ схеме адресации дл€ мультиплексировани€ и способности обеспечивать единый способ передачи данных дл€ множества различных физических транспортных систем.
  • ѕротокол управлени€ передачей (TCP), который обеспечивает одну версию верхней половины второй пары уровней. TCP обеспечивает управление ошибками и потоками, а также место дл€ переноса информации о мультиплексировании дл€ приложений и других протоколов, которые работают поверх TCP.
  • ѕротокол Quick User Datagram Protocol Internet Connections (QUIC), который обеспечивает другую версию верхней половины второй пары уровней. QUIC очень похож на TCP по своим функци€м, но имеет некоторые существенные отличи€ от TCP в том, как он работает.
  • ѕротокол управл€ющих сообщений »нтернета (ICMP).

Internet Protocol (IP)

»нтернет-протокол (IP) был первоначально задокументирован в серии документов спецификации »нтернет-протокола, называемых IEN, в середине 1970-х годов, в основном написанных Jonathan B. Postel. ¬ этих документах описан протокол TCP, который при первоначальном развертывании включал в себ€ функции, содержащиес€ в двух протоколах, IP и TCP. Postel отметил, что такое сочетание функциональности в едином протоколе не очень хорошо;

јдресное пространство IPv4 представл€ет собой 32-битное целое число без знака, что означает, что оно может нумеровать или адресовать 232 устройства - около 4,2 миллиарда устройств. «вучит много, но на самом деле все иначе по нескольким причинам:

  •  аждый адрес представл€ет один интерфейс, а не одно устройство. ‘актически, IP-адреса часто используютс€ дл€ представлени€ службы или виртуального хоста (или машины), что означает, что одно устройство часто будет использовать более одного IP-адреса.
  • Ѕольшое количество адресов тер€етс€ в процессе агрегации.

¬ начале 1990-х стало очевидно, что в »нтернете скоро закончатс€ адреса в адресном пространстве IPv4; диаграммы, изображенные на рисунке 2, показывают изменение свободных и доступных IPv4 с течением времени, начина€ с середины 1990-х годов.

ƒиаграммы количества доступных адресов с течением времени

ѕростым решением этой ситуации было бы расширение адресного пространства IPv4 дл€ охвата большего количества устройств, но опыт работы с протоколом IPv4 привел к тому, что группа Internet Engineering Task Force (IETF) вз€ла на себ€ более крупную задачу: перепроектировать IPv4. –абота по замене началась в 1990 году, а первые проекты получили статус стандарта в 1998 году. јдресное пространство IPv6 содержит 2128 адресов, или примерно 3,4 × 1038.

IPv6 предназначен дл€ предоставлени€ услуг дл€ нескольких различных протоколов, таких как TCP и QUIC. “аким образом, IPv6 предоставл€ет только две службы из четырех, необходимых дл€ передачи данных по сети: транспорт, который включает маршалинг данных, и мультиплексирование.


“ранспорт и ћаршалинг

IP обеспечивает "базовый уровень", на котором работает широкий спектр протоколов более высокого уровн€ по множеству различных типов физических каналов. ƒл€ этого IP должен решить две проблемы:

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

„тобы создать единый протокол, на котором могут работать все протоколы верхнего уровн€, IP должен "вписыватьс€" в тип кадра многих различных типов протоколов физического уровн€.

–€д проектов описывает, как запустить IP поверх определенного физического уровн€, включа€ сети MPEG-2, асинхронный режим передачи, оптические сети, протокол Point-to-Point (PPP), Vertical Blanking Interval (VBI) в телевидении, Fiber Distributed Data Interface (FDDI), и р€д других протоколов физического уровн€. Ёти проекты в значительной степени определ€ют, как переносить IP-дейтаграмму (или пакет) в кадре (или пакете) нижележащего физического уровн€, и как включить межуровневое обнаружение, такое как протокол разрешени€ адресов (ARP), дл€ работы с каждым типом носител€.

IP также должен определ€ть, как переносить большие блоки данных через различные MTU, доступные на разных типах физических каналов. ¬ то врем€ как исходна€ спецификаци€ Ethernet выбирала MTU в 1500 октетов дл€ баланса между большими размерами пакетов и максимальным использованием канала, многие другие физические уровни были разработаны с большими MTU.  роме того, приложени€ не склонны отправл€ть информацию аккуратными блоками размером с MTU. IP решает эти две проблемы, обеспечива€ фрагментацию. Ќа рисунке 3 это показано.

‘рагментаци€ в IPv6

≈сли приложение (или протокол более высокого уровн€) передает 2000 октетов данных дл€ передачи в IP, реализаци€ IP будет:

  • ќпределите MTU вдоль пути, по которому должны передаватьс€ данные; обычно это происходит путем считывани€ настроенного значени€ или значени€ по умолчанию, установленного системным программным обеспечением.
  • –азбейте информацию на несколько фрагментов, основыва€сь на MTU минус прогнозируемый размер заголовков, включа€ заголовки туннелей и т. д.- метаданные, которые должны передаватьс€ вместе с данными.
  • ќтправьте первый фрагмент с дополнительным заголовком IPv6 (что означает, что заголовок фрагмента не должен быть включен в пакеты, которые не €вл€ютс€ фрагментами большего блока данных).
  • ”становите смещение в заголовке more fragments на первый октет исходного блока данных, который этот пакет представл€ет собой деление на 8; в ѕримере на рисунке 3 первый пакет имеет смещение 0, а второй-150 (1200/8).
  • ”становите бит more fragments равным 0, если это последний фрагмент блока данных, и 1, если за ним следует больше фрагментов.

Ётот размер общего блока данных, который IPv6 может переносить через фрагменты, ограничен размером пол€ смещени€, которое составл€ет 13 бит. —ледовательно, IPv6 может нести не более 214 октетов данных в виде последовательности фрагментов или блока данных размером около 65 536 октетов плюс один фрагмент размером с MTU. ¬се, что больше этого, должно быть каким-то образом разбито протоколом более высокого уровн€ перед передачей в IPv6 дл€ транспортировки.

Ќаконец, IP должен обеспечивать какой-то способ передачи пакетов по сети, использующей более одного типа физического уровн€. Ёто решаетс€ путем перезаписи заголовков нижнего уровн€ на каждом этапе в сети, где могут быть взаимосв€заны несколько типов мультимедиа. ”стройства, которые переписывают заголовки нижнего уровн€ таким образом, изначально назывались шлюзами, но теперь обычно называютс€ маршрутизаторами, поскольку они направл€ют трафик на основе информации, содержащейс€ в заголовке IP.

≈сть и другие интересные аспекты того, как IPv6 передает данные. Ќа рисунке 4 показан заголовок IPv6, с которым можно работать.

Ќа рисунке 4:

  • ¬ерси€ установлена на 6 дл€ IPv6.
  • traffic class разделен на два пол€: 6 бит дл€ передачи типа услуги (или класса услуги), 2 бита дл€ передачи уведомлени€ о перегрузке.
  • flow label предназначена дл€ указани€ устройствам пересылки, как хранить пакеты в одном потоке на одном и том же пути в наборе путей с многолучевым распространением с равной стоимостью (ECMP).
  • payload length указывает количество данных, переносимых в пакете, в октетах.
  • next header предоставл€ет информацию о любых дополнительных заголовках, содержащихс€ в пакете. «аголовок IPv6 может содержать информацию, выход€щую за рамки того, что содержитс€ в основном заголовке.
  • hop limit - это количество раз, когда этот пакет может быть "обработан" сетевым устройством, прежде чем он будет отброшен. Ћюбой маршрутизатор (или другое устройство), перезаписывающий заголовки нижнего уровн€, должен уменьшить это число на единицу в процессе пересылки; когда предел перехода достигает 0 или 1, пакет следует отбросить.
‘ормат заголовка IPv6
¬ажно! —четчик скачков используетс€ дл€ предотвращени€ посто€нного зацикливани€ пакета в сети.  аждый раз, когда пакет пересылаетс€ сетевым устройством, счетчик переходов уменьшаетс€ на единицу. ≈сли счетчик переходов достигает 0, пакет отбрасываетс€. ≈сли пакет зацикливаетс€ в сети, счетчик переходов (также называемый временем жизни или TTL) в конечном итоге будет уменьшен до 0, и пакет будет отброшен.

«аголовок IPv6 представл€ет собой смесь переменной (Type Length Value [TLV]) и информации фиксированной длины. ќсновной заголовок состоит из полей фиксированной длины, но следующее поле заголовка оставл€ет открытой возможность дополнительных (или расширенных) заголовков, некоторые из которых форматируютс€ как TLV. Ёто позвол€ет создавать пользовательские аппаратные средства (например, прикладную интегральную схему [ASIC]) дл€ быстрого переключени€ пакетов на основе полей фиксированной длины, оставл€€ открытой возможность переноса данных переменной длины, которые могут быть обработаны только в программном обеспечении.


ћультиплексирование

IPv6 позвол€ет мультиплексировать двум€ способами:

  • ѕредоставл€€ большое адресное пространство дл€ использовани€ при идентификации хостов и сетей (или, в более широком смысле, достижимых пунктов назначени€).
  • ѕредоставл€€ пространство, в которое протокол верхнего уровн€ может поместить номер протокола, что позвол€ет нескольким протоколам работать поверх IPv6.

јдресаци€ IPv6

јдрес IPv6 имеет 128 битов, что означает, что может быть до 2128 адресов - огромное количество адресов, которых, возможно, хватит, чтобы сосчитать каждую крупицу пыли на «емле. јдрес IPv6 обычно записываетс€ как последовательность шестнадцатеричных чисел, а не как последовательность из 128 нулей и единиц, как показано на рисунке 5.

IPv6 адрес

¬ формате IPv6 адреса стоит отметить двоеточие:

  • Ќачальные нули в каждом разделе (выделены двоеточием) опускаютс€.
  • ќдну длинную строку нулей можно заменить двойным двоеточием в адресе только один раз.

ѕочему так много адресов? ѕотому что многие адреса никогда не используютс€ ни в одной схеме адресации.

¬о-первых, многие адреса никогда не используютс€, потому что адреса агрегируютс€. јгрегаци€ - это использование одного префикса (или сети, или достижимого пункта назначени€) дл€ представлени€ большего числа достижимых пунктов назначени€. –исунок 6 иллюстрирует это.

Ќа рисунке 6:

  • ’остам A и B даны 101 :: 1 и 101 :: 2 в качестве их адресов IPv6. ќднако эти два хоста подключены к одному широковещательному сегменту (например, Ethernet) и, следовательно, используют один и тот же интерфейс в C. ƒаже если C имеет адрес в этой общей сети, он фактически объ€вл€ет саму сеть - некоторые инженеры считают это полезно думать о самом проводе как о достижимом пункте назначени€: 101 :: / 64.
  • E получает два достижимых назначени€, 101::/64 от C и 102::/64 от D. ”меньша€ длину префикса, он может анонсировать одно достижимое назначение, которое включает в себ€ оба этих более длинных префиксных достижимых назначени€. E рекламирует 100:: / 60.
  • G, в свою очередь, получает 100 :: / 60 от E и 110: / 60 от F. ќп€ть же, это же адресное пространство может быть описано с помощью единственного достижимого пункта назначени€, 100 :: / 56, так что это то, что G объ€вл€ет.
јгрегаци€ адресов в IPv6

 ак эта агрегаци€ работает в реальном адресном пространстве? –исунок 7 объ€сн€ет это.

ƒлина префикса, котора€ представл€ет собой число после косой черты в reachable destination, сообщает вам количество битов, которые учитываютс€ при определении того, что €вл€етс€ частью префикса (и, следовательно, также, что нет). ƒлина префикса отсчитываетс€ слева направо. Ћюбой набор адресов с одинаковыми значени€ми чисел в пределах длины префикса считаетс€ частью одного и того же reachable destination.

  • ¬ полном адресном пространстве IPv6 128 бит, поэтому / 128 представл€ет один хост.
  • ¬ адресе с 64-битной длиной префикса (/ 64) только четыре левых раздела IPv6-адреса €вл€ютс€ частью префикса или reachable destination; остальные четыре правые части IPv6-адреса считаютс€ адресами хоста или подсети, которые "содержатс€" в префиксе.
  • ¬ адресе с длиной префикса 60 бит (/ 60) четыре левых раздела IPv6-адреса минус одна шестнадцатерична€ цифра считаютс€ частью reachable destination или префикса.
  • ¬ адресе с длиной префикса 56 бит (/ 56) четыре левых раздела IPv6-адреса минус две шестнадцатеричные цифры считаютс€ частью reachable destination или префикса.
јгрегаци€ и доступные пункты назначени€ (Reachable Destinations) в адресации IPv6

ѕока вы всегда измен€ете длину префикса с шагом 4 (/ 4, / 8, / 12, / 16 и т. ƒ.), значащие цифры или цифры, которые €вл€ютс€ частью префикса, всегда будут перемещать единицу в вправо (при увеличении длины префикса) или влево (при уменьшении длины префикса).

јгрегаци€ иногда кажетс€ сложной, но это важна€ часть IP.

Ќекотора€ часть адресного пространства используетс€ при автоконфигурации. ¬ажно учитывать взаимодействие между автоконфигурацией и назначением адреса IPv6.  ак правило, необходимо выделить некоторый объем адресного пространства, чтобы гарантировать, что никакие два устройства, подключенные к сети, не будут иметь одинаковый идентификатор. ¬ случае IPv6 половина адресных пространств (все, что больше / 64) в определенных диапазонах адресов выдел€етс€ дл€ формировани€ уникальных идентификаторов дл€ каждого устройства.

¬-третьих, некоторые адреса зарезервированы дл€ специального использовани€. Ќапример, в IPv6 следующие адресные пространства предназначены дл€ специального использовани€:

  • ::ffff / 96 зарезервирован дл€ IPv4-адресов, которые "сопоставл€ютс€" с адресным пространством IPv6.
  • fc00 :: / 7 зарезервирован дл€ уникальных локальных адресов (ULA); пакеты с этими адресами не предназначены дл€ маршрутизации в глобальном »нтернете, а скорее хран€тс€ в сети одной организации.
  • fe80::/10 выделен дл€ локальных адресов св€зи; эти адреса автоматически назначаютс€ на каждом интерфейсе и используютс€ только дл€ св€зи по одному физическому или виртуальному каналу св€зи.
  • :: / 0 устанавливаетс€ в качестве маршрута по умолчанию; если сетевое устройство не знает никакого другого способа добратьс€ до определенного пункта назначени€, оно будет перенаправл€ть трафик по маршруту по умолчанию.

¬-четвертых, устройствам может быть присвоено несколько адресов. ћногие сетевые администраторы склонны думать об адресе так, как если бы он описывал один узел или систему. Ќа самом деле, один адрес может быть использован дл€ описани€ многих вещей, в том числе:

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

Ќе существует необходимой пр€мой коррел€ции между адресом и физическим устройством или между адресом и физическим интерфейсом.


ћультиплексирование между процессами

¬торой механизм мультиплексировани€ позвол€ет нескольким протоколам работать на одном и том же базовом уровне. Ёта форма мультиплексировани€ обеспечиваетс€ через номера протоколов. –исунок 8 демонстрирует это.

next header заголовка либо указывает на:

  • next header в пакете IPv6, если есть next header
  • Ќомер протокола, если next header €вл€етс€ транспортным протоколом (например, TCP).
Ќомер протокола в IPv6

Ёти дополнительные заголовки называютс€ дополнительными или расширенными заголовками; некоторые из них имеют фиксированную длину, а другие основаны на TLV; например:

  • ѕараметрах Hop-by-hop: набор TLV, описывающих действи€, которые должно предприн€ть каждое устройство пересылки.
  • ћаршрутизации: набор типов маршрутов фиксированной длины, используемых дл€ указани€ пути, по которому пакет должен пройти через сеть.
  • ‘рагмент: набор полей фиксированной длины, содержащий информацию о фрагменте пакета.
  • «аголовок аутентификации: набор TLV, содержащих информацию аутентификации и / или шифровани€.
  • Jumbogram: необ€зательное поле длины данных, позвол€ющее пакету IPv6 нести на один байт менее 4 √Ѕ данных.

next header имеет длину 8 бит, что означает, что оно может содержать число от 0 до 255.  аждое число в этом диапазоне присваиваетс€ либо определенному типу заголовка опции, либо конкретному протоколу более высокого уровн€. Ќапример:

  • 0: next header -это опци€ IPv6 hop-by-hop.
  • 1: ѕолезна€ нагрузка пакета - это протокол Internet Control Message Protocol (ICMP).
  • 6: ѕолезна€ нагрузка пакета-TCP.
  • 17: ѕолезна€ нагрузка пакета - это UDP.
  • 41: ѕолезна€ нагрузка пакета-IPv6.
  • 43: next header - это routing header IPv6
  • 44: next header -это fragment header IPv6
  • 50: next header -это Encapsulated Security Header (ESH).

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