uid=1007(andy) gid=1007(andy) groups=1007(andy), 0(wheel)
ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΡΠ΅ΡΠ²Π΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π° ΠΊΠ»ΠΈΠ΅Π½Ρ Π² Π΄ΡΡΠ³ΠΎΠΌ, ΡΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄.
freebsd % unixstrserv02
PID of sender = 26881
real user ID = 1007
real group ID = 1007
effective user ID = 1007
2 groups: 1007 0
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ id.
15.9. Π Π΅Π·ΡΠΌΠ΅
ΠΠΎΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΎΠΊΠ΅ΡΡ Unix ΡΠ²Π»ΡΡΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ IPC, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·Π»Π΅. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ² Unix ΠΏΠ΅ΡΠ΅Π΄ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ IPC ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ API ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ² Unix ΠΏΠ΅ΡΠ΅Π΄ TCP, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·Π»Π΅, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ² Unix ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ TCP Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ .
ΠΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π½Π°Ρ ΡΡ ΠΎ-ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΡΡ ΠΎ-ΠΊΠ»ΠΈΠ΅Π½Ρ TCP ΠΈ UDP Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² Unix, ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ bind ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΌ ΡΠΎΠΊΠ΅ΡΠΎΠΌ UDP ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠ²Π΅ΡΡ UDP Π±ΡΠ»ΠΎ ΠΊΡΠ΄Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ²Π΅ΡΡ.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΌΠΈΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·Π»Π΅, β ΡΡΠΎ ΠΌΠΎΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ Unix. ΠΡ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΠΎΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 15.7. Π ΡΠ°Π·Π΄Π΅Π»Π΅ 28.7 ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ, Π° Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 30.9 β Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌΡ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Unix Π²ΡΠ·ΠΎΠ²Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ unlink ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ bind?
2. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Unix ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π½Π΅ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ unlink ΡΠ²ΠΎΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ, Π° ΠΊΠ»ΠΈΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ connect ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΡ Π·Π°Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ?
3. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π»ΠΈΡΡΠΈΠ½Π³ 11.5 ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ Π°Π΄ΡΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄Π½ΠΈΠΊΠ°, Π²ΡΠ·ΡΠ²Π°Π»Π°ΡΡ Π±Ρ ΡΡΠ½ΠΊΡΠΈΡ sleep(5), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΡΠ»ΠΎ Π±Π°ΠΉΡΠΎΠ², Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ read Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π»ΠΈΡΡΠΈΠ½Π³ 11.8 ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, Π²ΡΠ·ΡΠ²Π°Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ write. (ΠΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ 1.5.) ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·Π»Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ TCP. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π±Π°ΠΉΡΠΎΠ² ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ read?
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·Π»Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Ρ Unix. ΠΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π»ΠΈ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ?
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ write Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ send ΠΈ Π·Π°Π΄Π°ΠΉΡΠ΅ ΡΠ»Π°Π³ MSG_EOR (ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΠ΅ΡΠΊΠ»ΠΈ-ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ). ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·Π»Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Ρ Unix. ΠΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π»ΠΈ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ?
4. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π». 4.6. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² β ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΊΠ°Π½Π°Π» ΠΈ Π·Π°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ fork ΡΠ°Π·Π²Π΅ΡΠ²ΠΈΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΡ. Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΈΠΊΠ» for, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ backlog ΠΎΡ 0 Π΄ΠΎ 14. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΠΈΠΊΠ»Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ½Π°ΡΠ°Π»Π° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ backlog Π² ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΊΠ°Π½Π°Π». ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΈΡΠ°Π΅Ρ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠΎΠΊΠ΅Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ Π·Π°ΠΊΠΎΠ»ΡΡΠΎΠ²ΠΊΠΈ, ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ backlog ΡΡΠΈΡΠ°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π΅Π»Π°Π΅Ρ Π·Π°ΠΏΠΈΡΡ Π² ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΊΠ°Π½Π°Π» ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎ ΡΠ²ΠΎΠ΅ΠΉ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ. ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π·Π°Π΄Π°Π² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ alarm ΡΠ°Π²Π½ΡΠΌ 2 Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ backlog Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ connect Π·Π°Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ, ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΅ΡΠ΅ ΡΠ°Π· ΡΠ΅Π³ΠΌΠ΅Π½Ρ SYN. ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ accept, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ. ΠΠΎΠ³Π΄Π° ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° (Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ alarm, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ 2 Ρ), ΠΏΠΎ ΡΡΠ΅ΡΡΠΈΠΊΡ ΡΠΈΠΊΠ»Π° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΏΠΎ ΡΡΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΡ connect ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ backlog. ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠΊΠ΅ΡΡ ΠΈ ΠΏΠΈΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΊΠ°Π½Π°Π» Π΄Π»Ρ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΠ³Π΄Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ½ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠΎΠΊΠ΅Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ, Π·Π°Π½ΠΎΠ²ΠΎ Π½Π°ΡΠΈΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.
5. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π»ΠΈ ΠΏΡΠΎΠΏΡΡΠΊ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ bind Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 15.6 ΠΎΡΠΈΠ±ΠΊΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ»Π°Π²Π° 16
ΠΠ΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄
16.1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠΊΠ΅ΡΡ Π±Π»ΠΎΠΊΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π½Π° ΡΠΎΠΊΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² Β«ΡΠΏΡΡΠ΅Π΅Β» ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΆΠ΄Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΊΠ΅ΡΠΎΠ², ΡΠΏΠΎΡΠΎΠ±Π½ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π° ΡΠ΅ΡΡΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ.
1. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°: ΡΡΠ½ΠΊΡΠΈΠΈ read, readv, recv, recvfrom ΠΈ recvmsg. ΠΡΠ»ΠΈ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π²Π²ΠΎΠ΄Π° Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅ΡΠ° TCP (Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΎΠΊΠ΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΌ) ΠΈ Π² ΠΏΡΠΈΠ΅ΠΌΠ½ΠΎΠΌ Π±ΡΡΠ΅ΡΠ΅ ΡΠΎΠΊΠ΅ΡΠ° ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎ ΡΠΎΠΊΠ΅Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π² ΡΠΏΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΈΠ΄ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Π΄Π°Π½Π½ΡΠ΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ TCP ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΡ Π²ΡΠΉΠ΄Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ΄Π΅Ρ Β«Ρ ΠΎΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ- Π½ΠΈΠ±ΡΠ΄ΡΒ» Π΄Π°Π½Π½ΡΡ : ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ Π±Π°ΠΉΡ, Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΡΠ΅Π»ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ TCP. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΆΠ΄Π°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ , ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ readn (ΡΠΌ. Π»ΠΈΡΡΠΈΠ½Π³ 3.9) ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π΅ΠΌ ΡΠ»Π°Π³ MSG_WAITALL (ΡΠΌ. ΡΠ°Π±Π». 14.1). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ UDP ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌ, ΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΡΠΉ Π±ΡΡΠ΅Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅ΡΠ° UDP ΠΏΡΡΡ, ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π² Π½Π΅ΠΌ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΈΠ΄Π΅Ρ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΠ° UDP.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅ΡΠ° ΠΏΡΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π° (ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 1 Π±Π°ΠΉΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠΎΠΊΠ΅ΡΠ° TCP ΠΈΠ»ΠΈ ΡΠ΅Π»Π°Ρ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΠΎΠΊΠ΅ΡΠ° UDP) Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ EWOULDBLOCK.
2. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π°: ΡΡΠ½ΠΊΡΠΈΠΈ write, writev, send, sendto, ΠΈ sendmsg. Π ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠΎΠΊΠ΅ΡΠ° TCP Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 2.9 ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΡΠ΄ΡΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π±ΡΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΊΠ΅ΡΠ°. ΠΡΠ»ΠΈ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅ΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ΅ΡΡΠ° Π² Π±ΡΡΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΌΠ΅ΡΡΠΎ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡΡ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅ΡΠ° TCP ΠΏΡΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ΅ ΠΌΠ΅ΡΡΠ° Π² Π±ΡΡΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ EWOULDBLOCK. ΠΡΠ»ΠΈ Π² Π±ΡΡΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΊΠ΅ΡΠ° Π΅ΡΡΡ ΠΌΠ΅ΡΡΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΄ΡΠΎ ΡΠΌΠΎΠ³Π»ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² Π±ΡΡΠ΅Ρ (ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ½ΡΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ β short count).
Π ΡΠ°Π·Π΄Π΅Π»Π΅ 2.9 ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π±ΡΡΠ΅ΡΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ UDP Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. Π―Π΄ΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΠΈΡ Π²Π½ΠΈΠ· ΠΏΠΎ ΡΡΠ΅ΠΊΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ UDP ΠΈ IP. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠΌ ΡΠΎΠΊΠ΅ΡΠ΅ UDP (ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ.
3. ΠΡΠΈΠ΅ΠΌ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ: ΡΡΠ½ΠΊΡΠΈΡ accept. ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ accept Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅ΡΠ° ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ accept Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅ΡΠ° ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° EWOULDBLOCK.
4. ΠΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ: ΡΡΠ½ΠΊΡΠΈΡ connect Π΄Π»Ρ TCP. (ΠΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ connect ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ UDP, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Β«ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎΒ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ β ΠΎΠ½Π° Π»ΠΈΡΡ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΡΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ IP-Π°Π΄ΡΠ΅Ρ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΡΠ° ΡΠΎΠ±Π΅ΡΠ΅Π΄Π½ΠΈΠΊΠ°.) Π ΡΠ°Π·Π΄Π΅Π»Π΅ 2.5 ΠΌΡ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ TCP Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ΅Ρ ΡΡΠ°ΠΏΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠΏΠΎΠΆΠ°ΡΠΈΠ΅ ΠΈ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ connect Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ACK ΠΈΠ»ΠΈ SYN. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ TCP connect Π²ΡΠ΅Π³Π΄Π° Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π½Π° Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ (RTT) ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ.
ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ connect Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅ΡΠ° TCP ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΡΡΠ΅Ρ ΡΡΠ°ΠΏΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠΏΠΎΠΆΠ°ΡΠΈΡ TCP), Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° EINPROGRESS. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΎΡΠΈΠ±ΠΊΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠΉ Π² ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΡΡ . Π’Π°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΠ·Π»Π΅, ΡΡΠΎ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ connect ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ. ΠΡΠΈΠΌΠ΅Ρ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ connect ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 16.3.