1 / 13

Introduzione al controllo d’errore

Introduzione al controllo d’errore. Introduzione. Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. In questi casi, il ricevente riceve un messaggio diverso da quello trasmesso dal mittente.

meira
Télécharger la présentation

Introduzione al controllo d’errore

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduzione al controllo d’errore

  2. Introduzione • Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. • In questi casi, il ricevente riceve un messaggio diverso da quello trasmesso dal mittente. • Il controllo d’errore, necessario per ottenere un trasposto affidabile, si basa su: • somme di controllo (checksum); • correzione degli errori. Le tecniche di controllo d’errore sono applicate a tutti i livelli dello stack di protocolli. Ci occuperemo delle tecniche di controllo e correzione importanti per i livelli 3 e 4, e in particolare per la suite di protocolli TCP/IP.

  3. IHL(4) Tipo di Servizio(8) Lunghezza Totale(16) Versione (4) Flag(3) Id del Datagramma(16) Offset di Frammentazione(13) Time To Live(8) Protocollo(8) Checksum dello header(16) Indirizzo IP sorgente(32) Indirizzo IP destinazione(32) Opzioni Padding Dati IP checksum • Il valore del checksum si calcola: • trattando l’intestazione come una sequenza di interi a 16 bit (2 byte alla volta) dove checksum vale 0; • sommando gli interi (con aritmetica in complemento a 1); • prendendo il complemento a 1 (cioè il not binario) del risultato. Si ripete l’operazione e si confronta il valore di checksum ottenuto con quello ricevuto.

  4. Porta mittente Porta destinatario Numero di sequenza Numero di acknowledgement Lunghezza header Riservato Bit di codice Finestra Puntatore urgente Riempimento Eventuali opzioni DATI TCP checksum • TCP utilizza un meccanismo analogo, inoltre: • aggiunge una pseudo-intestazione che contiene, fra l’altro, l’IP della sorgente e della destinazione; • prende in considerazione anche i dati.

  5. Gestione dell’errore (1) • Grazie al controllo di ridondanza con questi checksum, il ricevente riesce a stabilire se il frame sia arrivato integro o meno. • Il servizio così ottenuto è di tipo best-try: se un framearriva a destinazione corrotto, lo si scarta. • Questa procedura: • è valida per un protocollo connectionless, come UDP, dove il trasporto non è garantito; • è chiaramente insufficiente per un protocollo connection-oriented come TCP.

  6. Gestione dell’errore (2) • Perchè il trasporto sia garantito, dobbiamo avere una strategia di reazione ad un frame corrotto. • Ricordiamo le due principali strategie. • Forward Error Correction (FEC) Vengono utilizzati particolari codici di ridondanza (come il CRC del frame Ethernet) che permettono, non solo di rilevare l’esistenza di un errore, ma anche di correggerlo. • Automatic Repeat reQuest (ARQ) Richiesta di ripetizione automatica, spesso usata a livello 3. • Il ricevente controlla se il pacchetto ricevuto è integro e manda conferma al mittente. • Se il pacchetto è corrotto il mittente può ritrasmetterlo finché non arriva correttamente.

  7. Tipi di ARQ • IDLE RQ(detto anche “Stop & Wait” o “Send & Wait”) • “Manda pacchetto e aspetta conferma prima di mandare il successivo. Se corrotto ritrasmetti.” • Continuous RQ • “Manda una sequenza di pacchetti. Se alcuni sono corrotti, ritrasmettili.” • Obiettivi: • correttezza (i pacchetti devono arrivano integri e nella corretta sequenza); • efficienza (sfruttare al meglio la banda di trasmissione). • Le possibili strategie di ritrasmissione sono: • Go-Back-N • Selective Repeat

  8. Idle RQ • I pacchetti vengono trasmessi serialmente da M(ittente) a R(icevente).

  9. Funzionamento di Idle RQ • M spedisce il pacchetto e attende conferma da R. • Se entro un certo tempo T non viene ricevuto un pacchetto di controllo detto ACK (ACKnoledgement), il pacchetto viene rispedito automaticamente. • Se R riceve correttamente il pacchetto (controllo di ridondanza) manda ad M un ACK (ACKnoledgement), per confermare la corretta ricezione. • Se invece il pacchetto arriva corrotto R può : • attendere che M lo rispedisca; • inviare un blocco di controllo NAK (Negative ACKnowledgement) per richiedere la ritrasmissione (explicitrequest).

  10. Idle RQ con ri-trasmissione implicita (1)

  11. Idle RQ con ri-trasmissione esplicita (2)

  12. Idle RQ: temporizzazione

  13. FINE Idle RQ: timeout • Il tempo di timeout, dopo il quale M ritrasmette il pacchetto, deve essere scelto tenendo conto dell’entità dei tempi di propagazione, trasmissione ed elaborazione. • Visto che M rispedisce il pacchetto allo scadere del timer, e possibile che R ne riceva più di uno: quelli di troppo vengono scartati. • Perché R possa riconoscere di aver già ricevuto un pacchetto, è necessario che questi siano numerati. In IDLE RQ, visto che M non manda mai un nuovo pacchetto prima di aver ricevuto un ACK su quello precedente, bastano 2 numeri di frame, tipicamente 0 e 1.

More Related