
Когда одну из твоих идей кто-то реализует раньше тебя, бывает слегка обидно. Смешанное чувство — с одной стороны жалко уже проделанной работы, с другой укоряешь себя за нерасторопность. Но вот когда идею не просто воплощают, но и развивают, выводя на какой-то новый уровень — тогда об этом не может быть и речи. Остаётся только восхищение и ничуть не жаль работы проделанной втуне.
Уже очень давно стало понятно, что в компьютерных сетях узким местом всегда будет не пропускная способность, в задержка — время прохода сигнала от одного конца к другому и обратно. Так было и будет всегда, потому что скорость света является непреодолимым ограничением.
В распределённых системах постоянно возникает нужда в протоколе для короткого обмена «репликами» в стиле «вопрос-ответ», и применять в качестве транспорта TCP очень затратно. Нужно вначале установить соединение, потом поддерживать, в результате для одного цикла вопрос-ответ требуется много обращений сигнала туда-сюда. А хочется — ровно одно. А значит вместо TCP нужно применять что-то другое. Если при этом хочется, чтобы это проходило через NATы, остаётся только UDP. Только поверх него нужно организовать некую систему досылки пропавших сообщений + криптографию, не требующую дополнительного обмена сообщениями. При всём этом хедеры должны быть легковесными, чтобы в подавляющем большинстве случаев всё влезало в одну MTU. Там нужно было просто скрестить RUDP и datagramm secure layer, и получить некий sRUDP.
Но не пришлось, потому что умные люди из MIT придумали SST. Это гениально. Они просто придумали абстракцию, которой можно взять лучшее из обоих миров — UDP и TCP, или, более общо, дейтаграммного и стримингового. Это не s(UDP + TCP), а скорее целый s(DCCP + SCTP). Может я ещё не заметил каких-то серьёзных минусов, но это выглядит реально как серебренная пуля универсальный лом. У нас на руках предельная минимизация RTT, когда это возможно, конкурентный стриминг, хорошее соотношения заголовков к пейлоаду и полный инструментарий QoS. Теперь осталось чтобы имплементация заматерела и деятельно заниматься сабжем.