Блог
Как устроена цифровая сеть
Как работает цифровая сеть? Понять это очень просто – нужно просто припомнить, работу самой обычной почтовой службы с газетами, письмами, посылками.
IP-адреса, макеты, сокеты
Давайте представим, что мы хотим отправить письмо нашему другу, который живёт в другом городе. Для этого мы берём почтовый конверт, указываем на нём адрес нашего друга и наш собственный адрес, кладём письмо в конверт и относим его на почту. Письмо проходит через несколько почтовых отделений и в итоге доставляется в ближайшее отделение к нашему другу. В конце концов, наше письмо оказывается у него. Когда наш друг решает ответить, он просто меняет адреса отправителя и получателя и отправляет письмо обратно.
IP-сеть действует аналогично. Вместо письма мы отправляем данные с нашего компьютера на компьютер, допустим, нашего друга. Эти данные упаковываются в цифровой конверт – в терминологии называемый «пакет». Перед отправкой пакету также присваивается адрес доставки, только в этом случае он называется IP-адрес.
Каждый IP-адрес состоит из четырёх чисел от 0 до 255, например, 192.168.0.10. Как и в городе, каждое устройство в сети должно иметь уникальный IP-адрес. Пакет находит указанный компьютер по IP-адресу, но это ещё не всё.
Обмен данными происходит между программами, работающими на компьютерах, поэтому пакет должен найти не столько компьютер, сколько соответствующую программу-получатель. По этой причине к IP-адресу пакета добавляют еще несколько цифр, являющиеся дополнительным номером, соответствующий выбранной программе. Этот номер называют портом.
Таким образом, пакет выглядит следующим образом: 192.168.0.10:80, где 80 — номер порта, который определяет, какая программа должна получить этот пакет.
Полный IP-адрес выглядит таким образом.

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

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

Сочетание IP-адреса и порта, например, 192.168.0.10:80, называется «сокетом». Таким образом, мы отправляем пакет с сокета 192.168.0.5:80 на сокет 192.168.0.10:54120.
Узел — это любое устройство в сети. К узлам относятся компьютеры, IP-камеры и коммутаторы.
Сети, маска подсети, маршрутизация
Как пересылается информация от одного устройства к другому? Опять для примера возьмем бумажную почту. Локальная сеть похожа на почтовую службу небольшого города. Нам, предположим, очень захотелось отправить открытку товарищу, живущему на улице по соседству. Что делаем? Передаем открытку работникам почты, а они, посмотрев на адрес, сразу определяют, где искать требуемый дом и куда наше послание нужно отнести.

В локальной сети коммутатор (switch) функционирует как почтовое отделение, определяя компьютер-получатель пакета и отправляя данные на соответствующий порт. Порт в данном контексте — это физический разъём коммутатора, к которому подсоединяется сетевое устройство.

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

Устройства, работающие в разных сетях, могут иметь одинаковые IP-адреса, подобно тому, как в разных городах могут существовать улицы с похожими названиями.
Адрес нашей открытки состоит из двух частей: страны и индекса, указывающих на ближайшее почтовое отделение для получателя, а также улицы, дома и квартиры для непосредственной доставки письма адресату. Аналогично IP-адрес делится на две части: адрес сети и адрес хоста (компьютера). Например, IP-адрес 10.130.16.12 можно разделить следующим образом: 10.130.16 — адрес сети, а 12 — адрес хоста.
Передача данных между сетями осуществляется маршрутизатором, который не осведомлён о хостах, а коммутация между хостами выполняется коммутатором, который, в свою очередь, не знает об адресах сетей.
Хост является общим названием для каждого устройства в сети – это может быть и сервер, и IP-камера.
Подведем небольшой итог. Передача данных между устройствами в одной сети возможна через коммутатор, в то время как для обмена данными между устройствами из разных сетей требуется маршрутизатор. Определение принадлежности устройства к сети осуществляется на основе IP-адреса.
Маска подсети
Допустим, IP-адрес вашего компьютера – 192.168.1.154. Если изменить третье число (вместо «1» поставить, например, «2»), останется неясным, будет ли компьютер относиться к этой сети или нет.
Чтобы определить принадлежность компьютера к сети, используется понятие «маска подсети». Например, маска подсети 255.255.255.0 указывает, что первые три числа полностью определяют сеть, а последнее число (от 0 до 255) определяет адрес в сети.
В вашем случае все адреса от 192.168.1.0 до 192.168.1.255 будут относиться к одной сети. Однако адрес 192.168.2.0 будет принадлежать другой сети, и подключение к нему возможно только через маршрутизатор.

Функциональная схема IP видеонаблюдения
Если маска подсети задана как 255.255.0.0, то первые два числа определяют сеть, а вторые два — хост. В такой сети доступно не 256 адресов, как в предыдущем примере, а 65 536 адресов — от 192.168.0.0 до 192.168.255.255. Если же указать маску подсети, например, 255.255.255.192, то в этом сегменте будет доступно только 64 уникальных IP-адреса — от 192.168.0.0 до 192.168.0.63. Количество доступных адресов следует рассчитывать на этапе проектирования сети.
Иногда маску подсети указывают вместе с IP-адресом через косую черту. Например, 192.168.0.1/24 означает адрес 192.168.0.1 с маской подсети 255.255.255.0. Конкретные значения можно найти в справочнике или рассчитать с помощью специальных калькуляторов.
Для разделения сетей на подсети есть 2 причины.
1. Повышение производительности: если сложную сеть разделить на подсети, то можно сконцентрировать основной трафик внутри отдельных подсетей, что снизит нагрузку на всю сеть в целом.
2. Повышение безопасности: при разделении сети компьютеры попадают в разные подсети, поэтому они не могут напрямую обмениваться данными. Для этого им требуется маршрутизатор или шлюз, через который будет проходить весь трафик.
DNS и DDNS
Чтобы отправить запрос компьютеру, нам нужно знать его IP-адрес. Однако запомнить эти цифры обычному человеку сложно. Гораздо проще запоминать текстовые названия. Поэтому был создан специальный инструмент, который преобразует текстовые имена и доменные имена в IP-адреса. Этот инструмент называется DNS (Domain Name System) или сервис доменных имён.
Принцип его работы прост: когда мы вводим в браузере адрес www.google.com, компьютер связывается с DNS-сервером и спрашивает: «Какой IP-адрес соответствует www.google.com?» DNS-сервер проверяет свои таблицы и отвечает: «74.125.224.81». Затем наш браузер отправляет запрос на указанный IP-адрес.
Кроме DNS, существует ещё один сервис — DDNS (Dynamic DNS) или динамический сервис доменных имён. Он связывает меняющийся IP-адрес с постоянным доменным именем, что позволяет получать доступ к серверу по его имени, даже если его реальный IP-адрес постоянно меняется.

Разветвленная система видеонаблюдения. Фото с сайта ihomesystems.ru
Уровни OSI
Передача данных в сети также напоминает общение между людьми. Оба процесса можно рассматривать с разных точек зрения. Например, основой разговора служат звуки. Если расширить фокус, то станет ясно, что люди общаются не звуками, а словами. Если углубиться ещё больше, то люди говорят на определённом языке. То есть они следуют определённым правилам использования слов и построения предложений. Это и есть уровни механизма разговора.
В сети существуют аналогичные уровни, называемые уровнями модели OSI (базовой модели взаимодействия открытых систем). Их всего семь:
1. Физический уровень. Сетевые устройства взаимодействуют с помощью электрических, оптических или радиосигналов. Модель OSI определяет необходимые частоты и амплитуды сигналов.
2. Канальный уровень. Сигналы между сетевыми устройствами преобразуются в логические нули и единицы и объединяются в «кадры», подобно тому, как звуки преобразуются в буквы, а затем в слова при общении.
3. Сетевой уровень. Кадры упаковываются в IP-пакеты, которым затем присваиваются IP-адреса получателей. Таким образом, сетевые устройства обмениваются не просто электрическими сигналами, а данными. Хотя в основе всего, конечно, по-прежнему лежат сигналы.
4. Транспортный уровень. Правила и механизмы этого уровня определяют, как устройства будут обмениваться IP-пакетами. Например, протокол TCP определяет, что перед отправкой пакетов необходимо установить соединение. После установки соединения он будет следить за доставкой пакетов.
5. Дальше идут сеансовый, представительский и прикладной уровни, которые определяют правила общения между программами.
MAC-адрес
Допустим, у новой установленной цифровой камеры еще нет IP-адреса, поэтому отправить ей запрос и получить на него ответ невозможно. Иными словами, с ней нельзя работать на сетевом уровне, уровне сетевых пакетов. Чтобы настроить на камере сетевой адрес, необходимо спуститься на канальный уровень.
На низком канальном уровне существует собственная система адресации, позволяющая обнаруживать устройства в рамках одной локальной сети. Эта система основана на физическом адресе сетевой карты, известном как MAC-адрес (или Ethernet-адрес). Этот адрес уникален и присваивается сетевому устройству при производстве, имея вид 00-BC-DF-83-AB-F7. С помощью MAC-адреса можно отправлять запросы устройствам без использования IP-адреса.
Кроме адресов отдельных устройств, существует широковещательный MAC-адрес FF-FF-FF-FF-FF-FF, который не принадлежит никакому конкретному устройству, но при отправке запроса на него информация передаётся сразу всем устройствам в сети.
При добавлении новых IP-камер в сеть сначала необходимо назначить им IP-адреса. Для этого можно использовать утилиту, обычно входящую в комплект. Эта программа обычно отправляет широковещательный запрос на адрес FF-FF-FF-FF-FF-FF, и все камеры данного производителя отвечают своими данными. В результате все подключённые камеры отображаются в виде списка MAC-адресов, и теперь можно присвоить каждой из них уникальный IP-адрес.
Важно помнить, что передача на канальном уровне, то есть по MAC-адресам, работает только в пределах одной локальной сети. Если наши камеры находятся в разных сетях, поиск нужно производить по очереди, подключаясь к каждой сети отдельно.