You are here

Lezione di @bassosimone del 9 Maggio 2014

Come dicevamo nella scorsa lezione, il computer era molto utilizzato dalla azienze (1980s VisiCalc), le persone comuni non sapevano come usarlo (esempio di mio padre che ci giocava a solitario); hanno iniziato a usarlo seriamente per accedere a Internet.

Vediamo quindi la storia, i principi e l'architettura di Internet. Parleremo anche del formato degli indirizzi Internet. Seguiro' come fonti principali Wikipedia e Come funziona Internet.

Appunti presi da un nostro agente infiltrato a lezione, che si e' finto uno studente di Rivoluz. (I nostri uomini vi vedono.)

Storia di Internet

[1950s] Si comincia a parlare di reti a pacchetto in USA, UK, Francia. In particolare, Joseph Licklider definisce il packet switching (suddivisione del messaggio in pacchetti di informazione, ognuno trattato indipendentemente dagli altri) contrapposto alla creazione di un circuito riservato tipica delle reti telefoniche.

Pregi del packet switching: robustezza, efficienza. Ma scetticismo, specie nel mondo TLC (dubbi sulla qualita` offerta da una rete a pacchetti).

[1960s] Paul Baran studia come progettare una rete robusta a guasti, dalle cesoie allo escavatore fino a un olocausto nucleare, e conclude che c'e' bisogno di una rete a pacchetti. BTW, cito direttamente dalla pagina Wikipedia History of the Internet:

The widespread urban legend that the Internet was designed to resist a nuclear attack likely arose as a result of Baran's earlier work on packet switching, which did focus on redundancy in the face of a nuclear "holocaust".

Una rete a pacchetti, insomma, "impara" e si adatta ai guasti (cio' e' possibile grazie al fatto che ogni pacchetto viaggia indipendentemente dagli altri, a sua volta reso possibile dal fatto che su ogni pacchetto e' scritto l'indirizzo di destinazione).

Esempio di guasto in rete telefonica (cade telefonata perche' un numero corrisponde a un circuito elettrico che collega le due persone che si stanno telefonando) vs. rete Settembrea pacchetti in cui la rete puo' scegliere un altro percorso (ovvio: se disponibile) una volta identificato il guasto.

Sempre in questo periodo, Leonard Kleinrock (MIT) dimostra che le reti a pacchetto sono tecnicamente superiori alle reti a circuito (sempre citando Wikipedia: [p]acket-switching provides better bandwidth utilization and response times than the traditional circuit-switching technology used for telephony, particularly on resource-limited interconnection links.)

[29 Ottobre 1969] Nasce ARPANET, la prima rete a pacchetto finanziata da ARPA (Advanced Research Projects Agency), agenzia del governo US. Primi esperimenti tra UCLA (Los Angeles) e SRI (Standford), problemi di stabilita`. Poi i nodi si moltiplicano molto rapidamente (cfr. disegni che mostrano l'evoluzione di ARPANET nei 1970s).

Oltre ad ARPANET, fioriscono anche altri progetti analoghi di reti a pacchetto (X.25, UUCP/USENET). Per permettere comunicazione tra reti diverse nasce "Internet Networking", che oggi chiamiamo Internet (Bob Kahn, Vint Cerf).

RFC (Request For Comments): documenti utilizzati per specificare gli standard della rete ARPANET e poi di Internet. Uno dei primi standard e' il Network Control Program (NCP) utilizzato da ARPANET come livello di trasporto (vedere sezione Architettura) per ARPANET.

[Dicembre 1974] Viene specificato l'Internet Transmission Control Program (TCPv1). La specifica viene in seguito semplificata (a lezione sono stato impreciso su questo aspetto, mi correggo di seguito) con il passaggio da NCP a TCP/IP con il passaggio da TCPv1 a TCP/IP propriamente detto (attualmente siamo alla versione 4.

[Settembre 1981] RFC 791/792/793 (documenti fondanti di Internet perche' specificano la suite di protocolli TCP/IP sui cui Internet si basa). In particolare:

  • IP (Internet Protocol): piu` semplice, si occupa del solo instradamento;
  • TCP (Transmission Control Protocol): piu` complicato, segmenta il messaggio da inviare in pacchetti e riassembla i pacchetti che riceve in messaggio (segmentazione); gestisce anche le perdite (ritrasmette quando capisce che un pacchetto e' andato perduto); molto altro (lo vedrete nei corsi di reti);
  • UDP (User Datagram Protocol): un (sto semplificando molto!) TCP piu' semplice che, ad esempio, non gestisce le perdite.

Principio base (semplificato) di Internet: "La rete e` stupida": IP si usa all'interno della rete ("router"), TCP/IP si usa ai bordi ("end host"). Siccome la rete e' "stupida", e' semplice costruire macchine (dette appunto router) che si occupano dell'instradamento, quindi e' possibile ottenere velocita' di trasmissione (e instradamento!) elevate.

[1 Gennaio 1983] Il protocollo di ARPANET passa da NCP a TCP/IP.

[1980-1995] Verso fine anni '80 la NSF (National Science Foundation) finanzia un importante upgrade della rete Internet, che ancora si basava su ARPANET, chiamato NSFNet. Nel 1986 la dorsale della rete NSFNet (ossia i collegamenti tra i nodi piu' importanti della rete) aveva una capacita' di 56 kbit/; nel 1988 di 1.5 Mbit/s; nel 1991 di 45 Mbit/s.

[1995] Dopo la nascita degli ISP commerciali e la progressiva perdita di importanza delle reti finanziate da enti di ricerca (NSFNet e ARPANET), l'amministrazione Clinton autorizza l'uso di Internet per scopi di lucro (prima di allora non erano permesse attivita` commerciali su internet, dato che, prima del 1995, Internet era finanziata da soldi destinati alla ricerca).

Principi di Internet

Inter-networking: (concetto fondamentale!) Internet permette di far parlare tra loro, ad esempio, una rete WiFi e una rete LAN oppure una rete 3G.

End-to-end principle: robustezza, la complessita` deve stare ai bordi (modo formale di dire che "la rete e' stupida").

Net neutrality: la rete deve trattare tutti i pacchetti allo stesso modo, indipendentemente dall'applicazione usata (esempio: Skype), dal mittente (esempio: YouTube) o dal destinatario. Leggi sulla neutralita' della rete in Olanda e Slovenia: Internet non deve discriminare.

Best effort (vs QoS): la rete non da` garanzie su banda e latenza (a differenza della rete telefonica), ma fa solo del suo meglio per portare i pacchetti a destinazione.

Architettura di Internet

Inizialmente le regole di instradamento erano specificate a mano, mentre adesso le regole di instradamento vengono calcolate automaticamente, quindi Internet e' in grado di riconfigurarsi automaticamente in caso di guasto (che era l'obiettivo di Paul Baran).

Stratificazione di internet:

Applicazioni:

  • Posta Elettronica: protocolli SMTP e IMAP (basati su TCP, che e` basato su IP.);
  • Web: applicazione basata su HTTP, che poggia su TCP (Web diverso da internet!);
  • uTorrent Protocol: protocollo che poggia su UDP, per fare file sharing;
  • Skype: applicazione e protocollo (basato su UDP), per fare videochiamate e telefonate via Internet;
  • DNS (Domain Name System): applicazione, basata su UDP, che traduce nomi in indirizzi.

Esempio (molto semplificato e per nulla ottimizzato) di funzionamento del DNS: risoluzione ricorsiva del dominio www.facebook.com. Viene prima risolto "facebook.com", chiedendo al server che gestisce ".com" chi sia "facebook.com". La risposta indica che "facebook.com" e' una "zona" che gestisce vari sottodomini. Viene quindi risolto "www.facebook.com", chiedendo al server che gestisce "facebook.com" chi sia "www.facebook.com". La risposta indica che "www.facebook.com" e' un server con un certo indirizzo IP.

Indirizzi IP

Indirizzi IP (versione 4, quella che attualmente piu' o meno tutti usano nel mondo). Esempio: 130.192.91.211. Sono quattro cifre (comprese tra 0 e 255) e separate tra loro da punti.

Gli indirizzi IP sono univoci in tutta la rete Internet (salvo alcuni casi eccezionali che vedrete, forse, nei vari corsi di rete), altrimenti non sarebbe possibile per i computer collegati a Internet comunicare tra loro.

End of Lecture.

AttachmentSize
Image icon 2014-04-09_internet-arch-low.jpg128.67 KB