TCP-nin gizli silahı: Şəbəkə axınının idarəsi və şəbəkə tıkma nəzarəti

TCP etibarlılıq nəqliyyatı
Hamımız TCP protokolu ilə etibarlı bir nəqliyyat protokolu kimi tanışıq, ancaq nəqliyyatın etibarlılığını necə təmin edir?

Etibarlı ötürmə nail olmaq üçün bir çox amillər, məsələn, məlumat korrupsioniyası, itkisi, təkrarlanması və sifarişdənkənar shards kimi nəzərə alınmalıdır. Bu problemlər həll edilə bilməzsə, etibarlı ötürmə əldə edilə bilməz.

Buna görə, TCP, ardıcıllıq nömrəsi kimi mexanizmləri işə götürür, təsdiqləmə, idarəetmə, əlaqə idarəetmə və etibarlı ötürmə əldə etmək üçün pəncərə nəzarəti kimi mexanizmlər işləyir.

Bu sənəddə TCP-nin sürüşmə pəncərəsinə, axın idarəsinə və tıxac nəzarəti üzərində dayanacağıq. Retransmission mexanizmi növbəti hissədə ayrıca əhatə olunur.

Şəbəkə axınına nəzarət
Şəbəkə axını nəzarəti və ya şəbəkə trafikinə nəzarət əslində istehsalçılar və istehlakçılar arasındakı incə əlaqənin təzahürüdir. Yəqin ki, bu ssenariyə işdə və ya müsahibələrdə çox rastlaşmısınız. İstehsalçının istehlakçının istehlak qabiliyyətini çox həddindən artıq dərəcədən çox hissi keçirməsi, bu, növbənin qeyri-müəyyən artmasına səbəb olacaqdır. Daha ciddi bir vəziyyətdə, dovşanmq mesajları çox yığdıqda, bütün mq serverin performans pozulmasına səbəb ola bilər. Eyni şey TCP üçün də var; Dəyişməz qalsa, şəbəkəyə çox sayda mesaj veriləcək və istehlakçılar güclərini aşdı, istehsalçılar şəbəkənin performansına çox təsir edəcək dublikat mesajları göndərməyə davam edəcəklər.

Bu fenomenə müraciət etmək üçün, TCP, axın idarəsi kimi tanınan qəbuledicinin həqiqi qəbul gücü əsasında göndərilən məlumatların miqdarını idarə etmək üçün bir mexanizm təqdim edir. Alıcı alıcı bir pəncərə saxlayır, göndərici isə göndərmə pəncərəsini saxlayır. Qeyd etmək lazımdır ki, bu pəncərələr yalnız bir TCP bağlantısı üçündür və bütün bağlantılar bir pəncərə paylaşmır.

TCP, bir alıcı pəncərə üçün dəyişən istifadə edərək axın nəzarəti təmin edir. Qəbul pəncərəsi, göndərənə nə qədər önbelleğin yerinin hələ də əlaməti verir. Göndərən qəbuledicinin faktiki qəbul gücünə görə göndərilən məlumatların miqdarını idarə edir.

Alıcı ev sahibi qəbul edə biləcəyi məlumatların ölçüsünün göndəricisini xəbərdar edir və göndərən bu həddə qədər göndərir. Bu hədd pəncərə ölçüsüdür, TCP başlığını xatırlayın? Alıcının sayını bildirmək və ya almağa hazır olan baytların sayını göstərmək üçün istifadə olunan bir pəncərə sahəsi var.

Göndərən ev sahibi vaxtaşırı alıcının ev sahibi hələ məlumatları qəbul edə bilməyəcəyini aşkar etmək üçün istifadə olunan bir pəncərə zonğası paketi göndərəcəkdir. Alıcı tamponu daşma təhlükəsi olduqda, pəncərə ölçüsü göndərənə göndərilən məlumatların miqdarını idarə etmək üçün göndəriciyə təlimat vermək üçün daha kiçik bir dəyəri təyin olunur.

Budur bir şəbəkə axını idarəetmə diaqramı:

Trafikə nəzarət

Şəbəkə tıxanma nəzarəti
Tıxanma idarəsini tətbiq etməzdən əvvəl, alıcı pəncərədən və göndərmə pəncərəsindən əlavə olaraq, göndəricinin alınan pəncərəyə məlumat göndərməyə başladığını həll etmək üçün istifadə olunan bir tıxanma pəncərəsi də olduğunu başa düşməliyik. Buna görə tıxanma pəncərəsi də TCP göndərən tərəfindən saxlanılır. Məlumat göndərmək üçün nə qədər məlumatın göndərilməsinə qərar vermək üçün bir alqoritmə ehtiyacımız var, çünki çox az və ya çox məlumat göndərmək ideal deyil, bu da bir tıkma pəncərəsinin anlayışıdır.

Əvvəlki şəbəkə axınının nəzarətində iştirak etdiklərimiz, alıcının önbelleğini məlumatlarla dolduran göndərən, ancaq şəbəkədə nə baş verdiyini bilmirdik. Tipik olaraq, kompüter şəbəkələri ortaq bir mühitdədir. Nəticədə, digər aparıcılar arasında əlaqə səbəbindən şəbəkə tıkanıklığı ola bilər.

Şəbəkə sıxıldıqda, çox sayda paket göndərilsə, bu, paketlərin gecikməsi və itkisi kimi problemlərə səbəb ola bilər. Bu nöqtədə, TCP məlumatları geri qaytaracaq, ancaq retransmission şəbəkədəki yükü artıracaq, nəticədə daha böyük gecikmələr və daha çox paket itkisi ilə nəticələnir. Bu, pis bir dövrəyə girib böyüyə bilər.

Beləliklə, TCP şəbəkədə baş verənlərə məhəl qoymur. Şəbəkə sıxıldıqda, TCP göndərdiyi məlumatların miqdarını azaltmaqla özünü qurban verir.

Buna görə də, tıxanma nəzarəti təklif olunur ki, bu da bütün şəbəkəni göndərəndən məlumatlarla doldurmamağı hədəfləyir. Göndərənin göndərdiyi məlumatların miqdarını tənzimləmək üçün TCP, tıxanma pəncərəsi adlı bir konsepsiyanı müəyyənləşdirir. Tıxac nəzarəti alqoritmi, göndərən tərəfindən göndərilən məlumatların miqdarına nəzarət etmək üçün şəbəkənin tıxanma dərəcəsinə uyğun olaraq tıxanma pəncərəsinin ölçüsünü tənzimləyəcəkdir.

Bir tıxanma pəncərəsi nədir? Bu göndərmə pəncərəsi ilə nə etmək lazımdır?

Tıxanma pəncərəsi göndərənin göndərdiyi məlumatların miqdarını təyin edən göndərən tərəfindən saxlanılan bir dövlət dəyişəndir. Tıxanma pəncərəsi şəbəkənin tıkma səviyyəsinə görə dinamik olaraq dəyişir.

Göndərən pəncərəsi, qəbuledicinin ala biləcəyi məlumatların miqdarını göstərən göndərən və qəbuledici arasında pəncərə ölçüsü ilə razılaşdırılmışdır. Tıxanma pəncərəsi və göndərmə pəncərəsi əlaqəlidir; Göndərən pəncərəsi ümumiyyətlə tıkanıklığın minimumu və pəncərələrin alması, yəni SWND = Min (CWND, RWND).

Tıxanma pəncərəsi aşağıdakı kimi dəyişir:

Şəbəkədə tıxanma olmadıqda, yəni köçürmə müddəti baş vermə, tıxanma pəncərəsi artır.

Şəbəkədə tıxanma varsa, tıxanma pəncərəsi azalır.

Göndərən, ACK təsdiq paketinin müəyyən edilmiş müddətdə alınmadığını müşahidə edərək şəbəkənin tıxandığını müəyyənləşdirir. Göndərən göstərilən müddət ərzində ACK təsdiq paketini almasa, şəbəkənin sıxıldığı hesab olunur.

Tıxanma pəncərəsinə əlavə olaraq, TCP tıkanıklama nəzarət alqoritmini müzakirə etmək vaxtı gəldi. TCP tıxanma nəzarət alqoritmi üç əsas hissədən ibarətdir:

Yavaş başlanğıc:Əvvəlcə, CWND tıkanıklığı pəncərəsi nisbətən kiçikdir və göndərən tıxanma pəncərəsini tez bir zamanda şəbəkənin tutumuna tez uyğunlaşmaq üçün eksponent olaraq artırır.
Tıxanmanın qarşısını almaq:Tıxanma pəncərəsi müəyyən bir həddi aşdıqdan sonra, göndərən tıxanma pəncərəsinin böyümə sürətini yavaşlatmaq və şəbəkəni yükləməkdən çəkinin qarşısını almaq üçün son dərəcə bir şəkildə artırır.
Sürətli bərpa:Tıxanma baş verərsə, göndərən tıxanma pəncərəsini yarıya endirir və şəbəkə bərpa olunmasının yerini müəyyənləşdirilmiş dublikat acks vasitəsilə təyin etmək üçün sürətli bərpa vəziyyətinə girir və sonra tıkanıklığı pəncərəsini artırmağa davam edir.

Yavaş başlanğıc
Bir TCP bağlantısı qurulduqda, tıxanma pəncərəsi CWND əvvəlcə minimum MSS (maksimum seqment ölçüsü) dəyərinə qoyulur. Bu yolla, ilkin göndərmə dərəcəsi MSS / RTT bayt / saniyə haqqında. Həqiqi mövcud bant genişliyi ümumiyyətlə MSS / RTT-dən daha böyükdür, buna görə TCP yavaş başlanğıc yolu ilə əldə edilə bilən optimal göndərmə dərəcəsini tapmaq istəyir.

Yavaş-başlanğıc prosesində, tıxanma pəncərəsinin dəyəri 1 MSS-ə qədər başlanacaq və hər dəfə ötürülən paket seqmenti qəbul edildiyi təqdirdə, CWND dəyəri bir MSS tərəfindən artırılacaq, yəni CWND dəyəri 2 mss olacaqdır. Bundan sonra, bir paket seqmentinin hər müvəffəqiyyətli ötürülməsi üçün CWND dəyəri iki dəfə artmışdır və s. Xüsusi böyümə prosesi aşağıdakı rəqəmdə göstərilir.

 Şəbəkə tıxanma nəzarəti

Bununla birlikdə, göndərmə dərəcəsi həmişə böyüyə bilməz; Böyümə bir müddət bitməlidir. Beləliklə, göndərmə dərəcəsi nə vaxt artır? Yavaş-başlanğıc adətən bir neçə yoldan birində göndərmə dərəcəsinin artmasını başa vurur:

İlk yol, yavaş başlanğıc prosesi zamanı paket itkisinin vəziyyətidir. Bir paket itkisi baş verdikdə, TCP göndəricinin tıkanıklığı pəncərəsini CWND-yə 1-ə təyin edir və yavaş başlanğıc prosesi yenidən başladır. Bu anda, yavaş başlanğıc eşik ssthresh tətbiq olunur, ilkin dəyəri olan CWND dəyərinin yarısı olan, paket itkisi yaradan CWND-nin dəyərinin yarısıdır. Yəni, tıxanma aşkar edildikdə, Ssthresh dəyəri pəncərə dəyərinin yarısıdır.

İkinci yol, yavaş-yavaş eşik ssthresh dəyəri ilə birbaşa əlaqələndirməkdir. Ssthresh dəyəri tıxanma aşkar edildikdə pəncərə dəyərinin yarısıdır, paketi Ssthresh-dən daha böyük olduqda, hər iki dəfə artmaqda ola bilər. Buna görə, TCP-nin tıxanma nəzarəti rejiminə keçməsinə və yavaş-yavaş başlamağa səbəb olan Ssthresh-ə CWND-ni ssthresh-ə təyin etmək yaxşıdır.

Yavaş başlanğıcın son yolu, üç lazımsız akk aşkar edilsə, TCP sürətli bir köçürmə həyata keçirir və bərpa vəziyyətinə girir. (Üç ACK paketinin niyə olduğunu aydın deyilsə, bu, köçürmə mexanizmində ayrıca izah ediləcəkdir.)

Tıxanma qarşısını almaq
TCP tıxanma idarəsi vəziyyətinə girəndə, CWND tıxanma həddini ssthresh yarısına qoyulur. Bu o deməkdir ki, hər dəfə paket seqmentinin alındığı hər dəfə CWND dəyəri iki dəfə artırıla bilməz. Bunun əvəzinə, hər ötürülməsindən sonra CWND dəyərinin yalnız bir MSS (maksimum paket seqmenti uzunluğu) dəyəri olan nisbətən mühafizəkar bir yanaşma qəbul edilir. Məsələn, 10 paket seqmenti qəbul edilsə belə, CWND dəyəri yalnız bir MSS tərəfindən artacaqdır. Bu xətti bir böyümə modelidir və böyümə üçün yuxarı bir bağlıdır. Paket itkisi baş verdikdə, CWND dəyəri bir MSS-ə dəyişdirilir və Ssthresh-in dəyəri CWND-nin yarısına qoyulur. Və ya 3-ü lazımsız ACK cavabları qəbul edildikdə MSS-in böyüməsini də dayandıracaq. Üç lazımsız acks hələ də CWND dəyərini azaltdıqdan sonra hələ də alınırsa, Ssthresh dəyəri CWND dəyərinin yarısı və sürətli bərpa vəziyyətinin yarısında qeyd olunur.

Süpürgəçi
Sürətli bərpa vəziyyətində, tıxanma pəncərəsinin dəyəri olan CVND-nin dəyəri, hər biri aldığı lazımsız akk, yəni ardıcıllıqla gəlməyən Ack üçün bir mss tərəfindən artırılır. Bu, şəbəkədə ötürmə səmərəliliyini mümkün qədər yaxşılaşdırmaq üçün şəbəkədə uğurla ötürülən paket seqmentlərindən istifadə etməkdir.

İtirilmiş paket seqmentinin bir akku gəldikdə, TCP, CWND dəyərini azaldır və sonra tıkkarlıqdan qaçınma vəziyyətinə daxil olur. Bu, tıxanma pəncərəsinin ölçüsünü idarə etmək və şəbəkə tıkanıklığını daha da artırmaqdan çəkinin.

Tıxac nəzarət vəziyyətindən sonra bir fasilə baş verərsə, şəbəkə vəziyyəti daha ciddi olur və TCP, tıxanma qarşısını alma vəziyyətindən yavaş-yavaş başlanğıc vəziyyətinə köçürülür. Bu vəziyyətdə, tıxanma pəncərəsinin dəyəri 1 mss, maksimum paket seqment uzunluğu və yavaş başlanğıc eşik ssthresh dəyəri CWND-nin yarısına qoyulur. Bunun məqsədi şəbəkə ötürmə sürətini və şəbəkə tıkanıklığı dərəcəsini tarazlaşdırandan sonra tıxanma pəncərəsinin ölçüsünü yenidən artırmaqdır.

Xülasə
Etibarlı bir nəqliyyat protokolu olaraq, TCP ardıcıllıq nömrəsi, təsdiqləmə, retransmission idarəsi, əlaqə idarəetmə və pəncərə nəzarəti ilə etibarlı nəqliyyat həyata keçirir. Bunların arasında axın idarəsi mexanizmi, göndəricinin qəbuledicinin faktiki qəbuletmə qabiliyyətinə görə göndərilən məlumatların miqdarına nəzarət edir, bu da şəbəkə tıkanıklığı və performans pozuntusunun problemlərindən qaçırır. Tıxac nəzarəti mexanizmi, göndərən tərəfindən göndərilən məlumatların miqdarını tənzimləməklə şəbəkə tıxanmasının meydana gəlməsindən çəkinir. Tıxanma pəncərəsinin və göndərmə pəncərəsinin anlayışları bir-biri ilə əlaqəlidir və göndərəndəki məlumatların miqdarı, tıxanma pəncərəsinin ölçüsünü dinamik şəkildə tənzimləməklə idarə olunur. Yavaş başlanğıc, tıxanma qarşısını almaq və sürətli bərpa, TCP tıkanıklama nəzarət alqoritminin üç əsas hissəsidir, tıxanma pəncərəsinin ölçüsünün ölçüsünü, şəbəkənin tutumuna və tıxanma dərəcəsinə uyğunlaşmaq üçün müxtəlif strategiyaların ölçüsünü tənzimləyən üç əsas hissədir.

Növbəti hissədə TCP-nin geri köçürmə mexanizmini ətraflı araşdıracağıq. Retransmission mexanizmi, etibarlı ötürmə əldə etmək üçün TCP-nin vacib bir hissəsidir. İtirilmiş, pozulmuş və ya gecikmiş məlumatların geri qaytarılması ilə məlumatların etibarlı ötürülməsini təmin edir. Transransmission mexanizminin icra prinsipi və strategiyası növbəti hissədə ətraflı məlumatlandırılacaq və təhlil ediləcəkdir. Qalinam!


Time vaxt: Feb-24-2025