Что используется для идентификации сетевого приложения или процесса работающего на компьютере
по UDP или ICMP протоколу, пакет потерялся (особенности протокола UDP).
UDP Port Scanning средствами сканера nmap
Пример реализации UDP-сканирования сканером nmap:
Host is up (0.037s latency).
PORT STATE SERVICE 123/udp open ntp
Nmap done: 1 IP address (1 host up) scanned in 65.03 seconds
UDP Port Scanning средствами утилит hping3, netcat
Генератор пакетов hping3 также поддерживает режимы UDPсканирования. Для решения проблемы потери пакетов увеличим число отправляемых пакетов до десяти. Пример реализации UDPсканирования утилитой hping3:
len=46 ip=10.1.11.35 ttl=124 DF seq=6 rtt=0.5 ms
--- 10.1.11.35 hping statistic ---
10 packets transmitted, 1 packets received, 90% packet loss round-trip min/avg/max = 0.5/0.5/0.5 ms
Опция hping3 -2 (--udp) задает режим UDP Port Scanning, -p (-- destport) задает UDP-порт получателя, -c (--count) увеличивает число отправляемых пакетов.
Еще одной утилитой, часто применяемой для идентификации статуса портов, является netcat (или nc). Утилита netcat позволяет применять основные методы TCP- и UDP-сканирования. Параметр -z применяется для включения режима нулевого ввода-вывода (zero mode I/O). По умолчанию утилита netcat выполняет TCPсканирование. Для указания режима UDP Port Scanning необходимо использовать параметр -u.
Синтаксис утилиты netcat:
nc [опции] host port
Некоторые опции netcat: -h: Вывод справки;
-v: Вывод дополнительной информации (verbose);
-o [выходной файл]: Выводит дампы данных;
-i [число]: Пауза между отправляемыми данными (в секундах); -z: Не отправлять данные (сканирование портов);
-u: Использовать UDP (по умолчанию используется TCP); -l: Пассивный режим (прослушивание порта);
-p [число]: Локальный номер порта (для -l);
-n: Отключить разрешение DNS-имен и поиск номеров портов по
-w [число]: Интервал ожидания (в секундах).
Пример реализации UDP-сканирования утилитой netcat:
3. Практическое задание
1. Проведите сканирование методом UDP Port Scanning некоторого количества узлов сети (уточнить у преподавателя).
2. Сравните время сканирования при различных режимах сканирования, различными инструментами (nmap, hping3, netcat). Результаты представьте в форме таблицы.
3. Исследуйте ответную реакцию на отправляемые пакеты при различных состояниях UDP-порта узла (порт открыт, порт закрыт, порт открыт и фильтруется, порт закрыт и фильтруется). Эксперимент повторите для различных ОС. Результаты оформите в виде таблицы.
РАЗДЕЛ IV – ИДЕНТИФИКАЦИЯ СЕТЕВЫХ СЕРВИСОВ И ПРИКЛАДНЫХ СЛУЖБ (SERVICES FINGERPRINTING)
Следующий (за определением статуса TCP/UDP портов) этап анализа защищенности – инвентаризация прикладных сетевых служб и приложений. Ввиду того, что большая часть уязвимостей приходится на уровень приложений, задача идентификации прикладных служб (сетевых приложений) является одной из важнейших. Соответствие TCP/UDP-портов прикладным службам регламентируется IANA (Internet Assigned Numbers Authority), с
Номера TCP/UDP-портов разделены на три категории и находятся в диапазоне от 0 до 65535:
Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.
Пятый уровень, сеансовый (session layer, L5)
Пятый уровень оперирует чистыми данными; помимо пятого, чистые данные используются также на шестом и седьмом уровне. Сеансовый уровень отвечает за поддержку сеанса или сессии связи. Пятый уровень оказывает услугу следующему: управляет взаимодействием между приложениями, открывает возможности синхронизации задач, завершения сеанса, обмена информации.
Службы сеансового уровня зачастую применяются в средах приложений, требующих удаленного вызова процедур, т.е. чтобы запрашивать выполнение действий на удаленных компьютерах или независимых системах на одном устройстве (при наличии нескольких ОС).
Примером работы пятого уровня может служить видеозвонок по сети. Во время видеосвязи необходимо, чтобы два потока данных (аудио и видео) шли синхронно. Когда к разговору двоих человек прибавится третий — получится уже конференция. Задача пятого уровня — сделать так, чтобы собеседники могли понять, кто сейчас говорит.
Третий уровень, сетевой (network layer, L3)
На третьем уровне появляется новое понятие — маршрутизация. Для этой задачи были созданы устройства третьего уровня — маршрутизаторы (их еще называют роутерами). Маршрутизаторы получают MAC-адрес от коммутаторов с предыдущего уровня и занимаются построением маршрута от одного устройства к другому с учетом всех потенциальных неполадок в сети.
На сетевом уровне активно используется протокол ARP (Address Resolution Protocol — протокол определения адреса). С помощью него 64-битные MAC-адреса преобразуются в 32-битные IP-адреса и наоборот, тем самым обеспечивается инкапсуляция и декапсуляция данных.
Вывод, роль модели OSI при построении сетей
В статье мы рассмотрели принципы построения сетевой модели OSI. На каждом из семи уровней модели выполняется своя задача. В действительности архитектура OSI сложнее, чем мы описали. Существуют и другие уровни, например, сервисный, который встречается в интеллектуальных или сотовых сетях, или восьмой — так называют самого пользователя.
Как мы упоминали выше, оригинальное описание всех принципов построения сетей в рамках этой модели, если его распечатать, будет иметь толщину в один метр. Но компании активно используют OSI как эталон. Мы перечислили только основную структуру словами, понятными начинающим.
Модель OSI служит инструментом при диагностике сетей. Если в сети что-то не работает, то гораздо проще определить уровень, на котором произошла неполадка, чем пытаться перестроить всю сеть заново.
Зная архитектуру сети, гораздо проще ее строить и диагностировать. Как нельзя построить дом, не зная его архитектуры, так невозможно построить сеть, не зная модели OSI. При проектировании важно учитывать все. Важно учесть взаимодействие каждого уровня с другими, насколько обеспечивается безопасность, шифрование данных внутри сети, какой прирост пользователей выдержит сеть без обрушения, будет ли возможно перенести сеть на другую машину и т.д. Каждый из перечисленных критериев укладывается в функции одного из семи уровней.
Q: Простыми словами Сокет – это …
A: атрибут файла
A: идентификатор файла
Q: Сколько существует типов сокетов?
Q: Какие параметры необходимо указать для сокета?
A: IP адрес, номер порта и тип сокета
A: IP адрес и протокол
A: *IP адрес и номер порта
Q: В какой операционной системе впервые появились Сокеты Беркли?
A: Novell Netware
Q: Сокеты Беркли — это …
A: *интерфейс программирования приложений (API), представляющий собой библиотеку для разработки приложений на языке Си с поддержкой межпроцессного взаимодействия
A: тип программных приложений (API), представляющий собой библиотеку для разработки приложений на языке Си с поддержкой межпроцессного взаимодействия
A: интерфейс программирования приложений (IPC), представляющий собой библиотеку для разработки приложений на языке Си с поддержкой межпроцессного взаимодействия
A: Все ответы верны
Q: Протокол для работы в локальных сетях на персональных ЭВМ типа IBM/PC, разработанный в виде интерфейса, который не зависит от фирмы-производителя, называется …
Q: Интерфейс сокета Беркли — это …
A: IP, позволяющий реализацию взаимодействия между компьютерами или между процессами на одном компьютере, используя концепцию Интернет-сокетов
A: IPC, позволяющий реализацию взаимодействия между компьютерами или между процессами на одном компьютере, используя концепцию Интернет-сокетов
A: *API, позволяющий реализацию взаимодействия между компьютерами или между процессами на одном компьютере, используя концепцию Интернет-сокетов
A: Все варианты верны
Q: NetBIOS определяет протокол, функционирующий на …
A: сеансовом/транспортном уровнях модели OSI
A: *сетевом/транспортном/сеансовом уровнях модели OSI
A: сеансовом/транзитном уровнях модели OSI
A: сетевом/сеансовом уровнях модели OSI
Q: Сеть с выделенным сервером – это …
A: глобальная вычислительная сеть (GLAN), в которой сетевые устройства централизованы и управляются одним или несколькими серверами
A: локальная вычислительная сеть (WLAN), в которой сетевые устройства централизованы и управляются одним или несколькими серверами
A: *локальная вычислительная сеть (LAN), в которой сетевые устройства централизованы и управляются одним или несколькими серверами
A: локальная вычислительная сеть (LAN) с одним сервером
Q: Примером протокола асинхронной передачи является:
Q: Недостатком синхронной передачи является:
A: Низкая скорость передачи
A: Ненадежный механизм обнаружения ошибок
A: *Сложное и дорогое интерфейсное оборудование
A: Низкое качество передачи
Q: Поле пакета, служащее для синхронизации приемника и передатчика:
A: Поле обнаружения ошибок
Q: Как называют блоки данных, передаваемые в сетях?
Q: Адрес, который определяется используемым протоколом и может быть изменен в процессе работы: A: *Логический адрес
A: Широковещательный адрес
A: Физический адрес
Q: При помощи какой утилиты TCP/IP можно просмотреть настройки протокола IP?
Q: Что происходит с количеством коллизий в сети при использовании коммутаторов вместо концентраторов? A: Возрастает
A: Остается неизменным
A: Значительно уменьшается
Q: Выберите правильное утверждение.
A: *Протокол TCP ориентирован на установление соединения и работает на транспортном уровне стека TCP/IP
A: Протокол TCP не ориентирован на установление соединения и работает на транспортном уровне стека
A: Протокол TCP ориентирован на установление соединения и работает на межсетевом уровне стека TCP/IP
A: Протокол TCP не ориентирован на установление соединения и работает на межсетевом уровне стека
Q: Как называется комбинация IP-адреса и номера порта?
A: контрольная сумма
A: номер интерфейса
Q: Сколько портов могут использовать сетевые приложения и службы, работающие на компьютере?
Q: Для чего в сетях с топологией шина используют терминаторы?
A: Для борьбы с затуханием сигнала
A: *Для борьбы с отражением сигнала на концах кабеля
A: Для борьбы с перекрестными помехами
A: Для увеличения дальности передачи сигнала
Q: Укажите последовательность уровней стека TCP/IP сверху вниз.
A: *Application – Session - Transport - Network - Data-Link
A: Presentation - Network - Transport - Physical
A: Application - Transport - Network - Internet
A: Transport - Application - - Network - Internet
Q: Какое из перечисленных устройств не считывает заголовок протокола канального уровня во входящих кадрах?
A: Концентратор (HUB)
A: Коммутатор (switch)
A: Маршрутизатор (router)
Q: Сеть, в которой используется специальный выделенный (dedicated) сервер называется…………?
A: *сеть на основе сервера
A: рабочей группой
Q: На каком уровне эталонной модели OSI работает протокол SMTP ?
A: на сетевом (network layer)
A: на канальном (data link layer)
A: *на прикладном (application layer)
A: на сеансовом (session layer)
Q: Что представляет собой MAC-адрес?
A: 32-х разрядное двоичное число
A: 64-х разрядное двоичное число
Q: Что используется для идентификации сетевого приложения или процесса, работающего на компьютере?
Q: Укажите основные свойства VPN?
A: *Создает туннель, т.е. защищённый канал передачи данных
A: Не использует шифрование данных, а просто скрыто их передает
A: Дает 100% гарантию от взлома
A: Не дает гарантию от взлома
A: защищенное соединение
A: способ шифрования трафика
A: *система обнаружения вторжений
Q: Используется ли VPN для защиты беспроводных сетей?
A: Да, но при условии использования 64-битного WEP-шифрования трафика
Q: Какие дополнительные меры обеспечения безопасности не могут использоваться в беспроводных сетях? A: Технология VPN
A: *Использование IPSec для защиты трафика
A: Защита беспроводного сегмента с помощью L2IP
A: Защищенное соединение
Q: В системах, состоящих из клиентов и серверов, имеется следующее место для хранения файлов и их частей
A: *диск клиента (если имеется)
Q: Технология GET VPN предназначена для:
A: корпоративных сетей
A: домашних сетей
A: глобальных сетей
A: Мгновенное реагирование на вторжения
A: *Территория покрытия сигнала
A: Возможность горячей замены ключа
A: Способ шифрования данных
A: *Идентификатор беспроводного сетевого устройства
A: Идентификатор проводного сетевого устройства
A: Идентификатор модема
A: Идентификатор узла
Изучение и практическая работа с программными средствами для тестирования параметров соединения в компьютерных сетях и проверки настройки протокола TCP/IP.
Общая постановка задачи
Определить IP-адрес локального (своего) компьютера, подключенного к сети и затем по IP-адресу определить его принадлежность к сети того или иного класса (А, В, С).
Определить имя узла компьютера в локальной сети
Определить скорость передачи информации в компьютерной сети.
Определить соответствие локального IP-адреса, физическому (аппаратному) адресу в локальной сети. Определить какие сетевые интерфейсы устанавливали соединение с «вашим» компьютером.
Оформить отчет по лабораторной работе.
Теоретическая часть
Современные операционные системы Windows имеют встроенные сетевые утилиты, обеспечивающие средства для установки и идентификации сетевых подключений компьютера. После прохождения курса "Компьютерные сети" студенты должны знать эти утилиты и уметь правильно их использовать для решения основных задач, возникающих при работе с сетью.
Одной из наиболее важных задач при работе в сети является определение основных параметров, задающих подключение компьютера в сеть. Для ответа на этот вопрос можно воспользоваться утилитой ipconfig.На следующем рисунке приводится пример вывода, полученного при запуске этой утилиты без параметров.
Из приведенного рисунка видно, что данная утилита позволяет определить четыре основных параметра: DNS суффикс, IP-адрес, маску подсети и основной шлюз. Приведенный вызов утилиты ipconfig позволяет определить только лишь самые важные параметры подключения. При необходимости получить значения других параметров, определяющих данное подключение, используется вызов утилиты ipconfig с ключом /all, как показано на следующем рисунке.
Для того чтобы определить есть ли связь между компьютерами, включенными в сеть, и каково качество этой связи, проще всего воспользоваться утилитой ping, которой в качестве параметра нужно указать IP-адрес компьютера, наличие связи с которым требуется проверить.
Работа утилиты ping заключается в том, что при ее запуске компьютер, на котором была запущена эта утилита, передает в сеть для передачи компьютеру, IP-адрес которого был указан в качестве параметра утилиты, четыре пакета, называемых эхо-запросами. При получении этих пакетов компьютер, которому они предназначены, должен в свою очередь выслать запрашивающему компьютеру четыре эхо-ответа. Утилита ping выводит на консоль данные о принятых пакетах и сопутствующие данные, определяющие процесс обмена пакетами.
Следует заметить, что прежде чем проверять связь между различными компьютерами, подключенными к сети, рекомендуется проверить правильность установки стека TCP/IP на собственном компьютере. Это можно сделать с помощью той же утилиты ping, указав ей в качестве IP-адреса зарезервированный специальный IP-адрес 127.0.0.1, всегда указывающий на тот же самый компьютер, с которого запускается утилита.
После этого можно использовать утилиту ping для проверки связи с удаленным компьютером, задав в качестве параметра утилиты IP-адрес компьютера, наличие связи с которым требуется проверить. Необходимо отметить, что в качестве параметра утилиты ping можно указывать не только IP-адрес удаленного компьютера, но и его имя. Кроме того, в качестве параметра утилиты ping можно указывать доменное имя Web-сервера.
Маршрутизация пакетов, отправляемых в сеть, управляется таблицей маршрутизации. Таблицу маршрутизации можно отобразить, введя в командной строке команду route print. Здесь приведен образец таблицы маршрутизации для односетевых компьютеров. Эта таблица создается Windows XP автоматически на основе конфигурации IP используемого узла.
Заголовок каждого столбца приведенной выше таблицы объясняется следующим образом.
Сетевой адрес: сетевой адрес получателя. Столбец сетевого адреса может содержать следующие данные:
Маска сети определяет, какая часть сетевого адреса должна соответствовать тому маршруту, который будет использоваться. Биты записанной в двоичном формате маски подсети, которые имеют значение 1, являются значащими (требуется совпадение), а биты, имеющие значение 0 — незначащими (не требуют совпадения).Например, маска 255.255.255.255 соответствует узлу сети. Она содержит в каждом двоичном разряде единицы, и это означает, что адрес получателя, указанный в пакете, должен полностью соответствовать сетевому адресу получателя в таблице маршрутов для того, чтобы этот маршрут был использован. Адрес шлюза. Определяет адрес, по которому пересылается пакет данных. Это может быть адрес локального сетевого адаптера или шлюза (маршрутизатора), подключенного к локальной подсети.
Интерфейс — это адрес сетевой платы, передающей пакет данных.127.0.0.1 — это адрес замыкания сети. Метрика — это число переходов (прыжков) до места назначения. Все устройства локальной сети считаются одним промежуточным устройством, и каждый маршрутизатор, используемый на пути к получателю, считается дополнительным устройством. Метрика используется для определения наилучшего маршрута.
Чтобы по известному IP-адресу узнать соответствующий физический адрес компьютера, на который нужно передать пакет, используется протокол ARP. Этот протокол, как правило, работает автоматически, заполняя кэш-таблицу требуемыми соответствиями по мере необходимости. Обратите внимание, что на нижнем снимке при первом просмотре кэш-таблицы с помощью утилиты arp -a, нет соответствия для IP-адреса 192.168.253.73.После того, как было произведено пингование по этому адресу, требуемое соответствие было включено в таблицу протоколом ARP, что видно из нового содержимого таблицы, полученного после второго вызова утилиты arp -a.
Для идентификации открытых портов и активных подключений можно воспользоваться утилитой netstat. При запуске этой утилиты без параметров, она выводит информацию об активных подключениях на данном компьютере, т.е. тех подключениях, через которые происходит обмен данными с сетью. Например, на приведенном ниже снимке обратите внимание на нижнюю строку, идентифицирующую связь между простым TCP-сервером и TCP-клиентом, созданными в рамках лабораторной работы.
Пример выполнения работы
Для тестирования параметров (маршрут и скорость передачи данных) соединения с глобальной сетью Интернет, а также проверки правильности настройки протокола TCP/IP имеется достаточно большое количество программных средств. Например, в операционной системе MS Windows XP имеются специально встроенные компьютерные программы – утилиты. Данные программные средства являются полезными для пользователей сетей, поскольку позволяют оценить надежность соединения и ряд других важных параметров, определяющих качество соединения.
Задание 1.Определить IP-адрес локального (своего) компьютера, подключенного к сети и затем по IP-адресу определить его принадлежность к сети того или иного класса (А, В, С).Полученные результаты занести в отчет по лабораторному практикуму.
Для определения IP-адреса своего компьютера в операционной системе MS Windows XP необходимо воспользоваться утилитой IPCONFIG. Для запуска данной программы необходимо в окне «Командная строка» (Кнопка «Пуск» - «Программы» - «Стандартные» - «Командная строка») ввести команду «ipconfig» и затем нажать клавишу «Enter». При выполнении данной команды на экране монитора компьютера будет выведена основная конфигурация TCP/IP для всех сетевых адаптеров (см.рисунок 1.8). Полученные результаты занести в отчет по лабораторному практикуму.
Рис.1.8.Параметры текущей конфигурации протокола TCP/IP
Задание 2.Определить имя узла компьютера в локальной сети. Для определения имени узла компьютера в локальной сети необходимо в окне «Командная строка» набрать команду «hostname» и затем нажать клавишу «Enter». После выполнения данной команды на экране монитора в окне «Командная строка» появится информация об имени узла компьютера в локальной сети (см. рисунок 1.9.). Полученные результаты занести в отчет по лабораторному практикуму.
Рис.1.9.Имя узла компьютера в локальной сети.
Использование адреса 127.0.0.1 позволяет устанавливать соединение и передавать информацию для программ-серверов, работающим на том же компьютере, что и программа- клиент, независимо от конфигурации аппаратных сетевых средств компьютера), то она позволит протестировать корректность работы самой утилиты (см. рисунок 1.10.).Обычно для тестирования скорости передачи информации отправляется четыре цифровых пакета по 32 байта каждый и определяется приблизительное время приема – передачи в миллисекундах (мс). Особенно важен параметр (время приема – передачи) для мультимедийных приложенй, сетевых (on-line) игры и т.д. Для этих приложений этот параметр должен быть не более 500 мс. Если этот параметр менее 200 мс, то связь с сервером считается очень хорошей, если параметр больше 200 мс, то связь будет удовлетворительной или неудовлетворительной.
Рис.1.10.Тест на корректность работы утилиты PING
При использовании утилиты PING совместно с ключем «-t» можно для тестирования скорости передачи информации отправлять в сеть неограниченное число пакетов. Например, при выполнении в окне «Командная строка» команды «ping –t ip_address» (ключ –t отделяется пробелом от команды «ping», ip_address – IP-адрес того компьютера, который используется для тестирования связи), будет происходить постоянная отправка пакетов и можно обнаружить ситуацию, при которой появляется или пропадает связь.
Проверить качество связи с серверами и компьютерами в локальной компьютерной сети.Полученные результаты занести в отчет по лабораторному практикуму.
Задание 4. Определить соответствие локального IP-адреса, физическому (аппаратному) адресу в локальной сети. Определить какие сетевые интерфейсы устанавливали соединение с «вашим» компьютером.
Для определения соответствия в MS Windows XP необходимо в окне «Командная строка» набрать команду «arp -a» и затем нажать клавишу «Enter».Ключ –а отделяется пробелом от команды «arp».После выполнения данной команды на экране монитора в окне «Командная строка» появится информация о соответствии локального IP-адреса компьютера, физическому адресу в локальной сети (см. рисунок 1.12).Полученные результаты занести в отчет по лабораторному практикуму.
Рис.1.11.Соответствие локального IP-адреса, физическому адресу в локальной сети.
Задание 5. Полученные результаты занести в отчет по лабораторному практикуму. Указания к отчету по лабораторному практикуму. Отчет должен содержать следующие разделы:
Название, цель работы.
Описание выполненных лабораторных заданий, с выводами по каждому заданию.
Список использованных источников (книги, статьи из журналов, электронные ресурсы по ГОСТ 7-82.2001).
Зачем нужен порт и что означает термин сокет
Приложения прикладного уровня, общаются также с предыдущим, транспортным, но они видят его протоколы как «черные ящики». Для приема-передачи информации они могут работать с TCP или UDP, но понимают только конечный адрес в виде IP и порта, а не принцип их работы.
IP присваивается каждому компьютеру межсетевым уровнем, но обмен данными происходит не между компьютерами, а между приложениями, установленными на них. Чтобы получить доступ к тому или иному сетевому приложению недостаточно только IP, для идентификации приложений применяют порты. Комбинация IP-адреса и порта называется сокетом или гнездом (socket). Поэтому обмен информацией происходит между сокетами. Нередко слово сокет употребляют как синоним для хоста или пользователя, также сокетом называют гнездо подключения процессора.
Из привилегий у приложений на прикладном уровне можно выделить наличие собственных протоколов для обмена данными, а также фиксированный номер порта для обращения к сети. Администрация адресного пространства интернет (IANA), занимающаяся выделением диапазонов IP-адресов, отвечает еще за назначение сетевым приложениям портов.
Процесс, кодирования данных на прикладном уровне, передача их на транспортном, а затем на межсетевом и, наконец, на канальном уровне называется инкапсуляцией данных. Обратная передача битов информации по иерархии, с канального на прикладной уровни, называют декапсуляцией. Оба процесса осуществляются на компьютерах получателя и отправителя данных попеременно, это позволяет долго не удерживать одну сторону канала занятой, оставляя время на передачу информации другому компьютеру.
Шестой уровень, представления данных (presentation layer, L6)
О задачах уровня представления вновь говорит его название. Шестой уровень занимается тем, что представляет данные (которые все еще являются PDU) в понятном человеку и машине виде. Например, когда одно устройство умеет отображать текст только в кодировке ASCII, а другое только в UTF-8, перевод текста из одной кодировки в другую происходит на шестом уровне.
Шестой уровень также занимается представлением картинок (в JPEG, GIF и т.д.), а также видео-аудио (в MPEG, QuickTime). Помимо перечисленного, шестой уровень занимается шифрованием данных, когда при передаче их необходимо защитить.
Point-to-Point протоколы
Отдельно расскажем о Point-to-Point (от точки к точке, двухточечный) протоколе также известном как PPP. PPP уникален по своим функциям, он применяется для коммуникации между двумя маршрутизаторами без участия хоста или какой-либо сетевой структуры в промежутке. При необходимости, PPP обеспечивает аутентификацию, шифрование, а также сжатие данных. Он широко используется при построении физических сетей, например, кабельных телефонных, сотовых телефонных, сетей по кабелю последовательной передачи и транк-линий (когда один маршрутизатор подключают к другому для увеличения размера сети).
У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM), интернет-провайдеры часто их используют для DSL соединений.
PPP и его старший аналог SLIP (протокол последовательной межсетевой связи) формально относятся к межсетевому уровню TCP/IP, но в силу особого принципа работы, иногда выделяются в отдельную категорию. Преимущество PPP в том, что для установки соединения не требуется сетевая инфраструктура, а необходимость маршрутизаторов отпадает. Эти факторы обуславливают специфику использования PPP протоколов.
Канальный уровень (link layer)
Предназначение канального уровня — дать описание тому, как происходит обмен информацией на уровне сетевых устройств, определить, как информация будет передаваться от одного устройства к другому. Информация здесь кодируется, делится на пакеты и отправляется по нужному каналу, т.е. среде передачи.
Этот уровень также вычисляет максимальное расстояние, на которое пакеты возможно передать, частоту сигнала, задержку ответа и т.д. Все это — физические свойства среды передачи информации. На канальном уровне самым распространенным протоколом является Ethernet, но мы рассмотрим его на примере в конце статьи.
Стек протоколов, снова канальный уровень
О канальном уровне модели TCP/IP мы рассказали меньше всего, давайте вернемся еще раз к началу, чтобы рассмотреть инкапсуляцию протоколов и, что значит «стек».
Большинству пользователей знаком протокол Ethernet. В сети, по стандарту Ethernet, устройства отправителя и адресата имеют определенный MAC-адрес — идентификатор «железа». MAC-адрес инкапсулируется в Ethernet вместе с типом передаваемых данных и самими данными. Фрагмент данных, составленных в соответствии с Ethernet называется фреймом или кадром (frame).
MAC-адрес каждого устройства уникален и двух «железок» с одинаковым адресом не должно существовать, хотя порой такое случается, что приводит к сетевым проблемам. Таким образом, при получении сетевой адаптер занимается извлечением полученной информации из кадра и ее дальнейшей обработкой.
После ознакомления с уровневой структурой модели становится понятно, что информация не может передаваться между двумя компьютерами напрямую. Сначала кадры передаются на межсетевой уровень, где компьютеру отправителя и компьютеру получателя назначается уникальный IP. После чего, на транспортном уровне, информация передается в виде TCP-фреймов либо UDP-датаграмм.
На каждом этапе, подобно снежному кому, к уже имеющейся информации добавляется служебная информация, например, порт на прикладном уровне, необходимый для идентификации сетевого приложения. Добавление служебной информации к основной обеспечивают разные протоколы — сначала Ethernet, поверх него IP, еще выше TCP, над ним порт, означающий приложение с делегированным ему протоколом. Такая вложенность называется стеком, названным TCP/IP по двум главным протоколам модели.
Основы TCP/IP
Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть — интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую, с целью обеспечить такую возможность был разработан стек интернет-протоколов также известный как TCP/IP.
Разработкой этих протоколов занималось Министерство обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:
Второй уровень, канальный (data link layer, L2)
Когда два пользователя находятся в одной сети, состоящей только из двух устройств — это идеальный случай. Но что если этих устройств больше?
У канального уровня есть два подуровня — это MAC и LLC. MAC (Media Access Control, контроль доступа к среде) отвечает за присвоение физических MAC-адресов, а LLC (Logical Link Control, контроль логической связи) занимается проверкой и исправлением данных, управляет их передачей.
На втором уровне OSI работают коммутаторы, их задача — передать сформированные кадры от одного устройства к другому, используя в качестве адресов только физические MAC-адреса.
Критика модели OSI
Семиуровневая модель была принята в качестве стандарта ISO/IEC 7498, действующего по сей день, однако, модель имеет свои недостатки. Среди основных недостатков говорят о неподходящем времени, плохой технологии, поздней имплементации, неудачной политике.
Первый недостаток — это неподходящее время. На разработку модели было потрачено неоправданно большое количество времени, но разработчики не уделили достаточное внимание существующим в то время стандартам. В связи с этим модель обвиняют в том, что она не отражает действительность. В таких утверждениях есть доля истины, ведь уже на момент появления OSI другие компании были больше готовы работать с получившей широкое распространение моделью TCP/IP.
Вторым недостатком называют плохую технологию. Как основной довод в пользу того, что OSI — это плохая технология, приводят распространенность стека TCP/IP. Протоколы OSI часто дублируют другу друга, функции распределены по уровням неравнозначно, а одни и те же задачи могут быть решены на разных уровнях.
Разделение на семь уровней было скорее политическим, чем техническим. При построении сетей в реальности редко используют уровни 5 и 6, а часто можно обойтись только первыми четырьмя. Даже изначальное описание архитектуры в распечатанном виде имеет толщину в один метр.
Кроме того, в отличие от TCP/IP, OSI никогда не ассоциировалась с UNIX. Добиться широкого распространения OSI не получилось потому, что она проектировалась как закрытая модель, продвигаемая Европейскими телекоммуникационными компаниями и правительством США. Стек протоколов TCP/IP изначально был открыт для всех, что позволило ему набрать популярность среди сторонников открытого программного кода.
Даже несмотря на то, что основные проблемы архитектуры OSI были политическими, репутация была запятнана и модель не получила распространения. Тем не менее, в сетевых технологиях, при работе с коммутацией даже сегодня обычно используют модель OSI.
Заключение
Стек TCP/IP регламентирует взаимодействие разных уровней. Ключевым понятием в здесь являются протоколы, формирующие стек, встраиваясь друг в друга с целью передать данные. Рассмотренная модель по сравнению с OSI имеет более простую архитектуру.
Сама модель остается неизменной, в то время как стандарты протоколов могут обновляться, что еще дальше упрощает работу с TCP/IP. Благодаря всем преимуществам стек TCP/IP получил широкое распространение и использовался сначала в качестве основы для создания глобальной сети, а после для описания работы интернета.
Открытая сетевая модель OSI (Open Systems Interconnection model) состоит из семи уровней. Что это за уровни, как устроена модель и какова ее роль при построении сетей — в статье.
Модель OSI является эталонной. Эталонная она потому, что полное название модели выглядит как «Basic Reference Model Open Systems Interconnection model», где Basic Reference Model означает «эталонная модель». Вначале рассмотрим общую информацию, а потом перейдем к частным аспектам.
Транспортный уровень (transport layer)
Постоянные резиденты транспортного уровня — протоколы TCP и UDP, они занимаются доставкой информации.
TCP (протокол управления передачей) — надежный, он обеспечивает передачу информации, проверяя дошла ли она, насколько полным является объем полученной информации и т.д. TCP дает возможность двум хостам производить обмен пакетами через установку соединения. Он предоставляет услугу для приложений, повторно запрашивает потерянную информацию, устраняет дублирующие пакеты, регулируя загруженность сети. TCP гарантирует получение и сборку информации у адресата в правильном порядке.
UDP (протокол пользовательских датаграмм) — ненадежный, он занимается передачей автономных датаграмм. UDP не гарантирует, что всех датаграммы дойдут до получателя. Датаграммы уже содержат всю необходимую информацию, чтобы дойти до получателя, но они все равно могут быть потеряны или доставлены в порядке отличном от порядка при отправлении.
UDP обычно не используется, если требуется надежная передача информации. Использовать UDP имеет смысл там, где потеря части информации не будет критичной для приложения, например, в видеоиграх или потоковой передаче видео. UDP необходим, когда делать повторный запрос сложно или неоправданно по каким-то причинам.
Протоколы L3 не интерпретируют информацию, полученную с верхнего или нижних уровней, они служат только как канал передачи, но есть исключения. RSVP (Resource Reservation Protocol, протокол резервирования сетевых ресурсов) может использоваться, например, роутерами или сетевыми экранами в целях анализа трафика и принятия решений о его передаче или отклонении в зависимости от содержимого.
Уровневая модель TCP/IP
Три верхних уровня — прикладной, транспортный и сетевой — присутствуют как в RFC, так и у Таненбаума и других авторов. А вот стоит ли говорить только о канальном или о канальном и физическом уровнях — нет единого мнения. В RFC они объединены, поскольку выполняют одну функцию. В статье мы придерживаемся официального интернет-стандарта RFC и не выделяем физический уровень в отдельный. Далее мы рассмотрим четыре уровня модели.
Седьмой уровень, прикладной (application layer)
Седьмой уровень иногда еще называют уровень приложений, но чтобы не запутаться можно использовать оригинальное название — application layer. Прикладной уровень — это то, с чем взаимодействуют пользователи, своего рода графический интерфейс всей модели OSI, с другими он взаимодействует по минимуму.
Все услуги, получаемые седьмым уровнем от других, используются для доставки данных до пользователя. Протоколам седьмого уровня не требуется обеспечивать маршрутизацию или гарантировать доставку данных, когда об этом уже позаботились предыдущие шесть. Задача седьмого уровня — использовать свои протоколы, чтобы пользователь увидел данные в понятном ему виде.
Прикладной уровень (application layer)
В модели TCP/IP отсутствуют дополнительные промежуточные уровни (представления и сеансовый) в отличие от OSI. Функции форматирования и представления данных делегированы библиотекам и программным интерфейсам приложений (API) — своего рода базам знаний. Когда службы или приложения обращаются к библиотеке или API, те в ответ предоставляют набор действий, необходимых для выполнения задачи и полную инструкцию, каким образом эти действия нужно выполнять.
Межсетевой уровень (internet layer)
Каждая индивидуальная сеть называется локальной, глобальная сеть интернет позволяет объединить все локальные сети. За объединение локальных сетей в глобальную отвечает сетевой уровень. Он регламентирует передачу информации по множеству локальных сетей, благодаря чему открывается возможность взаимодействия разных сетей.
Межсетевое взаимодействие — это основной принцип построения интернета. Локальные сети по всему миру объединены в глобальную, а передачу данных между этими сетями осуществляют магистральные и пограничные маршрутизаторы.
Четвертый уровень, транспортный (transport layer, L4)
Все семь уровней модели OSI можно условно разделить на две группы:
- Media layers (уровни среды),
- Host layers (уровни хоста).
Уровни группы Media Layers (L1, L2, L3) занимаются передачей информации (по кабелю или беспроводной сети), используются сетевыми устройствами, такими как коммутаторы, маршрутизаторы и т.п. Уровни группы Host Layers (L4, L5, L6, L7) используются непосредственно на устройствах, будь то стационарные компьютеры или портативные мобильные устройства.
Четвертый уровень — это посредник между Host Layers и Media Layers, относящийся скорее к первым, чем к последним, его главной задачей является транспортировка пакетов. Естественно, при транспортировке возможны потери, но некоторые типы данных более чувствительны к потерям, чем другие. Например, если в тексте потеряются гласные, то будет сложно понять смысл, а если из видеопотока пропадет пара кадров, то это практически никак не скажется на конечном пользователе. Поэтому, при передаче данных, наиболее чувствительных к потерям на транспортном уровне используется протокол TCP, контролирующий целостность доставленной информации.
Для мультимедийных файлов небольшие потери не так важны, гораздо критичнее будет задержка. Для передачи таких данных, наиболее чувствительных к задержкам, используется протокол UDP, позволяющий организовать связь без установки соединения.
При передаче по протоколу TCP, данные делятся на сегменты. Сегмент — это часть пакета. Когда приходит пакет данных, который превышает пропускную способность сети, пакет делится на сегменты допустимого размера. Сегментация пакетов также требуется в ненадежных сетях, когда существует большая вероятность того, что большой пакет будет потерян или отправлен не тому адресату. При передаче данных по протоколу UDP, пакеты данных делятся уже на датаграммы. Датаграмма (datagram) — это тоже часть пакета, но ее нельзя путать с сегментом.
Главное отличие датаграмм в автономности. Каждая датаграмма содержит все необходимые заголовки, чтобы дойти до конечного адресата, поэтому они не зависят от сети, могут доставляться разными маршрутами и в разном порядке. Датаграмма и сегмент — это два PDU транспортного уровня модели OSI. При потере датаграмм или сегментов получаются «битые» куски данных, которые не получится корректно обработать.
Первые четыре уровня — специализация сетевых инженеров, но с последними тремя они не так часто сталкиваются, потому что пятым, шестым и седьмым занимаются разработчики.
Принцип устройства сетевой модели
Сетевая модель OSI имеет семь уровней, иерархически расположенных от большего к меньшему. То есть, самым верхним является седьмой (прикладной), а самым нижним — первый (физический). Модель OSI разрабатывалась еще в 1970-х годах, чтобы описать архитектуру и принципы работы сетей передачи данных. Важно помнить, что данные передаются не только по сети интернет, но и в локальных сетях с помощью проводных или беспроводных соединений.
На седьмом уровне информация представляется в виде данных, на первом — в виде бит. Процесс, когда информация отправляется и переходит из данных в биты, называется инкапсуляцией. Обратный процесс, когда информация, полученная в битах на первом уровне, переходит в данные на седьмом, называется декапсуляцией. На каждом из семи уровней информация представляется в виде блоков данных протокола — PDU (Protocol Data Unit).
Рассмотрим на примере: пользователь 1 отправляет картинку, которая обрабатывается на седьмом уровне в виде данных, данные должны пройти все уровни до самого нижнего (первого), где будут представлены как биты. Этот процесс называется инкапсуляцией. Компьютер пользователя 2 принимает биты, которые должны снова стать данными. Этот обратный процесс называется декапсуляция. Что происходит с информацией на каждом из семи уровней, как и где биты переходят в данные мы разберем в этой статье.
Маска подсети и IP-адреса
Маска подсети помогает маршрутизатору понять, как и куда передавать пакет. Подсетью может являться любая сеть со своими протоколами. Маршрутизатор передает пакет напрямую, если получатель находится в той же подсети, что и отправитель. Если же подсети получателя и отправителя различаются, пакет передается на второй маршрутизатор, со второго на третий и далее по цепочке, пока не достигнет получателя.
Протокол интернета — IP (Internet Protocol) используется маршрутизатором, чтобы определить, к какой подсети принадлежит получатель. Свой уникальный IP-адрес есть у каждого сетевого устройства, при этом в глобальной сети не может существовать два устройства с одинаковым IP. Он имеет два подвида, первым был принят IPv4 (IP version 4, версии 4) в 1983 году.
IPv4 предусматривает назначение каждому устройству 32-битного IP-адреса, что ограничивало максимально возможное число уникальных адресов 4 миллиардами (2 32 ). В более привычном для человека десятичном виде IPv4 выглядит как четыре блока (октета) чисел от 0 до 255, разделенных тремя точками. Первый октет IP-адреса означает его класс, классов всего 4: A, B, C, D.
IPv6 имеет вид восьми блоков по четыре шестнадцатеричных значения, а каждый блок разделяется двоеточием. IPv6 выглядит следующим образом:
Так как IPv6 адреса длинные, их разрешается сокращать по следующим правилам: ведущие нули допускается опускать, например в адресе выше :00FF: позволяется записывать как :FF:, группы нулей, идущие подряд тоже допустимо сокращать и заменять на двойное двоеточие, например, 2DAB:FFFF::01AA:00FF:DD72:2C4A. Допускается делать не больше одного подобного сокращения в адресе IPv6.
IP предназначен для определения адресата и доставки ему информации, он предоставляет услугу для вышестоящих уровней, но не гарантирует целостность доставляемой информации.
ICMP и IGMP
ICMP никогда не вызывается сетевыми приложениями пользователя, кроме случаев диагностики сети, к примеру, пинг (ping) или traceroute (tracert). ICMP не передает данные, это отличает его от транспортных TCP и UDP, расположенных на L3, которые переносят любые данные. ICMP работает только с IP четвертой версии, с IPv6 взаимодействует ICMPv6.
Сетевые устройства объединяются в группы при помощи IGMP, используемый хостами и роутерами в IPv4 сетях. IGMP организует multicast-передачу информации, что позволяет сетям направлять информацию только хостам, запросившим ее. Это удобно для онлайн-игр или потоковой передаче мультимедиа. IGMP используется только в IPv4 сетях, в сетях IPv6 используется MLD (Multicast Listener Discovery, протокол поиска групповых слушателей), инкапсулированный в ICMPv6.
Первый, физический уровень (physical layer, L1)
Начнем с самого нижнего уровня. Он отвечает за обмен физическими сигналами между физическими устройствами, «железом». Компьютерное железо не понимает, что такое картинка или что на ней изображено, железу картинка понятна только в виде набора нулей и единиц, то есть бит. В данном случае бит является блоком данных протокола, сокращенно PDU (Protocol Data Unit).
Каждый уровень имеет свои PDU, представляемые в той форме, которая будет понятна на данном уровне и, возможно, на следующем до преобразования. Работа с чистыми данными происходит только на уровнях с пятого по седьмой.
Устройства физического уровня оперируют битами. Они передаются по проводам (например, через оптоволокно) или без проводов (например, через Bluetooth или IRDA, Wi-Fi, GSM, 4G и так далее).
Читайте также: