ΠΠΎΡΠ²ΠΈ ΡΠ΅ Π²Π΅ΡΡΠΈΡ 1.9.0 Π½Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° I2P ΠΈ C++ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° i2pd 2.43.0. I2P Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠΉΠ½Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΌΡΠ΅ΠΆΠ°, ΠΊΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π°Π΄ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° end-to-end ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΡΠΎ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΡΡ ΠΈ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ. ΠΡΠ΅ΠΆΠ°ΡΠ° Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π² ΡΠ΅ΠΆΠΈΠΌ P2P ΠΈ ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ (ΠΏΡΠΎΠΏΡΡΠΊΠ½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½ΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΌΠΈΠ½Π΅ Π±Π΅Π· ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΡΠ° Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π΅ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈ Π΅Π΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΈ ΡΡΠ½Π΅Π»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈΡΠ΅ ΠΈ peer-ΠΎΠ²Π΅ΡΠ΅).
Π ΠΌΡΠ΅ΠΆΠ°ΡΠ° I2P ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΠ΅Π±ΡΠ°ΠΉΡΠΎΠ²Π΅ ΠΈ Π±Π»ΠΎΠ³ΠΎΠ²Π΅, Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠΌΠ΅ΠΉΠ»ΠΈ, Π΄Π° ΠΎΠ±ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ P2P ΠΌΡΠ΅ΠΆΠΈ. ΠΠ° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΈ Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΡΡΠ²ΡΡΠΈ (ΡΠ°ΠΉΡΠΎΠ²Π΅, ΡΠ°ΡΠΎΠ²Π΅) ΠΈ P2P (ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΡΠΈΠΏΡΠΎΠ²Π°Π»ΡΡΠΈ) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ I2P. ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ I2P Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Java ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΊΠ°ΡΠΎ Windows, Linux, macOS, Solaris ΠΈ Π΄Ρ. I2pd Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° I2P Π½Π° C++ ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΡ BSD.
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ I2P Π·Π°Π²ΡΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π½ΠΎΠ²ΠΈΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» βSSU2β, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° UDP, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΠΏΠΎΠ²ΠΈΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ. Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ° ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° SSU2 ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΏΠΈΡΠΈΡΠ΅ ΠΈ ΡΠ΅Π»Π΅ΠΉΡΠ΅. ΠΡΠΎΡΠΎΠΊΠΎΠ»ΡΡ βSSU2β Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π² ΡΠ±ΠΎΡΠΊΠΈΡΠ΅ Π·Π° Android ΠΈ ARM, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈ Π½Π° ΠΌΠ°Π»ΡΠΊ ΠΏΡΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ. Π Π½ΠΎΠ΅ΠΌΠ²ΡΠΈΠΉΡΠΊΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΅ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° βSSU2β Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΠ½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° SSU2 ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈ ΠΈΠ·ΡΡΠ»ΠΎ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈΡΡ ΡΡΠ΅ΠΊ, Π΄Π° ΡΠ΅ ΠΎΡΡΡΠ²Π΅ΠΌ ΠΎΡ Π±Π°Π²Π½ΠΎΡΠΎ ElGamal (Π·Π° end-to-end ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΡΠ° ECIES-X25519-AEAD-Ratchet Π²ΠΌΠ΅ΡΡΠΎ ElGamal/AES+SessionTag), Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΡΡ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ ΡΠΏΡΡΠΌΠΎ SSU ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΡ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π΄Π΅ΡΠ΅ΠΊΡΠΎΡ Π½Π° Π²Π·Π°ΠΈΠΌΠ½ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ (deadlock detector), ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ° (RI, RouterInfo) ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° MTU/PMTU Π² ΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» SSU. Π i2pd ΡΡΠ°Π½ΡΠΏΠΎΡΡΡΡ SSU2 Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅Π½ Π΄ΠΎ ΡΠΈΠ½Π°Π»Π΅Π½ Π²ΠΈΠ΄, ΠΊΠΎΠΉΡΠΎ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° Π½ΠΎΠ²ΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ, Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π°Π΄ΡΠ΅ΡΠ½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
