# Protokollar ?

Tarmoqdagi qurilmalar bir-biri bilan gaplashish uchun maxsus **til**lardan foydalanadi, bu tillar – **protokollar** deb ataladi. Sizning kompyuteringiz, telefoningiz yoki boshqa qurilmalaringiz o‘zaro axborot almashishi uchun **IP va MAC manzillar**ni ishlatadi. Lekin bu manzillar bilan birga ma’lumot uzatish jarayonini tashkil etadigan va boshqaradigan **protokollar** kerak.

Xuddi **IP va MAC manzillar** sizning uy manzilingiz va shaxsiy raqamingiz kabi bo‘lsa, **protokollar** – bu sizning qayerga borishingiz va u yerda qanday muloqot qilishingizni belgilab beruvchi qoidalar. Protokollar yordamida qurilmalar bir-biri bilan qanday aloqa qilishni biladi.

**MAC manzil qurilmangizning tarmoq ichidagi doimiy identifikatori (raqamli shaxsiy guvohnoma),**

**IP manzil esa tarmoq bo‘ylab ma’lumot yuborishda foydalaniladigan manzil,**

**Protokollar esa axborotni qanday uzatish va olishni boshqaruvchi qoidalardir.**

#### **TCP va UDP nima va ularning farqi?**

<figure><img src="/files/0bDvgTiYmvyeViPHeorc" alt=""><figcaption></figcaption></figure>

#### **TCP (Transmission Control Protocol)** – Ishonchli va to‘liq yetkazish

**TCP** – bu **ishonchli** ma'lumot uzatish protokoli. Uning asosiy vazifasi ma'lumotlarni **bo‘laklarga** bo‘lib (paketlar ko‘rinishida), ularni tarmoq orqali **yetib borganini tasdiqlab** uzatishdir.

**TCP qanday ishlaydi?**

1. **Ma'lumot bo‘laklarga bo‘linadi:** Har safar katta ma'lumot uzatmoqchi bo‘lsangiz, TCP uni **kichik bo‘laklarga** bo‘ladi. Masalan, 1GB faylni yuklashingiz kerak bo‘lsa, TCP bu faylni yuzlab yoki minglab kichik bo‘laklarga ajratadi.
2. **Bo‘laklar raqamlanadi:** Har bir bo‘lakda maxsus **raqam** bo‘ladi, bu orqali ularning ketma-ketligini aniqlash mumkin. Bu raqamlar TCP'ga to‘g‘ri tartibda ma'lumotlarni yig‘ishga yordam beradi.
3. **Tasdiqlash (acknowledgment):** Har bir bo‘lak tarmoq orqali uzatilgach, qabul qiluvchi qurilma bu bo‘lakning to‘liq yetib kelganini **tasdiqlaydi**. Agar biror bo‘lak yetib kelmasa yoki buzilib ketsa, TCP darhol o‘sha bo‘lakni qaytadan jo‘natadi.
4. **Ma'lumotlarni yig‘ish:** Bo‘laklar qabul qiluvchiga yetib borgach, TCP ularni raqamlar asosida **to‘g‘ri ketma-ketlikda yig‘ib** oladi. Shunday qilib, ma'lumotlar bir butun holatda qabul qilinadi.

**Misol:**

Tasavvur qiling, siz do‘stingizga **telefon raqamingizni** yubormoqchisiz, lekin to‘liq raqamni bir yo‘la yuborish o‘rniga uni raqam bo‘lib-bo‘lib jo‘natyapsiz, chunki do‘stingiz faqat kichik qismlarini qabul qila oladi.

* **Har bir raqam bo‘lagi** aniq tartibda ketishi kerak, masalan: avval **+998**, keyin **90**, keyin qolgan raqamlar. Har bo‘lakni yuborganingizda, do‘stingiz har bir bo‘lakni olgach sizga xabar qiladi: "Birinchi qism yetdi: +998", "Ikkinchi qism ham yetdi: 90".
* Agar biror qism **yo‘lda yo‘qolsa** yoki chalkash yuborilgan bo‘lsa, do‘stingiz darhol sizga: "Uchinchi qism yetib kelmadi!" deb xabar beradi. Shunda siz **qayta** o‘sha qismini jo‘natasiz.
* Oxirida, do‘stingiz barcha bo‘laklarni yig‘ib, to‘liq raqamni oladi va "Mana, hammasi joyida, raqamni to‘liq oldim!" deb sizga xabar qiladi.

**TCP ning ishlash jarayoni:**

1. **Connection establishment**: Yuboruvchi va qabul qiluvchi o‘rtasida bog‘lanish o‘rnatiladi (SYN, SYN-ACK, ACK deb ataladigan uch tomonlama jarayon orqali).
2. **Ma'lumot uzatish**: Ma'lumot bo‘laklarga bo‘linib, yuboriladi. Har bir bo‘lak yetib borgach, tasdiqlanadi.
3. **Connection termination**: Ma'lumot uzatilgach, bog‘lanish yakunlanadi.

**TCP qayerda qo‘llaniladi?**

* **Veb-sahifalarni yuklash:** Masalan, siz internetdan fayl yuklayotganingizda yoki saytlarga kirsangiz, TCP orqali ma'lumot ishonchli uzatiladi.
* **Email jo‘natish:** Elektron pochta orqali xabarlarni uzatish TCP orqali amalga oshiriladi.
* **Fayl uzatish:** FTP (File Transfer Protocol) orqali fayllarni uzatishda TCP ishlatiladi.

***

#### **UDP (User Datagram Protocol)** – Tezkor, lekin ishonchni tekshirmaydi

**UDP** – bu **tezkor**, lekin **ishonchlilikni tekshirmaydigan** protokol. U ma'lumotlarni tezlikda uzatishga mo‘ljallangan, lekin har bir bo‘lakning yetib borganini tasdiqlamaydi. Bu, albatta, yuqori tezlikni ta’minlaydi, lekin biror bo‘lak yo‘qolsa, uni qaytadan jo‘natmaydi.

**UDP qanday ishlaydi?**

1. **Ma'lumot bo‘laklarga bo‘linadi:** **TCP** kabi, **UDP** ham ma'lumotlarni bo‘laklarga bo‘ladi, lekin har bir bo‘lakni yetib borganini tekshirmaydi.
2. **Tasdiqlash yo‘q:** UDP'da ma'lumot uzatilgandan so‘ng, qabul qiluvchi tomon hech qanday **tasdiqlash** yubormaydi. Agar biror bo‘lak yetib bormasa, u qaytadan jo‘natilmaydi.
3. **Ma'lumot tez uzatiladi:** UDP katta hajmdagi ma'lumotlarni tez uzatishi mumkin. Lekin bu tezlik hisobiga ma'lumotlarning yetib borganligini yoki buzilganligini tekshirish imkoniyati yo‘q.

**Misol:**

Endi tasavvur qiling, siz do‘stingizga tezda xabar yubormoqchisiz. Har bir xabar tez jo‘natyapsiz, lekin do‘stingiz xabar yetib kelganini tasdiqlamaydi. Ba'zi xabarlar yetib bormasa, ularni qaytadan jo‘natmaysiz. Bu xuddi video oqimlar yoki onlayn o‘yinlar kabi ishlaydi – tez yetkazish muhim, lekin ma'lumotlarning to‘liq va xavfsiz yetib kelishi shart emas.

**UDP ning ishlash jarayoni:**

1. **Connection establishment yo‘q**: UDP'da ma'lumot uzatish oldidan alohida bog‘lanish o‘rnatilmaydi.
2. **Ma'lumot uzatish**: Ma'lumot tezkorlikda uzatiladi va har bir bo‘lak yetib borganini tekshirilmaydi.
3. **No acknowledgment**: Har bir bo‘lak uchun tasdiqlash yo‘q, qayta uzatish amalga oshirilmaydi.

**UDP qayerda qo‘llaniladi?**

* **Video oqimlari (Streaming)**: Video va audio oqimlari, masalan, YouTube yoki Netflix orqali tez yetkazib berish kerak bo‘lgan ma'lumotlar UDP yordamida uzatiladi.
* **Onlayn o‘yinlar (Gaming)**: O‘yinlarda tezkor javoblar kerak, va har bir paketning yetib borishi muhim bo‘lmasligi mumkin.
* **IP telefoniya**: Tez yetkazish talab etiladigan IP telefon xizmati (VoIP) orqali ovozli qo‘ng‘iroqlar UDP orqali uzatiladi.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.csclub.uz/tarmoq-xavfsizligi/protokollar.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
