Введение
Punter — протокол для передачи файлов, разработанный в 1980-х годах Стивом Пантером. Существуют различные типы Punter, такие как протокол передачи PET (PTP), C1 и C2.
Протокол передачи ПЭТ
Протокол передачи ПЭТ (PTP), также известный как Punter или Old Punter, был разработан около 1980 года Стивом Пунтером для использования с его программным обеспечением PETBBS и системой электронных досок объявлений BBS64. "PET" в названии происходит от компьютера Commodore PET. По сравнению с другими протоколами того времени, PTP медленнее, чем YMODEM и ZMODEM, но быстрее и надежнее, чем XMODEM. Самая ранняя версия Punter поддерживает только 7-битные передачи и использует алгоритм обратной коррекции, включающий две контрольные суммы для обеспечения надежности. Одна из этих контрольных сумм является аддитивной, а другая – булевой (выполняет инструкции EOR), что делает алгоритм простым для понимания и эмуляции другими программистами. Наличие двух 16-битных контрольных сумм делает его значительно более точным, чем однобайтовая контрольная сумма, используемая XMODEM, его основным конкурентом в начале 1980-х годов. Несмотря на потенциальную возможность возникновения ошибок, по сравнению с протоколом YMODEM конца 1980-х годов, который, вероятно, превосходит его, PTP широко использовался на электронных досках объявлений на базе Commodore PET и Commodore 64.
Выход терминала
Не вся передача видна пользователю. Наиболее заметной частью передачи является отчет о кодах состояния, таких как ACK, GOO, BAD и SYN, отражающих результаты установления соединения. Типичная передача может выглядеть как "ACKGOOGOOGOOGOOBADGOOGOOGOOBADGOO", при этом сообщения о поврежденных блоках поступают пользователю с той же частотой, с какой они возникают. Это позволяет пользователям вести статистику ошибок по часам и дням недели, и определять, в какое время суток и в какие дни недели телефонные линии были более чистыми. В отличие от современных компьютеров, C64 и C128 могут опрашивать пользовательский порт (к которому подключен модем) с незначительно отличающимися скоростями передачи и соединения. Например, передача со скоростью 1200 бод в воскресенье вечером может фактически приводить к меньшему количеству ошибок, чем передача со скоростью 2400 бод во вторник днем. Выбирая более низкие скорости передачи, файлы могут передаваться быстрее, поскольку требуется меньше повторных передач.
С1
В 1984 году Стив Пунтер выпустил преемника PTP под названием C1, или New Punter. C1 стал стандартным протоколом для Commodore BBS и редко поддерживался терминальным программным обеспечением или BBS для других операционных систем. Спецификация C1 содержала множество неточностей и неоднозначностей, что затрудняло её реализацию с нуля. Тем не менее, протокол получил широкое распространение, поскольку Пунтер опубликовал исходный код оригинальной реализации в общественном достоянии. C1 мог передавать блоки данных размером до 255 байт, с рекомендуемым (но необязательным) минимальным размером 40 байт и служебной информацией в 7 байт на блок. Он оптимизирован для передачи файлов, хранящихся на 8-битных компьютерах Commodore, чья DOS рассматривает исполняемые и последовательные файлы как идентичные.
Многостворчатый
Термин Multi Punter может относиться к любому из трех или четырех взаимонесовместимых сторонних вариантов C1, обеспечивающих пакетную передачу файлов, в отличие от C1, который был разработан для передачи отдельных файлов. Один из таких вариантов, C2, также известный просто как Punter, был разработан примерно в 1985 году Punter. Как и C1, он оптимизирован для передачи файлов, хранящихся на 8-битных компьютерах Commodore. Другой вариант был разработан примерно в 1987 году Аланом Петерсом.