5.3. Проектирование протоколов прикладного уровня
5.3. Проектирование протоколов прикладного уровня
В главе 7 рассматриваются преимущества разбиения сложных приложений на взаимодействующие процессы, которые обмениваются друг с другом данными посредством специфичного для них набора команд или протокола. Преимущества использования текстовых форматов файлов данных также характерны для этих специфичных для приложений протоколов.
Если протокол уровня приложения является текстовым и может быть проанализирован визуально, то многое становится проще. Сильно упрощается интерпретация "распечаток" транзакций, а также написание тестовых программ.
Серверные процессы часто запускаются управляющими программами, подобными демону inetd(8), так что сервер получает команды на стандартный ввод и отправляет ответы на стандартный вывод. Данная модель "CLI-сервера" подробнее описана в главе 11.
CLI-сервер с набором команд простой конструкции имеет то ценное свойство, что тестирующий его человек для проверки работы программного обеспечения может вводить команды непосредственно в серверный процесс.
Также необходимо учитывать принцип сквозного (end-to-end) проектирования. Каждому разработчику протоколов следует прочесть классический документ "End-to-End Arguments in System Design" [73]. Часто возникают серьезные вопросы о том, на каком уровне набора протоколов следует поддерживать такие функции, как безопасность и аутентификация. В указанной статье приводятся некоторые хорошие концептуальные средства для анализа. Третьей проблемой является проектирование высокопроизводительных протоколов прикладного уровня. Более подробно данная проблема освещается в главе 12.
До 1980 года традиции проектирования протоколов прикладного уровня в Internet развивались отдельно от операционной системы Unix[53]. Однако с 80-х годов эти традиции полностью прижились в Unix.
Internet-стиль иллюстрируется в данной главе на примере трех протоколов прикладного уровня, которые входят в число наиболее интенсивно используемых и рассматриваются в среде Internet-хакеров как принципиальные: SMTP, POP3 и IMAP. Все три определяют различные аспекты передачи почты (одной из двух наиболее важных прикладных задач сети наряду с World Wide Web), однако решаемые ими проблемы (передача сообщений, установка удаленного состояния, указание ошибочных условий) также являются характерными для непочтовых протоколов и обычно решаются с помощью подобных методик.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
2.2. Обзор протоколов TCP/IP
2.2. Обзор протоколов TCP/IP Хотя набор протоколов и называется «TCP/IP», это семейство состоит не только из собственно протоколов TCP и IP. На рис. 2.1 представлен обзор этих протоколов. Рис. 2.1. Обзор протоколов семейства TCP/IPНа этом рисунке представлены и IPv4, и IPv6. Если рассматривать
Поддержка протоколов высокого уровня
Поддержка протоколов высокого уровня В ядре Linux предусмотрена поддержка нескольких протоколов высокого уровня. Благодаря этому коды, отвечающие за работу с этими протоколами, выполняются намного быстрее, чем соответствующие коды обычных пользовательских программ.
3.3 Обзор протоколов
3.3 Обзор протоколов На рис. 3.5 представлено соотношение между отдельными компонентами набора протоколов TCP/IP. Рис. 3.5. Соотношение между компонентами набора протоколов TCP/IPХотя текстовые пользовательские интерфейсы для пересылки файлов, доступа с терминала, работы с
Глава 4 Технологии физического уровня и уровня связи данных
Глава 4 Технологии физического уровня и уровня связи данных 4.1 Введение За последние несколько лет было предложено беспрецедентное количество новых технологий для локальных и региональных сетей, быстро утвердившихся на компьютерном рынке. Произошел огромный скачок от
Стек протоколов TCP/IP
Стек протоколов TCP/IP Стек протоколов TCP/IP является основным и единственным способом взаимодействия конечного компьютера с глобальной сетью Интернет, а также основным стеком взаимодействия с другими компьютерами сети. Именно поэтому было решено рассказать в этой главе и
5.3. Проектирование протоколов прикладного уровня
5.3. Проектирование протоколов прикладного уровня В главе 7 рассматриваются преимущества разбиения сложных приложений на взаимодействующие процессы, которые обмениваются друг с другом данными посредством специфичного для них набора команд или протокола. Преимущества
5.4. Метаформаты протоколов прикладного уровня
5.4. Метаформаты протоколов прикладного уровня Подобно тому, как были усовершенствованы метаформаты файлов данных, чтобы упростить сериализацию для хранения этих данных, метаформаты протоколов прикладного уровня были усовершенствованы, чтобы упростить сериализацию
5.4.2. HTTP как универсальный протокол прикладного уровня
5.4.2. HTTP как универсальный протокол прикладного уровня С тех пор как приблизительно в 1993 году World Wide Web достигла критической массы, проектировщики прикладных протоколов демонстрируют усиливающуюся тенденцию к размещению специализированных протоколов над HTTP, используя
8.3.5. Язык или протокол прикладного уровня
8.3.5. Язык или протокол прикладного уровня Не менее важно определить, будут ли другие программы интерактивно вызывать ядро мини-языка в качестве подчиненного процесса. Если это так, то конструкция, вероятно, должна меньше походить на диалоговый язык для взаимодействия с
Правило 19: Рассматривайте проектирование класса как проектирование типа
Правило 19: Рассматривайте проектирование класса как проектирование типа В C++, как и в других объектно-ориентированных языках программирования, при определении нового класса определяется новый тип. Потому большую часть времени вы как разработчик C++ будете тратить на
5.4. Метаформаты протоколов прикладного уровня
5.4. Метаформаты протоколов прикладного уровня Подобно тому, как были усовершенствованы метаформаты файлов данных, чтобы упростить сериализацию для хранения этих данных, метаформаты протоколов прикладного уровня были усовершенствованы, чтобы упростить сериализацию
5.4.1. Классический метапротокол прикладного уровня в Internet
5.4.1. Классический метапротокол прикладного уровня в Internet RFC 3117 Маршала Роуза (Marshall Rose), "On the Design of Application Protocols"[54] представляет исключительный обзор вопросов проектирования протоколов прикладного уровня в Internet. В данном документе проясняются несколько черт классических
5.4.2. HTTP как универсальный протокол прикладного уровня
5.4.2. HTTP как универсальный протокол прикладного уровня С тех пор как приблизительно в 1993 году World Wide Web достигла критической массы, проектировщики прикладных протоколов демонстрируют усиливающуюся тенденцию к размещению специализированных протоколов над HTTP, используя
8.3.5. Язык или протокол прикладного уровня
8.3.5. Язык или протокол прикладного уровня Не менее важно определить, будут ли другие программы интерактивно вызывать ядро мини-языка в качестве подчиненного процесса. Если это так, то конструкция, вероятно, должна меньше походить на диалоговый язык для взаимодействия с
Атрибуты уровня компоновочного блока (и уровня модуля)
Атрибуты уровня компоновочного блока (и уровня модуля) Можно также задать применение атрибутов ко всем типам в рамках данного модуля или всех модулей в рамках данного компоновочного блока, если, соответственно, использовать признаки [module:] или [assembly:]. Предположим, что нам
Реймонд Эрик Стивен
Просмотр ограничен
Смотрите доступные для ознакомления главы 👉