Протоколи з гнучким форматом кадру
Для більшої частини протоколів канального рівня характерні кадри, состо-ящие із службових полів фіксованої довжини. Виключення робиться тільки для поля даних з метою економної пересилки як невеликих квитанцій, так і великих файлів.
Спосіб визначення закінчення кадру шляхом завдання довжини поля даних, розглянутий вище, якраз розрахований на такі кадри з фіксованою структурою і фіксованими розмірами службових полів.
Проте існує ряд протоколів, в яких кадри мають гнучку струк-туру. Наприклад, до таких протоколів відноситься дуже популярний протокол канального рівня РРР, використовуваний для з’єднань типу «крапка-крапка». Ще одним прикладом, але вже для іншого рівня, є прикладний протокол управління мережами SNMP.
Кадри таких протоколів складаються з невизначеної кількості полий, кожне з яких може мати змінну довжину. Початок такого кадру наголошується деяким стандартним чином, наприклад прапором, а потім протокол послідовно проглядає поля кадру і визначає їх кількість і розміри. Кожне поле зазвичай описується двома дополнітель-нимі полями фіксованого розміру.
Наприклад, якщо в кадрі зустрічається поле, що містить деякий символьний рядок, то в кадр вставляються три поля: «Тип», «Довжина» і «Значення».
Додаткові поля «Тип» і «Довжина» мають фіксований розмір в один байт, тому протокол легко знаходить межі поля «Значення». Оскільки кількість таких полів також невідома, для визначення загальної довжини кадру використовується або загальне поле «Довжина», яке поміщається на початку кадру і відноситься до всіх полів даних, або закриваючий прапор.
Подібний спосіб представлення даних змінної довжини отримав назву TLV – абревіатура від англійських слів «Type, Length, Value».

