注意

The ministreaming library has been enhanced and extended by the "full" streaming library. Ministreaming is deprecated and is incompatible with today's applications. The following documentation is old. Also note that streaming extends ministreaming in the same Java package (net.i2p.client.streaming), so the current API documentation contains both. Obsolete ministreaming classes and methods are clearly marked as deprecated in the Javadocs.

Ministreaming Library

The ministreaming library is a layer on top of the core I2CP that allows reliable, in order, and authenticated streams of messages to operate across an unreliable, unordered, and unauthenticated message layer. Just like the TCP to IP relationship, this streaming functionality has a whole series of tradeoffs and optimizations available, but rather than embed that functionality into the base I2P code, it has been factored off into its own library both to keep the TCP-esque complexities separate and to allow alternative optimized implementations.

ministreaming库是由mihi编写的,作为他的 I2PTunnel 应用程序的一部分,然后将其拆分并在BSD许可下发布。 它被称为 "mini "streaming库,因为它在一个更强大的streaming库实现上做了一些简化可以进一步优化在I2P上的操作。 ministreaming库的两个主要问题是它使用了传统的TCP两阶段建立协议和目前的固定窗口大小。 对长期流来说是小事,但对短流,如快速的HTTP 请求,其影响可能是巨大的。 至于窗口 大小,ministreaming库并没有在发送的消息中保持任何ID或排序(或包括任何应用程序级别的 发送的消息(或包括任何应用层面的ACK或SACK), 所以它平均必须 等待两倍于发送一条信息的时间才能发送另一条。

Even with those issues, the ministreaming library performs quite well in many situations, and its API is both quite simple and capable of remaining unchanged as different streaming implementations are introduced. The library is deployed in its own ministreaming.jar. Developers in Java who would like to use it can access the API directly, while developers in other languages can use it through SAM's streaming support.