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

advertisement
Стек протоколов TCP/IP
Cisco Solution Technology Integrator




Все сети передают основную часть своего
трафика с помощью протокола TCP/IP.
Все современные операционные системы
поддерживают стек TCP/IP.
Это гибкая технология для соединения
разнородных систем как на уровне
транспортных подсистем, так и на уровне
прикладных сервисов.
Это устойчивая масштабируемая
межплатформенная среда для приложений
клиент-сервер.
2


•
•
•
•
Стек протоколов TCP/IP
(Transmission Control Protocol/Internet
Protocol ) — набор сетевых
протоколов разных уровней модели сетевого
взаимодействия.
Протоколы работают друг с другом таком образом, что протокол,
располагающийся на уровне выше, работает «поверх» нижнего,
используя механизмы инкапсуляции.
Протоколы этих уровней полностью реализуют функциональные
возможности модели OSI.
На стеке протоколов TCP/IP построено всё взаимодействие
пользователей в IP-сетях.
Стек является независимым от физической среды передачи
данных.
3
Модель OSI и стек TCP/IP
Модель OSI/ISO
Модель TCP/IP
C точностью до незначительных
различий можно считать, что
функциональность второго
(канального), третьего (сетевого)
и четверного (транспортного)
уровней в моделях OSI/ISO и
TCP/IP совпадают
4
Протоколы и уровни
5
протоколы














BGP – Протокол граничного шлюза
FTP – Протокол передачи файлов
HTTP – Протокол передачи гипертекстовых файлов
ICMP – Протокол управления сообщениями Internet
IGMP – Протокол управления группами
IP – Протокол Internet
MIME – Многоцелевые расширения почты Internet
OSPF – Первоочередное открытие кратчайших
маршрутов
RSVP
– Протокол резервирования ресурсов
SMTP
– Простой протокол передачи почты
TELNET – Протокол реализации текстового интерфейса
по сети
SNMP – Простой протокол сетевого управления
TCP – Протокол управления передачей
UDP – Протокол пользовательских дейтаграмм
6
Справка. Наиболее важные протоколы

Изображение
уточняет состав
протоколов и
показывает их
взаимодействия
- приводится для
справки
7
Задачи протоколов различных уровней
Физический уровень
1.
обеспечивает стандартизацию сред передачи, (носителей, частой,
контактов, типов модуляции, сигналов)
-
Канальный уровень
2.
обеспечивает связность смежных узлов (передачу данных на
однопролетном звене)
передает фреймы (frame), мы говорим - кадры
-
Сетевой уровень
3.
-
-
обеспечивает передачу данных из конца в конец сети; делает сеть
связной
передает пакеты
решает необходимую для передачи пакетов задачу маршрутизации
Транспортный уровень
4.
-
-
обеспечивает взаимодействие приложений, определяет какому
приложению доставить поток данных или сообщение
передает сегменты данных (TCP) или дейтаграммы (UDP)
Прикладной уровень
5.
-
решает специфические, утилитарные, необходимые скорее
человеку, чем системе, задачи
8
Инкапсуляция протоколов

поток данных
T-
сегмент
данных
L3 (IP-)
L4 (T-)
сегмент
данных
L3 (IP-)
L4 (T-)
сегмент
данных
заголовок
заголовок заголовок
L2
заголовок заголовок заголовок
цифровой или аналоговый
сигнал в канале
При передаче данных от
приложения в сеть
транспортный, сетевой и
канальный уровень
последовательно
упаковывают
(инкапсулируют) данные
«внутрь» своего пакета
- эта техника передачи одного
протокола под заголовком
(«под видом») другого
называется
туннелированием
Техника туннелирования трафика имеет
фундаментальное значение в сетевой
информационной безопасности. На ней
построена архитектура IPsec и многие
другие решения
9
Передача пакета через уровни стека TCP/IP
• Процесс генерирует блок данных и передает его
протоколу TCP, который с целью управления, может
разбить этот блок на меньшие части.
•
К каждому такому фрагменту TCP присоединяет
управляющую информацию (называемую заголовком
TCP), формируя при этом сегмент TCP.
•
Далее протокол TCP передает каждый сегмент
протоколу IP.
•
Протокол IP присоединяет к данным заголовок с
управляющей информацией, формируя, таким
образом, дейтаграмму IP.
•
На последнем этапе каждая дейтаграмма IP
предоставляется уровню доступа к сети с целью
передачи ее через первую сеть, находящуюся на ее
пути к адресату.
10

Архитектура TCP/IP
11
TCP/IP: независимость от среды передачи

PPTP
Ethernet 10BaseT
Ethernet 100BaseT

WiFi
Gigabit
Ethernet
FDDI
L2TP

В сущности, «носителями
протоколов TCP/IP» являются
не физические подсети, а стеки
сетевых компьютеров (хостов)
и шлюзов (маршрутизаторов)
Физические подсети могут
иметь различную природу
и различные системы
адресации канального
уровня
Стек TCP/IP устроен так,
что от физической
природы линии связи
зависят только протоколы
физического и канального
уровней
IP и вышележащие
протоколы абстрактны и
«обязаны» работать
«поверх» всех физических
сетей, независимо от их
природы
12
IP-сеть

Internet
Сеть – это совокупность
подсетей, соединенных
шлюзами (маршрутизаторами)
- подсеть – это целостное
адресуемое пространство (в
терминах IP-адресов)
- IP-адрес – уникальное число,
приписываемое сетевому
интерфейсу; по IP-адресу
находится получатель пакета
(детали позднее)
- шлюз – машина с 2мя (или
более) сетевыми
интерфейсами, «смотрящими»
в разные подсети

App
Trans
IP
NI
HW
IP
NI
HW
IP
NI
HW
App
Trans
IP
NI
HW
Поток данных передается от
приложения к приложению на
оконечных устройствах, но на
промежуточных устройствах
(шлюзах) используются
только три нижних уровня
сетевого стека
13
Функциональная декомпозиция TCP/IP


Канальный уровень – обеспечивает
двухточечную связность
IP (RFC791, 950, 919, 922, 2474) –
обеспечивает негарантированную
дейтаграммную доставку пакетов по сети;
3 главных задачи IP и вспомогательных
протоколов:
- адресация сетевых объектов (включая
конфигурирование адресов)
- маршрутизация
- обмен служебной информацией, разрешение
конфликтных ситуаций, диагностика

2 главных задачи транспортных
протоколов:
- обеспечение заданного сервиса доставки данных
- мультиплексирование/демультиплексирование
трафика приложений
14

Протокол IP
15
IP пакет



Структура IP-пакета
Заголовок

Данные


Заголовок IP-пакета
0
8
24
16
31


VERS
HLENG
SERVICE TYPE
ID
TTL
TOTAL LENGTH
FLG
NEXT PROTOCOL
FRAGMENTATION OFFSET

HEADER CHECKSUM
SOURCE IP ADDRESS

DESTINATION IP ADDRESS
IP OPTIONS
PADDING



VERS, version – версия IP (4, 0010)
HLENG, header length – длина
заголовка
TOTAL LENGTH – полная длина
пакета
ID, identification – номер
(идентификатор) фрагмента
FLG, flags - флаги
FRAGMENTATION OFFSET –
смещение фрагмента
TTL, time to live – время жизни
NEXT PROTOCOL – следующий
протокол
HEADER CHECKSUM –
контрольная сумма заголовка
SOURCE IP ADDRESS – адрес
отправителя
DESTINATION IP ADDRESS – адрес
получателя
IP OPTIONS – параметры (опции)
PADDIND – заполнение
(выравнивание)
16
Тип сервиса
0
8
VERS
HLENG
SERVICE TYPE
31
TOTAL LENGTH
ID
TTL
24
16
FLG
NEXT PROTOCOL
FRAGMENTATION OFFSET
HEADER CHECKSUM
DESTINATION IP ADDRESS
PADDING
TOS
MBZ
Структура поля SERVICE TYPE
PRED
На обработке битов поля TOS
строятся современные
механизмы управления
качеством сервиса (Quality of
Service, QoS) для передачи
голосового и видеотрафика
Поле SERVICE TYPE
используется для управления
приоритетом (качеством
сервиса)
- PRED, predecence – приоритет:
SOURCE IP ADDRESS
IP OPTIONS

•
•
•
•
•
•
•
•
000: Routine
001: Priority
010: Immediate
011: Flash
100: Flash override
101: Critical
110: Internetwork control
111: Network control
- TOS, type of service – тип
сервиса:
•
•
•
•
•
1000: Minimize delay
0100: Maximize throughput
0010: Maximize reliability
0001: Minimize monetary cost
0000: Normal service
- MBZ – зарезервировано для
последующего использования
17
Фрагментация

MTU=1500
MTU=512
MTU=1500
Физические сети могут иметь
различные размеры кадров
(minimal transfer unit, MTU)
- если на пути пакета
встречается сеть с MTU менее
его размера, пакет
фрагментируется
- фрагменты «собирает» в
исходный пакет получатель

0
8
VERS
HLENG
SERVICE TYPE
ID
TTL
24
16
31
TOTAL LENGTH
FLG
NEXT PROTOCOL
FRAGMENTATION OFFSET
HEADER CHECKSUM
SOURCE IP ADDRESS
DESTINATION IP ADDRESS
Структура поля FLG:
PADDING
0
DF
MF
IP OPTIONS
Управляют фрагментацией
поля ID, FLG, FRAG. OFFSET
- ID –уникальный
идентификатор, единый для
всех фрагментов серии
- поле FLG:
• 1й бит – резерв, всегда 0
• 2й бит – DF, Do not Fragment –
запрещает фрагментацию
• бит MF – More Fragments – 0
для нефрагментированного
или последнего пакета в
серии, 1 – в противном случае
18
фрагментация

FRAG. OFFSET - указывает, на какой позиции в
поле данных исходной дейтаграммы находится
данный фрагмент
19
Время жизни IP пакета

0
8
VERS
HLENG
SERVICE TYPE
ID
TTL
24
16
TOTAL LENGTH
FLG
NEXT PROTOCOL
31
FRAGMENTATION OFFSET
HEADER CHECKSUM
SOURCE IP ADDRESS
DESTINATION IP ADDRESS
IP OPTIONS
PADDING
В силу ошибок маршрутизации
или по другим причинам пакет
может бесконечно
циркулировать по некоторому
пути в сети
- поскольку маршрутизатор
обрабатывает IP в
дейтаграммном режиме, т.е.
«забывает» о всех переданных
пакетах (не хранит
предысторию) – такие пакеты
могут «бродить по сети» вечно
- чтобы устранить перегрузку
сети такими пакетами, введено
поле TTL
• хост-отправитель устанавливает
TTL в некоторое заданной
значение, отличное от нуля
• при всякой переретрансляции
промежуточные маршрутизаторы
уменьшают значение TTL на
единицу
• когда поле TTL принимает
значение 0 – пакет изымается из
сети
20
Механизм IP-инкапсуляции

0
8
VERS
HLENG
SERVICE TYPE
ID
TTL
24
16
TOTAL LENGTH
FLG
NEXT PROTOCOL
31
FRAGMENTATION OFFSET
HEADER CHECKSUM
-
SOURCE IP ADDRESS
DESTINATION IP ADDRESS
IP OPTIONS
Обратите внимание на
множественность механизмов
туннелирования трафика,
заложенных в IP: IP может
«нести» не только
транспортные (TCP, UDP),
служебные (ICMP, IGMP, GGP,
EGP, OSPF), протоколы сетевой
защиты (AH и ESP), но также
нести «себя» (IP-IP
инкапсуляция), IPv6
IP может «нести» данные
различных протоколов, номер
«вложенного» протокола
кодируется в поле NEXT
PROTOCOL:
PADDING
-
0: Reserved
1: Internet Control Message Protocol
(ICMP)
2: Internet Group Management Protocol
(IGMP)
3: Gateway-to-Gateway Protocol (GGP)
4: IP (IP encapsulation)
5: Stream
6: Transmission Control Protocol (TCP)
8: Exterior Gateway Protocol (EGP)
9: Private Interior Routing Protocol
17: User Datagram Protocol (UDP)
41: IP Version 6 (IPv6)
50: Encap Security Payload (ESP)
51: Authentication Header (AH)
89: Open Shortest Path First (OSPF)
21
Целостность IP-пакетов

0
8
VERS
HLENG
SERVICE TYPE
ID
TTL
24
16
TOTAL LENGTH
FLG
NEXT PROTOCOL
31
FRAGMENTATION OFFSET
HEADER CHECKSUM
SOURCE IP ADDRESS
DESTINATION IP ADDRESS
IP OPTIONS
PADDING
IP (если не применяются
специальные протоколы
защиты информации) вообще
не следит за целостностью IPпакетов
- в этом есть резон, поскольку
за целостностью данных
«следят» протоколы
канального и транспортного
уровня, IP ни к чему
дублировать их
функциональность
- единственная проверка,
которую обеспечивает IP –
проверка целостности
собственной служебной
информации (контрольная
сумма заголовка пакета)
22
Options и Padding



Options - опции, поле переменной длины. Опций
может быть: одна, несколько или ни одной.
Опции определяют дополнительные услуги
модуля IP по обработке дейтаграммы, в заголовок
которой они включены.
Padding - выравнивание заголовка по границе 32битного слова, если список опций занимает не все
поле. Поле “Padding” заполняется нулями.
23
Опции







Опции определяют дополнительные услуги протокола IP по
обработке дейтаграмм.
Опция состоит, как минимум, из октета “Тип опции”, за которым
могут следовать октет “Длина опции” и октеты с данными для
опции.
Структура октета “Тип опции”:
Значения бита С:
1 - опция копируется во все фрагменты;
0 - опция копируется только в первый фрагмент.
Определены два класса опций: “Управление” и “Измерение и
отладка”. Внутри класса опция идентифицируется номером.
Ниже приведены опции, описанные в стандарте протокола IP;
знак “-” в столбце “Октет длины” означает, что опция состоит
только из октета “Тип опции”, число рядом с плюсом означает,
что опция имеет фиксированную длину (длина указывается в
октетах).
24
Опции
25
Опции


Большинство опций в настоящее время не используются.
Опции “Stream ID” и “Безопасность” применялись в
ограниченном круге экспериментов, функции опций
“Запись маршрута” и “Internet Timestamp” выполняет
программа traceroute. Определенный интерес
представляют только опции “Loose/Strict Source Routing”.
Применение опций в дейтаграммах замедляет их
обработку. Поскольку большинство дейтаграмм не
содержат опций, то есть имеют фиксированную длину
заголовка, их обработка максимально оптимизирована
именно для этого случая. Появление опции прерывает
этот скоростной процесс и вызывает стандартный
универсальный модуль IP, способный обработать любые
стандартные опции, но за счет существенной потери в
быстродействии.
26
Опции “Loose/Strict Source Routing”
Опции “Loose/Strict Source Routing”
(класс 0, номера 3 и 9 соответственно)
предназначены для указания дейтаграмме
предопределенного отправителем маршрута
следования.

Опции работают следующим образом.

Предположим, дейтаграмма, посланная из A в B, должна проследовать через
маршрутизаторы G1 и G2. На выходе из А поле “Destination Address” заголовка
дейтаграммы содержит адрес G1, а поле данных опции - адреса G2 и В. По прибытии
дейтаграммы в G1 из поля данных опции извлекается адрес следующего пункта (G2) и
помещается в поле “Destination Address”, а на место адреса G2 в поле данных опции
помещается адрес того интерфейса маршрутизатора G1, через который дейтаграмма
будет отправлена по новому месту назначения (то есть в G2). По прибытии
дейтаграммы в G2 процедура повторяется и дейтаграмма отсылается в пункт В. При
обработке дейтаграммы в В обнаруживается, что конечный пункт маршрута достигнут.
27
Опции “Loose/Strict Source Routing”





Отличия опций “Loose Source Routing” и “Strict Source Routing”
друг от друга заключаются в следующем:
“Loose”: очередной пункт требуемого маршрута может быть
достигнут за любое количество шагов (хопов);
“Strict”: очередной пункт требуемого маршрута должен быть
достигнут за 1 шаг, то есть непосредственно.
Рассмотренные опции копируются во все фрагменты. В
дейтаграмме может быть только одна такая опция.
Опции “Loose/Strict Source Routing” могут быть использованы в
целях несанкционированного проникновения через
контролирующий (фильтрующий) узел (в поле “Destination Address”
устанавливается разрешенный адрес, дейтаграмма пропускается
контролирующим узлом, далее из поля данных опции
подставляется запрещенный адрес и дейтаграмма
перенаправляется по этому адресу уже за пределами досягаемости
контролирующего узла), поэтому в целях безопасности
рекомендуется вообще запретить пропуск контролирующим узлом
дейтаграмм с рассматриваемыми опциями.
28
Download