Introduction to the Link Layer

Qualsiasi dispositivo che esegue un link-layer protocol viene definito node. Ci riferiamo al canale di comunicazione che connette i nodi adiacenti tra la communication path chiamandoli links. Per fare in modo che un datagramma sia trasferito da un source host ad un destination host, deve passare tra ogni individual links nell’end-to-end path.

image.png

Su un certo link, un nodo trasmettente incapsula il datagramma in un link-layer frame e trasmette il frame nel link.

The Services Provided by the Link Layer

Where Is the Link Layer Implemented?

Per la maggior parte dei casi, il link layer viene implementato nel network adapter, anche conosciuto come network interface card (NIC). Al cuore del network adapter c’è il link-layer controller, solitamente un singolo, special-puprose chip che implementa molti servizi del link-layer services.

Nel sending side, il controller prende il datagramma che è stato creato e lo immagazzina nella memoria nei layer superiori, incapsula il datagramma in un link-layer frame, e successivamente trasmette il frame nel communication link, seguendo il link-access protocol. Nel receiving side, un controller riceve l’intero frame, e estrae il network-layer datagram. Se il link layer performa error detection, allora è il sending controller che imposta gli error-detection bits nel frame header ed è il receive controller che performa error detection.

image.png

Error-Detection and Correction Techniques

image.png

Al sending node D, i dati che devono essere protetti da bit errors, hanno in aggiunta un error-detection and -correction bits (EDC). Entrambe D e EDC sono inviate al receiving node in un link layer frame. Al receiving node, una sequenza di bits, D’ e EDC’ vengono ricevuti. Nota che D’ e EDC’ possono essere diversi da D e EDC come risultato di in-transit bit flips.

La difficoltà del receiver è quella di determinare se D’ è uguale a D o no, avendo solamente D’ e EDC’.

Le tecniche di error-detection and -correction permettono qualche volta al receiver, ma non sempre, di trovare errori. Anche con l’utilizzo di error-detection bits ci possono essere degli undetected errors. Di conseguenza, il receiver potrebbe consegnare un corrupted datagram al network layer

Parity Checks

La forma più semplice di error detection è quella di utilizzare un singolo parity bit.