# Test 02 ## Popište protokol TCP (Transmission Control Protocol) - protokol pro **přenos dat pomocí spojovaných služeb** - pracuje na transportní vrstvě (L4) - **velmi složitý protokol** (musí udržovat stav spojení) - používá se pro **složitější služby s přenosem objemnějších dat** - HTTP(S) - SMTP(S) / POP3(S) / IMAP(S) ### Spojované služby - **fragmentaci a defragmentaci dat** na úrovni L4 **zajišťuje síť** - L4 postkytuje službu virtuálního spojení - **zaručuje doručení** nebo chybovou zprávu - **zaručuje doručení** segmentů **v pořadí odeslání** - **zaručuje doručení** stejného segmentu **právě jednou** - analogie: ~ telefon - protokol zajišťuje: - **rozdělení dat** do segmentů (=L4 PDU) a jejich číslování - **potvrzování příjmu** segmentů **a případné opakování přenosu** - **sestavení** segmentů **ve správném pořadí** - **řízení toku dat** ## Popište protokol UDP (User datagram protocol) - protokol pro **přenos dat pomocí nespojovaných služeb** - pracuje na transportní vrstvě (L4) - **velmi jednoduchý protokol** (nemusí udržovat žádný stav) - používá se pro **jednoduché služby typu „výzva + odezva“**, zejména pokud se posílají jen krátké zprávy - DHCP - DNS ### Nespojované služby - **fragmentaci a defragmentaci dat** na úrovni L4 **si zajišťuje aplikace** sama - L4 poskytuje jen službu odeslání segmentu - **nezaručuje doručení** a jeho potvrzení - **nezaručuje doručení** segmentů **v pořadí odeslání** (↦ směrování) - **nevylučuje vícenásobné doručení** stejného segmentu (↦ směrování) - analogie: ~ pošta - aplikace musí zajišťovat: - **rozdělení dat** do segmentů a jejich číslování - **potvrzování příjmu** segmentů **a případné opakování přenosu** - **sestavení** segmentů **ve správném pořadí** ## Nakreslete a porovnejte hlavičky protokolů TCP a UDP ### TCP ``` 0 7 8 15 16 23 24 31 ``` \ ``` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` \ ``` | Source Port | Destination Port | ``` \ ``` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` \ ``` | Sequence Number | ``` \ ``` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` \ ``` | Acknowledgment Number | ``` \ ``` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` \ ``` | Data | |U|A|P|R|S|F| | ``` \ ``` | Offset| Reserved |R|C|S|S|Y|I| Window | ``` \ ``` | | |G|K|H|T|N|N| | ``` \ ``` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` \ ``` | Checksum | Urgent Pointer | ``` \ ``` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` \ ``` | Options | Padding | ``` \ ``` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` \ ``` | data | ``` \ ``` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` ### UDP ``` 0 7 8 15 16 23 24 31 ``` \ ``` +--------+--------+--------+--------+ ``` \ ``` | Source | Destination | ``` \ ``` | Port | Port | ``` \ ``` +--------+--------+--------+--------+ ``` \ ``` | | | ``` \ ``` | Length | Checksum | ``` \ ``` +--------+--------+--------+--------+ ``` \ ``` | | ``` \ ``` | data octets ... | ``` \ ``` +-----------------+--------+--------+ ```