System Design
Kompyuter va tarmoq asoslari
System design tushunish uchun kompyuter va tarmoq asoslarini bilish shart.
Kompyuter arxitekturasi
Asosiy komponentlar
┌──────────────────────────────┐
│ CPU (Protsessor) │ ← Hisoblashlar
├──────────────────────────────┤
│ RAM (Xotira) │ ← Tez, vaqtinchalik
├──────────────────────────────┤
│ Disk (Storage) │ ← Sekin, doimiy
├──────────────────────────────┤
│ Network (Tarmoq) │ ← Aloqa
└──────────────────────────────┘
Tezlik taqqoslash
| Operatsiya | Vaqt | Real hayot analogiyasi |
|---|---|---|
| CPU registr | 1 ns | 1 soniya |
| RAM o’qish | 100 ns | 1.5 minut |
| SSD o’qish | 10 μs | 2.7 soat |
| HDD o’qish | 10 ms | 4 oy |
| Internet | 100 ms | 3 yil |
Xulosa: Disk va tarmoq eng sekin operatsiyalar. System design’da asosan shu ikkalasini optimize qilish kerak.
OSI Model (7 qatlam)
Tarmoq 7 ta qatlamdan iborat:
7. Application ← HTTP, FTP (sizning ilovangiz)
6. Presentation ← SSL/TLS, Encryption
5. Session ← Authentication, Session
4. Transport ← TCP, UDP (port: 80, 443)
3. Network ← IP, Routing (IP address)
2. Data Link ← MAC address, Ethernet
1. Physical ← Kabel, WiFi
System design’da asosiy 3 ta:
- Application (7): HTTP/HTTPS
- Transport (4): TCP/UDP
- Network (3): IP addressing
Client-Server modeli
Zamonaviy internet client-server modelida ishlaydi:
┌─────────┐ ┌─────────┐
│ Client │ ──── Request ────→ │ Server │
│ (Phone) │ │ (AWS) │
│ │ ←─── Response ──── │ │
└─────────┘ └─────────┘
Client
- Foydalanuvchi qurilmasi (telefon, brauzer)
- So’rov yuboradi (request)
- Javobni ko’rsatadi (render)
Server
- Har doim online
- So’rovlarni qayta ishlaydi
- Ma’lumotlarni qaytaradi
IP Address va Port
IP Address
Har bir kompyuterning internet’dagi manzili:
IPv4: 192.168.1.1 (4 milliard manzil)
IPv6: 2001:0db8:85a3::8a2e:0370:7334 (340 undecillion)
Private IP (ichki tarmoq):
- 192.168.x.x
- 10.x.x.x
Public IP (internet):
- Server’ning tashqi manzili
Port
Bitta kompyuterdagi turli xil xizmatlar:
IP: 192.168.1.1
├─ Port 80 → HTTP (web server)
├─ Port 443 → HTTPS (secure web)
├─ Port 22 → SSH (remote access)
├─ Port 5432 → PostgreSQL
└─ Port 6379 → Redis
Full address: 192.168.1.1:443
Request-Response Lifecycle
Brauzerda facebook.com yozganingizda nima bo’ladi?
1. DNS Lookup
facebook.com → 157.240.241.35
2. TCP Connection
Client ←→ Server (3-way handshake)
3. HTTP Request
GET / HTTP/1.1
Host: facebook.com
4. Server Processing
- Database'dan ma'lumot olish
- HTML generatsiya qilish
5. HTTP Response
HTTP/1.1 200 OK
Content-Type: text/html
<html>...</html>
6. Rendering
Brauzer HTML'ni ko'rsatadi
Vaqt: Jami ~100-500 millisekund
Latency va Throughput
Latency (Kechikish)
Bitta requestning vaqti:
Latency = 100 ms
User → [100ms] → Server → [100ms] → User
Low latency muhim: Gaming, video call, trading
Throughput (O’tkazish qobiliyati)
Soniyasiga nechta request:
Throughput = 1000 req/sec
High throughput muhim: Video streaming, file downloads
Trade-off
Ko’pincha latency va throughput o’rtasida tanlov qilish kerak:
- Latency optimize: Har bir request tez (caching)
- Throughput optimize: Ko’p requestlar (batching)
Bandwidth va Data Transfer
Bandwidth
Tarmoq “quvur” o’lchami:
10 Mbps → Uy interneti
100 Mbps → Biznes internet
10 Gbps → Data center
Data Transfer narxi
Cloud provayderlar trafik uchun pul oladi:
AWS pricing:
- Ichki trafik: $0
- Tashqariga: $0.09/GB
Real misollar:
- 1 TB video streaming = ~$90
- 10 TB = ~$900
Optimization: CDN va caching bilan kamaytiramiz
Protokollar
TCP (Transmission Control Protocol)
- Ishonchli: paketlar yetib borishi kafolati
- Tartibli: ketma-ketlik saqlanadi
- Sekinroq: confirmation kutish kerak
Qachon: HTTP, Database, File transfer
UDP (User Datagram Protocol)
- Tez: confirmation yo’q
- Ishonchsiz: paketlar yo’qolishi mumkin
- Tartibsiz: aralashishi mumkin
Qachon: Video streaming, gaming, DNS
Xulosa
Muhim tushunchalar:
- Disk va tarmoq eng sekin — bu yerda optimize qiling
- Client-Server — asosiy arxitektura modeli
- IP va Port — manzil tizimi
- Latency vs Throughput — ikkalasini balanslashtiring
- TCP vs UDP — ishonchlilik vs tezlik
Keyingi dars: Internet protokollari (HTTP, DNS va boshqalar).