Strumenti Utente

Strumenti Sito


informaticaapplicata:rcl:rcl11:programma

Programma

Il corso è strutturato in due moduli: il primo modulo presenta i fondamenti delle reti di calcolatori e il secondo modulo di laboratorio mostra un’applicazione concreta dei concetti teorici presentati nel primo modulo. Il primo modulo introduce i principi ed i concetti su cui si basano le reti e analizza la loro realizzazione nei sistemi reali. In particolare, vengono presentate le problematiche di livello applicativo e i protocolli più comuni a questo livello (quali HTTP, FTP, e-mail etc.), il livello di trasporto e i protocolli TCP e UDP, il livello di rete e i protocolli di routing e il livello di collegamento. Infine verranno presentati i principi di di reti wireless e mobili, di sicurezza nelle reti e dei protocolli per la multimedialità.

Il secondo modulo introduce gli strumenti per la realizzazione di applicazioni di rete in JAVA. In particolare vengono introdotti sia strumenti a basso livello come i socket TCP ed UDP che strumenti a piu' alto livello, come RMI (Remote Method Invocation) e le callbacks. La prima parte del corso introduce inoltre la programmazione concorrente in JAVA: si discute il concetto di thread, la tecnica del thread pooling e i meccanismi offerti da JAVA per la sincronizzazione dei threads.

Programma dettagliato

Modulo di Reti di Calcolatori

Introduzione alle reti di calcolatori

  • architettura complessiva di Internet
  • protocolli
  • Breve storia di Internet

Livello applicativo

  • Web e HTTP
  • FTP
  • E-mail: SMTP, POP3, IMAP
  • DNS
  • P2P file sharing
  • Soket

Livello di trasporto

  • Servizi del livello di trasporto
    • Multiplexing/demultiplexing
    • Affidabilità
    • Flusso e congestione
  • TCP e servizio orientato alla connessione
  • UDP e servizio senza connessione

Livello di rete

  • Reti a datagramma e a circuito virtuale
  • Protocollo IP
  • Protocolli di routing
    • Link state
    • Distance Vector
    • Routing gerarchico
    • Routing in Internet

Livello di collegamento

  • Correzione di errori di trasmissione
  • protocolli di accesso multiplo
  • indirizzamento
  • Ethernet

Principi di reti wireless e mobili, di sicurezza, e dei protocolli per la multimedialità

Modulo di laboratorio di Reti

Richiami di programmazione JAVA: classi, interfacce ereditarieta'.

  • Nella parte introduttiva del corso verranno proposti semplici esercizi per richiamare la programmazione ad oggetti in JAVA introdotta nel corso di Programmazione 2

Thread Programming in JAVA

  • Attivazione di threads. La classe Runnable
  • Pool di threads: politiche per la gestione dei Pool
  • Thread che restituiscono risultati: la classe Callable
  • Stati di un thread, metodi join, interrupt
  • Sincronizzazione, concetto di monitor
  • Metodi Synchronized, sezioni critiche, wait(), notify(), notifyall()

Gestione di indirizzi IP

  • Classe InetAddress

JAVA streams

  • caratteristiche generali

Sockets UDP

  • DatagramSockets, DatagramPackets
  • Generazione di pacchetti UDP: Le classi ByteArrayInputStream, ByteArrayOutputStream
  • Multicast

Sockets TCP

  • Le classi Socket, ServerSocket
  • Invio di dati strutturati su stream: framing
  • supporto per la gestione di socket TCP
  • Implementazione di servers paralleli

Remote Method Invocation

  • Attivazione di registry
  • Esportazione di oggetti remoti
  • RMI callbacks

Libri di testo

Per il modulo di Reti: J. Kurose & K. Ross. Computer Networking: A top-down approach. (fourth edition, Addison Wesley)

Per il modulo di Programmazione di Rete: Esmond Pitt, Fundamental Networking in Java , Springer Verlag, 2005

informaticaapplicata/rcl/rcl11/programma.txt · Ultima modifica: 21/09/2011 alle 07:11 (13 anni fa) da Stefano Chessa