Я ищу проект протокола для клиент-серверного приложения и нуждаюсь в некоторых ссылках на некоторые ресурсы, которые могут мне помочь.Вопросы по протоколу/пакетному дизайну
Большая часть: я пытаюсь создать свой собственный «пакетный» формат, чтобы я мог минимизировать количество отправляемой информации. Я ищу некоторые ресурсы для анализа их протокола, но кажется, что у некоторых полностью отсутствует дизайн пакетов, например SMTP (который просто отправляет строки, завершенные CLRF). Каковы преимущества/недостатки использования такой системы, как SMTP, в системе, использующей специально созданный пакет? Нельзя ли использовать SMTP всего пару байт, чтобы охватить все команды через битовые флаги и сохранить пропускную способность/пространство?
Просто пытаюсь обойти все это.
Я буду посылать массовые объемы данных, и я предполагаю, что я пытаюсь микро-оптимизировать, прежде чем это станет проблемой. Думаю, мне придется сложить структуру данных поверх TCP. Но, допустим, я хотел создать собственный протокол на основе пакетов, с чего бы начать? И как бы я начал реализовывать его на C++? – cam
Вы должны начать с создания структуры. Тем не менее, это очень сложная задача, и вам нужно хорошо знать внутренние IP-адреса, если вы собираетесь их инкапсулировать, так как есть много случаев сбоя, с которыми вам нужно иметь дело: пакеты могут быть потеряны, поврежден, фрагментирован или доставлен не по порядку. Вы просто разрабатываете алгоритм для решения всего этого, и вы настроены;) – WhirlWind
UDP заботится о проблемах с целостностью данных для вас, но вам все равно придется иметь дело с другими вещами. Чтобы реализовать это, взгляните на слой сокета. У У. Ричарда Стивенса есть несколько книг, которые могут помочь – WhirlWind