Questa repository contiene gli script prodotti durante il corso "Reti di Calcolatori" tenuto allUniversità degli Studi di Padova. La repo, come il corso, è divisa in due porzioni:
-
La parte HTTP, si occupa di trattare tutto ciò che concerne dei livelli 5, 6 e 7 del modello ISO/OSI, in particolare si concentra sul protocollo
HTTP
-
La parte multimedia, copre le tecniche di trasmissione a basso livello dei dati da un mittente a un destinatario
Nel modulo HTTP sono vengono scritti in C
il web-client, il web-server e il web-proxy, inoltre sono presenti alcune soluzioni alle prove di esami passati.
Sono fornite 3 implementazioni di un client web. Nella prima viene implementato un client mediante il protocollo HTTP 0.9
, ideato da Berners Lee.
La seconda implementazione racchiude un client che effettua le richiesta tramite HTTP 1.0
e ne processa l'header.
Infine viene implementato anche un web client che supporta HTTP 1.1
e quindi è in grado di consumare il body tramite i chunk.
Viene anche fornita l'implementazione di un web server basico che si occupa solo di restittuire pagine lette e invece un server gateway che consente anche di eseguire altri script.
È anche presente l'implementazione di un web-proxy che gestisce sia la richiesta in chiaro GET
che la CONNECT
.
Nella directory HTTP/exams/
è possibile trovare diverse prove degli esami passati, di seguito elencati.
Inoltre il file HTTP/doc/main.pdf
contienel gli scirpt più importanti che possono essere portati all'esame come supporto alla prova di programmazione. Si consiglia inoltre di consulatre la lista di repo che contiene altre repository ben fornite.
In HTTP/exercies/
sono presenti anche due semplici esercizi che implementano la conversione host-to-network e la codifica base64.
All'interno del modulo multimedia sono presenti gli script .py
e i report .tex
dei due homework richiesti durante il corso.
Il primo homework riguarda la codifica lossless di immagini, in particolare si occupa esplorare due tipi di codifiche implementate attraverso due script. La codifica semplice si basa su un semplice predittore del pixel successivo mentre la codifica avanzata si basa su un modello predittivo più complesso, focolazzandosi su più pixel attorno a quello da predire. Lo studio e l'analisi delle prestazioni di tali codifiche sono descritte nel report.
Il secondo homework studia la latenza di rete: si è implementato uno script che analizza le prestazioni di rete inviando pacchetti ad un determinato server. In particolare viene studiato il numero di link, il Round Trip Time (RTT) per poi calcolare il throughput. Il report contiene tutto ciò che è necessario sapere per poter eseguire il codice e discute i risultati ottenuti.