Тема 9 Канальный уровень сети Internet Основным протоколом сети Internet на канальном уровне является протокол Point - to - Point (PPP). При разработке формата кадра этого протокола был использован протокол HDLC. Структура кадра протокола PPP приведена на рис. 47. Она включает в себя следующие разделы. Флаги. Двоичный код 01111110, обозначает начало и конец кадра. Адрес. Имеет постоянное значение, равное 11111111. Поле управления. Принимает значение, равное 00000011. Протокол. Код, определяющий тип передаваемых данных. Информация. Раздел, содержащий передаваемые данные. CRC. Контрольная последовательность кадра, формируемая как циклический избыточный код. Флаг Адрес 1 2 Флаг 1 Адрес 2 Поле управления 3 Поле управления 3 Протокол Информация CRC Флаг 4 5 6 7 Код протокола передачи данных IP IP-дейтаграмма Протокол Информация CRC Флаг 4 Код протокола управления соединением LCP 5 Данные протокола управления соединением 6 7 Код протокола управления сетью NCP Данные протокола управления сетью Рис. 47. Структура кадра протокола РРР Кадр PPP может содержать данные трех типов: IP - дейтаграмму, поступившую (инкапсулированную) от протокола сетевого уровня, данные протокола управления соединением LCP, данные протокола управления сетью NCP. Протокол управления соединением. Для обмена данными по протоколу PPP необходимо настроить канал связи и проверить его состояние. Для этих целей используется протокол LCP, формат пакета которого приведен на рис. 48. Он содержит следующие разделы. Код. Обозначает тип пакета LCP, помещенного в кадр РРР. Идентификатор. Обозначает порядковый номер пакета среди совокупности пакетов - запросов и пакетов - ответов, проходящих сквозь различные сетевые уровни, обслуживаемые РРР. Флаг Адрес 1 2 Поле управления 3 Протокол Информация 4 5 Код Идентификатор Длина Данные Рис. 48. Структура пакета протокола управления соединением LCP Длина. Этот раздел указывает на общую длину пакета LCP, включая поля «Код», «Идентификатор», «Длина» и собственно «Данные». Данные. Поле данных может быть пустым. Поле «Код» может задавать три типа пакетов LCP: конфигурация соединения, окончание сеанса связи, управление соединением. Пакеты конфигурации соединений LCP. Предназначены для установления соединения по протоколу РРР. Существуют четыре типа пакетов: «конфигурация - запрос», «конфигурация - подтверждение», «конфигурация неподтверждено» и «конфигурация - отказ». Для открытия соединения РРР посылает пакет «конфигурация - запрос». Поле данных пакета «конфигурация - запрос» содержит список желательных вариантов настройки соединения. Компьютер (протокол РРР), получивший пакет «конфигурация - запрос», обязан ответить на него. Если список желательных вариантов настройки соединения подходит РРР , в ответ посылается пакет «конфигурация - подтверждение». Поле данных ответного пакет также содержит список вариантов конфигурации - точную копию принятого. Если компьютер не способен выполнить какое - либо условие желательной настройки соединения, он должен ответить пакетом «конфигурация - неподтверждено». Поле данных этого пакета содержит список неподдерживаемых вариантов настройки. Протокол LCP также разрешает помещать в поле данных пакета «конфигурация - неподтверждено» список дополнительных вариантов настройки соединения. Компьютер, получивший пакет «конфигурация - неподтверждено», должен ответить на запрос любых дополнительных вариантов настройки. Протокол РРР продолжает обмениваться пакетами до тех пор, пока оба участника соединения не придут к единому мнению по поводу конфигурации соединения. Модуль РРР, обнаруживший неизвестный ему вариант настройки в пакете - запросе, обязан ответить пакетом «конфигурация - отказ». Поле данных пакета «конфигурация - отказ» содержит список только неизвестных вариантов. Разница между вариантами, помещенными в поле данных пакетов «конфигурация - отказ» и «конфигурация - неподтверждено», состоит в том, что варианты «отказники» не подлежат дальнейшему обсуждению. Другими словами, РРР может изменить свое мнение о ранее неподтвержденном варианте конфигурации в процессе связи. В то же время варианты, перечисленные в пакете «конфигурация - отказ», больше никогда не будут запрашиваться. Пакеты окончания сеанса связи РРР. Имеют две разновидности «окончание - запрос» и «окончание подтверждено». Обе разновидности пакетов полностью игнорируют поле данных. Протокол РРР требует, чтобы компьютер, получивший пакет «окончание - запрос», всегда отвечал передачей пакета «окончание - подтверждено». Пакеты управления соединением LCP. Используются для управления и отладки во время сеанса связи. Определено пять разновидностей пакетов: «код - отказ», «протокол - отказ» , «эхо - запрос», «эхо - ответ» и «игнорировать - запрос». Пакет «код - отказ» передается модулем РРР, принявший пакет с неизвестным полем «код». Поле данных этого пакета содержит копию поля данных принятого пакета с неизвестным полем «код». Однако эта копия включает только данные из поля «информация». Пакет «протокол - отказ» передается в ответ на неопознанное значение поле «протокол» пакета РРР. Пакет «протокол - отказ» содержит двухбайтовое поле, идентифицирующее неопознанный протокол, а также его «неопознанные данные». Чтобы протестировать состояние канала связи, РРР шлет пакеты «эхо - запрос» и «эхо - ответ». Модуль РРР, получивший пакет «эхо - запрос», должен ответить пакетом «эхо - ответ». Пакет «игнорировать - запрос» предназначен для тестирования канала в одном направлении: от локального до удаленного компьютера. Протокол управления сетью NCP. В процессе управления сетью РРР устанавливает параметры сетевого уровня. По окончании процесса РРР полностью готов к передаче данных вышележащим уровням и может начинать передачу данных. РРР может обслуживать несколько различных сетевых протоколов одновременно. Используя NCP, PPP может « на ходу» открыть новый или завершить обмен по старому сетевому протоколу.