LCP

Не путать с LCP — в математической теории оптимизации Линейная проблема взаимозависимости[англ.].

LCP — сокращение от Link Control Protocol — протокол управления соединением.

Назначение протокола

LCP является частью протокола Point-to-Point Protocol. При установлении соединения PPP передающее и принимающее устройство обмениваются пакетами LCP для уточнения специфической информации, которая потребуется при передаче данных.

Согласование параметров соединения проводится в форме переговоров.

LCP протокол осуществляет:

  • проверку идентификации соединяемых устройств и, вследствие этого разрешает или отклоняет установку соединения
  • определение приемлемого размера кадров для передачи MTU и приёма — MRU
  • ограничение по ширине канала
  • шифрование аутентификации соединения
  • сжатие данных
  • обнаружение петель маршрутизации
  • проверку синтаксиса и поиск ошибок в конфигурации
  • разрыв соединения, если какое-либо значение превышает заданный параметр

Устройства не могут передавать данные друг другу по сети прежде чем LCP пакеты не определят доступность устанавливаемого соединения.

Так как LCP инкапсулируется в кадры РРР, необходимо установление первоначального соединения РРР прежде, чем LCP сможет переопределить его. Пакет LCP поверх PPP содержит код протокола 0xC021 и имеет четыре поля — код, идентификатор, длина и данные.

Формат пакета LCP

Заголовок пакета LCP Данные
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 nnn
Code
(Код)
Identifier
(Идентификатор)
Length
(Длина)
Data
(Данные)

Расшифровка значений первого байта заголовка — Code

Code Значения Описание RFC
0 Vendor Specific999 Определяется производителем RFC 2153
1 Configure-Request Запрос конфигурации  
2 Configure-Ack Подтверждение конфигурации  
3 Configure-Nak Альтернативные значения RFC 1661
4 Configure-Reject Отказ в конфигурации  
5 Terminate-Request Запрос на разрыв соединения  
6 Terminate-Ack Подтверждение разрыва  
7 Code-Reject Отказ в принятии кода  
8 Protocol-Reject Отказ в принятии протокола  
9 Echo-Request Эхо-запрос  
10 Echo-Reply Эхо-ответ  
11 Discard-Request Запрос на отбрасывание  
12 Identification Идентификация RFC 1570
13 Time-Remaining Времени осталось RFC 1570

Расшифровка значений второго байта заголовка — Identifier

Идентификатор может принимать значения от 0 до 255.

Расшифровка значений третьего и четвёртого байта заголовка — Length

Поле Длина содержит общий размер в байтах всего пакета LCP, включая заголовок

Length = Code (1) + Identifier (1) + Length (2) + Data (n) = n + 4

где n — размер Данных кадра в байтах

Поле записывается в формате big endian (старший байт значения поля предшествует младшему в потоке данных)

Ссылки