La nascita di Nel 1969 la DARPA (Defence Advanced Research Project Agency) studia e realizza la prima rete per la comunicazione tra computer (ARPAnet) fra 3 università americane ed 1 istituto di ricerca. Per tutti gli anni settanta ARPAnet continuò a svilupparsi in ambito universitario e governativo e nel 1974 nasce l' Protocol Suite o TCP/IP. Tale suite è basata sull'utilizzo dei due protocolli piu' noti: TCP (Transmission Control Protocol) ed IP ( Protocol). ARPAnet stava scomparendo e si cominciò a parlare di., la rete mondiale di computer ad acceso pubblico, è pertanto equivalente alla cosiddetta suite di protocolli TCP/IP
ARPAnet nel 1974 Author: Yngvar (opera propria, based on notes and recollections from 1974)
Protocol Suite È un open standard cioè liberamente utilizzabile da tutti. È indipendente dalla realizzazione fisica della rete e dall hardware dei computer che l utilizzano. Non esistono specifiche per i livelli ISO/OSI fisico e data link. Standardizzata attraverso documenti detti RFC (Request For Comment) È una suite quindi comprende anche diversi altri protocolli, quali: UDP (User Datagram Protocol), NFS (Network File System), RPC (Remote Procedure Call), ecc.
Stack TCP/IP Livello di Applicazione (ftp, telnet, SNMP, DNS, HTTP, ecc.) Livello di trasporto: TCP e UDP Livello di rete: IP Layer di data link e fisico non specificati
IP È il livello Rete (Network) di TCP/IP (vedi dispensa precedente) Offre un servizio non connesso non affidabile (es: servizio postale) Per effettuare la trasmissione dei pacchetti è necessario conoscere l indirizzo del destinatario. Questo, assieme al proprio indirizzo è contenuto nell header del pacchetto stesso ed è chiamato indirizzo IP. Versioni: IPv4: indirizzi a 32 bit (4.3 miliardi di indirizzi ormai esauriti) IPv6 (in fase di attuazione): indirizzi a 128 bit (5 10 28 indirizzi per ognuna delle 6.8 miliardi di persone del 2010)
Indirizzamento IP Ogni computer sulla rete è identificato dal suo indirizzo IP (univoco a livello globale) L indirizzo IP è suddiviso in una parte di indirizzo di rete ed indirizzo di host che identificano la classe di indirizzi (vedi slide seguente) L IPv4 number è composto da 32 bit suddivisi in 4 gruppi (byte), rappresentati in forma decimale separati da un punto (Es: 151.27.100.244) L IPv6 number è composto da 128 bit suddivisi in 8 gruppi (2 byte ognuno), rappresentati in forma esadecimale separati da un doppio punto (Es: 2001:0db8:85a3:0000:0000:8a2e:0370:7334)
Esempio di classi indirizzi IPv4 31 30 24 23 Classe A 0 0 Network Host 31 30 29 Classe B 16 15 0 1 0 Network Host Classe C 31 30 2928 8 7 0 1 1 0 Network Host
Ethernet Ethernet, da non confondersi con, è il nome di un protocollo per reti locali (livello 1 e 2 dello stack), sviluppato a livello sperimentale nel 1973 da Robert Metcalfe e David Boggs, suo assistente, alla Xerox PARC. L'obiettivo originale dell'esperimento era ottenere una trasmissione affidabile a 3 Mbps su cavo coassiale in condizioni di traffico contenuto, ma in grado di tollerare bene occasionali picchi di carico. Per regolamentare l'accesso al mezzo trasmissivo era stato adottato un protocollo di tipo MAC CSMA/CD (Media Access Control Carrier Sense Multiple Access / Collision Detection). Ethernet è divenuto, assieme ai due protocolli TCP/IP visti in precedenza, lo standard di comunicazione utilizzato nelle reti LAN (Local Area Network)
Carrier Sense Qualcuno sta trasmettendo?
Carrier Sense Il mezzo è libero. Comincio a trasmettere
Multiple Access Dovrei trasmetere, ma devo aspettare
Carrier Sense (II) Il mezzo è libero. Comincio a trasmettere Il mezzo è libero. Comincio a trasmettere
Multiple Access (II)
Collision Detection C è stata una collisione! C è stata una collisione!
Annullamento trasmissione Sequenza di annullament o (jamming) Sequenza di annullament o (jamming)
Backoff Attendo t0 prima di riprovare Attendo t1 prima di riprovare
MAC address Ogni indirizzo IP è collegato univocamente all indirizzo fisico della scheda di rete chiamato Media Access Control (o MAC) address. Questo indirizzo, univoco per ogni scheda di rete, è formato da 6 byte divisi in coppie di cifre esadecimali normalmente separate da un : o - (es: AA:00:1F:32:65:40) Ad esempio, per leggere l indirizzo IP ed il MAC address della propria scheda di rete Windows: nel command prompt digitate il comando ipconfig /all Linux: da terminale digitate il comando ifconfig
Funzionamento dell IP Per spedire un messaggio è necessario conoscere l indirizzo IP del destinatario ed il suo MAC address. Normalmente conosco il numero IP del destinatario, ma come faccio a trovare il MAC address di un altro computer? Si utilizza un protocollo speciale chiamato ARP (Address Resolution Protocol). I caso (computer appartenenti ad un'unica sottorete): l host sorgente manda a tutti i computer della sottorete un pacchetto speciale (broadcast) richiedendo il MAC address relativo all IP voluto. Tutti i calcolatori della sottorete ricevono la richiesta. L'host di destinazione che riconoscerà il proprio IP nel pacchetto di ARPrequest, provvederà ad inviare una risposta (ARP-reply) all'indirizzo MAC sorgente, contenente il proprio MAC.
ARP I caso: computer appartenenti alla stessa sottorete 140.105.5.X Devo inviare un messaggio al 140.105.5.67 140.105.5.3 00:C0:AA:12:34:66 140.105.5.45 00:00:C0:AA:56:34 140.105.5.67 00:B0:40:89:AA:BB
ARP Request 140.105.5.3 00:C0:AA:12:34:66 ARP Request: MAC src: 00:C0:AA:12:34:66 MAC dest: FF:FF:FF:FF:FF:FF IP dest: 140.105.5.67 IP src: 140.105.5.3 140.105.5.45 00:00:C0:AA:56:34 140.105.5.67 00:B0:40:89:AA:BB Sono io!
ARP Reply 140.105.5.3 00:C0:AA:12:34:66 Ora so a chi spedire il messaggio ARP Reply: MAC src: 00:B0:40:89:AA:BB MAC dest: 00:C0:AA:12:34:66 IP dest 140.105.5.3 IP src: 140.105.5.67 140.105.5.45 00:00:C0:AA:56:34 140.105.5.67 00:B0:40:89:AA:BB
Esempio con più sottoreti 140.105.2.34 vuole inviare un messaggio a 140.105.3.56 Router
Esempio 140.105.2.34 conosce il proprio indirizzo, il suo MAC address e l indirizzo del router (140.105.2.1). Il router (o gateway) è il dispositivo a cui vengono inviati tutti i messaggi per i dispositivi che non stanno nella stesa sottorete. Il router, in particolare, non inoltra ad altri i broadcast della sua sottorete. Poiché, in questo caso, il computer destinatario si trova su un altra sottorete il computer sorgente deve utilizzare il router. 1 La stazione 140.105.2.34 invia pertanto un ARP request per scoprire l indirizzo fisico del proprio router (o gateway) 2 Il router comunica il proprio MAC 08:00:AA:12:67:CC alla stazione
Esempio
Esempio 3 140.105.2.34 invia il messaggio al router con l indirizzo fisico del router e con l indirizzo IP del destinatario (140.105.3.56) 4 Il router usando delle tabelle al suo interno (conosce la topologia della rete!) manda il messaggio al router 140.105.3.1. Questo si accorge che la macchina ricercata è adiacente alla sua porta e quindi manda un 5 ARP request sulla sua sottorete per scoprire il MAC address del destinatario
Esempio
Esempio 6 La stazione 140.105.3.56 risponde all ARP comunicando il suo MAC address 00:00:AA:12:34:56 al router. 7 Il router può ora inviare a ritroso il messaggio alla stazione di destinazione con il l'indirizzo MAC trovato.
Esempio
DNS (Domain Name Service) Poiché l utilizzo dell indirizzo IP non è molto intuitivo, per facilitare l'impiego della rete da parte degli utenti è stato sviluppato un sistema di indirizzamento simbolico, chiamato Domain Name Service (DNS). Attraverso il DNS ogni host di può essere dotato di un nome (domain name), composto da stringhe di caratteri. Es: 140.105.2.2 <-> synx02.elettra.trieste.it I nomi sono sequenze di simboli separati da punti. La suddivisione è legata alla definizione dei cosiddetti domini, a loro volta divisi in sottodomini, secondo diversi livelli gerarchici Es: it = dominio di primo livello o nazionale trieste.it = sottodominio della MAN (Metropolitan Area Network) elettra.trieste.it = sottodominio della LAN del Sincrotrone synx02 = nome del computer
TCP È il livello di trasporto (transport) del protocollo TCP/IP (vedi dispensa precedente) Suddivide/ricompone il pacchetto di dati che ecceda le dimensioni massime ammesse dal protocollo IP (1500 byte) in segmenti. Ad ogni segmento viene aggiunta una intestazione (TCP header) che specifica che tipo di applicazione ha prodotto il flusso di dati e a che punto del flusso appartiene il blocco in questione. Controlla e gestisce la corretta ricezione dei dati. Per questo stabilisce una connessione (es: servizio telefonico) fra i pari livello (peer process) dei due host comunicanti utilizzando il concetto di porta. Le coppie di IP e delle porte rappresentano dunque l indirizzo del livello di trasporto.
Client/server e porte La maggior parte dei servizi offerti sulla rete si basano su un architettura client/server. Un client è un applicativo che effettua una richiesta di un servizio (normalmente remoto) e ne attende la risposta. Per far ciò, oltre all indirizzo della macchina destinataria deve conoscere il numero di porta a cui è associato il servizio. Questa numero identifica il punto di accesso del processo fornitore del servizio. Il server è dunque un applicativo che rimane in attesa di richieste, ascoltando sulla porta ad esso associata, e restituisce al client le risposte opportune. Il numero delle porte sono noti a priori (es: ftp=21, http=80, ecc.) oppure sono elencate in un DNS.
Indirizzi del livello di trasporto Applicazioni Livello di trasporto 23 80 Livelli 1,2,3