+ All Categories
Home > Documents > U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

Date post: 06-Jul-2018
Category:
Upload: ibrahim-elshemy
View: 218 times
Download: 0 times
Share this document with a friend

of 13

Transcript
  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    1/13

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    2/13

    Servizi oerti dal livello transport 

    icordiamo che per servizi intendiamo quelle interfacce soft-are che vengono utilizzate affinchèun'entità possa comunicare con un'altra entità di livello inferiore o superiore.Il servizio offerto da uno strato è rappresentato logicamente con una porta di accesso al servizio, dettaervice Access &oint (SAP, che ha un nome unico ed è identificata da un indirizzo.

    I servizi realizzati dal livello transport possono essere$ (pag.+0

    • Gestione della connessione$ poich! generalmente il livello rete non stabilisce una connessione

    con l'host di destinazione, il livello di trasporto si incarica di realizzare una connessione cheviene poi chiusa quando non è pi1 necessaria.• Corretto ordine di consegna e controllo errori . &oich! i pacchetti possono seguire percorsi

    diversi all'interno della rete, il livello di trasporto verifica che i pacchetti vengano riordinatinella giusta sequenza prima di passarli al livello superiore.

    • Trasferimento affidabile. Il protocollo di trasporto si occupa di garantire che tutti i dati inviativengano ricevuti2 nel caso il servizio di rete utilizzato perda pacchetti, il protocollo di trasportosi occupa di ritrasmetterli.

    • Controllo di flusso. e gli host coinvolti nella comunicazione hanno prestazioni moltodifferenti pu* capitare che un pc pi1 veloce 3inondi3 di dati uno pi1 lento. 4ediante il controllodi lusso, un host in 3difficoltà3 pu* chiedere di abbassare il tasso di trasmissione in modo da

     poter gestire le informazioni in ingresso.• Controllo di Congestione$ il protocollo di trasporto riconosce uno stato di congestione della

    rete, e adatta di conseguenza la velocità di trasmissione.•  Multiplazione. Il protocollo di trasporto permette di stabilire diverse connessioni

    contemporanee tra gli stessi due host, utilizzando le 5porte6 (di cui parleremo. 7ell'usocomune, diversi servizi utilizzano porte diverse.

    'essuno di tali servizi è o!!ligatorio, quindi per ciascuna applicazione è possibile scegliere il protocollo pi1 adatto allo scopo.

    otto certi aspetti i servizi di livello transport assomigliano a quelli di livello data lin8. Infatti si

    occupano, fra le altre cose, anche di$• controllo degli errori2• controllo di flusso2• riordino dei 9.

    :i sono per* delle importanti differenze. "uella principale è che$

    • nel livello data lin( ra le peer entit) c*è un singolo canale di co&unicazione+

    • nel livello transport c*è di &ezzo l*intera su!net di co&unicazione.

    ;

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    3/13

    &roprietà ed esempi di ervizi- affidabilità della comunicazione e sequenza dei flussi di dati- connessione affidabile non affidabile- non connessione affidabile non affidabile- datagramma senza connessione non affidabile

    - connessioni affidabili sequenze di messaggi4a anche richieste diverse$ solo garanzia di sequenza di dati che si possono anche perdere, anche datiche vogliamo che siano ricevuti, sequenze di be primitive servono a richiedere il servizio e essere informati dell%esito della richiesta e devono

    contenere tutte le informazioni necessarie al fornitore del servizio.

    Ad esempio$

    ? ogni primitiva pu* avere quattro possibili parametri$@ ,e-uest @ il service user richiede un servizio (una azione@ Indication @ il service provider indica al service user che è stato richiesto un servizio (segnalazione dievento@ ,esponse @ il service user specifica la risposta alla richiesta di servizio (una azione@ onir& @ il service provider segnala la risposta alla richiesta di servizio (segnalazione di evento

    ?sempio$

    )

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    4/13

    /a &ultiplazione e le porte9:& permette di effettuare un compito importante$ la multiplazione/demultiplazione, cioè di far transitare su una stessa linea dei dati provenienti da applicazioni diverse. n host connesso in rete èidentificato da un indirizzo I& e ogni singolo host pu* usufruire contemporaneamente di uno o pi1servizi a livello application che utilizzano il 9:& a livello transport, l%utilizzo del solo indirizzo I& nonè sufficiente a indirizzare correttamente i dati provenienti dalla rete all%applicazione giusta. i pensi adesempio che sul medesimo host si stia navigando in internet e facendo un do-nload di un file, il bro-ser utilizzerà il protocollo http e --- a livello application e il do-nload l%9& &a a livello ditransport tutti e due utilizzeranno il TP , come farà quindi il 9:& a indirizzare correttamente i dati

     per il -eb@bro-ser e quelli per l%9&B

    &i1 applicazioni possono essere attive su un end@se porte, numerate da C a D.D)D, corrispondono ad ogni applicazione sul server in ascolto e sisuddividono in tre parti:

    1. ell 3no$n Ports da 5 a 15267

    ono porte assegnate univocamente e sono riservate ai servizi server standard. I client non dovrebbero

    mai usare queste porte.2. ,egistered Ports da 1524 a 481917

    >%utilizzo di questo insieme di porte è generalmente libero nonostante contenga dei servizi registrati. 7on esistono vincoli restrittivi a riguardo tanto che tutti i client usano normalmente le porte a partiredalla numero +C; per collegarsi ad un sistema remoto.6. D)na&ic andor Private Ports da 48192 a 99697

     7essun servizio è registrato in quest%area. Il suo utilizzo e assolutamente libero.

    >e porte tra C e +C;) sono assegnate dalla IA7A (Internet Assigned 7umber Authorit

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    5/13

    ;) 9elnet 9:&;D mtp 9:&)0 9I4? ora #&; 7A4? erver dei nomi host #&) FGHI :hi è in servizio #&D) #7 9:&C http 9:&++C &op (versione ) 9:&+)J ervizi 7etKios #&

    ++ 74& 4onitor di rete #&D+) FGH #emone emote Fho 7IL #&D+ E>HM shost:

    :i pensano le entità di trasporto a suddividere il flusso in arrivo dal livello application in segmenti, atrasmetterli e a ricombinarli in un flusso che viene consegnato al livello application di destinazione.

    "uando un processo viene associato ad una porta (lato client o lato server  viene associato sempre dalsistema operativo a due code, una d%ingresso e una d%uscita, per non perdere la priorità di esecuzione.unzionalità di buffering  dei dati.

    ?se&pio di @ultiplazioneDe&ultiplazione

    @ultiplazione: :reazione dei segmenti provenientidai messaggi di diversi processi applicativi

     >a multiplazione avviene dal lato del nodomittente

    De&ultiplazione: Hgni segmento dello stratodi trasporto possiede un campo contenentel%informazione usata per determinare a quale processo deve essere consegnato il segmento

     >a demultiplazione avviene dal lato del nododestinatario

    D

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    6/13

    "ualit del Servizio"o ("ualit< of ervice e un servizio aggiuntivo introdotto nel livello di trasporto che permette dispecificare appunto la qualità del servizio richiesta.>'utilità di questo servizio si nota soprattutto nelle reti medio/grandi, dove c'è un pi1 che discretotraffico di dati e alcune connessioni necessitano di una 5qualità6 comunque elevata. >a qualità inevidenza è la velocità di trasferimento dei dati. ostanzialmente si pu* specificare un range di valorientro il quale definire la qualità del servizio per differenziare a dovere le diverse necessità.Ad esempio$- se un server di posta consegna una mail con mezzo secondo di ritardo (ma anche con mezzo

    minuto nessuno se ne accorge o ci fa caso$ questa trasmissione pu* accontentarsi del valore pi1 basso della scala.- se un applicazione di video streaming trasmette ogni frame video con un ritardo di mezzo secondo,

    allora sN che la gente se ne accorge$ una tale trasmissione dovrà richiedere il pi1 alto livello diqualità del servizio

    >e stazioni trasmissive negoziano all%inizio per concordare i parametri da utilizzare e se non siraggiunge un accordo la connessione pu* anche essere rifiutata.

    'egoziazione del "oS

    I protocolli del livello di Trasporto

    All%interno dell%architettura 9:&/I&, il livello di trasporto è basato su due protocolli$• TCP  (Transmission Control Protocol  connesso e affidabile : 0J), ++;; e +);)2• UDP  (User Datagram Protocol  non connesso e non affidabile : 0.

    I protocolli 9:& / #& forniscono quindi il meccanismo di trasferimento dei dati.

    Il 9:& è un protocollo cosiddetto connection oriented , ovvero garantisce la consegna dei dati inviatitra un host e un altro, si stabilisce prima una connessione tra i due host e poi inizia il trasferimento dati.Il 9:& offre un servizio connection oriented, e si occupa di$

    accettare dati dal livello application2• spezzarli in segment , il nome usato per i 9 (dimensione massima Oba scelta dell%uso di un protocollorispetto ad un altro è da decidersi in base all%esigenza, l%#& è pi1 veloce e meno sicuro, il 9:& è pi1

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    7/13

    sicuro ma pi1 lento in quanto oltre ad occuparsi della consegna delle informazioni durante unatransazione 9:& è necessario eseguire tutta una serie di controlli e impostazioni sullo stato dellaconnessione. Il protocollo 9:& è stato progettato per fornire un flusso di be caratteristiche pi1 importanti del protocollo 9:& sono le seguenti$• 9:& usa un meccanismo di finestre scorrevoli con timeout. e questo scade, il segmento si

    ritrasmette. "uesto garantisce l'affidabilità$ l'host ricevente invia un messaggio( Acno!ledgements al trasmettitore per indicare che ha ricevuto correttamente la stream didati.

    • ogni b

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    8/13

    Il 9:& trasmittente sovrappone una piccola finestra alla sequenza ed invia tutti i pacchetti all'interno diessa. "uando riceve il primo riscontro, la finestra scorre in avanti ed il 9:& invia il pacchettosuccessivo. intanto che arrivano i riscontri la finestra scorre.

    >e prestazioni di un protocollo a finestra scorrevole dipendono dalle dimensioni della finestra stessa edalla velocità con cui la rete accetta i datagrammi. &i1 la finestra è larga, pi1 la banda è utilizzata.Il ricevitore gestisce una finestra simile, accettando e riscontrando i pacchetti che arrivano (inviandoac8.Il formato di un segmento 9:& è il seguente$

     Porta di Provenienza e Porta di Destinazione sono le porte utilizzate nella connessione

    Il campo "umero Se#uenziale indica la posizione dei dati nel segmento. "uesto valore è riferito ai datiche fluiscono nella medesima direzione del segmento, mentre il 'u&ero di ,iscontro si riferisce aidati che fluiscono nella direzione oppostaIl campo "umero $iscontro contiene il numero sequenziale del b

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    9/13

    Il bit 9, se posto ad +, fa in modo che la connessione si interrompa immediatamente, senza laspedizione di ulteriori messaggi.Il campo ,inestra contiene un intero senza segno di ); bit ed indica la quantità di dati che il 9:&ricevente è disposto ad accettare.Il campo -pzioni è facoltativo. Qiene utilizzato ,ad esempio, per concordare con l'host remoto ladimensione massima del segmento 4 (4aRimum egment ize.

    Sessione TP e gestione della connessione.

    na sessione 9:& è composta da$

    • un%attivazione di connessione,• una serie di passaggi per l%invio e la ricezione delle informazioni• il rilascio della connessione.

     &er compiere un trasferimento dati utilizzando il 9:& è necessario, come si è detto, instaurare unaconnessione e il campo SYN  viene utilizzato per stabilire la connessione.

    >a procedura utilizzata per instaurare in modo affidabile una connessione 9:& tra due host è chiamatathree!a" handsha#e (stretta di mano a ) vie, indicando la necessità di scambiare ) messaggi tra hostmittente e host ricevente affinch! la connessione sia creata correttamente. Ad esempio$

    Il client invia una richiesta di connessione (passo + contenente un identificativo A. e il server ricevequesta notifica, questi risponde con un ac8 (passo ; contenente una conferma per A, sotto forma di unnuovo identificativo K. infine il mittente pu* attivare la connessione inviando una sequenza (passo )contenente gli identificativi AK.

     

    Il terzo segmento non sarebbe, idealmente, necessario per l'apertura della connessione in quanto già

    dopo la ricezione da parte di A del secondo segmento, entrambi gli host hanno espresso la lorodisponibilità all'apertura della connessione. 9uttavia esso risulta necessario al fine di permettere ancheall'host K una stima del timeout iniziale, come tempo intercorso tra l'invio di un segmento e la ricezionedel corrispondente A:O.

    I segmenti utilizzati durante l'handsha8e sono solitamente 'solo header', ossia hanno il campo  Data vuoto essendo questa una ase di sincronizzazione tra i due host e non di scambio di dati.

    J

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    10/13

    Il rilascio della connessione  avviene generalmente quando è finito il trasferimento dei dati, nelseguente modo$

    • quando una delle due parti non ha pi1 nulla da trasmettere, questa invia un pacchetto con il flagI7 a +, se esso è riconfermato dall%altro host, la connessione in uscita viene rilasciata2

    • di conseguenza ci sarà una richiesta di fine dall%altro host e un pacchetto di risposta perrilasciare la connessione nell'altra direzione, la connessione termina.

    e un pacchetto di risposta è perso dopo un certo tempo, la connessione è rilasciata automaticamente.&er evitare il problema (detto dei ; eserciti si usano i timer, impostati al doppio della vita massima diun pacchetto.

    Il protocollo UDP

    Il protocollo #& è quindi un protocollo non connesso (connession#less e non affidabile, utile perinviare dati senza stabilire connessioni (ad esempio per applicazioni client@server.

     7on viene quindi stabilita nessuna connessione e l%#& si limita ad inviare i pacchetti sulla rete senzarichiesta di conferma all%avvenuta ricezione, quindi non verifica se l%host di destinazione abbia o menoricevuto le informazioni che gli sono state inviate.

    Il protocollo viene utilizzato da quelle applicazioni che inviano piccole quantità di dati o dove ènecessario avere un%alta velocità di trasferimento (ad esempio nello streaming audio e video e inoltre,contrariamente al 9:&, l%#& è in grado di supportare il &ulticast, ovvero l%invio di un%informazionead un gruppo di destinatari (es. :hat

    Mli unici servizi che #& fornisce sono$

    - multiplazione$demultiplazione

    - rile%azione degli errori  (tramite il calcolo del chec8sum sia dal mittente che dal ricevente, consuccessivo controllo

    tilizza i numeri di porta in modo che un indirizzo I& specifico possa identificare un processo particolare$ le porte #& sono diverse dalle porte 9:&.

    Struttura del seg&ento UDPS Il segmento #& è composto da due parti$l%intestazione ed il corpo

    +C

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    11/13

    S Il corpo contiene i dati ed ha una lunghezzamassima teorica di DD)D b%intestazione è composta da quattro campi,ciascuno di + bit

    I campi dell%intestazione sono$ T numero di porta sorgente  campo di + bit (facoltativo, contiene la porta UDP di origine  dell'host sorgente2 viene generato all%apertura della soc8et in

    trasmissione, oppure viene preso come parametro da una soc8et  in ricezione

     T numero di porta destinazione    campo di + bit, contiene la porta UDP di destinazione del pacchetto sull'host remoto2è un parametro della primitiva dicreazione di una soc8et

     T lunghezza del corpo in ba funzione di calcolo del chec8sum pu* essere disattivata, tipicamente nel caso di traffico in temporeale (come voce e video per il quale è in genere pi1 importante mantenere un elevato tasso di arrivo

    dei segmenti piuttosto che evitare i rari errori che possono accadere.NOTA:

    Attraverso un network sniffer è possibile visualizzare i vari campi di un pacchetto UDP Unesempio:Source IP: 192.168.0.97 Target IP: 195.130.224.18 UDP Length: 27

     Essendo UDP incapsulato in IP vediamo prima l'intestazione IP con gli indirizzi sorgente e destinazione e ladimensione Source Port: 33997 Target Port: 53 Leng: 35 ChSu!: 2342

     Nell'header UDP troviamo la porta sorgente (33997) e la porta destinazione (3 ! richiesta DN") la dimensione (3)ed il chec#sum ($3%$) 00000000: 1" #4 01 00 00 01 00 00 00 00 00 00 09 6C 6$ 63

    ++

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    12/13

    ...

     In&ine troviamo il campo dati 

    alcolo del hec(su&

    >'header #& è breve, ma contiene un metodo complicato per calcolare un chec8sum. i considera il pacchetto come somma di parole di + bit, se il numero di b

  • 8/17/2019 U3_L12_Il Livello Di Trasporto e i Suoi Protocolli

    13/13

    Il servizio di traseri&ento aida!ile (pag. +00

    n servizio si dice affidabile = abbiamo già parlato di finestre scorrevoli

    (studiare capitolo lezione ) pagina +00@++ 99, 9H =

    n esempio di uso dei numeri di sequenza$ una sessione telnet

    • eqU 7umero sequenza (numero del primo b0te di dati nel segmento• is U 7umero riscontro$ (numero sequenza del prossimo b0te che ci si aspetta dall'altro lato•  7ell'esempio in figura, l'utente sul terminale A apre una sessione telnet. icordiamo che telnet è

    un protocollo di livello applicazione per il collegamento remoto che usa T)P  come protocollodi livello trasporto. #opo aver aperto la sessione telnet e quindi aver iniziato la connessioneT)P  avviene quanto segue$

    o >'utente sul terminale A digita la lettera Fo K riceve F, spedisce il riscontro per (is U +C e rispedisce anche F (per l'eco sul

    terminaleo A riceve F e rispedisce il riscontro

    +)


Recommended