Сетевой уровень может разбить пакет данных на несколько частей и отправить их разными маршрутами. Поэтому части одного пакета могут быть доставлены не по порядку. Транспортный уровень как раз и решает такие проблемы. Осуществляется это при помощи функционала двух протоколов TCP и UDP.
Уровень 5. Уровень приложения
Этот уровень отвечает уже за передачу «полезных» данных через сеть, с которыми непосредственно имеют дело приложения и программное обеспечение.
Итак, зачем же нам знать все эти уровни и их функционал? Дело в том, что если мы хотим передать что-то через сеть, то прежде нам необходимо выполнить определенные условия, которые регламентирует группа протоколов TCP/IP.
Одно из таких условий – это обязательное использование для каждого клиента сети IP адреса (Internet Protocol Address). Напрашивается резонный вопрос, зачем же использовать дополнительный параметр адреса, если каждое сетевое устройство уже имеет уникальный адрес MAC? Не будем углубляться во все особенности, скажу лишь только, что благодаря IP адресам в нашей сети появляется возможность ее организации, что очень важно, когда мы создаем сложную сеть с определенными правилами. К тому же в отличие от MAC адреса, одно устройство может иметь несколько адресов IP. Какие бывают IP адреса и как их настроить, мы разберем позже.
Кстати, существуют такие типы протоколов, которые используют для подключения только MAC адрес, к примеру, транспортный протокол NetBEUI. Это довольно быстрый протокол, но его главным недостатком является то, что он полностью не маршрутизируемый.
Следующее условие. Для передачи данных мы должны использовать UDP или TCP протокол. По сути, и первый, и второй тип протокола занимается тем, что обеспечивает корректную передачу данных. Но в чем же их отличие?
Принцип работы UDP основан на том, что при отправке данных сервер не беспокоится о том, получил ли клиент эти данные или нет. Он просто отправляет пакет за пакетом в сеть. Отличительная особенность UDP протокола в том, что он очень быстрый.
При использовании протокола TCP клиент сначала должен подключиться к серверу, создав виртуальное подключение. После этого сервер может передать данные клиенту. После получения данных клиентом он отвечает серверу, что пакет данных принят корректно, в противном случае сервер отправляет пакет данных повторно. После завершения сеанса связи клиент должен обязательно корректно отключиться от сервера. Эта схема занимает больше времени на передачу данных, но при этом она более надежна, так как сервер получает обратную связь от клиента.
Но как бы ни был надежен TCP протокол, UDP намного шире используется в шоу-индустрии. Самый яркий пример – это ArtNet протокол, который базируется на UDP. Световой консоли нет необходимости беспокоиться о том, получил ли необходимый пакет данных один из десятка артгейтов. Консоли более важно отправлять пакеты данных в реальном времени для всех участников. И если по какой-то причине один пакет был доставлен некорректно, то это будет менее заметно, чем если все артгейты будут ждать, пока один из клиентов получит корректный пакет. И последнее условие – это использование TCP или UDP портов для передачи или приема данных. Так как потоков данных для одного клиента может быть большое количество, то для того, чтобы эти потоки не перемешивались и были независимы, каждый поток использует свой входящий или исходящий порт, через которые идет обмен данными. Номер порта в UDP и TCP идентифицируется одним числом. Оно может быть в диапазоне от 1 до 65535. Приложение, которое хочет получить или отправить данные, обращается к необходимому TCP или UDP порту. Некоторые порты зарезервированы системой для служебного пользования, и программы пользователя не могут использовать эти порты. К примеру, протокол ArtNet использует порт 6454.
Теперь давайте немного пофантазируем и представим работу курьерской службы и вокзала. Это поможет нам более наглядно понять принцип работы TCP и UDP.
Вокзал имеет свой уникальный адрес местонахождения: город, улица, номер дома – как IP адрес компьютера. На этот вокзал постоянно приходят поезда, как пакеты данных, которые передаются по Ethernet. В поездах приезжают курьеры, работающие на конкретную компанию, которая в свою очередь имеет жесткий протокол отправления и доставки посылок, как протоколы TCP/IP.
В этом протоколе прописано, что каждый посыльный должен доставлять посылку в отделение своей компании и в конкретное окно приема посылок, каждое окно имеет свой номер, так же, как номер порта UDP или TCP. По итогу посыльный доставляет посылку в конкретное отделение и в конкретное окно с конкретным номером. В отделении этой компании много окон, так как заказчиков, которые хотят получить свои посылки, тоже немало. Когда заказчик хочет получить на руки свою посылку, он приходит в отделение компании и обращается в окно с конкретным номером, к которому он прикреплен. Также поступают и программы на компьютере, когда они хотят прочитать данные с конкретного UDP или TCP порта. Если в окне что-то есть для заказчика, то служащий выдает посылку.
Теперь, когда данные получены программой, наступает следующий этап. Расшифровка данных. Когда заказчик открывает посылку, он ожидает увидеть там, скажем, письмо, которое состоит из букв и знаков препинания, с помощью которых закодировано сообщение. Чтобы его прочитать, заказчик должен знать язык, на котором это письмо написано. Языки кодирования регламентируют протоколы высокого уровня, как, например, ArtNet, sACN, OSC, RTP-MIDI. Наш заказчик – англичанин, и если письмо написано на английском языке, то он сможет прочитать сообщение, написанное в письме. То же самое и с программным обеспечением: если программа понимает язык ArtNet, то, получив пакет данных, закодированных протоколом ArtNet, она сможет прочитать и извлечь данные о DMX уровнях.
Теперь давайте познакомимся с методами передачи данных, которые основываются на IP адресах.
Существует три распространенных метода, которые имеют место быть в шоу-индустрии: Unicast, Multicast и Broadcast.
Сразу уточню, методов больше и их принципы отличны. Но так как это уже более специализированное направление, которое не имеет точек соприкосновения с нашей индустрии, то информацию о них вы можете найти в более специализированной литературе.
Самый простой метод передачи. В этом методе пакеты данных передаются уникально, т.е. от клиента сети к клиенту. Такой пакет данных может быть передан только одному устройству. Сетевые свитчи (принцип, который мы разберем чуть позже), получая такой пакет данных, переправят его на физический порт конкретного устройства, которое должно получить эти данные.
Широковещательный метод передачи данных, где один пакет данных передается всем участникам сети (или подсети), в независимости от их адреса. По этому принципу очень часто работает протокол ArtNet. Для этого метода в каждом уровне диапазона сетей зарезервирован адрес 255.
Какие бывают подсети и как они ограничиваются, мы разберем чуть позже, когда будем знакомиться с таким понятием, как маска подсети, но уже сейчас я хочу привести пример широковещательных адресов для сети 10.0.0.0, для понимания идеи диапазона широковещания. Ниже я постараюсь избегать терминологии, с которой мы еще не познакомились.
Итак, если отправить пакет данных на адрес 10.0.0.255, его получат все устройства, чей адрес начинается на 10.0.0.x.
Если отправить пакет данных на адрес 10.0.255.255, его получат все устройства, чей адрес начинается на 10.0.x.x.
Если отправить пакет данных на адрес 10.255.255.255, его получат все устройства, чей адрес начинается на 10.x.x.x.
И последний, самый широковещательный адрес – это 255.255.255.255, пакет данных, отправленный на этот адрес, получат все устройства в сети.
Зачастую в консолях управления уже предустановлено системой, насколько широко может открываться вещание того или иного протокола. В частности, хорошо знакомого нам ArtNet.
Технология, которая реже используется в шоу-индустрии и обычно скрыта в управлении от пользователя.
Особенность этого протокола заключается в том, что эта технология подразумевает передачу пакетов данных только тем клиентам, которые сами подписались на получение этих данных.
Для этой технологии передачи данных зарезервирован диапазон адресов 224.0.0.0 – 239.255.255.255.
Один адрес этого диапазона определяет мультикаст-группу. Каждое устройство, которое хочет получать пакеты данных, относящиеся к этой группе, подписывается на эту мультикаст-группу, декларируя в сеть эту информацию. Сетевые свитчи и роутеры регистрируют эти запросы, и когда один из клиентов отправляет данные на мультикаст адрес, свитчи и роутеры рассылают эти данные только тем клиентам, которые подписались на эту группу.
Unicast и Multicast технологии являются более совершенными по сравнению с Broadcast, так как они позволяют разгрузить сеть, не создавая лишних маршрутов, и при этом клиенты, подписываясь или отписываясь от мультикаст-групп вещания, сами решают, получать данные или нет.
Сетевое оборудование
Чтобы построить сеть, нам необходимо иметь то, что должно участвовать в сети. Это могут быть контроллеры, компьютеры, смартфоны, планшеты, консоли управления и многое, многое другое. Давайте разберем простейший пример, в котором у нас есть четыре компьютера.
Итак, чтобы каждый компьютер мог стать участником сети, он должен иметь сетевую карту. Зачастую все компьютеры уже имеют встроенные сетевые карты, за исключением некоторых компактных ноутбуков, где сетевой разъем убирают для экономии места. К примеру, Mac Book новых моделей толщиной меньше, чем сам разъем Ethernet. Для таких компьютеров есть специальные переходники с Thunderbolt и USB на Ethernet.
Большинство сетевого оборудования использует физический интерфейс стандарта RJ-45. Кстати, существует путаница с названием сетевых разъемов и коннекторов. RJ-45 – это имя стандарта, который описывает конструкцию обеих частей разъема (вилки и розетки) и схемы их коммутации. В то время как сам сетевой разъем имеет имя 8P8C (8 Position 8 Contact).
Сетевые карты бывают разные. Основная характеристика, которая нас должна интересовать, – это скорость передачи и приема данных. Она измеряется в максимальном количестве данных в битах, передаваемых за одну секунду. На данный момент существуют такие скорости, как 10Mbps (Megabit per second), 100Mbps, 1Gbps (Gigabit per second), 2,5Gbps, 5Gbps, 10Gbps, 40Gbps, 100Gbps и 160Gbps. Самые распространенные и часто используемые скорости в оборудовании и сетевых картах – это 100Mbps и 1Gbps. Скорости выше одного гигабита в секунду, это уже более профессиональные стандарты для передачи огромных объемов данных. Для этих скоростей нужны особые сетевые карты и сетевые кабели подходящего стандарта.
С сетевыми картами определились, теперь как подключить в сеть сразу три и более компьютеров? Если бы была необходимость подключить в сеть только два устройства, то нам бы понадобился один сетевой кабель, который бы просто подключили между двумя сетевыми картами. Но давайте подключим четыре компьютера, которые должны стать участниками одной сети. Чтобы соединить их, необходим коммутатор. Существуют разные модели таких устройств, которые отличаются скоростью портов, их количеством и другими особенностями, но я бы хотел выделить три основные типа таких коммутаторов и определить их различия.
Схема подключения клиентов
Первый тип – Ethernet Hub. Хаб представляет из себя простейшее сетевой устройство, которое дублирует все свои порты между собой. Это своего рода сетевой сплиттер. Получив пакет данных с одного порта, хаб дублирует этот пакет на все остальные. Вот и все. Но это плохо, потому что, даже если пакеты данных предназначаются только для одного клиента, то хаб отправит эти пакеты всем клиентам. Это загружает порты и самое главное сеть! Хорошая новость, что простые хабы практически уже не встречаются, так как они попросту, морально устарели.
Следующий тип коммутаторов – это Ethernet Switch. Свитч внешне никак не отличим от хаба, но это уже более умное устройство. Оно позволяет грамотно организовать нашу сеть. При включении свитч опрашивает все свои порты и знает, на каком порте какое устройство и с каким адресом находиться. Что это нам дает? Когда на определенный порт свитча приходит пакет, который предназначается для конкретного адреса, свитч отправляет этот пакет на конкретный порт, где находится адресат. При такой схеме сеть работает намного рациональнее и быстрее.
Но также не могу не затронуть еще одну очень важную особенность свитчей. Существует два типа свитчей: Managed и Unmanaged. Unmanaged более распространены на рынке. Это значит, что такие свитчи не настраиваемы, в них уже предустановлены основные настройки, которые позволяют работать сразу с сетью. Второй тип – Managed, чтобы запустить в работу такой свитч, сначала его необходимо настроить. Такие свитчи работают на более высоком уровне. Они понимают, с какими протоколами работают, могут фильтровать данные или блокировать. Такие свитчи имеют довольно широкий функционал для конкретных задач. Но для работы с такими свитчами нужно иметь более высокий уровень знаний построения сетей и уметь программировать оборудование конкретного производителя. Если у вас таких знаний нет, то я советую использовать неуправляемые свитчи, так как для того чтобы запустить его в работу, вам нужно только подключить его к питанию!
И последний тип коммутаторов – Router. Роутер по своему функционалу похож на настраиваемый свитч, его отличие в том, что он помогает настроить правила общения между двумя и более физическими сетями. Самое распространенное использование роутеров – организация сети между глобальной сетью интернет (WAN3) и локальной сетью (LAN4). Роутер может подключиться к сети интернет по определенным правилам, но при этом создать независимую сеть для локальных пользователей, и также передавать пакеты данных между этими сетями. Также зачастую роутеры имеют службу DHCP (Dynamic Host Configuration Protocol), которая позволяет автоматически раздавать IP адреса клиентам без участия пользователя. О ней мы поговорим чуть позже. Также большинство бытовых роутеров имеют встроенную беспроводную точку доступа Wi-Fi.
Резюмируя особенности всех типов коммутаторов, хочу сказать, что самый надежный тип коммутаторов – не настраиваемые свитчи, так как вы точно можете быть уверенными, что ваши данные дойдут до клиента, и никакие правила и настройки роутеров или управляемых свитчей не смогут заблокировать ваши пакеты данных.
Сетевые настройки
Итак, физически мы подключили четыре компьютера в одну сеть. Теперь второй шаг, нужно настроить сетевую карту на каждом компьютере. Современные сетевые карты настолько автономны, что они сами «дружатся» с оборудованием, которое подключено на другом конце кабеля, будь то другой компьютер или маршрутизатор. Но тем не менее есть настройки, которые необходимо сделать пользователю. А именно указать каждой сетевой карте хотя бы один уникальный IP адрес в локальной сети. Как мы помним, это обязательное условие, которое регламентирует группа протоколов TCP/IP.
Кстати, возвращаясь к различиям между хабом и свитчем, можно еще раз сказать, что в случае с хабом отправленный пакет данных получат все компьютеры, даже с другими IP адресами. Когда такой пакет приходит постороннему компьютеру, сетевая карта должна сначала расшифровать заголовок пакета и понять, ей ли предназначается этот пакет данных. Когда сетевая карта понимает, что этот пакет данных предназначается не для нее, она просто очищает свой буфер памяти, который только что получил этот пакет данных, и готова принимать следующие данные. Но на это требуется время и вычислительные ресурсы сетевой карты. Что не рационально. В случае со свитчем, когда он получает пакет данных, он читает заголовок сообщения и, так как он уже знает, на каком физическом порте сидит клиент с этим IP адресом, свитч перенаправляет этот пакет данных конкретному клиенту с конкретным IP адресом. В то время как все остальные клиенты не расшифровывают чужие сообщения и готовы принимать пакеты, которые предназначены конкретно для них!
Вернемся к IP адресу сетевой карты. На данный момент существуют две версии IP адресов, IPv6 и IPv4, разница между ними в количестве байт, выделяемых для идентификации адреса или, говоря простым языком, они различаются длиной адреса. Пример IPv4 адреса: 192.168.1.100. Пример IPv6 адреса: FE:BA:76:32:FE:BA:76:32. Вы можете спросить, для чего же придумали более сложную версию IP адресов? Дело в том, что когда на свет появилась глобальная сеть интернет, никто даже не мог себе представить, что объема адресов IPv4 формата может не хватить для всех потребностей глобальной сети, ведь в этом формате мы можем идентифицировать 4,22 миллиарда уникальных адресов.
Но цифровой прогресс рос с огромной скоростью, и количество устройств в сети интернет с каждым годом росло в геометрической прогрессии! Адресов стало не хватать, и тогда ввели новую версию формата IPv6, благодаря которому можно задать 34*1037 адресов! Но так как мы зачастую настраиваем нашу личную локальную сеть, вероятность того, что мы исчерпаем лимит адресов IPv4 стремится практически к нулю, поэтому вполне достаточно использование более простой версии IP адреса.
Довольно теории, давайте уже перейдем к практике, а именно к непосредственной настройке адресов. На разных консолях, устройствах и контролерах интерфейс настройки IP адреса выглядит по-разному в зависимости от каждого производителя. Я предлагаю рассмотреть самые распространенные опции, которые предоставляют операционные системы Windows и MAC OS.
Окно настройки сетевой карты системы MAC OS
Окно настройки сетевой карты системы Windows
Ниже мы с вами затронем настройки таких параметров сетевой карты, как IP адрес, маска подсети (Subnet mask), Router (Defaulte gateway) и DNS Server.
Начнем с IP адреса. Возникает вопрос, какой диапазон адресов необходимо выбрать для наших устройств в сети? На самом деле, он может быть каким угодно, но все же стоит придерживаться правил, которые устанавливает всемирная организация IANA (Internet Assigned Numbers Authority). Функционал этой организации очень широк, но одна из ее задач – следить за тем, чтобы не было хаоса с адресами в сети интернет. Поэтому они четко регламентировали диапазоны адресов для локальных сетей. Ниже представлены эти диапазоны.
10.0.0.0 – 10.255.255.255
172.16.0.0 – 172.31.255.255
192.168.0.0 – 192.168.255.255
Раньше в этом списке был также диапазон адресов 2.x.x.x, но позже IANA исключила его из списка допустимых адресов локальных сетей. Вы можете выбрать любой из этих диапазонов и устанавливать адреса для ваших устройств и компьютеров, главное только, чтобы диапазон был один и тот же.
Но также немаловажная настройка сетевой карты – маска подсети! Я встречаюсь довольно часто с ситуацией, когда многие специалисты не знают, для чего вообще это нужно! Давайте разберемся. Итак, маска подсети позволяет нам разделить в пределах одного адресного диапазона сеть на несколько независимых подсетей. Разберем на примере.
Возьмем адресное пространство 10.x.x.x. Если мы хотим максимально закрыть нашу сеть, мы устанавливаем маску подсети 255.255.255.0. В этом случае, если мы хотим, чтобы наши компьютеры были в одной подсети и могли друг друга видеть, то их IP адреса должны иметь одинаковые первые три цифры адреса. К примеру, 10.0.0.x. Диапазон адресов нашей подсети будет составлять от 10.0.0.1 до 10.0.0.255. Но если в этом случае один из компьютеров будет иметь IP адрес 10.0.1.87, то он будет находиться в другой подсети (10.0.1.1—10.0.1.255), и для первой подсети он будет не виден.
Как же сделать четвертый компьютер видимым для всех остальных компьютеров? Есть два способа. Первый способ – ввести четвертый компьютер в адресное пространство подсети
10.0.0.x. Для этого нужно изменить IP адреса четвертого компьютера, к примеру, на 10.0.0.87. Обратите внимание, мы просто изменили третью цифру адреса с единицы на ноль.
Или второй способ – расширить нашу подсеть так, чтобы старый адрес четвертого компьютера попадал в нашу подсеть. Для этого достаточно на всех компьютерах расширить маску подсети, поменяв ее с 255.255.255.0 на 255.0.0.0. Теперь диапазон IP адресов нашей подсети составляет от 10.0.0.1 до 10.255.255.255. В этом случае, как мы можем видеть, IP адрес четвертого компьютера 10.0.1.87 попадает в диапазон адресов нашей подсети.
Вообще, я всегда рекомендую максимально открывать вашу рабочую подсеть, потому что в этом случае у вас меньше шансов ошибиться с настройкой IP адресов, и вы с легкостью сможете поднять вашу сеть без долгих согласований IP адресов.
Для начала работы локальной сети сетевой карте достаточно указать только IP адрес и маску подсети. Возникает вопрос, для чего же в сетевой карте присутствуют другие параметры адресов?
Зачастую рабочая локальная сеть изолирована от глобальной сети (интернет). Но в случаях, когда нашей сети необходима возможность доступа к глобальной сети, мы вынуждены познакомиться с еще двумя такими параметрами, как Router (Gateway) и DNS Server.
Как мы уже узнали, для корректной связи между собой двух независимых сетей используются роутеры, которые по определенным правилам перенаправляют пакеты данных из одной сети в другую. Когда локальный компьютер хочет отправить пакет данных на компьютер за пределами локальной сети, т.е. который находится в глобальной сети интернет, то компьютер отправляет такой пакет данных на роутер, а он в свою очередь знает, куда необходимо перенаправить данные. Любое взаимодействие с глобальной сетью интернет из локальной сети и обратно всегда происходит через сетевой роутер.
В настройках сетевой карты, в параметре Router указывается адрес роутера, на который будут отправляться и с которого будут приниматься все пакеты данных глобальной сети интернет. Многие меня спрашивают, что будет, если мы укажем неверный адрес роутера или укажем в этом параметре IP адрес локального компьютера или вообще в нашей сети нет роутера? Все очень просто, на работу локальной сети это никак не повлияет. Если мы укажем в параметре Router несуществующий адрес, то попросту пакеты данных, предназначенные для выхода в глобальную сеть, будут уходить в никуда, и локальный компьютер никогда не получит ответ. Если мы укажем в параметре Router адрес другого компьютера или даже свой собственный, то компьютер, получая запросы и данные, попросту будет их игнорировать, так как он не будет знать, что с ними делать, исключая те случаи, когда на компьютере запущена специальная служба, которая занимается перенаправлением пакетов данных в глобальную сеть. Ведь функционал роутера может быть реализован не только на внешнем устройстве. Когда вопрос стоит больших вычислительных мощностей, на базе компьютеров создаются серверы, выполняющие задачи перенаправления пакетов данных.
Теперь давайте перейдем к следующему параметру сетевой карты. При создании любого интернет сайта ему присваивается уникальный IP адрес, благодаря которому к сайту можно получить доступ. Чтобы пользователям не пришлось запоминать IP адреса всех сайтов, придумали доменные имена, при помощи которых также можно получить доступ к интернет сайту.
DNS – Domain Name System – «система доменных имен», это некая база, в которой хранятся ассоциации всех имен и IP адресов сайтов. Когда мы вводим в адресной строке имя интернет сайта, то DNS позволяет получить IP адрес сайта, чтобы его открыть. В настройках сетевой карты можно указать либо IP адрес одного из глобальных DNS серверов, либо адрес роутера, который будет заниматься получением адресов DNS сервера. Указание ошибочных или несуществующих адресов DNS никак не скажется на работоспособности локальной сети, но при этом не позволит получать доступ к интернет сайтам в глобальной сети.
Итак, для того чтобы клиент локальной сети имел доступ к глобальной сети интернет, в настройках сетевой карты должны быть указаны корректные адреса Router и DNS Server. В случае, когда активирована служба DHCP, эти адреса устанавливаются автоматически.