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 B - AA 2016-2017

  1. Home
  2. Courses
  3. Corso di Laurea in Informatica (L-31)
  4. LabRetiB1617
  5. 24 October - 30 October
  6. Assignment 9: PING

Assignment 9: PING

Completion requirements
Opened: Tuesday, 18 October 2016, 12:00 AM
Due: Tuesday, 15 November 2016, 12:00 AM

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 si questo assignment è quello di implementare un server  PING ed 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 una macchina o sulla rete locale ed 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.


Il 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. Il client 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 client stampa un riassunto simile a quello stampato dal PING UNIX

                                                   ---- 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


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 utilizzato per la generazione di latenze e perdita di pacchetti ed, eventualmente, la probabilità di scarto dei 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).


◄ Esercizio in aula: chat room (UDP, 19 ottobre)
Lezione 7 ►

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

        • LabRetiB1617

          • Laboratorio di Programmazione di Reti - Corso B - ...

          • TextTwist: Progetto Anno Accademico 2016-2017

          • 19 September - 25 September

          • 26 September - 2 October

          • 3 October - 9 October

          • 10 October - 16 October

          • 17 October - 23 October

          • 24 October - 30 October

            • AssignmentAssignment 9: PING

          • 31 October - 6 November

          • 7 November - 13 November

          • 14 November - 20 November

          • 21 November - 27 November

          • 28 November - 4 December

          • 5 December - 11 December

          • 12 December - 18 December

      • 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)
LabRetiB1617
  • English ‎(en)‎
    • English ‎(en)‎
    • Italiano ‎(it)‎
Data retention summary
Get the mobile app