Какой протокол следует использовать для зашифрованной потоковой передачи?

Я передаю файл (MP3), который начинает воспроизводиться на клиенте после получения 100 КБ. Мне нужно идеальное воспроизведение.

Мне нужно фрагментировать файл, чтобы его можно было буферизовать на клиенте, поэтому было бы лучше использовать UDP + какой-то собственный надежный протокол доставки? (Предполагая, что я держу дейтаграммы небольшими ~ 1400 байт)

Или я должен просто использовать TCP? Если TCP - до какого размера я должен фрагментировать файл для лучшей производительности - я предполагаю, что это будет связано с размером пакета TCP?

Я где-то читал, что причина использования TCP вместо протокола надежности UDP + заключается в том, что TCP делает некоторые причудливые вещи, управляя/разделяя пропускную способность с другими приложениями, тогда как UDP жадный. Это правда? Если да, то если бы я решил использовать UDP, означало бы это, что при потоковой передаче нескольким клиентам одновременно мне пришлось бы включать какие-то причудливые алгоритмы для разделения пропускной способности?


person Cheetah    schedule 09.07.2011    source источник


Ответы (1)


было бы лучше использовать UDP + какой-то собственный надежный протокол доставки?

Не пытайтесь заново изобретать TCP. Это, вероятно, лучше, чем все, что вы могли бы приготовить сами.

Или я должен просто использовать TCP? Если TCP - до какого размера я должен фрагментировать файл для лучшей производительности - я предполагаю, что это будет связано с размером пакета TCP?

При использовании TCP нет необходимости разделять файл — в конце концов, это потоковый протокол. Просто начните отправлять все это по соединению, и вы будете получать данные MP3 по мере их поступления.

person Community    schedule 09.07.2011
comment
Если я зашифрую весь файл, мне обязательно понадобится весь файл для расшифровки? Я не думаю, что было бы так сложно создать надежный протокол доставки, аналогичный части надежности TCP, если только он не намного сложнее, чем я думаю. - person Cheetah; 09.07.2011
comment
Обычно нет. Большинство схем шифрования работают с одним небольшим (≤1 КБ) блоком за раз или с одним байтом за раз в случае потоковых шифров. - person ; 09.07.2011
comment
при рассмотрении режимов шифрования, таких как CFB, каждый блочный шифр можно превратить в паровой шифр. - person DarkSquirrel42; 10.07.2011