Стек протоколов 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