Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«UNIX: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сСтСвых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 78

Автор Уильям БтивСнс

42-51 Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ accept ΠΌΡ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ клиСнтскоС соСдинСниС, Π° ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ сокСт TCP Π³ΠΎΡ‚ΠΎΠ² для чтСния, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fork ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ процСсс ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Π½Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ str_echo Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ процСссС. Π­Ρ‚ΠΎ Ρ‚Π° ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ выполняли Π² Π³Π»Π°Π²Π΅ 5.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° приходящСй Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΡ‹

52-57 Π•сли сокСт UDP Π³ΠΎΡ‚ΠΎΠ² для чтСния, Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΈΡˆΠ»Π°. ΠœΡ‹ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ recvfrom ΠΈ отправляСм ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sendto.

8.16. РСзюмС

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ наши эхо-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ эхо-сСрвСр Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ UDP вмСсто TCP, оказалось нСслоТно. Но ΠΏΡ€ΠΈ этом ΠΌΡ‹ лишились мноТСства возмоТностСй, прСдоставляСмых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ TCP: ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ потСрянных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ повторная ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, приходят Π»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΎΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ собСсСдника, ΠΈ Ρ‚.Π΄. ΠœΡ‹ возвратимся ΠΊ этой Ρ‚Π΅ΠΌΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 22.5 ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ прилоТСния UDP.

Π‘ΠΎΠΊΠ΅Ρ‚Ρ‹ UDP ΠΌΠΎΠ³ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ асинхронныС ошибки, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ошибки, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сообщаСтся спустя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚ Π±Ρ‹Π» ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½. Π‘ΠΎΠΊΠ΅Ρ‚Ρ‹ TCP всСгда ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΎ Π½ΠΈΡ…, Π½ΠΎ Π² случаС UDP для получСния этих ошибок сокСт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ присоСдинСнным.

Π’ UDP отсутствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Π½Π΅ создаСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ прилоТСния UDP построСны с использованиСм ΠΌΠΎΠ΄Π΅Π»ΠΈ «запрос-ΠΎΡ‚Π²Π΅Ρ‚Β» ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ большого количСства Π΄Π°Π½Π½Ρ‹Ρ….

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ряд ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ UDP, Π½ΠΎ ΠΌΡ‹ рассмотрим ΠΈΡ… Π² Π³Π»Π°Π²Π΅ 22 послС описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ интСрфСйсов, ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ многоадрСсной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.

УпраТнСния

1. Π”опустим, Ρƒ нас имССтся Π΄Π²Π° прилоТСния, ΠΎΠ΄Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ TCP, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ β€” UDP. Π’ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅ сокСта TCP находится 4096 Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π² ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅ для сокСта UDP β€” Π΄Π²Π΅ Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ 2048 Π±Π°ΠΉΡ‚. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TCP Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ read с Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ 4096, Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ UDP Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ recvfrom с Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ 4096. Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ этими Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ какая-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Π°?

2. Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π² листингС 8.2, Ссли ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ послСдний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sendto (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠ»ΠΈ len) Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ clilen?

3. ΠžΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ запуститС сСрвСр UDP ΠΈΠ· листингов 8.1 ΠΈ 8.4, Π° Π·Π°Ρ‚Π΅ΠΌ β€” ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΠ· листингов 8.3 ΠΈ 8.4. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ сСрвСр Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС.

4. Π—апуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ping Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π·Π°Π΄Π°Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -i 60 (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 60 сСкунд; Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ систСмы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ»ΡŽΡ‡ I вмСсто i), ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -v (Π²Ρ‹Π²ΠΎΠ΄ всСх ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ICMP) ΠΈ Π·Π°Π΄Π°Π² адрСс Π·Π°ΠΊΠΎΠ»ΡŒΡ†ΠΎΠ²ΠΊΠΈ Π½Π° сСбя (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 127.0.0.1). ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ICMP нСдоступности ΠΏΠΎΡ€Ρ‚Π°, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡƒΡŽ ΡƒΠ·Π»ΠΎΠΌ сСрвСра. Π—Π°Ρ‚Π΅ΠΌ запуститС наш ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ упраТнСния Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π·Π°Π΄Π°Π² IP-адрСс Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ сСрвСр. Π§Ρ‚ΠΎ происходит?

5. Π Π°ΡΡΠΌΠ°Ρ‚ривая рис. 8.3, ΠΌΡ‹ сказали, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ присоСдинСнный сокСт TCP ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный Π±ΡƒΡ„Π΅Ρ€ ΠΏΡ€ΠΈΠ΅ΠΌΠ°. Как Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ сокСта свой собствСнный Π±ΡƒΡ„Π΅Ρ€ ΠΏΡ€ΠΈΠ΅ΠΌΠ°?

6. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ sock (см. Ρ€Π°Π·Π΄Π΅Π» Π’.3) ΠΈ Ρ‚Π°ΠΊΠΎΠ΅ срСдство, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, tcpdump (см. Ρ€Π°Π·Π΄Π΅Π» Π’.5), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° 8.10: Ссли ΠΊΠ»ΠΈΠ΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ bind связываСт IP-адрСс со своим сокСтом, Π½ΠΎ отправляСт Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΡƒ, ΠΈΡΡ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ интСрфСйса, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΠ° содСрТит IP-адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» связан с сокСтом, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ Π½Π΅ соотвСтствуСт исходящСму интСрфСйсу.

7. ΠžΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° 8.13 ΠΈ запуститС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ сСрвСр Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ…. ΠŸΠΎΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ printf Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΠ° записываСтся Π² сокСт. Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ Π»ΠΈ это ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²? ΠŸΠΎΡ‡Π΅ΠΌΡƒ? Π’Ρ‹Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ printf ΠΈΠ· сСрвСра ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΠ° читаСтся ΠΈΠ· сокСта. Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ Π»ΠΈ это ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²? ΠŸΠΎΡ‡Π΅ΠΌΡƒ?

8. ΠšΠ°ΠΊΠΎΠ²Π° наибольшая Π΄Π»ΠΈΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sendto для сокСта UDP/IPv4, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ²ΠΎ наибольшСС количСство Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΡƒ UDP/IPv4? Π§Ρ‚ΠΎ измСняСтся Π² случаС UDP/IPv6?

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ листинг 8.4, с Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΡƒ UDP максимального Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈ вывСсти число Π±Π°ΠΉΡ‚ΠΎΠ², Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ recvfrom.

9. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ листинг 8.15 Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ соотвСтствовал RFC 1122: для сокСта UDP слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ IP_RECVDSTADDR.

Π“Π»Π°Π²Π° 9

ΠžΡΠ½ΠΎΠ²Ρ‹ сокСтов SCTP

9.1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

SCTP β€” Π½ΠΎΠ²Ρ‹ΠΉ транспортный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», принятый IETF Π² качСствС стандарта Π² 2000 Π³ΠΎΠ΄Ρƒ. (Для сравнСния, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» TCP Π±Ρ‹Π» стандартизован Π² 1981 Π³ΠΎΠ΄Ρƒ.) Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ SCTP проСктировался с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ потрСбностСй растущСго Ρ€Ρ‹Π½ΠΊΠ° IP-Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈΠΈ, ΠΈ прСдназначался, Π² частности, для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠ³ΠΎ сигнала Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ВрСбования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ SCTP, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² RFC 2719 [84]. SCTP β€” Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ сообщСний, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ многоинтСрфСйсного ΡƒΠ·Π»Π° Π½Π° транспортном ΡƒΡ€ΠΎΠ²Π½Π΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΎΠ½ распространСн Π½Π΅ Ρ‚Π°ΠΊ ΡˆΠΈΡ€ΠΎΠΊΠΎ, ΠΊΠ°ΠΊ TCP ΠΈ UDP, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ особСнностями, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Ρ‹Π±ΠΎΡ€Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ SCTP ΠΈ TCP Π±ΡƒΠ΄Π΅Ρ‚ посвящСн Ρ€Π°Π·Π΄Π΅Π» 23.12.

НСсмотря Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ SCTP ΠΈ TCP, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния прилоТСния интСрфСйс SCTP Ρ‚ΠΈΠΏΠ° Β«ΠΎΠ΄ΠΈΠ½-ΠΊ-ΠΎΠ΄Π½ΠΎΠΌΡƒΒ» ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ интСрфСйса TCP. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ пСрСнос ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ достаточно Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ пСрСносС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SCTP ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ нСзадСйствованными. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ‚ΠΈΠΏΠ° Β«ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌΒ» задСйствуСт эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«Π½Π° всю ΠΊΠ°Ρ‚ΡƒΡˆΠΊΡƒΒ», Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»ΠΊΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Новый интСрфСйс рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π² расчСтС Π½Π° SCTP.

Π­Ρ‚Π° Π³Π»Π°Π²Π° описываСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнтарныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сокСтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с SCTP. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ опишСм Π΄Π²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ интСрфСйса, доступныС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ прилоТСния. Π’ Π³Π»Π°Π²Π΅ 10 ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ эхо-сСрвСра, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ модСль Β«ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌΒ». ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ опишСм Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для SCTP. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ shutdown ΠΈ отличиям ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ассоциации SCTP ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ соСдинСния TCP. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ 23.4 ΠΌΡ‹ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ для оповСщСния прилоТСния ΠΎ Π²Π°ΠΆΠ½Ρ‹Ρ… событиях, связанных с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ (ΠΏΠΎΠΌΠΈΠΌΠΎ прибытия Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…).

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ SCTP Π΅Ρ‰Π΅ Π½Π΅ стабилизировался ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΡΡ‚ΡŒΡŽ этого ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания этой ΠΊΠ½ΠΈΠ³ΠΈ описываСмыС Π² Π½Π΅ΠΉ интСрфСйсы ΡΡ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΌΠΈΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ распространСны Ρ‚Π°ΠΊ ΡˆΠΈΡ€ΠΎΠΊΠΎ, ΠΊΠ°ΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ части API сокСтов. Π’Π΅, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с прилоТСниями, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° SCTP, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ обновлСния для ядра ΠΈΠ»ΠΈ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π² Ρ†Π΅Π»ΠΎΠΌ, Π° прилоТСния, рассчитанныС Π½Π° повсСмСстноС использованиС, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с TCP, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» SCTP ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ доступСн Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π½Π° всСх систСмах.

9.2. МодСли интСрфСйса

Π‘ΠΎΠΊΠ΅Ρ‚Ρ‹ SCTP Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²: Β«ΠΎΠ΄ΠΈΠ½-ΠΊ-ΠΎΠ΄Π½ΠΎΠΌΡƒΒ» ΠΈ Β«ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌΒ». Π‘ΠΎΠΊΠ΅Ρ‚Ρƒ Ρ‚ΠΈΠΏΠ° Β«ΠΎΠ΄ΠΈΠ½-ΠΊ-ΠΎΠ΄Π½ΠΎΠΌΡƒΒ» всСгда сопоставляСтся Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½Π° ассоциация SCTP. ВспомнитС, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 2.5 ΠΌΡ‹ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ассоциация являСтся соСдинСниСм ΠΌΠ΅ΠΆΠ΄Ρƒ двумя систСмами, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… IP-адрСсов, Ссли хотя Π±Ρ‹ ΠΎΠ΄Π½Π° ΠΈΠ· систСм ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько интСрфСйсов. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ сокСтом ΠΈ ассоциациСй SCTP такая ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ сокСтом ΠΈ соСдинСниСм TCP. Π‘ΠΎΠΊΠ΅Ρ‚Ρƒ Ρ‚ΠΈΠΏΠ° Β«ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌΒ» ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ассоциаций. Π’ΠΎ ΠΆΠ΅ самоС ΠΈΠΌΠ΅Π΅Ρ‚ мСсто ΠΈ Π² UDP, Π³Π΄Π΅ сокСт, привязанный ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ UDP, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Π’Ρ‹Π±ΠΎΡ€ интСрфСйса ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ прилоТСния Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²:

β–  Ρ‚ΠΈΠΏ сСрвСра (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ);

β–  ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ дСскрипторов сокСтов, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сСрвСр;

β–  Π²Π°ΠΆΠ½ΠΎ Π»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния, Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ (ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΌ) ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ чСтырСхэтапного рукопоТатия;

β–  Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ количСства соСдинСний сущСствуСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ состоянии.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

Когда API сокСтов для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° SCTP Π΅Ρ‰Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ разрабатывался, сокСты Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π½Π°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π§ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ со старой Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ исходном ΠΊΠΎΠ΄Π΅. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ сокСт Ρ‚ΠΈΠΏΠ° Β«ΠΎΠ΄ΠΈΠ½-ΠΊ-ΠΎΠ΄Π½ΠΎΠΌΡƒΒ» назывался сокСтом Ρ‚ΠΈΠΏΠ° TCP (TCP-style socket), Π° сокСт Ρ‚ΠΈΠΏΠ° Β«ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌΒ» β€” сокСтом Ρ‚ΠΈΠΏΠ° UDP (UDP-style socket).