TCP ishonchliligi transporti
Biz barchamiz TCP protokoli bilan ishonchli transport protokoli sifatida tanishamiz, ammo bu transportning ishonchliligini qanday ta'minlaydi?
Ma'lumotlarning ishonchli uzatilishiga erishish uchun ma'lumotlar korruptsiya, yo'qotish, ko'payish va buyurtmadan tashqari qo'riqlash kabi ko'plab omillarni ko'rib chiqish kerak. Agar bu muammolarni hal qilib bo'lmaydi, ishonchli uzatishga ishonchingiz komil emas.
Shu sababli, TCP ketma-ketlik raqami, minnatdorchilik javoblari, qayta yoqish, ulanishni boshqarish, ulanishni boshqarish, ulanishni boshqarish va ishonchli uzatishga erishish uchun derazalarni boshqarish mexanizmlarini ish bilan ta'minlaydi.
Ushbu hujjatda biz TCP ni oqiluvchi oynaga, oqilona nazorat va tiqilib qolishni nazorat qilamiz. Reklama mexanizmi keyingi bo'limda alohida qoplanadi.
Tarmoq oqimi nazorati
Tarmoq oqimi nazorati yoki tarmoqlarni boshqarish vositasi aslida ishlab chiqaruvchilar va iste'molchilar o'rtasidagi nozik munosabatlarning namoyon bo'lishi. Ehtimol siz ushbu stsenariyni ishda yoki intervyularda ko'p uchratgansiz. Ishlab chiqaruvchining ishlab chiqaradigan qobiliyati iste'molchilarning iste'mol qilish qobiliyatidan ancha yuqori bo'lsa, u navbatni cheksiz o'stirishiga olib keladi. Jiddiy holda, siz quyruqqa xabarlari juda oz bo'lsa, u butun MQ-serverning samaradorligini buzishi mumkinligini bilishingiz mumkin. Bir xil TCP uchun to'g'ri; Agar tekshirilmagan bo'lsa, juda ko'p xabarlar tarmoqqa kiritilsa, iste'molchilar o'z quvvatlaridan oshib ketadilar, ishlab chiqaruvchilar esa takroriy xabarlarni yuborishda davom etadilar, bu esa tarmoqning ishlashiga katta ta'sir qiladi.
Ushbu hodisani hal qilish uchun, TCP Yuboruvchi uchun yuboruvchiga yuborilgan ma'lumotlar miqdorini nazorat qiladi, u oqim nazorati sifatida tanilgan. Qabul qilgich bir oynani saqlaydi, jo'natuvchi esa yuborilgan oynani qo'llab-quvvatlaydi. Shuni ta'kidlash kerakki, ushbu derazalar faqat bitta TCP aloqasi uchundir va barcha ulanishlar oynani baham ko'rmaydi.
TCP Obuna oynasi uchun o'zgaruvchini ishlatib oqim nazoratini ta'minlaydi. Qabul qilish oynasi jo'natuvchini qancha kesh bo'shlig'ida qancha mavjudligi to'g'risida ko'rsatma beradi. Yuboruvchi qabul qilgichning haqiqiy qabul qobiliyatiga muvofiq yuborilgan ma'lumotlar miqdorini boshqaradi.
Qabul qilgich xostida qabul qilish mumkin bo'lgan ma'lumotlar hajmini yuboruvchini yuboradi va yuboruvchisi ushbu cheklovni yuboradi. Ushbu chegara oynaning o'lchami, TCP sarlavhasini eslaysizmi? Qabul qilgichni olish yoki qabul qilishga tayyor bo'lgan baytlar sonini ko'rsatish uchun foydalaniladigan deraza maydonchasi mavjud.
Yuboruvchi xost vaqti-vaqti bilan qabul qiluvchining xostlari hali ham ma'lumotlarni qabul qilish imkoniyatiga ega yoki yo'qligini aniqlash uchun ishlatiladigan deraza paketini yuboradi. Qabul qiluvchining buferi toshib ketish xavfi ostida bo'lganida, deraza hajmini yuboruvchiga yuborilgan ma'lumotlarning miqdorini boshqarish uchun kichikroq qiymatga o'rnatiladi.
Bu erda tarmoq oqimi nazorati sxemasi:
Tarmoq tiqilishi nazorati
Tegish nazoratini joriy etishdan oldin, biz Oynaning derazasi va Yuborish oynasiga qo'shimcha ravishda, shuningdek, jo'natuvchi qaysi stavkada ma'lumotlarni olish uchun ma'lumotlarni olish uchun foydalaniladi. Shu sababli, tiqilib qolish oynasi, shuningdek, TCP jo'natuvchi tomonidan ham saqlanadi. Bizga qancha ma'lumot olish uchun bizda qancha ma'lumot olishini aniqlash uchun bizda algoritm kerak, chunki juda oz yoki juda ko'p ma'lumot yuborish ideal emas, shuning uchun tiqilib qolish oynasi tushunchasi ideal emas.
Oldingi tarmoq oqimini boshqarishda, yuboruvchi biz qabul qiluvchini ma'lumotlar bilan to'ldirgan holda qaytarib berdik, ammo biz tarmoqda nima bo'layotganini bilmaymiz. Odatda, kompyuter tarmoqlari umumiy muhitda. Natijada boshqa xostlar o'rtasidagi aloqa tufayli tarmoq tiqilishi bo'lishi mumkin.
Tarmoq tiqilib qolganda, agar ko'p sonli paketlar yuborilsa, paketlarning kechikish va yo'qotishi kabi muammolarga olib kelishi mumkin. Shu nuqtada, TCP ma'lumotlarni qayta yuboradi, ammo retsyon tarmoqdagi yukni ko'paytiradi, natijada kattaroq kechikishlar va ko'proq paket yo'qotishlarga olib keladi. Bu juda zo'r tsiklga kirishi va kattalashishda davom etishi mumkin.
Shunday qilib, TCP tarmoqda sodir bo'layotgan narsalarni e'tiborsiz qoldirolmaydi. Tarmoq tiqilib qolganda, TCP yuboradigan ma'lumotlar miqdorini kamaytirish orqali o'zini qurbon qiladi.
Shu sababli, tiqilib qolish nazorati taklif etiladi, bu esa butun tarmoqni jo'natuvchidan ma'lumot bilan to'ldirmaslikni maqsad qiladi. Yuboruvchini yuborishi kerak bo'lgan ma'lumotlar miqdorini tartibga solish uchun TCP tiqilib qolish oynasi deb nomlangan kontseptsiyani belgilaydi. To'petni boshqarishning algoritmida jo'natuvchining yig'indisining miqdori bo'yicha tiqilib qolish darajasiga muvofiq tiqilib qolish darajasining hajmini tarmoq miqdori miqdorini boshqarish uchun mos keladigan oynaning hajmini moslashtiradi.
Tiqilib qolish oynasi nima? Yuborish oynasi bilan nima qilish kerak?
To'pet oynasi - jo'natuvchi tomonidan yuborilgan holatlar o'zgaruvchisidir, bu jo'natuvchi yuborishi mumkin bo'lgan ma'lumotlarni aniqlaydi. To'plam oynasi tarmoqning tiqilib qolish darajasiga qarab izohlanadi.
Yuborish oynasi deraza hajmidagi kelishilgan Yuboruvchi va qabul qilgich o'rtasidagi kelishilgan, bu qabul qiluvchilar qabul qilishi mumkin bo'lgan ma'lumotlarni ko'rsatadi. Tiqilib qolish oynasi va yuborish oynasi bilan bog'liq; Yuborish oynasi odatda tiqilib qolish va derazalarni qabul qilish, ya'ni SWND = min (CWND, RWND).
To'plangan oyna CWND quyidagicha o'zgaradi:
Agar tarmoqda tiqilib qolmasa, ya'ni, hech qanday translanish vaqti kelmaydi, tiqilib qolish derazi oshadi.
Tarmoqdagi tiqilib qolish bo'lsa, tiqilib qolish oynasi pasayadi.
Yuboruvchi ACK effekt paketini belgilangan vaqtda qabul qilish yoki yo'qligini kuzatib borayotganligini aniqlaydi. Agar yuboruvchi ACK Iduce Paketini belgilangan vaqt ichida qabul qilmasa, tarmoq to'ldirilgan deb hisoblanadi.
To'pet oynasiga qo'shimcha ravishda, TCP kontsenziya nazorati algoritmini muhokama qilish vaqti keldi. TCP kontsingionni boshqarish algoritm uchta asosiy qismdan iborat:
Sekin boshlash:Dastlab, CWND kontsingion oynasi nisbatan kichik va yuboruvchisi tiqilib qolish oynasini taroqqa tortadi.
Tiqilib qolishning oldini olish:To'pet oynasi ma'lum bir chegaradan oshib ketgandan so'ng, jo'natuvchi tiqilib qolish oynasining o'sish sur'atini pasaytirish va tarmoqni haddan tashqari oshirib yuborishdan saqlanishdan saqlaning.
Tez tiklanish:Agar tiqilib qolish uchastka bo'lsa, jo'natuvchi tiqilib qolish dubktlari orqali tiklanishning joylashuvi joylashganligini aniqlash uchun jo'natuvchi deraza oynasini belgilaydi va keyinchalik tiqilib qolish oynasini ko'paytirishni davom ettiradi.
Sekin boshlang
TCP ulanishi o'rnatilganda, to'planadigan oyna dastlab m ms (maksimal segment hajmi) ga o'rnatiladi. Shunday qilib, dastlabki yuborish tezligi MSS / RTT baytlari / soniya haqida. Mavjud tarmoqli o'tkazish qobiliyati odatda MSS / RTTdan ancha katta, shuning uchun TCP sekin boshlanish orqali erishish mumkin bo'lgan eng maqbul yuborish kursini topishni xohlaydi.
Sekin boshlang'ich jarayonda CWND 1 MSSga kelib tushadi va har safar uzatiladigan paketli segment tanlanadi, shunda CWND qiymati bir mss tomonidan ko'payadi, ya'ni CWND qiymati 2 mss bo'ladi. Shundan so'ng, CWND ning qiymati paket segmentining har bir muvaffaqiyatli uzatilishi uchun ikki baravar ko'payadi va hokazo. O'sishning o'ziga xos jarayoni quyidagi rasmda keltirilgan.
Biroq, yuborish tezligi har doim o'sib bo'lmaydi; O'sish bir muncha vaqt tugashi kerak. Xo'sh, yuborish tezligi qachon tugaydi? Sekin boshlang'ich odatda yuborish tezligini bir necha jihatdan tugatadi:
Sekin boshlash jarayonida paket yo'qotishning birinchi usuli. Paketni yo'qotish sodir bo'lganda, TCP jo'natuvchining kontsingion oynasini 1 ga o'rnatadi va sekin boshlang'ich jarayonni qayta ishga tushiradi. Shu nuqtada, sekin boshlang'ich struktura kontseptsiyasi joriy etildi, uning boshlang'ich qiymati CWND qiymatining yarmi bo'lgan CWND qiymatining yarmini keltirib chiqaradi. Ya'ni tiqilib qolish aniqlanganda, SSTreh qiymati oynaning yarmidir.
Ikkinchi usul - sekin boshlang'ich sstreehning qiymatini to'g'ridan-to'g'ri amalga oshirishi. SSTreh qiymati juda aniqlanganda, tiqilib qolish aniqlanganda, CWND SSTREX-dan kattaroq bo'lganda, paket yo'qotish har bir ikki baravar ko'payishi mumkin. Shuning uchun, CWND-ni SSTreh-ga o'rnatish yaxshidir, u TCP-ni to'plash boshqarmasi rejimiga o'tish va sekin boshlash uchun.
Sekin boshlashning oxirgi usuli - agar uchta ortiqcha akk aniq bo'lsa, TCP tezkor ravishda qaytarib olinadi va tiklanish holatini oladi. (Nima uchun uchta ACK paketlari nima uchun mavjud bo'lsa, unda alohida-alohida izohlanadi.)
Tiqilishning oldini olish
TCP tiqilib qolish nazorati holatiga kirganda, CWND tiqilib qolish chegarasi sstreeh yarim soniga o'rnatiladi. Bu shuni anglatadiki, CWND qiymati har safar paketli segment qabul qilinishi mumkin emas. Buning o'rniga, nisbatan konservativ yondashuv qabul qilinadi, unda CWND qiymati har bir uzatish tugallangandan keyin faqat bitta ms (maksimal paketli planshet uzunligi) oshiriladi. Masalan, 10 ta paketli segmentlar tan olingan bo'lsa ham, CWND qiymati faqat bitta ms. Bu chiziqli o'sish modeli va u o'sishning yuqori qismidir. Paketni yo'qotish sodir bo'lganda, CWND qiymati ms-ga o'zgartiriladi va SSTreh qiymati CWND-ning yarmiga to'g'ri keladi. Yoki, shuningdek, 3 ortiqcha qorinning javoblari olinganda MSS o'sishini to'xtatadi. Agar CWND qiymatini ikki baravar kamaytirganingizdan so'ng, uchta ortiqcha akk hali ham CWND qiymati va tez tiklanish holatlari sifatida qayd etilgan bo'lsa.
Tez tiklanish
Tez tiklanish holatida, CWND-ning narxi har bir sck, ya'ni, ya'ni, bu ketma-ketlikda kelmaydigan bir mss miqdorida ko'payadi. Bu tarmoqda muvaffaqiyatli uzatilgan, tarmoqning iloji boricha ko'proq uzatish samaradorligini oshirish uchun muvaffaqiyatli uzatiladigan segmentlardan foydalanish.
Yo'qotilgan paketli paketi segmentining akkruti CWND qiymatini kamaytiradi va keyin tiqilib qolishning oldini olish holatiga kiradi. Bu tiqilib qolish oynasining hajmini boshqarish va tarmoq tiqilishini yanada oshirishdan saqlaning.
Agar vaqt tiqilib qolishini nazorat qilish holatidan keyin bir vaqt paydo bo'lsa, tarmoqning holati yanada jiddiy bo'lib qoladi va TCP abstestlyondan qochish holatiga ko'chib o'tish holatida. Bunday holda, CWND-ning narxi 1 mss qiymatini, maksimal paketli segment uzunligi va sekin boshlang'ich navli SSTReshning qiymati CWND-ning yarmiga to'g'ri keladi. Buning maqsadi tarmoq uzatish stavkasini va tarmoqli tiqilib qolish darajasini muvozanatlashtirish uchun tiklanganidan keyin tiqilib qolish oynasining hajmini asta-sekin oshirib borishdir.
Qisqacha ma'lumot
Ishonchli transport protokoli sifatida TCP ketma-ketlik raqami, tan olish, retranslashni boshqarish, ulanishni boshqarish va oynalarni boshqarish bo'yicha ishonchli transportni amalga oshiradi. Ular orasida oqim nazorati mexanizmi tarmoq tiqilishi va samaradorligi va samaradorligi muammolaridan qochadigan qabul qiluvchining amaldagi quvvatiga muvofiq jo'natuvchi tomonidan yuborilgan ma'lumotlar miqdorini nazorat qiladi. To'petni boshqarish mexanizmini jo'natuvchi tomonidan yuborilgan ma'lumotlar miqdorini sozlash orqali tarmoq tiqilishi holatidan qochadi. To'plangan oynaning kontseptsiyalari bir-biri bilan bog'liq va jo'natuvchidagi ma'lumotlar miqdori tiqilib qolgan oynaning hajmini jadallashtirish orqali boshqariladi. Sekin boshlash, tiqilishning oldini olish va tez tiklanish - bu tarmoqning quvvati va tiqilib qolish darajasiga moslashadigan strategiyalar orqali tiqilib qolish derazasi orqali TCP kontrategiyasining uchta asosiy qismidir.
Keyingi bo'limda biz TCPning tranzyon mexanizmini batafsil ko'rib chiqamiz. Retsisyon mexanizmi ishonchli uzatishga erishish uchun TCP ning muhim qismidir. Yo'qotilgan yoki kechiktirilgan ma'lumotlarni qayta uzatuvchi, uzilgan yoki kechiktirilgan ma'lumotlarni qayta uzatish orqali ma'lumotlarni ishonchli uzatishni ta'minlaydi. Amalga oshirish tamoyili va revanlov mexanizmi strategiyasi keyingi bo'limda kiritiladi va tahlil qilinadi. Yangiliklarni kuzatib boring, xabardor bo'lib boring; Biz bilan qoling!
O'tish vaqti: fevral-24-2025