Скачать презентацию Стек протоколов TCP IP Протокол Протокол Скачать презентацию Стек протоколов TCP IP Протокол Протокол

БД.tcpip.ppt

  • Количество слайдов: 101

Стек протоколов TCP/IP Стек протоколов TCP/IP

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

Стек протоколов TCP/IP • = стек Internet = стек Do. D • Основы созданы Стек протоколов TCP/IP • = стек Internet = стек Do. D • Основы созданы в рамках проекта ARPANET • В настоящее время развивается IETF – Internet Engineering Task Force - Инженерный совет Интернета – Действует под эгидой ISOC (Общества Интернета, Internet Society) • Описан в виде набора спецификаций и стандартов RFC – RFC = Request for Comments – Каждый документ RFC имеет номер и текущий статус

Уровни стека TCP/IP • 1. Прикладной – HTTP, FTP, DNS • 2. Транспортный – Уровни стека TCP/IP • 1. Прикладной – HTTP, FTP, DNS • 2. Транспортный – TCP, UDP • 3. Сетевой – IP, ICMP, IGMP, RIP, IPsec, OSPF • 4. Канальный – Ethernet, Wireless Ethernet, Token Ring

Соответствие модели OSI Соответствие модели OSI

Стек протоколов TCP/IP Сетевой уровень Стек протоколов TCP/IP Сетевой уровень

Протоколы сетевого уровня • • • IP/IPv 4/IPv 6 (Internet Protocol), ICMP (Internet Control Протоколы сетевого уровня • • • IP/IPv 4/IPv 6 (Internet Protocol), ICMP (Internet Control Message Protocol), IGMP (Internet Group Management Protocol), RIP (Routing Information Protocol), OSPF (Open Shortest Path First). IPsec (Internet Protocol Security).

IP (Internet Protocol) • Базовый протокол • Адресация – IP-адрес • Фрагментация – Датаграммы IP (Internet Protocol) • Базовый протокол • Адресация – IP-адрес • Фрагментация – Датаграммы (пакеты)-> фрагменты • RFC 791 – Обновления: RFC 1349, RFC 2474

IP-пакет (IP-datagram) Смеще ние в битах 0 -3 4 -7 8 -13 14 -15 IP-пакет (IP-datagram) Смеще ние в битах 0 -3 4 -7 8 -13 14 -15 0 Версия Размер заголовка DSCP ECN 32 64 Идентификатор Время жизни 16 -18 19 -31 Размер пакета Флаги Протокол Смещение фрагмента Контрольная сумма заголовка 96 Адрес источника 128 Адрес назначения 160 Опции (если размер заголовка > 5) 160 или 192+ Данные

IP-пакет (2) • Версия протокола – 4 бита – IPv 4 – 4, IPv IP-пакет (2) • Версия протокола – 4 бита – IPv 4 – 4, IPv 6 – 6 • Размер заголовка пакета – – в 32 -битных словах переменный, т. к. число опций не постоянно min – 5 (5× 32=160 бит, 20 байт), max – 15 (60 байт).

IP-пакет (3) • Differentiated Services Code Point (DSCP) – 5 бит – в первых IP-пакет (3) • Differentiated Services Code Point (DSCP) – 5 бит – в первых спецификациях «тип обслуживания» (Type of Service) – используется для разделения трафика на классы обслуживания, например для установки приоритета • Explicit Congestion Notification (ECN) – Указатель перегрузки – Предупреждение о перегрузке сети без потери пакетов. – Является необязательной функцией и используется только если оба хоста её поддерживают.

IP-пакет (4) • Размер пакета – 16 -битный полный размер пакета в байтах, включая IP-пакет (4) • Размер пакета – 16 -битный полный размер пакета в байтах, включая заголовок и данные; – min размер - 20 байт (заголовок без данных); – max — 65535 байт. – Пакеты большего размера, чем поддерживает канал связи, фрагментируются. • Идентификатор – используется для идентификации фрагментов пакета если он был фрагментирован.

IP-пакет (5) • Флаги контроля над фрагментацией – – 3 бита 0 (старший): должен IP-пакет (5) • Флаги контроля над фрагментацией – – 3 бита 0 (старший): должен быть равен 0 1: можно / нельзя фрагментировать (0/1) 2: последний фрагмент / есть еще фрагменты (0/1). • Смещение фрагмента – 13 бит, указывает смещение текущего фрагмента от начала передачи фрагментированного пакета в блоках по 8 байт, – Первый фрагмент в последовательности имеет нулевое смещение.

IP-пакет (6) • «Время жизни» (Time to Live, TTL) пакета – max количество маршрутизаторов IP-пакет (6) • «Время жизни» (Time to Live, TTL) пакета – max количество маршрутизаторов (транзитных участков, hops); – каждый маршрутизатор уменьшает время жизни пакетов на единицу; – пакеты, время жизни которых стало равно нулю уничтожаются; – позволяет предотвратить хождение невостребованных пакетов; – отправившему посылается сообщение ICMP (Time Exceeded - 11).

IP-пакет (7) • Протокол – Указывает, данные какого протокола содержит пакет – Например: TCP IP-пакет (7) • Протокол – Указывает, данные какого протокола содержит пакет – Например: TCP (6), UDP (17), ICMP (1) • Контрольная сумма заголовка – 16 -битная контрольная сумма. – Каждый хост или маршрутизатор сравнивает контрольную сумму заголовка со значением этого поля и отбрасывает пакет, если они не совпадают. – Целостность данных IP не проверяет — она проверяется протоколами более высоких уровней (такими, как TCP или UDP), которые тоже используют контрольные суммы. – Пересчитывается на каждом шаге

IP-пакет (8) • Адрес источника – 32 -битный адрес отправителя пакета. – Может не IP-пакет (8) • Адрес источника – 32 -битный адрес отправителя пакета. – Может не совпадать с настоящим адресом отправителя из-за трансляции адресов (NAT). • Адрес назначения – 32 -битный адрес получателя пакета. • Опции – За адресом назначения может следовать поле дополнительных опций, но оно используется редко. – Размер заголовка в этом случае должен быть достаточным чтобы вместить все опции (с учетом дополнения до целого числа 32 -битных слов).

IP-адрес (v 4) • IPv 4 – 4 байта – Запись адреса: 195. 19. IP-адрес (v 4) • IPv 4 – 4 байта – Запись адреса: 195. 19. 243. 100 • IP-адрес состоит из двух частей: – Адрес подсети (начало) – Номер узла (окончание) • Информация о подсети необходима для маршрутизации • 2 способа определения адреса подсети – Классовая адресация – Бесклассовая адресация

Классовая адресация Leadi ng bits Bits for network number Bits for address Number of Классовая адресация Leadi ng bits Bits for network number Bits for address Number of networks Addresses per network Start address End address Class A 0 8 24 128 16, 777, 216 0. 0 127. 255 Class B 10 16 16 16, 384 65, 536 128. 0. 0. 0 191. 255 Class C 110 24 8 2, 097, 152 256 192. 0. 0. 0 223. 255 Class D (multicast) 1110 not defined 224. 0. 0. 0 239. 255 Class E (reserved) 1111 not defined 240. 0 255

Замечание • В настоящее время классы адресов на практике не используются. Выделение адреса подсети Замечание • В настоящее время классы адресов на практике не используются. Выделение адреса подсети выполняется с помощью маски подсети переменной длины (Variable Length Subnet Mask, VLSM).

Маска подсети • Маска подсети - битовая маска, определяющая, какая часть IP-адреса узла сети Маска подсети • Маска подсети - битовая маска, определяющая, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. • Структура: – – непрерывный блок из « 1» , затем непрерывный блок из « 0»

Бесклассовая адресация • Запись: «IP-адрес/количество единичных бит в маске» • Чтобы получить адрес полсети, Бесклассовая адресация • Запись: «IP-адрес/количество единичных бит в маске» • Чтобы получить адрес полсети, зная IP-адрес и маску подсети, необходимо применить к ним операцию поразрядной конъюнкции (побитового умножения) • Используется маршрутизаторами для перенаправления пакетов в нужную подсеть

Частные IP-адреса • Диапазоны адресов, выделенные для использования в локальных сетях • 10. 0 Частные IP-адреса • Диапазоны адресов, выделенные для использования в локальных сетях • 10. 0 — 10. 255, • 172. 16. 0. 0 — 172. 31. 255, • 192. 168. 0. 0 — 192. 168. 255.

IP (v 6) • 16 байт (128 бит) – 2001: 0 db 8: 85 IP (v 6) • 16 байт (128 бит) – 2001: 0 db 8: 85 a 3: 0042: 0000: 8 a 2 e: 0370: 7334 • Бесклассовая адресация • В настоящее время поддерживается новыми устройствами и ОС – и не поддерживается старыми • Пока мало распространен в России

Коммутация пакетов • Фрагментирование, пересылка и “сборка” пакетов (datagramm) • Достоинства – Эффективное использование Коммутация пакетов • Фрагментирование, пересылка и “сборка” пакетов (datagramm) • Достоинства – Эффективное использование пропускной способности – Надежность • Недостатки – Замедляет скорость взаимодействия конкретной пары узлов

IP: надежность • IP – протокол без установки соединения (connectionless). • IP – протокол IP: надежность • IP – протокол без установки соединения (connectionless). • IP – протокол с негарантированной доставкой (best-effort delivery).

Протокол ICMP (Internet Control Message Protocol) • Протокол межсетевых управляющих сообщений • Обязательный протокол Протокол ICMP (Internet Control Message Protocol) • Протокол межсетевых управляющих сообщений • Обязательный протокол стека TCP/IP • Работает на сетевом уровне поверх протокола IP – Однако необходим для работы IP • RFC 792 – Обновления: RFC 950, 1122, 1812, 4443 и др. • Версии – ICMPv 4 – ICMPv 6

Назначение ICMP • Передача сообщений о проблемах, возникших при передаче данных – Узел недоступен, Назначение ICMP • Передача сообщений о проблемах, возникших при передаче данных – Узел недоступен, – Время жизни истекло, – Неверный параметр и др. • Сервисные функции – Перенаправление – Объявление, запрос маршрутизатора – Запрос маски адреса подсети • Диагностические приложения – ping – traceroute

Пакет ICMP Bits 0– 7 8– 15 0 Тип Код 32 16– 23 24– Пакет ICMP Bits 0– 7 8– 15 0 Тип Код 32 16– 23 24– 31 Контр. сумма Данные • Объем и характер данных зависит от типа пакета

Правила генерации ICMP-пакетов • При потере ICMP-пакета никогда не генерируется новый. • ICMP-пакеты не Правила генерации ICMP-пакетов • При потере ICMP-пакета никогда не генерируется новый. • ICMP-пакеты не генерируются в ответ на IPпакеты с широковещательным или групповым адресом – чтобы не вызывать перегрузку в сети. • При повреждении фрагментированного IP-пакета ICMP-сообщение отправляется только после получения первого повреждённого фрагмента – поскольку отправитель всё равно повторит передачу всего IP-пакета целиком.

Протокол IGMP (Internet Group Management Protocol) • Протокол управления групповой (multicast) передачей данных в Протокол IGMP (Internet Group Management Protocol) • Протокол управления групповой (multicast) передачей данных в IP-сетях – например, для поддержки потокового видео и онлайнигр • Работает на сетевом уровне поверх протокола IP • RFC 3376 • Версии – в Ipv 4 - IGMPv 3 – в IPv 6 заменен протоколом Multicast Listener Discovery

IGMP • Реализован в виде серверной и клиентской частей – Сервер – маршрутизатор – IGMP • Реализован в виде серверной и клиентской частей – Сервер – маршрутизатор – Клиент – узел сети, получающий групповой трафик. • Клиент – посылает уведомление о принадлежности к какойлибо группе локальному маршрутизатору • Маршрутизатор (сервер) – находится в ожидании уведомлений и периодически рассылает клиентам запросы.

Передаваемая информация • Запрос принадлежности (Membership Query Message) – рассылаются маршрутизаторами для выяснения принадлежности Передаваемая информация • Запрос принадлежности (Membership Query Message) – рассылаются маршрутизаторами для выяснения принадлежности каждого узла к каким-либо группам (group membership state) и получения списка источников информации, от которых данный узел хочет получать сообщения (reception state). – Отчёт о принадлежности (Membership Report Message) – Возвращает маршрутизатору информацию о принадлежности к группе

Типы запросов принадлежности • Общие запросы (General Queries) – позволяют получить полную информацию для Типы запросов принадлежности • Общие запросы (General Queries) – позволяют получить полную информацию для каждого из узлов; – маршрутизатор периодически рассылает эти запросы всем узлам, подключенным к его сети. • Запросы с указанием группы (Group-Specific Queries) – используются для определения состояния подписки для заданной группы узлов; – рассылаются по соответствующему групповому адресу.

Типы запросов принадлежности (2) • Запросы с указанием группы и источника (Groupand-Source-Specific Queries) – Типы запросов принадлежности (2) • Запросы с указанием группы и источника (Groupand-Source-Specific Queries) – позволяет для каждого узла заданной группы определить, какие сообщения из всех, посылаемых заданными источниками, этот узел хочет получать.

Протоколы маршрутизации • Предназначены для обновления маршрутной информации – Используется маршрутизаторами • RIP (Routing Протоколы маршрутизации • Предназначены для обновления маршрутной информации – Используется маршрутизаторами • RIP (Routing Information Protocol) • OSPF (Open Shortest Path First) • BGP (Border Gateway Protocol)

Протокол RIP (Routing Information Protocol) • Первый протокол маршрутизации сети ARPANET • Работает на Протокол RIP (Routing Information Protocol) • Первый протокол маршрутизации сети ARPANET • Работает на прикладном уровне поверх протокола UDP • RFC 1058 • Применяется в небольших сетях

RIP • Маршрутная информация – вектор, компонентами которого являются расстояния от данного маршрутизатора до RIP • Маршрутная информация – вектор, компонентами которого являются расстояния от данного маршрутизатора до всех известных ему сетей – метрика – “прыжки” (hops) – max = 15 hops – дополняется (удлиняется) за счет информации от других маршрутизаторов – периодически (раз в 30 сек) рассылается по сети • широковещательно => загрузка сети • Алгоритм Беллмана – Форда – поиск кратчайших путей в графе • Не годится для крупных сетей

Протокол OSPF (Open Shortest Path First) • Протокол динамической маршрутизации, основанный на технологии отслеживания Протокол OSPF (Open Shortest Path First) • Протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) • Работает на сетевом уровне поверх протокола IP • RFC 2328 • Учитывает состояние сети – метрика – «стоимость» пересылки данных по каналу • Используется для взаимодействия маршрутизаторов одной автономной системы (autonomous system)

Автономная система (AS) • Система IP-сетей и маршрутизаторов, управляемых одним или несколькими операторами, имеющими Автономная система (AS) • Система IP-сетей и маршрутизаторов, управляемых одним или несколькими операторами, имеющими единую политику маршрутизации • ≈ провайдер • RFC 1930 • Каждая AS имеет уникальный номер (ASN) • На настоящий момент зарегистрировано около 40 тысяч автономных систем

OSPF: алгоритм • Поиск смежных (соседних) маршрутизаторов • Смежные маршрутизаторы синхронизирует между собой базу OSPF: алгоритм • Поиск смежных (соседних) маршрутизаторов • Смежные маршрутизаторы синхронизирует между собой базу данных состояния каналов – обмен состояниями каналов между смежными маршрутизаторами – передача копии данных другим смежным маршрутизаторам. • Построение таблицы маршрутизации – каждый маршрутизатор строит граф – дерево кратчайших путей от себя к каждому известному пункту назначения (Алгоритм Дейкстры) – таблица маршрутизации формируется из своего дерева кратчайших путей.

Протокол BGP (Border Gateway Protocol) • Протокол граничного шлюза • Предназначен для обмена информацией Протокол BGP (Border Gateway Protocol) • Протокол граничного шлюза • Предназначен для обмена информацией между автономными системами (AS) – информация включает в себя список AS, к которым имеется доступ через данную систему. • Выбор наилучших маршрутов выполняется, исходя из правил, принятых в сети данной AS. • Является протоколом прикладного уровня и функционирует поверх протокола TCP.

Стек протоколов TCP/IP Транспортный уровень Стек протоколов TCP/IP Транспортный уровень

Протокол TCP (Transmission Control Protocol) • Один из основных транспортных протоколов Интернета • Работает Протокол TCP (Transmission Control Protocol) • Один из основных транспортных протоколов Интернета • Работает на транспортном уровне • Надежность – поток данных с предварительной установкой соединения – повторный запрос утерянных данных – уведомление о доставке • RFC 793 – обновления: RFC 1122, 3168, 6093, 6528

TCP • Порт – Числовой идентификатор – Возможность работы с несколькими клиентами на одном TCP • Порт – Числовой идентификатор – Возможность работы с несколькими клиентами на одном компьютере • адрес + порт = сокет (socket) • Данные – сегмент (segment) • Алгоритм работы – Установка соединения ( «рукопожатие» ) – Передача данных – Завершение соединения

Сегмент TCP Бит 0 0 — 3 4 — 9 10 — 15 16 Сегмент TCP Бит 0 0 — 3 4 — 9 10 — 15 16 — 31 Порт источника Порт назначения 32 Номер последовательности 64 Номер подтверждения 96 128 Смещение Зарезервиданных ровано Флаги Контрольная сумма Размер Окна Указатель важности 160 Опции (необязательное, но используется практически всегда) 160/ 192 + Данные

Сегмент TCP (2) • Порт источника – 16 бит – идентифицирует приложение клиента, с Сегмент TCP (2) • Порт источника – 16 бит – идентифицирует приложение клиента, с которого отправлены пакеты; – по возвращении данные передаются клиенту на основании номера порта источника. • Порт назначения – 16 бит – порт, на который отправлен пакет.

Стандартные TCP-порты • • • 20/21 — FTP 22 — SSH 23 — Telnet Стандартные TCP-порты • • • 20/21 — FTP 22 — SSH 23 — Telnet 25 — SMTP 80 — HTTP 110 — POP 3 443 — HTTPS (Secure HTTP) 1863 — MSN Messenger 2000 — Cisco SCCP (Vo. IP) 3389 — RDP 8080 — альтернативный порт HTTP

Сегмент TCP (3) • Номер последовательности (Sequence Number) – каждый байт передаваемых данных идентифицирован Сегмент TCP (3) • Номер последовательности (Sequence Number) – каждый байт передаваемых данных идентифицирован номером последовательности – 32 бита – это позволяет контролировать корректность передачи данных – операции с номером последовательности выполняются по модулю 2^32 – При установке соединения задается начальный номер – initial sequence number (ISN)

Сегмент TCP (4) • Номер подтверждения (Acknowledgment number) – если установлен флаг ACK – Сегмент TCP (4) • Номер подтверждения (Acknowledgment number) – если установлен флаг ACK – содержит номер последовательности, ожидаемый получателем в следующий раз. Помечает этот сегмент как подтверждение получения • Смещение данных (Data offset ) – размер заголовка TCP в 4 -байтных (4 -октетных) словах. – начало блока данных – min = 5 слов, max = 15 (от 20 до 60 байт)

Сегмент TCP (5) • Зарезервировано (Reserved) – 6 бит – для будущего использования (дополнительные Сегмент TCP (5) • Зарезервировано (Reserved) – 6 бит – для будущего использования (дополнительные флаги) – должны устанавливаться в ноль – 5 -й и 6 -й уже определены: • Для уведомлений о перегрузках в сети • => зарезервировано 4 бита

Сегмент TCP (6) • Флаги (управляющие биты, управляющее слово) – 6 битовых флагов: • Сегмент TCP (6) • Флаги (управляющие биты, управляющее слово) – 6 битовых флагов: • URG — использовать поле «Указатель важности» • ACK — использовать поле «Номер подтверждения» • PSH — (Push function) инструктирует получателя протолкнуть данные, накопившиеся в приемном буфере, в приложение пользователя • RST — оборвать соединения, сбросить буфер • SYN — синхронизация номеров последовательности • FIN — завершение соединения.

Сегмент TCP (7) • Окно (Window) – число, определяющее в байтах размер данных, которые Сегмент TCP (7) • Окно (Window) – число, определяющее в байтах размер данных, которые отправитель готов принять. • Контрольная сумма – Рассчитывается на основании заголовка, псевдозаголовка (!) и данных – Сегмент должен быть кратен 16 -битам • Если длина сегмента не кратна 16 -ти битам, то она увеличивается до кратной 16 -ти за счет нулевых битов. • Биты заполнения (0) не передаются в сообщении и служат только для расчёта контрольной суммы. • При расчёте контрольной суммы значение самого поля контрольной суммы принимается равным 0.

Псевдозаголовок Биты 0 – 7 8 – 15 16 – 31 0 -31 IP-адрес Псевдозаголовок Биты 0 – 7 8 – 15 16 – 31 0 -31 IP-адрес отправителя 32 -63 IP-адрес получателя 64 -95 0 0 0 0 Протокол Длина TCP-сегмента • Для надежности передачи требуется контроль адреса отправителя и получателя – не передается в TCP-сегменте, – учитывается при расчете контрольной суммы.

Псевдозаголовок (2) • IP-адрес отправителя (Source address) • IP-адрес получателя (Destination address) • Протокол Псевдозаголовок (2) • IP-адрес отправителя (Source address) • IP-адрес получателя (Destination address) • Протокол (Protocol) – 6 (=TCP) – см. поле «Протокол» в IP-пакете • Длина TCP-сегмента (TCP length) – TCP-заголовок + данные – без учета псевдозаголовка

Сегмент TCP (8) • Указатель важности – 16 -бит – порядковый номер октета (байта), Сегмент TCP (8) • Указатель важности – 16 -бит – порядковый номер октета (байта), которым заканчиваются важные (urgent) данные; – принимается во внимание только для пакетов с установленным флагом URG. • Опции – применяются в некоторых случаях для расширения протокола; – иногда используются для тестирования; – практически всегда включают: • No-operation (0 x 1, 1 байт) + End of option list (0 x 0, 1 байт) • Временные отметки (timestamps) (4 байта).

Логика работы TCP • Установка соединения ( «рукопожатие» ) – 0) пассивное открытие (сервер) Логика работы TCP • Установка соединения ( «рукопожатие» ) – 0) пассивное открытие (сервер) • привязка к порту (Bind), • открытие порта для подключений (Listen) – 1) SYN (клиент) • Случайный номер последовательности (A) – 2) SYN-ACK (сервер) • Номер подтверждения = A + 1 • Случайный номер последовательности (B) – 3) ACK (клиент) • Номер последовательности = A + 1 • Номер подтверждения = B + 1

Логика работы TCP (2) • Передача данных – Упорядоченная передача данных • учет номера Логика работы TCP (2) • Передача данных – Упорядоченная передача данных • учет номера последовательности – Неподтвержденные пакеты высылаются заново – Контроль ошибок • повторная отправка пакетов с неверной контрольной суммой – Контроль передачи (flow control) • управление объемом передаваемых данных путем изменения размеров окна • при переполнении буфера приема передача приостанавливается (размер окна = 0) – Контроль перегрузки сети

Логика работы TCP (3) • Завершение соединения (Close) – 1) FIN (узел 1) – Логика работы TCP (3) • Завершение соединения (Close) – 1) FIN (узел 1) – 2) FIN-ACK (узел 2) – 3) ACK (узел 1)

Применение TCP • • • RDP (Remote Desktop Protocol) HTTP (Hyper. Text Transfer Prоtocоl), Применение TCP • • • RDP (Remote Desktop Protocol) HTTP (Hyper. Text Transfer Prоtocоl), SMTP (Simple Mail Transfer Protocol), POP 3 (Post Office Protocol Version 3), IMAP (Internet Message Access Protocol), FTP (File Transfer Protocol), SSH (Secure Shell), Работа с базами данных Удаленное взаимодействие программ – Компонентное программирование

Протокол UDP (User Datagram Protocol) • Один из основных транспортных протоколов Интернета • Работает Протокол UDP (User Datagram Protocol) • Один из основных транспортных протоколов Интернета • Работает на транспортном уровне • Простая модель передачи – – – без предварительной установки соединения без контроля порядка прихода и целостности данных высокая производительность – низкая надежность «Unreliable Datagram Protocol» Надежная передача в случае необходимости должна реализовываться пользовательским приложением • RFC 768

Датаграмма UDP Биты 0 - 15 16 - 31 0 -31 Порт отправителя (Source Датаграмма UDP Биты 0 - 15 16 - 31 0 -31 Порт отправителя (Source port) Порт получателя (Destination port) 32 -63 Длина датаграммы (Length) Контрольная сумма (Checksum) 64 -. . . Данные (Data)

Датаграмма UDP (2) • Порт отправителя – 16 бит – идентифицирует приложение клиента, с Датаграмма UDP (2) • Порт отправителя – 16 бит – идентифицирует приложение клиента, с которого отправлены данные; – задает точку возврата (для отсылки ответных датаграмм). • Порт получателя – 16 бит – порт, на который отправлена датаграмма.

Датаграмма UDP (3) • Длина датаграммы – длина всей датаграммы (заголовок + данные) в Датаграмма UDP (3) • Длина датаграммы – длина всей датаграммы (заголовок + данные) в байтах – min = 8 байт (только заголовок) – max = 65507 = 65535 - 8 (UDP-заголовок) - 20 (IPзаголовок). • Контрольная сумма – для проверки заголовка и данных на ошибки. – вычисляется на основании заголовка, псевдозаголовка (!) и данных – использование не обязательно • заполняется нулями

Псевдозаголовок Биты 0 – 7 8 – 15 0 -31 IP-адрес отправителя 32 -63 Псевдозаголовок Биты 0 – 7 8 – 15 0 -31 IP-адрес отправителя 32 -63 16 – 31 IP-адрес получателя 64 -95 0 0 0 0 Протокол Длина UDPдатаграммы • Для контроля адресов отправителя и получателя – не передается в самой UDP-датаграмме, – учитывается при расчете контрольной суммы.

Применение UDP • • • DNS (Domain Name System) SNMP (Simple Network Management Protocol) Применение UDP • • • DNS (Domain Name System) SNMP (Simple Network Management Protocol) RIP (Routing Information Protocol) DHCP (Dynamic Host Configuration Protocol) Голосовой и видеотрафик – при потере отдельных пакетов качество уменьшается, но незначительно

Стек протоколов TCP/IP Безопасность передачи данных Стек протоколов TCP/IP Безопасность передачи данных

Безопасность передачи данных • Необходимо защищать критические важные данные при передаче по открытым каналам Безопасность передачи данных • Необходимо защищать критические важные данные при передаче по открытым каналам связи • Шифрование данных – Симметричное (закрытый ключ) – Ассиметричное (закрытый + открытый ключ) = шифрование с открытым ключом • Основные протоколы (стандарты IETF) – IPSec – SSL (TLS) – SSH

IPSec • IP Security • Набор протоколов для обеспечения защиты данных, передаваемых по протоколу IPSec • IP Security • Набор протоколов для обеспечения защиты данных, передаваемых по протоколу IP – подтверждение подлинности – шифрование IP-пакетов – протоколы для защищённого обмена ключами • Функционирует на сетевом уровне • Используется для безопасной передачи IPпакетов по любому транспортному протоколу – VPN (Virtual Private Network)

VPN (Virtual Private Network) • Технологии, позволяющие обеспечить одно или несколько защищенных сетевых соединений VPN (Virtual Private Network) • Технологии, позволяющие обеспечить одно или несколько защищенных сетевых соединений (защищенную логическую сеть) поверх другой сети (Интернет) • Виды соединений: – узел-узел, – узел-сеть, – сеть-сеть. • Туннелирование

Туннелирование (tunneling) • Процесс создания защищенного логического соединения между двумя узлами посредством инкапсуляции различных Туннелирование (tunneling) • Процесс создания защищенного логического соединения между двумя узлами посредством инкапсуляции различных протоколов • Особенность – инкапсулируемый протокол относится к тому же (в IPSec) или более низкому уровню (в SSH), чем используемый в качестве тоннеля.

Особенности IPSec • Преимущества: – работа на сетевом уровне (ниже, чем другие стандарты) • Особенности IPSec • Преимущества: – работа на сетевом уровне (ниже, чем другие стандарты) • любой IP-трафик; – поддержка разных транспортных протоколов. • Недостатки: – сложность реализации; – дополнительные требования к оборудованию сети (маршрутизаторы, шлюзы); – отдельные реализации не всегда корректно взаимодействуют друг с другом.

SSL/TLS • Secure Sockets Layer • Transport Layer Security – развивает стандарт SSL – SSL/TLS • Secure Sockets Layer • Transport Layer Security – развивает стандарт SSL – основан на SSL 3. 0 • Функционирует на прикладном уровне – поверх транспортного протокола TCP • Ориентирован на клиент-серверные приложения – дает возможность осуществлять взаимодействие клиента и сервера, чтобы предотвратить прослушивание и несанкционированный доступ

SSL/TLS (2) • Применение – – Web (HTTPS) E-mail (SMTP, POP 3, IMAP поддерживают SSL/TLS (2) • Применение – – Web (HTTPS) E-mail (SMTP, POP 3, IMAP поддерживают SSL), обмен мгновенными сообщениями (instant messaging) VPN

Особенности SSL/TLS • Преимущества: – популярен в Интернет (используется в большинстве защищенных соединений) • Особенности SSL/TLS • Преимущества: – популярен в Интернет (используется в большинстве защищенных соединений) • Недостатки: – основан на транспорте TCP (нет возможности использовать UDP) • ограничение производительности; – дополнительные требования к программному обеспечению для поддержки TLS.

SSH • Secure Shell (SSH) • Функционирует на прикладном уровне – поверх транспортного протокола SSH • Secure Shell (SSH) • Функционирует на прикладном уровне – поверх транспортного протокола TCP • Назначение – проектировался для удаленного доступа к компьютеру через командную оболочку (как TELNET, но защищенный) – безопасная передача данных любой природы (файлы, потоки звука, видео) – туннелирование TCP-соединений (VPN)

Особенности SSH • Преимущества: – удобен для создания туннеля для приложений, использующих TCP/IP; – Особенности SSH • Преимущества: – удобен для создания туннеля для приложений, использующих TCP/IP; – передача данных любой природы. • Недостатки: – трудность использования в сетях с большим числом шлюзов (брандмауэры); – большая нагрузка на внутрисетевой трафик; • транспорт – TCP (нет возможности использовать UDP).

Стек протоколов TCP/IP Прикладной уровень Стек протоколов TCP/IP Прикладной уровень

Протокол HTTP • Hyper. Text Transfer Prоtocоl – Гипертекст – это набор элементов информации Протокол HTTP • Hyper. Text Transfer Prоtocоl – Гипертекст – это набор элементов информации (объектов), организованных в сеть с помощью логических связей (гиперссылок) • Основной протокол Web • Работает на прикладном уровне – поверх транспортного протокола TCP • RFC 2616 (версия 1. 1) – Обновления: 2817, 5785, 6266

Протокол HTTP (2) • Основан на архитектуре клиент-сервер – Web-сервер = HTTP-сервер – клиент Протокол HTTP (2) • Основан на архитектуре клиент-сервер – Web-сервер = HTTP-сервер – клиент – Web-браузер – схема «запрос-ответ» • обмен HTTP-сообщениями • Основной объект манипуляции в HTTP – запрашиваемый ресурс – на ресурс указывает URI (Uniform Resource Identifier) в запросе клиента

Протокол HTTP (3) • Может поддерживать постоянное соединение • HTTP 1. 0 – одно Протокол HTTP (3) • Может поддерживать постоянное соединение • HTTP 1. 0 – одно TCP-соединение на запрос • HTTP 1. 1 позволяет использовать одно соединение на весь сеанс работы • Не поддерживает состояний – Не «помнит» предыдущих действий клиента – Поддержка состояний обычно реализуется серверным приложением (Web-сервером) • cookie-less • Предусматривает кэширование – Proxy-серверы – кэш Web-браузера

HTTP-сообщение • Стартовая строка (Starting line) – определяет тип сообщения; – обязательный элемент • HTTP-сообщение • Стартовая строка (Starting line) – определяет тип сообщения; – обязательный элемент • Заголовки (Header Fields) – характеризуют тело сообщения, параметры передачи и прочие сведения; • Тело сообщения (Message Body) – данные сообщения – должно отделяться от заголовков пустой строкой.

Запрос (Request) • Стартовая строка – METHOD URI HTTP/Version – Метод (Method) – название Запрос (Request) • Стартовая строка – METHOD URI HTTP/Version – Метод (Method) – название запроса, одно слово заглавными буквами – URI определяет путь к запрашиваемому документу • обычно относительно данного сервера – Версия (Version) – 1. 1 или 1. 0

Запрос (2) • Основные методы – GET • используется для простого запроса содержимого указанного Запрос (2) • Основные методы – GET • используется для простого запроса содержимого указанного ресурса – HEAD • аналогичен методу GET, за исключением того, что в ответе сервера отсутствует тело. • обычно применяется для извлечения метаданных, проверки наличия ресурса (валидация URL) – GET и HEAD – минимальный обязательный набор для реализации сервером

Запрос (3) • Основные методы – POST • применяется для передачи пользовательских данных заданному Запрос (3) • Основные методы – POST • применяется для передачи пользовательских данных заданному ресурсу (для обработки) • данные форм, загрузка файлов на сервер – PUT • применяется для загрузки ресурса на сервер (для изменения или создания ресурса с указанным URI) – OPTIONS • используется для определения возможностей Webсервера (список доступных методов) для ресурса (URI) • URI – «*» позволяет узнать возможности всего сервера • В ответ серверу следует включить заголовок Allow со списком поддерживаемых методов.

Запрос (4) • Пример: GET /html/rfc 2616 HTTP/1. 1 Host: tools. ietf. org Connection: Запрос (4) • Пример: GET /html/rfc 2616 HTTP/1. 1 Host: tools. ietf. org Connection: keep-alive User-Agent: Mozilla/5. 0 (Windows NT 6. 1; WOW 64) Apple. Web. Kit/537. 4 (KHTML, like Gecko) Chrome/22. 0. 1229. 94 Safari/537. 4 Accept: text/html Accept-Encoding: gzip, deflate, sdch Accept-Language: ru-RU, ru; q=0. 8, en. US; q=0. 6, en; q=0. 4 Accept-Charset: windows-1251, utf-8; q=0. 7, *; q=0. 3 (пустая строка)

Ответ (Response) • Стартовая строка – HTTP/Version Status. Code Reason – Версия (Version) – Ответ (Response) • Стартовая строка – HTTP/Version Status. Code Reason – Версия (Version) – как в запросе – Код состояния (Status Code) – трехзначное число • По коду статуса определяется дальнейшее содержимое сообщения и поведение клиента – Пояснение (Reason Phrase) — текстовое короткое пояснение к коду ответа для пользователя • не влияет на сообщение и является необязательным.

Ответ (2) • Коды состояния HTTP – 1 xx: Informational (информационные) • коды, информирующие Ответ (2) • Коды состояния HTTP – 1 xx: Informational (информационные) • коды, информирующие о процессе передачи – 2 xx: Success (успешно) • запрос принят и оработан, в зависимости от статуса передаются заголовки и тело сообщения – 3 xx: Redirection (перенаправление) • для успешного выполнения операции необходимо сделать другой запрос, как правило, по другому URI – 4 xx: Client Error (ошибка клиента) • в теле сообщения гипертекстовое пояснение – 5 xx: Server Error (ошибка сервера) • в теле сообщения – пояснение для пользователя

 • Пример: Ответ (3) HTTP/1. 1 200 OK Date: Wed, 24 Oct 2012 • Пример: Ответ (3) HTTP/1. 1 200 OK Date: Wed, 24 Oct 2012 11: 20: 59 GMT Server: Apache/2. 2. 21 (Debian) Content-Location: rfc 2616. html Last-Modified: Sat, 04 Aug 2012 22: 23: 52 GMT ETag: "1826238 -80871 -4 c 67819702 e 00; 4 cd 38 ac 2 bfd 5 e" Accept-Ranges: bytes Content-Encoding: gzip Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=UTF-8 (пустая строка) . . .

Прокси-сервер (Proxy server) • Сервер (компьютер или программа), выступающий в качестве «посредника» между клиентом Прокси-сервер (Proxy server) • Сервер (компьютер или программа), выступающий в качестве «посредника» между клиентом и удаленным сервисом – HTTP-proxy (Web-proxy) • Назначение – трансляция адресов • сервер «видит» IP-адрес прокси – кэширование данных • TTL = HTTP-заголовок Expires: • уменьшает сетевой трафик – фильтрация

Виды прокси-серверов • Forward proxy – «пересылающий» – на стороне клиента • Reverse proxy Виды прокси-серверов • Forward proxy – «пересылающий» – на стороне клиента • Reverse proxy – «обратный» – на стороне сервера • Open proxy – «открытый»

DNS (Domain Name System) • Cистема доменных имён • Иерархическая распределённая система именования для DNS (Domain Name System) • Cистема доменных имён • Иерархическая распределённая система именования для компьютеров (хостов), ипользуемая в Интернете или в частной сети • Чаще всего используется для получения IPадреса по имени хоста (компьютера или устройства) • RFC 1034, RFC 1035

DNS (2) • Замена архитектуре с передачей файла hosts • Клиент-серверая модель • Иерархически DNS (2) • Замена архитектуре с передачей файла hosts • Клиент-серверая модель • Иерархически организованные DNS-серверы взаимодействуют по определённому протоколу, образуя распределённую базу данных DNS • Протокол передачи информации в DNS – использует UDP в качестве транспорта – прикладной уровень

Соответствие имени и IP-адреса • Один IP-адрес может иметь множество имён – позволяет поддерживать Соответствие имени и IP-адреса • Один IP-адрес может иметь множество имён – позволяет поддерживать на одном компьютере множество веб-сайтов – виртуальный хостинг • Одному имени может сопоставляться множество IP-адресов – позволяет балансировать нагрузку – для сильно востребованных ресурсов

Дерево доменных имен • Домен (domain) – узел в дереве имён – Может содержать Дерево доменных имен • Домен (domain) – узел в дереве имён – Может содержать подчиненные домены • • Max – 127 уровней Каждое имя – до 63 символов Max дляина доменного имени <= 254 символов Корень всего дерева DNS – корневой домен «. » – корневые серверы DNS • 13 серверов (A-M) + зеркала • Домены верхнего (первого) уровня (TLD) – Выделяются IANA (Internet Assigned Numbers Authority) – http: //www. iana. org/domains/root/db/

Дерево доменных имен (2) • Зона (zone) — часть дерева доменных имен, размещаемая как Дерево доменных имен (2) • Зона (zone) — часть дерева доменных имен, размещаемая как единое целое на некотором DNSсервере – Выделяется с целью делегирования ответственности за соответствующий (под)домен другому лицу или организации. – Зона – тоже дерево – Для повышения устойчивости системы обычно используется множество серверов • За счет делегирования и разделения на зоны в DNS обеспечивается распределенность администрирования и хранения имен

Дерево доменных имен (3) Дерево доменных имен (3)

Алгоритм работы DNS • Браузер – запрашивает IP-адрес для доменного имени (например, apmath. spbu. Алгоритм работы DNS • Браузер – запрашивает IP-адрес для доменного имени (например, apmath. spbu. ru) у своего DNS-сервера – рекурсивный запрос (ответ содержит нужный ip-адрес) • DNS-сервер – если запись для имени есть в кэше – вернуть требуемый ip -адрес клиенту – иначе – запросить адрес у корневого сервера DNS • нерекурсивный запрос • Корневой сервер DNS – если запись для имени есть в кэше – вернуть ip-адрес – иначе – вернуть адрес домена 1 уровня (ru)

Алгоритм работы DNS (2) • DNS-сервер – если получен требуемый адрес – вернуть клиенту Алгоритм работы DNS (2) • DNS-сервер – если получен требуемый адрес – вернуть клиенту – иначе – запросить адрес у DNS- сервера 1 уровня • DNS-сервер домена 1 уровня (ru) – если запись для имени есть в кэше – вернуть ip-адрес – иначе – вернуть адрес домена 2 уровня (spbu. ru) • DNS-сервер – если получен требуемый адрес – вернуть клиенту – иначе – запросить адрес у DNS- сервера 2 уровня • DNS-сервер домена 2 уровня (spbu. ru) – вернуть ip-адрес

Итог • Рассмотрены отдельные протоколы, организующие работу стека TCP/IP на различных уровнях • Существуют Итог • Рассмотрены отдельные протоколы, организующие работу стека TCP/IP на различных уровнях • Существуют и другие стеки протоколов – менее распространенные

Другие стеки протоколов • Стек протоколов OSI – реальный стек протоколов OSI, разработанный как Другие стеки протоколов • Стек протоколов OSI – реальный стек протоколов OSI, разработанный как часть проекта вместе с эталонной моделью OSI – оказался сложным и порой противоречивым в реализации, предполагал замену большинства существующих протоколов новыми на всех уровнях – не получил широкого распространения • Стек IPX/SPX – основные протоколы: Internetwork Packet Exchange (IPX) и Sequenced Packet Exchange (SPX) – использовался операционной системой Novell Net. Ware

Другие стеки протоколов (2) • Стек Net. BIOS/SMB – основные протоколы: Net. BEUI (Net. Другие стеки протоколов (2) • Стек Net. BIOS/SMB – основные протоколы: Net. BEUI (Net. BIOS Extended User Interface) и NBF (Net. BEUI Frame), SMB (Server Message Block) – применялся в продуктах IBM и ранних версиях Windows NT • Стек Apple. Talk – применялся корпорацией Apple для Mac OS • Стек SNA (Systems Network Architecture) – набор протоколов, применяемых для сетей мейнфреймов (mainframe) IBM