uy - Routerni sozlash
UDP qanday protokolda ishlaydi? Oddiy so'zlar bilan TCP UDP dan qanday farq qiladi?

Internet uchun tarmoq protokollari to'plami. UDP yordamida kompyuter ilovalari maxsus uzatish kanallari yoki ma'lumotlar yo'llarini o'rnatish uchun oldindan aloqa o'rnatmasdan IP tarmog'i orqali boshqa xostlarga xabarlarni (bu holda datagramlar deb ataladi) yuborishi mumkin. Protokol Devid P. Rid tomonidan 1980 yilda ishlab chiqilgan va rasmiy ravishda RFC 768 da belgilangan.

UDP ma'lumotlar ishonchliligi, tartibliligi yoki yaxlitligini ta'minlash uchun qo'l siqishlarsiz oddiy uzatish modelidan foydalanadi. Shunday qilib, UDP ishonchsiz xizmatni taqdim etadi va datagramlar ishlamay qolishi, takrorlanishi yoki izsiz yo'qolishi mumkin. UDP xatolarni tekshirish va tuzatish kerak emasligini yoki dastur ichida bajarilishi kerakligini anglatadi. Vaqtga sezgir ilovalar ko'pincha UDP dan foydalanadilar, chunki kechiktirilgan paketlarni kutishdan ko'ra paketlarni tashlab yuborish afzalroqdir, bu real vaqtda tizimlarda mumkin bo'lmasligi mumkin. Agar tarmoq interfeysi qatlamidagi xatolarni tuzatish zarur bo'lsa, dastur ushbu maqsad uchun mo'ljallangan TCP yoki SCTP dan foydalanishi mumkin.

UDP ning fuqaroligi bo'lmagan protokol sifatidagi xususiyati DNS va IPTV, IP orqali ovoz, IP tunnel protokollari va ko'plab onlayn o'yinlar kabi oqimli media ilovalari kabi juda ko'p mijozlarning kichik so'rovlariga javob beradigan serverlar uchun ham foydalidir.

Entsiklopedik YouTube

    1 / 5

    ✪ Portlar va qayta yo'naltirish/portlarni ochish. Ko'rsatmalar va tushuntirishlar sizning qo'lingizda!

  • Subtitrlar

Xizmat portlari

UDP yuqori protokolga hech qanday xabar yetkazib berish kafolatlarini bermaydi va yuborilgan xabarlar holatini saqlamaydi. Shu sababli, UDP ba'zan Ishonchsiz Datagram Protocol deb ataladi.

Tekshirish summasi

Tekshirish summasi maydoni sarlavha va ma'lumotlarni xatolar uchun tekshirish uchun ishlatiladi. Agar miqdor transmitter tomonidan yaratilmagan bo'lsa, unda maydon nol bilan to'ldiriladi. Bu maydon IPv4 uchun ixtiyoriy.

Tekshirish summasini hisoblash

Tekshirish summasini hisoblash usuli RFC 1071da belgilangan.

Tekshirish summasini hisoblashdan oldin, agar baytlardagi UDP xabarining uzunligi toq bo'lsa, u holda UDP xabari oxirida null bayt bilan to'ldiriladi (pseudo-sarlavha va to'ldiruvchi null bayt xabar bilan birga yuborilmaydi, ular faqat ishlatiladi. nazorat summasini hisoblashda). UDP sarlavhasidagi nazorat summasi maydoni nazorat summasini hisoblashda nolga teng deb qabul qilinadi.

Tekshirish summasini hisoblash uchun psevdo-sarlavha va UDP xabari ikki baytli so'zlarga bo'linadi. Keyin barcha so'zlarning yig'indisi teskari kodning arifmetikasida hisoblanadi (ya'ni raqamning barcha raqamlarini teskari aylantirish orqali ijobiy raqamdan salbiy raqam olinadigan kod va ikkita nol mavjud: 0x0000 (belgilangan +). 0) va 0xffff (−0) bilan belgilanadi). Natija UDP sarlavhasidagi tegishli maydonga yoziladi.

0x0000 (teskari kodda +0) ga teng nazorat summasi zaxiralangan va nazorat summasi jo'natish uchun hisoblanmaganligini bildiradi. Agar nazorat summasi hisoblangan va 0x0000 ga teng bo'lsa, nazorat summasi maydoniga 0xffff (teskari kodda -0) qiymati kiritiladi.

Xabar qabul qilinganda, qabul qiluvchi nazorat summasini yana hisoblab chiqadi (nazorat summasi maydonini hisobga olgan holda) va agar natija -0 (ya'ni 0xffff) bo'lsa, nazorat summasi birlashtirilgan deb hisoblanadi. Agar summa bir-biriga yaqinlashmasa (ma'lumotlar uzatish paytida buzilgan yoki jo'natuvchi tomonda nazorat summasi noto'g'ri hisoblangan bo'lsa), keyingi harakatlar to'g'risida qaror qabul qiluvchi tomon tomonidan qabul qilinadi. Qoidaga ko'ra, UDP/IP paketlar bilan ishlaydigan zamonaviy qurilmalarning aksariyatida nazorat summasining noto'g'riligidan qat'i nazar, bunday paketlarni e'tiborsiz qoldirish yoki keyingi ishlov berish uchun ularni o'tkazib yuborish imkonini beruvchi sozlamalar mavjud.

Tekshirish summasini hisoblash misoli

Misol uchun, bir nechta 16 bitli so'zlarning nazorat summasini hisoblaylik: 0x398a, 0xf802, 0x14b2, 0xc281.

Buni amalga oshirish uchun siz avval raqamlarni juft-juft qilib qo'shishingiz mumkin, ularni 16 bitli imzosiz raqamlar sifatida ko'rib chiqing, so'ngra qo'shilish paytida eng yuqori (17-chi) raqamga o'tkazilgan bo'lsa, natijaga bitta qo'shish orqali ikkita to'ldiruvchi kodga qisqartirishingiz mumkin. (ya'ni, de-fakto, bu operatsiya biz salbiy sonni uning to'ldiruvchisidan o'zaro kodiga aylantiramiz). Yoki, bu ekvivalent bo'lsa, biz ko'chirish raqamning past tartibli raqamiga qo'shilgan deb hisoblashimiz mumkin.

0x398a + 0xf802 = 0x1318c → 0x318d (yuqori tartibga o‘tkazish) 0x318d + 0x14b2 = 0x0463f → 0x463f (ijobiy raqam) 0x463f + 0xc281 → 0x10c = 0x8

Oxirida olingan sonning barcha bitlari teskari bo'ladi

0x08c1 = 0000 1000 1100 0001 → 1111 0111 0011 1110 = 0xf73e yoki, aks holda - 0xffff - 0x08c1 = 0xf73e . Bu kerakli nazorat summasi.

Tekshirish summasini hisoblashda haqiqiy IPv6 sarlavhasini taqlid qiluvchi psevdo-sarlavha yana ishlatiladi:

UDP oddiy protokol bo'lib, ma'lum bir qamrovga ega. Avvalo, bu mijoz-server o'zaro ta'siri va multimedia. Biroq, aksariyat Internet ilovalari ishonchli, izchil uzatishni talab qiladi. UDP bu talablarga javob bermaydi, shuning uchun boshqa protokol talab qilinadi. Ushbu protokol TCP deb ataladi va u Internetning ish kuchi hisoblanadi.

TCP asoslari

Transmissiyani boshqarish protokoli (TCP) ishonchsiz Internet tarmog'i orqali ishonchli uchdan-uchgacha bayt oqimini ta'minlash uchun maxsus ishlab chiqilgan. O'zaro bog'langan tarmoq mustaqil tarmoqdan farq qiladi, chunki uning turli bo'limlari topologiyalari, o'tkazuvchanlik kengligi, kechikish qiymatlari, paketlar o'lchamlari va boshqa parametrlarga ega bo'lishi mumkin. TCP ning rivojlanishi protokolning internet tarmog'ining xususiyatlariga moslashish va turli muammolarga chidamli bo'lish qobiliyatiga qaratilgan.

TCP protokoli RFC 793 da tavsiflangan. Vaqt o'tishi bilan turli xil xatolar va noaniqliklar aniqlandi va ba'zi jihatlarda talablar o'zgartirildi. Ushbu tushuntirishlar va tuzatishlarning batafsil tavsifi RFC 1122 da berilgan. Protokol kengaytmalari RFC 1323 da berilgan.

TCP protokolini qo'llab-quvvatlaydigan har bir mashinada TCP transport ob'ekti mavjud bo'lib, u kutubxona protsedurasi, foydalanuvchi jarayoni yoki tizim yadrosining bir qismidir. Har qanday holatda ham transport ob'ekti TCP oqimlarini va IP qatlamiga interfeysni boshqaradi. TCP ob'ekti mahalliy jarayonlardan foydalanuvchi ma'lumotlar oqimini oladi, ularni 64 KB dan katta bo'lmagan qismlarga ajratadi (amalda, bu raqam odatda 460 bayt ma'lumotni tashkil qiladi, bu ularni IP va TCP sarlavhalari bilan bitta Ethernet freymiga joylashtirish imkonini beradi), va ularni alohida IP datagrammalariga yuboradi. TCP ma'lumotlari bo'lgan IP-datagrammalar mashinaga kelganda, ular dastlabki bayt oqimini qayta tiklaydigan TCP ob'ektiga o'tkaziladi. Oddiylik uchun biz ba'zan TCP transport ob'ektiga (dasturiy ta'minotning bir qismi) yoki TCP protokoliga (qoidalar to'plami) murojaat qilish uchun "TCP" dan foydalanamiz. Kontekstdan nimani nazarda tutayotgani aniq bo'ladi. Masalan, "Foydalanuvchi TCP ma'lumotlarini uzatmoqda" iborasida TCP transport ob'ekti tabiiy ravishda nazarda tutilgan.

IP qatlami datagrammalarning to'g'ri yetkazib berilishini kafolatlamaydi, shuning uchun TCP muddati o'tgan vaqtni kuzatishi va kerak bo'lganda paketlarni qayta uzatishi kerak. Ba'zan datagramlar noto'g'ri tartibda keladi. TCP shuningdek, bunday datagramlardan xabarlarni tiklash uchun javobgardir. Shunday qilib, TCP ko'p foydalanuvchilar xohlagan IP taqdim etmaydigan ishonchlilikni ta'minlash uchun mo'ljallangan.

TCP xizmat modeli

TCP xizmati jo'natuvchi va qabul qiluvchi tomonidan yaratilgan rozetkalarga (rozetkalar yoki so'nggi nuqtalar) asoslanadi. Ular Berkeley Sockets bo'limida muhokama qilindi. Har bir rozetkada xost IP-manzili va port deb ataladigan xost uchun mahalliy 16 bitli raqamdan iborat raqam (manzil) mavjud. TCP dagi port TSAP manzili deb ataladi. TCP xizmatiga kirish uchun jo'natuvchi mashinadagi rozetka va qabul qiluvchi qurilmadagi rozetka o'rtasida aloqa aniq o'rnatilishi kerak.

Bitta rozetka bir vaqtning o'zida bir nechta ulanish uchun ishlatilishi mumkin. Boshqacha qilib aytganda, ikkita yoki undan ortiq ulanishlar bir xil rozetkada tugashi mumkin. Ulanishlar ikkala uchidagi rozetka identifikatorlari bilan ajralib turadi - (socket1, socket2). Virtual kanal raqamlari yoki boshqa identifikatorlar ishlatilmaydi.

Ommabop portlar deb ataladigan 1024 dan past bo'lgan port raqamlari standart xizmatlar tomonidan zahiralangan. Masalan, FTP yordamida faylni uzatish uchun xostga ulanishni istagan har qanday jarayon maqsad xostning 21-portiga murojaat qilishi va shu tariqa uning FTP demoniga murojaat qilishi mumkin. Mashhur portlar ro'yxati www.iana.org veb-saytida keltirilgan.

Biz, albatta, yuklash vaqtida FTP demonini 21-portga ulashimiz mumkin, keyin esa telnet demonini 23-portga ulashimiz mumkin va hokazo. Ammo, agar shunday qilsak, biz xotirani faqat demonlar haqidagi maʼlumotlar bilan isrof qilgan boʻlardik, aslida . , ular ko'pincha ishlamaydi. Buning o'rniga, UNIXda inetd deb ataladigan, bir nechta portlar bilan aloqa o'rnatadigan va birinchi kiruvchi ulanishni kutadigan bitta demondan foydalanish odatiy holdir. Bu sodir bo'lganda, inetd yangi jarayon yaratadi va so'rovni bajarish uchun tegishli demonni chaqiradi. Shunday qilib, faqat inetd doimiy faol bo'ladi, qolganlari faqat ular uchun ish mavjud bo'lganda chaqiriladi. Inetd maxsus konfiguratsiya fayliga ega bo'lib, u portlarni belgilash haqida bilib oladi. Bu shuni anglatadiki, tizim administratori tizimni shunday sozlashi mumkinki, doimiy demonlar eng band portlar bilan (masalan, 80), inetd esa qolganlari bilan bog'lanadi.

Ba'zi zahiralangan portlar

Protokol

Foydalanish

21

FTP

Fayllarni uzatish

23

Telnet

Masofadan kirish

25

SMTP

Elektron pochta

69

TFTP

Eng oddiy fayl uzatish protokoli

79

Barmoq

Foydalanuvchi ma'lumotlarini qidirish

80

HTTP

Internet

110

POP-3

Elektron pochtaga masofadan kirish

119

NNTP

Yangiliklar guruhlari

Barcha TCP ulanishlari to'liq dupleks va nuqtadan nuqtaga. To'liq dupleks transportning bir vaqtning o'zida qarama-qarshi yo'nalishda harakatlanishi mumkinligini anglatadi. Nuqtadan nuqtaga ulanish uning ikkita so'nggi nuqtasiga ega ekanligini anglatadi. Translyatsiya va multicasting TCP tomonidan qo'llab-quvvatlanmaydi.

TCP ulanishi xabar oqimi emas, balki bayt oqimidir. Xabarlar orasidagi chegaralar saqlanmaydi. Misol uchun, agar jo'natish jarayoni TCP oqimiga to'rtta 512 baytlik ma'lumotlarni yozsa, bu ma'lumot qabul qilish jarayoniga to'rtta 512 bayt, ikkita 1024 bayt, bitta 2048 bayt bo'lak yoki boshqa narsa sifatida etkazilishi mumkin. boshqa. Qabul qiluvchining ma'lumotlar qanday yozilganligini aniqlashning hech qanday usuli yo'q.

UNIX tizimidagi fayllar ham shunday xususiyatga ega. Temir yo'lni o'qiydigan dastur ushbu fayl qanday yozilganligini aniqlay olmaydi: blok-blok, bayt-bayt yoki butunlay birdaniga. UNIX tizim fayllarida bo'lgani kabi, TCP dasturlari baytlarning ma'nosi haqida hech qanday tasavvurga ega emas. Ular uchun bir bayt shunchaki bayt.

TCP ilovadan ma'lumotlarni qabul qilgandan so'ng, u bir vaqtning o'zida hammasini yuborishi yoki o'zi xohlaganicha bir vaqtning o'zida kattaroq ma'lumotlarni yuborish uchun buferlashi mumkin. Biroq, ba'zida ilovaga ma'lumotlarni darhol yuborish kerak bo'ladi. Aytaylik, masalan, foydalanuvchi masofaviy kompyuterga kirdi. U buyruqni kiritib, Enter tugmachasini bosgandan so'ng, keyingi qator kiritilgunga qadar buferlangan emas, balki u kiritgan qator darhol masofaviy mashinaga yetkazilishi muhimdir. Ma'lumotni kechiktirmasdan uzatish uchun dastur PUSH bayrog'ini o'rnatishi mumkin.

Ba'zi eski ilovalar xabarni ajratuvchi sifatida PUSH bayrog'idan foydalangan. Garchi bu hiyla ba'zan ishlayotgan bo'lsa-da, barcha TCP ilovalari PUSH bayrog'ini qabul qiluvchi dasturga o'tkazmaydi. Bundan tashqari, agar TCP ob'ekti liniyada birinchi PUSH paketi yuborilgunga qadar yana bir nechta shunday paketlarni qabul qilsa (ya'ni chiqish liniyasi band bo'lsa), TCP ob'ekti ushbu barcha ma'lumotlarni bitta datagram sifatida yuborish huquqiga ega bo'ladi, ularni alohida qismlarga ajratmaslik.

TCP xizmatining so'nggi xususiyati - bu shoshilinch ma'lumotlar. Dastur bilan o'zaro aloqada bo'lgan foydalanuvchi amalga oshirilayotgan masofaviy jarayonni to'xtatish uchun Delete yoki Ctrl-C tugmalarini interaktiv tarzda bosganida, jo'natuvchi dastur boshqaruv ma'lumotlarini chiqish ma'lumotlar oqimiga joylashtiradi va uni URGENT bayrog'i bilan birga TCP xizmatiga uzatadi. Bu belgi TCP ob'ektini ma'lumotlarni to'plashni to'xtatishga va tarmoqqa ulanish uchun mavjud bo'lgan narsalarni darhol chiqarishga olib keladi.

Shoshilinch ma'lumotlar o'z manziliga etib kelganida, qabul qiluvchi ilova uzilib qoladi (ya'ni UNIX terminologiyasida "signallanadi"), shundan so'ng u kirish oqimidagi ma'lumotlarni o'qiy oladi va ular orasidan shoshilinch ma'lumotlarni qidiradi. Shoshilinch ma'lumotlarning oxiri dastur qayerda tugashini bilishi uchun belgilanadi. Shoshilinch ma'lumotlarning boshlanishi belgilanmagan. Ilova buni o'z-o'zidan aniqlashi kerak. Ushbu sxema qo'pol signalizatsiya mexanizmini ta'minlaydi, qolgan hamma narsani dasturga qoldiradi.

TCP protokoli

Ushbu bo'limda TCP protokoli umumiy ma'noda muhokama qilinadi. Keyingi bo'limda biz protokol sarlavhasini maydon bo'yicha muhokama qilamiz.

TCP ning butun protokol tuzilmasini belgilaydigan asosiy xususiyati shundaki, TCP ulanishida har bir bayt o'zining 32 bitli tartib raqamiga ega. Internetning dastlabki yillarida ijaraga olingan liniyalar bo'yicha marshrutizatorlar o'rtasida ma'lumotlarni uzatishning asosiy tezligi 56 Kbit / s edi. Doimiy ravishda yuqori tezlikda ma'lumot chiqaradigan xost uchun ketma-ketlik raqamlarining to'liq aylanishi uchun bir haftadan ko'proq vaqt kerak bo'ladi. Joriy tezlikda ketma-ketlik raqamlari juda tez tugashi mumkin, bu haqda keyinroq. Alohida 32-bitli ketma-ketlik raqamlari tasdiqlar va toymasin oyna mexanizmi uchun ishlatiladi, ular keyinroq muhokama qilinadi.

Yuboruvchi va qabul qiluvchi TCP ob'ektlari segmentlar ko'rinishida ma'lumotlarni almashadilar. Segment sobit 20 baytlik sarlavhadan (qo'shimcha ravishda ixtiyoriy qismdan) iborat bo'lib, undan keyin ma'lumotlar baytlari kelishi mumkin. Segmentlarning o'lchami TCP dasturi tomonidan aniqlanadi. U bir nechta yozish operatsiyalari natijasida olingan ma'lumotlarni bir segmentga birlashtirishi yoki aksincha, bir yozish natijasini bir nechta segmentlarga taqsimlashi mumkin. Segmentlarning o'lchami ikkita chegara bilan cheklangan. Birinchidan, har bir segment, shu jumladan TCP sarlavhasi, IP paketining 65,515 baytlik foydali yuk maydoniga mos kelishi kerak. Ikkinchidan, har bir tarmoqda maksimal uzatish birligi (MTU) mavjud va har bir segment MTUga mos kelishi kerak. Amalda, maksimal uzatish blokining o'lchami odatda 1500 baytni tashkil qiladi (bu Ethernet foydali yuk maydonining o'lchamiga mos keladi) va shu bilan segment o'lchamining yuqori chegarasini belgilaydi.

TCP ob'ektlari tomonidan qo'llaniladigan asosiy protokol - bu surma oyna protokoli. Segmentni uzatishda jo'natuvchi taymerni ishga tushiradi. Segment belgilangan joyga etib kelganida, qabul qiluvchi TCP ob'ekti raqam bilan segmentni (agar jo'natadigan biror narsa bo'lsa, ma'lumot bilan yoki ma'lumotsiz) qaytarib yuboradi.

keyingi kutilgan segmentning tartib raqamiga teng bo'lgan tasdiq. Tasdiqlash vaqti tugasa, jo'natuvchi segmentni qayta yuboradi.

Ushbu protokol oddiy ko'rinsa-da, batafsilroq ko'rib chiqilishi kerak bo'lgan bir nechta tafsilotlar mavjud. Segmentlar noto'g'ri tartibda kelishi mumkin. Masalan, 3072 dan 4095 gacha baytlar allaqachon kelgan bo'lishi mumkin, ammo ular uchun tasdiq yuborib bo'lmaydi, chunki 2048 dan 3071 gacha baytlar hali olinmagan. Bundan tashqari, segmentlar tarmoqda shunchalik uzoq vaqt qolishi mumkinki, jo'natuvchi vaqtni tugatadi va ularni yana uzatadi. Qayta uzatilgan segment fragmentlarning turli diapazonlarini o'z ichiga olishi mumkin, shuning uchun allaqachon to'g'ri qabul qilingan bayt raqamlarini aniqlash uchun juda ehtiyotkorlik bilan boshqarish kerak bo'ladi. Biroq, oqimdagi har bir bayt o'z ofsetiga ko'ra noyob tarzda aniqlanganligi sababli, bu vazifani bajarish mumkin.

TCP ushbu muammolarni hal qila olishi va ularni samarali hal qilishi kerak. TCP oqimlarining ishlashini optimallashtirish uchun juda ko'p kuch sarflandi. Keyingi bo'limda biz TCP protokolining turli xil ilovalarida ishlatiladigan bir nechta algoritmlarni ko'rib chiqamiz.

TCP segmenti sarlavhasi

Har bir segment 20 baytlik qattiq formatli sarlavha bilan boshlanadi. Undan keyin qo'shimcha maydonlar bo'lishi mumkin. Qo'shimcha maydonlardan keyin 65,535 - 20 - 20 = 65,495 baytgacha ma'lumot bo'lishi mumkin, bu erda birinchi 20 bayt IP sarlavhasi, ikkinchisi esa TCP sarlavhasi. Segmentlarda ma'lumotlar bo'lmasligi mumkin. Bunday segmentlar ko'pincha tasdiqlash va xabarlarni boshqarish uchun ishlatiladi.

Keling, TCP sarlavhasi maydonini maydon bo'yicha ko'rib chiqaylik. Qabul qiluvchi porti va manba porti maydonlari mahalliy ulanish so'nggi nuqtalarining identifikatorlari hisoblanadi. Port raqami xost IP-manzili bilan birga noyob 48 bitli oxirgi nuqta identifikatorini tashkil qiladi. Manba va maqsad bilan bog'liq bo'lgan bunday identifikatorlar juftligi ulanishni noyob tarzda aniqlaydi.

Tartib raqami va Tasdiqlash raqami maydonlari odatiy funktsiyalarini bajaradi. E'tibor bering, "Tasdiqlash raqami" maydoni oxirgi qabul qilingan baytni emas, balki kutilgan keyingi baytni bildiradi. Ikkalasi ham 32 bitli, chunki TCP oqimidagi ma'lumotlarning har bir bayti raqamlangan.

TCP Header Length maydonida 32 bitli so'zlar bilan ifodalangan TCP sarlavhasining o'lchami mavjud. Ushbu ma'lumot zarur, chunki ixtiyoriy maydonlar maydoni va u bilan birga butun sarlavha o'zgaruvchan uzunlikda bo'lishi mumkin. Asosan, bu maydon 32 bitli so'zlar bilan o'lchanadigan segment boshidan ma'lumotlar maydoniga qadar ofsetni belgilaydi. Bu sarlavha uzunligi bilan bir xil.

Keyinchalik foydalanilmagan 6 bitli maydon keladi. Bu sohaning chorak asr davomida saqlanib qolganligi TCP dizayni qanchalik puxta o‘ylanganligidan dalolat beradi.

Undan keyin oltita 1-bitli bayroqlar keladi. Shoshilinch ma'lumotlar ko'rsatkichi maydonidan foydalanganda URG biti 1 ga o'rnatiladi, u joriy bayt tartib raqamidan shoshilinch ma'lumotlar joylashuvigacha bo'lgan baytni o'z ichiga oladi. TCP uzilish xabarlarini shunday amalga oshiradi. Yuqorida aytib o'tilganidek, TCP protokoli uzilish sababi bilan qiziqmasdan, faqat foydalanuvchi signalini qabul qiluvchiga etkazib berishni ta'minlaydi.

Agar ACK biti 1 ga o'rnatilgan bo'lsa, Tasdiqlash raqami maydonida mazmunli ma'lumotlar mavjud. Aks holda, bu segmentda tasdiq yo'q va Tasdiqlash raqami maydoni shunchaki e'tiborga olinmaydi.

PSH biti mohiyatan PUSH bayrog‘i bo‘lib, jo‘natuvchiga ma’lumotlarni paketni qabul qilgandan so‘ng dasturga to‘la bo‘lgunga qadar buferda saqlash o‘rniga uni yuborishni buyuradi. (Qabul qiluvchi samaradorlikni oshirish uchun bufer qilishi mumkin.)

RST biti xostning ishlamay qolishi yoki boshqa sabablarga ko'ra boshi berk ko'chaga kirib qolgan ulanish holatini tiklash uchun ishlatiladi. Shuningdek, u noto'g'ri segmentni yoki ulanishni yaratishga urinishni rad etish uchun ishlatiladi. Agar siz RST bit o'rnatilgan segmentni olsangiz, ba'zi muammo bor.

SYN biti ulanishni o'rnatish uchun ishlatiladi. Ulanish so'rovi SYN biti = 1 va ACK biti = 0 ga ega, ya'ni tasdiqlash maydoni ishlatilmaydi. Ushbu so'rovga javob tasdiqni o'z ichiga oladi, shuning uchun bu bitlarning qiymatlari: SYN= 1, ACK- 1. Shunday qilib, SYN biti ULANISH SO'ROV va ULANISH QABUL QILGAN segmentlarini ko'rsatish uchun ishlatiladi va ACK bitidan foydalaniladi. ularni bir-biridan farqlash uchun.

FIN biti ulanishni tugatish uchun ishlatiladi. Bu jo'natuvchida boshqa uzatiladigan ma'lumotlar yo'qligini ko'rsatadi. Biroq, ulanish yopilgandan keyin ham, jarayon cheksiz muddatga ma'lumotlarni olishda davom etishi mumkin. FIN va SYN bitlari bo'lgan segmentlar to'g'ri tartibda bajarilishini ta'minlash uchun tartib raqamlariga ega.

TCP protokolidagi oqimni boshqarish o'zgaruvchan o'lchamdagi toymasin oyna yordamida amalga oshiriladi. Oyna hajmi maydoni tasdiq baytidan keyin qancha bayt jo'natish mumkinligini bildiradi. "Oyna hajmi" maydonining qiymati nolga teng bo'lishi mumkin, ya'ni "Tasdiqlash raqami-1"gacha bo'lgan barcha baytlar olingan, ammo qabul qiluvchi hozirda ba'zi muammolarga duch kelmoqda va qolgan baytlarni hali ololmaydi. Keyingi uzatish uchun ruxsatni bir xil Tasdiqlash raqami maydoni qiymatiga va nolga teng bo'lmagan Oyna hajmi maydoni qiymatiga ega segmentni yuborish orqali olish mumkin.

Ba'zi protokollarda kadrni tasdiqlash uzatishni davom ettirish uchun ruxsatnomalar bilan bog'liq. Bu bog'liqlik ushbu protokollarda qat'iy belgilangan toymasin oyna o'lchamining natijasidir. TCP-da ma'lumotlarni uzatish ruxsatnomalaridan tasdiqlar ajratilgan. Aslini olganda, qabul qiluvchi: "Men k-rogacha bayt oldim, lekin hozir ma'lumot olishni davom ettirmoqchi emasman", deb aytishi mumkin. Ushbu bo'linish (o'zgaruvchan o'lchamdagi toymasin oyna sifatida ifodalangan) protokolga qo'shimcha moslashuvchanlikni beradi. Quyida biz ushbu jihatni batafsil muhokama qilamiz.

Ishonchlilikni oshirish uchun Checksum maydoni ishlatiladi. U sarlavha, ma'lumotlar va psevdo-sarlavhaning nazorat yig'indisini o'z ichiga oladi. Hisob-kitoblarni amalga oshirishda Checksum maydoni nolga o'rnatiladi va agar uning uzunligi toq son bo'lsa, ma'lumotlar maydoni nol bayt bilan to'ldiriladi. Tekshirish yig'indisi algoritmi oddiygina ikkita to'ldiruvchiga barcha 16 bitli so'zlarni qo'shib, keyin butun yig'indi to'ldiruvchisini hisoblab chiqadi. Natijada, qabul qiluvchi butun segmentni, shu jumladan Checksum maydonini tekshirganda, natija 0 bo'lishi kerak.

Pseudo-sarlavha 32 bitli manba va maqsad IP manzillarini, TCP uchun protokol raqamini (6) va TCP segmenti uchun baytlarni (shu jumladan sarlavha) o'z ichiga oladi. TCP nazorat summasiga psevdo-sarlavhani kiritish noto'g'ri yuborilgan paketlarni aniqlashga yordam beradi, garchi u protokol ierarxiyasini buzsa ham, undagi IP manzillar TCP qatlamiga emas, balki IP qatlamiga tegishli. UDP nazorat summasi uchun bir xil psevdo-sarlavhadan foydalanadi.

Ixtiyoriy maydonlar maydoni standart sarlavha bilan qamrab olinmagan qo'shimcha imkoniyatlarni taqdim etadi. Ushbu maydonlardan birini ishlatib, har bir xost qabul qilishi mumkin bo'lgan maksimal yuk maydoni hajmini belgilashi mumkin. Amaldagi segmentlarning o'lchami qanchalik katta bo'lsa, samaradorlik shunchalik yuqori bo'ladi, chunki u 20 baytlik sarlavhalarning qo'shimcha xarajatlarini kamaytiradi, lekin hamma xostlar juda katta segmentlarni qabul qila olmaydi. Ulanishni o'rnatish vaqtida xostlar bir-birlari bilan maksimal yuk maydoni hajmi haqida xabar berishlari mumkin. Odatiy bo'lib, bu hajm 536 baytni tashkil qiladi. Barcha xostlar 536 + 20 = 556 bayt o'lchamdagi TCP segmentlarini qabul qilishlari kerak. Har bir yo'nalish o'zining maksimal yuk maydoni hajmiga ega bo'lishi mumkin.

Yuqori uzatish tezligi va/yoki yuqori kechikish vaqti bo'lgan liniyalar uchun 64 KB oyna juda kichik. Shunday qilib, TZ liniyasi (44,736 Mbit / s) uchun to'liq oyna faqat 12 milodiy tezlikda liniyaga uzatilishi mumkin. Agar aylanma safar vaqti 50 ms (kontinental optik kabel uchun odatiy) bo'lsa, jo'natuvchi vaqtning 3/4 qismini tasdiqlashni kutishga sarflaydi. Sun'iy yo'ldosh orqali aloqa qilganda, vaziyat yanada yomonlashadi. Kattaroq oyna o'lchami samaradorlikni oshiradi, ammo 16-bitli oyna o'lchami maydoni bunga yo'l qo'ymaydi. RFC 1323 yangi oyna shkalasi parametrini taklif qildi, uning qiymati ulanishni o'rnatishda ikkita xost kelishib olishi mumkin. Bu raqam Oyna hajmi maydonini 14 bitgacha chapga siljitish imkonini beradi, bu esa oyna hajmini 230 bayt (1 GB) gacha kengaytirish imkonini beradi. Hozirgi vaqtda ko'pgina TCP protokoli ilovalari ushbu xususiyatni qo'llab-quvvatlaydi.

RFC 1106 da taklif qilingan va hozirda keng qoʻllaniladigan yana bir variant orqaga qaytish oʻrniga tanlab qayta urinib koʻrish protokolidan foydalanishdir.Agar maqsad bitta yomon segmentni va undan keyin koʻp sonli yaxshi segmentlarni qabul qilsa, oddiy TCP protokoli oxir-oqibat vaqt tugaydi va u oʻz vaqtida tugaydi. barcha tan olinmagan segmentlarni, shu jumladan to'g'ri qabul qilinganlarni ham qayta yuboring. RFC 1106 qabul qiluvchiga bitta segment yoki bir nechta segmentni so'rashga ruxsat berish uchun salbiy tasdiqlardan (NAK) foydalanishni taklif qildi. Qabul qilingandan so'ng, qabul qiluvchi tomon buferda saqlangan barcha ma'lumotlarni tan olishi mumkin, bu esa qayta uzatiladigan ma'lumotlar miqdorini kamaytiradi.

Bitlar 0 - 7 8 - 15 16 - 23 24 - 31
0 Manba manzili
32
64
96
128 Qabul qiluvchining manzili
160
192
224
256 UDP uzunligi
288 Nollar Keyingi sarlavha
320 Manba porti Belgilangan port
352 Uzunlik Tekshirish summasi
384+
Ma'lumotlar

Manba manzili IPv6 sarlavhasi bilan bir xil. Qabul qiluvchining manzili - oxirgi oluvchi; agar IPv6 paketida Marshrutlash sarlavhasi bo'lmasa, bu IPv6 sarlavhasidan maqsad manzil bo'ladi, aks holda boshlang'ich tugunda marshrutlash sarlavhasining oxirgi elementining manzili va qabul qiluvchi tugunda, IPv6 sarlavhasidan maqsad manzil. Keyingi sarlavha qiymati protokol qiymatiga teng - UDP uchun 17. UDP uzunligi - UDP sarlavhasi va ma'lumotlarining uzunligi.

Ishonchlilik va ortiqcha yuk muammolarini hal qilish

Ishonchliligi yo'qligi sababli, UDP ilovalari ba'zi yo'qotishlar, xatoliklar va takrorlanishlarga tayyorlanishi kerak. Ulardan ba'zilari (masalan, TFTP) ixtiyoriy ravishda dastur darajasida elementar ishonchlilik mexanizmlarini qo'shishi mumkin.

Ammo ko'pincha bunday mexanizmlar UDP ilovalari tomonidan ishlatilmaydi va hatto ularga aralashadi. Streaming media, real-time multiplayer oʻyinlari va VoIP koʻpincha UDP protokolidan foydalanadigan ilovalarga misol boʻla oladi. Ushbu maxsus ilovalarda paketlarni yo'qotish odatda katta muammo emas. Agar dastur yuqori darajadagi ishonchlilikni talab qilsa, siz boshqa protokoldan (TCP) foydalanishingiz yoki xatoga chidamli kodlash usullaridan foydalanishingiz mumkin (O'chirish kodi). ru uz).

Yana jiddiy potentsial muammo shundaki, TCP dan farqli o'laroq, UDP-ga asoslangan ilovalar tiqilib qolishni nazorat qilish va oldini olish mexanizmlariga ega emas. Mavjud tarmoqli kengligining muhim qismini iste'mol qiladigan tiqilinchga sezgir UDP ilovalari Internet barqarorligini buzishi mumkin.

Tarmoq mexanizmlari nazoratsiz, yuqori tezlikdagi yuklar paytida tirbandlikning mumkin bo'lgan ta'sirini kamaytirish uchun ishlab chiqilgan. Paket navbatlari va tushirish texnikasidan foydalanadigan marshrutizatorlar kabi tarmoq elementlari ko'pincha haddan tashqari UDP trafigini sekinlashtiradigan yagona vositadir. DCCP (Datagram Congestion Control Protocol) ushbu potentsial muammoni qisman hal qilish uchun oxirgi xostga oqimli media kabi yuqori tezlikdagi UDP oqimlari uchun tiqilib qolishni nazorat qilish mexanizmlarini qo'shish orqali ishlab chiqilgan.

Ilovalar

Ko'pgina asosiy Internet ilovalari UDP dan foydalanadi, jumladan DNS (bu erda so'rovlar tez bo'lishi kerak va faqat bitta so'rovdan keyin bitta javob paketidan iborat bo'lishi kerak), Simple Network Management Protocol (SNMP), Routing Information Protocol (RIP), Dynamic Host Configuration (DHCP) .

Ovozli va video trafik odatda UDP yordamida amalga oshiriladi. Jonli video va audio oqim protokollari tasodifiy paket yo'qotishlarini bartaraf etish uchun mo'ljallangan, shuning uchun yo'qolgan paketlar qayta uzatilganda katta kechikishlar o'rniga sifat biroz yomonlashadi. TCP va UDP ikkalasi ham bir tarmoqda ishlaganligi sababli, ko'pgina kompaniyalar ushbu real vaqtda ilovalardan UDP trafigining yaqinda o'sishi ma'lumotlar bazasi yoki buxgalteriya tizimlari kabi TCP ilovalarining ishlashiga to'sqinlik qilayotganini payqashdi. Ishbilarmonlik va real vaqtda ilovalar kompaniyalar uchun muhim bo'lganligi sababli, muammolarga sifatli yechimlarni ishlab chiqish ba'zilar tomonidan ustuvor vazifa sifatida ko'riladi.

UDP va TCP ni solishtirish

TCP ulanishga yo'naltirilgan protokol bo'lib, ikkita xost o'rtasida aloqa o'rnatish uchun "qo'l siqish" talab qilinadi. Ulanish o'rnatilgandan so'ng, foydalanuvchilar har ikki yo'nalishda ham ma'lumotlarni yuborishlari mumkin.

  • Ishonchlilik- TCP xabarni tasdiqlash, qayta uzatish va kutish vaqtini boshqaradi. Xabarni etkazish uchun ko'p urinishlar qilingan. Agar u yo'lda yo'qolib qolsa, server yo'qolgan qismni yana so'raydi. TCP-da etishmayotgan ma'lumotlar yoki (bir nechta vaqt tugashi holatlarida) uzilgan ulanishlar yo'q.
  • Tartiblilik- agar ikkita xabar ketma-ket yuborilsa, birinchi xabar birinchi bo'lib qabul qiluvchi ilovaga etib boradi. Agar ma'lumotlar bo'laklari noto'g'ri tartibda kelsa, TCP barcha ma'lumotlar buyurtma qilinmaguncha va dasturga yuborilgunga qadar tartibsiz ma'lumotlarni buferga yuboradi.
  • Og'irlik- TCP ma'lumotlarni yuborishdan oldin rozetkaga ulanishni o'rnatish uchun uchta paketni talab qiladi. TCP ishonchlilik va tirbandlikni nazorat qiladi.
  • Ip o'tkazish- ma'lumotlar baytlar oqimi sifatida o'qiladi, xabar chegaralari yoki segmentlari uchun maxsus belgilar uzatilmaydi.

UDP oddiyroq, xabarga asoslangan, ulanishsiz protokoldir. Ushbu turdagi protokollar ikkita xost o'rtasida maxsus aloqa o'rnatmaydi. Aloqa axborotni qabul qiluvchining tayyorligi yoki holatini tekshirmasdan turib, manbadan qabul qiluvchiga bir yo‘nalishda uzatish orqali erishiladi. Ovozli IP (TCP/IP) ilovalarida UDP TCP ga nisbatan afzalliklarga ega, bunda har qanday qo'l siqish yaxshi ovozli aloqani oldini oladi. VoIP-da oxirgi foydalanuvchilar real vaqt rejimida xabar qabul qilinganligi to'g'risida kerakli tasdiqni taqdim etishlari kutiladi.

  • Ishonchsiz- xabar yuborilganda, uning manzilga etib borishi noma'lum - u yo'lda adashib qolishi mumkin. Tasdiqlash, qayta uzatish, vaqt tugashi kabi tushunchalar mavjud emas.
  • Tartibsizlik- agar bitta qabul qiluvchiga ikkita xabar yuborilsa, ularning maqsadga erishish tartibini oldindan aytib bo'lmaydi.
  • Yengillik- xabarlarni buyurtma qilish yo'q, ulanishni kuzatish yo'q va hokazo. Bu IP-da yaratilgan kichik transport qatlami.
  • Datagrams- paketlar alohida-alohida yuboriladi va ular kelgan taqdirdagina yaxlitligi tekshiriladi. Paketlar qabul qilingandan so'ng hurmat qilinadigan ma'lum chegaralarga ega, ya'ni qabul qiluvchi rozetkadagi o'qish operatsiyasi xabarni dastlab yuborilganidek ishlab chiqaradi.
  • Haddan tashqari yuk nazorati yo'q- UDPning o'zi tirbandlikdan qochmaydi. Yuqori o'tkazish qobiliyatiga ega ilovalar, agar ular ilova darajasidagi boshqaruvlarni amalga oshirmasa, tiqilib qolishiga olib kelishi mumkin.

UDP (User Datagram Protocol) - IP tarmoqlari orqali ulanishsiz ma'lumotlarni uzatish uchun transport protokoli. Bu OSI modelining eng oddiy transport sathi protokollaridan biridir. Uning IP identifikatori 0x11.

UDP odatda paketlarni yo'qotish mumkin bo'lgan va qayta urinib ko'rish qiyin yoki asossiz bo'lgan video oqimlari va kompyuter o'yinlari kabi ilovalarda yoki ulanishni yaratish Qayta yuborishdan ko'ra ko'proq resurslarni talab qiladigan savollarga javob ilovalarida (DNS so'rovlari kabi) ishlatiladi. Aslida, UDP funktsiyalari multiplekslash va demultiplekslash operatsiyalariga, shuningdek, ma'lumotlardagi oddiy xatolarni tekshirishga tushadi. Shunday qilib, U DP dan foydalanilganda, dastur deyarli to'g'ridan-to'g'ri IP tarmoq sathi protokoli bilan bog'lanadi.

UDP dastur sathidan xabarlarni qabul qiladi, qabul qiluvchi tomonidan demultiplekslash uchun ularga manba va maqsad port raqamlarini, shuningdek, ikkita boshqa maxsus maydonlarni qo'shadi va natijada olingan segmentni tarmoq qatlamiga o'tkazadi. Tarmoq qatlami segmentni datagrammaga o'rab oladi va uni "iloji bo'lsa" maqsadli xostga yo'naltiradi. Agar ikkinchisi segmentni muvaffaqiyatli qabul qilsa, UDP maqsad port raqami maydonidan foydalanib segment ma'lumotlarini kerakli jarayonga yo'naltiradi. Shuning uchun UDP ulanishsiz ma'lumotlarni uzatishni amalga oshiradi.

UDP protokol xizmatlaridan foydalanadigan amaliy qatlam protokoliga misol DNS hisoblanadi. DNS ilovasi so'rovni yaratganda, u DNS xabarini yaratadi va uni UDP protokoliga uzatadi.


UDP va TCP protokollarini solishtirish.

Agar ilova xabarni yetkazib berishni tasdiqlashni talab qilsa, u protokoldan foydalanadi TCP. TCP xabarni segmentlar deb ataladigan kichikroq qismlarga ajratadi. Ushbu segmentlar ketma-ket raqamlanadi va IP protokoliga o'tkaziladi, keyin esa paketlarni yig'adi. TCP ma'lum bir dastur tomonidan ma'lum bir xostga yuborilgan segmentlar sonini kuzatib boradi. Agar jo'natuvchi ma'lum vaqt ichida tasdiqni olmagan bo'lsa, TCP bu segmentlarni yetim deb hisoblaydi va ularni qayta yuboradi. Xabarning faqat yo'qolgan qismi qayta yuboriladi, butun xabar emas.

Qabul qiluvchi tugundagi TCP protokoli xabar segmentlarini qayta yig'ish va ularni tegishli dasturga uzatish uchun javobgardir.

FTP va HTTP ma'lumotlarni uzatish uchun TCP dan foydalanadigan ilovalarga misoldir.

Protokol UDP kafolatlanmagan ma'lumotlarni yetkazib berishni amalga oshiradi va qabul qiluvchidan tasdiqlashni talab qilmaydi. UDP - bu Internet protokoli (VoIP) orqali audio, video va ovozni uzatish uchun afzal qilingan protokol. Yetkazib berishni tasdiqlash faqat ma'lumotlarni uzatish jarayonini sekinlashtiradi va qayta yetkazib berish tavsiya etilmaydi. UDP protokolidan foydalanishga misol sifatida Internet radiosini keltirish mumkin.


ARP protokoli. Ilova.

ARP(inglizcha) Manzilni hal qilish protokoli- manzilni aniqlash protokoli) - kompyuter tarmoqlarida qo'llaniladigan past darajadagi protokol bo'lib, ma'lum tarmoq sathi manzilidan bog'lanish qatlami manzilini aniqlash uchun mo'ljallangan. Ushbu protokol Ethernet tepasida qurilgan IP tarmoqlarining keng tarqalganligi tufayli eng keng tarqalgan bo'lib qoldi, chunki deyarli 100% hollarda ARP bu kombinatsiya bilan qo'llaniladi. Protokol tavsifi 1982 yil noyabr oyida RFC 826 da nashr etilgan. ARP Ethernet segmenti orqali IP-paketlarni uzatish uchun mo'ljallangan. Shu bilan birga, ARP uchun taklif qilingan umumiy printsip boshqa turdagi tarmoqlar uchun ham qo'llanilgan bo'lishi mumkin.

ARP xabarlarining quyidagi turlari mavjud: ARP so'rovi va ARP javobi. Yuboruvchi tizim qabul qiluvchi tizimning jismoniy manzilini so'rash uchun ARP so'rovidan foydalanadi. Javob (maqsad hostining jismoniy manzili) ARP javobi shaklida keladi.

Tarmoq qatlami paketi Ethernet segmenti orqali yuborilishidan oldin, tarmoq stegi ARP keshini tekshiradi va maqsad xost haqida kerakli ma'lumotlar allaqachon ro'yxatdan o'tganligini tekshiradi. Agar ARP keshida bunday yozuv bo'lmasa, u holda ARP translyatsiyasi so'rovi amalga oshiriladi. Tarmoqdagi qurilmalar uchun ushbu so'rov quyidagi ma'noga ega: "Quyidagi IP manzilga ega qurilmaning jismoniy manzilini kimdir biladimi?" Ushbu IP manzilga ega bo'lgan qabul qiluvchi ushbu paketni olganida, u javob berishi kerak: “Ha, bu mening IP manzilim. Mening jismoniy manzilim: …” Shundan so‘ng jo‘natuvchi o‘zining ARP keshini yangilaydi va ma’lumotni qabul qiluvchiga uzata oladi.

ARP kesh yozuvlari statik yoki dinamik bo'lishi mumkin. Yuqorida keltirilgan misol dinamik kesh yozuvini tavsiflaydi. ARP jadvalida statik yozuvlarni ham yaratishingiz mumkin.

ARP dastlab nafaqat IP protokoli uchun ishlab chiqilgan, balki hozirda asosan IP va MAC manzillarini xaritalash uchun ishlatiladi.

Ish printsipi

IP-manzilni mahalliy manzilga moslashtirishi kerak bo'lgan tugun ARP so'rovini hosil qiladi, uni bog'lovchi qatlam protokoli ramkasiga kiritadi, unda ma'lum IP-manzilni ko'rsatadi va so'rovni uzatadi.

Mahalliy tarmoqdagi barcha xostlar ARP so'rovini oladi va u erda ko'rsatilgan IP manzilni o'zlari bilan solishtiradi.

Agar ular mos kelsa, tugun ARP javobini yaratadi, unda u o'zining IP manzilini va mahalliy manzilini ko'rsatadi va uni allaqachon yo'naltirilgan yuboradi, chunki ARP so'rovida jo'natuvchi o'zining mahalliy manzilini ko'rsatadi.

Menga maqolalar turkumi juda yoqadi, bundan tashqari men har doim o‘zimni tarjimon sifatida sinab ko‘rmoqchi edim. Ehtimol, maqola tajribali ishlab chiquvchilar uchun juda ravshan bo'lib tuyulishi mumkin, ammo menimcha, bu har qanday holatda ham foydali bo'ladi.

Salom, mening ismim Glenn Fidler va men sizni onlayn kitobimning birinchi maqolasi bilan tabriklayman, O'yinni ishlab chiquvchilar uchun tarmoq dasturlash.

Ushbu maqolada biz tarmoq dasturlashning eng asosiy jihatlari - tarmoq orqali ma'lumotlarni qabul qilish va uzatishdan boshlaymiz. Ma'lumotlarni qabul qilish va uzatish tarmoq dasturchilari bajaradigan barcha vazifalarning eng asosiy va eng oddiy qismidir, lekin qaysi yo'lni davom ettirish yaxshiroq ekanligini aniqlash qiyin. Ushbu qismga etarlicha e'tibor bering - agar sizda tushunmovchilik bo'lsa, bu keyinchalik multiplayer o'yiningiz uchun dahshatli oqibatlarga olib kelishi mumkin!

Siz rozetkalar haqida allaqachon eshitgansiz va ular ikkita asosiy turda - TCP va UDPda kelishini bilishingiz mumkin. Ko'p o'yinchi o'yinini ishlab chiqishda qaror qabul qilishingiz kerak bo'lgan birinchi narsa bu qanday rozetkalardan foydalanish - TCP, UDP yoki ikkalasi?

Soket turini tanlash butunlay siz ishlab chiqayotgan o'yin janriga bog'liq. Ushbu maqolalar seriyasida men siz Halo, Battlefield 1942, Quake, Unreal, CounterStrike, Team Fortress va boshqalar kabi jangovar o'yin yozyapsiz deb taxmin qilaman.

Endi biz rozetkalarning har bir turining xususiyatlarini batafsil ko'rib chiqamiz (biz harakat uslubidagi o'yinni ishlab chiqayotganimizni hisobga olgan holda) va Internet qanday ishlashining tafsilotlariga biroz chuqurroq kirib boramiz. Batafsil ko'rib chiqilgandan so'ng, to'g'ri variant aniq bo'ladi!

TCP "uzatishni boshqarish protokoli" degan ma'noni anglatadi va IP "internet protokoli" degan ma'noni anglatadi. Ular birgalikda Internetda qilayotgan deyarli hamma narsani, ya'ni veb-sahifalarni ko'rishdan tortib IRC va elektron pochta aloqalarigacha - barchasi TCP/IP da ishlaydi.

Agar siz TCP rozetkalaridan foydalangan bo'lsangiz, TCP ishonchli ulanish printsipidan foydalanadigan protokol ekanligini bilishingiz kerak. Bu shuni anglatadiki, siz ikkita kompyuter o'rtasida aloqa o'rnatasiz va keyin ular o'rtasida ma'lumot yuborasiz, xuddi bitta kompyuterdagi faylga ma'lumot yozib, boshqa kompyuterda xuddi shu fayldan o'qiyotgandek.

Bunday holda, ulanish ishonchli va izchil hisoblanadi - ya'ni siz yuborgan barcha ma'lumotlar qabul qiluvchiga qanday tartibda yuborilgan bo'lsa, xuddi shunday tartibda etib borishi kafolatlanadi. Shuningdek, TCP ulanishini ma'lumotlarning uzluksiz oqimi deb hisoblash mumkin - protokolning o'zi ma'lumotlarni paketlarga ajratish va ularni tarmoq orqali yuborish haqida g'amxo'rlik qiladi.

Yana bir bor - hamma narsa oddiy yozish yoki fayldan o'qish kabi oddiy. Boshlang'ich Uotson!

Ammo bu foydalanish qulayligi aslida "kaput ostida" sodir bo'ladigan narsadan, pastroq darajada - IP protokoli darajasidan butunlay farq qiladi.

Bu darajada ulanish tushunchasi mavjud emas - buning o'rniga alohida paketlar bir kompyuterdan ikkinchisiga uzatiladi. Siz bu jarayonni odamlar bilan to'la xonada bir odamdan ikkinchisiga eslatma o'tkazish deb o'ylashingiz mumkin: oxirida eslatma kerakli odamga tushadi, lekin ayni paytda ko'p qo'llardan o'tadi.

Biroq, eslatma adresatga etib borishiga kafolat yo'q. Yuboruvchi shunchaki xat keladi degan umidda xat jo'natadi, lekin xat kelgan-kelmaganini ham bilmaydi - oluvchi javob yozishga qaror qilmaguncha.
Tabiiyki, aslida hamma narsa biroz murakkabroq, chunki jo'natuvchi kompyuter tarmoqdagi kompyuterlarning aniq ketma-ketligini bilmaydi, bu orqali paket imkon qadar tezroq yetib borishi uchun uzatilishi kerak. Ba'zan IP bir xil paketning bir nechta nusxalarini uzatadi, ular manzilga erishish uchun turli yo'llarni bosib o'tishi mumkin va har xil vaqtda kelishi mumkin.

Agar biz kompyuterlar o'rtasida ma'lumotni faylni o'qish/yozish uslubida emas, balki to'g'ridan-to'g'ri individual paketlarni yuborish va qabul qilish orqali uzatishni istasak nima bo'ladi?

Biz buni UDP yordamida amalga oshirishimiz mumkin. UDP "foydalanuvchi datagram protokoli" degan ma'noni anglatadi va u IP ustida ishlaydi (masalan, TCP), lekin ko'p funktsiyani qo'shish o'rniga bu IP-ga kichik qo'shimcha hisoblanadi.

UDP-dan foydalanib, biz paketni ma'lum bir IP-manzilga (masalan, 112.140.20.10) va portga (masalan, 52423) yuborishimiz mumkin va u belgilangan joyga yetguncha (yoki yo'qolib ketguncha) kompyuterdan kompyuterga uzatiladi. yo'l).

Shu bilan birga, qabul qiluvchi tomonda biz ma'lum bir portni (bizning holimizda 52423) tinglagan holda o'tiramiz va kutamiz va kimdirdan paket kelganida (hech qanday ulanish ishlatilmasligini unutmang), biz bu haqda bildirishnoma olamiz. jo'natuvchi kompyuterning manzili va porti, paket hajmi va shundan so'ng biz ushbu paketdagi ma'lumotlarni o'qiy olamiz.

UDP protokoli ma'lumotlarni yetkazib berishni kafolatlamaydi. Amalda, ko'pchilik paketlar, albatta, keladi, lekin har doim taxminan 1-5% yo'qotish bo'ladi va ba'zida paketlar umuman kelmaydigan vaqtlar mavjud (esda tutingki, jo'natuvchi va qabul qiluvchi o'rtasida minglab kompyuterlar bo'lishi mumkin, ularning har qandayida u ishlamay qolishi yoki ishdan chiqishi mumkin).

Shuningdek, UDP paketlarni etkazib berish tartibini kafolatlamaydi. Siz beshta paketni tartibda yuborishingiz mumkin - 1, 2, 3, 4, 5 - lekin ular butunlay boshqacha tartibda kelishi mumkin - masalan, 3, 1, 2, 5, 4. Shunga qaramay, amalda ular katta ehtimol bilan keladi. Ko'pincha to'g'ri tartibda kelasiz, lekin bunga tayanolmaysiz!

Va nihoyat, UDP IP-ga ko'p qo'shmasa-da, u bir narsani kafolatlaydi. Agar siz paketni yo'naltirsangiz, u to'liq keladi yoki umuman kelmaydi. Shunday qilib, agar siz 256 baytlik paketni boshqa kompyuterga yuborsangiz, u paketdan faqat birinchi 100 baytni qabul qila olmaydi - u barcha 256 baytni olishi kerak. Bu haqiqatan ham UDP protokoli kafolatlaydigan yagona narsa - qolgan hamma narsa sizning elkangizga tushadi.

Shunday qilib, biz qaror qabul qilishimiz kerak - TCP yoki UDP soketlaridan foydalanishimiz kerakmi? Keling, ularning xususiyatlarini ko'rib chiqaylik:

  • Ulanish printsipidan foydalanadi
  • Yetkazib berish va qayta ishlashni kafolatlaydi
  • Ma'lumotni avtomatik ravishda paketlarga ajratadi
  • Ma'lumotlar juda intensiv yuborilmasligini ta'minlaydi (ma'lumotlar oqimini boshqarish)
  • Foydalanish oson - fayldan yozish/o'qish kabi
UDP:
  • Ulanish printsipidan foydalanmaydi - uni qo'lda amalga oshirishingiz kerak bo'ladi
  • Paketlarni yetkazib berish va yetkazib berish tartibini kafolatlamaydi - ular noto'g'ri tartibda, dublikat bilan kelishi yoki umuman kelmasligi mumkin!
  • Siz qo'lda ma'lumotlarni paketlarga bo'lishingiz va ularni yuborishingiz kerak
  • Ma'lumotni juda intensiv yuborishdan ehtiyot bo'lishingiz kerak
  • Agar paket yo'qolsa, uni qandaydir tarzda kuzatib borishingiz va kerak bo'lganda uni qayta yuborishingiz kerak
Bunday ro'yxat bilan yechim aniq ko'rinadi - TCP bizga kerak bo'lgan barcha funktsiyalarni amalga oshiradi va ulardan foydalanish osonroq, UDP dan foydalanish esa hamma narsani noldan qo'lda yozish bilan gemorroyni va'da qiladi. Shunday qilib, biz TCP dan foydalanamiz, to'g'rimi?

Lekin yoq.

TCP-dan foydalanish, ehtimol, ko'p o'yinchi o'yinini ishlab chiqishda qilishingiz mumkin bo'lgan eng yomon xatodir. Buning sababini tushunish uchun, keling, TCP dan foydalanishni nima osonlashtiradiganini ko'rib chiqaylik!

TCP qanday ishlaydi
TCP va UDP ikkalasi ham IP ustida ishlaydi, lekin aslida ular butunlay boshqacha. UDP o'zini IP bilan juda o'xshash tutadi, TCP esa foydalanuvchini barcha paketli muammolardan chetga surib, o'zaro ta'sirni faylni o'qish/yozishga o'xshash qiladi.

Xo'sh, u buni qanday qiladi?

Birinchidan, TCP ma'lumotlar oqimining abstraktsiyasidan foydalanadi - siz ushbu oqimga shunchaki bayt ma'lumotlarni yozishingiz mumkin va TCP uning belgilangan joyga etib borishiga ishonch hosil qiladi. IP ma'lumotlarni paketlarda uzatganligi va TCP IP ustida ishlaganligi sababli, TCP foydalanuvchining kirish oqimini alohida paketlarga ajratishi kerak. Shunday qilib, TCP ichida ba'zi mantiq ma'lumotlarni navbatga to'playdi va ular etarli bo'lganda, u paketni hosil qiladi va uni belgilangan joyga yuboradi.

Agar biz juda kichik paketlarni o'tkazishimiz kerak bo'lsa, bu xatti-harakatlar ko'p o'yinchi o'yinimiz uchun muammo bo'lishi mumkin. TCP ma'lum bir o'lchamdagi paketni (masalan, yuz baytdan ortiq) hosil qilish uchun etarli miqdorda to'planmaguncha ma'lumotlarimizni uzatmaslikka qaror qilishi mumkin. Va bu katta muammo, chunki mijozdan (pleyer tugmachalarini bosish) ma'lumotlarni imkon qadar tezroq serverga o'tkazish kerak va agar protokol tomonidan ma'lumotlarni buferlash tufayli kechikishlar bo'lsa, u holda mijoz tomonidagi o'yinchi uchun. o'yin yoqimli tarzda eng bo'lmaydi. Bunday holda, o'yin ob'ektlarini yangilash kechikish bilan va kamdan-kam hollarda sodir bo'ladi - holbuki biz ob'ektlarni o'z vaqtida va tez-tez yangilashimiz kerak.

TCP-da buni tuzatish imkoniyati mavjud - “TCP_NODELAY”. U protokolga ma'lumotlarning jo'natish navbatida to'planishini kutmaslik, balki darhol jo'natish kerakligini aytadi.

Afsuski, ushbu parametr o'rnatilgan bo'lsa ham, TCP onlayn o'yinlarda foydalanilganda juda ko'p muammolarga ega.

Barcha muammolarning ildizi TCP yo'qolgan yoki tartibsiz paketlarni qayta ishlash usulida yotadi, bu ishonchli va izchil ulanish xayolini yaratadi.

TCP ulanish ishonchliligini qanday ta'minlaydi
O'tkazishda TCP ma'lumotlar oqimini alohida paketlarga ajratadi, ularni ishonchsiz IP protokoli yordamida tarmoq orqali uzatadi va keyin qabul qiluvchi kompyuterda qabul qilingan paketlardan asl oqimni qayta tiklaydi.

Ammo paketlardan biri kelmasa nima bo'ladi? Yoki paketlar ishlamay qolganmi yoki dublikat bilan kelgan bo'lsa?

TCP qanday ishlashining tafsilotlarini chuqur o'rganmasdan (va bu juda murakkab mavzu - uni TCP/IP Illustrated da o'qishingiz mumkin), jarayon quyidagicha ko'rinadi: TCP paketni yuboradi, paket kelmaganligini aniqlaydi. , va bir xil paketni qabul qiluvchiga qayta yuboradi. Ikki nusxadagi paketlar qabul qiluvchi tomonida yo'q qilinadi va tartibsiz kelgan paketlar hamma narsa bo'lishi kerak bo'lgan tarzda - ishonchli va tartibda bo'lishi uchun qayta tartiblanadi.

Muammo shundaki, TCP ma'lumotlar oqimini shu tarzda "sinxronlashtirganda", agar paket yo'qolsa, yo'qolgan paket qayta yuborilmaguncha (va belgilangan manzil tomonidan qabul qilinmaguncha) uzatish to'xtaydi. Agar kutish vaqtida yangi ma'lumotlar kelib tushsa, ular navbatga qo'yiladi va yo'qolgan paket kelmaguncha uni o'qiy olmaysiz. Paketni qayta yuborish qancha vaqt oladi? Bu hech bo'lmaganda paketning aylanma vaqtini (TCP qaysi paketni qayta yuborishni aniqlaganda) va yo'qolgan paketni qayta yetkazib berish vaqtini oladi. Shunday qilib, agar kompyuterlar orasidagi ping 125 ms bo'lsa, paketni qayta uzatish soniyaning beshdan bir qismini, eng yomon holatda esa yarim soniyagacha davom etadi (tasavvur qiling-a, qayta yuborilgan paket to'satdan yo'qolib qolsa). Veseluxa!

Nima uchun hech qachon ko'p o'yinchi o'yinlari uchun TCP dan foydalanmasligingiz kerak
Onlayn o'yinlarda TCP dan foydalanish muammosi shundaki, brauzerlar, elektron pochta va boshqa ilovalardan farqli o'laroq, o'yinlar real vaqtda o'zaro ta'sirga tayanadi. O'yinning ko'plab jihatlari uchun, masalan, foydalanuvchi tugmachalarini bosish va o'yinchilarning o'yindagi pozitsiyasi, bir soniya oldin nima sodir bo'lganligi muhim emas, faqat o'yin dunyosining eng dolzarb holati.

Keling, ko'p o'yinchi o'yinining oddiy misolini ko'rib chiqaylik, masalan, 3D shooter. O'yinning tarmoq qismi juda sodda tarzda qurilgan: o'yin tsiklining har bir iteratsiyasida mijoz serverga o'yinchining barcha harakatlarining tavsifini yuboradi (bosilgan tugmalar, sichqonchaning holati va boshqalar) va har bir iteratsiya server ushbu ma'lumotlarni qayta ishlaydi. , o'yin dunyosining modelini yangilaydi va joriylarini dunyo ob'ektlarining mijoz pozitsiyalariga qaytaradi, shunda u o'yinchi uchun yangi ramka chizadi.

Shunday qilib, bizning o'yinimizda, agar paket tarmoq orqali uzatilayotganda yo'qolsa, o'yin to'xtaydi va paket qayta topshirilguncha kutadi. Mijoz tomonida o'yin ob'ektlari muzlab qoladi va serverda o'yinchilar ham harakat qila olmaydi yoki otishmaydi, chunki server yangi paketlarni qabul qila olmaydi. Yo'qotilgan paket nihoyat kelganda, u endi ahamiyatsiz bo'lgan eskirgan ma'lumotlarni o'z ichiga oladi. Bundan tashqari, bundan keyin kutish vaqtida navbatda to'plangan barcha paketlar ham keladi va ularning barchasi tsiklning bir iteratsiyasida qayta ishlanishi kerak. To'liq chalkashlik!

Afsuski, TCP ning bu xatti-harakatini o'zgartirishning hech qanday usuli yo'q va bunga hojat ham yo'q, chunki bu TCP ning ma'nosidir. Bu Internet orqali ma'lumotlar uzatishni ishonchli va izchil ma'lumotlar oqimiga aylantirish uchun zaruratdir.
Lekin bizga ishonchli va izchil ma’lumotlar oqimi kerak emas.

Mijozdan serverga imkon qadar tezroq olish uchun bizga maʼlumotlar kerak va biz maʼlumotlar qayta yuborilishini kutmoqchi emasmiz.
Shuning uchun siz hech qachon ko'p o'yinchi o'yinlari uchun TCP dan foydalanmasligingiz kerak.

Lekin kuting! Nega men UDP va TCP dan birgalikda foydalana olmayman?

Haqiqiy vaqtda o'yin ma'lumotlari, masalan, foydalanuvchi kliklari va o'yin dunyosi holati uchun faqat eng dolzarb ma'lumotlar muhim, ammo boshqa turdagi ma'lumotlar uchun, masalan, bir kompyuterdan boshqasiga yuborilgan buyruqlar to'plami, kanalning ishonchliligi va izchilligi. juda muhim bo'lishi mumkin.

Albatta, foydalanuvchi kiritishi va dunyo holati ma'lumotlari uchun UDP dan va yetkazib berilishi kafolatlanishi kerak bo'lgan ma'lumotlar uchun TCP dan foydalanish jozibador. Siz hatto buyruqlarning bir nechta "iplarini" yaratishingiz mumkin deb o'ylayotgan bo'lishingiz mumkin - masalan, biri yuklash darajalari uchun, ikkinchisi AI buyruqlari uchun. Siz shunday deb o'ylaysiz: "Agar darajani yuklash uchun ma'lumotlar paketi yo'qolib qolsa, menga AI guruhlari kerak emas, chunki ular mutlaqo bog'liq emas!" Bunday holda, siz haqsiz va har bir buyruq oqimi uchun TCP soketini yaratishga qaror qilishingiz mumkin.

Bir qarashda, bu ajoyib g'oya. Ammo muammo shundaki, TCP va UDP ikkalasi ham IP ustida ishlaganligi sababli, ikkala protokol paketlari bir-biriga ta'sir qiladi - allaqachon IP darajasida. Bu ta'sir qanday aniq namoyon bo'lishi juda murakkab savol bo'lib, u TCP-dagi ishonchlilik mexanizmlari bilan bog'liq. Lekin, har qanday holatda ham, TCP dan foydalanish odatda UDP paketining yo'qolishiga olib kelishini yodda tuting. Agar siz bu haqda ko'proq bilmoqchi bo'lsangiz, ushbu maqolani o'qishingiz mumkin.

Xulosa
Men faqat UDP dan foydalanishni emas, balki faqat UDP dan foydalanishni tavsiya qilaman va boshqa hech narsa emas. TCP va UDP dan birgalikda foydalanmang - buning o'rniga UDP asosida o'zingizga kerak bo'lgan TCP xususiyatlarini qanday amalga oshirishni o'rganing.

Keyingi maqolalarda men buni qanday qilishni aytaman - UDP-ga asoslangan ulanishlar yordamida o'z protokolingizni amalga oshirishdan, uzatish ishonchliligi va ma'lumotlar oqimini boshqarishni amalga oshirishgacha.

Xayrli kun, aziz o'quvchilar.
Ommabop talabga ko'ra, bugun men siz uchun kompyuter tarmog'i atamalarining asoslari bilan tanishtiradigan maqolani nashr etaman, xususan:

  • Tarmoq protokollari - bu qo'rqinchli nomlar nima va ular nima uchun ishlatiladi?
  • UDP, TCP, ICMP - nima, nima uchun va qanday farq
  • Hammaning IP manzili bor, lekin nima uchun bu narsa hamma ham bilmaydi :-)
  • Manzil niqobi (quyi tarmoq)
  • Gateway
  • Marshrutlash jadvallari haqida bir necha so'z
  • Portlar - ular aslida nima?
  • MAC manzili

Shunga o'xshash.

Maqola, menimcha, yoshu qari hamma uchun foydali bo'ladi, chunki u juda ko'p g'alati, tushunarsiz harakatlar yoki so'zlar to'plamini emas, balki hech bo'lmaganda tushunarli tilda taqdim etilgan ma'lumotlar blokini o'z ichiga oladi. Bularning barchasi qanday ishlashini va nima uchun kerakligini tushunasiz. Bor.

Tarmoq protokollari TCP/IP, NWLink IPX/SPX, NetBEUI

Keling, tarmoq protokoli nima va u nima uchun ishlatilishidan boshlaylik.
Tarmoq protokoli kompyuterlar o'rtasida aloqa qilish uchun amalga oshiriladigan dasturiy ta'minot qoidalari to'plamidir. Kompyuterlar bir-biri bilan gaplashadigan va ma'lumot uzatadigan til turi. Ilgari, kompyuterlar, aytganda, Windowsning ko'p tilli va eski versiyalarida protokollarning butun to'plamidan foydalanilgan - TCP/IP, NWLink IPX/SPX, NetBEUI. Endi biz umumiy kelishuvga erishdik va standart faqat TCP/IP protokolidan foydalanishga aylandi, shuning uchun u bundan keyin ham muhokama qilinadi.

TCP/IP haqida gapirganda, ular odatda bu nom bilan juda ko'p turli xil... qoidalarni yoki aytaylik, ushbu protokol yordamida (yoki foydalanish uchun) belgilangan standartlarni nazarda tutadilar. Masalan, pochta serverlari o'rtasida xabarlar almashinadigan qoidalar mavjud va oxirgi foydalanuvchi o'z pochta qutisiga xatlarni qabul qiladigan qoidalar mavjud. Video konferentsiyalarni o'tkazish qoidalari va Internet orqali "telefon" suhbatlarini tashkil qilish qoidalari mavjud. Darhaqiqat, bu qoidalar ham emas ... Ko'proq grammatika yoki boshqa narsa kabi. Xo'sh, bilasizmi, ingliz tilida dialoglarni qurish uchun bitta tuzilma mavjud, frantsuz tilida boshqasi ... Demak, TCP/IP da shunga o'xshash narsa, ya'ni. Turli xil grammatik qoidalarning ma'lum bir to'plami aniq ajralmas TCP/IP protokoli yoki aniqrog'i, TCP/IP protokoli stegi.

Tarmoq protokollari UDP, TCP, ICMP

TCP/IP protokoli doirasida ma'lumotlarni uzatish uchun ishlatiladigan protokollar TCP va UDP hisoblanadi. Ko'pchilik TCP va UDP portlari mavjudligini eshitgan bo'lishi mumkin, ammo farq nima ekanligini va nima ekanligini hamma ham bilmaydi. Shunday qilib..

TCP protokoli (Transmission Control Protocol) orqali ma'lumotlarni uzatish ma'lumotni qabul qilishni tasdiqlashni talab qiladi. "Xo'sh, ular aytishadi, siz buni oldingizmi? - Tushundim!" Agar uzatuvchi tomon belgilangan muddatda kerakli tasdiqni olmasa, ma'lumotlar qayta uzatiladi. Shuning uchun TCP ulanishga asoslangan protokol hisoblanadi, UDP (User Datagram Protocol) esa bunday emas. UDP qabul qilishni tasdiqlash talab etilmagan hollarda qo'llaniladi (masalan, DNS so'rovlari yoki IP-telefoniya (ularning Skype taniqli vakili)). Ya'ni, farq qabul qilishning tasdiqlanishi mavjudligidadir. "Hammasi shu!" Ko'rinadi, lekin amalda bu muhim rol o'ynaydi.

Tarmoq parametrlari haqidagi ma'lumotlarni uzatish uchun ishlatiladigan ICMP protokoli (Internet Control Message Protocol) ham mavjud. kabi foydali paket turlarini o'z ichiga oladi ping, erishib bo'lmaydigan masofa, TTL va boshqalar.

IP manzil nima

Har bir inson bor, lekin hamma ham bu qanday manzil ekanligini va nima uchun usiz yashash mumkin emasligini bilmaydi. Men sizga aytyapman.

IP manzil - tarmoqdagi kompyuterni aniqlash uchun ishlatiladigan 32 bitli raqam. Olingan qiymatlarni nuqta bilan ajratib, ushbu raqamning har bir oktetining o'nlik qiymatlarida manzilni yozish odatiy holdir. Masalan, 192.168.101.36

IP-manzillar noyobdir, ya'ni har bir kompyuterning o'ziga xos raqamlar kombinatsiyasi mavjud va tarmoqda bir xil manzilga ega ikkita kompyuter bo'lishi mumkin emas. IP-manzillar markazlashtirilgan tarzda taqsimlanadi, internet-provayderlar o'z ehtiyojlariga muvofiq milliy markazlarga arizalar kiritadilar. Provayderlar tomonidan qabul qilingan manzil diapazonlari mijozlar o'rtasida yanada taqsimlanadi. Mijozlar, o'z navbatida, o'zlari provayder sifatida harakat qilishlari va olingan IP manzillarini subklientlar va boshqalar o'rtasida taqsimlashlari mumkin. IP manzillarini tarqatishning ushbu usuli bilan kompyuter tizimi noyob IP-manzilga ega bo'lgan kompyuterning "joylashuvini" aniq biladi; - unga ma'lumotlarni "egasi" tarmog'iga yuborish kifoya, va provayder, o'z navbatida, manzilni tahlil qiladi va manzillarning bu qismi kimga berilganligini bilib, ma'lumotni keyingi egasiga yuboradi. ma'lumotlar maqsadli kompyuterga yetib borguncha IP-manzil pastki diapazoni.

Mahalliy tarmoqlarni qurish uchun maxsus manzil diapazonlari ajratilgan. Bular 10.x.x.x, 192.168.x.x, 10.x.x.x, 172.16.x.x dan 172.31.x.x, 169.254.x.x gacha bo'lgan manzillar, bu erda x 0 dan 254 gacha bo'lgan istalgan sonni bildiradi. Belgilangan manzillardan uzatiladigan paketlar yo'naltirilmaydi, boshqacha qilib aytganda, ular Internet orqali yuborilmaydi va shuning uchun turli xil mahalliy tarmoqlardagi kompyuterlar belgilangan diapazonlardan mos keladigan manzillarga ega bo'lishi mumkin. Ya'ni, kompaniya MChJ "Horns and Hooves" va MChJ "Vasya and Company" 192.168.0.244 manzilli ikkita kompyuterga ega bo'lishi mumkin, ammo Internet-provayderdan olingan 85.144.213.122 manzillari bilan, aytaylik, mumkin emas, chunki . Internetda ikkita bir xil IP manzil bo'lishi mumkin emas. Bunday kompyuterlardan Internetga va orqaga ma'lumot yuborish uchun Internet bilan ishlashda mahalliy manzillarni haqiqiylarga almashtiradigan maxsus dasturlar va qurilmalar qo'llaniladi. Boshqacha qilib aytganda, ma'lumotlar tarmoqqa mahalliy manzildan emas, balki haqiqiy IP-manzildan yuboriladi. Bu jarayon foydalanuvchi tomonidan sezilmasdan sodir bo'ladi va manzil tarjimasi deb ataladi. Shuni ham ta'kidlashni istardimki, bitta tarmoq ichida, aytaylik, Horns and Hooves MChJ kompaniyasida bitta mahalliy IP manzilga ega ikkita kompyuter bo'lishi mumkin emas, ya'ni yuqoridagi misolda 192.168.0.244 manzilli bitta kompyuter nazarda tutilgan edi. bir kompaniyada, ikkinchisi boshqasida bir xil manzilga ega. Xuddi shu kompaniyada 192.168.0.244 manzilli ikkita kompyuter bir-biriga mos kelmaydi.

Ehtimol siz tashqi IP va ichki IP, doimiy (statik IP) va o'zgaruvchan (dinamik) IP kabi atamalarni eshitgansiz. Ular haqida qisqacha:

  • tashqi IP - bu provayderingiz sizga bergan IP-dir, ya'ni. Sizning Internetdagi yagona manzilingiz, masalan, 85.144.24.122
  • ichki IP - mahalliy IP, ya'ni. Mahalliy tarmoqdagi IP manzilingiz, masalan, 192.168.1.3
  • statik IP - har bir ulanish bilan o'zgarmaydigan IP, ya'ni. Sizga qat'iy va abadiy tayinlangan
  • dinamik IP har bir ulanish bilan o'zgarib turadigan suzuvchi IP-manzildir

IP-manzilingiz turi (statik yoki dinamik) provayderingiz sozlamalariga bog'liq.

Manzil niqobi nima (quyi tarmoq)

Bir tashkilotning IP-manzillarining bir qismini, boshqasining bir qismini va hokazolarni tanlash mumkin bo'lishi uchun quyi tarmoq tushunchasi kiritildi. Quyi tarmoq - bir xil mahalliy tarmoqqa tegishli deb hisoblangan IP-manzillar qatori. Mahalliy tarmoqda ishlashda ma'lumot to'g'ridan-to'g'ri qabul qiluvchiga yuboriladi. Agar ma'lumotlar mahalliy tarmoqqa tegishli bo'lmagan IP-manzilli kompyuterlar uchun mo'ljallangan bo'lsa, unda bir tarmoqdan boshqasiga yo'naltirish marshrutini hisoblash uchun unga maxsus qoidalar qo'llaniladi.

Maska - bu dasturga berilgan guruhga (pastki tarmoq) nechta kompyuter kiritilganligini bildiruvchi parametr. Manzil maskasi IP-manzilning o'zi bilan bir xil tuzilishga ega: u har biri 0 dan 255 gacha bo'lishi mumkin bo'lgan to'rtta guruh raqamlar to'plamidir. Bunday holda, niqob qiymati qanchalik past bo'lsa, ushbu kichik tarmoqqa ko'proq kompyuterlar ulanadi. Kichik kompaniya tarmoqlari uchun niqob odatda 255.255.255.x (masalan, 255.255.255.224) hisoblanadi. Tarmoq niqobi IP manzili bilan birga kompyuterga tayinlanadi. Masalan, 255.255.255.0 maskali 192.168.0.0 tarmog'ida 192.168.0.1 dan 192.168.254 192.168.0.0 gacha bo'lgan manzilli kompyuterlar bo'lishi mumkin. 192 .168.0 .127. Menimcha, ma'nosi aniq. Qoidaga ko'ra, IP-manzillarni saqlash uchun provayderlar kam sonli kompyuterlarga ega tarmoqlardan foydalanadilar. Masalan, mijozga 255.255.255.252 niqobli manzil berilishi mumkin. Ushbu quyi tarmoq faqat ikkita kompyuterni o'z ichiga oladi.

Kompyuter IP-manzilni olgandan so'ng va pastki tarmoq niqobining qiymatini bilgandan so'ng, dastur ushbu mahalliy quyi tarmoqda ishlashni boshlashi mumkin. Biroq, global tarmoqdagi boshqa kompyuterlar bilan ma'lumot almashish uchun siz tashqi tarmoq uchun ma'lumotni qayerga jo'natish qoidalarini bilishingiz kerak. Shu maqsadda Gateway manzili kabi xarakteristikadan foydalaniladi.

Gateway nima?

Shlyuz - bu turli xil IP quyi tarmoqlari o'rtasida ma'lumotlarni uzatuvchi qurilma (kompyuter yoki router). Agar dastur (IP va maska ​​bo'yicha) maqsad manzili mahalliy quyi tarmoqning bir qismi emasligini aniqlasa, u bu ma'lumotlarni shlyuz sifatida ishlaydigan qurilmaga yuboradi. Protokol sozlamalarida bunday qurilmaning IP-manzilini belgilang.

Faqat mahalliy tarmoqda ishlash uchun shlyuz ko'rsatilmagan bo'lishi mumkin.

Internetga ulanadigan individual foydalanuvchilar yoki bitta ulanish kanaliga ega bo'lgan kichik korxonalar uchun tizim faqat bitta shlyuz manziliga ega bo'lishi kerak - bu Internetga ulangan qurilmaning manzili. Agar bir nechta marshrutlar bo'lsa, bir nechta shlyuzlar bo'ladi. Bunday holda, ma'lumotlar yo'lini aniqlash uchun marshrutlash jadvalidan foydalaniladi.

Marshrutlash jadvallari nima

Shunday qilib, biz ularga muammosiz etib keldik. Va shuning uchun.. Bu qanday jadvallar?

Tashkilot yoki foydalanuvchi Internetga ulanishning bir nechta nuqtalariga ega bo'lishi mumkin (masalan, birinchi provayderda biror narsa noto'g'ri bo'lgan taqdirda zaxira kanallari, lekin Internet hali ham juda zarur) yoki uning tarkibida bir nechta IP-tarmoqlarni o'z ichiga olishi mumkin. Bunday holda, tizim u yoki bu ma'lumotlarni qaysi yo'l bilan (qaysi shlyuz orqali) yuborishni bilishi uchun marshrutlash jadvallari qo'llaniladi. Har bir shlyuz uchun marshrutlash jadvallari ular orqali ma'lumot uzatilishi kerak bo'lgan Internet quyi tarmoqlarini ko'rsatadi. Bunday holda, bir nechta shlyuzlar uchun siz bir xil diapazonlarni o'rnatishingiz mumkin, ammo ma'lumotlarni uzatish uchun har xil xarajatlar bilan: masalan, ma'lumot eng past narxga ega bo'lgan kanal orqali yuboriladi va agar u yoki boshqa sabablarga ko'ra muvaffaqiyatsiz bo'lsa, keyingi mavjud ko'pchilik avtomatik ravishda arzon ulanishdan foydalaniladi.

Tarmoq portlari nima

Ma'lumotlarni uzatishda, jo'natuvchi va qabul qiluvchining IP manzillaridan tashqari, ma'lumotlar paketi port raqamlarini o'z ichiga oladi. Misol: 192.168.1.1:80, - bu holda 80 port raqamidir. Port - bu ma'lumotlarni qayta ishlash kerak bo'lgan jarayonni (dasturni) aniqlash uchun ma'lumotlarni qabul qilish va uzatishda foydalaniladigan raqam. Shunday qilib, agar paket 80-portga yuborilsa, bu ma'lumot HTTP serveri uchun mo'ljallanganligini ko'rsatadi.

1 dan 1023 gacha bo'lgan port raqamlari ma'lum dasturlarga (ma'lum portlar deb ataladi) tayinlangan. 1024 -65 535 raqamli portlardan xususiy dasturlarda foydalanish mumkin. Bunday holda, mumkin bo'lgan nizolar bepul portni tanlash orqali dasturlarning o'zlari tomonidan hal qilinishi kerak. Boshqacha qilib aytadigan bo'lsak, portlar dinamik ravishda taqsimlanadi: dastur keyingi safar ishga tushganda, u boshqa port qiymatini tanlashi mumkin, agar siz portni sozlamalar orqali qo'lda o'rnatmasangiz.

MAC manzili nima

Gap shundaki, tarmoqqa yuborilgan paketlar nomlari yoki IP manzillari bilan emas, balki kompyuterlarga qaratilgan. Paket ma'lum bir manzilga ega bo'lgan qurilma uchun mo'ljallangan, u MAC manzili deb ataladi.

MAC manzili tarmoq qurilmasining o'ziga xos manzili bo'lib, unga uskuna ishlab chiqaruvchisi tomonidan tayinlangan, ya'ni. Bu tarmoq kartangizning muhrlangan raqamining bir turi. MAC manzilining birinchi yarmi ishlab chiqaruvchining identifikatori, ikkinchisi - bu qurilmaning noyob raqami.

Qoidaga ko'ra, MAC manzili provayder bilan identifikatsiya qilish uchun talab qilinadi (agar provayder login-parol o'rniga MAC manzilini bog'lashdan foydalansa) yoki routerni sozlashda.

Barcha tarmoq sozlamalarini qayerda ko'rish mumkin

Bularning barchasini qayerga qarash va o'zgartirish mumkinligi haqida bir necha so'z aytishni deyarli unutib qo'ydim.



 


O'qing:



Nima uchun noutbukga kichik SSD kerak va unga Windows-ni o'rnatishga arziydimi?

Nima uchun noutbukga kichik SSD kerak va unga Windows-ni o'rnatishga arziydimi?

O'yinlar uchun SSD drayveri qanchalik muhim, u nimaga ta'sir qiladi va ushbu texnologiyaning foydaliligi nimada - bu bizning maqolamizda muhokama qilinadi. Qattiq holat...

Dasturlar yordamida flesh-diskni ta'mirlash Noutbukdagi USB portni qanday tuzatish kerak

Dasturlar yordamida flesh-diskni ta'mirlash Noutbukdagi USB portni qanday tuzatish kerak

USB portini qanday tuzatish mumkin? Mutaxassisdan javob: Kompyuterdan foydalanganda USB portlari tez-tez buziladi. Birinchidan, ular muvaffaqiyatsizlikka uchradi ...

Disk tuzilishi buzilgan, o'qish mumkin emas, nima qilishim kerak?

Disk tuzilishi buzilgan, o'qish mumkin emas, nima qilishim kerak?

Foydalanuvchilarning shaxsiy kompyuterlarida ko'pincha muhim ma'lumotlar - hujjatlar, fotosuratlar, videolar saqlanadi, ammo ma'lumotlarning zaxira nusxasi odatda...

Kompyuter nimadan iborat?

Kompyuter nimadan iborat?

Nashr etilgan: 14.01.2017 Assalomu alaykum, do'stlar, bugun biz kompyuter tizim blokining dizaynini batafsil ko'rib chiqamiz. Keling, nima ekanligini bilib olaylik ...

tasma tasviri RSS