Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

Documenti analoghi
Le Reti Informatiche

Reti di Calcolatori in Tecnologia IP

Telematica di Base. IL Livello di Trasporto TCP

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Strato trasporto. Per capir meglio la cosa analizziamo il seguente esempio:

Lo strato di applicazione in Internet

IL LIVELLO TRASPORTO Protocolli TCP e UDP

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

Livello Trasporto. Liv. Applic. Liv. Transport. Transport Entity. Liv. Network. Trasporto

Livello di Trasporto

MODELLO TCP/IP LIVELLO 4 Trasporto. Il protocollo per il controllo della trasmissione. La gestione degli errori di trasmissione

Fondamenti di Internet e Reti. Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier

4 - Il livello di trasporto

Il livello trasporto Protocolli TCP e UDP

Introduzione (parte III)

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Standard: OSi vs TCP/IP. Il livello di trasporto. TCP e UDP. TCP: Transmission Control Protocol. TCP: funzionalità

Reti di Calcolatori. IL LIVELLO TRASPORTO Protocolli TCP e UDP

Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete

Livello trasporto: TCP / UDP. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 14 TCP/UDP - 1/35.

I protocolli UDP e TCP

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci


Architetture di rete. 4. Le applicazioni di rete

Esercitazione. Livello di Trasporto [Capitolo 3]

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Reti di Telecomunicazione Lezione 8

Introduzione alla rete Internet

12.5 UDP (User Datagram Protocol)

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

Livello trasporto. Servizi del livello trasporto

Internet (- working). Le basi.

Modello client-server

Transmission Control Protocol

Modello OSI e architettura TCP/IP

Capitolo 3 Livello di trasporto

Capitolo 1 - parte 1. Corso Reti ed Applicazioni Mauro Campanella

Reti di Calcolatori e Laboratorio - Compito del 15 Gennaio 2013

MODELLI ISO/OSI e TCP/IP

Protocolli e Architetture. Dr. Greco Polito Silvana

Reti. insieme di computer (host) interconnessi. Token evita conflitti di trasmissione Rete più o meno affidabile

L architettura di TCP/IP

Elementi sull uso dei firewall

Reti di Calcolatori:

Protocolli multimediali

Reti locati e reti globali. Tecnologie: Reti e Protocolli. Topologia reti. Server e client di rete. Server hardware e server software.

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

Elementi di Informatica e Programmazione

Riferimenti. I protocolli TCP e UDP. Sorgente TCP. Principi Fondamentali. TCP header. Ricevitore TCP

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Capitolo 10 Lo Strato di Trasporto in Internet

TCP. Servizio di Trasporto Affidabile. Transmission Control Protocol. Caratteristiche di TCP 1

Sistemi Distribuiti. Informatica B. Informatica B

Protocolli di rete. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 02 Protocolli - 2/30

Livello 4 (trasporto): cosa vedremo

Protocollo TCP/IP & Indirizzamento IP

Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale

Introduzione alle reti ed al TCP/IP

Reti. Reti e interconnessione di reti - Internetwork WAN 1 WAN 1. Router multiprotocollo (gateway) Terminologia

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

Modello a scambio di messaggi

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Dal protocollo IP ai livelli superiori

Le reti di tipo A garantiscono un servizio impeccabile in cui è trascurabile la

Reti (già Reti di Calcolatori )

Elementi di Informatica e Programmazione

RETI DI CALCOLATORI. TCP e UDP: Il Livello di Trasporto Internet

TCP: rassegna RFCs: 793, 1122, 1323, 2018, 2581

Università degli Studi di Bergamo

Università degli Studi di Bergamo

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Reti di Calcolatori - Laboratorio. Lezione 5. Gennaro Oliva

Il livello di Trasporto del TCP/IP

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Livello Trasporto Protocolli TCP e UDP

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Prova completa - Rete Internet (ing. Giovanni Neglia) Lunedì 25 Giugno 2007

agenda Transport Layer in Internet protocolli TCP / UDP Scopi TCP - UDP Francesco Dalla Libera

Fondamenti di Internet e Reti

PROTOCOLLI APPLICATIVI PER INTERNET

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Livello Applicazione. Davide Quaglia. Motivazione

Modulo 11. Il livello trasporto ed il protocollo TCP Indice

Modulo 11 Livelli Transport e Application del modello TCP/IP

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 1

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 20 Luglio 2005

Uso di UDP per client-server UDP. Porte e multiplexing. TCP e UDP. Connessione TCP (o messaggio UDP) Caratteristiche delle porte TCP e UDP

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 1

Reti basate sulla stack di protocolli TCP/IP

Cenni sul protocollo IP

Introduzione alla rete Internet

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s / 2012 Marcianise (CE) Prof. M. Simone

Reti di Calcolatori ed Internet. Reti di Calcolatori ed Internet. Reti di Calcolatori. Reti di Calcolatori. Architettura dei Servizi di Rete

RETI A COMMUTAZIONE DI PACCHETTO. Caratteristiche e principi di funzionamento

La nascita di Internet

Strato di Trasporto Multiplazione a livello di trasporto

Il livello Data-Link e i suoi protocolli

Livello trasporto in Internet

Transcript:

Strato di trasporto Lo strato di trasporto si colloca al livello 4 dello strato ISO-OSI e svolge il compito di mettere in comunicazione diversi processi software. La comunicazione tra applicazioni avviene con scambi di messaggi che vengono segmentati e trasformati in TPDU, Transport Protocol Data Unit HTTP FTP SMTP TCP UDP Livello di rete Livello di applicazione SAP Livello di trasporto Entità di trasporto Livello di rete SAP SAP= Service Access Point, interfaccia logica tra due entità una di livello N-1 e l altra di livello N Il livello di trasporto è caratterizzato da: Servizi che possono essere o Affidabili se eseguono le operazioni nel perfetto ordine o Non affidabili se garantiscono solo l indirizzamento Protocolli che si distinguono in: o UDP User Datagram Protocol protocollo asincrono che non richiede trasmissione di conferma di ricezione l o TCP Trasmission Control Protocol protocollo sincrono dove è richiesto il messaggio di accettazione dei dati I protocollo di trasporto sono implementati nei più diffusi sistemi operativie forniscono ai programmatori le funzioni base dette primitive: LISTEN si mette in attesa di richiesta di connessione SEND DATA per trasmettere un contatto

RECEIVE DATA per ricevere un contenuto T-CONNECT per aprire una connessione T-DISCONNECT per chiudere una connessione Per ogni primitiva ci sono i seguenti metodi: Metodo primitiva request() indication() response() confirm() Descrizione Si chiede al servizio di compiere un azione Il servizio segnala un evento Si chiede al servizio di rispondere all evento Il servizio segnala l arrivo di una conferma Connessione asincrona o connection-less Primitiva request Primitiva indication t Connessione sincrona Primitiva request Primitiva indication t Primitiva confirm Primitiva response

L indirizzamento di trasporto Per poter risolvere il problema della trasmissione dei dati tra applicazioni diverse sui medesimi host, il protocollo di trasporto utilizza il meccanismo delle porte. Una porta è un valore numerico di due Byte che identifica un canale. Esse possono assumere valore da 0 a 65535. L utilizzo di porte differenti permette più comunicazioni sulla stessa rete. Si viene allora a delineare il concetto di socket Il socket è un indirizzo numerico formato dall indirizzo IP e dal numero che individua la porta: IP locale:porta locale Una connessione tra due computer viene identificata dalle coppie: A. Indirizzo IP mittente: porta mittente B. Indirizzo IP destinatario: porta destinatario I valori delle porte sono scritti nell header I numeri delle porte però non hanno tutti lo stesso significato 0-1023 sono porte per applicazioni particolari 1024 49151 sono porte riservate 49152-65535 sono numeri liberi Esempi di porte 21/tcp FTP 22/tcp SSH secure shell 25/tcp SMTP 42 WINS Windows Internet Naming Service 53 DNS 80/tcp http 110/tcp POP3 Post Office Protocol, v3

QoS Il livello di trasporto si occupa anche della qualità del servizio Quality of Service I parametri indicatori della qualità di servizio sono: ritardo massimo nell attivazione della connessione numero di byte trasferiti nell unità di tempo velocità di consegna probabilità di fallimento della connessione probabilità che la connessione non venga stabilita entro il massimo tempo di ritardo tasso di errore protezione contro le intercettazioni dati priorità della connessione UDP È stato concepito per tutte quelle applicazioni per le quali non è necessaria una completa gestione delle connessioni. Non è richiesto un messaggio di accettazione, acnowledgement e nemmeno di un messaggio di handshaking dove i dispositivi definiscono i protocolli e le velocità di trasmissione. Le applicazioni sono: telefonia voip, protocolli di instradamento RIP, risoluzione dei nomi DNS, amministrazione di rete SNMP, file server remoti NFS, network time protocol Un datagram UDP è fatto nel seguente modo: IP Header (20 Bytes) UDP header (8 Bytes) UDP data Un socket è un è una coppia di parametri <indirizzo IP: Porta > Es. Il server ha indirizzo 130.130.12.17 e punto di accesso 309. Il server manda in esecuzione l applicazione e si mette in attesa fino a che il client non invia un datagram

Il server ha socket <130.130.12.17:309> Quando il server riceve un messaggio: legge il numero di porta del mittente estrae il messaggio contenuto nel segmento invia il messaggio al socket specificato es: sia un destinatario A con socket <9.12.0.54:300> e destinatario B con socket <137.200.70.14:3010> Il servizio di trasferimento affidabile Lo strato di trasporto attua meccanismi che permettono di eliminare i problemi presenti agli strati di trasporto Un servizio di trasferimento si dice affidabile se: tutti i messaggi sono consegnati a destinazione e giungono privi di errori ciascun messaggio è consegnato una e una sola volta i messaggi sono consegnati nello stesso ordine in cui sono consegnati L trasmissione deve essere: priva di errori senza perdita di dati senza duplicazioni nella consegna dei segmenti meccanismi impiegati I meccanismi impiegati per realizzare un trasferimento affidabile sono i seguenti: numerazione dei segmenti trasmessi e trasmissione dei segnali di riscontro con numero di sequenza impiego di temporizzazione impiego di finestre in trasmissione e ricezione Numerazione dei segmenti trasmessi o o o I dati sono una sequenza di bit e, sono una sequenza ordinata I dati vengono suddivisi in pacchetti formati da un certo numero di byte Ogni pacchetto ha un numero d ordine che corrisponde al numero d ordine del primo bit in esso contenuto ed è detto SN, sequence number

o o o Il pacchetto viene inizializzato da un numero detto ISN=0 Initial Sequence Number Il primo byte vrà sequence number SN=ISN+1 Il pacchetto successivo avrà SN=SN+k, dove k è il numero di byte del pacchetto Es di trasmissione andata a buon fine Host A Host B Host A Host B Seq= 56,20 B Seq= 56,20 B ACKn=76 ACKn=76 Seq= 76,80 B ACKn=156 Es di ricezione di dati mancanti Host A Host B Seq=4,560B Seq=800,560B

Il time di Keepalive è un ulteriore temporizzazione. Inizia il conteggio alla ricezione di ogni pacchetto e dichiara scaduta la connessione se c è un tempo di inattività Temporizzazione della trasmissione Per ciascun segmento inviato, TCP avvia un timer detto timer di ritrasmissione RTO Retrasmission Time Out indicato come time out; indica dopo quanto tempo deve considerarsi perso l ultimo segmento trasmesso e quindi, bisogna ritrasmetterlo se nessun ACK viene pervenuta. Host A Host B Host A Host B Seq=73,456B RTO Seq=73,456B ACKn=529 ACKn=529 Seq=73,456B Seq=73,456B RTO ACKn=529 ACKn=529 Gli esempi precedenti evidenziano che nel primo caso, il segnale ACK non giunge all host mittente e, il segnale viene inviato di nuovo quando scade il tempo RTO; nel secondo caso, il segnale ACK giunge al mittente ma non nel tempo utile RTO e quindi, i dati vengono inviati di nuovo.

Finestra di trasmissione e ricezione Per effettuare la gestione dei segnali inviati e ricevuti il terminale mittente mette a disposizione una finestra di trasmissione. La finestra di trasmissione viene gestita come una struttura a coda utilizzando due variabili: sendbase e nextseqnum Sendbase= il numero d ordine del byte più vecchio tra quelli trasmessi ma di cui non si conosce l esito. È l estremo inferiore della finestra Nextseqnum= il numero d ordine del prossimo byte che deve essere ancora trasmesso Send_base Ws nextseqnum Ws(byte)=larghezza della finestra Protocollo TCP La connessione avviene tramite handshaking cioè tramite lo scambio di messaggi di controllo. Questo tipo di connessione si chiama punto punto perché si crea un collegamento diretto tra client e server. La prima fase della connessione è quello dell invio di un pacchetto dati tra due computer per stabilire i criteri di connessione. Successivamente, avviene il trasferimento dati bidirezionale. Ogni pacchetto viaggia attraverso un canale che si crea ogni volta tra client e server. Il server può creare diverse connessioni contemporaneamente ma ognuna, è identificata da un unico socket. Il suono prodotto dal modem quando si ha l inizio della connessione si chiama handashaking

Successivamente avviene la comunicazione vera e propria per un flusso di dati affidabile full duplex Il segmento dati TCP è simile al segmento dati UDP non più di 64 KB IP header (20B) TCP header (20B) Data Apertura della connessione La procedura per instaurare una connessione è detta handshaking a tre vie ed avviene secondo la seguente modalità 1. Il server manda in esecuzione l applicazione e rimane in ascolto passivo (passive open) 2. Se il client vuole comunicare con il server manda l applicativo specifico con l indirizzo IP del server ed il numero di porta. Viene quindi inviata una richiesta attiva (active open) 3. Il client TCP genera un numero casuale di sequenza Seq (es Seq=55000) ed invia un messaggio di sincronizzazione SYNchronize, flag SYN=1 4. Alla ricezione del segmento SYN=1 il server genera un numero di sequenza seq=8000 e risponde con un segnale SYN=1 e ACK=1, ACKn=55001. 5. Alla ricezione del SYN/ACK il client risponde con un ack di conferma ACKn=8001 e Seq=55001 6. Inizia lo scambio vero dei dati Chiusura della connessione La chiusura della connessione è più delicata dell apertura. Se la connessione non viene fatta contemporaneamente, o da entrambe le parti, uno dei due può inviare ancora dati che vengono persi. Esistono due modi per chiudere la connessione: con handshaking a tre vie e con handshaking a quattro vie. La prima avviene se il client e il server decidono di chiudere contemporaneamente la connessione; la seconda invece, si ha quando solo il client di chiudere la conessione. Nel caso di chiusura con handshanking a tre vie, la modalità è analoga a quella di apertura della connessione. L unica differenza è che al posto del flag SYN c è il flag FIN. Con handshake a quattro vie la modalità di chiusura avviene secondo la seguente sequenza: 1. Il client inizia la procedura di chiusura della connessione ed invia il flag FIN=1 con un numero casuale da esso generato es Seq=600 2. Il server risponde con il flag ACK=1 e ACKn=601 3. Se il server decide di chiudere la connessione invia un flag FIN=1 con un numero casuale da esso generato es Seq=770 4. Questo messaggio di FIN viene confermato dal client con risposta ACK=1 e ACKn=771 TCP:Problemi di connessione e congestione Durante la fase della connessione, a causa dei ritardi interni nell invio dell ack, la subnet può perdere o duplicare i pacchetti e possono quindi arrivare dati duplicati o non nella giusta sequenza oppure che vengono aperte più connessioni nello stesso canale.

Problemi durante la connessione 1. Nel caso in cui il mittente invii un solo messaggio nel timeout e non riceve un ACK positivo, non può rispondere con la successiva trasmissione. Il mittente invia di nuovo i dati anche se sono stati già ricevuti dal destinatario. Sendbase=92 Seq=92 8B Seq=92 8B ACKn=100 ACKn=100 Sendbase=100 timeout 2. Il mittente invia una sequenza di dati nello stesso timeout prima di attendere la conferma. Nel caso in cui la conferma arrivi fuori dal timeout, il mittente deve rinviare tutti i dati perché immagina che siano stati tutti persi. Il destinatario riconosce il problema ed invia solo l ACK relativo all ultima sequenza Seq=100,20 byte di dati ackn=100 Seq=92,8byte di dati ackn=120 timeout Seq=92,8 byte di dati ackn=120

Programmazione del socket Pseudo codice Lato server main(){ socket(indirizzo_ip,protocollo_tcp); bind(descrittore_socket); //numero di porta // associazione al socket del suo descrittore con il listen(); while(1){ while(accept()); if(!fork()){ do{ read(buff); } write( fatto ); close(); } close(); }

Client main(){ socket(indirizzo_ip,uso di TCP); port_server=5517; hp=gethostbyname( server ); connect(); do{leggi_stringa(); write(); }while( quit ); read(); close(); }

Client Server Socket() bind() Socket() listen() connect() Handshake a tre vie write() Socket() Richiesta dati read() accept() Risposta dati close() read() write() read() close