Přenosové protokoly v internetu

Jak se dostaneme z bodu A do bodu B

  • většina dnešních protokolů vznikla dávno
  • v počátcích internetu byla většina protokolů textových
  • umožňují rozšiřitelnost
  • jejich současnou podobu ovlivňují limity internetové sítě

Co je špatně s internetem

Pokud chceme něco doručit musíme vědět kam

Adresovací systém IPv4

příklad adresy : 192.168.0.123
celkový počet adres: 4 294 967 296

vs.
Adresovací systém IPv6

příklad adresy : 2001:0db8:0000:0000:0000:8a2e:0370:7334
celkový počet adres: 340 282 366 920 938 463 463 374 607 431 768 211 456

IPv4 Problémy

  • Fragmentace v rámci směrování
  • Lokální rozsahy
    • 192.168.xxx.xxx
    • 10.xxx.xxx.xxx
    • 172.16.xxx.xxx – 172.31.xxx.xxx
  • Drtivá většina zařízení má lokální adresu
  • Internet má minimálně 2 úrovně
  • Nedostatek adres ve veřejném prostoru

Historie

fg

Jak to může vypadat

  • Stále používáme IPv4 a IPv6 je v nedohlednu
  • I kdyby jsme začli používat IPv6 nezískáme tím zpočátku nic protože celý internet byl vybudován na IPv4

Řešení...

Server-Klient

  • servery potřebují jednu z 4 294 967 296 veřejných dres
  • klientům stačí zeptat se serveru a ten může odpovědět
  • když chtějí komunikovat 2 smrtelníci mají smůlu a musí k tomu využít server
  • drtivá většina protokolů je tomu podřízena
  • servery musí být zapnuté a připojené vždy, klienti tuto povinost nemají

HTTP

client se dotáže serveru na základě adresy url

GET, POST, PUT, DELETE, OPTIONS, HEAD

HTTP odpověd

http.cat

Co se stane když prohlížeč otevře stránku https://qwerty.severus.pilsfree.net/test/

GET /test/ HTTP/1.1
Host: qwerty.severus.pilsfree.net
User-Agent: curl/8.0.1
Accept: */*
HTTP/1.1 200 OK
Accept-Ranges: bytes
Alt-Svc: h3=":443"; ma=2592000
Content-Length: 186
Content-Type: text/html; charset=utf-8
Etag: "sv4hro56"
Last-Modified: Tue, 22 Apr 2025 14:04:36 GMT
Server: Caddy
Date: Tue, 22 Apr 2025 14:05:29 GMT
 
<html>
  <head>
    <title>Ahoj Kristýno</title>
  </head>
  <body>
    <h3>Ahoj, Kristý, doufám že se ti líbí obrázek Azerty</h3>
    <img src='kocicka.jpg' />
  </body>
</html>

Ale na stránce je ještě obrázek, který nemá prohlížeč stažený, musíme si požádat i o ten

GET /test/kocicka.jpg HTTP/1.1
Host: qwerty.severus.pilsfree.net
User-Agent: curl/8.0.1
Accept: */*
HTTP/1.1 200 OK
Accept-Ranges: bytes
Alt-Svc: h3=":443"; ma=2592000
Content-Length: 39268
Content-Type: image/jpeg
Etag: "sv4hq9uas"
Last-Modified: Tue, 22 Apr 2025 14:03:45 GMT
Server: Caddy
Date: Tue, 22 Apr 2025 14:12:25 GMT

����JFIF��C


          	
                ␦!␦"$"$����"��

���}!1AQa"q2��#B��R��$3br�	
␦%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������

���w!1AQaq"2B����	#3R�br�
$4�%�␦&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������
                                                                                                                           ?΍��������
                                                                                                                                     qU�p��i�#�9��-��Lo����0�3He�Iǵ12x����<�Q6��A�y�rsE�Z.:�D�8�Q�@␦�)�
#���ҩ� �4�2���V�|0A��+j���9�ӚDa�i0P��:qN' .zu5]$E��)nqH                                                                                                                                                ���].:p
                                                       J�:r)ܞA�Ti���=e�Ԁ��T�b-�	>\�Hc|N���r�O�����i����?�␦��3�h�
                                                                                                                �v�?d����� ��Mk���f}ɫ<���I�t\���ƫ�3u����!�>��6�U�8�F+F���ɬj}�N�G4��jg�^�~VBA<TA��v"���/ue-弐Ǵ�u�&�F�l��s\om|�D�v��V姠QEC
CKH��l�lY���v��R+kÑy
                    4���_�\��!{Nj����lWal�_������2�*ڟ�e=��

Verze HTTP

  • HTTP/1.0
  • HTTP/1.1 (znovupoužití otevřeného spojení)
  • HTTP/2
    • urychluje přenos přidavá vice kanálů do jednoho TCP spojení
    • přidává push
    • číslování hlaviček
  • HTTP/3 (mění přenosovou technologii na nezadrhávající se UDP)

http vs. https

EMAIL

  • Email je ukázka že jsme otroky ipv4, namísto aby jsme komunikovali mezi sebou, zprávy si předáváme prostřednictvím serverů.
  • Email není jeden protokol ale více podobných textových protokolů

SMTP

  • doručuje na cílovou adresu
  • odesílání klient<->server
  • doručování server<->server
  • protokol je interaktivní a povídací

Cvičení

  • stáhneme putty
  • nastavíme telnet, známý smtp server, port 25
  • budeme si s ním povídat podle předchozího slajdu

IMAP/POP3

  • po doručení zprávy si ji můžeme stáhnout do emailového klienta
  • také to jsou povídací, podobně jako smtp
  • ukázka POP3

Další protokoly

  • Vzdálená správa telnet, SSH
  • Překlad adres DNS
  • Nahrávání souborů FTP, SCP, SFTP

P2P sítě

  • snaží se vyřešit problém internetu přenosem dat mezi koncovými počítači
  • zavisí na počtu uživatelů ve veřejném rozsahu adres, jen díky nim můžeme zahájit komunikaci
  • současné P2P sítě
    • torrent
    • kryptoměny

Torrent

  • soubor je rozložen na spoustu malých stejně velkých částí
  • nový účastník se snaží stáhnout přednostně ty části které jsou v síti nejvíce vzácné, aby se mohl zapojit do odesílání

Krypto

  • používají téměř úplně stejný protokol jako torrent
  • vyměňují si blockchain, ke kterému přidávají bloky
  • po dohnání celého blockchainu, stahují pouze konečné bloky
  • velikost bitcoinu na následujícím slajdu