OSI model nima? 7 qatlam sodda tushuntirilgan
Assalamu Alaykum bugun OSI model yoki bizning xabarlar qanday qismlardan o'tib biz uzatgan manzilga yetib borishini ko'rib chiqamiz.
Bu maqolani yaxshiroq tushunish uchun boshqa bir necha maqolani taklif qilaman :
Agenda
2.Biz qaysi IP addressni ishlatamiz ? (NAT)
Xo'sh bizga nega kommunikatsiya modeli kerak o'zi ?
Standart modelsiz siz qurayotgan dastur u qayerda ishlayotgani haqida ma'lumotlar bilishi kerak, bu sizning dasturingiz faqta qaysidir turdagi qurilmalarda ishlashiga olib keladi . Standart modelsiz tarmoq qurilmalarini yangilash qiyin bo'ladi chunki dastur unga qayta moslashishi kerak. Standart esa bizga har bir qismni alohida yangilash hamda yaxshilashga imkon beradi qolgan qismlarni buzib qo'ymagan holda.
OSI model
Bizga standartlashgan model kerak va bu model OSI deb ataladi va open system interconnection model deb kengaytirish mumkin. Bu model 7 qismdan iborat va har biri alohida komponent hisoblanadi, ularni birma bir ko'rib misollar orqali ko'rib chiqamiz.
Application layer (HTTP/FTP/gRPC) (masalan JSON ma'lumotni POST so'rovini orqali serverga uzatish) Dasturchilar odatda ishlaydigan qism shu bo'ladi.
Presentation Layer(serialization shu qismda amalga oshadi , masalan JSONni string formatga o'tkazish odatda avtomatik amalga oshadi)
Session Layer (TLS va aloqa bog'lanishi shu qismda bo'ladi , bu yerga faqat TCP 3-way handshake bo'lgandan keyin keladi)
Transport Layer( TCP/UDP shu qismda joylashgan bizda portlarni ko'rish imkoniyati mavjud (SYN so'rovini target 443 portga uzatadi, congestion control va flow va segmentlarni qayta jo'natishni boshqaradi)
Network Layer(IP) Bizda faqat IP address haqida ma'lumot bor (portni bilmaymiz) (SYN so'rovi IP packetga solinadi va uzatuvchi hamda qabul qiluvchi IP addresslar packetga biriktiriladi)
Data link Layer(Frames va ular MAC addresslar qo'shiladi)
Physical Layer (Elektr signallar , radio to'lqinlar )
Qani buni so'rov berish misolida ko'ramiz , masalan , siz google.com deb yozdingiz va enter tugmasini bosdingiz .Bu GETrequestga o'tkaziladi va https://google.com va bir nech ta headerlar bilan application layerda paydo bo'ladi .Application layerda bu bizga kelgan ma'lumotlarni Nodejs orqali qayta ishlash joyi (bizning http dasturlar) .Xo'sh davom etamiz agarda siz httpsprotocoldan foydalanayotgan bo'lsangiz _encryption_layer6 (presentation layer)da bo'ladi agarda ishlatilmagan bo'lsa layer 5 (session) ga shunday berib yuboriladi . Biz httpprotocol ishlatmoqdamiz va bu server o'rtasida bog'lanishga asoslangan shuning uchun buyerda tepadan kelgan ma'lumotga tag sifatida session id qo'shiladi ( bu bizga bir necha so'rovlar kelganda bu qaysi sessionga egaligini bilib olish uchun kerak) va layer 4 Transport layerga ma'lumotlar uzatiladi . U malumotlarni shunchaki bir to'da bitlar deb hisoblaydi.Agarda u malum hajmdan ko'p bo'lsa buni qismlarga bo'ladi va uni segmentdeb ataydi va har bir segmentga source port va destination port va yana bir necha narsalar qo'shadi .Bu yerda yana sequence number (tartib raqam)ham bo'ladi buni yordamida qabul qilgan server ma'lumotlar tartibini bilib oladi , yo'qolgan segmentlarni qayta so'ray olishi mumkin .Bu malumotlarni hammasini network layerga yuboradi (u portlar haqida hech narsani bilmaydi ) bu qismda segmentlar bir necha qismga bo'linadi va ular packetlardeyiladi network layer har bir packetga source ip adress and destination ip address qo'shib hech qanday xatoliklarga tekshirmagan holda data link layerga ma'lumotlarni o'tkazib yuboradi. Bu layer ham uni bir necha qismlarga bo'ladi va ularni framedeb ataydi va u har bir framega source MAC address va target MAC address qo'shadi(Agarda target uchun mac addressni bilmasa local networklar uchun ARP protocol orqali aniqlab oladi tashqaridagi komputerlar uchun oldingi maqolamda aytganimdek routerning mac addressini beradi va router uni forward qilib yuboradi).Bu yerda biz mac addresslarnin bilishimiz kerak.Bundan so'ng u haqiqiy hayotga yani physical layerga yani kabellarga 0 va 1 lar bo'lib o'tadi . Bizda malumotlar bor ammo uni qayerga uzatishni bilmaymiz chunki u shunchaki elektr toki va unda yo'nalish mavjud emas. Bu mahalliy tarmoqda juda xavfli bo'lishi mumkin chunki bu ma'lumot tarmoqqa ulangan hammaga uzatiladi va u encryption qilinmagan bo'lsa hamma malumotlarinigiz kundek ravshan bo'ladi (Shuning uchun ovqatlanish va jamoat joylaridagi wifilarga ulanishda ehtiyot bo'ling) . Bu har xil ishlaydi agarda wifi shunchaki switch sifatida ishlatilingan bo'lsa u hamma ulanganlarga uzatadi agarda u internetga ulangan bo'lsa(so'rov tashqariga uzatilgan bo'lsa) aqlli holda faqatgina kerakli manzilga uzatilinadi. Local tarmoqda kompyuterlar framelarni qabul qilib , mac addressorqali tekshirishadi agarda u bunga tegishli bo'lmasa shunchaki shu yo'nalish kelayotgan packetlarni etibor bermaydi. Ma'lumotni uzatishda davom etamiz. U siz xohlagan routergacha yetib bordi va data link layerga ko'tariladi tarmoqda mac address orqali kerakli manzil aniqlanib uzatiladi. Agarda bu so'rov mac address orqali bitmasa kelayotgan so'rov bo'lsa network layergacha ko'tariladi agarda NATishlatilingan bo'lsa transport layergacha chiqib portni ham aniqlaydi va map qilib kerakli kompyuterga uzatadi .Va u kerakli kompyuterda layerlar orqali tepaga ko'tarilib boradi 0 va 1 lar framega aylanadi framelar packetga , va packetlar segmentga aylanib oxirida layer 7 da bizga ko'rinadigan ma'lumotlarga aylanadi .Bu yerda portlar transport layer va application layerni bog'lab beradi .

Hozirda OSI o'rniga TCP/IP model ishlatiladimenimcha bu qism 4 qismdan iborat 5 va 6 layer esa 7ga qo'shilgan holda , 1- va 2 layerlar birlashib Network accesslayerga aylantirilgan . Ammo bazi bir kutubxonalar(ismi esimga kelmadi ) aynan layer 5 orqali ishlashini oqigandim .

Dastruchilarga oxirgi 4 layer kerakli bo'ladi qolgani , network engineerlar uchun muhim.
Bu yerda bir savol bo'lishi mumkin nega biz ularni bo'lyapmiz nega birdaniga yubormayapmiz ishni ko'paytirmasdan deganda har bir frame uchun maximum size berilgan masalan bu Ethernet uchun 1518 bytes,shuning uchun ma'lumotlar bo'lib yuboriladi agarda bir framega sig'may qolsa.
Bundan tashqari har bir so'rov bu bosqichdan bir necha marta o'tishi mumkin masalan oradagi swtichlar data link layergacha chiqib so'rovni qayta yo'naltiradi , routerlar esa network layergacha chiqishadi va ip address orqali qayta route qilishadi . Firewall va Layer 4 proxy portlargacha ko'rishadi so'rovlarni bloklash uchun va Layer 7 load balancer 7 Layergacha chiqib hamma ma'lumotni o'qib shunga qarab yo'naltriadi va bularni har biri bizning so'rovga serverga borishi yoki qaytib kelishiga latency qo'shadi . Shuning uchun O'zbekistondan turib Americadagi serverga ulansak so'rov sekin keladi chunki ular bir nechta switch va routerlardan o'tib keladi .

Xulosa
Xulosa qilib aytadigan bo'lsak biz ishlatayotgan hozirgi internetga kelgancha ancha harakatlar bo'lgan, va hozir biz ko'p narsani shunchaki o'zicha qabul qilamiz ammo bularni ostidagi abstractionlarni o'zimiz uchun bilib olsak nega aynan bunday qilingani bilib olamiz va ishimizda bu ham kerakli bo'lishi mumkin .
Agarda maqola yoqqan bo'lsa chapak chaling (ko'p chalsayam bo'ladi :).
Xato va kamchiliklar uchun uzr !!!
linkedin.com =>Ulug'bek Habibov | LinkedIn
telegram channel =>@habibov_ulugbek