Я создаю приложение (как клиентское, так и серверное), которое может потребоваться для отправки и получения данных по сети.Сообщения будут короткими и, вероятно, в основном двоичными.Мне нужно, чтобы соединение было безопасным даже в общедоступных сетях.
Я не собираюсь изобретать велосипед, поэтому я хотел бы, чтобы протокол сам обрабатывал все накладные расходы на управление сеансом (рукопожатие, работа с удаленнымипакеты, отправка ответов ACK и т. д.).Также было бы хорошо, если бы он естественным образом поддерживался в Windows, Linux и OS X (платформой .net и ядрами * NIX).
Пока что я рассмотрел несколько вариантов:
- HTTPS - имеет хорошую поддержку для всего вышеперечисленного, кроме накладных расходов.Если сообщение короткое, все заголовки HTTP просто избыточны.Встроенная поддержка.
- IPSEC - поддерживается изначально, но вынуждает меня самостоятельно обрабатывать сеанс.
- Протоколные буферы Google через HTTPS - лучший вариант на данный момент, но требует определенных усилий по внедрению.
Я новичок в мире сетевого программирования, поэтому любой совет или совет будут с благодарностью.