Понятие протокола, и связанные с ним понятия

Вид материалаДокументы

Содержание


Понятие протокола, и связанные с ним понятия.
Формы и процедуры.
Протоколы сети Internet
Уровень сетевых интерфейсов
Межсетевой уровень
Транспортный Уровень
Протокол IP (Internet Protocol).
Структура IP-пакета
Hlen, IHL (длина IP заголовка) 4 бита
Type of Service
Length, Total Length
Flags (различные управляющие флаги) 16 бит бит 0 зарезервирован, должен быть нуль бит 1 (DF
MF) 0 – последний фрагмент, 1 – будут еще фрагменты Fragment Offset
Header Checksum
Source Address
Флаг копирования
Адресация в IP-протоколе
Форматы адресации
Адресация в IP-сетях
Локальный адрес узла
...
Полное содержание
Подобный материал:
  1   2   3   4   5   6   7   8   9   ...   20

Введение 3

Понятие протокола, и связанные с ним понятия. 3

Протоколы сети Internet 5

Протокол IP (Internet Protocol). 8

Место протокола IP в иерархии протоколов сети Internet. 8

Структура IP-пакета 11

Адресация в IP-протоколе 15

Адресация в IP-сетях 17

Виды адресов: Локальные (Физические, MAC) адреса, Сетевые адреса (IP), Символьные имена (DNS). 17

Установление соответствия между адресами разных уровней, протоколы преобразования адресов. 19

Виды IP-адресов и их интерпретация. 22

Протоколы, обслуживающие стек TCP/IP. 25

Состав и структура системы протоколов межсетевого (Internet) уровня стека TCP/IP. 25

Протокол контрольных сообщений Internet ICMP. 26

Протоколы ARP/RARP. 34

Транспортный уровень. Протоколы TCP и UDP. 37

Место протоколов UDP и TCP в иерархии протоколов сети Internet. 37

Протокол UDP. 38

Протокол ТСР 39

Реализация TCP. 46

Интерфейс между прикладными программами и TCP. 46

События, возможные при передаче информации с использованием TCP. 53

Динамика работы и параметры времени ожидания. 60

Оптимизация TCP. Управление потоком. 62

Выбор размера TCP-сегмента и синдром “узкого окна”. 62

Медленный старт в TCP. 64

Устранение перегрузок средствами TCP. 66

Маршрутизация. Общие положения. 69

Общее понятие о маршрутизации. 69

Маршрутизация пакетов по таблицам и без таблиц. 71

Создание и модификация таблиц маршрутной информации. Виды протоколов маршрутизации. 76

Внутренние протоколы маршрутизации – RIP и OSPF. 79

Дистанционно-векторный протокол RIP. 79

Протокол OSPF – пример протокола состояния связей 82

Факультативный материал – форматы сообщений OSPF подробно. 87

Автономные системы и их взаимодействие. Внешняя маршрутизация. 93

Понятие о маршрутной политике. 93

Протокол внешней маршрутизации BGP-4. Состав и функции. 95

Мультивещательные группы. Маршрутизация мультивещательных (multicasting) пакетов. 105

Общее представление о Multicasting. Протокол IGMP. 105

Маршрутизация multicast-пакетов. Изменения протоколов маршрутизации для поддержки multicast-групп. 109

Уровень сетевых интерфейсов TCP/IP. 115

Общие сведения о взаимодействии TCP/IP с оборудованием компьютерных сетей. 115

Спецификации передачи трафика IP в локальных сетях (LAN). 117

Спецификации передачи трафика IP в глобальных сетях (WAN). 119

Передача IP трафика через произвольные цифровые каналы. Протоколы SLIP и PPP. 121

Факультативный материал – сжатие заголовков TCP/IP на примере сжатия Ван Джакобсона. 126

Система назначения и разрешения доменных имен DNS. 129

Принципы назначения символьных имен. Альтернативные DNS варианты: WINS, NetBIOS-имена. 129

Иерархическая организация доменных имен. 130

Система назначения и администрирования доменных имен DNS. 132

Факультативный материал – трансляция IP-адресов в IP-адреса. – протоколы NAT и NAPT. 135

Разрешение некоторых проблем, связанных с NAT. Протокол STUN. 138

Системы передачи электронной почты. 141

Назначение систем передачи электронной почты. 141

Протоколы POP3 та SMTP. 143

Дополнительные возможности электронной почты. Спецификация MIME. Протоколы IMAP. 149

Другие протоколы прикладного уровня стека TCP/IP. 154

Протокол FTP. 154

Протокол HTTP. 155

Конфигурирование TCP/IP систем. 167

Задачи конфигурирования. 167

Параметры конфигурации и их взаимосвязь. 168

Файлы конфигурационной информации. 171

Защита компьютерных сетей. 174

Виды угроз, от которых следует защищать компьютерные сети. 174

Основные приемы сетевых атак. 177

Конкретные формы атак на IP-сети. 180

Приложения 191

Приложение 1. Схема машины конечных состояний протокола TCP. 191

Приложение 2. Стандартные multicast адреса Internet. 191

Приложение 3. Стандартные протоколы стека TCP/IP. 193

Литература 195



Введение

Понятие протокола, и связанные с ним понятия.


Обработка информации в вычислительных сетях требует согласованного выполнения операций в разных узлах сети. Такой распределенный алгоритм называется протоколом. Более формально это понятие определяется так:

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

Так устройства или процессы? Обмен информацией происходит между обрабатывающими ее процессами посредством устройств. Между устройствами происходит обмен сигналами, несущими информацию. Но обмен этот, в свою очередь, организуется посредством процессов! Так что и устройства, и процессы.

Формы и процедуры. Как правило, протокол регламентирует некие структуры данных, чаще всего именуемые кадрами, пакетами и т.д., посредством которых осуществляется обмен, и правила их интерпретации и обработки.

Можно провести аналогию, например, с математическими понятиями, когда определяются, например, числа (натуральные, целые, рациональные, действительные, комплексные), и операции над ними (4 основных арифметических, функции). Продолжая аналогию, вспомним, что из чисел можно формировать более сложные объекты, например, векторы, матрицы и т.д. Эти сложные объекты в свою очередь имеют свои операции, применимые к ним. В свою очередь, эти сложные объекты могут представлять, например, некую систему уравнений, которая имеет некую физическую интерпретацию (токи в участках электрической цепи, координаты небесного тела, распределение электронной плотности около атомов в сложной молекуле, или вероятность наступления беременности у самки носорога), и соответствующий процесс подчинен своим специфическим законам. При этом электронщика, астронома, химика и биолога интересуют в первую очередь законы и свойства объектов своей предметной области, а не то, как складываются комплексные числа или перемножаются матрицы – для этого имеется готовый математический аппарат.

Аналогичным образом, процесс обмена информацией имеет ряд иерархических уровней, на которых взаимодействуют устройства и процессы. Общепринятым языком описания такого взаимодействия является 7-уровневая эталонная логическая модель взаимодействия открытых систем (ЭМ ВОС, OSI – Open System Interface).

В общем случае ЭМ ВОС выделяет следующие уровни взаимодействия:

Физические связи между элементами (механические, электрические, преобразование сигналов) – физический уровень (управление каналом связи).

Установление, поддержание, разъединение соединений (каналов) – канальный уровень (управление каналом передачи данных).

Маршрутизация, коммутация, адресация информации – сетевой уровень (управление потоками данных).

Управление передачей данных от системы – источника к системе – потребителю (без обработки в промежуточных узлах) – транспортный уровень.

Первые 4 уровня образуют транспортную службу.


Организация и проведение сеансов связи между отдельными процессами – сеансовый уровень.

Первые 5 уровней в совокупности составляют сетевой метод доступа.


Интерпретация и преобразование передаваемых между процессами данных к виду, удобному для обработки процессами – уровень представления данных.

Выполнение прикладных программ, управление терминалами, административное управление сетью – прикладной уровень.


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

Физический уровень и связанные с ним протоколы реализуются аппаратной частью компьютера и аппаратуры передачи данных.

Канальный уровень реализуется также аппаратной частью под управлением программ операционной системы (DOS – Interlnk/Intersvr, Windows – Удаленный доступ и прямое соединение, драйверы устройств и т.д.).

Эти уровни обычно считаются частью базовой сетевой технологии. Различные базовые сетевые технологии подробно рассматриваются в курсе “современные телекоммуникационные технологии для компьютерных сетей” (СТТ).

Вышестоящие уровни, начиная с сетевого, реализуются программным обеспечением и составляют стек телекоммуникационных протоколов.

В данном курсе мы подробно рассмотрим только один такой стек, получивший в настоящее время наибольшее распространение, как в корпоративных сетях, так и в глобальной сети Internet – стек протоколов TCP/IP. К остальным мы будем обращаться только эпизодически, для иллюстрации возможных альтернативных решений.

Система протоколов Internet, известная как стек TCP/IP, разрабатывалась исследовательским подразделением DARPA Министерства Обороны США с 1969 года, и в первом приближении сложилась к началу 1980-х годов.

Изначально она предназначалась для объединения разнородных сетей военного ведомства США, и должна была обеспечить их согласованное функционирование, в том числе и в случае нанесения по США массированного ядерного удара. Отдельные элементы (в том числе целые сети) могут выйти из строя, но оставшаяся сеть должна функционировать. Можно констатировать, таким образом, что создание этой системы протоколов, а на их основе – глобальной сети Internet – один из немногих (если не единственный) положительный результат Холодной войны.

Протоколы сети Internet







Структура стека протоколов TCP/IP несколько отличается от модели OSI. В нем выделяется 4 уровня – сетевых интерфейсов, межсетевого взаимодействия(Internet), транспортный и уровень приложений.


Уровень сетевых интерфейсов отвечает за то, как именно IP-пакеты передаются сетями разных базовых технологий, называемых в терминологии стека TCP/IP локальными. Термин “локальная” в этом контексте означает только то, что данная технология применяется в отдельной сети, и не имеет отношения к понятиям “локальная сеть”(LAN)/”глобальная сеть”(WAN), как они применяются к базовым сетевым технологиям. Internet изначально создавался как “сеть сетей”, он объединяет на базе единого сетевого протокола сети самых разных базовых технологий, в этом смысле технологии, на которых построены отдельные объединяемые сети – локальные. В первом приближении можно считать, что он соответствует двум нижним уровням модели OSI – физическому и канальному. Но следует учитывать, что базовые технологии, на которых построены отдельные сети, сами могут быть достаточно сложными, например, ATM включает сетевой уровень и даже элементы транспортного. Уровень сетевых интерфейсов в это не вникает, он определяет инкапсуляцию пакетов в кадры или пакеты самого высокого уровня базовой технологии и пользуется ей как технологией уровня канала данных.

Межсетевой уровень обеспечивает объединение разнородных сетей в единую сеть под управлением протокола IP (Internet Protocol). Соответствует сетевому уровню модели OSI. Реализуется средствами как ПК, так и сети (маршрутизаторами). Межсетевой уровень отвечает, в частности, за адресацию, т.е. гарантирует, что маршрутизатор знает, что делать с вашими данными, когда они поступят. Единица данных, с которой оперирует протокол IP, называется пакетом. Адресная информация приводится в начале каждого пакета, в его заголовке. Она даёт сети достаточно сведений для доставки пакета данных по назначению. Каждый пакет перемещается по сети независимо от других пакетов, принадлежащих тому же соединению, и, в общем случае, пакеты одного сообщения могут доставляться по разным маршрутам.

Internet-адреса имеют единый формат для всей сети, независимо от систем адресов локальных сетей. 32-битный IP-адрес обычно записывается в виде четырёх десятичных чисел, каждое из которых не превышает 255. Каждое число представляет один из 4-х байт адреса. В годы становления протоколов стека TCP/IP термин «байт» не был общепринятым, поэтому в документах Internet байт часто называется октетом. При записи числа отделяются одно от другого точками, например:

192.112.36.5

128.174.5.6

Адрес фактически состоит из нескольких частей. Поскольку Internet – это сеть сетей, то начало адреса содержит информацию для маршрутизаторов о том, к какой сети относится Ваш компьютер. Правая часть адреса служит для того, чтобы сообщить сети, какой компьютер должен получить этот пакет. Каждый компьютер в Internet имеет свой уникальный адрес. Internet выполнила свою задачу, когда ее маршрутизаторы направили данные в соответствующую сеть, а эта локальная сеть – в соответствующий компьютер. В документах Internet маршрутизатор обычно называется шлюзом (Gateway), поскольку изначально ставилась задача объединения разнородных сетей. В настоящее время термин «шлюз» обычно используется для обозначения устройства, объединяющего совсем разнородные сети, например «шлюз IP-телефонии» – телефонную сеть с коммутацией каналов и IP-сеть с коммутацией пакетов. Поэтому мы будем пользоваться термином «маршрутизатор», но помнить о таком употреблении термина «шлюз» следует.

Для решения этой задачи маршрутизатор (и конечный узел тоже) должен, таким образом, во-первых, знать, кому (конечному узлу, либо следующему маршрутизатору) направить поступивший пакет. Во вторых, поскольку пакеты передаются через локальную сеть, имеющую свою, отличную от Internet, систему адресации, он должен знать, как преобразовать Internet-адрес в локальный адрес. Решение первой задачи обеспечивают протоколы обмена маршрутной информацией, часто называемые просто протоколами маршрутизации (на рисунке они не показаны, поскольку их много). Вторая задача решается протоколом разрешения адресов ARP, а протокол RARP решает обратную задачу – отыскание сетевого адреса по известному локальному адресу. Кроме того, к межсетевому уровню относится протокол контрольных сообщений ICMP, который служит для информирования узлов и маршрутизаторов о различных нештатных ситуациях в сети. Следует учесть, что поскольку протокол IP является универсальным “транспортным средством” сети Internet, ICMP сообщения, как и сообщения протоколов маршрутизации, передаются по сети в IP-пакетах, таким образом, формально они выглядят как протоколы более высокого, чем IP, уровня, хотя фактически они обеспечивают функционирование протокола IP.

Информация, посылаемая по локальным сетям, составляющим IP-сеть, разбивается на порции, называемые кадрами или пакетами. По целому ряду технических причин (в основном это аппаратные ограничения), максимальный размер кадра или пакета в разных сетях может быть различным. Поскольку в общем случае отправителю неизвестно, через какие сети будет передаваться пакет, может случиться, что размер отправленного пакета превосходит максимально возможную длину кадра какой-либо из транзитных сетей. В этом случае маршрутизатор использует динамическую фрагментацию, то есть разборку пакета на меньшие по размеру пакеты - фрагменты. Каждый фрагмент при этом снабжается информацией, которая позволит получателю правильно собрать исходный пакет из фрагментов.

Транспортный Уровень реализуется протоколом TCP (Transmission Control Protocol), «протокол управления передачей» который часто упоминают вместе с протоколом IP, в том числе в названии стека, и протоколом UDP (user datagram protocol) «протокол пользовательских дейтаграмм».

Протокол TCP обеспечивает надежную доставку потока пользовательских данных. Информацию, которую Вы хотите передать, ТСР разбивает на порции, называемые в терминологии TCP сегментами. Каждая порция нумеруется, чтобы можно было проверить, вся ли информация получена, и расположить данные в правильном порядке. Сегмент ТСР, в свою очередь, помещается в пакет IP и передается в сеть.

На принимающей стороне программное обеспечение протокола ТСР собирает сегменты, извлекает из них данные и располагает их в правильном порядке. Если каких-нибудь сегментов нет, программа просит отправителя передать их еще раз. После размещения всей информации в правильном порядке эти данные передаются той прикладной программе, которая использует услуги ТСР.

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

Более простой «протокол пользовательских дейтаграмм» (User Datagram Protocol, UDP) также используется в некоторых прикладных программах. Вместо вкладывания Ваших данных в “конверт” TCP и помещения этого конверта в пакет IP прикладная программа вкладывает данные в “конверт” UDP, называемый обычно датаграммой, который и помещается в пакет IP. В отличии от ТСР, передающего поток данных, каждая датаграма составляет законченное сообщение. UPD проще ТСР, потому что этот протокол не заботится о пропавших пакетах, расположении данных в правильном порядке и других тонкостях. Если это требуется, то это дело приложения, использующего UDP. UDP используется для программ, которые посылают только короткие сообщения, и могут повторить передачу данных, если ответ задерживается, либо нечувствительны к потерям отдельных датаграмм. Кроме того, протокол TCP ориентирован на соединение «один к одному», и непригоден поэтому для посылки данных по схеме «один к многим», в этом случае также используется протокол UDP.

Транспортный уровень, таким образом, соответствует транспортному уровню модели OSI.

Высшие уровни модели OSI реализуются прикладными программами, и образуют уровень приложений. Сюда относятся и известные всем протоколы обмена гипертекстовой информацией HTTP, электронной почты POP3 и SMTP, пересылки файлов FTP. Сюда же относятся и менее известные, как протокол удаленного управления Telnet, либо остающиеся “в тени”, как протокол преобразования символьных имен в адреса DNS, и многие другие. Полный список протоколов этого уровня весьма обширен и все время пополняется.

Стандарты стека TCP/IP доступны в сети Internet как документы RFC (Request For Comments). Такое название обусловлено процедурой их принятия. Предложение в виде RFC размещается в Internet, обсуждается, уточняется, затем становится стандартом. Возможен, разумеется, и другой вариант – после обсуждения предложение отвергается и соответствующий RFC удаляется из Internet. В некоторых случаях, зависящих от руководящих органов Internet, RFC, хотя бы и ставшее стандартом de facto, не приобретает юридический статус стандарта Internet. Общее число RFC в настоящее время превышает 4000. Следует учесть, что хотя все стандарты TCP/IP являются RFC, не каждый RFC является стандартом TCP/IP. Часто RFC используются, например, для того, чтобы обратить внимание на какую-то проблему, не предлагая варианта ее разрешения. Список протоколов и соответствующих им RFC (неполный), по данным Семенова [8], приведен в приложении 3.