Lumit.Basic.Knowledge.Training.Introduzione.Tcp Ip
Upcoming SlideShare
Loading in...5
×
 

Lumit.Basic.Knowledge.Training.Introduzione.Tcp Ip

on

  • 1,061 views

BASIC TRAINING AND INFORMATION KNOWLEGDE for TCP-IP introduction.

BASIC TRAINING AND INFORMATION KNOWLEGDE for TCP-IP introduction.

Statistics

Views

Total Views
1,061
Views on SlideShare
1,060
Embed Views
1

Actions

Likes
0
Downloads
23
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Lumit.Basic.Knowledge.Training.Introduzione.Tcp Ip Lumit.Basic.Knowledge.Training.Introduzione.Tcp Ip Presentation Transcript

  • Introduzione al TCP/IP
  • OSI and Protocol Stack OSI: Open Systems Interconnect Link Layer : includes device driver and network interface card Network Layer : handles the movement of packets, i.e. Routing Transport Layer : provides a reliable flow of data between two hosts Application Layer : handles the details of the particular application OSI Model TCP/IP Hierarchy Protocols 7 th Application Layer 6 th Presentation Layer 5 th Session Layer 4 th Transport Layer 3 rd Network Layer 2 nd Link Layer 1 st Physical Layer Application Layer Transport Layer Network Layer Link Layer
  • Packet Encapsulation
    • I dati vengono inviati attraverso lo stack (o pila) dei protocolli
    • Ciascun layer (o livello) aggiunge la propria specifica porzione di dati anteponendo la propria le intestazioni
    22Bytes 20Bytes 20Bytes 4Bytes 64 to 1500 Bytes View slide
  • Ethernet
    • Permette la comunicazione Computer <-> Computer (non solo) sullo stesso network
    • Ciascun device dispome di un indirizzo MAC (o MAC address) che lo identifica univocamente. Questo indirizzo e’ formato da un identificativo a 48-bit
    • esempio: 00-C0-4F-48-47-93
    Pacchetto Ethernet : Dest. address Data CRC Sorgente address Type MAC: Media Access Control 6bytes 6bytes 2bytes Preambolo 8bytes 64 - 1500bytes 4bytes View slide
  • ARP : Address Resolution Protocol
    • Il protocollo ARP permette la “mappatura” dei devices
      • 32bit IP address <-> 48bit MAC address
      • 128.97.89.153 <-> 00-C0-4F-48-47-93
    • ARP cache
      • Tabella creata alla scopo di mantenere all’interno del device una mappatura dei recenti indirizzi IP con I relativi indirizzi di MAC addresses
    • Protocollo
    • La funzionalita’ dell’ARP avviene tramite broadcast (inviata a tutta la network) veicolata attraverso l’Ethernet
    • Solo l’ARP layer del device che si identifica con la richiesta risponde al richiedente
    • ARP-REQUEST -> ARP-REPLY
  • IP: Internet Protocol
    • IP è un protocollo di rete a pacchetto; secondo la classificazione ISO/OSI è di livello rete (3). IP è un protocollo di interconnessione di reti ( Inter - Net working Protocol ), nato per interconnettere reti eterogenee per tecnologia, prestazioni, gestione. Pertanto IP è spesso implementato sopra altri protocolli di livello rete.
    • Protocollo inaffidabile in quanto è un servizio di consegna privo di connessione (connectionless)
    • E’ responsabile per l'instradamento dei dati attraverso le reti intermedie e da/per i device
    Header IP : 1 :ICMP 6 :TCP 17 :UDP 11 8901 1111 2345 1111 6789 2222 0123 2222 4567 2233 8901 0123 4567
  • IP Routing
    • Routing Table o Tabella di Routing
    • IP address di destinazione
    • IP address del router di “next-hop” (default GW)
    • Flags
    • Network interface specification
    Application Transport Network Link Application Transport Network Link Network Link Sorgente Destinazione Router
  • ICMP : Internet Control Message Protocol ICMP Message ICMP Data ICMP Header IP Header 4bytes 20bytes Type Code Checksum 1byte 1byte 2bytes
    • Usato per segnalare problemi con la consegna di datagrammi IP in una rete IP
    • Utilizzato da comandi quali Ping e Tracerout
    • Tipologie e Codici
    • Echo Request (type=8, code=0)
    • Echo Reply(type=0, code=0)
    • Destination Unreachable(type=3, code=0)
    • Time Exceeded(type=11, code=0) : Time-to-Live =0
  • TCP : Transmission Control Protocol pt. 1
    • Connection-Oriented, affidabile, offre il trasporto di un flusso di byte bidirezionale
    • Verifica l’apertura delle connessione (handshake)
    • garantisce che i dati trasmessi, se giungono a destinazione, lo facciano in ordine e una volta sola (&quot; at most once &quot;).
    • Chiusura delle connessioni
    Header TCP 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Porta Sorgente Porta Destinazione Sequence Number o Numero di sequenza Acknowledgement Number Data Offset - - - -                                                                                 Window Checksum Urgent Pointer Options (0 to 10 Words of 32 Bits) TCP Payload (dati applicativi)  
  • TCP : Transmission Control Protocol pt. 2
    • Source port [16 bit] - Identifica il numero di porta sull'host mittente associato alla connessione TCP.
    • Destination port [16 bit] - Identifica il numero di porta sull'host destinatario associato alla connessione TCP.
    • Sequence number [32 bit] - Numero di sequenza, indica lo scostamento (espresso in byte) dell'inizio del segmento TCP all'interno del flusso completo, a partire dall' Initial Sequence Number ( ISN ), negoziato all'apertura della connessione.
    • Acknowledgment number [32 bit] - Numero di riscontro, ha significato solo se il flag ACK è settato a 1, e conferma la ricezione di una parte del flusso di dati nella direzione opposta, indicando il valore del prossimo Sequence number che l'host mittente del segmento TCP si aspetta di ricevere.
    • Data offset [4 bit] - Indica la lunghezza (in word da 32 bit) dell'header del segmento TCP; tale lunghezza può variare da 5 word (20 byte) a 15 word (60 byte) a seconda della presenza e della lunghezza del campo facoltativo Options .
    • Reserved [4 bit] - Bit non utilizzati e predisposti per sviluppi futuri del protocollo; dovrebbero essere settati a zero.
    • Flags [8 bit] - Bit utilizzati per il controllo del protocollo:
      • CWR (Congestion Window Reduced) - se settato a 1 indica che l'host sorgente ha ricevuto un segmento TCP con il flag ECE settato a 1 (aggiunto all'header in RFC 3168).
      • ECE (ECN-Echo) - se settato a 1 indica che l'host supporta ECN (Explicit Congestion Notification) durante il 3-way handshake (aggiunto all'header in RFC 3168).
      • URG - se settato a 1 indica che nel flusso sono presenti dati urgenti alla posizione (offset) indicata dal campo Urgent pointer ;
      • ACK - se settato a 1 indica che il campo Acknowledgment number è valido;
      • PSH - se settato a 1 indica che i dati in arrivo non devono essere bufferizzati ma passati subito ai livelli superiori dell'applicazione;
      • RST - se settato a 1 indica che la connessione non è valida; viene utilizzato in caso di grave errore;
      • SYN - se settato a 1 indica che l'host mittente del segmento vuole aprire una connessione TCP con l'host destinatario e specifica nel campo Sequence number il valore dell' Initial Sequence Number ( ISN ); ha lo scopo di sincronizzare i numeri di sequenza dei due host. L'host che ha inviato il SYN deve attendere dall'host remoto un pacchetto SYN/ACK.
      • FIN - se settato a 1 indica che l'host mittente del segmento vuole chiudere la connessione TCP aperta con l'host destinatario. Il mittente attende la conferma dal ricevente (con un FIN-ACK). A questo punto la connessione è ritenuta chiusa per metà: l'host che ha inviato FIN non potrà più inviare dati, mentre l'altro host ha il canale di comunicazione ancora disponibile. Quando anche l'altro host invierà il pacchetto con FIN impostato la connessione, dopo il relativo FIN-ACK, sarà considerata completamente chiusa.
  • TCP : Transmission Control Protocol pt. 3
    • Advertise Window [16 bit] - Indica la dimensione della finestra di ricezione dell'host mittente, cioè il numero di byte che il mittente è in grado di accettare a partire da quello specificato dall'acknowledgment number.
    • Checksum [16 bit] - Campo di controllo utilizzato per la verifica della validità del segmento. È ottenuto facendo il complemento a 1 della somma complemento a uno a 16 bit dell'intero header TCP (con il campo checksum messo a zero) con l'aggiunta di uno pseudo header composto da: indirizzo IP sorgente(32bit),indirizzo IP destinazione(32bit), un byte di zeri, un byte che indica il protocollo e due byte che indicano la lunghezza del pacchetto TCP (header + dati).
    • Urgent pointer [16 bit] - Puntatore a dato urgente, ha significato solo se il flag URG è settato a 1 ed indica lo scostamento in byte a partire dal Sequence number del byte di dati urgenti all'interno del flusso.
    • Options - Opzioni (facoltative) per usi del protocollo avanzati.
  • OSI: Open Systems Interconnection ISO/OSI è uno stack di protocolli incapsulati, che sicuramente è più flessibile rispetto al paradigma di TCP/IP (TCP= Transfer Control Protocol ; IP= Internet Protocol), ma soltanto perché risulta più astratto rispetto a questo. In pratica non esistono implementazioni 'complete' di ISO/OSI, a parte quelle proprietarie (ad esempio il protocollo proprietario DECNET della Digital) e di interesse accademico. ISO/OSI ha quindi un interesse puramente didattico come esempio di architettura di riferimento per tutte le altre architetture utilizzate in pratica.
  • OSI: Open Systems Interconnection pt. 1
    • Livello 1: fisico
      • Obiettivo: trasmettere un flusso di dati non strutturati attraverso un collegamento fisico, occupandosi della forma e del voltaggio del segnale. Ha a che fare con le procedure meccaniche e elettroniche necessarie a stabilire, mantenere e disattivare un collegamento fisico.
    • Ovvero semplicemente: si occupa di controllare la rete, gli hardware che la compongono e i dispositivi che permettono la connessione, ovvero in questo livello si decidono tutti gli aspetti puramente fisici che mettono in pratica la connessione, tra i quali:
    • Le tensioni scelte per rappresentare i valori logici
    • La durata in microsecondi del segnale elettrico che identifica un bit
    • L'eventuale trasmissione simultanea in due direzioni
    • La forma e la meccanica dei connettori usati per collegare l'hardware al mezzo trasmissivo
  • OSI: Open Systems Interconnection pt. 2
    • Livello 2: datalink
      • Obiettivo: permettere il trasferimento affidabile di dati attraverso il livello fisico. Invia frame di dati con la necessaria sincronizzazione ed effettua un controllo degli errori e delle perdite di segnale. Tutto ciò consente di far apparire, al livello superiore, il mezzo fisico come una linea di trasmissione esente da errori di trasmissione.
      • Questo livello si occupa di formare i dati da inviare attraverso il livello fisico, incapsulando i dati in un pacchetto provvisto di header (intestazione) e tail (coda), usati anche per sequenze di controllo. Questa frammentazione dei dati in specifici pacchetti è detta framing e i singoli pacchetti sono i frame .
      • Per ogni pacchetto ricevuto, il destinatario invia al mittente un pacchetto ACK ( acknowledgement , conferma) contenente lo stato della trasmissione: il mittente deve ripetere l'invio dei pacchetti mal trasmessi e di quelli che non hanno ricevuto risposta. Per ottimizzare l'invio degli ACK, si usa una tecnica, che consiste nell'accodare ai messaggi in uscita gli ACK relativi ad una connessione in entrata, per ottimizzare l'uso del livello fisico. I pacchetti ACK possono anche essere raggruppati e mandati in blocchi. Questo livello si occupa anche di controllare il flusso di dati: in caso di sbilanciamento di velocità di trasmissione, si occupa di rallentare l'opera della macchina più veloce, accordandola all'altra e minimizzando le perdite dovute a sovraccarico.
      • La sua unità dati fondamentale è il frame .
  • OSI: Open Systems Interconnection pt. 3
    • Livello 3: rete
      • Obiettivo: rende i livelli superiori indipendenti dai meccanismi e dalle tecnologie di trasmissione usate per la connessione. Si occupa di stabilire, mantenere e terminare una connessione, garantendo il corretto e ottimale funzionamento della sottorete di comunicazione.
      • È responsabile di:
        • routing: scelta ottimale del percorso da utilizzare per garantire la consegna delle informazioni
        • gestione della congestione: evitare che troppi pacchetti arrivino allo stesso router contemporaneamente
        • indirizzamento
        • conversione dei dati nel passaggio fra una rete ed un'altra con diverse caratteristiche.
          • Deve, quindi:
            • tradurre gli indirizzi
            • valutare la necessita' di frammentare i dati se la nuova rete ha una diversa Maximum Transmission Unit (MTU)
            • valutare la necessita' di gestire diversi protocolli attraverso l'impiego di gateway
      • La sua unità dati fondamentale è il pacchetto .
  • OSI: Open Systems Interconnection pt. 4
    • Livello 4: trasporto
      • Obiettivo: permettere un trasferimento di dati trasparente e affidabile (implementando anche un controllo degli errori e delle perdite) tra due host. È il primo livello realmente end-to-end, cioè da host sorgente a destinatario.
      • A differenza dei livelli precedenti, che si occupano di connessioni tra nodi contigui di una rete, il Trasporto (a livello logico) si occupa solo del punto di partenza e di quello finale.
      • Si occupa anche di effettuare la frammentazione dei dati provenienti dal livello superiore in pacchetti, detti 'segmenti' e trasmetterli in modo efficiente ed affidabile usando il livello rete ed isolando da questo i livelli superiori. Inoltre, si preoccupa di ottimizzare l'uso delle risorse di rete e di prevenire la congestione.
      • La sua unità dati fondamentale è il messaggio .
  • OSI: Open Systems Interconnection pt. 5
    • Livello 5: sessione
      • Obiettivo: controllare la comunicazione tra applicazioni. Stabilire, mantenere e terminare connessioni (sessioni) tra applicazioni cooperanti.
      • Esso consente di aggiungere, ai servizi forniti dal livello di trasporto, servizi più avanzati, quali la gestione del dialogo (mono o bidirezionale), la gestione del token (per effettuare mutua esclusione) o la sincronizzazione (inserendo dei checkpoint in modo da ridurre la quantità di dati da ritrasmettere in caso di gravi malfunzionamenti).
      • Si occupa anche di inserire dei punti di controllo nel flusso dati: in caso di errori nell'invio dei pacchetti, la comunicazione riprende dall'ultimo punto di controllo andato a buon fine.
  • OSI: Open Systems Interconnection pt. 6
    • Livello 6: presentazione
      • Obiettivo: trasformare i dati forniti dalle applicazioni in un formato standardizzato e offrire servizi di comunicazione comuni, come la crittografia, la compressione del testo e la riformattazione .
      • Esso consente di gestire la sintassi dell'informazione da trasferire. E sono previste tre diverse sintassi:
          • astratta (definizione formale dei dati che gli applicativi si scambiano),
          • concreta locale (come i dati sono rappresentati localmente)
          • di trasferimento (come i dati sono codificati durante il trasferimento).
  • OSI: Open Systems Interconnection pt. 7
    • Livello 7: applicazione
      • Obiettivo: interfacciare utente e macchina.
      • Fornisce un insieme di protocolli che operano a stretto contatto con le applicazioni. È errato identificare un'applicazione utente come parte del livello applicazione.
      • I protocolli delle applicazioni tipiche di questo livello realizzano operazioni come ad esempio le applicazioni di:
          • Trasferimento di file
          • Terminale virtuale
          • Posta elettronica
  • TCP : Connessione Host Client Send SYN seq=x Receive SYN +ACK segment Send ACK y+1 Receive SYN segment Send SYN seq=y, ACK x+1 Receive ACK segment Host Client Send FIN seq=x Receive FIN + ACK segment Send ACK y+1 Receive FIN segment Send ACK x+1 Receive ACK segment Apertura di una connessione TCP Chiusura di una connessione TCP Receive ACK segment Send FIN seq=y, ACK x+1
  • TCP : Data transfer (Trasferimento Dati) Host Client Invio Packet 1 Avvio Timer Ritrasmissione Packet 1 Avvio Timer Packet 1 dovrebbe arrivare ACK deve essere inviato ACK dovrebbe Normalmente arrivare A questo punto Ricezione Packet 1 Invio ACK 1 Tempo Scaduto Ricezione ACK 1 Cancellazione Timer Packet Lost Pacchetto perso Timer Timer
  • HTTP : Hyper Text Transfer Protocol
    • Stateless Transaction Protocol
    • Ogni operazione crea una nuova connessione
    • Gli Steps in Transaction
    • Realizzazione della connessione
    • Richiesta
    • Metodo <URL> <CR>
    • Risposta
    • Codice della Risposta <Data> <CR>
    • Chiusura della connessione
  • HTTP
    • Metodologie delle richieste comuni
    • GET, PUT, POST
    • Categorie delle possibili risposte
    • Informational :100
    • Successful :200
    • Redirection :300
    • Client Error :400 (eg. 404 Not found)
    • Server Error :500
  • Esempio: Accesso a www.lumit.it Http request GET “http://www.lumit.it”<CR> Http response 200 “” <CR> <html file in MIME format> Initiate connection (hdshk) Package data (add TCP header) send http request packet Assemble response (break into several packets) Send http response packets send data to next hop
    • Appl
      • HTTP
    • Transp
      • TCP
    • Net
      • IP
    Link ethernet Close connection (hdshk) Relay data Lato Client Lato Server Router(s)
    • Net
      • IP
    Link ethernet
    • Appl
      • HTTP
    • Transp
      • TCP
    • Net
      • IP
    Link ethernet ARP to provide IP/MAC translation
  • Principali Referenze
    • “ TCP/IP Illustrated, Volume 1 The Protocols “
    • di W. Richard Stevens
    • ( http://www.amazon.com/TCP-IP-Illustrated-1-Protocols/dp/0201633469 )
    • “ Internet Working with TCP/IP Volume 1”
    • di Douglas E. Comer
    • “ Sams Teach Yourself TCP/IP in 24 Hours”
    • di Joe Casad. pubblicato da Sams. ( http://www.informit.com )
    • “ Internet Core Protocols” by Eric A. Hall. Pubblicato da O’Reilly ( http://oreilly.com/catalog/9781565925724 )
  • TCP : Appendice Diagramma di Stato TCP