Skip to main content
INF - e-learning - Dipartimento di Informatica
  • English ‎(en)‎
    English ‎(en)‎ Italiano ‎(it)‎
You are currently using guest access (Log in)

Laboratorio di Reti - A.A. 2022-23

  1. Home
  2. Courses
  3. Corso di Laurea in Informatica (L-31)
  4. LPR-22-23
  5. 24 Novembre
  6. Assignment: Java Pinger

Assignment: Java Pinger

Completion requirements
Opened: Wednesday, 30 November 2022, 12:00 AM
Due: Wednesday, 7 December 2022, 11:59 PM

PING è una utility per la valutazione delle performance della rete utilizzata per verificare la raggiungibilità di un host su una rete IP e per misurare il round trip time (RTT) per i messaggi spediti da un host mittente verso un host destinazione.

Lo scopo di questo assignment è quello di implementare un server PING e un corrispondente client PING che consenta al client di misurare il suo RTT verso il server.

La funzionalità fornita da questi programmi deve essere simile a quella della utility PING disponibile in tutti i moderni sistemi operativi. La differenza fondamentale è che si utilizza UDP per la comunicazione tra client e server, invece del protocollo ICMP (Internet Control Message Protocol).

Inoltre, poichè l'esecuzione dei programmi avverrà su un solo host o sulla rete locale e in entrambe i casi sia la latenza che la perdita di pacchetti risultano trascurabili, il server deve introdurre un ritardo artificiale ed ignorare alcune richieste per simulare la perdita di pacchetti.


PING CLIENT

  • Accetta due argomenti da linea di comando: nome e porta del server. Se uno o più argomenti risultano scorretti, il client termina, dopo aver stampato un messaggio di errore del tipo ERR -arg x, dove x è il numero dell'argomento.
  • Utilizza una comunicazione UDP per comunicare con il server ed invia 10 messaggi al server, con il seguente formato:

    PING seqno timestamp

    in cui seqno è il numero di sequenza del PING (tra 0-9) ed il timestamp (in millisecondi) indica quando il messaggio è stato inviato.
  • Non invia un nuovo PING fino che non ha ricevuto l'eco del PING precedente, oppure è scaduto un timeout.
  • Stampa ogni messaggio spedito al server ed il RTT del ping oppure un * se la risposta non è stata ricevuta entro 2 secondi
  • Dopo che ha ricevuto la decima risposta (o dopo il suo timeout), il clientstampa un riassunto simile a quello stampato dal PING UNIX, ovvero:

    ---- PING Statistics ----
    10 packets transmitted, 7 packets received, 30% packet loss
    round-trip (ms) min/avg/max = 63/190.29/290

  • Il RTT medio è stampato con 2 cifre dopo la virgola.

PING SERVER

Il server è essenzialmente un echo server: rimanda al mittente qualsiasi dato riceve.

  • Accetta un argomento da linea di comando: la porta, che è quella su cui è attivo il server + un argomento opzionale, il seed, un valore long utilizzatoper la generazione di latenze e perdita di pacchetti. Se uno qualunque degli argomenti è scorretto, stampa un messaggio di errore del tipo ERR -arg x,dove x è il numero dell'argomento.
  • dopo aver ricevuto un PING, il server determina se ignorare il pacchetto (simulandone la perdita) o effettuarne l'eco. La probabilità di perdita di pacchetti di default è del 25%.
  • se decide di effettuare l'eco del PING, il server attende un intervallo di tempo casuale per simulare la latenza di rete
  • stampa l'indirizzo IP e la porta del client, il messaggio di PING e l'azione intrapresa dal server in seguito alla sua ricezione (PING non inviato,oppure PING ritardato di x ms).
◄ Assignment: NIO Echo Server
Esercizio ►

Blocks

Skip Navigation

Navigation

  • Home

    • Site pages

      • My courses

      • Tags

      • ForumSite news

    • My courses

    • Courses

      • Corso di Laurea in Informatica (L-31)

        • CN-A ( 24-25)

        • CC 24 25

        • LWS2425

        • ICT security

        • LBD_24-25

        • IIA 2025

        • GC2425

        • ALGEBRA LINEARE 2024-25

        • ALGEBRA

        • PdP-B-2024

        • PdP-A-2024

        • LPR-22-23

          • General

          • 15 Settembre

          • 22 Settembre

          • 29 Settembre

          • 6 Ottobre

          • 13 Ottobre

          • 20 Ottobre

          • 27 Ottobre

          • 3 Novembre

          • 17 Novembre

          • 24 Novembre

            • AssignmentAssignment: Java Pinger

            • FileEsercizio

            • FileAllegato esercizio

          • 1 Dicembre

      • Corso di Laurea Magistrale in Informatica (LM-18)

      • Corso di Laurea Magistrale in Informatica e Networ...

      • Corso di Laurea Magistrale in Data Science and Bus...

      • Corso di Laurea Magistrale in Informatics for Digi...

      • Corsi erogati dal Dipartimento di Matematica

      • Master di II livello in "Professione formatore in ...

      • Corsi CLIL

      • Altri Corsi

      • Anno Accademico 2013-14

Blocks

You are currently using guest access (Log in)
LPR-22-23
  • English ‎(en)‎
    • English ‎(en)‎
    • Italiano ‎(it)‎
Data retention summary
Get the mobile app