Internet qanday ishlaydi.
Otabek NurmatovInternet o'zi nimaligi haqida oldingi postlarimizda gaplashib o'tgan edi. Bu postimizda esa u o'zi qanday ishlashini tasvirlab o'tmoqchimiz.
Ushbu qo'llanma oxirida ajoyib projectni tugatib o'z portfolioingizni boyitishingiz mumkin. Keling avval ba'zi savollarga javob topsak.
Tarmoq o'zi nima?

Tarmoq bu bir-biriga ulangan odamlar yoki narsalar guruhi deb atasak bo'ladi.
Hayotiy misollardan misol oladigan bo'lsak "Temir yo'l relslari". Ular ham bir-biriga ulangan holda poyezd stansiyalarini tashkil qiladi. Instagram, Telegram va shu kabi ijtimoiy tarmoqlarda odamlar bir-biriga obuna bo'lish orqali ijtimoiy tarmoqni tashkil qilishadi. Xuddi shunday, bir-biriga kabel yoki simsiz radio to'lqinlar orqali ulangan kompyuterlar esa Computer Network (kompyuter tarmog'i)ni tashkil qiladi.
Nima uchun Kompyuter tarmog'i bizga kerak?
Yaxshi savol. Bu narsadan maqsad 2ta (balkim ko'pdir).
- Kompyuter ishlatgan holda aloqa qilishni ta'minlash.
- Kompyuter orqali ma'lumotlar jo'natish va qabul qilish.
Va bu ishni biz "Internet" deb bilgan narsa bajarayotganiga guvoh bo'layabmiz.
Buni bilarmidingiz:internet va Internet so'zlarida farq bor. internet bu "interconnection of computer" ya'ni kompyuterlarni o'zaro bog'lanishiga ishlatiladigan so'z bo'lsa, global Internet doim katta I bilan yoziladi.
Bizga bunday tarixiy ma'lumotlar nima uchun kerak?
Bu ham bir ajoyib savol. Qisqasini aytganda sabablari quyidagilar:
- Internetni rivojlantirish jarayonida yo'l qo'yilgan xatolar haqida o'rganib, ularni takrorlamslik uchun.
- Ular qanday tuzilgani va ishlashini yaxshi tushunish uchun. (Tushunish yaratishga olib boradi 😉)
- Eng oxirgi sabab, "Axir bu qiziqku! Shundo narsani o'rganmayman deysizaaa😕"
"Tarixni o'rganmaganlar, unda qilingan xatolarni qilishga mahkumdir" – George Santayana
Protocol o'zi nima?
Keling oddiy ikki inson suxbatini misol qilib olsak. Ular doim so'zni "salomlashuv" bilan boshlab "hayrlashish" bilan tugatishadi. Odatiy suxbatlar doim shu o'rnatilgan tartib asosida quriladi misol uchun mana bunday:
Siz: Assalomu alaykum
U: Va alaykum assalom
...Suxbat qildingiz...
Siz: Hayr!
U: Ko'rishguncha!
Tizimlar ham tarmoqda bir-birlari bilan samarali aloqa qilish uchun xuddi shunday protokollardan foydalanishadi.
Cambridge Dictionary lug'atini bergan tarifiga ko'ra, protokol "qurilmalar o'rtasida ma'lumot almashish yoki uzatishni tartibga soluvchi qoidalar to'plamidir".
TCP
Transmission Control Protocol ya'ni Yetkazishni Boshqarish Protokoli ham shu protokollar qatoriga kiradi.
U tizimlarni samarali muloqot qilishi uchun yaratilgan. TCP ning ajralib turadigan xususiyati shundaki, u ma'lumotlarning mo'ljallangan manzilga xavfsiz, to'g'ri yetkazib berishni kafolatlaydi va yo'lda buzilmasligini ta'minlaydi.
UDP
User Datagram Protocol ya'ni Foydalanuvchining Datagram Protokoli ham shu protokollar qatoriga kiradi.
Oracleningni bergan tarifiga ko'ra, datagram "Bu yetib borishi, kelish vaqti va mazmuni kafolatlanmagan tarmoq orqali yuboriladigan mustaqil, oʻziga xos xabardir".
Shuni takidlab o'tish joyizki bu protokol TCPga qaraganda ancha tez bo'lgani bilan, uni manzilga xavfsiz va buzilmay yetib borishiga hech kim kafolat bermaydi.
HTTP
HyperText Transfer Protocol ya'ni GipperMatnni Uzatish Protokoli bu World Wide Web qo'llaniladigan asosiy veb-protokol bo'lib, foydalanuvchilar o'rtasida xabarlar almashish, veb-brauzer va veb-serverlar xabarga javoban qanday harakatlarni bajarishini belgilaydi.
Packets
Tizimlar protokollar yordamida gaplashishini tushundik ammo qanday gaplashishini ham o'rganib ketish vaqti keldi menimcha. Kompyuterlar insonga o'xshab matnlar orqali emas, balkim bitlar orqali aloqa qilishadi.

Bir vaqtni o'zida trillionlab bitlarni jo'natish o'rniga, bu jarayonni qulaylashtirish uchun ular "paketlar" deb ataladigan kichik birliklarga bo'linishadi. Bu tushuncha huddi 10 kg go'shtni bitta paketga emas, balkim 10ta paketga bo'laklab solib do'stingizni uyiga berib yuborishdek gap (mazza bo'lsa kerak). Bitta katta fayl o'rniga ketma-ket kichikroq birliklarni yuborish tarmoqdan foydalanishni yanada osonlashtiradi.
Addressing
Biz protokollar bilan gaplashishni tushundik va ular odatda katta xajmdagi ma'lumotlarni kichik paketlarga bo'lib ularni jo'natishini ham bildik. Ammo biz jo'natayotgan bu ma'lumotlar shu darajada aqllimi? Ular qayoqga borishini biladimi?
Yo'q albatta. Bu muammoni yechish uchun pochta tizimiga manzil tushunchasi kirib kelganidek internetda ham shu tushuncha huddi hayotdagidek ishlaydi.
IP Addresses
Internetga ulangan barcha qurilmaning "IP-Address" deb nomlanuvchi manzili mavjud, xuddi qo'shni Sattor akani manzili uyini tagiga yozib ketilgan manzil kabi.
- IP-Addresslar 32 bitli raqamdan iborat bo'ladi (IP ning 4-versiyasida)
- O'qish uchun qulaylashtirish maqsadida har oktet (8 bit) orasiga nuqta "." qo'yiladi.
- Har bir son 0-255 oralig'ida bo'ladi. Misol uchun: 100.128.0.231
- Ba'zi IP-Addresslar muayyan funksiyalar uchun.
Siz o'z IP-Addressingizni tekshirish uchun mana bu kommandani terminalga kiritib ko'rishingiz mumkin:
Ports
Bir vaqtni o'zida ko'plab dasturlar va veb-sahifalarni ishga tushirishingiz mumkin. Ammo bu dasturlarning barchasi bir xil manzildan, xuddi uyingiz tagidagi pochta qutisini butun bir qavat ishlatgani kabi.
Siz hohlagan dasturga o'tishga ishonch hosil qilishingiz uchun har bir dasturga "port" deb nomlangan maxsus raqam beriladi, xuddi o'sha pochta qutisini har bir xonadon uchun raqami bo'lgani kabi. Agar bu raqam bo'lmaganida Mamarayimni yozgan sevgi xatini Jumagul emas men o'qiyotgan bo'lishim mumkin.
Shunday qilib, xabar qutisidan har bir xonadon o'ziga tegishli xabarni ololgani kabi dasturlar ham o'ziga tegishli xabarni shu tarzda oladi. Ushbu portlar kompyuterga ma'lumotni qayerga yuborish kerakligini tushunishga yordam beradi, shuning uchun u kerakli dasturga o'tadi.
Agar shu portlar bo'lmaganida edi men sizni Telegramizga yuborgan xabarimni xozir Whatsapp orqali o'qiytogan bo'lishingiz mumkinmidi. 😌
- IP-Addresslar tizimdagi manzilni bildirsa, portlar qaysi dasturligini bildiradi.
- Har bir dasturni 16-bitli port raqami mavjud. Ular 0 − 2^12 = 65535 oralig'ida aniqlanadi.
- 0 − 1023 oralig'idagilar maxsus dasturlar uchun ishlatiladi va biz ularni well-known ports deb ataymiz.
- 1024−49152 portlari ro'yxatdan o'tgan portlar sifatida tanilgan va ular ma'lum, lekin tizim aniqlanmagan maxsus, potentsial mulk ilovalar tomonidan qo'llaniladi.
- 49152–65535 portlaridan foydalanuvchi ilovalari yoki boshqa maqsadlarda foydalanish mumkin (masalan, portlarni dinamik taqsimlash, bu haqda keyinroq).

Demak biz boshlang'ich kichik tushunchalarni biroz-bo'lsada ko'rib chiqishga muvaffaq bo'ldik. Kelasi mavzularda bularni barchasiga chuqur yondashuv qilishga harakat qilamiz.