Конспект лекций По дисциплине «Свети ЭВМ» Для специальности Экономическая кибернетика Оглавление §1. ПОНЯТИЕ СЕТИ. КЛАССИФИКАЦИЯ СЕТЕЙ .............................................................................................. 4 §2. ТОПОЛОГИЯ СЕТИ ................................................................................................................................................ 5 §3. ИСТОЧНИКИ СТАНДАРТОВ ............................................................................................................................... 6 §4. МОДЕЛЬ OSI. ПОНЯТИЕ ПРОТОКОЛА ........................................................................................................... 8 §5. ЛИНИИ СВЯЗИ......................................................................................................................................................... 9 5.1 СРЕДА ПЕРЕДАЧИ ДАННЫХ....................................................................................................................................... 9 5.2 КОДИРОВАНИЕ ИНФОРМАЦИИ.................................................................................................................................. 9 5.2.1 Аналоговая модуляция .................................................................................................................................... 9 5.2.2 Цифровое кодирование ................................................................................................................................. 10 5.2.3 Логическое кодирование .............................................................................................................................. 12 §6. КАНАЛЬНЫЙ УРОВЕНЬ ..................................................................................................................................... 14 §7. КОММУНИКАЦИОННОЕ ОБОРУДОВАНИЕ ................................................................................................ 14 7.1 СЕТЕВЫЕ АДАПТЕРЫ .............................................................................................................................................. 14 7.2 СТРУКТУРИРОВАННАЯ КАБЕЛЬНАЯ СИСТЕМА ....................................................................................................... 15 7.3 ФИЗИЧЕСКАЯ СТРУКТУРИЗАЦИЯ ЛОКАЛЬНОЙ СЕТИ. ПОВТОРИТЕЛИ И КОНЦЕНТРАТОРЫ ..................................... 15 7.4 ЛОГИЧЕСКАЯ СТРУКТУРИЗАЦИЯ СЕТИ. МОСТЫ И КОММУТАТОРЫ........................................................................ 17 7.5 МАРШРУТИЗАТОРЫ ................................................................................................................................................ 19 7.6 ФУНКЦИОНАЛЬНОЕ СООТВЕТСТВИЕ ВИДОВ КОММУНИКАЦИОННОГО ОБОРУДОВАНИЯ УРОВНЯМ МОДЕЛИ OSI.. 21 §8. БАЗОВЫЕ СЕТЕВЫЕ ТЕХНОЛОГИИ ............................................................................................................. 21 8.1 ETHERNET (IEEE 802.3). ........................................................................................................................................ 21 8.1.1 Стандарт 10Base-2...................................................................................................................................... 22 8.1.2 Стандарт 10Base-T ..................................................................................................................................... 23 8.2 FAST ETHERNET (IEEE 802.3U) .............................................................................................................................. 25 8.2.1 100Base-FX .................................................................................................................................................... 26 8.2.2 100Base-TX .................................................................................................................................................... 26 8.2.3 100Base-T4 ..................................................................................................................................................... 26 8.3 GIGABIT ETHERNET (IEEE 802.3Z) ......................................................................................................................... 27 8.3.1 Gigabit Ethernet на оптоволокне (802.3z) ................................................................................................... 27 8.3.2 Gigabit Ethernet на UTP категории 5 (802.3ab) ......................................................................................... 27 8.4 ОБЗОР TOKEN RING ................................................................................................................................................ 28 8.5 ОБЗОР FDDI ........................................................................................................................................................... 29 §9. СОВРЕМЕННЫЕ СТЕКИ ПРОТОКОЛОВ....................................................................................................... 31 9.1 ХАРАКТЕРИСТИКА ПОПУЛЯРНЫХ СТЕКОВ КОММУНИКАЦИОННЫХ ПРОТОКОЛОВ ................................................ 31 9.2 СТЕК TCP/IP........................................................................................................................................................... 31 9.3 СТЕК IPX/SPX........................................................................................................................................................ 33 §10. TCP/IP СЕТИ ......................................................................................................................................................... 34 10.1 АДРЕСАЦИЯ В IP СЕТИ .......................................................................................................................................... 34 10.1.1 Типы адресов физический (MAC-адрес), сетевой (IP-адрес) и символьный (DNS-имя) ..................... 34 10.1.2 Три основных класса IP-адресов................................................................................................................ 35 10.1.3 Соглашения о специальных адресах: broadcast, multicast, loopback ....................................................... 36 10.1.4 Отображение физических адресов на IP-адреса: протоколы ARP и RARP ......................................... 36 10.1.5 Отображение символьных адресов на IP-адреса: служба DNS ............................................................ 37 10.1.6 Автоматизация процесса назначения IP-адресов узлам сети - протокол DHCP ............................... 39 10.2 ОБМЕН ДАННЫХ В IP СЕТИ ................................................................................................................................... 40 10.2.1 Протокол межсетевого взаимодействия IP ........................................................................................... 40 10.2.2 Протокол доставки пользовательских дейтаграмм UDP ..................................................................... 47 10.2.3 Протокол надежной доставки сообщений TCP ..................................................................................... 49 10.2.4 Протокол обмена управляющими сообщениями ICMP ........................................................................... 53 10.2.5 Протоколы обмена маршрутной информацией стека TCP/IP ............................................................. 55 10.3 PROXY-СЕРВЕРЫ ................................................................................................................................................... 56 10.4 БЕЗОПАСНОСТЬ IP СЕТИ ....................................................................................................................................... 58 10.4.1 Проблемы безопасности стека TCP/IP ................................................................................................... 58 10.4.2 Межсетевой экран (firewall) ..................................................................................................................... 58 §11. INTERNET .............................................................................................................................................................. 60 12.1 ЭЛЕКТРОННАЯ ПОЧТА. ПРОТОКОЛ SMTP ............................................................................................................ 60 12.2 WORLDWIDE WEB. ПРОТОКОЛ HTTP. .................................................................................................................. 63 12.3 FTP - ПЕРЕДАЧА ФАЙЛОВ .................................................................................................................................... 67 12.4 ДРУГИЕ ОСНОВНЫЕ СЛУЖБЫ ............................................................................................................................... 68 12.4.1 Списки рассылки ......................................................................................................................................... 68 12.4.2 Telnet ........................................................................................................................................................... 68 12.4.3 Современные разработки, использующие Интернет как среду передачи информации ..................... 68 ЛИТЕРАТУРА ............................................................................................................................................................... 69 §1. Понятие сети. Классификация сетей Под вычислительной сетью (в дальнейшем — сеть) понимают набор аппаратных и программных средств, которые позволяют объединить компьютеры между собой по определенным правилам для совместного использования их ресурсов. Преимущества при использовании сетей: 1. разделение ресурсов; 2. улучшение и ускорение доступа к информации; 3. территориальная независимость при размещении 4. и др. Сети принято классифицировать по территориальному или корпоративному признаку. По территориальному признаку сети делятся на: 1. локальные (LAN – local area network) — сети, расположенные территориально в одном месте (чаще всего в одном здании) и принадлежащие обычно одной организации; 2. мегаполисные (MAN – metropolitan area network) — сети, соединяющие компьютеры, а чаще локальные сети организаций в пределах одного большого города; 3. глобальные (WAN – wide area network) — .объединяют территориально удаленные друг от друга компьютеры, локальные и мегаполисные сети. По корпоративному признаку принято рассматривать: 1. сети уровня отдела — сеть из небольшого (до 150) числа компьютеров, которые исполняют задачи конкретного подразделения организации и находятся в пределах одного здания (чаще всего – этажа, офиса); 2. сети кампусов — объединяют сети отделов без использования глобальных соединений и территориально расположены в одном или нескольких рядом стоящих строениях; 3. корпоративные сети (сети масштаба предприятия) — объединяют практически все компьютеры и сети отделов и кампусов корпоративной структуры независимо от их территориального расположения (возможно даже на различных континентах планеты). Более подробную классификацию с критериями оценки и требованиями к построению и организации см в [1,2]. Сети вообще можно рассматривать с нескольких точек зрения: архитектуры (способов организации, требований к построению, критериев оценки); функционального назначения элементов сети (рабочих станций, выделенных серверов) и программного обеспечения сетей; использования ПО сети; и др. В дальнейшем, если явно не указано обратное, мы будем рассматривать сети с точки зрения их архитектуры. С точки зрения функционального назначения элементов, ПО сети и принципов их использования, вычислительные сети хорошо рассмотрены в [6] и [12]. Основными требованиями, предъявляемыми к современным вычислительным сетям являются (см. [1-3],[5]): производительность; надежность; безопасность; расширяемость; масштабируемость; прозрачность; поддержка разных видов трафика; управляемость; совместимость. §2. Топология сети Граф, вершинам которого соответствуют компьютеры сети, а ребрам — физические связи между ними, принято называть топологией сети. При этом сами компьютеры принято называть рабочими станциями или узлами сети. Также нужно иметь ввиду, что ребрам соответствуют именно физические связи, т.е. те, которые определяются электрическими или иными связями в сети для передачи сигналов, в отличие от логических, которые определяют маршруты передачи информации внутри сети. Классификация топологий очень хорошо проведена в [1]. Рассмотрим основные виды топологий согласно этой классификации: Полносвязная топология (см рис. 1) — сеть, в которой каждый компьютер связан со всеми остальными. Такое решение логически простое, но реализация ее очень громоздка и неэффективна. Рис. 1 Полносвязная топология Остальные все виды топологий — неполносвязные Неполносвязные топологии предусматривают случаи, когда для обмена данными между двумя компьютерами может потребоваться промежуточная передача через другие узлы сети. Ячеистая топология (см. рис.2) — полносвязная топология при отсутствии некоторых связей. В сети с ячеистой топологией непосредственно связываются только те компьютеры, которые интенсивно "общаются" между собой, а для обмена данными между компьютерами, не соединенными прямыми связями, используются передачи через промежуточные узлы (транзитные передачи).. Рис. 2 Ячеистая топология Общая шина (см. рис.3) — очень распространенная топология для локальных сетей. При ее использовании компьютеры подключаются к коаксиальному кабелю (см. 4.1) по принципу «монтажного ИЛИ» (пример — см. 6.1.1). Рис. 3 Топология "общая шина" Топология звезда (см. рис.4) —в центре устройство концентратор (см. 7.1), к которому подключается каждый компьютер сети отдельным кабелем. Рис. 4 Топология "звезда" В сетях с большим количеством компьютеров используют топологию иерархическая звезда (см. рис.5). Это когда в сети присутствует несколько концентраторов, иерархически соединенных между собой связями типа звезда. В настоящее время иерархическая звезда является самым распространенным типом топологии связей, как в локальных, так и глобальных сетях. Рис. 5 Топология "иерархическая звезда" Кольцо (см. рис.6) — в сетях этой топологии данные передаются по кольцу от одного компьютера к другому, как правило, в одном направлении. Каждый компьютер проверяет эти данные и если распознает их как свои, то просто копирует их себе во внутренний буфер. Данные, сделав один полный оборот, возвращаются к узлу-источнику. Поэтому этот узел одновременно проверяет, получил ли информацию адресат или нет. Очевидно, здесь нужно принимать дополнительные меры, чтобы в случае выхода из строя или отключения какойлибо станции не прервался канал связи между остальными станциями. Свойство узлаисточника проверять информацию на достоверность доставки очень удачно используют специально для тестирования сети и поиска узла, который предположительно вышел из строя, и не может принимать данные. Рис. 6 Топология "кольцо" Можно отметить следующий факт: в небольших сетях, как правило, стараются использовать типовую топологию - звезда, кольцо или общая шина, для сетей с большим количеством компьютеров очень характерно наличие произвольных связей между компьютерами. В таких сетях специально выделяют отдельные фрагменты (подсети), которые, во-первых, связаны между собой, а во-вторых, имеют свою (не обязательно одинаковую) типовую топологию. И в итоге получается сеть со смешанной топологией. §3. Источники стандартов Понятие вычислительной сети включает в себя огромный набор технологий (как аппаратных так и программных). Как было сказано в 1, сеть должна удовлетворять набору требований, которые довольно тесно связаны между собой. Свойства расширяемости, масштабируемости, прозрачности так или иначе связаны со свойством совместимости. Совместимость же можно достигнуть только когда разработчики новых технологий будут следовать некоторым правилам (стандартам) для выполнения указанных условий. Стандарты принято делить на классы: стандарты отдельных фирм; стандарты специальных комитетов и объединений; национальные стандарты; международные стандарты. Граница между перечисленными классами стандартов довольно нечеткая. Обычно каждая технология или стандарт в названии содержит название той организации, которая его приняла и разработала. В качестве справочной информации перечислим некоторые из таких организаций: Международная организация по стандартизации (International Organization for Standardization, ISO, или International Standards Organization) — это ассоциация ведущих национальных организаций по стандартизации разных стран. Американский национальный институт стандартов (American National Standards Institute, ANSI) — эта организация представляет США в Международной организации по стандартизации ISO. Международный союз электросвязи (International Telecommunications Union, ITU) — специализированный орган Организации Объединенных Наций; наиболее значительную роль в стандартизации вычислительных сетей играет действующий в рамках этой организации Международный консультативный комитет по телефонии и телеграфии (МККТТ) (Consultative Committee on International Telegraphy and Telephony, CCITT), с 1993 года ITU CCITT несколько изменил направление своей деятельности и сменил название — теперь он называется сектором телекоммуникационной стандартизации ITU (ITU Telecommunication Standardization Sector) . Основу деятельности ITU составляет разработка международных стандартов в области телефонии, телематических служб (электронной почты, факсимильной связи, телетекста, телекса и т. д.), передачи данных, аудио- и видеосигналов. Институт инженеров по электротехнике и радиоэлектронике - Institute of Electrical and Electronics Engineers, IEEE — национальная организация США, определяющая сетевые стандарты. В 1981 году рабочая группа 802 этого института сформулировала основные требования, которым должны удовлетворять локальные вычислительные сети. Европейская ассоциация производителей компьютеров - (European Comruter Manufacturers Association, ECMA) — некоммерческая организация, активно сотрудничающая с ITU-T и ISO, занимается разработкой стандартов и технических обзоров, относящихся к компьютерной и коммуникационной технологиям. Ассоциация электронной промышленности - (Electronic Industries Association, EIA) — промышленно-торговая группа производителей электронного и сетевого оборудования; является национальной коммерческой ассоциацией США. Министерство обороны США (Department of Defense, DoD) — имеет многочисленные подразделения, занимающиеся созданием стандартов для компьютерных систем. Профессиональное сообщество Internet Society (ISOC) — занимается общими вопросами эволюции и роста Internet. Internet Engineering Task Force (IETF) вносит основной вклад в совершенствование стандартов стека, публикуемых в форме спецификаций RFC. Процедура разработки стандартов Internet обычно происходит следующим образом: сначала представляется так называемый рабочий проект (draft) в доступном для комментариев виде. Он публикуется в Internet, после чего широкий заинтересованных лиц включается в обсуждение этого документа, вносят в него исправления, и наконец проекту присваивается номер RFC (либо после обсуждения рабочий отвергается и удаляется из Internet). После присвоения номера проект приобретает статус предлагаемого стандарта. В течении 6 месяцев этот предлагаемый стандарт проходит проверку практикой, в результате в него вносят какие-то изменения. Если в результате практических исследований доказана эффективность предлагаемого стандарта, то ему, со всеми внесенными изменениями, присваивается статус проекта стандарта. Затем в течение не менее 4-х месяцев проходят его дальнейшие испытания, в число которых входит создание по крайней мере двух программных реализаций. Если во время пребывания в ранге проекта стандарта в документ не было внесено никаких исправлений, то ему может быть присвоен статус официального стандарта Internet. Список утвержденных официальных стандартов Internet публикуется в виде документа RFC и доступен в Internet. §4. Модель OSI. Понятие протокола Главная цель, которая преследуется при соединении компьютеров в сеть — это возможность использования ресурсов каждого компьютера всеми пользователями сети. Для того, чтобы реализовать эту возможность, компьютеры, подсоединенные к сети, должны иметь необходимые для этого средства взаимодействия и передачи информации другим компьютерам сети. Задача разделения сетевых ресурсов является сложной, она включает в себя решение множества проблем. Обычным подходом при решении сложной проблемы является ее декомпозиция на несколько частных проблем - подзадач. Для решения каждой подзадачи назначается некоторый модуль. При этом четко определяются функции каждого модуля и правила их взаимодействия. Одним из вариантов решения поставленной задачи является представление системы в виде нескольких уровней, на каждом из которых модули выполняют вполне определенную задачу. Причем каждый уровень «отвечает» только за решение своей задачи и «общается» с другими уровнями по вполне конкретным установленным правилам. В начале 80-х годов 20 века ISO разработала модель взаимодействия открытых систем (Open System Interconnection, OSI). Модель OSI предполагает наличие семи уровней взаимодействия систем. Все сетевые взаимодействия в рамках любой сетевой технологии принято описывать через призму модели OSI. В результате информация от одного компьютера к другому будет передаваться так, как показано на рис.7. Рис. 7 Модель OSI Согласно этой модели информация от конечного пользователя (например файл) проходит 7 уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический, прежде чем побитно или набором бит она передается по линии связи (см. §5) на другой узел сети, где проходит обратный процесс. Правила взаимодействия разных уровней в пределах одного узла сети принято называть интерфейсом. Правила передачи единицы информации на одном уровне от одного узла сети к другому принято называть протоколом. Естественно, что протоколы представляют собой логические связи между узлами (исключение представляют протоколы физического уровня). Физический, канальный и сетевой уровень обычно реализуются аппаратными средствами, и поэтому их называют аппаратными. Соответственно транспортный, сеансовый, представительный и прикладной называют программными. Набор протоколов, достаточный для полной передачи информации от одного узла к другому принято называть стеком протоколов. Иногда под стеком протоколов понимают набор протоколов программных уровней, поскольку сетевой уровень определяется топологией и соответствующим коммуникационным оборудованием, а канальный и физический определяются базовой сетевой технологией (см. §7). Рассмотрим кратко функциональное назначение каждого из семи уровней: Физический уровень — предназначен для передачи битовых последовательностей по линиям связи (с соответствующей средой передачи). Канальный уровень — отвечает за проверку доступности (разделение между узлами) среды передачи данных и реализует механизмы обнаружения и коррекции ошибок. Сетевой уровень — служит для образования единой транспортной системы, объединяющей несколько сетей, каждая из которых может использовать различные принципы передачи сообщений между конечными узлами. На сетевом уровне решается вопрос о выборе маршрута между сетями для передачи информации с помощью специальных устройств — маршрутизаторов (см. §7). Транспортный уровень — обеспечивает верхним уровням стека протоколов передачу данных с той степенью надежности, которая им требуется. Протоколы транспортного уровня различаются качеством предоставляемых услуг (см. [1-3]). Сеансовый уровень предоставляет средства синхронизации передающего и принимающего узлов. Представительный уровень — имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. Прикладной уровень — набор протоколов (служб, программ), с помощью которых пользователи получают доступ к разделяемым ресурсам. §5. Линии связи 5.1 Среда передачи данных 5.2 Кодирование информации Представление данных в виде электрических или оптических сигналов называется кодированием. Для передачи дискретных данных по каналам связи применяется два способа физического кодирования исходных дискретных данных - на основе синусоидального несущего сигнала и на основе последовательности прямоугольных импульсов (цифровое кодирование). 5.2.1 Аналоговая модуляция У синусоидального сигнала может сразу изменяться несколько параметров - амплитуда, частота, фаза, таким образом, существует возможность передачи больше бит информации за один такт, что обеспечивает высокую скорость передачи без особых нагрузок на аппаратуру сети. Представление дискретных данных в виде синусоидального сигнала называется аналоговой модуляцией. Аналоговая модуляция - кодирование за счет изменения параметров аналогового сигнала. В зависимости от типа изменяемого параметра различают три основных способа аналоговой модуляции: амплитудная, частотная, фазовая. При амплитудной модуляции для логической единицы выбирается один уровень амплитуды синусоиды несущей частоты, а для логического нуля – другой (см. рис). Этот способ редко используются в чистом виде на практике из-за низкой помехоустойчивости, но часто применяется в сочетании с другим видом модуляции фазовой модуляцией. При фазовой модуляции значениям логических 0 и 1 соответствуют сигналы одинаковой частоты, но с различной фазой (перевернутые), например 0 и 180 градусов или 0,90,180 и 270 градусов. Результирующий сигнал похож на последовательность перевернутых синусоид(см. рис). При частотной модуляции значения логического 0 и логической 1 исходных данных передают синусоидами с различной частотой - f0 и f1 (см. рис). Очень распространена амплитудная модуляция в сочетании с фазовой. Наиболее распространенны методы квадратурной амплитудной модуляции (Quadrature Amplitude Modulation, QAM). Эти методы используют такое сочетание - фазовая модуляция с 8 значениями величин сдвига фазы и амплитудная модуляция с 4 уровнями амплитуды. Аналоговая модуляция обеспечивает результирующий сигнал с узким спектром, и поэтому она хороша там, где нужно работать на плохих линиях (с узкой полосой пропускания), она способна там обеспечивать высокою скоростью передачи. Конечно же, аналоговая модуляция способна работать и на хороших линиях, здесь особенно важно еще одно достоинство аналоговой модуляции - возможность сдвигать спектр в нужную область, в зависимости от полосы пропускания используемой линии. Однако аналоговая модуляция сложно реализуется и оборудование, которое ее реализует аппаратно достаточно дорогостоящее. В связи с этим аналоговая модуляция применяется в глобальных сетях (модемы), а в локальных сетях используют цифровое кодирование, для реализации которого нужно простое и дешевое оборудование. 5.2.2 Цифровое кодирование Цифровое кодирование - представление информации прямоугольными импульсами. Для цифрового кодирования используют потенциальные и импульсные коды. В потенциальных кодах для представления логических единиц и нулей используются только значение потенциала сигнала в период такта, а его перепады, формирующие законченные импульсы, во внимание не принимаются. Импульсные коды представляют логический ноль и логическую единицу либо импульсами определенной полярности, или частью импульса - перепадом потенциала определенного направления. В значение импульсного кода включается весь импульс вместе с его перепадами. Потенциальный код без возвращения к нулю NRZ (Non Return to Zero) Этот код получил такое название потому, что при передаче последовательности единиц сигнал не возвращается к нулю в течение. Код NRZ это простейший двухуровневый код. Результирующий сигнал имеет два уровня потенциала: нуль — нижний уровень, единице - верхний. Информационные переходы происходят на границе битов (см.рис). Метод биполярного кодирования с альтернативной инверсией (Bipolar Alternate Mark Inversion, AMI) является модификацией метода NRZ. В этом методе используются три уровня потенциала - отрицательный, нулевой и положительный. Для кодирования логического нуля используется нулевой потенциал, логическая единица кодируется либо положительным потенциалом, либо отрицательным, при этом потенциал каждой новой единицы противоположен потенциалу предыдущей (см. рис.). Потенциальный код с инверсией при единице NRZI (Non Return to Zero with ones Inverted, NRZI). Использует два уровня сигнала. При передаче нуля он передает потенциал, который был установлен в предыдущем такте (то есть не меняет его), а при передаче единицы потенциал инвертируется на противоположный (см.рис). Биполярный импульсный код — трехуровневый код, в котором единица представлена импульсом одной полярности, а ноль - другой. Каждый импульс длится половину такта (см. рис) Манчестерский код имеет два уровня. Для кодирования единиц и нулей используется перепад потенциала: единица кодируется перепадом от низкого уровня сигнала к высокому, а ноль - обратным перепадом. В начале каждого такта может происходить служебный перепад сигнала, если нужно представить несколько единиц или нулей подряд (см. рис) Дифференциальный манчестерский (Differential Manchester) код. Середину тактового интервала линейного сигнала он использует только для синхронизации, и на ней всегда происходит смена уровня сигнала. Логические 0 и 1 передаются наличием или отсутствием смены уровня сигнала в начале тактового интервала соответственно (см.рис). Потенциальный код 2B1Q Код 2B1Q - потенциальный код с четырьмя уровнями сигнала для кодирования данных. Каждые два бита (2В) передаются за один такт сигналом, имеющим четыре состояния (1Q). Паре бит 00 соответствует потенциал --2,5 В, паре бит 01 соответствует потенциал -0,833 В, паре 11 - потенциал +0,833 В, а паре 10 - потенциал +2,5 В (см.рис.) Код MLT3 (Multi Level Transmission - 3) MLT-3 имеет три уровня сигнала. Единице соответствует переход с одного уровня сигнала на другой. Изменение уровня линейного сигнала происходит только в том случае, если на вход поступает единица, однако два соседних изменения всегда имеют противоположные направления (см.рис). Код PAM5 PAM 5 используется 5 уровней амплитуды и двухбитовое кодирование. Для каждой комбинации задается уровень напряжения. При двухбитовом кодировании для передачи информации необходимо четыре уровня. Пятый уровень добавлен для создания избыточности кода, используемого для исправления ошибок (см. рис.). 5.2.3 Логическое кодирование Логическое кодирование выполняется до физического кодирования. На этапе логического кодирования борются с недостатками методов физического цифрового кодирования отсутствие синхронизации, наличие постоянной составляющей, т.е.. сначала с помощью средств логического кодирования формируются исправленные последовательности двоичных данных, которые потом с помощью методов физического кодирования передаются по линиям связи. Логическое кодирование подразумевает замену бит исходной информации новой последовательностью бит, несущей ту же информацию, но обладающей, кроме этого, дополнительными свойствами, например возможностью для приемной стороны обнаруживать ошибки в принятых данных. Разделяют два метода логического кодирования: избыточные коды и скрэмблирование. Избыточные коды Избыточные коды основаны на разбиении исходной последовательности бит на порции, которые часто называют символами. Затем каждый исходный символ заменяется на новый, который имеет большее количество бит, чем исходный. 4В/5В Логический код 4В/5В заменяет исходные символы длиной в 4 бита на символы длиной в 5 бит. Такая схема дает 25=32 двухразрядных буквенно-цифровых символа, имеющих значение в десятичном коде от 00 до 31. В то время как исходные данные могут содержать только четыре бита или 24=16 символов. Поэтому в результирующем коде подбирают 16 таких комбинаций, которые не содержат большого количества нулей, а остальные считатют запрещенными кодами (code violation). Избыточные коды позволяют приемнику распознавать искаженные биты. Если приемник принимает запрещенный код, значит, на линии произошло искажение сигнала. 8В/6Т В этом коде для кодирования 8 бит исходной информации используется код из 6 сигналов, каждый из которых имеет три состояния. Избыточность кода 8В/6Т выше, чем кода 4В/5В, так как на 256 исходных кодов приходится 36=729 результирующих символов. Скрэмблирование Другой метод основан на предварительном "перемешивании" исходной информации таким образом, чтобы вероятность появления единиц и нулей на линии становилась приближенно одинаковой. Устройства, или блоки, выполняющие такую операцию, называются скрэмблерами (scramble - свалка, беспорядочная сборка) . Соответственно в приемнике используется дескрэмблер, который восстанавливает исходную последовательность бит. Необходимо заметить, что избыточные биты при скрэмблировании по линии не передаются! Алгоритм скрэмблирования заключается в побитном изменении проходящего через систему потока данных. Единственной операцией, используемой в скремблерах является XOR (сложение по модулю 2). Сначала придумывают скрэмблер. Затем согласно этому соотношению из текущей последовательности бит выбираются значения определенных разрядов и между ними выполняется операция XOR. При этом все разряды сдвигаются на 1 бит, а только что полученное значение ("0" или "1") помещается в освободившийся самый младший разряд. Значение, находившееся в самом старшем разряде до сдвига, добавляется в кодирующую последовательность, становясь очередным ее битом. Затем эта последовательность выдается в линию, где с помощью методов физического кодирования передается к узлу-получателю, на входе которого эта последовательность дескрэмблируется на основе обратного отношения. Примеры работы скремблеров можно найти в []. Существуют другие различные алгоритмы скрэмблирования, они отличаются количеством слагаемых, дающих цифру результирующего кода, и сдвигом между слагаемыми. Существуют и более простые методы борьбы с последовательностями единиц, также относимые к классу скрэмблирования. Для улучшения кода Bipolar AMI используются два метода, основанные на искусственном искажении последовательности нулей запрещенными символами. B8ZS (Bipolar with 8-Zeros Substitution) Код B8ZS исправляет только последовательности, состоящие из 8 нулей. Для этого он после первых трех нулей вместо оставшихся пяти нулей вставляет пять цифр: V-1*-0-V-1*. V здесь обозначает сигнал единицы, запрещенной для данного такта полярности, то есть сигнал, не изменяющий полярность предыдущей единицы, 1* - сигнал единицы корректной полярности, а знак звездочки отмечает тот факт, что в исходном коде в этом такте была не единица, а ноль. В результате на 8 тактах приемник наблюдает 2 искажения - очень маловероятно, что это случилось из-за шума на линии или других сбоев передачи. Поэтому приемник считает такие нарушения кодировкой 8 последовательных нулей и после приема заменяет их на исходные 8 нулей. Код B8ZS построен так, что его постоянная составляющая равна нулю при любых последовательностях двоичных цифр (см. рис). Код HDB3 (High-Density Bipolar 3-Zeros) Код HDB3 исправляет любые четыре подряд идущих нуля в исходной последовательности. Правила формирования кода HDB3 более сложные, чем кода B8ZS. Каждые четыре нуля заменяются четырьмя сигналами, в которых имеется один сигнал V. Для подавления постоянной составляющей полярность сигнала V чередуется при последовательных заменах. Кроме того, для замены используются два образца четырехтактовых кодов. Если перед заменой исходный код содержал нечетное число единиц, то используется последовательность 000V, а если число единиц было четным - последовательность 1*00V (см. рис) §6. Канальный уровень Канальный уровень обеспечивает передачу пакетов данных, поступающих с верхних уровней узлу назначения, адрес которого также указывается верхними уровнями. При этом канальный уровень «преобразовывает» пакеты данных в кадры своего формата для последующей передачи. На канальном уровне применяются свои методы пердачи (протоколы). Основными их хараткеристиками являются: Синхронный или асинхронный. С предварительным установлением соединения, или дейтаграммный. Символьно-ориентированный или бит-ориентированный. С обнаружением искаженных данных или без. С обнаружением потерянных данных или без. С восстановлением искаженных и потерянных данных или без. С поддержкой динамической компрессии данных или без. Подробное описание этих характеристик можно найти в []. Канальный уровень локальных и глобальных сетей отличается. В дальнейшем в этом параграфе мы будем рассматривать канальный уровень локальных сетей. В 1980 году в институте IEEE был организован комитет 802 по стандартизации локальных сетей, в результате работы которого было принято семейство стандартов IEEE 802.x, которые содержат рекомендации по проектированию нижних уровней (физического и канального) локальных сетей. Согласно этим стандартам канальный уровень делят на два подуровня: Логической передачи данных (Logical link control, LLC) Управления доступом к среде(Media Access Control, MAC). Уровень MAC отвечает за корректное совместное использование разделяемой среды передачи данных, которая используется в локальных сетях, и предоставляет ее тому или иному ухлу сети согласнонекоторому алгоритму. Затем этой средой может «пользоваться» уровень LLC. Все узлы сети на MAC-подуровне имеют свои уникальные 6-байтовые MACадреса (например, каждый сетевой адаптер или порт концентратора имеют такой адрес). Уровень LLC отвечает за передачу кадров данных между узлами сети с различной степенью надежности, а также является интерфейсом к сетевому уровню). Протоколы уровней MAC и LLC взаимно независимы. Подкомитет 802.2 института IEEE на уровне LLC выделяет три типа процедур управления логическим каналом, который предоставляется верхним уровням: LLC1 — процедура без установления соединения и без подтверждения. LLC2 — процедура с установлением соединения и с подтверждением. LLC3 — процедура без установления соединения, но с подтверждением. Эти процедуры общие для любого стандарта на уровне MAC (например 802.3 — Ethernet, или 802.5 — Token Ring). В результате стандарты семейства 802 имеют вполне определенную и четкую структуру (см. рис) Рис. Структура стандартов 802*** Для справки приведем далеко не полный список подкомитетов комитета 802: Список *** §7. Коммуникационное оборудование 7.1 Сетевые адаптеры Сетевой адаптер (Network Interface Card, NIC) - это периферийное устройство компьютера, непосредственно взаимодействующее со средой передачи данных, которая прямо или через другое коммуникационное оборудование связывает его с другими компьютерами. Это устройство решает задачи надежного обмена двоичными данными, представленными соответствующими электромагнитными сигналами, по внешним линиям связи. Как и любой контроллер компьютера, сетевой адаптер работает под управлением драйвера операционной системы и распределение функций между сетевым адаптером и драйвером может изменяться от реализации к реализации. Сетевой адаптер обычно выполняет следующие функции: Оформление передаваемой информации в виде кадра определенного формата. Получение доступа к среде передачи данных. Физическое кодирование информации. Синхронизация передачи информации по среде. Сетевые адаптеры различаются по типу и разрядности используемой в компьютере внутренней шины данных - ISA, EISA, PCI, MCA. Сетевые адаптеры различаются также по типу принятой в сети сетевой технологии - Ethernet, Token Ring, FDDI и т.п. Как правило, конкретная модель сетевого адаптера работает по определенной сетевой технологии (например, Ethernet). В связи с тем, что для каждой технологии сейчас имеется возможность использования различных сред передачи данных (тот же Ethernet поддерживает коаксиальный кабель, неэкранированную витую пару и оптоволоконный кабель), сетевой адаптер может поддерживать как одну, так и одновременно несколько сред. В случае, когда сетевой адаптер поддерживает только одну среду передачи данных, а необходимо использовать другую, применяются трансиверы и конверторы. Трансивер (приемопередатчик, transmitter+receiver) - это часть сетевого адаптера, его оконечное устройство, выходящее на кабель. Вместо подбора подходящего трансивера можно использовать конвертор, который может согласовать выход приемопередатчика, предназначенного для одной среды, с другой средой передачи данных (например, выход на витую пару преобразуется в выход на коаксиальный кабель). 7.2 Структурированная кабельная система 7.3 Физическая структуризация локальной сети. Повторители и концентраторы Для построения простейшей односегментной сети достаточно иметь сетевые адаптеры и кабель подходящего типа. Но даже в этом простом случае часто используются дополнительные устройства повторители сигналов, позволяющие преодолеть ограничения на максимальную длину кабельного сегмента. Основная функция повторителя (repeater), как это следует из его названия - повторение сигналов, поступающих на один из его портов, на всех остальных портах (Ethernet) или на следующем в логическом кольце порте (Token Ring, FDDI) синхронно с сигналамиРис.3. Повторитель Ethernet синхронно оригиналами. Повторитель повторяет биты кадра на всех своих портах улучшает электрические характеристики сигналов и их синхронность, и за счет этого появляется возможность увеличивать общую длину кабеля между самыми удаленными в сети станциями. Многопортовый повторитель часто называют концентратором (hub, concentrator), что отражает тот факт, что данное устройство реализует не только функцию повторения сигналов, но и концентрирует в одном центральном устройстве функции объединения компьютеров в сеть. Практически во всех современных сетевых стандартах концентратор является необходимым элементом сети, соединяющим отдельные компьютеры в сеть. Отрезки кабеля, соединяющие два компьютера или какие либо два других сетевых устройства называются физическими сегментам. Таким образом, концентраторы и повторители, которые используются для добавления новых физических сегментов, являются средством физической структуризации сети. Концентраторы образуют из отдельных физических отрезков кабеля общую среду передачи данных - логический сегмент (рис.). Логический сегмент также называют доменом коллизий, поскольку при попытке одновременной передачи данных любых двух компьютеров этого сегмента, хотя бы и принадлежащих разным физическим сегментам, возникает блокировка передающей среды. Следует особо подчеркнуть, что какую бы сложную структуру не образовывали концентраторы, например, путем иерархического соединения (рис.), все компьютеры, подключенные к ним, образуют единый логический сегмент, в котором любая пара взаимодействующих компьютеров полностью блокирует возможность обмена данными для других компьютеров. Появление устройств, централизующих соединения между отдельными сетевыми устройствами, потенциально позволяет улучшить управляемость сети и ее эксплуатационные характеристики (модифицируемость, ремонтопригодность и т.п.). С этой целью разработчики концентраторов часто встраивают в свои устройства, кроме основной функции повторителя, ряд вспомогательных функций, весьма полезных для улучшения качества сети. Различные производители концентраторов реализуют в своих устройствах различные наборы вспомогательных функций, но наиболее часто встречаются следующие: Объединение сегментов с различными физическими средами (например, коаксиал, витая пара и оптоволокно) в единый логический сегмент. Автосегментация портов - автоматическое отключение порта при его некорректном поведении (повреждение кабеля, интенсивная генерация пакетов ошибочной длины и т.п.). Поддержка между концентраторами резервных связей, которые используются при отказе основных. Защита передаваемых по сети данных от несанкционированного. Рис. 4. Логический сегмент, построенный с использованием концентраторов Поддержка средств управления сетями. 7.4 Логическая структуризация сети. Мосты и коммутаторы Несмотря на появление новых дополнительных возможностей основной функцией концентраторов остается передача пакетов по общей разделяемой среде. Коллективное использование многими компьютерами общей кабельной системы в режиме разделения времени приводит к существенному снижению производительности сети при интенсивном трафике. Общая среда перестает справляться с потоком передаваемых кадров и в сети возникает очередь компьютеров, ожидающих доступа. Это явление характерно для всех технологий, использующих разделяемые среды передачи данных, независимо от используемых алгоритмов доступа (хотя наиболее страдают от перегрузок трафика сети Ethernet с методом случайного доступа к среде). Поэтому сети, построенные на основе концентраторов, не могут расширяться в требуемых пределах - при определенном количестве компьютеров в сети или при появлении новых приложений всегда происходит насыщение передающей среды, и задержки в ее работе становятся недопустимыми. Эта проблема может быть решена путем логической структуризации сети с помощью мостов, коммутаторов и маршрутизаторов. Мост (bridge), а также его быстродействующий функциональный аналог - коммутатор (switching hub), делит общую среду передачи данных на логические сегменты. Логический сегмент образуется путем объединения нескольких физических сегментов (отрезков кабеля) с помощью одного или нескольких концентраторов. Каждый логический сегмент подключается к отдельному порту моста/коммутатора (рис.6). При поступлении кадра на какой-либо из портов мост/коммутатор повторяет этот кадр, но не на всех портах, как это делает концентратор, а только на том порту, к которому подключен сегмент, содержащий компьютерадресат. Разница между мостом и коммутатором состоит в том, что мост в каждый момент времени может осуществлять передачу кадров только между одной парой портов, а коммутатор одновременно поддерживает потоки данных между всеми своими портами. Другими словами, мост передает кадры последовательно, а коммутатор Рис.5. Разделение сети на логические сегменты параллельно. В последнее время локальные мосты полностью вытеснены коммутаторами. Мосты используются только для связи локальных сетей с глобальными, то есть как средства удаленного доступа, поскольку в этом случае необходимость в параллельной передаче между несколькими парами портов просто не возникает. При работе коммутатора среда передачи данных каждого логического сегмента остается общей только для тех компьютеров, которые подключены к этому сегменту непосредственно. Коммутатор осуществляет связь сред передачи данных различных логических сегментов. Он передает кадры между логическими сегментами только при необходимости, то есть только тогда, когда взаимодействующие компьютеры находятся в разных сегментах. Деление сети на логические сегменты улучшает производительность сети, если в сети имеются группы компьютеров, преимущественно обменивающиеся информацией между собой. Если же таких групп нет, то введение в сеть коммутаторов может только ухудшить общую производительность сети, так как принятие решения о том, нужно ли передавать пакет из одного сегмента в другой, требует дополнительного времени. Однако даже в сети средних размеров такие группы, как правило, имеются. Поэтому разделение ее на логические сегменты дает выигрыш в производительности - трафик локализуется в пределах групп, и нагрузка на их разделяемые кабельные системы существенно уменьшается. Коммутаторы принимают решение о том, на какой порт нужно передать кадр, анализируя адрес назначения, помещенный в кадре, а также на основании информации о принадлежности того или иного компьютера определенному сегменту, подключенному к одному из портов коммутатора, то есть на основании информации о конфигурации сети. Для того, чтобы собрать и обработать информацию о конфигурации подключенных к нему сегментов, коммутатор должен пройти стадию "обучения", то есть самостоятельно проделать некоторую предварительную работу по изучению проходящего через него трафика. Определение принадлежности компьютеров сегментам возможно за счет наличия в кадре не только адреса назначения, но и адреса источника, сгенерировавшего пакет. Используя информацию об адресе источника, коммутатор устанавливает соответствие между номерами портов и адресами компьютеров. В процессе изучения сети мост/коммутатор просто передает появляющиеся на входах его портов кадры на все остальные порты, работая некоторое время повторителем. После того, как мост/коммутатор узнает о принадлежности адресов сегментам, он начинает передавать кадры между портами только в случае межсегментной передачи. Если, уже после завершения обучения, на входе коммутатора вдруг появится кадр с неизвестным адресом назначения, то этот кадр будет повторен на всех портах. Мосты/коммутаторы, работающие описанным способом, обычно называются прозрачными (transparent), поскольку появление таких мостов/коммутаторов в сети совершенно не заметно для ее конечных узлов. Это позволяет не изменять их программное обеспечение при переходе от простых конфигураций, использующих только концентраторы, к Рис.6. Структура интерсети, построенной на основе маршрутизаторов более сложным, сегментированным. 7.5 Маршрутизаторы Маршрутизатор (router) позволяет организовывать в сети избыточные связи, образующие петли (рис.). M1, M2, ... , M7 LAN1, LAN2, LAN3, WAN4, WAN5, LAN6 L1, L2, ... маршрутизаторы уникальные номера сетей в едином формате локальные номера узлов (дублируются, разный формат) M1, M2, ... , M7 LAN1, LAN2, LAN3, WAN4, WAN5, LAN6 L1, L2, ... маршрутизаторы уникальные номера сетей в едином формате локальные номера узлов (дублируются, разный формат) Он справляется с этой задачей за счет того, что принимает решение о передаче пакетов на основании более полной информации о графе связей в сети, чем мост или коммутатор. Маршрутизатор имеет в своем распоряжении базу топологической информации, которая говорит ему, например, о том, между какими подсетями общей сети имеются связи и в каком состоянии (работоспособном или нет) они находятся. Имея такую карту сети, маршрутизатор может выбрать один из нескольких возможных маршрутов доставки пакета адресату. В данном случае под маршрутом понимают последовательность прохождения пакетом маршрутизаторов. Например, на рисунке 6 для связи станций L2 сети LAN1 и L1 сети LAN6 имеется два маршрута: М1-М5-М7 и М1-М6-М7. В отличии от моста/коммутатора, который не знает, как связаны сегменты друг с другом за пределами его портов, маршрутизатор видит всю картину связей подсетей друг с другом, поэтому он может выбрать правильный маршрут и при наличии нескольких альтернативных маршрутов. Решение о выборе того или иного маршрута принимается каждым маршрутизатором, через который проходит сообщение. Для того, чтобы составить карту связей в сети, маршрутизаторы обмениваются специальными служебными сообщениями, в которых содержится информация о тех связях между подсетями, о которых они знают (эти подсети подключены к ним непосредственно или же они узнали эту информацию от других маршрутизаторов). Построение графа связей между подсетями и выбор оптимального по какому-либо критерию маршрута на этом графе представляют собой сложную задачу. При этом могут использоваться разные критерии выбора маршрута - наименьшее количество промежуточных узлов, время, стоимость или надежность передачи данных. Маршрутизаторы позволяют объединять сети с различными принципами организации в единую сеть, которая в этом случае часто называется интерсеть (internet). Название интерсеть подчеркивает ту особенность, что образованное с помощью маршрутизаторов объединение компьютеров представляет собой совокупность нескольких сетей, сохраняющих большую степень автономности, чем несколько логических сегментов одной сети. В каждой из сетей, образующих интерсеть, сохраняются присущие им принципы адресации узлов и протоколы обмена информацией. Поэтому маршрутизаторы могут объединять не только локальные сети с различной технологией, но и локальные сети с глобальными. Маршрутизаторы не только объединяют сети, но и надежно защищают их друг от друга. Причем эта изоляция осуществляется гораздо проще и надежнее, чем с помощью мостов/коммутаторов. Например, при поступлении кадра с неправильным адресом мост/коммутатор обязан повторить его на всех своих портах, что делает сеть незащищенной от некорректно работающего узла. Маршрутизатор же в таком случае просто отказывается передавать "неправильный" пакет дальше, изолируя дефектный узел от остальной сети. Кроме того, маршрутизатор предоставляет администратору удобные средства фильтрации потока сообщений за счет того, что сам распознает многие поля служебной информации в пакете и позволяет их именовать понятным администратору образом. Нужно заметить, что некоторые мосты/коммутаторы также способны выполнять функции гибкой фильтрации, но задавать условия фильтрации администратор сети должен сам в двоичном формате, что достаточно сложно. Кроме фильтрации, маршрутизатор может обеспечивать приоритетный порядок обслуживания буферизованных пакетов, когда на основании некоторых признаков пакетам предоставляются преимущества при выборе из очереди. В результате, маршрутизатор оказывается сложным интеллектуальным устройством, построенным на базе одного, а иногда и нескольких мощных процессоров. Такой специализированный мультипроцессор работает, как правило, под управлением специализированной операционной системы. 7.6 Функциональное соответствие видов коммуникационного оборудования уровням модели OSI §8. Базовые сетевые технологии 8.1 Ethernet (IEEE 802.3). представляет собой набор из нескольких технологий (согласно стандарту IEEE 802.3): 10Base-5 – использует в качестве среды передачи данных "толстый" коаксиал. Максимальная длина сегмента - 500 метров (без повторителей). 10Base-2 - использует в качестве среды передачи данных "тонкий" коаксиал. Максимальная длина сегмента - 185 метров (без повторителей). 10Base-T - использует в качестве среды передачи данных неэкранированную «витую пару». Образует звездообразную топологию на основе концентратора. Расстояние между концентратором и конечным узлом - не более 100 м. 10Base-F - использует в качестве среды передачи данных волоконно-оптический кабель. Топология аналогична топологии стандарта 10Base-T. Имеется несколько вариантов этой спецификации - FOIRL (расстояние до 1000 м), 10Base-FL (расстояние до 2000 м), 10Base-FB (расстояние до 2000 м). Согласно 802.3 в названиях этих технологий закодировано: 10 - битовая скорость передачи данных этих стандартов - 10 Мбит/с, Base - метод передачи на одной базовой частоте 10 МГц (в отличие от методов, использующих несколько несущих частот, которые называются Broadband - широкополосными). Последний символ в названии стандарта физического уровня обозначает тип кабеля: 10Base-5 - сегменты по 500 м (5 раз по 100 м), 10Base-2 сегменты по 185 м (приблизительно 200 м), 10Base-Т - кабель на основе неэкранированной витой пары (Unshielded Twisted Pair, UTP), 10Base-F - оптоволоконный кабель (fiber волокно). Для всех вариантов физического уровня технология Ethernet использует манчестерский код. Все виды стандартов Ethernet используют один и тот же метод разделения среды передачи данных - метод CSMA/CD - метод доступа к разделяемой среде с контролем несущей и обнаружением коллизий. (подробное описание см. в []). Этот метод организовывает работу сети Ethernet следующим образом: каждая станция сети прослушивает, занят ли кабель (есть несущая в кабеле?). Если кабель свободен (несущая не обнаружена), станция сети начинает передавать кадр. Причем каждая такая передача ограничена в своей продолжительности (потому что, существует максимальный размер кадра). Более того, оборудование должно делать небольшие паузы между передачами пакетов (межкадровые интервалы IPG), чтобы не получилось так, что сеть используется одной парой станций, и чтобы другие тоже имели возможность доступа к сети. при этом каждая станция сети наблюдает за состоянием кабеля, когда он передает, чтобы узнать, когда другой сигнал помешал его передаче. На техническом языке такое слежение называется обнаружением коллизий. Как только коллизия обнаружена, станция аварийно завершает передачу, посылает 32-битовую последовательность для оповещения остальных о возникновении этой "неприятности", ждет конца работы других станций и снова пытается повторить передачу. При этом нужно соблюдать осторожность, иначе сеть может оказаться перегруженной узлами, впустую пытающимися передавать, причем каждая передача будет приводить к коллизии. Чтобы избежать таких ситуаций, Ethernet использует случайную паузу, которая образуется при каждой коллизии. При передаче максимального количества кадров минимальной длины (72 байт) по сегменту Ethernet, полезная пропускная способность сети составляет 5,48 Мбит/с. При передаче кадров максимальной длины, что увеличивает нагрузку на сеть полезная пропускная способность повышается и равна 9,76 Мбит/с. Однако при реальной передаче кадров несколькими узлами сети существует еще и время ожидания доступа к сети а также возникают коллизии. Следует четко представить, что в сети, которая использует метод CSMA/CD вероятность возникновения коллизий растет с ростом нагрузки на сеть. Полезная эффективность сети Ethernet находится в пределах 40-60%. Очень подробное описание стандартов 10Base-5 и 10Base-F можно найти в []. Мы их опустим в связи с тем, что перечисленные технологии на сегодняшний день используются редко. рассмотрим наиболее распространенные стандарты — 10Base-2 и 10Base-T. 8.1.1 Стандарт 10Base-2 Стандарт 10Base-2 использует в качестве передающей среды коаксиальный кабель с диаметром центрального медного провода 0,89 мм и внешним диаметром около 5 мм (RG-58 разных модификаций). Основные принципы подключения показаны на рис. Реально на ПК это выглядит так, как показано на рис. К каждой сетевой карте подключается Т-коннектор (см. рис). К нему подключается с обоих сторон тонкий коаксиал с BNC-коннекторами (см. рис), если станция не «крайняя» в шине. Иначе с одной стороны (на конце шины) подключается «терминатор» (сопротивление в 50 Ом) — см. рис. Максимальное количество станций, подключаемых к одному сегменту, - 30. Стандарт 10Base-2 предусматривает использование повторителей. И на этот стандарт распространяется "правило 5-4-3":***. Два крайних нагруженных сегмента могут подключать не более 29 узлов, а промежуточный сегмент не более 28 узлов. Потому максимальное количество узлов "тонкого" Ethernet - не более 86. Минимальное расстояние между станциями -1м. Кабель "тонкого" коаксиала имеет разметку для подключения узлов с шагом в 1 м. Поэтому для стандарта 10Base-2 не трудно рассчитать, что сеть стандарта 10Base-2 будет иметь максимальную длину в 5х185 = 925 м. Очевидно, что это ограничение является более сильным, чем общее ограничение в 2500 метров. Поэтому в такой сети коллизии будут легче распознаваться. Основные характеристики 10Base-2 приведены в таблице Основная используемая топология общая шина Используемый провод коаксиальный кабель 50 Ом, тонкий Максимальная длина сегмента 185 метров Минимальное расстояние между точками 0,5 метра подключения Максимальное количество точек подключения к 30 сегменту Максимальное количество сегментов в сети 5 Максимальное количество узлов в сети 86 8.1.2 Стандарт 10Base-T Стандарт 10Bаse-T принят в 1991 году. Он имеет обозначение IEEE 802.3i. Стандарт 10Base-T - это стандарт сети Ethernet, который использует в качестве среды передачи данных две неэкранированные витые пары (т.е. UTP категории не ниже 3). Сеть 10Base-T выглядит так, как показано на рис. Стандарт 10Base-T использует типовую топологию "звезда": Конечные узлы сети 10Base-T соединяются по топологии "точка-точка" со специальным устройством - многопортовым повторителем с помощью двух витых пар. Одна витая пара предназначена для передачи данных от станции к повторителю, обычно обозначается как выход Тx сетевого адаптера, а другая - для передачи данных от повторителя к станции, вход Rx сетевого адаптера. Тx - передатчик (transmitter); Rx - приемник (receiver) — см. рис . Концентраторы могут подключаться и к сетям Ethernet на основе коаксиального кабеля стандартов 10Base-5 и 10Base -2, и волоконной оптики 10Base-F. Концентраторы 10Base-T можно соединять друг с другом с помощью тех же портов, которые предназначены для подключения конечных узлов. При этом нужно позаботиться о том, чтобы передатчик и приемник одного порта были соединены соответственно с приемником и передатчиком другого порта. При использовании концентраторов в 10Base-T сети необходимо придерживатся следующих правил: максимальное расстояние отрезка витой пары между двумя непосредственно связанными узлами (станциями и концентраторами) не более 100 м при наличии витой пары качества не ниже категории 3. максимально число концентраторов между любыми двумя станциями сети равно 4 (Это правило носит название "правила 4-х хабов" и оно заменяет "правило 5-4-3", которые относится к коаксиальным сетям). при создании сети 10Base-T с большим числом станций концентраторы можно соединять друг с другом иерархическим способом, образуя древовидную структуру с единственным концентратором на вершине. При чем как показывает этот рисунок стандарт 10Base-T позволяет объединять в одном сегменте различные виды физического кабеля (коаксил, оптоволокно). Петлевидное соединение концентраторов в стандарте 10Ваsе-Т запрещено!. Это приводит к некорректной работе сети. нам известно, что общее количество станций в сети 10Base-T не должно превышать общего предела в 1024, и для данного типа физического уровня это количество действительно можно достичь. Ограничение в 2500 м длины сети, здесь понимается как максимальное расстояние между любыми двумя конечными узлами сети, еще часто применяется также термин "максимальный диаметр сети". Очевидно, что если между любыми двумя узлами сети должно быть не больше 4-х повторителей, то максимальный диаметр сети 10Base-T составляет 5*100 = 500 м. Основные характеристики 10Base-T приведены в таблице Основная используемая топология звезда В центре звезды расположено Концентратор (HUB) устройство Используется провод типа витая пара (категории 3 или лучше) Тип соединителя RJ-45 Максимальное расстояние между 100метров (возможно использование другого устройствами ограничения: Максимальное затухание сигнала на пути от источника до приемника не более 11,5 дб) Максимальное количество узлов не более 1024 8.2 Fast Ethernet (IEEE 802.3u) Fast Ethernet сохранила весь MAC уровень классического Ethernet, но пропускная способность была повышена до 100 Мбит/с. Метод разделения среды оставлен такой как в Ethernet — CSMA/CD. Ограничение на общую длину сети Fast Ethernet уменьшилось до 200 метров. Официальный стандарт 802.3u установил три различных спецификации для физического уровня Fast Ethernet: 100Base-TX - для двухпарного кабеля на неэкранированной витой паре UTP категории 5 или экранированной витой паре STP Type 1; 100Base-T4 - для четырехпарного кабеля на неэкранированной витой паре UTP категории 3, 4 или 5; 100Base-FX- для многомодового оптоволоконного кабеля, используются два волокна. Сети Fast Ethernet всегда имеют иерархическую древовидную структуру, построенную на концентраторах, как и сети стандартов 10Base-T и 10Base-F. В технологии Fast Ethernet отличия одного варианта от другого намного глубже. Различные физические спецификации имеют и различное количество проводников, так и различные методы кодирования. Для всех трех стандартов Fast Ethernet справедливы следующие характеристики: форматы кадров технологии Fast Ethernet отличаются от форматов кадров технологий 10мегабитного Ethernet. межкадровый интервал (IPG) равен 0,96 мкс, а битовый интервал равен 10 нс, соответственно время передачи кадра минимальной длины равно 5,75 мкс. В то же время все временные параметры алгоритма доступа (интервал отсрочки, время передачи кадра минимальной длины и т. п.) в битовых интервалах, остались прежними. признаком свободного состояния среды является передача по ней специального символа Idle соответствующего избыточного кода, а не отсутствие сигналов, как в стандартах Ethernet 10 Мбит/с. 8.2.1 100Base-FX Эта спецификация определяет работу протокола Fast Ethernet по многомодовому оптоволокну. Каждый узел соединяется с сетью двумя оптическими волокнами, идущими от приемника (Rх) и от передатчика (Тх). В принципе, нужно сразу отметить, что между спецификациями 100Base-FX и 100Base-TX есть много общего, поэтому общие для этих двух спецификаций свойства мы будем рассматривать под обобщенным названием 100Base-FX/TX. . В стандарте 100Base-FX/TX используется другой метод - 4В/5В. Существование запрещенных комбинаций символов позволяет отбраковывать ошибочные символы, и это существенно повышает устойчивость работы сетей с 100Base-FX/TX уже на самом низком - физическом уровне, а значит, приводит к увеличению эффективности сети в целом. Для физического кодирования 100Base-FX использует NRZI. 8.2.2 100Base-TX В качестве среды передачи данных спецификация 100Base-TX использует UTP категории 5 или STP Type 1. Максимальная длина кабеля в обоих случаях - 100 м. Для физического кодирования 100Base-TX использует MLT-3. В 100Base-TX имеется специальная функция автопереговоров (Auto-negotiation). Она предназначена для согласованной работы Fast Ethernet со стандартами Ethernet. Схема автопереговоров позволяет двум соединенным физически устройствам, которые поддерживают несколько стандартов физического уровня, отличающихся битовой скоростью и количеством витых пар, выбрать наиболее выгодный режим работы. Обычно процедура автопереговоров (см. []) происходит при подсоединении сетевого адаптера, который может работать на скоростях 10 и 100 Мбит/с, к концентратору или коммутатору. Всего в настоящее время определено 5 различных режимов работы, которые могут поддерживать устройства стандарта 100Base-TX или 100Base-T4 на витых парах; 10Base-T - работа с 2-мя парами категории 3; 10Base-T full duplex - работа с 2-мя парами категории 3, в полнодуплексном режиме 100Base-TX - используются 2 витые пары категории 5 (или Type 1A STP); 100Base-T4 - используются 4 витые пары категории 3; 100Base-TX full-duplex - 2 витые пары категории 5 (или Type 1A STP), работа в полнодуплексном режиме. 8.2.3 100Base-T4 Cпецификация 100Base-T4 была разработана для того, чтобы можно было использовать уже имеющуюся проводку на витой паре категории 3. Общую пропускную способность эта спецификация позволяет повысить за счет одновременной передачи потоков бит по всем 4 парам кабеля. В этой технологии используется кодирование 8В/6Т. Каждые 8 бит данных уровня MAC кодируются 6-ю троичными цифрами, то есть цифрами, имеющими три состояния. Группа из 6-ти троичных цифр затем передается на одну из трех передающих витых пар, независимо и последовательно. Четвертая пара всегда используется для прослушивания несущей частоты в целях обнаружения коллизии. Скорость передачи данных по каждой из трех передающих пар равна 33,3 Мбит/с, поэтому общая скорость протокола 100Base-T4 составляет 100 Мбит/с. 8.3 Gigabit Ethernet (IEEE 802.3z) Летом 1996 года IEEE объявил о создании группы 802.3z для разработки протокола Gigabit Ethernet, максимально подобного Ethernet, но с битовой скоростью 1000 Мбит/с. Стандарта Gigabit Ethernet был принят 29 июня 1998 года на заседании комитета IEEE 802.3. Работы по реализации Gigabit Ethernet на витой паре категории 5 были переданы специальному комитету 802.Заb, который окончательно принял стандарт 802.3ab в сентябре 1999 года. Отличительные особенности Gigabit Ethernet : Избыточные связи и тестирование оборудования не поддерживаются из-за того, что с этими задачами хорошо справляются протоколы более высоких уровней, протоколы маршрутизации и т. п. Сохраняются все форматы кадров Ethernet. Сохраняется метод доступа CSMA/CD. Поддерживаются все основные виды кабелей, используемых в Ethernet и Fast Ethernet: волоконно-оптический, витая пара категории 5, коаксиал. максимальный диаметр сети до 200 м. Минимальный размер кадра был увеличен (без учета преамбулы) с 64 до 512 байт или до 4096 bt. 8.3.1 Gigabit Ethernet на оптоволокне (802.3z) Спецификации физической среды стандарта 802.3z 1000Base-SX — использует многомодовое оптоволокно с длиной волны 850 нм (S означает Short Wavelength, короткая волна) 1000Base-LX — использует одномодовое или многомодовое оптоволокно с длиной волны 1300 нм (L - от Long Wavelength, длинная волна). Оптоволоконный Gigabit Ethernet использует метод кодирования 8В/10В. Для сокращения накладных расходов при использовании слишком длинных кадров для передачи коротких квитанций разработчики стандарта разрешили конечным узлам передавать несколько кадров подряд, без передачи среды другим станциям Для спецификации 1000Base-SX предельная длина оптоволоконного сегмента для кабеля 62,5/125 оставляет 220 м, а для кабеля 50/125 - 500 м. Приведенные расстояния в 220 и 500 м рассчитаны для худшего по стандарту случая полосы пропускания многомодового кабеля. Реальные кабели обычно обладают значительно лучшими характеристиками. В этом случае можно увеличить длину кабеля до примерно 800 м. Для спецификации 1000Base-LX в качестве источника излучения всегда применяется полупроводниковый лазер с длиной волны 1300 нм, а в качестве физической среды — это одномодовое оптоволокно. Максимальная длина кабеля для одномодового волокна равна 5000 м. Спецификация 1000Base-LX может работать и на многомодовом кабеле. В этом случае предельное расстояние получается небольшим - 550 м. Это связано с особенностями распространения когерентного света в широком канале многомодового кабеля. 8.3.2 Gigabit Ethernet на UTP категории 5 (802.3ab) Для передачи по такому кабелю данных со скоростью 1000 Мбит/с было решено организовать параллельную передачу одновременно по всем 4 парам кабеля Для кодирования данных был применен код РАМ5. Для распознавания коллизий разработчики спецификации 802.3аb применили технику, используемую в современных модемах. Вместо передачи по разным парам проводов или разнесения сигналов двух одновременно работающих навстречу передатчиков по диапазону частот оба передатчика работают навстречу друг другу по каждой из 4-х пар в одном и том же диапазоне частот, так как используют один и тот же потенциальный код РАМ5. Схема гибридной развязки позволяет приемнику и передатчику одного и того же узла использовать одновременно витую пару и для приема и для передачи (так же, как и в трансиверах коаксиального Ethernet). Для отделения принимаемого сигнала от своего собственного приемник вычитает из результирующего сигнала известный ему свой сигнал. Естественно, что это не простая операция и для ее выполнения используются специальные цифровые сигнальные процессоры - DSP (Digital Signal Processor). 8.4 Обзор Token Ring Сети стандарта Token Ring, также как и сети Ethernet, используют разделяемую среду передачи данных, которая состоит из отрезков кабеля, соединяющих все станции сети в кольцо. Кольцо рассматривается как общий разделяемый ресурс, и для доступа к нему используется не случайный алгоритм, как в сетях Ethernet, а детерминированный, основанный на передаче станциями права на использование кольца в определенном порядке. Право на использование кольца передается с помощью кадра специального формата, называемого маркером или токеном. Стандарт Token Ring был принят комитетом 802.5 в 1985 году. В это же время компания IBM приняла стандарт Token Ring в качестве своей основной сетевой технологии. В настоящее время именно компания IBM является основным законодателем моды технологии Token Ring, производя около 60% сетевых адаптеров этой технологии. Сети Token Ring работают с двумя битовыми скоростями - 4 Мб/с и 16 Мб/с. Первая скорость определена в стандарте 802.5, а вторая является новым стандартом де-факто, появившимся в результате развития технологии Token Ring. Смешение станций, работающих на различных скоростях, в одном кольце не допускается. Сети Token Ring, работающие со скоростью 16 Мб/с, имеют и некоторые усовершенствования в алгоритме доступа по сравнению со стандартом 4 Мб/с. В сетях с маркерным методом доступа право на доступ к среде передается циклически от станции к станции по логическому кольцу. Кольцо образуется отрезками кабеля, соединяющими соседние станции. Таким образом, каждая станция связана со своей предшествующей и последующей станцией и может непосредственно обмениваться данными только с ними. Для обеспечения доступа станций к физической среде по кольцу циркулирует кадр специального формата и назначения - маркер (токен). Получив маркер, станция анализирует его, при необходимости модифицирует и при отсутствии у нее данных для передачи обеспечивает его продвижение к следующей станции. Станция, которая имеет данные для передачи, при получении маркера изымает его из кольца, что дает ей право доступа к физической среде и передачи своих данных. Затем эта станция выдает в кольцо кадр данных установленного формата последовательно по битам. Переданные данные проходят по кольцу всегда в одном направлении от одной станции к другой. При поступлении кадра данных к одной или нескольким станциям, эти станции копируют для себя этот кадр и вставляют в этот кадр подтверждение приема. Станция, выдавшая кадр данных в кольцо, при обратном его получении с подтверждением приема изымает этот кадр из кольца и выдает новый маркер для обеспечения возможности другим станциям сети передавать данные. Время удержания одной станцией маркера ограничивается тайм-аутом удержания маркера, после истечение которого станция обязана передать маркер далее по кольцу. В сетях Token Ring 16 Мб/с используется также несколько другой алгоритм доступа к кольцу, называемый алгоритмом раннего освобождения маркера (Early Token Release). В соответствии с ним станция передает маркер доступа следующей станции сразу же после окончания передачи последнего бита кадра, не дожидаясь возвращения по кольцу этого кадра с битом подтверждения приема. В этом случае пропускная способность кольца используется более эффективно и приближается к 80 % от номинальной. Для различных видов сообщений передаваемым данным могут назначаться различные приоритеты. Каждая станция имеет механизмы обнаружения и устранения неисправностей сети, возникающих в результате ошибок передачи или переходных явлений (например, при подключении и отключении станции). Не все станции в кольце равны. Одна из станций обозначается как активный монитор, что означает дополнительную ответственность по управлению кольцом. Активный монитор осуществляет управление тайм-аутом в кольце, порождает новые маркеры (если необходимо), чтобы сохранить рабочее состояние, и генерирует диагностические кадры при определенных обстоятельствах. Активный монитор выбирается, когда кольцо инициализируется, и в этом качестве может выступить любая станция сети. Если монитор отказал по какой-либо причине, существует механизм, с помощью которого другие станции (резервные мониторы) могут договориться, какая из них будет новым активным монитором. Максимальная длина ответвительного кабеля зависит от типа концентратора, типа кабеля и скорости передачи данных. Обычно для скорости 16 Мб/с максимальная длина кабеля может достигать 200 м, а для скорости 4 Мб/с - 600 м. Концентраторы Token Ring делятся на активные и пассивные. Пассивные концентраторы обеспечивают только соединения портов внутри концентратора в кольцо, активные выполняют и функции повторителя, обеспечивая ресинхронизацию сигналов и исправление их амплитуды и формы. Естественно, что активные концентраторы поддерживают большие расстояния до станции, чем пассивные. Остальные станции сети соединены в кольцо непосредственными связями. Такие связи называются магистральными (trunk cable). Обычно связи такого рода используются для соединения концентраторов друг с другом для образования общего кольца. Порты концентраторов, предназначенные для такого соединения, называются портами Ring-In и Ring-Out. Для предотвращения влияния отказавшей или отключенной станции на работу кольца станции подключаются к магистрали кольца через специальные устройства, называемые устройствами подключения к магистрали (Trunk Coupling Unit, TCU). Максимальное количество станций в одном кольце - 250. Кроме экранированной витой пары существуют сетевые адаптеры и концентраторы Token Ring, поддерживающие неэкранированную витую пару и оптоволокно. 8.5 Обзор FDDI Технология Fiber Distributed Data Interface - первая технология локальных сетей, которая использовала в качестве среды передачи данных оптоволоконный кабель. Технология FDDI во многом основывается на технологии Token Ring, развивая и совершенствуя ее основные идеи. Разработчики технологии FDDI ставили перед собой в качестве наиболее приоритетных следующие цели: Повысить битовую скорость передачи данных до 100 Мб/с. Повысить отказоустойчивость сети за счет стандартных процедур восстановления ее после отказов различного рода - повреждения кабеля, некорректной работы узла, концентратора, возникновения высокого уровня помех на линии и т.п. Максимально эффективно использовать потенциальную пропускную способность сети как для асинхронного, так и для синхронного трафиков. Сеть FDDI строится на основе двух оптоволоконных колец, которые образуют основной и резервный пути передачи данных между узлами сети. Использование двух колец - это основной способ повышения отказоустойчивости в сети FDDI, и узлы, которые хотят им воспользоваться, должны быть подключены к обоим кольцам. В нормальном режиме работы сети данные проходят через все узлы и все участки кабеля первичного (Primary) кольца, поэтому этот режим назван режимом Thru - "сквозным" или "транзитным". Вторичное кольцо (Secondary) в этом режиме не используется. В случае какого-либо вида отказа, когда часть первичного кольца не может передавать данные (например, обрыв кабеля или отказ узла), первичное кольцо объединяется со вторичным, образуя вновь единое кольцо. Этот режим работы сети называется Wrap, то есть "свертывание" или "сворачивание" колец. Операция свертывания производится силами концентраторов и/или сетевых адаптеров FDDI. Для упрощения этой процедуры данные по первичному кольцу всегда передаются против часовой стрелки, а по вторичному - по часовой. Поэтому при образовании общего кольца из двух колец передатчики станций по-прежнему остаются подключенными к приемникам соседних станций, что позволяет правильно передавать и принимать информацию соседними станциями. В стандартах FDDI отводится много внимания различным процедурам, которые позволяют определить наличие отказа в сети, а затем произвести необходимую реконфигурацию. Сеть FDDI может полностью восстанавливать свою работоспособность в случае единичных отказов ее элементов. При множественных отказах сеть распадается на несколько не связанных сетей. Кольца в сетях FDDI рассматриваются как общая разделяемая среда передачи данных, поэтому для нее определен специальный метод доступа. Этот метод очень близок к методу доступа сетей Token Ring и также называется методом маркерного (или токенного) кольца token ring. Станция может начать передачу своих собственных кадров данных только в том случае, если она получила от предыдущей станции специальный кадр - токен доступа. После этого она может передавать свои кадры, если они у нее имеются, в течение времени, называемого временем удержания токена - Token Holding Time (THT). После истечения времени THT станция обязана завершить передачу своего очередного кадра и передать токен доступа следующей станции. Если же в момент принятия токена у станции нет кадров для передачи по сети, то она немедленно транслирует токен следующей станции. В сети FDDI у каждой станции есть предшествующий сосед (upstream neighbor) и последующий сосед (downstream neighbor), определяемые ее физическими связями и направлением передачи информации. Каждая станция в сети постоянно принимает передаваемые ей предшествующим соседом кадры и анализирует их адрес назначения. Если адрес назначения не совпадает с ее собственным, то она транслирует кадр своему последующему соседу (рис. 32, в). Нужно отметить, что, если станция захватила токен и передает свои собственные кадры, то на протяжении этого периода времени она не транслирует приходящие кадры, а удаляет их из сети. Если же адрес кадра совпадает с адресом станции, то она копирует кадр в свой внутренний буфер, проверяет его корректность (в основном, по контрольной сумме), передает его поле данных для последующей обработки протоколу, лежащего выше FDDI уровня (например, IP), а затем передает исходный кадр по сети последующей станции (рис. 32, г). В передаваемом в сеть кадре станция назначения отмечает три признака: распознавания адреса, копирования кадра и отсутствия или наличия в нем ошибок. После этого кадр продолжает путешествовать по сети, транслируясь каждым узлом. Станция, являющаяся источником кадра для сети, ответственна за то, чтобы удалить кадр из сети, после того, как он, совершив полный оборот, вновь дойдет до нее. При этом исходная станция проверяет признаки кадра, дошел ли он до станции назначения и не был ли при этом поврежден. Процесс восстановления информационных кадров не входит в обязанности протокола FDDI, этим должны заниматься протоколы более высоких уровней. Технология FDDI использует протокол 802.2 подуровня управления каналом данных (LLC), определенный в стандартах IEEE 802.2 и ISO 8802.2. FDDI использует первый тип процедур LLC, при котором узлы работают в дейтаграммном режиме - без установления соединений и без восстановления потерянных или поврежденных кадров. §9. Современные стеки протоколов 9.1 Характеристика популярных стеков коммуникационных протоколов Существует достаточно много стеков протоколов, широко применяемых в сетях. Примерами популярных стеков протоколов могут служить стек IPX/SPX фирмы Novell, стек TCP/IP, используемый в сети Internet и во многих сетях на основе операционной системы UNIX, стек OSI международной организации по стандартизации, стек DECnet корпорации Digital Equipment и некоторые другие. В небольших сетях может использоваться исключительно один стек. В крупных корпоративных сетях, объединяющих различные сети, параллельно используются, как правило, несколько стеков. В коммуникационном оборудовании реализуются протоколы нижних уровней, которые в большей степени стандартизованы, чем протоколы верхних уровней, и это является предпосылкой для успешной совместной работы оборудования различных производителей. Перечень протоколов, поддерживаемых тем или иным коммуникационным устройством, является одной из наиболее важных характеристик этого устройства. Компьютеры реализуют коммуникационные протоколы в виде соответствующих программных элементов сетевой операционной системы, например, протоколы канального уровня, как правило, выполнены в виде драйверов сетевых адаптеров, а протоколы верхних уровней в виде серверных и клиентских компонент сетевых сервисов. На нижних уровнях - физическом и канальном - практически во всех стеках используются одни и те же протоколы. Это хорошо стандартизованные протоколы Ethernet, Token Ring, FDDI и некоторые другие, которые позволяют использовать во всех сетях одну и ту же аппаратуру. Протоколы сетевого и более высоких уровней существующих стандартных стеков отличаются большим разнообразием и, как правило, не соответствуют рекомендуемому моделью ISO разбиению на уровни. В частности, в этих стеках функции сеансового и представительного уровня чаще всего объединены с прикладным уровнем. Такое несоответствие связано с тем, что модель ISO появилась как результат обобщения уже существующих и реально используемых стеков, а не наоборот. 9.2 Стек TCP/IP Стек TCP/IP, называемый также стеком DoD и стеком Internet, является наиболее популярным стеком коммуникационных протоколов. Стек был разработан по инициативе Министерства обороны США (DoD). Большой вклад в развитие стека TCP/IP внес университет Беркли, реализовав протоколы стека в своей версии ОС UNIX. На этом же стеке работает всемирная информационная сеть Internet. Так как стек TCP/IP был разработан до появления модели взаимодействия открытых систем ISO/OSI, то, хотя он также имеет многоуровневую структуру, соответствие уровней стека TCP/IP уровням модели OSI достаточно условно. Структура протоколов TCP/IP приведена на рисунке. Протоколы TCP/IP делятся на 4 уровня. Самый нижний (уровень IV) - уровень межсетевых интерфейсов - соответствует физическому и канальному уровням модели OSI. Этот уровень в протоколах TCP/IP не регламентируется, но поддерживает все популярные стандарты физического и канального уровня: для локальных каналов это Ethernet, Token Ring, FDDI, для глобальных каналов собственные протоколы работы на аналоговых коммутируемых и выделенных линиях SLIP/PPP, которые устанавливают соединения типа "точка - точка" через последовательные каналы глобальных сетей, и протоколы территориальных сетей X.25 и ISDN. Разработана также специальная спецификация, определяющая использование технологии ATM в качестве транспорта канального уровня. Следующий уровень (уровень III) - это уровень межсетевого взаимодействия, который занимается передачей дейтаграмм с использованием различных сетей. В качестве основного протокола сетевого уровня (в терминах модели OSI) в стеке используется протокол IP, который изначально проектировался как протокол передачи пакетов в составных сетях, состоящих из большого количества локальных сетей, объединенных как локальными, так и глобальными связями. Поэтому протокол IP хорошо работает в сетях со сложной топологией, рационально используя наличие в них подсистем и экономно расходуя пропускную способность низкоскоростных линий связи. Протокол IP является дейтаграммным протоколом. К уровню межсетевого взаимодействия относятся и все протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP (Routing Internet Protocol) и OSPF (Open Shortest Path First), а также протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol). Последний протокол предназначен для обмена информацией об ошибках между маршрутизатором и шлюзом, системой-источником и системой-приемником, то есть для организации обратной связи. С помощью специальных пакетов ICMP сообщается о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т.п. Следующий уровень (уровень II) называется основным. На этом уровне функционируют протокол управления передачей TCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol). Протокол TCP обеспечивает устойчивое виртуальное соединение между удаленными прикладными процессами. Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным методом, то есть без установления виртуального соединения, и поэтому требует меньших накладных расходов, чем TCP. Верхний уровень (уровень I) называется прикладным. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и сервисов прикладного уровня (см.§12). 9.3 Стек IPX/SPX Этот стек является оригинальным стеком протоколов фирмы Novell, который она разработала для своей сетевой операционной системы NetWare. Протоколы Internetwork Packet Exchange (IPX) и Sequenced Packet Exchange (SPX), которые дали имя стеку, являются прямой адаптацией протоколов XNS фирмы Xerox, распространенных в гораздо меньше степени, чем IPX/SPX. Семейство протоколов фирмы Novell и их соответствие модели ISO/OSI представлено на рисунке. На физическом и канальном уровнях в сетях Novell используются все популярные протоколы этих уровней (Ethernet, Token Ring, FDDI и другие). На сетевом уровне в стеке Novell работает протокол IPX, а также протоколы обмена маршрутной информацией RIP и NLSP (аналог протокола OSPF стека TCP/IP). IPX является протоколом, который занимается вопросами адресации и маршрутизации пакетов в сетях Novell. Маршрутные решения IPX основаны на адресных полях в заголовке его пакета, а также на информации, поступающей от протоколов обмена маршрутной информацией. Например, IPX использует информацию, поставляемую либо протоколом RIP, либо протоколом NLSP (NetWare Link State Protocol) для передачи пакетов компьютеру назначения или следующему маршрутизатору. Протокол IPX поддерживает только дейтаграммный способ обмена сообщениями, за счет чего экономно потребляет вычислительные ресурсы. Итак, протокол IPX обеспечивает выполнение трех функций: задание адреса, установление маршрута и рассылку дейтаграмм. Транспортному уровню модели OSI в стеке Novell соответствует протокол SPX, который осуществляет передачу сообщений с установлением соединений. На верхних прикладном, представительном и сеансовом уровнях работают протоколы NCP и SAP. Протокол NCP (NetWare Core Protocol) является протоколом взаимодействия сервера NetWare и оболочки рабочей станции. Этот протокол прикладного уровня реализует архитектуру клиент-сервер на верхних уровнях модели OSI. С помощью функций этого протокола рабочая станция производит подключение к серверу, отображает каталоги сервера на локальные буквы дисководов, просматривает файловую систему сервера, копирует удаленные файлы, изменяет их атрибуты и т.п., а также осуществляет разделение сетевого принтера между рабочими станциями. SAP (Service Advertising Protocol) - протокол объявления о сервисе - концептуально подобен протоколу RIP. Подобно тому, как протокол RIP позволяет маршрутизаторам обмениваться маршрутной информацией, протокол SAP дает возможность сетевым устройствам обмениваться информацией об имеющихся сетевых сервисах. Серверы и маршрутизаторы используют SAP для объявления о своих сервисных услугах и сетевых адресах. Протокол SAP позволяет сетевым устройствам постоянно корректировать данные о том, какие сервисные услуги имеются сейчас в сети. При старте серверы используют SAP для оповещения оставшейся части сети о своих услугах. Когда сервер завершает работу, то он использует SAP для того, чтобы известить сеть о прекращении действия своих услуг. В сетях Novell серверы NetWare 3.x каждую минуту рассылают широковещательные пакеты SAP. Пакеты SAP в значительной степени засоряют сеть, поэтому одной из основных задач маршрутизаторов, выходящих на глобальные связи, является фильтрация трафика SAPпакетов и RIP-пакетов. Особенности стека IPX/SPX обусловлены особенностями ОС NetWare, а именно ориентацией ее ранних версий (до 4.0) на работу в локальных сетях небольших размеров, состоящих из персональных компьютеров со скромными ресурсами. Поэтому Novell нужны были протоколы, на реализацию которых требовалось минимальное количество оперативной памяти (ограниченной в IBM-совместимых компьютерах под управлением MS-DOS 640 Кбайтами) и которые бы быстро работали на процессорах небольшой вычислительной мощности. В результате, протоколы стека IPX/SPX до недавнего времени хорошо работали в локальных сетях и не очень - в больших корпоративных сетях, так как слишком перегружали медленные глобальные связи широковещательными пакетами, которые интенсивно используются несколькими протоколами этого стека (например, для установления связи между клиентами и серверами). §10. TCP/IP сети 10.1 Адресация в IP сети 10.1.1 Типы адресов физический (MAC-адрес), сетевой (IP-адрес) и символьный (DNSимя) Каждый компьютер в сети TCP/IP имеет адреса трех уровней: Локальный адрес узла, определяемый технологией, с помощью которой построена отдельная сеть, в которую входит данный узел. Для узлов, входящих в локальные сети - это МАС-адрес сетевого адаптера или порта маршрутизатора, например, 11-А0-17-3D-BC-01. Эти адреса назначаются производителями оборудования и являются уникальными адресами, так как управляются централизовано. Для всех существующих технологий локальных сетей МАСадрес имеет формат 6 байтов: старшие 3 байта - идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем. Для узлов, входящих в глобальные сети, такие как Х.25 или frame relay, локальный адрес назначается администратором глобальной сети. IP-адрес, состоящий из 4 байт, например, 212.8.36.5. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet (Network Information Center, NIC), если сеть должна работать как составная часть Internet. Обычно провайдеры услуг Internet получают диапазоны адресов у подразделений NIC, а затем распределяют их между своими абонентами. Номер узла в протоколе IP назначается независимо от локального адреса узла. Деление IPадреса на поле номера сети и номера узла - гибкое, и граница между этими полями может устанавливаться весьма произвольно. Узел может входить в несколько IP-сетей. В этом случае узел должен иметь несколько IP-адресов, по числу сетевых связей. Таким образом IPадрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение. Символьный идентификатор-имя, например, www.zsu.zp.ua. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени организации, имени домена. Такой адрес, называемый также DNS-именем, используется на прикладном уровне, например, в протоколах FTP или telnet. 10.1.2 Три основных класса IP-адресов IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме, и разделенных точками, например: 128.10.2.30 - традиционная десятичная форма представления адреса, 10000000 00001010 00000010 00011110 - двоичная форма представления этого же адреса. На рисунке 11 показана структура IP-адреса. Адрес состоит из двух логических частей - номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая к номеру узла, определяется значениями первых битов адреса: Если адрес начинается с 0, то сеть относят к классу А, и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей, о чем будет сказано ниже.) В сетях класса А количество узлов должно быть больше 216 , но не превышать 224. Если первые два бита адреса равны 10, то сеть относится к классу В и является сетью средних размеров с числом узлов 28 - 216. В сетях класса В под адрес сети и под адрес узла отводится по 16 битов, то есть по 2 байта. Если адрес начинается с последовательности 110, то это сеть класса С с числом узлов не больше 28. Под адрес сети отводится 24 бита, а под адрес узла - 8 битов. Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес - multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес. Если адрес начинается с последовательности 11110, то это адрес класса Е, он зарезервирован для будущих применений. В таблице приведены диапазоны номеров сетей, соответствующих каждому классу сетей. Класс Наименьший адрес Наибольший адрес A B C D E 01.0.0 128.0.0.0 192.0.1.0 224.0.0.0 240.0.0.0 126.0.0.0 191.255.0.0 223.255.255.0 239.255.255.255 247.255.255.255 10.1.3 Соглашения о специальных адресах: broadcast, multicast, loopback В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов: если IР-адрес состоит только из двоичных нулей, 00 … 0000000 то он обозначает адрес того узла, который сгенерировал этот пакет; если в поле номера сети стоят 0, 00 … 000 Номер узла то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет; если все двоичные разряды IP-адреса равны 1, 11 … 111 то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast); если в поле адреса назначения стоят сплошные 1, Номер сети 11 … 111 то пакет, имеющий такой адрес рассылается всем узлам сети с заданным номером. Такая рассылка называется широковещательным сообщением (broadcast); адрес 127.0.0.1 зарезервирован для организации обратной связи при тестировании работы программного обеспечения узла без реальной отправки пакета по сети. Этот адрес имеет название loopback. Уже упоминавшаяся форма группового IP-адреса - multicast - означает, что данный пакет должен быть доставлен сразу нескольким узлам, которые образуют группу с номером, указанным в поле адреса. Узлы сами идентифицируют себя, то есть определяют, к какой из групп они относятся. Один и тот же узел может входить в несколько групп. Такие сообщения в отличие от широковещательных называются мультивещательными. Групповой адрес не делится на поля номера сети и узла и обрабатывается маршрутизатором особым образом. В протоколе IP нет понятия широковещательности в том смысле, в котором оно используется в протоколах канального уровня локальных сетей, когда данные должны быть доставлены абсолютно всем узлам. Как ограниченный широковещательный IP-адрес, так и широковещательный IP-адрес имеют пределы распространения в интерсети - они ограничены либо сетью, к которой принадлежит узел - источник пакета, либо сетью, номер которой указан в адресе назначения. Поэтому деление сети с помощью маршрутизаторов на части локализует широковещательный шторм пределами одной из составляющих общую сеть частей просто потому, что нет способа адресовать пакет одновременно всем узлам всех сетей составной сети. 10.1.4 Отображение физических адресов на IP-адреса: протоколы ARP и RARP Для определения локального адреса по IP-адресу используется протокол разрешения адреса Address Resolution Protocol, ARP. Протокол ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети - протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещательного доступа одновременно ко всем узлам сети, или же протокол глобальной сети (X.25, frame relay), как правило не поддерживающий широковещательный доступ. Существует также протокол, решающий обратную задачу - нахождение IP-адреса по известному локальному адресу. Он называется реверсивный ARP - RARP (Reverse Address Resolution Protocol) и используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера. В локальных сетях протокол ARP использует широковещательные кадры протокола канального уровня для поиска в сети узла с заданным IP-адресом. Узел, которому нужно выполнить отображение IP-адреса на локальный адрес, формирует ARP запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно. Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP запросе отправитель указывает свой локальный адрес. ARP-запросы и ответы используют один и тот же формат пакета. Так как локальные адреса могут в различных типах сетей иметь различную длину, то формат пакета протокола ARP зависит от типа сети. В глобальных сетях администратору сети чаще всего приходится вручную формировать ARP-таблицы, в которых он задает, например, соответствие IP-адреса адресу узла сети X.25, который имеет смысл локального адреса. В последнее время наметилась тенденция автоматизации работы протокола ARP и в глобальных сетях. Для этой цели среди всех маршрутизаторов, подключенных к какой-либо глобальной сети, выделяется специальный маршрутизатор, который ведет ARP-таблицу для всех остальных узлов и маршрутизаторов этой сети. При таком централизованном подходе для всех узлов и маршрутизаторов вручную нужно задать только IP-адрес и локальный адрес выделенного маршрутизатора. Затем каждый узел и маршрутизатор регистрирует свои адреса в выделенном маршрутизаторе, а при необходимости установления соответствия между IP-адресом и локальным адресом узел обращается к выделенному маршрутизатору с запросом и автоматически получает ответ без участия администратора. 10.1.5 Отображение символьных адресов на IP-адреса: служба DNS DNS (Domain Name System) - это распределенная база данных, поддерживающая иерархическую систему имен для идентификации узлов в сети Internet. Служба DNS предназначена для автоматического поиска IP-адреса по известному символьному имени узла. Спецификация DNS определяется стандартами RFC 1034 и 1035. DNS требует статической конфигурации своих таблиц, отображающих имена компьютеров в IP-адрес. Протокол DNS является служебным протоколом прикладного уровня. Этот протокол несимметричен - в нем определены DNS-серверы и DNS-клиенты. DNS-серверы хранят часть распределенной базы данных о соответствии символьных имен и IP-адресов. Эта база данных распределена по административным доменам сети Internet. Клиенты сервера DNS знают IP-адрес сервера DNS своего административного домена и по протоколу IP передают запрос, в котором сообщают известное символьное имя и просят вернуть соответствующий ему IP-адрес. Если данные о запрошенном соответствии хранятся в базе данного DNS-сервера, то он сразу посылает ответ клиенту, если же нет - то он посылает запрос DNS-серверу другого домена, который может сам обработать запрос, либо передать его другому DNS-серверу. Все DNSсерверы соединены иерархически, в соответствии с иерархией доменов сети Internet. Клиент опрашивает эти серверы имен, пока не найдет нужные отображения. Этот процесс ускоряется из-за того, что серверы имен постоянно кэшируют информацию, предоставляемую по запросам. Клиентские компьютеры могут использовать в своей работе IP-адреса нескольких DNS-серверов, для повышения надежности своей работы. База данных DNS имеет структуру дерева, называемого доменным пространством имен, в котором каждый домен (узел дерева) имеет имя и может содержать поддомены. Имя домена идентифицирует его положение в этой базе данных по отношению к родительскому домену, причем точки в имени отделяют части, соответствующие узлам домена. Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня условно можно разделить на "организационные" и "географические". Пример "организационных" доменов: com commercial (коммерческие) mil military (военные) edu educational (образовательные) net network (организации, обеспечивающие работу сети) gov goverment (правительственные) org organization (некоммерческие организации) Каждая страна (государство) имеет свой географический домен из двух букв: ae United Arab Emirates au Australia (Австралия) (Объединенные Арабские Эмираты) be Belgium (Бельгия) br Brazil (Бразилия) by Belarus (Белоруссия) ca Canada (Канада) ch Switzerland (Швейцария) cz Czech Republic (Чехия) de Germany (Германия) dk Denmark do Dominican Republic ee Estonia (Эстония) (Доминиканская республика) es Spain (Испания) fi Finland (Финляндия) fr France (Франция) hu Hungary (Венгрия) il Israel (Израиль) in India (Индия) jp Japan (Япония) kg Kyrgyzstan (Кыргызстан) kr South Korea (Южная Корея) kz Kazakhstan (Казахстан) lt Lithuania (Литва) lv Latvia (Латвия) mx Mexico (Мексика) nl Netherlands (Нидерланды) no Norway (Норвегия) nz New Zealand (Новая Зеландия) pl Poland (Польша) ro Romania (Румыния) ru Russia (Россия) si Slovenia (Словения) sk Slovak Republic (Словакия) su Soviet Union (Советский Союз поддерживается, но не распределяется) ua Ukraine (Украина) uk United Kingdom (Соединенное Королевство Великобритании и Северной Ирландии) yu Yugoslavia (Югославия) za South Africa (Южная Африка) В доменах государств опять же имеются "организационные" и "географические". "Организационные" в большинстве своем повторяют структуру "организационных" доменов верхнего уровня. "Географические" выделяются городам, областям и т.п. территориальным образованиям. Непосредственно в тех и других размещаются домены организаций или домены персональных пользователей. Обычно это имя компании, торговая марка или чтонибудь столь же характерное. Для неанглоязычных стран используется транскрипция имен. Часто возникают конфликты, связанные с тем, что одно и то же имя используется несколькими фирмами (законодательство допускает это для фирм, работающих в разных отраслях); многие люди заранее резервируют имена, могущие стать популярными для последующей продажи их владельцу торговой марки; но это уже касается юридической стороны функционирования Internet. С левого конца доменного имени находятся имена машин. Имена бывают "собственные" и "функциональные". Имена "собственные" каждый придумавает в меру фантазии: машинам присваиваются имена членов семьи, животных, растений, музыкантов и артистов, литературных персонажей. Имена "функциональные" вытекают из функций, выполняемых машиной: www - HTTP (WWW) сервер ftp - FTP сервер ns, nss, dns - DNS (Name) сервер mail - Mail сервер relay - Mail Exchanger proxy - соответствующий Proxy сервер Каждый домен (верхних уровней) DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена. Имя домена может содержать до 63 символов. Каждый хост в сети Internet однозначно определяется своим полным доменным именем (fully qualified domain name, FQDN), которое включает имена всех доменов по направлению от хоста к корню. Пример полного DNS-имени — www.zsu.zp.ua В Windows сетях используется еще WINS (Window Internet Name Service) - аналог DNS, но с динамическим отлеживанием и без какого-либо масштабирования,, отслеживающий соответствие имен Windows Network и IP-номеров машин. 10.1.6 Автоматизация процесса назначения IP-адресов узлам сети - протокол DHCP Как уже было сказано, IP-адреса могут назначаться администратором сети вручную. Это представляет для администратора утомительную процедуру. Ситуация усложняется еще тем, что многие пользователи не обладают достаточными знаниями для того, чтобы конфигурировать свои компьютеры для работы в интерсети и должны поэтому полагаться на администраторов. Протокол Dynamic Host Configuration Protocol (DHCP) был разработан для того, чтобы освободить администратора от этих проблем. Основным назначением DHCP является динамическое назначение IP-адресов. Однако, кроме динамического, DHCP может поддерживать и более простые способы ручного и автоматического статического назначения адресов. В ручной процедуре назначения адресов активное участие принимает администратор, который предоставляет DHCP-серверу информацию о соответствии IP-адресов физическим адресам или другим идентификаторам клиентов. Эти адреса сообщаются клиентам в ответ на их запросы к DHCP-серверу. При автоматическом статическом способе DHCP-сервер присваивает IP-адрес (и, возможно, другие параметры конфигурации клиента) из пула наличных IP-адресов без вмешательства оператора. Границы пула назначаемых адресов задает администратор при конфигурировании DHCP-сервера. Между идентификатором клиента и его IP-адресом по-прежнему, как и при ручном назначении, существует постоянное соответствие. Оно устанавливается в момент первичного назначения сервером DHCP IP-адреса клиенту. При всех последующих запросах сервер возвращает тот же самый IP-адрес. При динамическом распределении адресов DHCP-сервер выдает адрес клиенту на ограниченное время, что дает возможность впоследствии повторно использовать IP-адреса другими компьютерами. Динамическое разделение адресов позволяет строить IP-сеть, количество узлов в которой намного превышает количество имеющихся в распоряжении администратора IP-адресов. DHCP обеспечивает надежный и простой способ конфигурации сети TCP/IP, гарантируя отсутствие конфликтов адресов за счет централизованного управления их распределением. Администратор управляет процессом назначения адресов с помощью параметра "продолжительности аренды" (lease duration), которая определяет, как долго компьютер может использовать назначенный IP-адрес, перед тем как снова запросить его от сервера DHCP в аренду. Примером работы протокола DHCP может служить ситуация, когда компьютер, являющийся клиентом DHCP, удаляется из подсети. При этом назначенный ему IP-адрес автоматически освобождается. Когда компьютер подключается к другой подсети, то ему автоматически назначается новый адрес. Ни пользователь, ни сетевой администратор не вмешиваются в этот процесс. Это свойство очень важно для мобильных пользователей. Протокол DHCP использует модель клиент-сервер. Во время старта системы компьютерклиент DHCP, находящийся в состоянии "инициализация", посылает сообщение discover (исследовать), которое широковещательно распространяется по локальной сети и передается всем DHCP-серверам частной интерсети. Каждый DHCP-сервер, получивший это сообщение, отвечает на него сообщением offer (предложение), которое содержит IP-адрес и конфигурационную информацию. Компьютер-клиент DHCP переходит в состояние "выбор" и собирает конфигурационные предложения от DHCP-серверов. Затем он выбирает одно из этих предложений, переходит в состояние "запрос" и отправляет сообщение request (запрос) тому DHCP-серверу, чье предложение было выбрано. Выбранный DHCP-сервер посылает сообщение DHCP-acknowledgment (подтверждение), содержащее тот же IP-адрес, который уже был послан ранее на стадии исследования, а также параметр аренды для этого адреса. Кроме того, DHCP-сервер посылает параметры сетевой конфигурации. После того, как клиент получит это подтверждение, он переходит в состояние "связь", находясь в котором он может принимать участие в работе сети TCP/IP. Компьютеры-клиенты, которые имеют локальные диски, сохраняют полученный адрес для использования при последующих стартах системы. При приближении момента истечения срока аренды адреса компьютер пытается обновить параметры аренды у DHCP-сервера, а если этот IP-адрес не может быть выделен снова, то ему возвращается другой IP-адрес. В протоколе DHCP описывается несколько типов сообщений, которые используются для обнаружения и выбора DHCP-серверов, для запросов информации о конфигурации, для продления и досрочного прекращения лицензии на IP-адрес. Все эти операции направлены на то, чтобы освободить администратора сети от утомительных рутинных операций по конфигурированию сети. Однако использование DHCP несет в себе и некоторые проблемы. Во-первых, это проблема согласования информационной адресной базы в службах DHCP и DNS. Как известно, DNS служит для преобразования символьных имен в IP-адреса. Если IP-адреса будут динамически изменятся сервером DHCP, то эти изменения необходимо также динамически вносить в базу данных сервера DNS. Хотя протокол динамического взаимодействия между службами DNS и DHCP уже реализован некоторыми фирмами (так называемая служба Dynamic DNS), стандарт на него пока не принят. Во-вторых, нестабильность IP-адресов усложняет процесс управления сетью. Системы управления, основанные на протоколе SNMP, разработаны с расчетом на статичность IPадресов. Аналогичные проблемы возникают и при конфигурировании фильтров маршрутизаторов, которые оперируют с IP-адресами. Наконец, централизация процедуры назначения адресов снижает надежность системы: при отказе DHCP-сервера все его клиенты оказываются не в состоянии получить IP-адрес и другую информацию о конфигурации. Последствия такого отказа могут быть уменьшены путем использовании в сети нескольких серверов DHCP, каждый из которых имеет свой пул IP-адресов. 10.2 Обмен данных в IP сети 10.2.1 Протокол межсетевого взаимодействия IP Основу транспортных средств стека протоколов TCP/IP составляет протокол межсетевого взаимодействия - Internet Protocol (IP). К основным функциям протокола IP относятся: перенос между сетями различных типов адресной информации в унифицированной форме, сборка и разборка пакетов при передаче их между сетями с различным максимальным значением длины пакета. Пакет IP состоит из заголовка и поля данных. Заголовок пакета имеет следующие поля: VERS — указывает версию протокола IP. Сейчас повсеместно используется версия 4 и готовится переход на версию 6. HLEN — указывает значение длины заголовка пакета IP занимает 4 бита, измеренное в 32битовых словах. SERVICE TYPE — занимает 1 байт и задает приоритетность пакета и вид критерия выбора маршрута. TOTAL LENGTH — занимает 2 байта и указывает общую длину пакета с учетом заголовка и поля данных. IDENTIFICATION — занимает 2 байта и используется для распознавания пакетов, образовавшихся путем фрагментации исходного пакета. Все фрагменты должны иметь одинаковое значение этого поля. FLAGS — занимает 3 бита, оно указывает на возможность фрагментации пакета, а также на то, является ли данный пакет промежуточным или последним фрагментом исходного пакета. FRAGMENT OFFSET — занимает 13 бит, оно используется для указания в байтах смещения поля данных этого пакета от начала общего поля данных исходного пакета, подвергнутого фрагментации. TIME TO LIVE — занимает 1 байт и указывает предельный срок, в течение которого пакет может перемещаться по сети. Время жизни данного пакета измеряется в секундах и задается источником передачи средствами протокола IP. PROTOCOL — занимает 1 байт и указывает, какому протоколу верхнего уровня принадлежит пакет (например, это могут быть протоколы TCP, UDP или RIP). HEADER CHECKSUM — занимает 2 байта, она рассчитывается по всему заголовку. SOURCE IP ADDRESS — адрес источника и DESTINATION IP ADDRESS — адрес назначения имеют одинаковую длину - 32 бита, и одинаковую структуру. IP OPTIONS — является необязательным и используется обычно только при отладке сети. Максимальная длина поля данных пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65535 байтов, однако при передаче по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP-пакеты. Если это кадры Ethernet, то выбираются пакеты с максимальной длиной в 1500 байтов, умещающиеся в поле данных кадра Ethernet. Управление фрагментацией Протоколы транспортного уровня (протоколы TCP или UDP), пользующиеся сетевым уровнем для отправки пакетов, считают, что максимальный размер поля данных IP-пакета равен 65535, и поэтому могут передать ему сообщение такой длины для транспортировки через интерсеть. В функции уровня IP входит разбиение слишком длинного для конкретного типа составляющей сети сообщения на более короткие пакеты с созданием соответствующих служебных полей, нужных для последующей сборки фрагментов в исходное сообщение. В большинстве типов локальных и глобальных сетей определяется такое понятие как максимальный размер поля данных кадра или пакета, в которые должен инкапсулировать свой пакет протокол IP. Эту величину обычно называют максимальной единицей транспортировки - Maximum Transfer Unit, MTU. Сети Ethernet имеют значение MTU, равное 1500 байт, сети FDDI - 4096 байт, а сети Х.25 чаще всего работают с MTU в 128 байт. Работа протокола IP по фрагментации пакетов в хостах и маршрутизаторах иллюстрируется рисунком 12. Рис. 1 Фрагментация IP-пакетов при передаче между сетями с разными максимальными размерами пакетов. К1 и Ф1 канальный и физический уровень сети 1, К2 и Ф2 канальный и физический уровень сети 2 Пусть компьютер 1 связан с сетью, имеющей значение MTU в 4096 байтов, например, с сетью FDDI. При поступлении на IP-уровень компьютера 1 сообщения от транспортного уровня размером в 5600 байтов, протокол IP делит его на два IP-пакета, устанавливая в первом пакете признак фрагментации и присваивая пакету уникальный идентификатор, например, 486. В первом пакете величина поля смещения равна 0, а во втором - 2800. Признак фрагментации во втором пакете равен нулю, что показывает, что это последний фрагмент пакета. Общая величина IP-пакета составляет 2800+20 (размер заголовка IP), то есть 2820 байтов, что умещается в поле данных кадра FDDI. Далее компьютер 1 передает эти пакеты на канальный уровень К1, а затем и на физический уровень Ф1, который отправляет их маршрутизатору, связанному с данной сетью. Маршрутизатор видит по сетевому адресу, что прибывшие два пакета нужно передать в сеть 2, которая имеет меньшее значение MTU, равное 1500. Вероятно, это сеть Ethernet. Маршрутизатор извлекает фрагмент транспортного сообщения из каждого пакета FDDI и делит его еще пополам, чтобы каждая часть уместилась в поле данных кадра Ethernet. Затем он формирует новые пакеты IP, каждый из которых имеет длину 1400 + 20 = 1420 байтов, что меньше 1500 байтов, поэтому они нормально помещаются в поле данных кадров Ethernet. В результате в компьютер 2 по сети Ethernet приходит четыре IP-пакета с общим идентификатором 486, что позволяет протоколу IP, работающему в компьютере 2, правильно собрать исходное сообщение. Если пакеты пришли не в том порядке, в котором были посланы, то смещение укажет правильный порядок их объединения. Отметим, что IP-маршрутизаторы не собирают фрагменты пакетов в более крупные пакеты, даже если на пути встречается сеть, допускающая такое укрупнение. Это связано с тем, что отдельные фрагменты сообщения могут перемещаться по интерсети по различным маршрутам, поэтому нет гарантии, что все фрагменты проходят через какой-либо промежуточный маршрутизатор на их пути. При приходе первого фрагмента пакета узел назначения запускает таймер, который определяет максимально допустимое время ожидания прихода остальных фрагментов этого пакета. Если таймер истекает раньше прибытия последнего фрагмента, то все полученные к этому моменту фрагменты пакета отбрасываются, а в узел, пославший исходный пакет, направляется сообщение об ошибке с помощью протокола ICMP. Маршрутизация с помощью IP-адресов Рассмотрим теперь принципы, на основании которых в сетях IP происходит выбор маршрута передачи пакета между сетями. Сначала необходимо обратить внимание на тот факт, что не только маршрутизаторы, но и конечные узлы - компьютеры - должны принимать участие в выборе маршрута. Пример, приведенный на рисунке 13, демонстрирует эту необходимость. Здесь в локальной сети имеется несколько маршрутизаторов, и компьютер должен выбирать, какому из них следует отправить пакет. Рис. 2 Выбор маршрутизатора конечным узлом Длина маршрута может существенно измениться в зависимости от того, какой маршрутизатор выберет компьютер для передачи своего пакета на сервер, расположенный, например, в Германии, если маршрутизатор 1 соединен выделенной линией с маршрутизатором в Копенгагене, а маршрутизатор 2 имеет спутниковый канал, соединяющий его с Токио. В стеке TCP/IP маршрутизаторы и конечные узлы принимают решения о том, кому передавать пакет для его успешной доставки узлу назначения, на основании так называемых таблиц маршрутизации (routing tables). Следующая таблица представляет собой типичный пример таблицы маршрутов, использующей IP-адреса сетей: Адрес сети Адрес следующего Номер выходного Расстояние до назначения маршрутизатора порта сети назначения 56.0.0.0 198.21.17.7 1 20 56.0.0.0 213.34.12.4 2 130 116.0.0.0 213.34.12.4 2 1450 129.13.0.0 198.21.17.6 1 50 198.21.17.0 2 0 213. 34.12.0 1 0 default 198.21.17.7 1 В этой таблице в столбце "Адрес сети назначения" указываются адреса всех сетей, которым данный маршрутизатор может передавать пакеты. В стеке TCP/IP принят так называемый одношаговый подход к оптимизации маршрута продвижения пакета (next-hop routing) каждый маршрутизатор и конечный узел принимает участие в выборе только одного шага передачи пакета. Поэтому в каждой строке таблицы маршрутизации указывается не весь маршрут в виде последовательности IP-адресов маршрутизаторов, через которые должен пройти пакет, а только один IP-адрес - адрес следующего маршрутизатора, которому нужно передать пакет. Вместе с пакетом следующему маршрутизатору передается ответственность за выбор следующего шага маршрутизации. Одношаговый подход к маршрутизации означает распределенное решение задачи выбора маршрута. Это снимает ограничение на максимальное количество транзитных маршрутизаторов на пути пакета. (Альтернативой одношаговому подходу является указание в пакете всей последовательности маршрутизаторов, которые пакет должен пройти на своем пути. Такой подход называется маршрутизацией от источника - Source Routing. В этом случае выбор маршрута производится конечным узлом или первым маршрутизатором на пути пакета, а все остальные маршрутизаторы только отрабатывают выбранный маршрут, осуществляя коммутацию пакетов, то есть передачу их с одного порта на другой. Алгоритм Source Routing применяется в сетях IP только для отладки, когда маршрут задается в поле Резерв (IP OPTIONS) пакета.) В случае, если в таблице маршрутов имеется более одной строки, соответствующей одному и тому же адресу сети назначения, то при принятии решения о передаче пакета используется та строка, в которой указано наименьшее значение в поле "Расстояние до сети назначения". При этом под расстоянием понимается любая метрика, используемая в соответствии с заданным в сетевом пакете классом сервиса. Это может быть количество транзитных маршрутизаторов в данном маршруте (количество хопов от hop - прыжок), время прохождения пакета по линиям связи, надежность линий связи, или другая величина, отражающая качество данного маршрута по отношению к конкретному классу сервиса. Если маршрутизатор поддерживает несколько классов сервиса пакетов, то таблица маршрутов составляется и применяется отдельно для каждого вида сервиса (критерия выбора маршрута). Для отправки пакета следующему маршрутизатору требуется знание его локального адреса, но в стеке TCP/IP в таблицах маршрутизации принято использование только IP-адресов для сохранения их универсального формата, не зависящего от типа сетей, входящих в интерсеть. Для нахождения локального адреса по известному IP-адресу необходимо воспользоваться протоколом ARP. Конечный узел, как и маршрутизатор, имеет в своем распоряжении таблицу маршрутов унифицированного формата и на основании ее данных принимает решение, какому маршрутизатору нужно передавать пакет для сети N. Решение о том, что этот пакет нужно вообще маршрутизировать, компьютер принимает в том случае, когда он видит, что адрес сети назначения пакета отличается от адреса его собственной сети (каждому компьютеру при конфигурировании администратор присваивает его IP-адрес или несколько IP-адресов, если компьютер одновременно подключен к нескольким сетям). Когда компьютер выбрал следующий маршрутизатор, то он просматривают кэш-таблицу адресов своего протокола ARP и, может быть, находит там соответствие IP-адреса следующего маршрутизатора его MAC-адресу. Если же нет, то по локальной сети передается широковещательный ARP-запрос и локальный адрес извлекается из ARP-ответа. После этого компьютер формирует кадр протокола, используемого на выбранном порту, например, кадр Ethernet, в который помещает МАС-адрес маршрутизатора. Маршрутизатор принимает кадр Ethernet, извлекает из него пакет IP и просматривает свою таблицу маршрутизации для нахождения следующего маршрутизатора. При этом он выполняет те же действия, что и конечный узел. Одношаговая маршрутизация обладает еще одним преимуществом - она позволяет сократить объем таблиц маршрутизации в конечных узлах и маршрутизаторах за счет использования в качестве номера сети назначения так называемого маршрута по умолчанию - default, который обычно занимает в таблице маршрутизации последнюю строку. Если в таблице маршрутизации есть такая запись, то все пакеты с номерами сетей, которые отсутствуют в таблице маршрутизации, передаются маршрутизатору, указанному в строке default. Поэтому маршрутизаторы часто хранят в своих таблицах ограниченную информацию о сетях интерсети, пересылая пакеты для остальных сетей в порт и маршрутизатор, используемые по умолчанию. Подразумевается, что маршрутизатор, используемый по умолчанию, передаст пакет на магистральную сеть, а маршрутизаторы, подключенные к магистрали, имеют полную информацию о составе интерсети. Особенно часто приемом маршрутизации по умолчанию пользуются конечные узлы. Хотя они также в общем случае имеют в своем распоряжении таблицу маршрутизации, ее объем обычно незначителен, так как маршрутизация для компьютера - не основное занятие. Главная роль в маршрутизации пакетов в концепции протокола IP отводится, естественно, маршрутизаторам, которые должны обладать гораздо более полными таблицами маршрутизации, чем конечные узлы. Конечный узел часто вообще работает без таблицы маршрутизации, имея только сведения об IP-адресе маршрутизатора по умолчанию. При наличии одного маршрутизатора в локальной сети этот вариант - единственно возможный для всех конечных узлов. Но даже при наличии нескольких маршрутизаторов в локальной сети, когда проблема их выбора стоит перед конечным узлом, задание маршрута по умолчанию часто используется в компьютерах для сокращения объема их маршрутной таблицы. Другим способом разгрузки компьютера от необходимости ведения больших таблиц маршрутизации является получение от маршрутизатора сведений о рациональном маршруте для какой-нибудь конкретной сети с помощью протокола ICMP. Кроме маршрута default, в таблице маршрутизации могут встретиться два типа специальных записей - запись о специфичном для узла маршруте и запись об адресах сетей, непосредственно подключенных к портам маршрутизатора. Специфичный для узла маршрут содержит вместо номера сети полный IP-адрес, то есть адрес, имеющий ненулевую информацию не только в поле номера сети, но и в поле номера узла. Предполагается, что для такого конечного узла маршрут должен выбираться не так, как для всех остальных узлов сети, к которой он относится. В случае, когда в таблице есть разные записи о продвижении пакетов для всей сети N и ее отдельного узла, имеющего адрес N,D, при поступлении пакета, адресованного узлу N,D, маршрутизатор отдаст предпочтение записи для N,D. Записи в таблице маршрутизации, относящиеся к сетям, непосредственно подключенным к маршрутизатору, в поле "Расстояние до сети назначения" содержат нули. Еще одним отличием работы маршрутизатора и конечного узла при выборе маршрута является способ построения таблицы маршрутизации. Если маршрутизаторы обычно автоматически создают таблицы маршрутизации, обмениваясь служебной информацией, то для конечных узлов таблицы маршрутизации создаются, как правило, вручную администраторами, и хранятся в виде постоянных файлов на дисках. Существуют различные алгоритмы построения таблиц для одношаговой маршрутизации. Их можно разделить на три класса: алгоритмы фиксированной маршрутизации, алгоритмы простой маршрутизации, алгоритмы адаптивной маршрутизации. Независимо от алгоритма, используемого для построения таблицы маршрутизации, результат их работы имеет единый формат. За счет этого в одной и той же сети различные узлы могут строить таблицы маршрутизации по своим алгоритмам, а затем обмениваться между собой недостающими данными, так как форматы этих таблиц фиксированы. Поэтому маршрутизатор, работающий по алгоритму адаптивной маршрутизации, может снабдить конечный узел, применяющий алгоритм фиксированной маршрутизации, сведениями о пути к сети, о которой конечный узел ничего не знает. Фиксированная маршрутизация Этот алгоритм применяется в сетях с простой топологией связей и основан на ручном составлении таблицы маршрутизации администратором сети. Алгоритм часто эффективно работает также для магистралей крупных сетей, так как сама магистраль может иметь простую структуру с очевидными наилучшими путями следования пакетов в подсети, присоединенные к магистрали. Различают одномаршрутные таблицы, в которых для каждого адресата задан один путь, и многомаршрутные таблицы, определяющие несколько альтернативных путей для каждого адресата. При использовании многомаршрутных таблиц должно быть задано правило выбора одного из них. Чаще всего один путь является основным, а остальные - резервными. Простая маршрутизация Алгоритмы простой маршрутизации подразделяются на три подкласса: Случайная маршрутизация - пакеты передаются в любом, случайном направлении, кроме исходного. Лавинная маршрутизация - пакеты передаются во всех направлениях, кроме исходного (применяется в мостах для пакетов с неизвестным адресом доставки). Маршрутизация по предыдущему опыту - таблицы маршрутов составляются на основании данных, содержащихся в проходящих через маршрутизатор пакетах. Именно так работают прозрачные мосты, собирая сведения об адресах узлов, входящих в сегменты сети. Такой способ маршрутизации обладает медленной адаптируемостью к изменениям топологии сети. Адаптивная маршрутизация Это основной вид алгоритмов маршрутизации, применяющихся маршрутизаторами в современных сетях со сложной топологией. Адаптивная маршрутизация основана на том, что маршрутизаторы периодически обмениваются специальной топологической информацией об имеющихся в интерсети сетях, а также о связях между маршрутизаторами. Обычно учитывается не только топология связей, но и их пропускная способность и состояние. Адаптивные протоколы позволяют всем маршрутизаторам собирать информацию о топологии связей в сети, оперативно отрабатывая все изменения конфигурации связей. Эти протоколы имеют распределенный характер, который выражается в том, что в сети отсутствуют какие-либо выделенные маршрутизаторы, которые бы собирали и обобщали топологическую информацию: эта работа распределена между всеми маршрутизаторами. Структуризация сетей IP с помощью масок Часто администраторы сетей испытывают неудобства, из-за того, что количество централизовано выделенных им номеров сетей недостаточно для того, чтобы структурировать сеть надлежащим образом, например, разместить все слабо взаимодействующие компьютеры по разным сетям. В такой ситуации возможны два пути. Первый из них связан с получением от NIC дополнительных номеров сетей. Второй способ, употребляющийся более часто, связан с использованием так называемых масок, которые позволяют разделять одну сеть на несколько сетей. Маска - это число, двоичная запись которого содержит единицы в тех разрядах, которые должны интерпретироваться как номер сети. Например, для стандартных классов сетей маски имеют следующие значения: 255.0.0.0 - маска для сети класса А, 255.255.0.0 - маска для сети класса В, 255.255.255.0 - маска для сети класса С. В масках, которые использует администратор для увеличения числа сетей, количество единиц в последовательности, определяющей границу номера сети, не обязательно должно быть кратным 8, чтобы повторять деление адреса на байты. Пусть, например, маска имеет значение 255.255.192.0 (11111111 11111111 11000000 00000000). И пусть сеть имеет номер 129.44.0.0 (10000001 00101100 00000000 00000000), из которого видно, что она относится к классу В. После наложения маски на этот адрес число разрядов, интерпретируемых как номер сети, увеличилось с 16 до 18, то есть администратор получил возможность использовать вместо одного, централизованно заданного ему номера сети, четыре: 129.44.0.0 (10000001 00101100 00000000 00000000) 129.44.64.0 (10000001 00101100 01000000 00000000) 129.44.128.0 (10000001 00101100 10000000 00000000) 129.44.192.0 (10000001 00101100 11000000 00000000) Например, IP-адрес 129.44.141.15 (10000001 00101100 10001101 00001111), который по стандартам IP задает номер сети 129.44.0.0 и номер узла 0.0.141.15, теперь, при использовании маски, будет интерпретироваться как пара: 129.44.128.0 - номер сети, 0.0. 13.15 - номер узла. Таким образом, установив новое значение маски, можно заставить маршрутизатор подругому интерпретировать IP-адрес. При этом два дополнительных последних бита номера сети часто интерпретируются как номера подсетей. Еще один пример. Пусть некоторая сеть относится к классу В и имеет адрес 128.10.0.0 (рисунок 14). Этот адрес используется маршрутизатором, соединяющим сеть с остальной частью интерсети. И пусть среди всех станций сети есть станции, слабо взаимодействующие между собой. Их желательно было бы изолировать в разных сетях. Для этого сеть можно разделить на две сети, подключив их к соответствующим портам маршрутизатора, и задать для этих портов в качестве маски, например, число 255.255.255.0, то есть организовать внутри исходной сети с централизовано заданным номером две подсети класса C (можно было бы выбрать и другой размер для поля адреса подсети). Извне сеть по-прежнему будет выглядеть, как единая сеть класса В, а на местном уровне это будут две отдельные сети класса С. Приходящий общий трафик будет разделяться местным маршрутизатором между подсетями. Рис. 3 Пример использования масок для структурирования сети Необходимо заметить, что, если принимается решение об использовании механизма масок, то соответствующим образом должны быть сконфигурированы и маршрутизаторы, и компьютеры сети. 10.2.2 Протокол доставки пользовательских дейтаграмм UDP Задачей протокола транспортного уровня UDP (User Datagram Protocol) является передача данных между прикладными процессами без гарантий доставки, поэтому его пакеты могут быть потеряны, продублированы или прийти не в том порядке, в котором они были отправлены. Зарезервированные и доступные порты UDP В то время, как задачей сетевого уровня является передача данных между произвольными узлами сети, задача транспортного уровня заключается в передаче данных между любыми прикладными процессами, выполняющимися на любых узлах сети. Действительно, после того, как пакет средствами протокола IP доставлен в компьютер-получатель, данные необходимо направить конкретному процессу-получателю. Каждый компьютер может выполнять несколько процессов, более того, прикладной процесс тоже может иметь несколько точек входа, выступающих в качестве адреса назначения для пакетов данных. Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. В терминологии TCP/IP такие системные очереди называются портами. Таким образом, адресом назначения, который используется на транспортном уровне, является идентификатор (номер) порта прикладного сервиса. Номер порта, задаваемый транспортным уровнем, в совокупности с номером сети и номером компьютера, задаваемыми сетевым уровнем, однозначно определяют прикладной процесс в сети. Назначение номеров портов прикладным процессам осуществляется либо централизовано, если эти процессы представляют собой популярные общедоступные сервисы, типа сервиса удаленного доступа к файлам TFTP (Trivial FTP) или сервиса удаленного управления telnet, либо локально для тех сервисов, которые еще не стали столь распространенными, чтобы за ними закреплять стандартные (зарезервированные) номера. Централизованное присвоение сервисам номеров портов выполняется организацией Internet Assigned Numbers Authority. Эти номера затем закрепляются и опубликовываются в стандартах Internet. Например, упомянутому выше сервису удаленного доступа к файлам TFTP присвоен стандартный номер порта 69. Локальное присвоение номера порта заключается в том, что разработчик некоторого приложения просто связывает с ним любой доступный, произвольно выбранный числовой идентификатор, обращая внимание на то, чтобы он не входил в число зарезервированных номеров портов. В дальнейшем все удаленные запросы к данному приложению от других приложений должны адресоваться с указанием назначенного ему номера порта. 4.2.2.2 Мультиплексирование и демультиплексирование прикладных протоколов с помощью протокола UDP Протокол UDP ведет для каждого порта две очереди: очередь пакетов, поступающих в данный порт из сети, и очередь пакетов, отправляемых данным портом в сеть. Процедура обслуживания протоколом UDP запросов, поступающих от нескольких различных прикладных сервисов, называется мультиплексированием. Распределение протоколом UDP поступающих от сетевого уровня пакетов между набором высокоуровневых сервисов, идентифицированных номерами портов, называется демультиплексированием (рисунок 15). Рис. 4 Демультиплексирование Хотя к услугам протокола UDP может обратиться любое приложение, многие из них предпочитают иметь дело с другим, более сложным протоколом транспортного уровня TCP. Дело в том, что протокол UDP выступает простым посредником между сетевым уровнем и прикладными сервисами, и, в отличие от TCP, не берет на себя никаких функций по обеспечению надежности передачи. UDP является дейтаграммным протоколом, то есть он не устанавливает логического соединения, не нумерует и не упорядочивает пакеты данных. С другой стороны, функциональная простота протокола UDP обуславливает простоту его алгоритма, компактность и высокое быстродействие. Поэтому те приложения, в которых реализован собственный, достаточно надежный, механизм обмена сообщениями, основанный на установлении соединения, предпочитают для непосредственной передачи данных по сети использовать менее надежные, но более быстрые средства транспортировки, в качестве которых по отношению к протоколу TCP и выступает протокол UDP. Протокол UDP может быть использован и в том случае, когда хорошее качество каналов связи обеспечивает достаточный уровень надежности и без применения дополнительных приемов типа установления логического соединения и квитирования передаваемых пакетов. 4.2.2.3 Формат сообщений UDP Единица данных протокола UDP называется UDP-пакетом или пользовательской дейтаграммой (user datagram). UDP-пакет состоит из заголовка и поля данных, в котором размещается пакет прикладного уровня. Заголовок имеет простой формат и состоит из четырех двухбайтовых полей: UDP source port - номер порта процесса-отправителя, UDP destination port - номер порта процесса-получателя, UDP message length - длина UDP-пакета в байтах, UDP checksum - контрольная сумма UDP-пакета Не все поля UDP-пакета обязательно должны быть заполнены. Если посылаемая дейтаграмма не предполагает ответа, то на месте адреса отправителя могут помещаться нули. Можно отказаться и от подсчета контрольной суммы, однако следует учесть, что протокол IP подсчитывает контрольную сумму только для заголовка IP-пакета, игнорируя поле данных. 10.2.3 Протокол надежной доставки сообщений TCP В стеке протоколов TCP/IP протокол TCP (Transmission Control Protocol) работает так же, как и протокол UDP, на транспортном уровне. Он обеспечивает надежную транспортировку данных между прикладными процессами путем установления логического соединения. 4.2.3.1 Сегменты TCP Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байт. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера "вырезается" некоторая непрерывная часть данных, называемая сегментом. В протоколе TCP предусмотрен случай, когда приложение обращается с запросом о срочной передаче данных (бит PSH в запросе установлен в 1). В этом случае протокол TCP, не ожидая заполнения буфера до уровня размера сегмента, немедленно передает указанные данные в сеть. О таких данных говорят, что они передаются вне потока - out of band. Не все сегменты, посланные через соединение, будут одного и того же размера, однако оба участника соединения должны договориться о максимальном размере сегмента, который они будут использовать. Этот размер выбирается таким образом, чтобы при упаковке сегмента в IP-пакет он помещался туда целиком, то есть максимальный размер сегмента не должен превосходить максимального размера поля данных IP-пакета. В противном случае пришлось бы выполнять фрагментацию, то есть делить сегмент на несколько частей, для того, чтобы он вместился в IP-пакет. Аналогичные проблемы решаются и на сетевом уровне. Для того, чтобы избежать фрагментации, должен быть выбран соответствующий максимальный размер IP-пакета. Однако при этом должны быть приняты во внимание максимальные размеры поля данных кадров (MTU) всех протоколов канального уровня, используемых в сети. Максимальный размер сегмента не должен превышать минимальное значение на множестве всех MTU составной сети. 4.2.3.2 Порты и установление TCP-соединений В протоколе TCP также, как и в UDP, для связи с прикладными процессами используются порты. Номера портам присваиваются аналогичным образом: имеются стандартные, зарезервированные номера (например, номер 21 закреплен за сервисом FTP, 23 - за telnet), а менее известные приложения пользуются произвольно выбранными локальными номерами. Однако в протоколе TCP порты используются несколько иным способом. Для организации надежной передачи данных предусматривается установление логического соединения между двумя прикладными процессами. В рамках соединения осуществляется обязательное подтверждение правильности приема для всех переданных сообщений, и при необходимости выполняется повторная передача. Соединение в TCP позволяет вести передачу данных одновременно в обе стороны, то есть полнодуплексную передачу. Соединение в протоколе TCP идентифицируется парой полных адресов обоих взаимодействующих процессов (оконечных точек). Адрес каждой из оконечных точек включает IP-адрес (номер сети и номер компьютера) и номер порта. Одна оконечная точка может участвовать в нескольких соединениях. Установление соединения выполняется в следующей последовательности: При установлении соединения одна из сторон является инициатором. Она посылает запрос к протоколу TCP на открытие порта для передачи (active open). После открытия порта протокол TCP на стороне процесса-инициатора посылает запрос процессу, с которым требуется установить соединение. Протокол TCP на приемной стороне открывает порт для приема данных (passive open) и возвращает квитанцию, подтверждающую прием запроса. Для того чтобы передача могла вестись в обе стороны, протокол на приемной стороне также открывает порт для передачи (active port) и также передает запрос к противоположной стороне. Сторона-инициатор открывает порт для приема и возвращает квитанцию. Соединение считается установленным. Далее происходит обмен данными в рамках данного соединения. 4.2.3.3 Концепция квитирования В рамках соединения правильность передачи каждого сегмента должна подтверждаться квитанцией получателя. Квитирование - это один из традиционных методов обеспечения надежной связи. Идея квитирования состоит в следующем. Для того, чтобы можно было организовать повторную передачу искаженных данных отправитель нумерует отправляемые единицы передаваемых данных (далее для простоты называемые кадрами). Для каждого кадра отправитель ожидает от приемника так называемую положительную квитанцию - служебное сообщение, извещающее о том, что исходный кадр был получен и данные в нем оказались корректными. Время этого ожидания ограничено - при отправке каждого кадра передатчик запускает таймер, и если по его истечению положительная квитанция на получена, то кадр считается утерянным. В некоторых протоколах приемник, в случае получения кадра с искаженными данными должен отправить отрицательную квитанцию - явное указание того, что данный кадр нужно передать повторно. Существуют два подхода к организации процесса обмена положительными и отрицательными квитанциями: с простоями и с организацией "окна". Метод с простоями требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) от приемника и только после этого посылал следующий кадр (или повторял искаженный). Из рисунка 16 видно, что в этом случае производительность обмена данными существенно снижается - хотя передатчик и мог бы послать следующий кадр сразу же после отправки предыдущего, он обязан ждать прихода квитанции. Снижение производительности для этого метода коррекции особенно заметно на низкоскоростных каналах связи, то есть в территориальных сетях. Рис. 5 Метод подтверждения корректности передачи кадров с простоем источника Во втором методе для повышения коэффициента использования линии источнику разрешается передать некоторое количество кадров в непрерывном режиме, то есть в максимально возможном для источника темпе, без получения на эти кадры ответных квитанций. Количество кадров, которые разрешается передавать таким образом, называется размером окна. Рисунок 17 иллюстрирует данный метод для размера окна в W кадров. Обычно кадры при обмене нумеруются циклически, от 1 до W. При отправке кадра с номером 1 источнику разрешается передать еще W-1 кадров до получения квитанции на кадр 1. Если же за это время квитанция на кадр 1 так и не пришла, то процесс передачи приостанавливается, и по истечению некоторого тайм-аута кадр 1 считается утерянным (или квитанция на него утеряна) и он передается снова. Рис. 6 Метод "окна" - непрерывная отправка пакетов Если же поток квитанций поступает более-менее регулярно, в пределах допуска в W кадров, то скорость обмена достигает максимально возможной величины для данного канала и принятого протокола. Этот алгоритм называют алгоритмом скользящего окна. Действительно, при каждом получении квитанции окно перемещается (скользит), захватывая новые данные, которые разрешается передавать без подтверждения. 4.2.3.4 Реализация скользящего окна в протоколе TCP В протоколе TCP реализована разновидность алгоритма квитирования с использованием окна. Особенность этого алгоритма состоит в том, что, хотя единицей передаваемых данных является сегмент, окно определено на множестве нумерованных байт неструктурированного потока данных, поступающих с верхнего уровня и буферизуемых протоколом TCP. Квитанция посылается только в случае правильного приема данных, отрицательные квитанции не посылаются. Таким образом, отсутствие квитанции означает либо прием искаженного сегмента, либо потерю сегмента, либо потерю квитанции. В качестве квитанции получатель сегмента отсылает ответное сообщение (сегмент), в которое помещает число, на единицу превышающее максимальный номер байта в полученном сегменте. Если размер окна равен W, а последняя квитанция содержала значение N, то отправитель может посылать новые сегменты до тех пор, пока в очередной сегмент не попадет байт с номером N+W. Этот сегмент выходит за рамки окна, и передачу в таком случае необходимо приостановить до прихода следующей квитанции. 4.2.3.5 Выбор тайм-аута Выбор времени ожидания (тайм-аута) очередной квитанции является важной задачей, результат решения которой влияет на производительность протокола TCP. Тайм-аут не должен быть слишком коротким, чтобы по возможности исключить избыточные повторные передачи, которые снижают полезную пропускную способность системы. Но он не должен быть и слишком большим, чтобы избежать длительных простоев, связанных с ожиданием несуществующей или "заблудившейся" квитанции. При выборе величины тайм-аута должны учитываться скорость и надежность физических линий связи, их протяженность и многие другие подобные факторы. В протоколе TCP таймаут определяется с помощью достаточно сложного адаптивного алгоритма, идея которого состоит в следующем. При каждой передаче засекается время от момента отправки сегмента до прихода квитанции о его приеме (время оборота). Получаемые значения времен оборота усредняются с весовыми коэффициентами, возрастающими от предыдущего замера к последующему. Это делается с тем, чтобы усилить влияние последних замеров. В качестве тайм-аута выбирается среднее время оборота, умноженное на некоторый коэффициент. Практика показывает, что значение этого коэффициента должно превышать 2. В сетях с большим разбросом времени оборота при выборе тайм-аута учитывается и дисперсия этой величины. 4.2.3.6 Реакция на перегрузку сети Варьируя величину окна, можно повлиять на загрузку сети. Чем больше окно, тем большую порцию неподтвержденных данных можно послать в сеть. Если сеть не справляется с нагрузкой, то возникают очереди в промежуточных узлах-маршрутизаторах и в конечных узлах-компьютерах. При переполнении приемного буфера конечного узла "перегруженный" протокол TCP, отправляя квитанцию, помещает в нее новый, уменьшенный размер окна. Если он совсем отказывается от приема, то в квитанции указывается окно нулевого размера. Однако даже после этого приложение может послать сообщение на отказавшийся от приема порт. Для этого, сообщение должно сопровождаться пометкой "срочно" (бит URG в запросе установлен в 1). В такой ситуации порт обязан принять сегмент, даже если для этого придется вытеснить из буфера уже находящиеся там данные. После приема квитанции с нулевым значением окна протокол-отправитель время от времени делает контрольные попытки продолжить обмен данными. Если протокол-приемник уже готов принимать информацию, то в ответ на контрольный запрос он посылает квитанцию с указанием ненулевого размера окна. Другим проявлением перегрузки сети является переполнение буферов в маршрутизаторах. В таких случаях они могут централизовано изменить размер окна, посылая управляющие сообщения некоторым конечным узлам, что позволяет им дифференцировано управлять интенсивностью потока данных в разных частях сети. 4.2.3.7 Формат сообщений TCP Сообщения протокола TCP называются сегментами и состоят из заголовка и блока данных. Заголовок сегмента имеет следующие поля: Порт источника (SOURS PORT) занимает 2 байта, идентифицирует процесс-отправитель; Порт назначения (DESTINATION PORT) занимает 2 байта, идентифицирует процессполучатель; Последовательный номер (SEQUENCE NUMBER) занимает 4 байта, указывает номер байта, который определяет смещение сегмента относительно потока отправляемых данных; Подтвержденный номер (ACKNOWLEDGEMENT NUMBER) занимает 4 байта, содержит максимальный номер байта в полученном сегменте, увеличенный на единицу; именно это значение используется в качестве квитанции; Длина заголовка (HLEN) занимает 4 бита, указывает длину заголовка сегмента TCP, измеренную в 32-битовых словах. Длина заголовка не фиксирована и может изменяться в зависимости от значений, устанавливаемых в поле Опции; Резерв (RESERVED) занимает 6 битов, поле зарезервировано для последующего использования; Кодовые биты (CODE BITS) занимают 6 битов, содержат служебную информацию о типе данного сегмента, задаваемую установкой в единицу соответствующих бит этого поля: URG - срочное сообщение; ACK - квитанция на принятый сегмент; PSH - запрос на отправку сообщения без ожидания заполнения буфера; RST - запрос на восстановление соединения; SYN - сообщение используемое для синхронизации счетчиков переданных данных при установлении соединения; FIN - признак достижения передающей стороной последнего байта в потоке передаваемых данных. Окно (WINDOW) занимает 2 байта, содержит объявляемое значение размера окна в байтах; Контрольная сумма (CHECKSUM) занимает 2 байта, рассчитывается по сегменту; Указатель срочности (URGENT POINTER) занимает 2 байта, используется совместно с кодовым битом URG, указывает на конец данных, которые необходимо срочно принять, несмотря на переполнение буфера; Опции (OPTIONS) - это поле имеет переменную длину и может вообще отсутствовать, максимальная величина поля 3 байта; используется для решения вспомогательных задач, например, при выборе максимального размера сегмента; Заполнитель (PADDING) может иметь переменную длину, представляет собой фиктивное поле, используемое для доведения размера заголовка до целого числа 32-битовых слов. 10.2.4 Протокол обмена управляющими сообщениями ICMP 4.2.4.1 Общая характеристика протокола ICMP Протокол обмена управляющими сообщениями ICMP (Internet Control Message Protocol) позволяет маршрутизатору сообщить конечному узлу об ошибках, с которыми машрутизатор столкнулся при передаче какого-либо IP-пакета от данного конечного узла. Управляющие сообщения ICMP не могут направляться промежуточному маршрутизатору, который участвовал в передаче пакета, с которым возникли проблемы, так как для такой посылки нет адресной информации - пакет несет в себе только адрес источника и адрес назначения, не фиксируя адреса промежуточных маршрутизаторов. Протокол ICMP - это протокол сообщения об ошибках, а не протокол коррекции ошибок. Конечный узел может предпринять некоторые действия для того, чтобы ошибка больше не возникала, но эти действия протоколом ICMP не регламентируются. Каждое сообщение протокола ICMP передается по сети внутри пакета IP. Пакеты IP с сообщениями ICMP маршрутизируются точно так же, как и любые другие пакеты, без приоритетов, поэтому они также могут теряться. Кроме того, в загруженной сети они могут вызывать дополнительную загрузку маршрутизаторов. Для того, чтобы не вызывать лавины сообщения об ошибках, потери пакетов IP, переносящие сообщения ICMP об ошибках, не могут порождать новые сообщения ICMP. 4.2.4.2 Формат сообщений протокола ICMP Существует несколько типов сообщений ICMP. Каждый тип сообщения имеет свой формат, при этом все они начинаются с общих трех полей: 8-битного целого числа, обозначающего тип сообщения (TYPE), 8-битного поля кода (CODE), который конкретизирует назначение сообщения, и 16-битного поля контрольной суммы (CHECKSUM). Кроме того, сообщение ICMP всегда содержит заголовок и первые 64 бита данных пакета IP, который вызвал ошибку. Это делается для того, чтобы узел-отправитель смог более точно проанализировать причину ошибки, так как все протоколы прикладного уровня стека TCP/IP содержат наиболее важную информацию для анализа в первых 64 битах своих сообщений. Поле типа может иметь следующие значения: Значение Тип сообщения 0 3 4 5 8 Эхо-ответ (Echo Replay) Узел назначения недостижим (Destination Unreachable) Подавление источника (Source Quench) Перенаправление маршрута (Redirect) Эхо-запрос (Echo Request) 11 Истечение времени дейтаграммы (Time Exceeded for a Datagram) 12 Проблема с параметром пакета (Parameter Problem on a Datagram) 13 Запрос отметки времени (Timestamp Request) 14 Ответ отметки времени (Timestamp Replay) 17 Запрос маски (Address Mask Request) 18 Ответ маски (Address Mask Replay) Как видно из используемых типов сообщений, протокол ICMP представляет собой некоторое объединение протоколов, решающих свои узкие задачи. 4.2.4.3 Эхо-протокол Протокол ICMP предоставляет сетевым администраторам средства для тестирования достижимости узлов сети. Эти средства представляют собой очень простой эхо-протокол, включающий обмен двумя типами сообщений: эхо-запрос и эхо-ответ. Компьютер или маршрутизатор посылают по интерсети эхо-запрос, в котором указывают IP-адрес узла, достижимость которого нужно проверить. Узел, который получает эхо-запрос, формирует и отправляет эхо-ответ и возвращает сообщение узлу - отправителю запроса. В запросе могут содержаться некоторые данные, которые должны быть возвращены в ответе. Так как эхозапрос и эхо-ответ передаются по сети внутри IP-пакетов, то их успешная доставка означает нормальное функционирование всей транспортной системы интерсети. Во многих операционных системах используется утилита ping, которая предназначена для тестирования достижимости узлов. Эта утилита обычно посылает серию эхо-запросов к тестируемому узлу и предоставляет пользователю статистику об утерянных эхо-ответах и среднем времени реакции сети на запросы. 4.2.4.4 Сообщения о недостижимости узла назначения Когда маршрутизатор не может передать или доставить IP-пакет, он отсылает узлу, отправившему этот пакет, сообщение "Узел назначения недостижим" (тип сообщения - 3). Это сообщение содержит в поле кода значение, уточняющее причину, по которой пакет не был доставлен. Причина кодируется следующим образом: Код Причина 0 Сеть недостижима 1 Узел недостижим 2 Протокол недостижим 3 Порт недостижим 4 Требуется фрагментация, а бит DF установлен 5 Ошибка в маршруте, заданном источником 6 Сеть назначения неизвестна 7 Узел назначения неизвестен 8 Узел-источник изолирован 9 Взаимодействие с сетью назначения административно запрещено 10 Взаимодействие с узлом назначения административно запрещено 11 Сеть недостижима для заданного класса сервиса 12 Узел недостижим для заданного класса сервиса Маршрутизатор, обнаруживший по какой-либо причине, что он не может передать IP-пакет далее по сети, должен отправить ICMP-сообщение узлу-источнику, и только потом отбросить пакет. Кроме причины ошибки, ICMP-сообщение включает также заголовок недоставленного пакета и его первые 64 бита поля данных. Узел или сеть назначения могут быть недостижимы из-за временной неработоспособности аппаратуры, из-за того, что отправитель указал неверный адрес назначения, а также из-за того, что маршрутизатор не имеет данных о маршруте к сети назначения. Недостижимость протокола и порта означают отсутствие реализации какого-либо протокола прикладного уровня в узле назначения или же отсутствие открытого порта протоколов UDP или TCP в узле назначения. Ошибка фрагментации возникает тогда, когда отправитель послал в сеть пакет с признаком DF, запрещающим фрагментацию, а маршрутизатор столкнулся с необходимостью передачи этого пакета в сеть со значением MTU меньшим, чем размер пакета. 4.2.4.5 Перенаправление маршрута Маршрутные таблицы у компьютеров обычно являются статическими, так как конфигурируются администратором сети, а у маршрутизаторов - динамическими, формируемыми автоматически с помощью протоколов обмена маршрутной информации. Поэтому с течением времени при изменении топологии сети маршрутные таблицы компьютеров могут устаревать. Кроме того, эти таблицы обычно содержат минимум информации, например, только адреса нескольких маршрутизаторов. Для корректировки поведения компьютеров маршрутизатор может использовать сообщение протокола ICMP, называемое "Перенаправление маршрута" (Redirect). Это сообщение посылается в том случае, когда маршрутизатор видит, что компьютер отправляет пакет некоторой сети назначения нерациональным образом, то есть не тому маршрутизатору локальной сети, от которого начинается более короткий маршрут к сети назначения. Механизм перенаправления протокола ICMP позволяет компьютерам содержать в конфигурационном файле только IP-адреса его локальных маршрутизаторов. С помощью сообщений о перенаправлении маршрутизаторы будут сообщать компьютеру всю необходимую ему информацию о том, какому маршрутизатору следует отправлять пакеты для той или иной сети назначения. То есть маршрутизаторы передадут компьютеру нужную ему часть их таблиц маршрутизации. В сообщении "Перенаправление маршрута" маршрутизатор помещает IP-адрес маршрутизатора, которым нужно пользоваться в дальнейшем, и заголовок исходного пакета с первыми 64 битами его поля данных. Из заголовка пакета узел узнает, для какой сети необходимо пользоваться указанным маршрутизатором. 10.2.5 Протоколы обмена маршрутной информацией стека TCP/IP Все протоколы обмена маршрутной информацией стека TCP/IP относятся к классу адаптивных протоколов, которые в свою очередь делятся на две группы, каждая из которых связана с одним из следующих типов алгоритмов: дистанционно-векторный алгоритм (Distance Vector Algorithms, DVA), алгоритм состояния связей (Link State Algorithms, LSA). В алгоритмах дистанционно-векторного типа каждый маршрутизатор периодически и широковещательно рассылает по сети вектор расстояний от себя до всех известных ему сетей. Под расстоянием обычно понимается число промежуточных маршрутизаторов через которые пакет должен пройти прежде, чем попадет в соответствующую сеть. Может использоваться и другая метрика, учитывающая не только число перевалочных пунктов, но и время прохождения пакетов по связи между соседними маршрутизаторами. Получив вектор от соседнего маршрутизатора, каждый маршрутизатор добавляет к нему информацию об известных ему других сетях, о которых он узнал непосредственно (если они подключены к его портам) или из аналогичных объявлений других маршрутизаторов, а затем снова рассылает новое значение вектора по сети. В конце-концов, каждый маршрутизатор узнает информацию об имеющихся в интерсети сетях и о расстоянии до них через соседние маршрутизаторы. Дистанционно-векторные алгоритмы хорошо работают только в небольших сетях. В больших сетях они засоряют линии связи интенсивным широковещательным трафиком, к тому же изменения конфигурации могут отрабатываться по этому алгоритму не всегда корректно, так как маршрутизаторы не имеют точного представления о топологии связей в сети, а располагают только обобщенной информацией - вектором дистанций, к тому же полученной через посредников. Работа маршрутизатора в соответствии с дистанционновекторным протоколом напоминает работу моста, так как точной топологической картины сети такой маршрутизатор не имеет. Наиболее распространенным протоколом, основанным на дистанционно-векторном алгоритме, является протокол RIP. Алгоритмы состояния связей обеспечивают каждый маршрутизатор информацией, достаточной для построения точного графа связей сети. Все маршрутизаторы работают на основании одинаковых графов, что делает процесс маршрутизации более устойчивым к изменениям конфигурации. Широковещательная рассылка используется здесь только при изменениях состояния связей, что происходит в надежных сетях не так часто. Для того, чтобы понять, в каком состоянии находятся линии связи, подключенные к его портам, маршрутизатор периодически обменивается короткими пакетами со своими ближайшими соседями. Этот трафик также широковещательный, но он циркулирует только между соседями и поэтому не так засоряет сеть. Протоколом, основанным на алгоритме состояния связей, в стеке TCP/IP является протокол OSPF. 10.3 Proxy-серверы Под Proxy-сервером принято понимать набор программного и/или аппартного обеспечения, выполняющего следующие две функции: действует как посредник, помогая пользователям частной сети получить информацию из Internet, когда она им необходима, при этом он обеспечивает защиту сети. может сохранять часто запрашиваемую информацию в кэше на локальном диске, быстро доставляя ее пользователям без повторного обращения в Internet. Proxy-сервер обычно является лишь одним из компонентов программного обеспечения, предоставляющего множество других сервисов, таких, как услуги шлюза для подключения локальной сети к Internet или брандмауэра для защиты от проникновения извне (см. раздел 10.4). Proxy-серверы «разрывают» прямое соединение между клиентом и сервером при этом все внутренние IP-адреса сети отображаются на один-единственный «надежный» IP-адрес. Благодаря функционированию на прикладном уровне модели OSI proxy-серверы могут делать многое. Любой proxy-сервер состоит из множества специфических посредников для конкретных приложений: посредника HTTP для страниц Web, посредника ftp, посредника SMTP/POP для электронной почты; посредника HTTP для серверов новостей, посредника RealAudio/RealVideo и т. д. Каждый из этих посредников принимает пакеты только тех служб, для копирования, передачи и фильтрации которых он создан. Недостаток proxy-серверов для соединений состоит в том, что они не способны анализировать содержимое пакетов на прикладном уровне. Эту проблему решает такая программная технология, как SOCKS. SOCKS представляет собой не зависящий от платформы стандарт для доступа к посредникам для соединений. Доступ может осуществляться либо через специальное «SOCKS-ифицированное» приложение с клиентского компьютера, в других отношениях не подвергавшегося никаким изменениям, либо с каждого приложения, выполняющегося на компьютере, на котором установлено передаточное звено SOCKS (разделяемые или динамически компонуемые библиотеки). Помимо стандартизации SOCKS поддерживает идентификацию как с помощью имен/паролей, так и на базе API. Кроме того, она поддерживает шифрование с помощью открытых и личных ключей. Основная функция proxy-сервера — это организация кэширования. Базовая функция кэширования proxy-сервера работает во многом аналогично встроенной в браузеры Web за тем отличием, что содержимое кэша proxy-сервера доступно для множества пользователей. Всякий раз, когда какой-либо пользователь локальной сети запрашивает страницу из Internet, она сохраняется локально, что значительно ускоряет скорость доступа (см. рисунок) Рис. 7 Модель работы сети с использованием Proxy-сервера Кэширование позволяет оптимизировать функционирование соединения с Internet посредством преобразования случайных нерегулярных запросов HTTP в эффективный поток на базе правил. Некоторые proxy-серверы предлагают упреждающее кэширование, т. е. они загружают в кэш изображения и другие содержащиеся на странице Web объекты до того, как браузер их запросит. Кэш может заполняться заранее с помощью механизма, известного как «множитель последних изменений». При этом proxy-сервер анализирует даты создания часто запрашиваемых страниц, прогнозирует вероятный срок изменения и запрашивает их по его наступлении. И конечно, proxy-серверы позволяют администраторам проводить плановое пакетное копирование страниц Web в любое время дня и ночи, когда объем сетевого трафика невелик. Некоторые proxy-серверы имеют такую дополнительную функцию, как обратное кэширование. При этом кэш-серверы сохраняют не только страницы из Internet для локальных пользователей, но и локальные страницы для пользователей в Internet. Как бы быстро он ни работал, ни один кэш-сервер не в состоянии сохранить все. Неизбежно наступает момент, когда какой-либо пользователь запрашивает отсутствующие в кэше данные, которые затем медленно передаются по Internet. Однако эту проблему можно смягчить посредством организации взаимодействия между несколькими кэш-серверами так, чтобы они могли получать информацию друг от друга. Для этого предназначен протокол кэширования Internet (Internet Cache Protocol, ICP), с помощью которого организуется иерархическая структура кэшей. В иерархической (или многосвязной) структуре каждый кэш устанавливает отношения с другим кэшем. Отношения бывают двух типов: подчиненные и равноправные. При отсутствии запрошенного объекта кэш посылает запрос ICP о наличии требуемого объекта у какого-либо из равноправных кэшей. В случае его отсутствия и у равноправных кэшей запрос направляется вышестоящему серверу. Типичная иерархия кэшей показана на рисунке 19. Рис. 8 Иерархия кэшей Протокол кэширования Internet (Internet Cache Protocol, ICP) связывает между собой кэшсерверы в равноправно-подчиненную иерархию. Локальный кэш может запрашивать отсутствующие у него объекты как у равноправных, так и у вышестоящих кэшей. Связывая кэш-серверы между собой, ICP порождает и некоторые проблемы. Одна из них состоит в том, что запросы ICP создают посторонний сетевой трафик. Чем больше кэшсерверов в группе, тем больше трафик. Как следствие, масштабируемость такого решения ограничена. Другая проблема с ICP состоит в том, что со временем такие группы серверов оказываются избыточными. В конечном итоге у каждого из серверов в группе появляются свои копии часто запрашиваемых URL. По этой причине ICP постепенно вытесняется протоколом маршрутизации для группы кэш-серверов (Cache Array Routing Protocol, CARP), предложенным Microsoft. В случае CARP кэш-серверы отслеживаются посредством «списка членства в группе», автоматически обновляемого с помощью функции Time-to-Live (TTL), регулярно проверяющей дееспособность активных серверов. Затем с помощью алгоритма хэширования определяется, кто из членов группы должен обслуживать запрос к конкретному URL. Кэш-серверы долгое время рассматривались как полезные бесплатные приложения к proxyсерверам. Теперь, когда нагрузка на Internet неизмеримо возросла, и все большее число клиентов имеет высокоскоростные соединения, термины «кэш-сервер» и «proxy-сервер» вряд ли можно по-прежнему использовать взаимозаменяемо. Proxy-серверы будут продолжать предлагать кэширование как одну из своих функций. Однако возрастающий спрос на специализированное кэширование означает, что кэшсерверы все чаще будут рассматриваться в качестве отдельных продуктов. 10.4 Безопасность IP сети 10.4.1 Проблемы безопасности стека TCP/IP Протоколы семейства IP являются основой построения сетей intranet и глобальной сети Internet. Несмотря на то, что разработка TCP/IP финансировалась Министерством обороны США, TCP/IP не обладает абсолютной защищенностью и допускает различные типы атак. Под атакой понимают любые действия программно-административного характера, связанные с использованием специфики протоколов (в нашем случае стека TCP/IP) и направленные на нарушение работы сети или деструкции любой программно-аппаратной ее части. Для того, чтобы предпринять подобные атаки, злоумышленник («хакер») должен обладать контролем над одной из систем, подключенной к Internet. Это возможно, например, в случае, когда он взломал какую-то систему или использует собственный компьютер, имеющий соединение с Internet (для многих атак достаточно иметь PPP-доступ). Атаки бывают физические атаки (например, непосредственный съем информации через ethernet или перехват трафика между радио-мостами), и связанные с программной реализацией. Программные атаки на TCP/IP можно разделить на два вида: 4. пассивные 5. активные. Более подробно вопросы безопасности TCP/IP сетей рассмотрены в []. 10.4.2 Межсетевой экран (firewall) Брандмауэр (межсетевой экран, firewall) - это система или комбинация систем, позволяющие разделить сеть на две или более частей и реализовать набор правил, определяющих условия прохождения пакетов из одной части в другую (см рис.20). Как правило, эта граница проводится между локальной сетью предприятия и INTERNET, хотя ее можно провести и внутри локальной сети предприятия. Брандмауэр таким образом пропускает через себя весь трафик. Для каждого проходящего пакета брандмауэр принимает решение пропускать его или отбросить. Для того чтобы брандмауэр мог принимать эти решения, ему необходимо определить набор правил. Рис. 9 Модель работы брандмауэра Брандмауэры бывают программные и аппаратные Все брандмауэры можно разделить на три типа: пакетные фильтры (packet filter) сервера прикладного уровня (application gateways) сервера уровня соединения (circuit gateways) Все типы могут одновременно встретиться в одном брандмауэре. Пакетные фильтры — брандмауэры с пакетными фильтрами принимают решение о том, пропускать пакет или отбросить, просматривая IP-адреса, флаги или номера TCP портов в заголовке этого пакета. Сервера прикладного уровня — брандмауэры с серверами прикладного уровня используют сервера конкретных сервисов - TELNET, FTP и т.д. (proxy server), запускаемые на брандмауэре и пропускающие через себя весь трафик, относящийся к данному сервису. Сервера уровня соединения — сервер уровня соединения представляет из себя транслятор TCP соединения. Пользователь образует соединение с определенным портом на брандмауэре, после чего последний производит соединение с местом назначения по другую сторону от брандмауэра. Во время сеанса этот транслятор копирует байты в обоих направлениях, действуя как провод. Как правило, пункт назначения задается заранее, в то время как источников может быть много (соединение типа один - много). Используя различные порты, можно создавать различные конфигурации. Такой тип сервера позволяет создавать транслятор для любого определенного пользователем сервиса, базирующегося на TCP, осуществлять контроль доступа к этому сервису, сбор статистики по его использованию. Более подробно — см [] §11. Internet Прежде чем перейти к рассмотрению конкретных сервисов Интернет, надо описать некоторые категории, использующиеся при оценке различных сервисов и их применимости к тем или иным задачам. Конечно, для того, чтобы лучше представить себе схему передачи информации в Интернет, полезно было бы классифицировать сервисы, разделив их на группы в соответствии с каким-либо набором критериев оценки. Однако по ряду причин нельзя ввести сколько-нибудь жесткую или определенную классификацию. Основная причина — уникальность каждого сервиса и одновременная неотделимость его от остальных. Каждый сервис характеризуется свойствами, часть которых объединяет его с одной группой сервисов, а другая часть с другой группой. Наиболее подходящим для классификации сервисов Интернет является деление на сервисы интерактивные, прямые и отложенного чтения. Эти группы объединяют сервисы по большому числу признаков. Сервисы, относящиеся к классу отложенного чтения, наиболее распространены, наиболее универсальны и наименее требовательны к ресурсам компьютеров и линиям связи. Основным признаком этой группы является та особенность, что запрос и получение информации могут быть достаточно сильно (что, вообще говоря, ограничивается только актуальностью информации на момент получения) разделены по времени. Сюда относится, например, электронная почта. Сервисы прямого обращения характерны тем, что информация по запросу возвращается немедленно. Однако от получателя информации не требуется немедленной реакции. Сервисы, где требуется немедленная реакция на полученную информацию, т.е. получаемая информация является, по сути дела, запросом, относятся к интерактивным сервисам. Для пояснения вышесказанного можно заметить, что в обычной связи аналогами сервисов интерактивных, прямых и отложенного чтения являются, например, телефон, факс и письменная корреспонденция. 12.1 Электронная почта. Протокол SMTP Электронная почта (e-mail) — первый из сервисов Интернет, наиболее распространенный и эффективный из них. Электронная почта - типичный сервис отложенного чтения (off-line). Сообщение, как правило, посылается в виде обычного текста. Адресат получает его на свой компьютер через какой-то, возможно достаточно длительный промежуток времени, и читает сообщение тогда, когда ему будет удобно. E-mail очень похож на обычную бумажную почту. Электронное письмо состоит из заголовков, содержащих служебную информацию (об авторе письма, получателе, пути прохождения по сети и т.д.), и собственно содержимого письма. Электронным письмом можно послать файл с данными. Кроме того, его можно подписать. Электронная почта повторяет достоинства (простота, дешевизна, возможность пересылки нетекстовой информации, возможность подписать и зашифровать письмо) и недостатки (негарантированное время пересылки, возможность доступа третьих лиц во время пересылки, неинтерактивность) обычной почты. Однако у них есть и существенные отличия. Электронна почта не зависит от пункта назначения пересылки или она довольно невелика. Электронное письмо можно шифровать и подписывать E-mail универсален - множество сетей во всем мире, построенных на совершенно разных принципах и протоколах, могут обмениваться электронными письмами с Интернет, получая тем самым доступ к прочим его ресурсам. Практически все сервисы Интернет, использующиеся обычно как сервисы прямого доступа (on-line), имеют интерфейс к электронной почте. Скорость доставки сообщений электронной почты сильно зависит от того, каким образом она передается. Путь электронного письма между двумя машинами, непосредственно подключенными к Интернет, занимает секунды, и при этом вероятность потери или подмены письма минимальна. С другой стороны, если для передачи электронных писем используется технология FTN (последовательной передачи файлов многими компьютерами по цепочке), и оно посылается в какую-нибудь экзотическую сеть, то письмо, во-первых, будет идти долго — дни и даже недели, во-вторых, будет иметь большие шансы просто потеряться при обрыве связи во время передачи по цепочке, в-третьих, его могут легко подменить где-то в пути следования. Сервис электронной почты основан на протоколе SMTP. SMTP (Simple Message Transfer Protocol), или в дословном переводе простой протокол передачи сообщений, предназначен исключительно для общения между собой почтовых серверов. В терминах модели OSI протокол SMTP, хотя и находится на уровне приложений, способен общаться только с TCP/IP, расположенном на четвертом, транспортном уровне. 7 SMTP 6 5 4 TCP 3 IP 2 1 Рис. 10 SMTP протокол в терминах модели OSI Отсутствие поддержки других сетевых протоколов, однако, не помешало SMTP получить очень широкое распространение. В связи с бурным ростом Internet, на сегодняшний момент SMTP, как протокол передачи сообщений, приобрел статус стандарта де-факто. Практически все производители пакетов электронной почты либо поддерживают протокол SMTP как базовый, либо на уровне шлюзов. В большой степени такая популярность объясняется сравнительной простотой реализации и широкими возможностями расширяемости без ущерба для обратной совместимости с существующими версиями почтовых систем. Немаловажным фактором является также широкая доступность спецификаций и отсутствие необходимости отчислять средства за их использование. SMTP-системы за последнее время активно развивались в следующих направлениях: расширение протокола общения сервер-сервер (собственно SMTP); создание и улучшение протокола общения клиент-сервер (POP3, IMAP4); внедрение и расширение нового формата сообщений (MIME). Начальная версия протокола SMTP поддерживала ограниченный набор команд и сервисов для приема и передачи сообщений. В последнее время был разработан его расширенный вариант (Extended или ESMTP), обеспечивающий стандартную возможность дальнейшего расширения и поддержку таких функций как подтверждение доставки (Delivery Notification Request или DNR), согласование максимального допустимого размера сообщений, передаваемых между серверами и принудительная инициация передачи накопленной почты (dequeue). Однако одной из слабых сторон на данный момент SMTP было и продолжает быть отсутствие возможности аутентификации входящих соединений, шифрования диалога и потока передачи данных между серверами. Отсутствие средств аутентификации входящих соединений не позволило использовать SMTP для обслуживания клиентского доступа. Классическая почтовая SMTP-система требует наличия файлового доступа клиента к своему почтовому ящику для получения и работы с сообщениями. Для реализации работы в режиме клиент-сервер был создан протокол обслуживания почтового офиса (Post Office Protocol или POP). Наиболее удачной оказалась версия POP3, широко используемая в современных SMTP-системах. Наиболее продвинутые реализации поддерживают аутентификацию с шифрованием имени и пароля и шифрование трафика по протоколу Secure Socket Layer (SSL). Однако, при использовании протокола POP3 отсутствует возможность просмотра характеристик сообщения без предварительной загрузки его на станцию клиента. Для решения проблемы просмотра и манипуляции свойствами почтового сообщения непосредственно на сервере, а также преодоления ряда других функциональных ограничений был разработан протокол IMAP4, его поддержка в большинстве коммерческих систем ожидается в ближайшем будущем. Следует заметить, что как для случая использования классического клиента (команда mail), так и для случая применения POP3 или IMAP4 отправка подготовленных клиентом сообщений требует наличия сервера SMTP. На рисунке 2 приведена схема представления типичной SMTPсистемы, использующей как традиционный для ОС UNIX файловый метод доступа к почтовому ящику, так и доступ по протоколам POP3 и IMAP4. Рис. 11 Схема типичной SMTP-системы с поддержкой POP3 и IMAP4 Изначально SMTP-системы рассчитывались на передачу информации исключительно в текстовом виде и не были ориентированы на передачу символов национальных алфавитов, т.е. использовали 7-битный набор символов. Для решения проблемы передачи двоичных файлов был разработан стандарт UUENCODE, позволяющий внедрять предварительно преобразованные из бинарного в текстовый вид произвольные данные непосредственно в текст сообщения. Однако всеобъемлющим данный подход назвать было трудно, ибо в общем случае никакой информации о природе вложения (типе передаваемых данных и породившем их приложении) принимающая сторона не имела. По мере расширения сети Internet, усложнения программного обеспечения и активного внедрения мультимедиа назрела необходимость создания универсального формата типизации и представления двоичных данных и текста, содержащего национальные символы. Таким универсальным форматом стали многофункциональные расширения почты Internet (Multipurpose Internet Mail Extensions или MIME). Формат MIME оказался чрезвычайно удачным, поскольку в него были заложены возможности неограниченного расширения, как поддерживаемых типов данных, так и национальных кодировок. Сообщение SMTP, подобно сообщению X.400, использует понятия конверта и содержимого, которое в свою очередь имеет заголовок и тело. Функциональное назначение их полностью идентично. Состав полей в заголовке определяется форматом тела сообщения (UUENCODE или MIME). Ни одно поле не является обязательным, но, как правило, указываются такие поля как, кому (To:), от кого (From:) и тема (Subject:). В случае использования формата MIME, в заголовке обязательно должна присутствовать строка "MIME-Version: 1.0. Отличительной особенностью SMTP-систем является то, что в них, как правило, обеспечивается фактическая независимость процесса передачи от формата содержимого. За интерпретацию содержимого должна отвечать только клиентская программа (mail reader). Однако платой за совместимость на уровне MTA в данном случае является неэффективность передачи любых нетекстовых данных или сообщений, использующих символы национальных алфавитов, вследствие предварительной трансляции информации в текстовое представление. В зависимости от используемого алгоритма преобразования размер фактически передаваемых данных может возрасти на 30-100%. Немаловажной проблемой при передаче данных через SMTP-системы является обеспечение конфиденциальности. Поскольку сообщения передаются в текстовом виде, они могут быть легко перехвачены и произвольным образом изменены. Для решения проблем с защитой информации был создан стандарт на шифрование тела сообщения, так называемый засекреченные многофункциональные расширения почты (Secure MIME или S/MIME). Однако, этот протокол не в состоянии защитить от перехвата заголовки сообщений. 12.2 WorldWide WEB. Протокол http. WWW (WorldWide Web - всемирная паутина) - самый популярный сервис Интернет, и самое удобное средство работы с информацией. Больше половины потока данных Интернет приходится на долю WWW. Количество серверов WWW сегодня нельзя оценить скольколибо точно, но по некоторым оценкам их более 30 миллионов. Скорость роста WWW даже выше, чем у самой сети Интернет. Приведем общие понятия и представления, которые нужно иметь о WWW, как об одном из сервисов Интернет. WWW - информационная система, которой весьма непросто дать корректное определение. WWW работает по принципу клиент-серверы: существует множество серверов, которые по запросу клиента возвращают ему гипермедийный документ - документ, состоящий из частей с разнообразным представлением информации (текст, звук, графика, трехмерные объекты и т. д.), в котором каждый элемент может являться ссылкой на другой документ или его часть. Ссылки эти в документах WWW организованы таким образом, что каждый информационный ресурс в глобальной сети Интернет однозначно адресуется, и документ, который Вы читаете в данный момент, способен ссылаться как на другие документы на этом же сервере, так и на документы (и вообще на ресурсы Интернет) на других компьютерах Интернет. Причем пользователь не замечает этого, и работает со всем информационным пространством Интернет как с единым целым. Ссылки WWW указывают не только на документы, специфичные для самой WWW, но и на прочие сервисы и информационные ресурсы Интернет. Более того, большинство программ-клиентов WWW (browsers, навигаторы) не просто понимают такие ссылки, но и являются программами-клиентами соответствующих сервисов: ftp, gopher, сетевых новостей Usenet, электронной почты и т.д. Таким образом, программные средства WWW являются универсальными для различных сервисов Интернет, а сама информационная система WWW играет интегрирующую роль. Ссылки на информационные ресурсы Интернет называются URL (uniform resource locator, универсальный указатель на ресурс). WWW - сервис прямого доступа, требующий полноценного подключения к Интернет, и более того, часто требующий быстрых линий связи, в случае, если читаемые документы содержат много графики или другой нетекстовой информации. Однако существуют мосты, позволяющие получать информацию, содержащуюся в WWW, посредством электронной почты. WWW использет протокол HTTP для связи между клиентами и серверами, к которым они обращаются. Протокол HTTP можно условно разделить на HTTP-запрос и HTTP ответ. В протоколе HTTP помимо URL (адрес ресурса в Internet) используется URI (Uniform Resource Identifiers), который задает путь к ресурсу (независимо от вида его месторасположения). HTTP-запрос это сложная структура, которая передается HTTP-серверу, и указывающая расположение ресурса, метод и правила доступа к нему. HTTP-ответ сервера представляет собой структуру, состоящую из технической информации протокола, кода возможности выполнения запроса, а также непосредственно информацию ресурса, записанную на языке HTML. HTTP запрос Общие понятия Запрос это сообщение, посылаемое клиентом серверу. Первая строка этого сообщения включает в себя метод, который должен быть применен к запрашиваемому ресурсу, идентификатор ресурса и используемую версию протокола. Для совместимости с протоколом HTTP/0.9, существует два формата HTTP запроса: Запрос = Простой-Запрос | Полный-Запрос Простой-Запрос = "GET" SP Запрашиваемый-URI CRLF Полный-Запрос = Строка-Статус *(Общий-Заголовок | Заголовок-Запроса | Заголовок-Содержания ) CRLF [ Содержание-Запроса ] Если HTTP/1.0 сервер получает Простой-Запрос, он должен отвечать Простым-Ответом HTTP/0.9. HTTP/1.0 клиент, способный обрабатывать Полный-Ответ, никогда не должен посылать Простой-Запрос. Строка Статус Строка Статус начинается со строки с названием метода, за которым следует URI-Запроса и использующаяся версия протокола. Строка Статус заканчивается символами CRLF. Элементы строки разделяются пробелами (SP). В Строке Статус не допускаются символы LF и CR, за исключением заключающей последовательности CRLF. Строка-Статус = Метод SP URI-Запроса SP Версия-HTTP CRLF Следует отметить, что отличие Строки Статус Полного-Запроса от Строки Статус ПростогоЗапроса заключается в присутствии поля Версия-HTTP. Метод В поле Метод указывается метод, который должен быть применен к ресурсу, идентифицируемому URI-Запроса. Названия методов чувствительны к регистру. Существующий список методов может быть расширен. Метод = "GET" | "HEAD" | "PUT" | "POST" | "DELETE" | "LINK" | "UNLINK" | дополнительный-метод Список методов, допускаемых отдельным ресурсом, может быть указан в поле ЗаголовокСодержание "Баллов". Тем не менее, клиент всегда оповещается сервером через код статуса ответа, допускается ли применение данного метода для указанного ресурса, так как допустимость применения различных методов может динамически изменяться. Если данный метод известен серверу, но не допускается для указанного ресурса, сервер должен вернуть код статуса "405 Method Not Allowed", и код статуса "501 Not Implemented", если метод не известен или не поддерживается данным сервером. Общие методы HTTP/1.0 описываются ниже. GET Метод GET служит для получения любой информации, идентифицированной URI-Запроса. Если URI- Запроса ссылается на процесс, выдающий данные, в качестве ответа будут выступать данные, сгенерированные данным процессом, а не код самого процесса (если только это не является выходными данными процесса). Метод GET изменяется на "условный GET", если сообщение запроса включает в себя поле заголовка "If-Modified-Since". В ответ на условный GET, тело запрашиваемого ресурса передается только, если он изменялся после даты, указанной в заголовке "If-Modified-Since". Алгоритм определения этого включает в себя следующие случаи: Если код статуса ответа на запрос будет отличаться от "200 OK", или дата, указанная в поле заголовка "If-Modified-Since" некорректна, ответ будет идентичен ответу на обычный запрос GET. Если после указанной даты ресурс изменялся, ответ будет также идентичен ответу на обычный запрос GET. Если ресурс не изменялся после указанной даты, сервер вернет код статуса "304 Not Modified". Использование метода условный GET направлено на разгрузку сети, так как он позволяет не передавать по сети избыточную информацию. HEAD Метод HEAD аналогичен методу GET, за исключением того, что в ответе сервер не возвращает Тело- Ответа. Метаинформация, содержащаяся в HTTP заголовках ответа на запрос HEAD, должна быть идентична информации HTTP заголовков ответа на запрос GET. Данный метод может использоваться для получения метаинформации о ресурсе без передачи по сети самого ресурса. Метод "Условный HEAD", аналогичный условному GET, не определен. POST Метод POST используется для запроса сервера, чтобы тот принял информацию, включенную в запрос, как субординантную для ресурса, указанного в Строке Статус в поле URI-Запроса. Метод POST был разработан, чтобы была возможность использовать один общий метод для следующих функций: Аннотация существующих ресурсов Добавление сообщений в группы новостей, почтовые списки или подобные группы статей Доставка блоков данных процессам, обрабатывающим данные Расширение баз данных через операцию добавления Реальная функция, выполняемая методом POST, определяется сервером и обычно зависит от URI- Запроса. Добавляемая информация рассматривается как субординатная указанному URI в том же смысле, как файл субординатен каталогу, в котором он находится, новая статья субординатна группе новостей, в которую она добавляется, запись субординатна базе данных. Клиент может предложить URI для идентификации нового ресурса, включив в запрос заголовок "URI". Тем не менее, сервер должен рассматривать этот URI только как совет и может сохранить тело запроса под другим URI или вообще без него. Если в результате обработки запроса POST был создан новый ресурс, ответ должен иметь код статуса, равный "201 Created", и содержать URI нового ресурса. PUT Метод PUT запрашивает сервер о сохранении Тело-Запроса под URI, равным URI-Запроса. Если URI-Запроса ссылается на уже существующий ресурс, Тело-Запроса должно рассматриваться как модифицированная версия данного ресурса. Если ресурс, на который ссылается URI-Запроса не существует, и данный URI может рассматриваться как описание для нового ресурса, сервер может создать ресурс с данным URI. Если был создан новый ресурс, сервер должен информировать направившего запрос клиента через ответ с кодом статуса "201 Created". Если существующий ресурс был модифицирован, должен быть послан ответ "200 OK", для информирования клиента об успешном завершении операции. Если ресурс с указанным URI не может быть создан или модифицирован, должно быть послано соответствующее сообщение об ошибке. Фундаментальное различие между методами POST и PUT заключается в различном значении поля URI-Запроса. Для метода POST данный URI указывает ресурс, который будет управлять информацией, содержащейся в теле запроса, как неким придатком. Ресурс может быть обрабатывающим данные процессом, шлюзом в какой нибудь другой протокол, или отдельным ресурсом, допускающим аннотации. В противоположность этому, URI для запроса PUT идентифицирует информацию, содержащуюся в Содержание-Запроса. Использующий запрос PUT точно знает какой URI он собирается использовать, и получатель запроса не должен пытаться применить этот запрос к какому-нибудь другому ресурсу. DELETE Метод DELETE используется для удаления ресурсов, идентифицированных с помощью URIЗапроса. Результаты работы данного метода на сервере могут быть изменены с помощью человеческого вмешательства (или каким-нибудь другим способом). В принципе, клиент никогда не может быть уверен, что операция удаления была выполнена, даже если код статуса, переданный сервером, информирует об успешном выполнении действия. Тем не менее, сервер не должен информировать об успехе до тех пор, пока на момент ответа он не будет собираться стереть данный ресурс или переместить его в некоторую недостижимую область. LINK Метод LINK устанавливает взаимосвязи между существующим ресурсом, указанным в URIЗапроса, и другими существующими ресурсами. Отличие метода LINK от остальных методов, допускающих установление ссылок между документами, заключается в том, что метод LINK не позволяет передавать в запросе Тело-Запроса, и в том, что в результате работы данного метода не создаются новые ресурсы. UNLINK Метод UNLINK удаляет одну или более ссылочных взаимосвязей для ресурса, указанного в URI- Запроса. Эти взаимосвязи могут быть установлены с помощью метода LINK или какого-нибудь другого метода, поддерживающего заголовок "Link". Удаление ссылки на ресурс не означает, что ресурс прекращает существование или становится недоступным для будущих ссылок. Поля Заголовок-Запроса Поля Заголовок-Запроса позволяют клиенту передавать серверу дополнительную информацию о запросе и о самом клиенте. Заголовок-Запроса = Accept | Accept-Charset | Accept-Encoding | Accept-Language | Authorization | From | If-Modified-Since | Pragma | Referer | User-Agent | extension-header Кроме того через механизм расширения могут быть определены дополнительные заголовки; приложения, которые их не распознают, должны трактовать эти заголовки, как ЗаголовокСодержание. Ниже будут рассмотрены некоторые поля заголовка запроса. From В случае присутствия поля From, оно должно содержать полный E-mail адрес пользователя, который управляет программой-агентом, осуществляющей запросы. Этот адрес должен быть задан в формате, определенном в RFC 822. Формат данного поля следующий: From = "From" ":" спецификация адреса. Например: From: webmaster@WWW.org Данное поле может быть использовано для функций захода в систему, а также для идентификации источника некорректных или нежелательных запросов. Оно не должно использоваться, как несекретная форма разграничения прав доступа. Интерпретация этого поля состоит в том, что обрабатываемый запрос производится от имени данного пользователя, который принимает ответственность за применяемый метод. В частности, агенты-роботы должны использовать этот заголовок для того, чтобы можно было связаться с тем человеком, который отвечает за работу робота, в случае возникновения проблем. Почтовый Internet адрес, указывающийся в этом поле, не обязан соответствовать адресу того хоста, с которого был послан данный запрос. По возможности, адрес должен быть доступным Internet адресом вне зависимости от того, является ли он в действительности Internet E-mail адресом или Internet E-mail представлением адреса других почтовых систем. Замечание: Клиент не должен использовать поле заголовка From без позволения пользователя, так как это может войти в конфликт с его частными интересами или с местной, используемой им, системой безопасности. Настоятельно рекомендуется предоставление пользователю возможности запретить, разрешить или модифицировать это поле в любой момент перед запросом. If-Modified-Since Поле заголовка If-Modified-Since используется с методом GET для того, чтобы сделать его условным: если запрашиваемый ресурс не изменялся во времени, указанного в этом поле, копия этого ресурса не будет возвращена сервером; вместо этого, будет возвращен ответ "304 Not Modified" без Тела- Ответа. If-Modified-Since = "If-Modified-Since" ":" HTTP-дата Пример использования заголовка: If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT Целью этой особенности является предоставление возможности эффективного обновления информации локальных кэшей с минимумом передаваемой информации. Тот же результат может быть достигнут применением метода HEAD с последующим использованием GET, если сервер указал, что содержимое документа изменилось. User-Agent Поле заголовка User-Agent содержит информацию о пользовательском агенте, пославшем запрос. Данное поле используется для статистики, прослеживания ошибок протокола, и автоматического распознавания пользовательских агентов. Хотя это не обязательно, пользовательские агенты должны всегда включать это поле в свои запросы. Поле может содержать несколько строк, представляющих собой название программного продукта, необязательную косую черту с указанием версии продукта, а также другие программные продукты, составляющие важную часть пользовательского агента. По соглашению, продукты указываются в списке в порядке убывания их значимости для идентификации приложения. User-Agent = "User-Agent" ":" 1*( продукт ) продукт = строка ["/" версия-продукта] версия-продукта = строка Пример: User-Agent: CERN-LineMode/2.15 libwww/2.17b3 Строка, описывающая название продукта, должна быть короткой и давать информацию по существу - использование данного заголовка для рекламирования какой-либо другой, не относящейся к делу, информации не допускается и рассматривается, как не соответствующее протоколу. Хотя в поле версии продукта может присутствовать любая строка, данная строка должна использоваться только для указания версии продукта. Поле User-Agent может включать в себя дополнительную информацию в комментариях, которые не являются частью его значения. 12.3 FTP - передача файлов В Internet есть много способов передачи информации c удаленного компьютера на локальный. Один из них — использование FTP (File Transfer Protocol). Этот протокол работает на прикладном уровне стека TCP/IP. Главное назначение FTP - это пересылать (копировать, передавать) файлы. FTP можно использовать самостоятельно, а также через другие системы, например, WWW имеет FTP как часть своего протокола. Работа с FTP предполагает наличие FTP-сервера и FTP-клиента. В основе FTP лежит стандартная система команд FTP (Даже если FTP-клиент имеет графический интерфейс, то на каждое действие мышью он генерирует последовательность команд). Протокол FTP использует порт 21 протокола TCP. Порядок работы с FTP-сервером следующий: Открытие соединения с сервером Регистрация на сервере (каждый пользователь имеет свой идентификатор и пароль на FTPсервере, существует стандартный пользователь anonymous) Работа с катологами и файлами FTP-сервера (структура каталогов аналогична обычной организации древовидной файловой системы, а FTP-команды работы с каталогами и файлами похожи на директивы командного процессора MS-DOS) Закрытие сеанса связи 12.4 Другие основные службы 12.4.1 Списки рассылки Списки рассылки (maillists) - простой, но в то же время весьма полезный сервис Интернет. Это практически единственный сервис, не имеющий собственного протокола и программыклиента и работающий исключительно через электронную почту. Идея работы списка рассылки состоит в том, что существует некий адрес электронной почты, который на самом деле является общим адресом многих людей-подписчиков этого списка рассылки. Посланное письмо на этот адрес получат все пользователи, подписанные на этот список рассылки. Такой сервис по задачам, которые он призван решать, похож на сетевые новости Usenet, но имеет и существенные отличия. Во-первых, сообщения, распространяемые по электронной почте, всегда будут прочитаны подписчиком, дождавшись его в почтовом ящике, в то время как статьи в сетевых новостях стираются по прошествии определенного времени и становятся недоступны. Во-вторых, списки рассылки более управляемы и конфиденциальны: администратор списка полностью контролирует набор подписчиков и может следить за содержанием сообщений. Каждый список рассылки ведется какой-либо организацией и она обладает полным контролем над списком, в отличие от новостей Usenet, не принадлежащих никому и менее управляемых. В-третьих, для работы со списком рассылки достаточно доступа к электронной почте, и подписчиками могут быть люди, не имеющие доступа к новостям Usenet или каким-либо группам этих новостей. В-четвертых, такой способ передачи сообщений может быть просто быстрее, коль скоро сообщения передаются напрямую абонентам, а не по цепочке между серверами Usenet. Однако, сравнивая списки рассылки и новости Usenet, надо отметить, что часто группы Usenet могут также быть доступны и через списки рассылки, и другими способами - через WWW, например. Это значит, что есть возможность использования того способа работы, который более удобен. 12.4.2 Telnet Протокол TELNET предоставляет услуги удаленного текстового терминала. Он позволяет подсоединиться к удаленному компьютеру и работать с ним как с локальной системой. Возможности такой работы лимитируются тем уровнем доступа, которым задан администратором удаленной системы (идентификатор и пароль для входа в систему).Относительно небольшое количество компьютеров в Internet позволяют свободный доступ через TELNET. Протокол telnet использует порт 23 протокола TCP. Для работы с протоколом необходима программа-клиент и серверная часть. 12.4.3 Современные разработки, использующие Интернет как среду передачи информации На сегодняшний день нет еще стандартного и общепринятого средства организации мультимедиа телеконференций. Только в последнее время глобальные сети стали иметь достаточную пропускную способность для того, чтобы передавать столь большие потоки данных. В связи с этим стали появляться сервисы, которые носят общее название IP телефония и позволяют интегрировать Интернет с телефонной сетью. Большую популярность начинают приобретать сервисы Интернет, представляющие собой аналог модели пейджинговой связи (Интернет-пэйджеры). Работа их на уровне использования аналогична обычной пейджерной системе — каждый пользователь имеет уникальный идентификатор, по которому с ним можно связываться и программу-клиент, которая реализует интерфейс к указанному сервису. Набрав текстовое сообщение, и послав его по указанному идентификатору другому пользователю, это сообщение попадает на сервер, и пересылается на требуемый компьютер, на котором тоже установлена программаклиент и зарегестрирован пользователь с указанным идентификатором. Примером Интернет- пэйджеров может служить наиболее распостраненный на сегодняшний день один из таких сервисов, который носит название ICQ. Оба перечисленных сервиса относяся к классу прямых (on-line). Литература В. Г. Олифер, Н. А. Олифер Компьютерные сети. Принципы технологии, протоколы — СПб.: "Питер", 2001, 672 стр. Таненбаум Э. Компьютерные сети. Третье издание. — СПб:«Питер», 2001, 848 стр. Столлингс Вильям Беспроводные линии связи и сети — М:«Вильямс», 2003, 640 стр. Фейт С. TCP/IP Архитектура, протоколы, реализация — М.: Лори, 2000, 424 стр. Новиков Ю.В., Кондратенко С.В. Локальные сети: архитектура, алгоритмы, проектирование — Эком ,2000, 312 стр. В. Г. Олифер, Н. А. Олифер Сетевые операционные системы. (учебник) — СПб.: "Питер", 2001, 544 стр. Паркер Г., Сиян К. TCP/IP. Для профессионалов. Изд. 3. — СПб:«Питер», 2001, 859 стр. Хелд Г. Технологии передачи данных — СПб:«Питер»,«BHV», 2003, 720 стр. Кульгин М. Практика построения компьютерных сетей. — СПб.: "Питер",2001, 320 стр. Столингс Вильям Компьютерные системы передачи данных — М:«Вильямс», 2002, 928 стр. Гук М. Аппаратные средства локальных сетей. Энциклопедия. — СПб.: "Питер", 2000, 576 стр. Бэрри Нанс. Компьютерные сети: Пер. с англ.- М.: Восточная Книжная Компания, 1996, 400 с., ил. Скляр Б. Цифровая связь: теоретические основы и практическое применение (2-е издание) — М:«Вильямс», 2003, 1104 стр. Браун Стивен Виртуальные частные сети, — М:«Лори», 2001, 508 стр. Хогделл Дж. Скотт Анализ и диагностика компьютерных сетей — М:«Лори», 2001, 354 стр.