Sobes.tech
Middle

TCP терезеси жөнүндө эмне билесиз?

sobes.tech AI

AIден жооп

TCP терезеси (жеки кабыл алуу терезеси) TCP протоколунда агымдуулукту башкаруу механизми болуп саналат. Ал жөнөтүүчүгө алгач кабыл алгандан кийин кабыл алуудан (ACK) мурун жибере турган маалыматтардын көлөмүн аныктайт. Терезе өлчөмү кабыл алгычтын кабыл алуу буферинде бош орундун көлөмүн көрсөтөт.

TCP терезесин колдонуу максаттары:

  • Бош орунду ашыкча толтуруунун алдын алуу: кабыл алгыч, жөнөтүүчүгө анын учурдагы кабыл алуу буферинин өлчөмүн билдирет, ошондуктан ал өтө көп маалымат жиберүүдөн сактайт.
  • Агымды башкаруу: Терезе өлчөмүнүн динамикалык өзгөрүшү тармак жүктөмүнө жана кабыл алгычтын иштөө жөндөмүнө ылайык маалыматтарды өткөрүү ылдамдыгын жөнгө салууга мүмкүндүк берет.

Ишке ашыруу механизми:

  1. кабыл алгыч, жөнөтүүчүгө анын кабыл алуу терезесинин өлчөмү (Window Size) тууралуу маалымат берген сегмент жиберет.
  2. жөнөтүүчү, белгиленген терезе өлчөмүнөн ашпаган маалыматтарды жибере алат.
  3. Маалыматтарды кабыл алгандан кийин, кабыл алгыч терезе өлчөмүн азайтат, буфердеги бош орундун азайганын чагылдырып.
  4. кабыл алгыч, маалыматтарды кабыл алганын тастыктаган ACK сегменттерин жиберет жана актуалдуу кабыл алуу терезесинин өлчөмүн камтыйт.
  5. ACK алгандан кийин, жөнөтүүчү жаңыртылган терезе өлчөмүнө негизделген кийинки маалымат бөлүгүн жибере алат.

Динамикалык өзгөртүү терезе өлчөмүн оптималдаштырып, өткөрүмдүүлүктү жогорулатууга жана буфердин ашыкча жүктөлүшүнөн келип чыккан пакет жоготуу коркунучун алдын алууга мүмкүндүк берет.

Мисал:

Кабыл алгыч 65535 байт өлчөмүндөгү терезе жөнүндө кабарлайт. Жөнөтүүчү 65535 байтка чейин маалымат жибере алат. 10000 байт кабыл алгандан кийин, кабыл алгыч жаңы терезе өлчөмүн 55535 байт деп билдирет.

// Жөнөкөй мисал (чын код эмес, тек принципти көрсөтүү)
struct tcp_header {
    // ... башка талаалар
    uint16_t window_size; // кабыл алуу терезесинин өлчөмү байтта
    // ...
};