Многие не видят разницы между Интернетом и компьютерной сетью, но на самом деле первое - это один из примеров второго. Каждый раз, когда вы включаете Интернет на своем устройстве, вы подключаетесь к сети Интернет. Она объединяет множество сетей во всех уголках мира в одну единую и обеспечивает передачу данных из одной точки в другую.
Знание сетевых технологий, понимание работы стека протоколов TCP/IP, клиент-серверной архитектуры и протоколов прикладного уровня являются основой разработки сетевых программ.
Основные термины:
Коммуникационная сеть — система, состоящая из объектов, называемых узлами (пунктами) сети и осуществляющих функции генерации, преобразования, хранения и потребления продукта, а также линий передачи.
Информационно-вычислительная сеть (компьютерная сеть) — коммуникационная сеть, в которой продуктом генерирования, переработки, хранения и использования является информация, а узлами - сетевое оборудование.
Компьютерный терминал — устройство ввода\вывода, рабочее место на многопользовательских ЭВМ.
Канал связи — совокупность линий связи и оборудования передачи, которые обеспечивают передачу сигнала между двумя и более точками.
Линия связи — совокупность технических устройств и физической среды, которая обеспечивает передачу электрических сигналов от передатчика к приемнику.
Коммутатор — телефонная станция, пакетный переключатель, устройство адресного распределения сигналов пользователей.
Хост — любое устройство сети, предоставляющее сервисы формата “клиент-сервер” в режиме сервера по каким-либо интерфейсам.
Основы сетевых технологий
По способу взаимодействия сети делят на два вида: “клиент-сервер” и “равный с равным” (peer-to-peer/p2p), которые могут использоваться одновременно.
Сети, построенные на основе p2p, называют также одноранговыми сетями, в которых все устройства имеют одинаковый ранг. Сети, содержащие специализированные узлы и предоставляющие остальным сервера (сервисы), называются многоранговыми.
Компьютеры, работающие в сети, взаимодействуют благодаря IP-адресам (Internet Protocol). Он позволяет глобально идентифицировать устройство в сети.
IPv4-адрес состоит из четырех чисел (байт), называемых октетами. Они записываются в десятичной системе счисления. Каждый октет может иметь значение от 0 до 255. Это связано с тем, что IP-адрес на самом деле состоит из битов.
Рассмотрим, как выглядит адрес 64.233.164.139 в шестнадцатеричной и двоичной системе счисления.
Cетевые модели
Сегодня популярны две многоуровневые сетевые модели OSI и TCP/IP.
Их идеей является изолирование логики работы сетевых механизмов на каждом уровне.В результате каждый уровень на каждом устройстве работает одинаково.
Сетевая модель OSI является попыткой создания универсальной модели взаимодействия систем. На практике стек TCP/IP оказался более востребованным. Тем не менее модель OSI является стандартом ISO. Эта модель часто применяется в преподавании сетевых технологий, разработках для гос. сектора, и о ней часто спрашивают на собеседованиях.
Прикладной уровень предоставляет интерфейс к сетевым услугам для прикладного программного обеспечения.
Уровень представления предназначен для перекодирования и преобразования форматов данных.
Сеансовый уровень необходим для установки и управления сеансами связи.
Транспортный уровень предназначен для передачи данных от отправителя к получателю и дает возможность управления надежностью данных.
Сетевой уровень предназначен для глобальной логической адресации узлов и осуществления маршрутизации.
Канальный уровень предназначен для взаимодействия устройств через физическую среду передачи, принимая нужные кадры или фреймы, отбрасывая ненужные и осуществляя при этом контроль целостности.
Физический уровень представлен физическими способами передачи информации.
Схема расположения протоколов в модели OSI.
Модель DOD или TCP/IP — модель сетевого взаимодействия, разработанная Министерством обороны США, практической реализацией которой является стек TCP\IP.
Эта модель появилась до модели OSI и независимо от нее при разработке APRANET и быстро завоевала популярность благодаря своей простоте. Декомпозиция подразумевает интерфейсное и межпротокольное взаимодействие. Организовывается оно с помощью инкапсуляции.
В сетевых технологиях инкапсуляция означает помещение PDU протокола вышестоящего уровня в поле данных PDU протокола нижестоящего уровня. Обратный процесс называется декапсуляцией.
Стек протоколов TCP/IP — набор сетевых протоколов передачи данных, используемых в сетях. Название происходит из двух важнейших протоколов семейства - Transmission Control Protocol (TCP) и Internet Protocol (IP), которые были разработаны и описаны первыми.
Уровни протоколов TCP/IP расположены по принципу стека, это означает, что протокол, находящийся на уровне выше, работает поверх нижнего, используя инкапсуляцию. Пример: протокол TCP работает поверх IP.
На самом нижнем уровне находится уровень сетевых интерфейсов, объединяющий физический и канальный уровни модели OSI. Их протоколы реализуются на аппаратном уровне, например, в сетевой карте.
На межсетевом уровне, который соответствует сетевому уровню модели OSI, работает протокол IP, описывающий структуру сети и доставку пакетов. Также на этом уровне идентифицируются хосты и маршрутизаторы. Еще к нему относят вспомогательные протоколы ICMP и IGMP.
ICMP нужен для идентификации сетевых проблем. Он вложен в IP пакет.
IGMP управляет группами широковещательных рассылок.
ARP преобразует IP адреса в MAC адреса. Работает поверх канального уровня и служит для поиска MAC адресов для искомых IP адресов своей сети.
RARP— расширение протокола ARP, требуется для назначения IP адреса устройству, по ее MAC адресу. Он был вытеснен протоколом DHCP.
На транспортном уровне находятся протокол TCP, который используется для передачи данных с гарантированной доставкой, и протокол UDP - с негарантированной. Они реализуются на уровне операционной системы. На транспортном уровне идентифицируются приложения и тип доставки. TCP и UDP содержат в заголовке двухбайтовый порт получателя и порт отправителя. TCP порты именуются в системе как STREAM, а UDP - DGRAM.
На самом верху располагается множество протоколов, которые относятся к прикладному уровню. Эти протоколы реализуются в отдельных приложениях. Любое приложение может реализовать свой протокол, который будет является протоколом прикладного уровня.
К протоколам прикладного уровня относят: HTTP, FTP, SSH/SFTP, SMTP, POP3, IMAP4, XMPP, DNS, DHCP, NTP и другие.