Protocoale pentru Internet Virgil Dobrota Universitatea Tehnica din Cluj-Napoca, Romania Virgil.Dobrota@com.utcluj.ro Copyright © Virgil Dobrota 2023-2024, All rights reserved 1 Curs 7 - Cuprins Protocoale de strat transport 15. Protocolul UDP: structura antetului 16. Protocolul SCTP: structura antetului 17. Arhitecturi client-server Copyright © Virgil Dobrota 2023-2024, All rights reserved 2 15. Protocolul UDP: structura antetului Copyright © Virgil Dobrota 2023-2024, All rights reserved 3 Structura antetului UDP (I) Caracteristicile protocolului UDP -> RFC 768 (valid din 1980 !!!), autor Jon Postel (19431998), considerat un fel de “God of the Internet”, vezi: https://tools.ietf.org/html/rfc768 -> strat 4 (transport) -> neorientat pe conexiune CL (Connectionless) -> f`r` confirmare de primire -> protocol cap-la-cap (end-to-end) -> nu asigur` controlul fluxului -> transmisie nefiabil` (unreliable) Copyright © Virgil Dobrota 2023-2024, All rights reserved 4 Structura antetului UDP (II) ◼ Port surs` (Source Port): TSAP pe 16 bi]i (0 c=nd nu este utilizat) ◼ Port destina]ie (Destination Port): TSAP pe 16 bi]i Lungime (Length): 16 bi]i, con]ine lungimea \n octe]i a segmentului UDP (antet + date). Lungimea minim` este 8 (antet, f`r` date). ◼ Copyright © Virgil Dobrota 2023-2024, All rights reserved 5 Structura antetului UDP (III) Pseudo-antet UDP peste IPv4 Suma de control (Checksum): se aplic` asupra antetului UDP (8 octe]i), a datelor [i a pseudo-antetului UDP (12 octe]i, vezi figura de mai sus) astfel: 1. 2. 3. 4. 5. Valoarea ini]ial` a “sumei de control” pe 16 bi]i este 0000H. Dac` lungimea c=mpului de date este impar`, se adaug` un octet 00H. Se adun` cuvintele pe 16 bi]i \n complement fa]` de 1. Complementul fa]` de 1 al rezultatului este “suma de control”. Pseudo-antetul UDP nu se adaug` la segmentul UDP (se folose[te doar pentru calculul sumei de control) . Copyright © Virgil Dobrota 2023-2024, All rights reserved 6 Structura antetului UDP (IV) Pseudo-antet UDP peste IPv6 Pseudo-antet UDP peste IPv6 = 16 octe]i adresa IPv6 surs` + 16 octe]i adresa IPv6 destina]ie + 4 octe]i lungime segment date strat superior + 3 octe]i \n 0 + 1 octet urm`torul antet = 40 octe]i [RFC8200] Suma de control (Checksum): se aplic` asupra antetului UDP (8 octe]i), a datelor [i a pseudo-antetului UDP (40 octe]i, vezi figura de mai sus) astfel: 1. 2. 3. 4. 5. Valoarea ini]ial` a “sumei de control” pe 16 bi]i este 0000H. Dac` lungimea c=mpului de date este impar`, se adaug` un octet 00H. Se adun` cuvintele pe 16 bi]i \n complement fa]` de 1. Complementul fa]` de 1 al rezultatului este “suma de control”. Pseudo-antetul UDP nu se adaug` la segmentul UDP (se folose[te doar pentru calculul sumei de control) . Copyright © Virgil Dobrota 2023-2024, All rights reserved 7 Structura antetului UDP (V) OBSERVA}II: -> Dac` suma calculat` este 0000H, se va trimite FFFFH (complementul fa]` de 1 al ei!) -> C=nd se completeaz` c=mpul cu valoarea 0000H, rezult` c` emi]`torul nu a generat sum` de control, ea fiind ignorat`. Copyright © Virgil Dobrota 2023-2024, All rights reserved 8 16. Protocolul SCTP: structura antetului Copyright © Virgil Dobrota 2023-2024, All rights reserved 9 Structura antetului SCTP (I) Caracteristicile protocolului SCTP -> SCTP = Stream Control Transmission Protocol -> strat 4 (transport), orientat pe conexiune CO (Connection-Oriented), cu confirmare de primire -> similar cu TCP, este un protocol cap-la-cap (end-to-end) care asigur`: controlul fluxului (flow control) transmisia fiabil` (reliability) -> propus de grupul de lucru IETF SIGTRAN (Signaling Transport over IP) pentru transport semnaliz`ri, pentru a \nlocui TCP \n aplica]ii de telefonie prin Internet Copyright © Virgil Dobrota 2023-2024, All rights reserved 10 Structura antetului SCTP (II) Tunelare SCTP/ UDP/ IPv4 Dac` sistemul de operare nu suport` SCTP, se tuneleaz` SCTP peste UDP [i apoi peste IPv4 sau IPv6. [Sursa: RFC6951] Copyright © Virgil Dobrota 2023-2024, All rights reserved 11 Structura antetului SCTP (III) Tunelare SCTP/ UDP/ IPv6 [Sursa: RFC6951] Copyright © Virgil Dobrota 2023-2024, All rights reserved 12 Structura antetului SCTP (IV) Dezavantajele utiliz`rii TCP pentru semnaliz`ri \n telecomunica]ii • suma de control \n complement fa]` de 1: prea simpl` pentru re]elele de telecomunica]ii bazate pe SS7 • secven]ialitatea datelor nu este cerut` totdeauna de semnaliz`rile din telefonie (doar dac` se refer` la acela[i apel). La pierderea unui segment TCP, s-ar retransmite [i semnaliz`ri ulterioare referitoare la alte apeluri • este orientat de octe]i [i nu pe mesaje • este vulnerabil la atacuri: de exemplu DoS (Denial of Service) Copyright © Virgil Dobrota 2023-2024, All rights reserved 13 Structura antetului SCTP (V) Dezavantajele utiliz`rii UDP pentru semnaliz`ri \n telecomunica]ii • • • • nu ofer` transmisii fiabile nu garanteaz` secven]ialitatea datelor recep]ionate mecanismele de control al congestiei sunt greu de implementat are un avantaj: este implementat \n orice sistem de operare => aplica]iile care ruleaz` peste UDP, corect=nd aceste dezavantaje, ar fi mai repede implementate (dec=t cele care ar merge \n kernel sau peste IP). Copyright © Virgil Dobrota 2023-2024, All rights reserved 14 Structura antetului SCTP (VI) Copyright © Virgil Dobrota 2023-2024, All rights reserved 15 Structura antetului SCTP (VII) • Tag de verificare (Verification Tag): receptorul va valida sursa pachetului SCTP. La emisie valoarea trebuie s` fie = Initiate Tag recep]ionat de la cel`lalt terminal \n faza de ini]ializare a asocierii. Excep]ii: -> Tag = 0 pentru INIT chunk -> Tag = Tag din SHUTDOWN-ACK chunk pentru un pachet care con]ine SHUTDOWN-COMPLETE chunk, cu bit T =1 -> Tag = Tag din pachetul care a generat ABORT chunk • Suma de control (Checksum): algoritmul Adler-32, \nlocuit apoi cu CRC-32 • Tip de chunk (Chunk type): 0…255, identific` tipul de informa]ie din date chunk. Valorile 63, 127 [i 255 sunt rezervate pentru extinderi viitoare. Copyright © Virgil Dobrota 2023-2024, All rights reserved 16 Structura antetului SCTP (VIII) Copyright © Virgil Dobrota 2023-2024, All rights reserved 17 Structura antetului SCTP (IX) Copyright © Virgil Dobrota 2023-2024, All rights reserved 18 Structura antetului SCTP (X) Copyright © Virgil Dobrota 2023-2024, All rights reserved 19 Structura antetului SCTP (XI) Copyright © Virgil Dobrota 2023-2024, All rights reserved 20 Structura antetului SCTP (XII) • Flags (Chunk Flags) (8 bi]i) \n func]ie de tip chunk. Se pun \n 0 c=nd trebuie ignora]i. • Lungime chunk (16 bi]i) • Date chunk: lungime variabil`. BIBLIOGRAFIE SUPLIMENTAR~: [Fai20] G. Fairhurst, T. Jones, M. Tüxen, I. Rüngeler, T. Völker, “Packetization Layer Path MTU Discovery for Datagram Transports”, IETF, September 2020, https://tools.ietf.org/html/rfc8899 [Ste10] R. Stewart, P. Amer, “SCTP”, University of Delaware, USA, 2010 https://el.el.obs.utcluj.ro/pi/pdf/bsdasia_sctp_intro.pdf [Ste18] Randall Stewart' Home Page, 2018, https://people.freebsd.org/~rrs/ [Ste22] R. Stewart (Netflix, Inc.), M. Tüxen, K. Nielsen, “Stream Control Transmission Protocol”, RFC 9260, IETF, June 2022 https://www.rfc-editor.org/rfc/rfc9260.html [Tux13] M. Tüxen, R.Stewart, “UDP Encapsulation of Stream Control Transmission Protocol (SCTP) Packets for End-Host to End-Host Communication”, IETF, May 2013, https://tools.ietf.org/html/rfc6951 Copyright © Virgil Dobrota 2023-2024, All rights reserved 21 17. Arhitecturi client-server Copyright © Virgil Dobrota 2023-2024, All rights reserved 22 Arhitecturi client-server (I) Clientul • aplica]ie care ini]iaz` o comunica]ie pereche-pereche (peerto-peer). • de fiecare dat` c=nd se execut`, contacteaz` un server, trimite o cerere [i a[teapt` un r`spuns • c=nd r`spunsul sose[te, clientul continu` procesarea OBSERVA}II: -> mai u[or de construit dec=t serverele -> nu necesit` privilegii de sistem speciale Copyright © Virgil Dobrota 2023-2024, All rights reserved 23 Arhitecturi client-server (II) server TCP server UDP -> se sincronizeaz` emisia cu recep]ia -> nu se sincronizeaz` emisia cu recep]ia -> se numeroteaz` pachetele -> nu se numeroteaz` pachetele -> se verific` secven]ialitatea la recep]ie -> nu se verific` secven]ialitatea la recep]ie -> se elimin` pachetele duplicate -> cererea de la un client sau r`spunsul de la un server pot fi pierdute/ duplicate/ \nt=rziate/ trimise la alt` destina]ie -> se retransmit segmentele eronate/lips` -> nu se fac retransmisii -> feedback pentru client [i server dac` re]eaua devine inoperabil` -> nu exist` feedback dac` re]eaua devine inoperabil` Copyright © Virgil Dobrota 2023-2024, All rights reserved 24 Arhitecturi client-server (III) Socket stream (TCP) Copyright © Virgil Dobrota 2023-2024, All rights reserved 25 Arhitecturi client-server (IV) Socket datagram (UDP) -> vezi aplica]ii laborator + mini-proiect Copyright © Virgil Dobrota 2023-2024, All rights reserved 26 Concluzii Avantaje TCP: comunicare fiabil` pentru orice tip de re]ea u[or de programat Dezavantaje TCP: mai lent pentru aplica]ii \n timp real supra-antete Avantaje UDP: aplica]ii \n timp real, care nu suport` supra-antete Deazavantaje UDP comunicare nefiabil` (fiabil` doar dac` rata erorilor este mic`) fiabilitatea r`m=ne \n sarcina stratului aplica]ie mai greu de programat Copyright © Virgil Dobrota 2023-2024, All rights reserved 27 Test grila curs 7 (I) TEST GRIL~ CURS 7 1. Ce dimensiune are antetul UDP? a) 8 octe]i b) 32 octe]i c) 64 octe]i d) 320 bi]i 2. Ce rol au bi]ii SYN [i ACK din antetul UDP? a) Pentru stabilirea unei conexiuni b) Pentru eliberarea unei conexiuni c) Acela[i rol ca [i \n protocolul TCP d) Se folose[te doar bitul SYN pentru sincronizare \ntruc=t nu exist` confirmare 3. Ce deosebiri sunt \ntre SCTP [i TCP? a) Suma de control cu CRC-32 \n loc de complement fa]` de 1 b) Este orientat pe conexiune dar f`r` confirmare de primire c) Folose[te 4-WAY HANDSHAKE \n loc de 3-WAY HANDSHAKE d) Porturile surs`, respectiv destina]ie sunt pe 32 bi]i Copyright © Virgil Dobrota 2023-2024, All rights reserved 28 Test grila curs 7 (II) REZOLVARE TEST GRIL~ CURS 7 1. a) 2. 3. a), c) Copyright © Virgil Dobrota 2023-2024, All rights reserved 29