Открыть сервис

LPD

LPD (от англ. Line Printer Daemon) — протокол прикладного уровня сетевой модели OSI, предназначенный для управления печатью в компьютерных сетях. Протокол реализует передачу заданий на печать от клиентских компьютеров к серверу печати (принтеру или специализированному устройству) и обратную передачу статуса очереди. LPD является одним из старейших и наиболее распространённых протоколов печати в Unix-подобных операционных системах, а также поддерживается большинством современных сетевых принтеров.

История

Протокол LPD был разработан в начале 1980-х годов в Калифорнийском университете в Беркли для операционной системы BSD Unix. Первоначально он предназначался для организации печати на удалённых принтерах в локальных сетях, где основным транспортным протоколом выступал TCP/IP. В 1990 году протокол был стандартизирован в документе RFC 1179 «Line Printer Daemon Protocol», который закрепил его спецификацию и порядок взаимодействия между клиентом и сервером.

С распространением персональных компьютеров и сетей Ethernet протокол LPD стал использоваться не только в Unix-среде, но и в операционных системах Microsoft Windows (через службу печати TCP/IP), а также в сетевых принтерах и многофункциональных устройствах (МФУ). В 2000-х годах на смену LPD стали приходить более современные протоколы, такие как IPP (Internet Printing Protocol), однако LPD сохраняет совместимость с большим числом устаревших устройств и используется в корпоративных и промышленных сетях.

Архитектура и принцип работы

Протокол LPD работает по схеме «клиент-сервер». Сервером выступает демон печати (line printer daemon), который постоянно ожидает входящие соединения на порту TCP 515. Клиент (пользовательский компьютер или другое устройство) отправляет запросы на этот порт, используя команды, определённые в RFC 1179.

Команды протокола

LPD определяет несколько типов команд, каждая из которых имеет свой код:

После установки соединения клиент отправляет серию команд, каждая из которых завершается символом перевода строки. Данные задания (файл) передаются в виде потока байтов с контрольными суммами. Сервер подтверждает получение каждой части данных.

Формат данных

Задание на печать в LPD состоит из управляющего файла (control file) и файла данных (data file). Управляющий файл содержит метаданные: имя пользователя, название задания, тип файла (текст, PostScript, PCL и т.д.), параметры печати (количество копий, ориентация страниц). Файл данных — это собственно содержимое для печати (текст, изображение, PDF). Разделение на два файла позволяет серверу обрабатывать задания без необходимости повторной передачи управляющей информации.

Реализации

В Unix-подобных системах

В большинстве дистрибутивов Linux и BSD-систем LPD реализован в виде демона lpd, который входит в пакет LPRng (Line Printer Next Generation) или CUPS (Common Unix Printing System). CUPS, ставший стандартом в Linux, поддерживает LPD как один из протоколов наряду с IPP и SMB. В macOS протокол LPD также поддерживается встроенной системой печати, хотя основным протоколом является IPP.

В Microsoft Windows

В Windows протокол LPD доступен через компонент «Служба печати TCP/IP» (LPD Service), который устанавливается как дополнительная функция. Клиентская часть (LPR) позволяет отправлять задания на сервер LPD. В Windows 10 и 11 поддержка LPD была частично сохранена, но рекомендуется использовать IPP для новых устройств.

В сетевых принтерах

Большинство современных сетевых принтеров (HP, Canon, Epson, Brother и др.) поддерживают LPD в качестве одного из протоколов печати. Обычно очередь печати называется lp, raw или text. Настройка LPD на принтере сводится к указанию IP-адреса и имени очереди.

Преимущества и недостатки

Преимущества

Недостатки

Применение

LPD продолжает использоваться в следующих сценариях:

Безопасность

Протокол LPD не предусматривает шифрования или аутентификации на уровне протокола. Для защиты рекомендуется:

В современных системах (CUPS, LPRng) добавлена поддержка аутентификации и фильтрации по IP-адресам, но это не является частью стандарта RFC 1179.

Сравнение с другими протоколами

ХарактеристикаLPDIPPSMB (Windows)
ПортTCP 515TCP 631TCP 445
ШифрованиеНетПоддерживается (TLS)Поддерживается (SMB3)
АутентификацияНетПоддерживаетсяПоддерживается
Двусторонняя печатьНетПоддерживаетсяПоддерживается
Поддержка драйверовМинимальнаяРасширеннаяПолная
Возраст1980-е1990-е1990-е

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →