Application Layer (part-1)
Otabek Nurmatov
Biz sizlar bilan eng yuqori qavatda ya'ni Application qavatidamiz. Ilova (Application) qatlamining asosiy vazifasi end-user ya'ni foydalanuvchilarga bir qator ilovalar orqali Internetga kirish yoki ulanish imkonini berishdir.
Tasavvur qiling siz Internetdan ma'lumot qidirmoqchisiz. Internetdan ma'lumot qidirish uchun sizga Google ga o'xshagan qidiruv tizimi kerak bo'ladi. Bu qidiruv tizimi esa ilova xisoblanadi. Ilova esa sizni internet bilan gaplashishingizda o'rtakash vazifasini bajaradi. Aynan shu qavat sizga ko'plab internet bilan gaplashishingizda xizmat qiluvchi qavat xisoblanadi. Va u nafaqat qidiruv tizimi balkim video chat, chat, ijtimoiy tarmoq va h.k.z. turdagi ilovalarni taqdim etadi. Ular orqali esa internet bilan biror ish bajarishingiz mumkin.
Network Application Architecture
Application layer protokollarini o'rganishdan oldin, ilovalar end-systemlarda qanday tuzilganligini tushunishga qaratsak. Bu network application architecture (tarmoq ilova arxitekturasi) deb ataladi va u dasturchilar tomonidan ishlab chiqiladi. Arxitekturani tushunish esa "ilovalar qanday qanday bog'lanadi va nima orqali?" degan savolga javob topishda katta ro'l o'ynaydi.
Ushbu tizimda tarmoq ilovasi ikki qismdan iborat: client-side software (foydalanuvchi tomondagi dastur) va server-side software (server tomondagi dastur). Ular bir-birlari bilan xabarlar yordamida aloqa qiladigan kichik dasturlarga o'xshaydi.
Servers
Serverlar 24/7 internetdan uzilmaydigan va o'chmaydigan kompyuterlar xisoblanadi. U kompyuterlarga kirish uchun eng kamida bitta maxsus IP-Manzil bo'ladi.
Xuddi 24/7 pitsa yetkazib beruvchi biror FastFood xizmatni oladigan bo'lsak, oshxona bilan bog'lanish uchun eng kamida 1ta telefon raqami yokida veb-sahifasi bo'ladi.
Clients
Mijozlar esa bu sizu bizga o'xshagan odamlar ya'ni o'sha servislardan foydalanuvchilar. Serverlar mijozlar so'rov yuborishini kutib o'tirishadi. Mijozlar esa qachon biror internetdan ma'lumot olishni yoki nimadir qilishni hohlasa ilovalar orqali serverlarga request ya'ni so'rovlar jo'natishni boshlaydi.
Xuddi o'sha FastFood sotadigan oshxonaga bormagunizcha va buyurtma qilmaguningizcha ular sizni kutgani kabi, serverlar ham mijozlarni biror so'rov jo'natmagunicha kutib turishadi.
Client-Server Architecture
Klient va Server o'rtasidagi aloqa qanday yuzaga kelishini ko'rishimiz uchun keling google.com saytini misol qilaylik.
Googlega "Alice in wonderland film" deb so'rov (request) jo'natsangiz, u sizga "Mana ..." (response) deb topilgan barcha ma'lumoltarni qaytaradi.

P2P Architecture
To'liqroq Peer-to-peer deb ataladi. End-system ya'ni biror qurilmadagi application "peer" deb ataladi. Bu yerda hech qanday o'rtakash mavjud emas, qurilmalar bir-birlari bilan to'g'ridan-to'g'ri gaplashadi (albatta traffic routerlar orqali o'tib keladi ammo hech nima centrilized emas). Hech qanday markaziy server mavjud emas.
P2P arxitekturasini afzalligi shundaki, ularni ortiqcha pul, vaqt va kuch sarflamasdan scale qilish mumkin.

Yuqoridagi rasmga qarasangiz chap tomonda A, B, C, D device'lar Sender (server) ga bog'langan, o'rtakash bu yerda aynan Sender. O'ng tomondagi esa bir-biriga bog'langan hech qanday o'rtakash mavjud emas.
Bu arxitekturani yana bir jihati shundaki, har bir "peer" bu yerda client yoki server vazifasini bajarishi mumkin, ya'ni har bir device ham client ham server bo'la oladi degani.
Murojat qiluvchi client bo'lsa javob beruvchi server ro'lini o'ynaydi qisqasi. Misol qilib BitTorrent ni olsak bo'ladi. Aynan shu dastur P2P arxitekturasi asosida ishlaydi.
Socket
Turli xil mashinadagi processlar computer network orqali bir-biriga xabar jo'natishadi. Xuddi shu yerda ularni aloqasini taminlovchi vosita (interface) bu socket xisoblanadi.
Socketni telefonga o'xshatsak bo'ladi. Telefonimiz ichidagi dastur (Telegram, Instagram, YouTube va ...)lar tarmoqga ulanishi uchun telefon kerak bo'lganidek, process va computer network o'rtasidagi aloqa uchun ham socket kerak.
Socketni yana pochtalionga o'xshataman. Chunki u xabarni yetkazib berish uchun ishlaydi. Bu yerda bir muammo bor, socket bizni xabarni kimga yetkazishni qanday yoki qayerdan biladi? Xabarimiz boshqa joyga borib qolmaydimi?
IP Address and Ports
Xabarlar to'g'ri manzilga borishi uchun IP-Address va Portlar yaratilgan. Ya'ni har bir dasturni o'z manzil (IP-Address)i bo'ladi. IP-Addressni o'tgan bo'limlarimizning birida muhokama qilgan edik, bu safar Portlar haqida ko'proq gaplashamiz.
Ports
Tasavvur qiling bitta end-system (qurilma)da odata bir-nechta applicationlar bo'lishi mumkin. Va ularning barcha bitta IP-Addressda ishlaydi. Demak bizdagi muammo pochtalion bizni IP-Addressga qandaydir xabar olib kelsa uni qaysi dasturga berishini bilmaydi....
Aynan shu muammoni yechimini portlar taqdim qiladi. Portlar bu xonalar deyishimiz mumkin. Katta bir ko'p qavatli bino uchun bitta raqam beriladi ammo undagi xonadonlar esa bir xil raqam olishi taqiqlanadi. Xuddi shu holat portlar bilan ham aktual amal qiladi. Ya'ni IP-Address bitta bo'lgani bilan har bir dastur turli xil portlarda ishlaydi. By default HTTP 80 portidan, HTTPS esa 443 portidan foydalandi.
⬅️ Ortga qaytish | Keyingi bo'limga o'tish ➡️