Slide dal Politecnico di Torino su Tcp e Udp: il Livello Trasporto Dell'architettura Tcp/ip. Il Pdf, una presentazione di Informatica a livello universitario, esplora i protocolli TCP e UDP, confrontando il modello OSI con TCP/IP e analizzando la creazione dei segmenti TCP e la gestione dello stato TIME_WAIT.
Mostra di più47 pagine


Visualizza gratis il Pdf completo
Registrati per accedere all’intero documento e trasformarlo con l’AI.
Antonio Lioy < lioy@polito.it > Politecnico di Torino Dip. Automatica e InformaticaOSI vs. TCP/IP
7 application 6 presentation 5 session 4 transport transport (TCP, UDP) 3 network packet network (IP) 2 1 data link frame V, I, Y unspecified physical process (DNS, HTTP, SMTP, ... ) C A.Lioy (Politecnico di Torino, 2013-2020)
canale logico end-to-end " utile per gli sviluppatori applicativi ... che altrimenti dovrebbero risolversi da soli i problemi di IP (es. dimensione limitata, pacchetti persi, duplicati, fuori sequenza) . multiplexing/demultiplexing " uso di un solo indirizzo di rete per inviare/ricevere da parte dei diversi processi applicativi di un host . controllo di flusso · il mittente cerca di non intasare il ricevente controllo di congestione il mittente cerca di non intasare la rete C A.Lioy (Politecnico di Torino, 2013-2020)
il livello rete (L3) fa comunicare nodi di rete il livello trasporto (L4): " fa comunicare processi offre una API (Application Programming Interface) standard ai programmatori - i socket gestione posta elettronica gestione pagine web sistema operativo ... pacchetti IP ... C A.Lioy (Politecnico di Torino, 2013-2020)
velocità di rete V = massima quantità di dati per unità di tempo trasmissibili es. Ethernet 10M = 10 Mbps . banda B = frazione di V dedicata ad uno specifico flusso di rete .B≤V latenza L = tempo che intercorre tra gli istanti di invio e ricezione di un dato L= tR-ts . throughput T = quantità di dati trasmessa nell'unità di tempo T = | dati | / ( tp - ts ) = D / L C A.Lioy (Politecnico di Torino, 2013-2020)
. interessa il payload quindi T e L misurati ai vari livelli dello stack differiscono (a causa dell'overhead introdotto dagli header) es. invio file 100KB su rete Ethernet a 10 Mbps in teoria L = 100 x 1024 x 8 / 10 M = 82 ms . ... ma ci sono 14 B di header Ethernet " se invio payload da 16 B per volta 100 x 1024 / 16 = 6,400 pacchetti 6,400 x (16 + 14) = 192,000 B inviati L = 192,000 * 8 / 10 M = 154 ms se invio payload da 128 B per volta allora L = 91 ms (ragionevole, spreco circa il 10% della banda teorica) C A.Lioy (Politecnico di Torino, 2013-2020)
canale logico end-to-end API come file sequenziale forward-only (read, write) stream bi-direzionale simultaneo di byte tra due componenti distribuite protocollo affidabile ma lento buffering (=memorizzazione temporanea dei dati nello stack di rete, prima di inviarli in rete o all'applicazione) sia in trasmissione sia in ricezione disaccoppia la velocità computazionale (mittente e ricevente possono avere velocità di calcolo diverse) il più usato dalle applicazioni Internet web, posta elettronica, trasferimento file, .... C A.Lioy (Politecnico di Torino, 2013-2020)
client server application application presentation presentation session session TCP channel input stream (request) transport transport output stream (response) C A.Lioy (Politecnico di Torino, 2013-2020)
sender (es. webserver) receiver (es. browser) -> network - - buffer (trasmissione) buffer (ricezione) YouTube smartphone C A.Lioy (Politecnico di Torino, 2013-2020)
" permette alle componenti di scambiarsi messaggi (datagrammi) contenenti un insieme di byte API a messaggi (sendto, recvfrom) destinatario identificato internamente al messaggio · protocollo inaffidabile ma veloce limitata lunghezza del messaggio (max 64 KB) accodamento solo al destinatario (buffer di ricezione) = rischio di "over-run" o "out-of-space" " usato per applicazioni in cui la ritrasmissione o perdita non è un problema (es. DNS, NTP) C A.Lioy (Politecnico di Torino, 2013-2020)
client server application application presentation presentation session request datagrams session transport transport response datagrams C A.Lioy (Politecnico di Torino, 2013-2020)
sender (es. DNS client) receiver (es. DNS server) NIC network - > buffer (ricezione) smartphone nameserver C A.Lioy (Politecnico di Torino, 2013-2020)
" due protocolli di trasporto alternativi · realizzano funzionalità comuni a tutti gli applicativi · usabili simultaneamente da applicativi diversi per distinguere i dati generati da / destinati ad una specifica applicazione su un determinato nodo si usa il concetto di porta (multiplexing) " ad esempio un browser che voglia connettersi ad un server web deve indicare: l'indirizzo IP del server web = il protocollo di trasporto (TCP) « il numero della porta associata al servizio web (80) C A.Lioy (Politecnico di Torino, 2013-2020)
process mail server SMTP web server HTTP name server DNS name client DNS 1 ... 25 ... 80 1 . .. 23 ... 1030 ... transport TCP UDP network indirizzo IP C A.Lioy (Politecnico di Torino, 2013-2020)
identificate da un numero intero su 16 bit 0 ... 1023 = porte privilegiate · usabili solo da processi di sistema 1024 ... 65535 = porte utente usabili da qualunque processo porte statiche · quelle dove un server è in ascolto = porte dinamiche · quelle usate per completare una richiesta di connessione e svolgere un lavoro C A.Lioy (Politecnico di Torino, 2013-2020)
. rappresentate da una quintupla: = protocollo (TCP o UDP) indirizzo IP (32 bit) e porta (16 bit) del client indirizzo IP (32 bit) e porta (16 bit) del server ad esempio, per un collegamento HTTP: · (TCP, 14.2.20.3, 1040, 10.1.2.100, 80) client server 14.2.20.3 10.1.2.100 C 1040 TCP 80 S C A.Lioy (Politecnico di Torino, 2013-2020)
192.168.1.20 client C1 1040 server TCP S1.1 80 TCP S1.2 192.168.1.30 client C2 1030 tcp, 192.168.1.30, 1030, 10.1.2.100, 80 C A.Lioy (Politecnico di Torino, 2013-2020) 192.168.1.20, 1040, 10.1.2.100, 80 10.1.2.100
192.168.1.20 tcp, 192.168.1.20, 1031, 10.1.2.100, 25 10.1.2.100 client server MUA 1031 25 S1 TCP browser 1037 80 S2 TCP tcp, 192.168.1.20, 1037, 10.1.2.100, 80 C A.Lioy (Politecnico di Torino, 2013-2020)
. un protocollo di trasporto: · orientato ai messaggi non connesso stato del destinatario ignoto nessun accordo preliminare non affidabile datagrammi persi, duplicati, fuori sequenza · aggiunge due funzionalità a quelle di IP: multiplexing delle informazioni tra le varie applicazioni tramite il concetto di porta checksum (opzionale) per verificare l'integrità dei dati (utile contro errori di trasmissione, non attacchi) C A.Lioy (Politecnico di Torino, 2013-2020)
0 15 16 31 source port destination port message length checksum data C A.Lioy (Politecnico di Torino, 2013-2020)
source port (16 bit) destination port (16 bit) message length (16 bit) . lunghezza totale della PDU (header + payload) " payload massimo teorico = · 64 KB (massima lunghezza PDU IP) I ... - 8 B (header UDP) . - 20 B (minimo header IP) = = 65,507 B . checksum (16 bit, tutti zero se non usata) protegge header e payload (da errori, non attacchi!) C A.Lioy (Politecnico di Torino, 2013-2020)
. utile quando: " si opera su rete affidabile (es. LAN o punto-punto) singola PDU può contenere tutti i dati applicativi " non importa che tutti i dati arrivino a destinazione · l'applicazione gestisce meccanismi di ritrasmissione . maggior problema di UDP = il controllo di congestione mittente mantiene il proprio tasso di trasmissione (elevato) anche se la rete è intasata, contribuendo ad intasarla maggiormente proposto DCCP (Datagram Congestion Control Protocol) C A.Lioy (Politecnico di Torino, 2013-2020)
Le principali applicazioni che usano UDP sono: DNS (Domain Name System) · traduzioni nomi - indirizzi IP NFS (Network File System) dischi di rete (in ambiente Unix) SNMP (Simple Network Management Protocol) · gestione apparecchiature di rete (router, switch, ... ) molte applicazioni di streaming audio e video · è importante la bassa latenza · è accettabile la perdita di alcuni dati (ridondanza delle codifiche audio e video) C A.Lioy (Politecnico di Torino, 2013-2020)
. un protocollo di trasporto: = byte-stream-oriented connesso · affidabile . usato da applicativi che richiedono la trasmissione affidabile dell'informazione: " telnet = terminale virtuale · FTP (File Transfer Protocol) = trasferimento file SMTP (Simple Mail Transfer Protocol) = trasmissione e-mail HTTP (Hyper-Text Transfer Protocol) = scambio dati tra browser e server web C A.Lioy (Politecnico di Torino, 2013-2020)
. funzionalità TCP: supporto della connessione tramite circuiti virtuali · controllo di errore controllo di flusso multiplazione e demultiplazione · controllo di stato e di sincronizzazione TCP garantisce la consegna dei dati, UDP no! C A.Lioy (Politecnico di Torino, 2013-2020)
come UDP ha il concetto di porta il TCP di un nodo, quando deve comunicare con il TCP di un altro nodo, crea un circuito virtuale al circuito virtuale è associato un protocollo full-duplex acknowledgement · controllo di flusso . segmenta e riassembla i dati secondo necessità: nessuna relazione tra il numero di read e di write usa sliding window, timeout e ritrasmissione TCP richiede più banda e più CPU di UDP C A.Lioy (Politecnico di Torino, 2013-2020)