Max Dmitrichenko -> Eugene Berdnikov @ Fri, 13 Nov 2015 13:05:00 +0300:
>> Скажем так: "можно" это меньше 15 минут, "невозможно" это больше 15. >> Именно столько готов потратить юзер на поиск утилиты, которая >> расшифрует ему протокол, если таковая существует. Если же нет, >> то никто ни писать дешифратор, ни даже покупать техподдержку >> не будет. Просто забьёт на глюкало вместе с его протоколом, >> в результате протокол и глюкало сдохнут вместе. MD> Таки интересные вещи вы тут рассказываете. А чё скайп-то до сих пор MD> жив? Бинарный, глюкавый, без дешифраторов, например. Или вот появилась MD> же как-то Samba, которая проимплементила бинарный закрытый глюкавый MD> протокол. Ну да. И в результате работа с SMB - одно из самых глюкавых мест в нынешних линуксах вот уже лет 15. >> Главное достоинство текстовых протоколов не столько в читабельности >> (это действительно решается правильным логгингом и декодерами), >> сколько в гибкости и лёгкой расширяемости под СВОИ нужды. Скажем, >> добавить лишнюю опцию вроде ECN в ip-хедер проблематично без комитета, >> а добавить лишний хедер в HTTP может любой, никого не спрашивая. >> Причём так, что этот хедер ничему мешать не будет. >> Эта возможность важнее 100 лет оверхеда. :) MD> Таки IP-хедер продукт старой школы. Бинарные TLV структуры, с MD> выделенным пространством T для vendor extension's - давно используются MD> во многих протоколах. Это, опять же, сведение задачи, ну не к эквивалентной, но весьма схожей - нужно централизованное выделение подпространств в этих пространствах, как с OID в ASN.1 (это, безусловно, проще, чем каждый раз править протокол, но тем не менее), а то будут клэши. И размер идентификатора довольно быстро растет. Зато, правда, есть именно что гарантия отсутствия клэшей, а не просто хороший шанс, как в случае добавления значимого текстового имени. Зато под СВОИ нужды как раз становится неудобно расширять. В HTTP добавил СВОЙ хедер, носишь его к СВОЕМУ серверу - и ничего тебя не гондурасит. Контент все равно парсишь, если он парсится плохо - игнорируешь. Избыточности для обнаружения того, что что-то тут не так, в текстовом протоколе достаточно. А в случае с TLV, если ты не прошел процедуру получения своего подпространства имен, шанс нарваться на то, что тебе принесут с тем же T совершенно другое по замыслу отправителя V, заметно возрастает из-за неизбыточности кодирования. Естественные языки избыточны не просто так...