Məzmuna keç
Educora
Universitet25 dəq55 / 59

Kompüter şəbəkələri: dərindən

OSI və TCP/IP modellərini, IP-ünvanlama və alt şəbəkələrə bölməni (hesablama nümunələri ilə), TCP və UDP-ni, DNS-i, HTTP/HTTPS və TLS-in əsaslarını öyrən.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Protokolları OSI və TCP/IP səviyyələrinə aid etmək və inkapsulyasiyanı izah etmək
  • Şəbəkə ünvanını, yayım ünvanını, host sayını tapmaq və VLSM ilə alt şəbəkələr planlamaq
  • TCP ilə UDP-ni müqayisə etmək və ötürmə gecikməsini, TCP buraxma qabiliyyətini hesablamaq
  • DNS sorğusunun və HTTPS əlaqəsinin addımlarını təsvir etmək

Murad Bakıdan brauzerdə https://www.example.com yazır. Yarım saniyədə onlarla şey baş verir: ad IP-ünvana çevrilir, TCP əlaqəsi qurulur, TLS açarları razılaşdırılır, HTTP sorğusu göndərilir və cavab yüzlərlə paket şəklində qayıdır. Bu dərsdə məktəb səviyyəsindən bir addım irəli gedib bu prosesin hər mərhələsini dəqiq hesablamalarla öyrənəcəyik.

Səviyyəli modellər: OSI və TCP/IP

OSITCP/IPProtokollarVerilən vahidi
7 Tətbiqi, 6 Təqdimat, 5 SeansTətbiqiHTTP, DNS, SMTP, TLSmesaj
4 NəqliyyatNəqliyyatTCP, UDPseqment / dataqram
3 ŞəbəkəİnternetIP, ICMPpaket
2 Kanal, 1 FizikiŞəbəkəyə girişEthernet, Wi-Fikadr / bitlər
OSI 7 səviyyəli nəzəri modeldir, internet isə praktikada 4 səviyyəli TCP/IP modeli ilə işləyir.

Göndərəndə hər səviyyə aşağıdakına öz başlığını əlavə edir (inkapsulyasiya): HTTP mesajı TCP seqmentinə (portlarla), o, IP paketinə (IP-ünvanlarla), o da Ethernet kadrına (MAC ünvanlarla) qoyulur. Qəbul edəndə başlıqlar tərs sıra ilə çıxarılır. Hər səviyyə yalnız öz qonşusu ilə danışır — Wi-Fi-ı kabelə dəyişmək HTTP-yə heç təsir etmir.

IP-ünvanlama və alt şəbəkələr

IPv4 ünvanı 32 bitdir və dörd oktet kimi yazılır: 192.168.10.77. CIDR yazılışında /n ünvanın ilk n bitinin şəbəkə hissəsi, qalan 32 − n bitin isə host hissəsi olduğunu göstərir. Şəbəkə ünvanı = IP AND maska (bütün host bitləri 0), yayım ünvanı — bütün host bitləri 1. Bu iki ünvan qurğulara verilmir.

Nhost = 2^(32 − n) − 2, network = IP AND mask, broadcast = network OR (NOT mask)
burada:
  • nprefiksin uzunluğu (/n)
  • Nhostqurğulara verilə bilən ünvanların sayı
  • maskn ədəd 1 və 32 − n ədəd 0 (məs., /26 → 255.255.255.192)
Nümunə 1: 192.168.10.77/26

192.168.10.77/26 üçün maskanı, şəbəkə və yayım ünvanlarını, host sayını və qurğulara verilə bilən ünvanlar diapazonunu tap.

Həllini göstər
/26: ilk üç oktet tam şəbəkə hissəsidir, dördüncüdə 2 şəbəkə biti → maska 11000000 = 192 → 255.255.255.192.
Dördüncü oktet: 77 = 01001101; AND 11000000 = 01000000 = 64 → şəbəkə 192.168.10.64.
Host bitləri 1: 01111111 = 127 → yayım 192.168.10.127.
Hostlar: 2⁶ − 2 = 62, diapazon 192.168.10.65 – 192.168.10.126.
Qısa yol: blok ölçüsü 256 − 192 = 64; 77-dən kiçik 64-ə bölünən ən böyük ədəd 64-dür.
Nümunə 2: VLSM ilə planlama

Şirkətə 192.168.1.0/24 verilib. Şöbələrə 100, 50 və 20 qurğu lazımdır. Alt şəbəkələri dəyişən uzunluqlu maskalarla (VLSM) böl.

Həllini göstər
Qayda: ən böyük tələbdən başla, 2ᵏ − 2 ≥ tələb olan ən kiçik k-nı seç, prefiks 32 − k.
100 → 2⁷ − 2 = 126 ≥ 100 → /25: 192.168.1.0/25 (.1 – .126).
50 → 2⁶ − 2 = 62 ≥ 50 → /26: 192.168.1.128/26 (.129 – .190).
20 → 2⁵ − 2 = 30 ≥ 20 → /27: 192.168.1.192/27 (.193 – .222).
Qalan: 192.168.1.224/27 — gələcək üçün ehtiyat. Hər birinə sadəcə /26 versəydik, 100 qurğu sığmazdı.
Python
import ipaddress

net = ipaddress.ip_interface('192.168.10.77/26').network
hosts = list(net.hosts())
print(net, net.netmask, net.broadcast_address)
print('hosts:', len(hosts), 'from', hosts[0], 'to', hosts[-1])

start = ipaddress.ip_address('192.168.1.0')
for need in [100, 50, 20]:
    host_bits = (need + 1).bit_length()
    sub = ipaddress.ip_network(str(start) + '/' + str(32 - host_bits))
    print(need, 'hosts ->', sub, 'capacity', sub.num_addresses - 2)
    start = sub.broadcast_address + 1
print('left over from', start)

for a in ['10.1.2.3', '172.20.5.1', '8.8.8.8']:
    print(a, 'private' if ipaddress.ip_address(a).is_private else 'public')
▸ Gözlənilən nəticə
192.168.10.64/26 255.255.255.192 192.168.10.127
hosts: 62 from 192.168.10.65 to 192.168.10.126
100 hosts -> 192.168.1.0/25 capacity 126
50 hosts -> 192.168.1.128/26 capacity 62
20 hosts -> 192.168.1.192/27 capacity 30
left over from 192.168.1.224
10.1.2.3 private
172.20.5.1 private
8.8.8.8 public
Standart ipaddress modulu hər iki nümunəni təsdiqləyir. (need + 1).bit_length() 2ᵏ ≥ need + 2 şərtini ödəyən ən kiçik k-nı verir. Özəl diapazonlar: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 — onlar internetdə marşrutlaşdırılmır, NAT vasitəsilə çıxır.

Nəqliyyat: TCP və UDP

XassəTCPUDP
əlaqəüç addımlı razılaşma: SYN, SYN-ACK, ACKyoxdur, dataqram dərhal göndərilir
etibarlılıqtəsdiqlər (ACK), təkrar göndərmə, sıra nömrələrizəmanət yoxdur: itə, qarışa bilər
axının idarəsivar (pəncərə)yoxdur
istifadəveb (HTTP/1.1, HTTP/2), e-poçt, fayl ötürməDNS, video zənglər, onlayn oyunlar, QUIC (HTTP/3)
d = L / R + D / s; throughput_TCP ≤ W / RTTd = L / R + D / s; throughput_TCP ≤ W / RTT
burada:
  • L / RL / Rötürmə gecikməsi: paketin ölçüsü L (bit) / kanalın sürəti R (bit/s)
  • D / sD / syayılma gecikməsi: məsafə D / siqnalın sürəti s (optik lifdə ≈ 2 · 10⁸ m/s)
  • W, RTTTCP pəncərəsinin ölçüsü və gediş-gəliş vaxtı
Nümunə 3: gecikmə və TCP-nin tavanı

a) 1500 baytlıq paket 100 Mbit/s kanalla 1000 km optik lifdən göndərilir. Gecikmə nə qədərdir?
b) TCP pəncərəsi 64 KB (65 536 bayt), RTT = 50 ms. Maksimal sürət nədir?

Həllini göstər
a) L = 1500 · 8 = 12 000 bit; L/R = 12 000 / 10⁸ = 0,00012 s = 120 mks.
D/s = 10⁶ m / (2 · 10⁸ m/s) = 0,005 s = 5 ms.
d ≈ 5,12 ms — uzaq məsafədə yayılma üstünlük təşkil edir, sürəti artırmaq onu azaltmır.
b) W/RTT = 65 536 · 8 bit / 0,05 s ≈ 10,5 · 10⁶ bit/s ≈ 10,5 Mbit/s — kanal 1 Gbit/s olsa belə! Ona görə müasir TCP pəncərəni genişləndirmə (window scaling) ilə böyüdür.

DNS, HTTP və TLS

  1. 1
    DNS

    Brauzer keşə baxır, sonra rekursiv həlledici (adətən provayderin) kök serverdən .com serverinin, ondan example.com-un səlahiyyətli serverinin ünvanını öyrənir və A (IPv4) və ya AAAA (IPv6) qeydini alır. Cavab TTL müddətinə keşlənir. Adətən UDP, port 53.

  2. 2
    TCP

    Serverin 443 portu ilə SYN, SYN-ACK, ACK — bir RTT.

  3. 3
    TLS 1.3

    Müştəri dəstəklədiyi şifrləri və açar payını göndərir; server öz açar payını, CA tərəfindən imzalanmış sertifikatını və imzanı qaytarır. Brauzer sertifikat zəncirini yoxlayır, hər iki tərəf (EC)DHE ilə ortaq seans açarını hesablayır — adətən bir RTT.

  4. 4
    HTTP

    Şifrələnmiş kanalda GET / sorğusu və status kodlu cavab: 200 OK, 301 köçürülüb, 404 tapılmadı, 500 server xətası. Bütün məlumat simmetrik açarla (məsələn, AES-GCM) şifrələnir.

Text
GET /index.html HTTP/1.1
Host: www.example.com
Accept: text/html

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 1256
Cache-Control: max-age=3600
HTTP mətn protokoludur: sorğu sətri (metod, yol, versiya), başlıqlar və boş sətir. Cavab status sətri ilə başlayır; Cache-Control brauzerə səhifəni 3600 saniyə keşdə saxlamağa icazə verir.

Əsas fikirlər

  • TCP/IP-nin 4 səviyyəsi: tətbiqi, nəqliyyat, internet, şəbəkəyə giriş; hər səviyyə öz başlığını əlavə edir.
  • /n şəbəkəsində 2^(32 − n) − 2 host var; şəbəkə = IP AND maska, blok = 256 − maraqlı oktet.
  • TCP etibarlı və ardıcıldır (üç addımlı razılaşma, ACK), UDP isə sürətli və sadədir; TCP sürəti ≤ W / RTT.
  • DNS adı IP-yə iyerarxik çevirir: kök → TLD → səlahiyyətli server.
  • HTTPS = HTTP + TLS: sertifikat serveri təsdiqləyir, məlumat simmetrik seans açarı ilə şifrələnir.

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
/27 alt şəbəkəsində qurğulara neçə ünvan verilə bilər?