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

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

Ёто перва€ стать€ цикла. ѕродолжение: 2 часть

ѕлоскость данных

Ќачнем с того, что основна€ задача сети-перенос данных с одного подключенного хоста на другой. Ёто может показатьс€ простым на первый взгл€д, но на самом деле это чревато проблемами. «десь может быть полезна иллюстраци€; рисунок є 1 используетс€ дл€ иллюстрации сложности проблемы.

–ис. 1 ѕространство проблем плоскости данных

Ќачина€ с верхнего левого угла иллюстрации:

  1. ѕриложение генерирует некоторые данные. Ёти данные должны быть отформатированы таким образом, чтобы принимающее приложение могло пон€ть, что было передано, - данные должны быть упор€дочены. ћеханизм, используемый дл€ упор€дочени€ данных, должен быть эффективным во многих отношени€х, включа€ быстрое и простое кодирование, быстрое и простое декодирование, достаточно гибкий, чтобы можно было вносить изменени€ в кодирование, не наруша€ слишком много вещей, и добавл€ть наименьшее количество накладных расходов, возможных во врем€ передача данных.
  2. —етевое программное обеспечение должно инкапсулировать данные и подготовить их к фактической передаче.  аким-то образом сетевое программное обеспечение должно знать адрес хоста назначени€. —еть, котора€ соедин€ет источник и пункт назначени€, €вл€етс€ общим ресурсом, и, следовательно, должна быть доступна некотора€ форма мультиплексировани€, чтобы источник мог направл€ть информацию в правильный пункт назначени€.  ак правило, это будет св€зано с определенной формой адресации.
  3. ƒанные должны быть перемещены из пам€ти в источнике и непосредственно в сеть - фактический провод (или оптический кабель, или беспроводное соединение), который будет передавать информацию между устройствами, подключенными к сети.
  4. —етевые устройства должны иметь какой-то способ обнаружить конечный пункт назначени€ информации - вторую форму проблемы мультиплексировани€ - и определить, требуетс€ ли кака€-либо друга€ обработка информации, когда она находитс€ в пути между источником и пунктом назначени€.
  5. »нформаци€, прошедша€ через сетевое устройство, должна быть снова закодирована и перенесена из пам€ти в провод. ¬ любой точке, где информаци€ перемещаетс€ из пам€ти в какую-либо форму физического носител€, информаци€ должна быть поставлена в очередь; часто бывает больше данных дл€ передачи, чем может быть помещено на любой конкретный физический носитель в любой момент времени. «десь в игру вступает качество услуг.
  6. »нформаци€, передаваема€ по сети, теперь должна быть скопирована с физического носител€ и обратно в пам€ть. ќн должен быть проверен на наличие ошибок - это контроль ошибок - и у приемника должен быть какой-то способ сообщить передатчику, что ему не хватает пам€ти дл€ хранени€ вход€щей информации - это контроль потока.

ќсобый интерес представл€ет сетевое устройство в середине диаграммы. —етевое устройство-например, маршрутизатор, коммутатор или middle boxЧсоедин€ет два физических носител€ вместе дл€ построени€ реальной сети. ¬озможно, самый простой вопрос дл€ начала заключаетс€ в следующем: зачем вообще нужны эти устройства? ћаршрутизаторы и коммутаторы Ч это, очевидно, сложные устройства со своей собственной внутренней архитектурой и зачем добавл€ть эту сложность в сеть? ≈сть две фундаментальные причины.

ѕервоначальна€ причина создани€ этих устройств заключалась в соединении различных видов физических носителей вместе. Ќапример, внутри здани€ может быть практично работать ARCnet или thicknet Ethernet (приведены примеры из времени, когда были впервые изобретены сетевые устройства). –ассто€ние, которое эти носители могли преодолеть, однако, очень мало-пор€дка сотни метров.  аким-то образом эти сети должны быть расширены между здани€ми, между кампусами, между городами и, в конечном счете, между континентами, использу€ своего рода мультиплексированную (или обратную мультиплексированную) телефонную сеть, такую как T1 или DS3. Ёти два различных типа носителей используют различные виды сигналов; должно быть какое-то устройство, которое переводит один вид сигналов в другой.

¬тора€ причина заключаетс€ в следующем Ч это масштаб и это стало проблемой. ѕрирода физического мира такова, что у вас есть два варианта, когда дело доходит до передачи данных по проводу:

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

„тобы решить проблему первым способом, нужно много проводов. –ешение проблемы вторым способом кажетс€ очевидным решением, но оно представл€ет другой набор проблем - в частности, как пропускна€ способность, доступна€ по проводам, распредел€етс€ между всеми устройствами? ¬ какой-то момент, если на одном общем носителе достаточно устройств, люба€ схема, используема€ дл€ обеспечени€ совместного использовани€ ресурсов, сама по себе будет потребл€ть столько же или больше пропускной способности, как любое отдельное устройство, подключенное к проводу. ¬ какой-то момент даже 100-гигабайтное соединение, разделенное между достаточным количеством хостов, оставл€ет каждому отдельному хосту очень мало доступных ресурсов.

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

≈сть и другие сложные проблемы, которые необходимо решить в этом пространстве, помимо простого переноса информации из источника в пункт назначени€; ¬о многих случа€х полезно иметь возможность виртуализировать сеть, что обычно означает создание туннел€ между двум€ устройствами в сети.

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

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

Ќа некоторые из этих вопросов давным-давно был дан ответ. — другой стороны, некоторые из этих вопросов все еще актуальны, особенно последний.


 оммутаци€ каналов

ѕервое большое обсуждение в мире компьютерных сетей было то, должны ли сети быть с коммутацией каналов или с коммутацией пакетов. ќсновное различие между этими двум€ пон€ти€ми заключаетс€ в концепции схемы: нужно ли передатчику и приемнику Ђвидетьї сеть как один провод или соединение, предварительно сконфигурированное (или настроенное) с определенным набором свойств прежде чем они начнут общатьс€? »ли они Ђвид€тї сеть как общий ресурс, где информаци€ просто генерируетс€ и передаетс€ Ђпо желаниюї? ѕервый считаетс€ с коммутацией каналов, а второй считаетс€ с коммутацией пакетов.  оммутаци€ каналов имеет тенденцию обеспечивать больший поток трафика и гарантии доставки, в то врем€ как коммутаци€ пакетов обеспечивает доставку данных при гораздо меньших затратах - первый из многих компромиссов, с которыми вы столкнетесь при проектировании сетей. –исунок 2 будет использован дл€ иллюстрации коммутации каналов с использованием мультиплексировани€ с временным разделением (TDM) в качестве примера.

–ис. 2.  оммутаци€ каналов на основе мультиплексировани€ с временным разделением

Ќа рисунке 2 обща€ пропускна€ способность каналов между любыми двум€ устройствами разделена на восемь равных частей; A отправл€ет данные E, использу€ временной интервал A1 и F, использу€ временной интервал A2; B отправл€ет данные в E с использованием временных интервалов B1 и F с использованием временных интервалов B2.  аждый фрагмент информации имеет фиксированную длину, поэтому каждый из них может быть помещен в один временной интервал в текущем потоке данных (следовательно, каждый блок данных представл€ет фиксированное количество времени или интервала в проводе). ѕредположим, что где-то есть контроллер, назначающий слот в каждом из сегментов, через которые будет проходить трафик:

  • ƒл€ трафика [A, E]:
    • Ќа C: слот 1 от A переключен на слот 1 в направлении D
    • Ќа D: слот 1 от C переключен на слот 1 в направлении E
  • ƒл€ трафика [A, F]:
    • Ќа C: слот 4 от A переключен на слот 4 в направлении D
    • Ќа D: слот 4 от C переключен на слот 3 в направлении F
  • ƒл€ трафика [B, E]:
    • Ќа C: слот 4 от B переключен на слот 7 в направлении D
    • Ќа D: слот 7 от C переключен на слот 4 в направлении E
  • ƒл€ трафика [B, F]:
    • Ќа C: слот 2 от B переключен на слот 2 в направлении D
    • Ќа D: слот 2 от C переключен на слот 1 в направлении F

Ќи одно из устройств обработки пакетов в сети не должно знать, какой бит данных идет куда; до тех пор, пока C берет все, что находитс€ в слоте 1 в потоке данных A в каждом временном интервале, и копирует его в слот 1 в своем исход€щем потоке в направлении D, ј D копирует его из слота 1 вход€щего из C в слот 1 исход€щего в E, трафик, передаваемый A, будет доставл€тьс€ в E. ≈сть интересный момент, который следует отметить об этом виде обработки трафикаЧдл€ пересылки трафика ни одно из устройств в сети на самом деле не должно знать, что €вл€етс€ источником или назначением. Ѕлоки данных, передаваемые по сети, не об€зательно должны содержать адреса источника или назначени€; куда они направл€ютс€ и откуда поступают, все решени€ основываютс€ на знании контроллерами открытых слотов в каждом канале. Ќабор слотов, назначенных дл€ любой конкретной св€зи между устройствами, называетс€ схемой, потому что это пропускна€ способность и сетевые ресурсы, выделенные дл€ св€зи между одной парой устройств.

ќсновные преимущества сетей с коммутацией каналов включают в себ€:

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

≈сть и недостатки, в том числе:

  • —ложность контроллера значительно возрастает по мере того, как сеть и услуги, которые она предлагает, растут в масштабе. Ќагрузка на контроллер может стать подавл€ющей, фактически вызыва€ перебои в работе сети.
  • ѕропускна€ способность на каждом канале используетс€ не оптимально. Ќа рис. 1-3 блоки времени (или €чейки), содержащие*, по существу €вл€ютс€ потер€нной полосой пропускани€. —лоты назначаютс€ определенной схеме заранее: слоты, используемые дл€ трафика [A, E], не могут быть Ђзаимствованыї дл€ трафика [A, F], даже если A ничего не передает в сторону E.
  • ¬рем€, необходимое дл€ реагировани€ на изменени€ в топологии, может быть довольно длительным с точки зрени€ сети; локальное устройство должно обнаружить изменение, сообщить о нем контроллеру, и контроллер должен перенастроить каждое сетевое устройство вдоль пути каждого затронутого потока трафика.

—истемы TDM внесли р€д идей в развитие сетей, используемых сегодн€. ¬ частности, системы TDM сформировали большую часть ранних дискуссий о разбиении данных на пакеты дл€ передачи по сети и заложили основу дл€ гораздо более поздней работы в области QoS и управлени€ потоком. ќдна довольно важна€ иде€, которую эти ранние системы TDM завещали большему сетевому миру, - это network planes.

¬ частности, системы TDM дел€тс€ на три плоскости:

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

 оммутаци€ пакетов

¬ начале-середине 1960-х годов коммутаци€ пакетов находилась в состо€нии Ђin the airї. ћного людей переосмысливали то, как сети были построены, и рассматривали альтернативы парадигме коммутации каналов. Paul Baran, работавший в RAND Corporation, предложил сеть с коммутацией пакетов в качестве решени€ дл€ обеспечени€ живучести; примерно в то же врем€ Donald Davies в ¬еликобритании предложил такой же тип системы. Ёти идеи попали в Lawrence Livermore Laboratory, что привело к созданию первой сети с коммутацией пакетов (названной Octopus), введенной в эксплуатацию в 1968 году. ARPANET, экспериментальна€ сеть с коммутацией пакетов, начала функционировать вскоре после этого, в 1970 году.

—ущественное различие между коммутацией каналов и коммутацией пакетов заключаетс€ в роли отдельных сетевых устройств в передаче трафика, как показано на рис.3. Ќа рисунке 3, A создает два блока данных.  аждый из них включает в себ€ заголовок, описывающий, как минимум, пункт назначени€ (представлен H в каждом блоке данных). Ётот полный пакет информации - исходный блок данных и заголовок - называетс€ пакетом. «аголовок также может описывать, что находитс€ внутри пакета, и может включать любые специальные инструкции по обработке, которые устройства пересылки должны принимать при обработке пакета - их иногда называют метаданными или Ђданными о данных в пакетеї.

–ис. 3 —еть с коммутацией пакетов

≈сть два пакета, произведенных A: A1, предназначенный дл€ E; и A2, предназначенный дл€ F. B также отправл€ет два пакета: B1, предназначенный дл€ F, и B2, предназначенный дл€ E.  огда C получает эти пакеты, он считывает небольшую часть заголовка пакета, часто называемого полем, чтобы определить место назначени€. «атем C обращаетс€ к локальной таблице, чтобы определить, по какому исход€щему интерфейсу должен быть передан пакет. D делает то же самое, перенаправл€€ пакет из правильного интерфейса к месту назначени€.

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

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

—ети с коммутацией пакетов могут использовать централизованную плоскость управлени€, а сети с коммутацией каналов могут использовать распределенные плоскости управлени€. ¬ то врем€, когда сети с коммутацией пакетов были впервые спроектированы и развернуты, однако они обычно использовали распределенные плоскости управлени€. Software-Defined Networks (SDN) вернули концепцию централизованных плоскостей управлени€ в мир сетей с коммутацией пакетов.

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

¬торым преимуществом сети с коммутацией пакетов по сравнению с сетью с коммутацией каналов €вл€етс€ то, как сеть с коммутацией пакетов использует пропускную способность. ¬ сети с коммутацией каналов, если конкретна€ схема (действительно временной интервал в приведенном примере TDM) не используетс€, то слот просто тратитс€ впустую. ѕри переадресации hop-by-hop каждое устройство может наилучшим образом использовать пропускную способность, доступную на каждом исход€щем канале, чтобы нести необходимую нагрузку трафика. ’от€ это локально сложнее, это проще глобально, и это позвол€ет лучше использовать сетевые ресурсы.

ќсновным недостатком сетей с коммутацией пакетов €вл€етс€ дополнительна€ сложность, особенно в процессе пересылки.  аждое устройство должно быть в состо€нии прочитать заголовок пакета, найти пункт назначени€ в таблице, а затем переслать информацию на основе результатов поиска в таблице. ¬ раннем аппаратном обеспечении это были сложные, трудоемкие задачи; коммутаци€ каналов была обычно быстрее, чем коммутаци€ пакетов. ѕоскольку со временем аппаратное обеспечение усовершенствовалось, то скорость переключени€ пакета переменной длины, как правило, достаточно близка к скорости переключени€ пакета фиксированной длины, так что между пакетной коммутацией и коммутацией каналов небольша€ разница.


”правление потоками в сет€х с коммутацией пакетов

¬ сети с коммутацией каналов контроллер выдел€ет определенную полосу пропускани€ дл€ каждого канала, назнача€ временные интервалы от источника до назначени€. „то происходит, если передатчик хочет отправить больше трафика, чем выделенные временные интервалы будут поддерживать? ќтвет Ч прост-это невозможно. ¬ некотором смысле, таким образом, возможность управл€ть потоком пакетов через сеть встроена в сеть с коммутацией каналов; и нет способа отправить больше трафика, чем может передать сеть, потому что Ђпространствої, которое имеет передатчик в своем распор€жении дл€ отправки информации, предварительно выдел€етс€.

ј как насчет сетей с коммутацией пакетов? ≈сли все звень€ сети, показанные на рис. 3, имеют одинаковую скорость соединени€, что произойдет, если и ј, и ¬ захот€т использовать всю пропускную способность соединени€ в направлении —?  ак C решит, как отправить все это в D по каналу св€зи, который пропускает вдвое меньше трафика, необходимого дл€ обработки? «десь можно использовать методы управлени€ транспортными потоками.  ак правило, они реализованы в виде отдельного набора протоколов / правил, Ђдвижущихс€ поверхї базовой сети, помога€ Ђорганизоватьї передачу пакетов путем создани€ виртуального канала между двум€ взаимодействующими устройствами.

ѕротокол управлени€ передачей (TCP) обеспечивает управление потоком дл€ сетей с коммутацией пакетов на основе »нтернет-протокола (IP). Ётот протокол был впервые указан в 1973 году Vint Cerf и Bob Kahn.