Этот перевод был создан с помощью машинного обучения и может быть не на 100% точным. Просмотреть английскую версию

Библиотека Ministreaming

Исторические заметки о первом TCP-подобном транспортном уровне I2P

Примечание

Библиотека ministreaming была улучшена и расширена “полной” библиотекой streaming . Ministreaming устарела и несовместима с современными приложениями. Следующая документация устарела. Также обратите внимание, что streaming расширяет ministreaming в том же Java-пакете (net.i2p.client.streaming), поэтому текущая документация API содержит и то, и другое. Устаревшие классы и методы ministreaming четко помечены как deprecated в Javadocs.

Библиотека Ministreaming

Библиотека ministreaming представляет собой слой поверх ядра I2CP , который обеспечивает надежные, упорядоченные и аутентифицированные потоки сообщений поверх ненадежного, неупорядоченного и неаутентифицированного уровня сообщений. Как и в отношениях TCP к IP, эта функциональность потоковой передачи имеет целый ряд компромиссов и доступных оптимизаций, но вместо встраивания этой функциональности в базовый код I2P, она была вынесена в отдельную библиотеку как для того, чтобы отделить TCP-подобные сложности, так и для обеспечения возможности альтернативных оптимизированных реализаций.

Библиотека ministreaming была написана mihi как часть его приложения I2PTunnel , а затем выделена в отдельный компонент и выпущена под лицензией BSD. Она называется “мини” библиотекой потоковой передачи, поскольку делает некоторые упрощения в реализации, в то время как более надежная библиотека потоковой передачи могла бы быть дополнительно оптимизирована для работы в сети I2P. Две основные проблемы библиотеки ministreaming - это использование традиционного двухфазного протокола установки соединения TCP и текущий фиксированный размер окна равный 1. Проблема установки соединения незначительна для долгоживущих потоков, но для коротких, таких как быстрые HTTP-запросы, влияние может быть существенным. Что касается размера окна, библиотека ministreaming не поддерживает никаких ID или упорядочивания в отправляемых сообщениях (и не включает никаких подтверждений на уровне приложения ACK или SACK), поэтому она должна в среднем ждать в два раза дольше времени отправки сообщения перед отправкой следующего.

Даже с учетом этих проблем, библиотека ministreaming показывает довольно хорошую производительность во многих ситуациях, а её API является простым и способным оставаться неизменным при внедрении различных реализаций потокового вещания. Библиотека развертывается в собственном файле ministreaming.jar. Разработчики на Java, желающие её использовать, могут обращаться к API напрямую, в то время как разработчики на других языках могут использовать её через поддержку потокового вещания SAM .

Was this page helpful?