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

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

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

β–  sinfo_timetolive опрСдСляСт врСмя ΠΆΠΈΠ·Π½ΠΈ отправляСмых сообщСний. ПолС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стСком SCTP для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ сообщСния, Π·Π°Π΄Π΅Ρ€ΠΆΠ°Π²ΡˆΠΈΠ΅ΡΡ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π½Π° слишком большой срок ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π½ΠΈ Ρ€Π°Π·Ρƒ. Если ΠΎΠ±Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€Π΅ΠΆΠΈΠΌ частичной надСТности, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ влияСт ΠΈ Π½Π° количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, ограничивая ΠΈΡ… срок;

β–  sinfo_tsn игнорируСтся ΠΏΡ€ΠΈ установкС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ сообщСний Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ recvmsg ΠΈΠ»ΠΈ sctp_recvmsg это ΠΏΠΎΠ»Π΅ содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ транспортного ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° (transport sequence number, TSN), ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠ΅ собСсСдником Π² ΠΏΠΎΡ€Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… SCTP;

β–  sinfo_cumtsn игнорируСтся ΠΏΡ€ΠΈ установкС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ сообщСний Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ recvmsg ΠΈΠ»ΠΈ sctp_recvmsg это ΠΏΠΎΠ»Π΅ содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ кумулятивного транспортного ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°, вычислСнного Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ стСком SCTP для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ собСсСдника;

β–  sinfo_assoc_id содСрТит ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ассоциации, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ трСбуСтся установка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для сокСтов Ρ‚ΠΈΠΏΠ° Β«ΠΎΠ΄ΠΈΠ½-ΠΊ-ΠΎΠ΄Π½ΠΎΠΌΡƒΒ» это ΠΏΠΎΠ»Π΅ игнорируСтся.


Π’Π°Π±Π»ΠΈΡ†Π° 7.5. ДопустимыС значСния Ρ„Π»Π°Π³ΠΎΠ² SCTP (ΠΏΠΎΠ»Π΅ sinfo_flags)

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° ОписаниС MSG_ABORT Π’Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ассоциации MSG_ADDR_OVER ЗаставляСт SCTP ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ адрСс вмСсто адрСса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ MSG_EOF ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ассоциации послС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния MSG_PR_BUFFER Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ частичной надСТности Π² зависимости ΠΎΡ‚ Π±ΡƒΡ„Π΅Ρ€Π° (Ссли ΠΎΠ½Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ поддСрТиваСтся) MSG_PR_SCTP Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ частичной надСТности доставки для Π΄Π°Π½Π½ΠΎΠ³ΠΎ сообщСния (Ссли поддСрТиваСтся) MSG_UNORDERED Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ сообщСниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сСрвис нСупорядочСнной доставки

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° сообщСниС отправляСтся Π±Π΅Π· собствСнной структуры sctp_sndrcvinfo. Если ΠΆΠ΅ эта структура добавляСтся Π²ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ сообщСний, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² Π½Π΅ΠΉ значСния ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ SCTP_DEFAULT_SEND_PARAM ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для получСния Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sctp_opt_info.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сокСта SCTP_DISАВLE_FRAGМENTS

Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ SCTP Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ всС сообщСния, Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚ SCTP, разбивая ΠΈΡ… Π½Π° нСсколько ΠΏΠΎΡ€Ρ†ΠΈΠΉ Ρ‚ΠΈΠΏΠ° DATA. Установка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° SCTP_DISABLE_FRAGMENTS ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ отправитСля. Если сообщСниС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π° фрагмСнтация ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°, SCTP Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ EMSGSIZE ΠΈ Π½Π΅ отсылаСт сообщСниС.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прилоТСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ сообщСний, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ любоС ΠΈΠ· этих сообщСний ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² IP-ΠΏΠ°ΠΊΠ΅Ρ‚. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, обСспСчив Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° сообщСний.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сокСта SCTP_EVENTS

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сокСта позволяСт Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ, Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ состояниС подписки Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ увСдомлСния SCTP. Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ SCTP прСдставляСт собой сообщСниС, отправляСмоС стСком SCTP ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ считываСтся ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΏΠΎΠ»Π΅ msg_flags ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ recvmsg Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ MSG_NOTIFICATION. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ ΠΊ использованию recvmsg ΠΈΠ»ΠΈ sctp_recvmsg, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ подписку Π½Π° события. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ событиями восьми Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ структуру sctp_event_subscribe. НулСвоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ соотвСтствуСт ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ подписки, Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π° β€” Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° sctp_event_subscribe опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

struct sctp_event_subscribe {

 u_int8_t sctp_data_io_event;

 u_int8_t sctp_association_event;

 u_int8_t sctp_address_event;

 u_int8_t sctp_send_failure_event;

 u_int8_t sctp_peer_error_event;

 u_int8_t sctp_shutdown_event;

 u_int8_t sctp_partial_delivery_event;

 u_int8_t sctp_adaption_layer_event;

};

Π’ Ρ‚Π°Π±Π». 7.6 описано Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… событий. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± увСдомлСниях Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 9.14.


Π’Π°Π±Π»ΠΈΡ†Π° 7.6. Бобытия SCTP

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° ОписаниС sctp_data_io_event Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ доставки sctp_sndrcvinfo с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ recvmsg sctp_association_event Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎ состоянии ассоциации sctp_address_event Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± адрСсах sctp_send_failure_event Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… доставки сообщСний sctp_peer_error_event Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° собСсСдника sctp_shutdown_event Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ассоциации sctp_partial_delivery_event Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎ частичной доставкС sctp_adaption_layer_event Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ уровня-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сокСта SCTP_GET_PEER_ADDR_INFO

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ собСсСдникС, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ°, сглаТСнныС значСния RTT ΠΈ MTU. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ адрСсу собСсСдника. Π’Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ заполняСт ΠΏΠΎΠ»Π΅ spinfo_address структуры sctp_paddrinfo ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΌ Π΅Π³ΠΎ адрСсом собСсСдника. Для максимальной пСрСносимости рСкомСндуСтся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ sctp_opt_info, Π° Π½Π΅ getsockopt. Π€ΠΎΡ€ΠΌΠ°Ρ‚ структуры sctp_paddrinfo описан Π½ΠΈΠΆΠ΅:

struct sctp_paddrinfo {

 sctp_assoc_t spinfo_assoc_id;

 struct sockaddr_storage spinfo_address;

 int32_t spinfo_state;

 uint32_t spinfo_cwnd;

 u_int32_t spinfo_srtt;

 u_int32_t spinfo_rto;

 u_int32_t spinfo_mtu;

};

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ свСдСния:

β–  spinfo_assoc_id содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ ассоциации, которая доставляСтся Ρ‚Π°ΠΊΠΆΠ΅ Π² ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΈ ΠΎΠ± установкС ассоциации (SCTP_COMM_UP). Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ассоциации ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для обращСния ΠΊ Π½Π΅ΠΉ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ SCTP;

β–  spinfo_address позволяСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ адрСс собСсСдника, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свСдСния. По Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠ· getsockopt ΠΈΠ»ΠΈ sctp_opt_info Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ структуры Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ;

β–  spinfo_state ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Ρ‚Π°Π±Π». 7.7).


Π’Π°Π±Π»ΠΈΡ†Π° 7.7. Бостояния адрСса собСсСдника SCTP

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° ОписаниС SCTP_ACTIVE АдрСс Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΈ доступСн SCTP_INACTIVE Π’ настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ адрСс нСдоступСн SCTP_ADDR_UNCONFIRMED Доставка Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Ρ‹Ρ… сообщСний Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ адрСс Π½Π΅ Π±Ρ‹Π»Π° ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π°

НСподтвСрТдСнным считаСтся адрСс, пСрСчислСнный собСсСдником Π² спискС Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ SCTP. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ адрСса трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Ρ‹Π΅ сообщСния Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Ρ‹. Для Π½Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ адрСса Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ (RTO). Активными ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ адрСса, доступныС для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

β–  spinfo_cwnd Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° для Π΄Π°Π½Π½ΠΎΠ³ΠΎ адрСса. ОписаниС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ расчСта ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° cwnd приводится Π² [117, с. 177];

β–  spinfo_srtt Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ сглаТСнного RTT для Π΄Π°Π½Π½ΠΎΠ³ΠΎ адрСса;

β–  spinfo_rto Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ адрСса;

β–  spinfo_mtu Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ‚Ρ€Π°Π½ΡΠΏΠΎΡ€Ρ‚Π½ΡƒΡŽ MTU, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для получСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ассоциации ΠΏΠΎ структурС с IP-адрСсом собСсСдника. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ продСмонстрировано Π² Π³Π»Π°Π²Π΅ 23. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх адрСсов собСсСдника с нСсколькими интСрфСйсами ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΈΠ· Π½ΠΈΡ… Π² качСствС адрСса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. НаконСц, всС эти свСдСния ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для вСдСния ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.