TCP va UDP: Ishonchlilik va Samaradorlik Munozarasini Demistiflashtirish

Bugun biz TCP ga e'tibor qaratishdan boshlaymiz. Qatlamlash bobining boshida biz muhim bir fikrni aytib o'tgan edik. Tarmoq qatlamida va undan keyin gap ko'proq xostdan xostga ulanishlar haqida bo'ladi, ya'ni kompyuteringiz unga ulanish uchun boshqa kompyuter qayerda ekanligini bilishi kerak. Biroq, tarmoqdagi aloqa ko'pincha mashinalararo aloqa emas, balki jarayonlararo aloqadir. Shuning uchun TCP protokoli port tushunchasini kiritadi. Portni faqat bitta jarayon egallashi mumkin, bu esa turli xostlarda ishlaydigan dastur jarayonlari o'rtasida to'g'ridan-to'g'ri aloqani ta'minlaydi.

Transport qatlamining vazifasi turli xostlarda ishlaydigan dastur jarayonlari o'rtasida to'g'ridan-to'g'ri aloqa xizmatlarini qanday taqdim etishdan iborat, shuning uchun u boshdan-oxirga protokol sifatida ham tanilgan. Transport qatlami tarmoqning asosiy tafsilotlarini yashiradi, bu esa dastur jarayoniga ikkita transport qatlami obyekti o'rtasida mantiqiy boshdan-oxir aloqa kanali mavjudligini ko'rish imkonini beradi.

TCP uzatishni boshqarish protokoli degan ma'noni anglatadi va ulanishga yo'naltirilgan protokol sifatida tanilgan. Bu shuni anglatadiki, bitta dastur boshqasiga ma'lumotlarni yuborishni boshlashdan oldin, ikkala jarayon ham qo'l berib ko'rishishi kerak. Qo'l berib ko'rishish - bu ma'lumotlarni ishonchli uzatish va tartibli qabul qilishni ta'minlaydigan mantiqiy bog'liq jarayon. Qo'l berib ko'rishish paytida, muvaffaqiyatli ma'lumotlarni uzatishni ta'minlash uchun bir qator boshqaruv paketlarini almashish va ba'zi parametrlar va qoidalar bo'yicha kelishib olish orqali manba va manzil xostlari o'rtasida aloqa o'rnatiladi.

TCP nima? (Mylinking'sTarmoq teginishivaTarmoq paketlari brokeriTCP yoki UDP paketlarini qayta ishlashi mumkin)
TCP (Uzatish Boshqarish Protokoli) - bu ulanishga yo'naltirilgan, ishonchli, bayt oqimiga asoslangan transport qatlami aloqa protokoli.

Aloqaga yo'naltirilganUlanishga yo'naltirilganlik shuni anglatadiki, TCP aloqasi birma-bir, ya'ni nuqtadan nuqtaga, uchdan uchgacha aloqa bo'lib, UDPdan farqli o'laroq, bir vaqtning o'zida bir nechta xostlarga xabarlarni yuborishi mumkin, shuning uchun birma-ko'p aloqaga erishib bo'lmaydi.
IshonchliTCP ning ishonchliligi tarmoq ulanishidagi o'zgarishlardan qat'i nazar, paketlarning qabul qiluvchiga ishonchli tarzda yetkazib berilishini ta'minlaydi, bu esa TCP protokol paket formatini UDP ga qaraganda murakkabroq qiladi.
Bayt oqimiga asoslanganTCP ning bayt oqimiga asoslangan tabiati har qanday o'lchamdagi xabarlarni uzatish imkonini beradi va xabarlar tartibini kafolatlaydi: hatto oldingi xabar to'liq qabul qilinmagan bo'lsa ham va keyingi baytlar qabul qilingan bo'lsa ham, TCP ularni qayta ishlash uchun dastur sathiga yetkazib bermaydi va avtomatik ravishda takroriy paketlarni tashlab yuboradi.
A xosti va B xosti ulanishni o'rnatgandan so'ng, dastur faqat virtual aloqa liniyasidan ma'lumotlarni yuborish va qabul qilish uchun foydalanishi kerak, shu bilan ma'lumotlar uzatilishini ta'minlaydi. TCP protokoli ulanishni o'rnatish, uzish va ushlab turish kabi vazifalarni boshqarish uchun javobgardir. Shuni ta'kidlash kerakki, bu yerda biz virtual liniya faqat ulanishni o'rnatishni anglatadi, TCP protokoli ulanishi faqat ikki tomon ma'lumotlar uzatishni boshlashi mumkinligini va ma'lumotlarning ishonchliligini ta'minlashni anglatadi. Marshrutizatsiya va transport tugunlari tarmoq qurilmalari tomonidan boshqariladi; TCP protokolining o'zi bu tafsilotlar bilan qiziqmaydi.

TCP ulanishi to'liq dupleks xizmat bo'lib, bu A xosti va B xosti TCP ulanishida ma'lumotlarni ikki yo'nalishda ham uzatishi mumkinligini anglatadi. Ya'ni, ma'lumotlar A xosti va B xosti o'rtasida ikki tomonlama oqimda uzatilishi mumkin.

TCP ma'lumotlarni vaqtincha ulanishning yuborish buferida saqlaydi. Ushbu yuborish buferi uch tomonlama qo'l siqish paytida o'rnatilgan keshlardan biridir. Keyinchalik, TCP yuborish keshidagi ma'lumotlarni kerakli vaqtda maqsadli xostning qabul qiluvchi keshiga yuboradi. Amalda, har bir tengdoshda yuborish keshi va qabul qiluvchi keshi bo'ladi, bu yerda ko'rsatilganidek:

TCP-UDP

Yuborish buferi - bu jo'natuvchi tomonidagi TCP implementatsiyasi tomonidan saqlanadigan va jo'natiladigan ma'lumotlarni vaqtincha saqlash uchun ishlatiladigan xotira maydoni. Ulanishni o'rnatish uchun uch tomonlama qo'l siqish amalga oshirilganda, yuborish keshi sozlanadi va ma'lumotlarni saqlash uchun ishlatiladi. Yuborish buferi tarmoq tiqilib qolishi va qabul qiluvchidan kelgan fikr-mulohazaga muvofiq dinamik ravishda sozlanadi.

Qabul qilish buferi - bu qabul qiluvchi tomonda TCP implementatsiyasi tomonidan saqlanadigan va qabul qilingan ma'lumotlarni vaqtincha saqlash uchun ishlatiladigan xotira maydoni. TCP qabul qilingan ma'lumotlarni qabul qilish keshida saqlaydi va yuqori dastur uni o'qishini kutadi.

E'tibor bering, jo'natish va qabul qilish keshining hajmi cheklangan, kesh to'lganda, TCP ishonchli ma'lumotlar uzatish va tarmoq barqarorligini ta'minlash uchun tiqilishni boshqarish, oqimni boshqarish va boshqalar kabi ba'zi strategiyalarni qo'llashi mumkin.

Kompyuter tarmoqlarida xostlar o'rtasida ma'lumotlar uzatish segmentlar orqali amalga oshiriladi. Xo'sh, paket segmenti nima?

TCP kiruvchi oqimni bo'laklarga ajratish va har bir bo'lakka TCP sarlavhalarini qo'shish orqali TCP segmentini yoki paket segmentini yaratadi. Har bir segment faqat cheklangan vaqt davomida uzatilishi mumkin va maksimal segment hajmidan (MSS) oshmasligi kerak. Pastga tushish jarayonida paket segmenti aloqa qatlamidan o'tadi. Aloqa qatlamida ma'lumotlar aloqa qatlamidan o'tishi mumkin bo'lgan maksimal paket hajmi bo'lgan maksimal uzatish birligi (MTU) mavjud. Maksimal uzatish birligi odatda aloqa interfeysi bilan bog'liq.

Xo'sh, MSS va MTU o'rtasidagi farq nima?

Kompyuter tarmoqlarida ierarxik arxitektura juda muhimdir, chunki u turli darajalar orasidagi farqlarni hisobga oladi. Har bir qatlam turli nomga ega; transport qatlamida ma'lumotlar segment, tarmoq qatlamida esa ma'lumotlar IP paketi deb ataladi. Shuning uchun, Maksimal uzatish birligi (MTU) tarmoq qatlami tomonidan uzatilishi mumkin bo'lgan maksimal IP paket hajmi sifatida qaralishi mumkin, Maksimal segment hajmi (MSS) esa bir vaqtning o'zida TCP paketi tomonidan uzatilishi mumkin bo'lgan maksimal ma'lumotlar miqdorini bildiradigan transport qatlami tushunchasidir.

E'tibor bering, maksimal segment o'lchami (MSS) maksimal uzatish birligidan (MTU) kattaroq bo'lganda, IP parchalanishi tarmoq sathida amalga oshiriladi va TCP kattaroq ma'lumotlarni MTU o'lchamiga mos keladigan segmentlarga ajratmaydi. Tarmoq sathida IP qatlamiga bag'ishlangan bo'lim bo'ladi.

TCP paket segment tuzilishi
Keling, TCP sarlavhalarining formati va tarkibini ko'rib chiqaylik.

TCP segmenti

Ketma-ketlik raqamiTCP ulanishi o'rnatilganda ulanish o'rnatilganda kompyuter tomonidan boshlang'ich qiymat sifatida hosil qilingan tasodifiy son va ketma-ketlik raqami qabul qiluvchiga SYN paketi orqali yuboriladi. Ma'lumotlarni uzatish paytida jo'natuvchi ketma-ketlik raqamini yuborilgan ma'lumotlar miqdoriga qarab oshiradi. Qabul qiluvchi ma'lumotlarning tartibini qabul qilingan ketma-ketlik raqamiga qarab baholaydi. Agar ma'lumotlar tartibsiz bo'lsa, qabul qiluvchi ma'lumotlarning tartibini ta'minlash uchun ma'lumotlarni qayta tartiblaydi.

Tasdiqlash raqamiBu TCP da ma'lumotlar qabul qilinganligini tasdiqlash uchun ishlatiladigan ketma-ketlik raqami. Bu jo'natuvchi olishni kutayotgan keyingi ma'lumotlarning ketma-ketlik raqamini bildiradi. TCP ulanishida qabul qiluvchi qabul qilingan ma'lumotlar paketi segmentining ketma-ketlik raqamiga asoslanib qaysi ma'lumotlar muvaffaqiyatli qabul qilinganligini aniqlaydi. Qabul qiluvchi ma'lumotlarni muvaffaqiyatli qabul qilganda, u jo'natuvchiga tasdiqlash tasdiqlash raqamini o'z ichiga olgan ACK paketini yuboradi. ACK paketini olgandan so'ng, jo'natuvchi javob raqamini tasdiqlashdan oldin ma'lumotlar muvaffaqiyatli qabul qilinganligini tasdiqlashi mumkin.

TCP segmentining boshqaruv bitlari quyidagilarni o'z ichiga oladi:

ACK bitiBu bit 1 ga teng bo'lganda, bu tasdiqlash javob maydoni haqiqiy ekanligini anglatadi. TCP ulanish dastlab o'rnatilganda SYN paketlaridan tashqari bu bit 1 ga o'rnatilishi kerakligini belgilaydi.
RST bitiBu bit 1 ga teng bo'lganda, bu TCP ulanishida istisno mavjudligini va ulanishni majburiy ravishda uzish kerakligini ko'rsatadi.
SYN bitiBu bit 1 ga o'rnatilganda, bu ulanish o'rnatilishi kerakligini va ketma-ketlik raqami maydonida ketma-ketlik raqamining boshlang'ich qiymati o'rnatilishini anglatadi.
FIN bitiBu bit 1 ga teng bo'lganda, bu kelajakda boshqa ma'lumotlar yuborilmasligini va ulanish kerakli ekanligini anglatadi.
TCP ning turli funktsiyalari va xususiyatlari TCP paket segmentlarining tuzilishida mujassamlangan.

UDP nima? (Mylinking's)Tarmoq teginishivaTarmoq paketlari brokeriham TCP, ham UDP paketlarini qayta ishlashi mumkin)
Foydalanuvchi ma'lumotlari protokoli (UDP) ulanishsiz aloqa protokoli hisoblanadi. TCP bilan taqqoslaganda, UDP murakkab boshqaruv mexanizmlarini ta'minlamaydi. UDP protokoli ilovalarga ulanish o'rnatmasdan to'g'ridan-to'g'ri kapsulalangan IP paketlarini yuborish imkonini beradi. Ishlab chiquvchi TCP o'rniga UDP dan foydalanishni tanlaganda, dastur to'g'ridan-to'g'ri IP bilan aloqa qiladi.

UDP protokolining to'liq nomi Foydalanuvchi ma'lumotlari protokoli bo'lib, uning sarlavhasi atigi sakkiz baytdan (64 bit) iborat bo'lib, bu juda ixcham. UDP sarlavhasining formati quyidagicha:

UDP segmenti

Manzil va manba portlariUlarning asosiy maqsadi UDP qaysi jarayonga paketlarni yuborishi kerakligini ko'rsatishdir.
Paket hajmiPaket hajmi maydoni UDP sarlavhasining o'lchamini va ma'lumotlar hajmini saqlaydi
Chek summasiUDP sarlavhalari va ma'lumotlarining ishonchli yetkazib berilishini ta'minlash uchun mo'ljallangan. Tekshirish summasining vazifasi ma'lumotlarning yaxlitligini ta'minlash uchun UDP paketini uzatish paytida xato yoki buzilish sodir bo'lganligini aniqlashdir.

Mylinking'dagi TCP va UDP o'rtasidagi farqlarTarmoq teginishivaTarmoq paketlari brokeriTCP yoki UDP paketlarini qayta ishlashi mumkin
TCP va UDP quyidagi jihatlarda farq qiladi:

TCP va UDP

UlanishTCP - bu ma'lumotlarni uzatishdan oldin ulanishni o'rnatishni talab qiladigan ulanishga yo'naltirilgan transport protokoli. Boshqa tomondan, UDP ulanishni talab qilmaydi va ma'lumotlarni darhol uzatishi mumkin.

Xizmat ko'rsatish obyektiTCP - bu bittadan bittagacha ikki nuqtali xizmat, ya'ni ulanish bir-biri bilan aloqa qilish uchun faqat ikkita so'nggi nuqtaga ega. Biroq, UDP bir vaqtning o'zida bir nechta xostlar bilan aloqa qila oladigan bittadan bittagacha, bittadan ko'pga va ko'pdan ko'pga interaktiv aloqani qo'llab-quvvatlaydi.

IshonchlilikTCP ma'lumotlarni ishonchli yetkazib berish xizmatini taqdim etadi, ma'lumotlarning xatosiz, yo'qotishsiz, takrorlanmas va talabga binoan yetib borishini ta'minlaydi. Boshqa tomondan, UDP qo'lidan kelganicha harakat qiladi va ishonchli yetkazib berishni kafolatlamaydi. UDP uzatish paytida ma'lumotlar yo'qolishi va boshqa holatlarga duch kelishi mumkin.

Tiqilishni boshqarish, oqimni boshqarishTCP ma'lumotlar uzatish xavfsizligi va barqarorligini ta'minlash uchun tarmoq sharoitlariga muvofiq ma'lumotlar uzatish tezligini sozlashi mumkin bo'lgan tiqilishni boshqarish va oqimni boshqarish mexanizmlariga ega. UDPda tiqilishni boshqarish va oqimni boshqarish mexanizmlari mavjud emas, hatto tarmoq juda tiqilib qolgan bo'lsa ham, u UDP yuborish tezligiga o'zgartirishlar kiritmaydi.

Sarlavha ustki qismiTCP uzun sarlavha uzunligiga ega, odatda 20 bayt, bu parametr maydonlaridan foydalanilganda ortadi. Boshqa tomondan, UDP atigi 8 baytdan iborat sobit sarlavhaga ega, shuning uchun UDP sarlavha yuki kamroq.

TCP va UDP

TCP va UDP dastur stsenariylari:
TCP va UDP ikki xil transport qatlami protokollari bo'lib, ular dastur stsenariylarida ba'zi farqlarga ega.

TCP ulanishga yo'naltirilgan protokol bo'lgani uchun, u asosan ishonchli ma'lumotlarni yetkazib berish talab qilinadigan holatlarda qo'llaniladi. Ba'zi keng tarqalgan foydalanish holatlari quyidagilarni o'z ichiga oladi:

FTP fayl uzatishTCP uzatish paytida fayllarning yo'qolmasligi va buzilmasligini ta'minlashi mumkin.
HTTP/HTTPSTCP veb-kontentning yaxlitligi va to'g'riligini ta'minlaydi.
UDP ulanishsiz protokol bo'lgani uchun u ishonchlilik kafolatini bermaydi, lekin samaradorlik va real vaqt xususiyatlariga ega. UDP quyidagi stsenariylar uchun mos keladi:

DNS (Domen nomi tizimi) kabi past paketli trafikDNS so'rovlari odatda qisqa paketlar bo'lib, UDP ularni tezroq bajarishi mumkin.
Video va audio kabi multimedia aloqasiYuqori real vaqt talablariga ega multimedia uzatish uchun UDP ma'lumotlarning o'z vaqtida uzatilishini ta'minlash uchun pastroq kechikishni ta'minlashi mumkin.
Radioeshittirish aloqasiUDP birdan ko'pga va ko'pdan ko'pga aloqani qo'llab-quvvatlaydi va efirga uzatiladigan xabarlarni uzatish uchun ishlatilishi mumkin.

Xulosa
Bugun biz TCP haqida bilib oldik. TCP ulanishga yo'naltirilgan, ishonchli, bayt oqimiga asoslangan transport qatlami aloqa protokoli. U ulanish, qo'l berib ko'rishish va tasdiqlashni o'rnatish orqali ma'lumotlarni ishonchli uzatish va tartibli qabul qilishni ta'minlaydi. TCP protokoli jarayonlar o'rtasidagi aloqani amalga oshirish uchun portlardan foydalanadi va turli xostlarda ishlaydigan dastur jarayonlari uchun to'g'ridan-to'g'ri aloqa xizmatlarini taqdim etadi. TCP ulanishlari to'liq dupleks bo'lib, bir vaqtning o'zida ikki tomonlama ma'lumotlarni uzatish imkonini beradi. Bunga javoban, UDP ulanishsiz yo'naltirilgan aloqa protokoli bo'lib, u ishonchlilik kafolatlarini bermaydi va yuqori real vaqt talablariga ega bo'lgan ba'zi stsenariylar uchun mos keladi. TCP va UDP ulanish rejimi, xizmat ko'rsatish obyekti, ishonchlilik, tiqilib qolishni boshqarish, oqimni boshqarish va boshqa jihatlar bo'yicha farq qiladi va ularning dastur stsenariylari ham farq qiladi.


Joylashtirilgan vaqt: 2024-yil 3-dekabr