paint-brush
Памятка по проектированию системы: Сетик@gavr
10,101 чтения
10,101 чтения

Памятка по проектированию системы: Сети

к Aleksandr Gavrilenko10m2023/09/29
Read on Terminal Reader
Read this story w/o Javascript

Слишком долго; Читать

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

People Mentioned

Mention Thumbnail
featured image - Памятка по проектированию системы: Сети
Aleksandr Gavrilenko HackerNoon profile picture

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


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


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

Типы

Сети можно разделить на четыре типа в зависимости от размера, архитектуры, диапазона и функции:


  • Персональная сеть (PAN) : предназначена для личного использования, обычно в пределах досягаемости человека. Он может подключать такие устройства, как компьютер, смартфон и умные часы, часто через Bluetooth.


  • Локальная сеть (LAN ): соединяет устройства в пределах ограниченной территории, например дома, офиса или школы. Обычно он используется для подключения компьютеров и совместного использования ресурсов, таких как принтеры или подключения к Интернету, в пределах ограниченной географической области.


  • Городская сеть (MAN): охватывает большую территорию, чем локальная сеть, но меньше, чем глобальная сеть, обычно охватывает город или большой кампус. Местные поставщики услуг часто используют его для подключения к предприятиям и домам в городе.


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

Компоненты


Построение и обслуживание сетей было бы невозможно без специализированных аппаратных устройств:


  • Кабельная и беспроводная точка доступа . Физические кабели (например, Ethernet) обеспечивают проводное соединение между устройствами, а точки беспроводного доступа позволяют устройствам подключаться к сети без физических кабелей, используя Wi-Fi или другие беспроводные технологии.


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


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


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


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


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


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

Топологии

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


  • Физический : описывает физическое расположение устройств, кабелей и других сетевых компонентов. Он показывает, как физически подключены сетевые устройства.


  • Логический : описывает поток данных внутри сети, независимо от ее физической конструкции. Он показывает, как данные передаются между сетевыми устройствами.


Выделяют следующие типы топологий:


Точка-точка

Прямое соединение между двумя узлами или конечными точками. Это простейшая форма топологии сети.



Преимущества :

  • Прямой выделенный канал обеспечивает высокоскоростную передачу данных.

  • Простая конфигурация и настройка.

  • Надежная связь, поскольку задействованы только два узла.


Недостатки :

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


Автобус

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





Преимущества :

  • Легко реализовать для небольших сетей.

  • Экономичность благодаря минимальному количеству кабелей.


Недостатки :

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


Кольцо


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






Преимущества :

  • Он может обрабатывать большие объемы данных, чем топология шины.


Недостатки :

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


Звезда



Все устройства подключены к центральному устройству (например, коммутатору или концентратору).







Преимущества :

  • Простота установки и управления.
  • Выход из строя одного кабеля не влияет на другие устройства.


Недостатки :

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

Дерево



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






Преимущества :

  • Иерархический и масштабируемый.

  • Группировка устройств упрощает управление.


Недостатки :

  • Сбой в магистральной сети приведет к разделению сети.
  • Требуется больше кабелей, чем в других топологиях.

сетка


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







Преимущества :

  • Обеспечивает высокую избыточность и надежность.

  • Данные могут передаваться с нескольких устройств одновременно.


Недостатки :

  • Это требует большего количества кабелей, что делает его дорогим.
  • Сложный в установке и настройке.

Гибридный



Комбинация двух или более топологий.








Преимущества :

  • Гибкость и надежность, поскольку она наследует преимущества топологий своих компонентов.

  • Масштабируемый.


Недостатки :

  • Сложный дизайн.
  • Это может быть дороже из-за нескольких конфигураций.

Протоколы

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

Общие протоколы

  • TCP/IP : основной набор протоколов, обеспечивающих работу Интернета. TCP гарантирует правильную отправку данных, а IP обеспечивает отправку данных в правильное место.
  • UDP : протокол без установления соединения, который, в отличие от TCP, не устанавливает соединение перед отправкой данных и не гарантирует порядок пакетов данных.
  • HTTP, HTTPS: протоколы, используемые для передачи веб-страниц в Интернете. HTTPS включает меры безопасности для шифрования данных.
  • FTP : протокол, предназначенный для передачи файлов по сети.
  • SMTP : используется для передачи электронной почты.
  • IMAP : используется для получения и хранения электронной почты с почтового сервера.
  • POP3 : используется для получения электронной почты с почтового сервера.
  • ICMP : используется для отчетов об ошибках и диагностики, связанных с обработкой IP.
  • DNS : преобразует доменные имена в IP-адреса, позволяя пользователям получать доступ к веб-сайтам, используя удобочитаемые имена.
  • DHCP : динамически назначает IP-адреса устройствам в сети.
  • SSL/TLS : Криптографические протоколы предназначены для обеспечения безопасной связи в компьютерной сети.
  • PPP : Протокол «точка-точка» (PPP) — это, по сути, набор асимметричных протоколов для различных соединений или каналов без формирования кадров.
  • Ethernet : определяет способ взаимодействия устройств в локальной сети (LAN). Он работает как на физическом уровне, так и на канальном уровне модели OSI.

Модели OSI и TCP/IP

OSI и TCP/IP — две основные модели, служащие в качестве руководящих структур, описывающих процессы, связанные с передачей данных по сети.


Модель OSI

Протокол

Формат данных

Модель TCP/IP

7

Приложение

HTTP, DNS, SMTP, FTP

Данные

Приложение

6

Презентация

ТЛС, SSL

Данные

Приложение

5

Сессия

Розетки

Данные

Приложение

4

Транспорт

TCP, UDP

Сегмент, Пакет

Транспорт

3

Сеть

IP, ICMP, IPsec

IP-дейтаграмма

Интернет

2

Канал передачи данных

PPP, Ethernet

Рамка

Сетевой интерфейс

1

Физический

Оптоволокно, беспроводная связь

Кусочек

Сетевой интерфейс


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


  1. Физический : занимается физическим соединением между устройствами. Он определяет элементы оборудования, такие как кабели, коммутаторы и сетевые карты.


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


  3. Сеть : определяет лучший путь для передачи данных от источника к месту назначения по сети.


  4. Транспорт : обеспечивает сквозную связь, управление потоками данных и исправление ошибок.


  5. Сеанс : устанавливает, поддерживает и разрывает соединения приложения на обоих концах.


  6. Презентация : преобразует данные между уровнями приложения и транспорта, обеспечивая читаемость данных.


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


TCP/IP — это более краткая модель, используемая преимущественно в современном Интернете, которая упрощает уровни OSI до четырех категорий:


  1. Сетевой интерфейс : объединяет функции физического уровня и уровня канала передачи данных OSI, уделяя особое внимание тому, как данные отправляются/получаются в сетевой среде.


  2. Интернет : соответствует сетевому уровню в OSI, обрабатывая маршрутизацию данных, IP-адресацию и пересылку пакетов.


  3. Транспорт : аналогично транспортному уровню OSI, гарантирует, что данные дойдут до нужного приложения и будут переданы надежно (TCP) или быстро (UDP).


  4. Приложение : объединяет функции уровней сеанса, представления и приложения OSI, занимаясь процессами приложений конечного пользователя.

Безопасность

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

Распространенные угрозы и уязвимости

  1. DDoS-атаки : злонамеренные попытки нарушить нормальный трафик целевого сервера, службы или сети, захлестнув его потоком интернет-трафика.


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


  3. Атаки «человек посередине» : злоумышленники тайно перехватывают и передают связь между двумя сторонами. Они могут подслушивать или выдавать себя за одну из сторон, обманывая другую.


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


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


  6. Слабые стороны оборудования . Физические компоненты могут иметь уязвимости, например встроенное ПО, которое можно подделать, или бэкдоры, установленные производителями.


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


  8. Слабая аутентификация и авторизация . Недостаточная политика паролей, отсутствие многофакторной аутентификации или слабый контроль доступа могут привести к несанкционированному доступу.


  9. Незашифрованные данные . Незашифрованные данные можно легко перехватить и прочитать при их передаче по сети.


  10. Устаревшие системы . Системы, которые больше не поддерживаются или не обновлялись, могут иметь известные уязвимости, которыми легко воспользоваться.


  11. Физические уязвимости : это относится к физическим точкам доступа, где злоумышленник может подключиться к сети или напрямую получить доступ к серверам.

Лучшие практики по обеспечению сетевой безопасности

  1. Брандмауэры . Разверните аппаратные и программные брандмауэры для мониторинга и контроля входящего и исходящего сетевого трафика на основе политик безопасности.


  2. Шифрование . Используйте протоколы шифрования, особенно для конфиденциальных данных, как при передаче (например, SSL/TLS для веб-трафика), так и при хранении (например, шифрование базы данных).


  3. Регулярные обновления : обновляйте все системы, программное обеспечение и приложения для устранения уязвимостей.


  4. Многофакторная аутентификация (MFA) . Внедрите MFA, чтобы добавить уровень безопасности, гарантируя, что пользователи предоставят два или более фактора проверки для получения доступа.


  5. Мониторинг сети : используйте инструменты мониторинга сети для постоянного мониторинга сети на предмет необычных действий или несанкционированного доступа.


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


  7. Сегментация сети : ограничивает распространение угроз внутри сети и обеспечивает лучший контроль над доступом к данным.


  8. Резервное копирование и аварийное восстановление : обеспечивает доступность данных и непрерывность бизнеса в случае нарушений или сбоев.


  9. Физическая безопасность . Физический доступ к сетевым устройствам может привести к взлому.

Заключение

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


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