ΠΠ°ΡΠΊ ΠΡΡΠΊΠ΅Ρ (Marc Brooker), ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Amazon Web Services (AWS), ΡΠ°Π·ΠΎΠ±ΡΠ°Π» Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΌΠ΅Π»ΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ΅ΠΉΠ³Π»Π°, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² TCP/IP ΡΡΠ΅ΠΊΠ΅. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ΅ΠΉΠ³Π»Π°, ΡΡΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ΅Π· Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ TCP_NODELAY Π΄Π»Ρ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΠ·ΠΎΠ²Π° setsockopt, ΡΡΠΎ ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΠΊΠ°ΠΊ Node.js ΠΈ curl.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΠ΅ΠΉΠ³Π»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ° — ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΡ Π½ΠΎΠ²ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² TCP Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΠΏΡΠΈΡΠΌΠ΅ ΡΠ°Π½Π΅Π΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ 1 Π±Π°ΠΉΡΠ°, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ 40 Π±Π°ΠΉΡΠΎΠ² Ρ TCP ΠΈ IP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°. Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ΅ΠΉΠ³Π»Π° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π·Π°ΠΌΠ΅ΡΠ½ΠΎΠΌΡ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ, Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π΄ΠΎΠ²ΠΎΠ΄Π° Π² ΠΏΠΎΠ»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠΏΡΠΈΠΈ TCP_NODELAY, ΠΎΡΠΊΠ»ΡΡΠ°ΡΡΠ΅ΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ΅ΠΉΠ³Π»Π°:
- ΠΠ΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ΅ΠΉΠ³Π»Π° Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ «delayed ACK», ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ACK-ΠΎΡΠ²Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΡΡΠ°Π·Ρ, Π° ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ ΠΠ΅ΠΉΠ³Π»Π° ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅ ACK-ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , Π° Π΅ΡΠ»ΠΈ ACK-ΠΏΠ°ΠΊΠ΅Ρ Π½Π΅ ΠΏΠΎΡΡΡΠΏΠΈΠ», ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΡΠ°ΠΉΠΌΠ°ΡΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π·Π°ΠΌΠΊΠ½ΡΡΡΠΉ ΠΊΡΡΠ³ ΠΈ ACK-ΠΏΠ°ΠΊΠ΅Ρ ΠΊΠ°ΠΊ ΡΠΈΠ³Π½Π°Π» Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄ΡΡΠ³Π°Ρ ΡΡΠΎΡΠΎΠ½Π° Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·-Π·Π° ΠΈΡ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ, Π° ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ Π΄ΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ACK-ΠΏΠ°ΠΊΠ΅Ρ.
- RFC Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ΅ΠΉΠ³Π»Π° ΠΏΡΠΈΠ½ΡΡ Π² 1984 Π³ΠΎΠ΄Ρ ΠΈ ΠΎΠ½ Π½Π΅ ΡΠ°ΡΡΡΠΈΡΠ°Π½ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π² Π΄Π°ΡΠ°ΡΠ΅Π½ΡΡΠ°Ρ , ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΠΎΡΡΡΡ. ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠ° (RTT) Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅ΡΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 0.5 ΠΌΡ + Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°ΡΠ΅Π½ΡΡΠ°ΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅Π³ΠΈΠΎΠ½Π΅ + Π΄ΠΎ ΡΠΎΡΠ½ΠΈ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ. ΠΠ° ΡΡΠΈ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΎΠ±ΡΡΠΌ ΡΠ°Π±ΠΎΡΡ.
- Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π°Π²Π½ΠΎ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠ΅ Π±Π°ΠΉΡΡ Π΄Π°Π½Π½ΡΡ , Π° Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π»ΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ Π±Π°ΠΉΡΡ, ΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ API-ΠΎΠ±Π²ΡΠ·ΠΎΠΊ Π² JSON ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ TLS-ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡ 40 Π±Π°ΠΉΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ ΡΡΠΎΠ»Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru