Сетевое взаимодействие 2 Открытая модель OSI/ISO Уровень сетевой • Адреса устройств в разных средах передачи данных не уникальны. Адресация. • IP — протокол, определяющий адрес. Адрес состоит из четырех байт и записан в виде десятичных чисел разделенных точками. • Определить адреса сетевых устройств можно с помощью команды ip address show. Уровень сетевой Адрес интерфейса eth0 — 192.168.100.3 Адрес интерфейса eth1 — 192.168.100.4 Адрес интерфейса lo — 127.0.0.1 (loopback) — сетевое взаимодействие компьютера с самим собой. Уровень сетевой • Адрес состоит из 32 бит. • Левая часть адреса — адрес сети. • Правая часть адреса — адрес устройства в сети. • На рисунке /24 — это сетевая маска. Уровень сетевой • Сетевая маска (маска сети) — линейка из 32 бит в которой на месте адреса сети стоят единицы, на месте адреса устройства стоят нули (сеть — 1, устройство — 0). • В примере на рисунке /24 — это количество единиц (адрес сети). • Таким образом адрес сети — 192.168.100.0 • Адрес устройства — 0.0.0.3 Уровень сетевой • маска сети /24 означает 11111111 11111111 11111111 00000000, что в десятичной системе — 255.255.255.0, т. е. на адрес устройства в этой сети остается 8 бит (единицы): 00000000 00000000 00000000 11111111, значит, в этой сети могут быть адресованы 255 устройств; • маска сети /16 означает 1111111 11111111 00000000 00000000, что в десятичной системе — 255.255.0.0, т. е. на адрес устройства в этой сети остается 16 бит: 00000000 00000000 11111111 11111111, значит, в этой сети могут быть адресованы 65025 устройств; Уровень сетевой • маска сети /8 означает 1111111 00000000 00000000 00000000, что в десятичной системе — 255.0.0.0;, т. е. на адрес устройства в этой сети остается 24 бита: 00000000 11111111 11111111 11111111, значит, в этой сети могут быть адресованы 16581375 устройств; • маска сети /0 означает 00000000 00000000 00000000 00000000, что в десятичной системе — 0.0.0.0, т. е. на адрес устройства в этой сети остается 32 бита: 11111111 11111111 11111111 11111111, значит, в этой сети могут быть адресованы 4228250625 устройств; Уровень сетевой • маска сети /28 означает 11111111 11111111 11111111 11110000, что в десятичной системе — 255.255.255.240, т. е. на адрес устройства в этой сети остается только 4 бита: 00000000 00000000 00000000 00001111, значит, в этой сети могут быть адресованы только 15 устройств. • Если IP-адрес состоит из адреса сети за которым идут все единицы, т.е. 192.168.100.255, то это широковещательный адрес и он предназначен для всех устройств этой сети 192.168.100.0. Уровень сетевой Соглашения об IP-адресах Уровень сетевой • При отправлении пакета отправитель выясняет, находится ли получатель в той же сети. Для этого маска сети накладывается на адрес получателя и если получающийся при этом адрес сети совпадает с адресом сети отправителя, то получатель находится в этой же сети. Значит, MAC адрес получателя известен отправителю. • MAC-адреса устройств локальной сети хранятся в ARP-таблице. Уровень сетевой • Прочитать эту таблицу можно с помощью команды ip neighbour show • ARP-таблица является динамической и отображает соответствие между IP и MACадресами устройств сети. Уровень сетевой • stale — устаревшее соответствие. • permanent — запись постоянная и может быть удалена только вручную. • reachable — действительная в настоящий момент запись. • noarp — запись о соседнем хосте действительна, попыток определения доступности не производится. Уровень сетевой • Проверить связь с компьютером, а заодно обновить таблицу ARP можно командой ping ip_адрес_хоста Уровень сетевой • ARP (Address Resolution Protocol) – протокол, который устанавливает соответствие между адресами сетевого (IP-адрес) и интерфейсного (MAC-адрес) уровня. • При работе протокола ARP по сети отправляется широковещательный пакет с IP-адресом устройства, то устройство, чей адрес совпадает с этим адресом, отправляет ответ со своим MAC-адресом обратно. Таки образом заполняется ARP-таблица в которой устанавливается соответствие между IP и MACадресами. После установления соответствия устройство в сети готово к инкапсуляции фрейма. Уровень сетевой Маршрутизация Если устройство-получатель и устройствоотправитель находятся в разных сетях, например, отправитель во внутренней сети (локальной), а получатель во внешней сети (Интернет), то пакет нужно отправить некоторому устройству, которое перенаправит пакет из внутренней сети во внешнюю сеть. Маршрутизатор и есть это устройство. • Маршрутизация — процесс определения маршрута следования пакета (ARP использовать нельзя из-за недопустимости передачи широковещательного пакета между сетями). Уровень сетевой • Маршрут — последовательность маршрутизаторов, которые должен пройти пакет от отправителя до получателя. • Таблица маршрутизации — ставит соответствие сетям назначения исходящий интерфейс и адрес порта следующего маршрутизатора. • Таблицу маршрутизации можно посмотреть с помощью команды ip route show Уровень сетевой • С интерфейсов eth0 и eth1 (на ПК две сетевые карты) с адресами 192.1681.00.3 и 192.168.100.4 доступна сеть 192.168.100.0/24. Вторая срока означает сеть default, которая доступна через маршрутизатор 192.168.100.1. default – вся внешняя сеть (маска сети равна нулю и может быть показана как /0), маршрут по умолчанию. • scoup link – получатель в одной сети с отправителем. • via – в доступных локальных сетях получателя нет, но есть маршрутизатор (указание на маршрутизатор). Уровень сетевой Таблица маршрутизатора. • На ПК есть интерфейс eth0 с адресом 192.168.100.1, которому доступна сеть 192.168.100.0/24; • интерфейс eth8 с адресом 95.170.165.90, которому доступна сеть 95.170.165.64/27; • интерфейс virbr0 с адресом 192.168.122.1, которому доступна сеть 192.168.122.0/24. • Кроме того, есть указание на маршрутизатор по адресу 95.170.165.90. Уровень сетевой Протокол ICMP. • Internet Control Message Protocol – протокол передачи служебных сообщений (пример использования: утилита ping). • Другой пример — это утилита traceroute, используя протокол ICMP может определить маршрут следования пакета. • Утилита trceroute показывает список абонентов через которые пройдёт пакет пока не достигнет пункта назначения. Уровень сетевой Транспортный уровень Транспортный уровень определяется работой протоколов: • UDP – (User Datagram Protocol) протокол отправки пакета-датаграммы. Пользовательским данным в пакете приписываются адреса и порты отправителя и получателя и пакет отправляется в сеть. Проверка доставки пакета не производится. UDP удобен для широковещательной передачи. • TCP – (Transmission Control Protocol) протокол управления соединением. Транспортный уровень TCP отвечает за доставку пакетов и решает следующие задачи: • Установление соединения. Проверяется способность получателя принять пакет, устанавливается двусторонняя связь, к пакету присоединяется SEQN номер для проверки очередности пакета. • Обработка подтверждений. Подтверждается факт доставки пакетов. Если пакет не доставлен, то он отправляется заново. • Проверка состояния абонента. Отслеживается состояние абонента принять какое-то количество данных, производится корректировка количества отправляемых данных. Прикладной уровень • На прикладном уровне предусмотрено существование любого количества протоколов. • Разделение пакетов по приложениям происходит с помощью потра. • Порт – идентификатор сервиса. Клиент-серверная модель. • Приложению (программе-клиенту) что-то нужно. • У службы (программы-сервера) это есть. Прикладной уровень • Служба, запускаясь не сервере, прикрепляется к порту, регистрируется на этом порту как обработчик запросов и ждет на нем данных. • Приложение, запускаясь на клиенте, прикрепляется к тому же порту на сервере. – Служба и приложение обмениваются данными, обмен регулируется прикладным протоколом. Передача данных может происходить в обе стороны. Прикладной уровень • За прикладными протоколами, как правило, закреплен номер порта. Для их просмотра можно посмотреть файл /etc/services Прикладной уровень • Информацию о сетевых соединениях можно получить с помощью команды netstat Прикладной уровень • На компьютере зарегистрированы – tcp обработчики: 111, 25, 631 и т. д. – udp обработчики: 111, 123, 631 и т. д. • Установленных соединений к данному ПК нет. netstat -antu -a выводить информацию о установленных и готовых установить связь соединениях; -n не преобразовывать IP-адрес в доменный адрес; -t и –u показывать информацию о TCP и UDP Прикладной уровень Прикладной уровень Linux. Обслуживание прикладного уровня • Требования, которым должна удовлетворять программа, обслуживающая соединение по некоторому порту: – Программа должна быть демоном. – Программа должна создать сокет и присоединить его к порту. – Зарегистрироваться как обработчик и принимать соединения. – Анализировать протокол и действовать в соответствии с ним. Linux. Обслуживание прикладного уровня • Сокет — это название программного интерфейса для обеспечения информационного обмена между процессами. • Сокет — абстрактный объект, представляющий конечную точку соединения. Следует различать клиентские и серверные сокеты. Клиентские сокеты грубо можно сравнить с оконечными аппаратами телефонной сети, а серверные — с коммутаторами. • inetd – метадемон, исполняет общую сетевую часть работы (). Прикладная программа может использовать фильтр при работе с inetd и не быть демоном.