Domanda

Domanda sul MAC-protocollo di 802.11 Wifi.

Abbiamo imparato che quando una stazione ha ricevuto i dati attende tempo SIFS. Quindi invia il pacchetto. Durante la ricerca on-line il motivo che è sempre menzionato è quello di dare ACK pacchetti una priorità più alta. Questo è comprensibile dal momento che una stazione deve prima aspettare volta DIFS quando si vuole inviare dati normali (e DIFS è più grande di SIFS).

Ma perché aspettare a tutti? Perché non inviare immediatamente l'ACK? La stazione conosce i dati sono arrivato e il CRC è corretto, quindi perché aspettare?

È stato utile?

Soluzione

E 'teoricamente possibile sapere che il CRC è corretto alla fine esatta dei dati ricevuti dal filo, ma in pratica, è necessario accumulare tutti i campioni nel l'ultimo blocco, al fine di eseguire l'IFFT, deconvoluzione, FEC, e poi, finalmente, proprio alla fine, dopo aver finalmente ottenere i dati di input fuori della forma d'onda, sai che il CRC è corretto. Inoltre, è a volte necessario attivare circuiti di trasmissione per inviare l'ACK, che può ostacolare il ricevere la prestazione. Se ogni passo nella catena di elaborazione erano istantanea, e se la circuiteria di trasmissione sicuramente non interferisce con la circuiteria di ricezione, e se non ci fosse lasso di tempo necessario per la costruzione della forma d'onda per l'ACK, sarebbe possibile inviare il ACK subito dopo aver ottenuto l'ultimo bit della forma d'onda. Ma, mentre ogni elemento in questa catena richiede tempo deterministico, non è istantanea. SIFS dà il tempo del ricevitore per ottenere i dati dal PHY, verificarlo, e inviare la risposta.

. Disclaimer: io sono più familiarità con Homeplug di 802,11

Altri suggerimenti

E 'come quella modalità perché Distributed Coordination Function (DCF) e Point Coordination Function (PCF) possono coesistono all'interno di una cella. Si tratta di una stazione di base può utilizzare polling, mentre allo stesso tempo la cellula può utilizzare coordinamento disitributed usando CSMA / CA.

Così durante SIFS, cornici di controllo o frammento successivo può essere inviato. Durante PIFS, telai PCF possono essere inviati e durante cornici DIFS DCF possono essere inviati. Durante SIFS e PIFS, PCF può funzionare la sua magia.

Anche se non tutte le stazioni di base supportano PCF tutte le stazioni devono attendere in quanto alcuni potrebbero sostenerlo.

Aggiornamento:

Il modo in cui ho capito questo ora è che durante SIFS la stazione può inviare RTS, CTS o ACK e avere abbastanza tempo per tornare alla modalità di ricezione prima che il mittente inizia a trasmettere. Se questo è corretto, invierà ACK durante SIFS. Poi cambierà per ricevere modalità e attendere che intercorre SIFS. Quando SIFS è trascorso il trasmettitore inizierà l'invio.

Inoltre, PCF è controllato da PIFS che viene dopo SIFS e prima DIFS ed è quindi non è rilevante per questa discussione (il mio errore). Cioè, SIFS

Fonti: Questa PDF (pagina 8) e Reti di Calcolatori di Andrew S. Tanenbaum

SIFS = RTT (sulla base del tasso di trasmissione PHY) + FRAME TRATTAMENTO RITARDO RICEVITORE (PHY Ritardo di elaborazione + MAC Ritardo di elaborazione) + FRAME Ritardo di elaborazione (per la composizione RISPOSTA CTS / ACK) + RF TUNER RITARDO (passaggio da RX a TX )

A lato del trasmettitore, dopo l'ultima PHY Simbolo (di RTS, per esempio), il tempo necessario per passare alla modalità RX (a RF). Quindi, vorrei vedere SIFS come un calcolo lato RX di un lato TX.

Non posso dire per certo, ma suona come una strategia di ottimizzazione simile a IP. Se non si richiede un ACK per tutti pacchetto di dati, ha senso tenere a bada per un po 'in modo che, se più pacchetti di dati arrivano, li si può riconoscere con un singolo ACK.

Esempio: client invia 400 pacchetti davvero veloce al server. Piuttosto che il server di invio di nuovo 400 ACK, si può semplicemente aspettare fino a quando il cliente prende un attimo di respiro prima di inviare un singolo ACK. Combinata con la probabilità che il client fa una pausa anche sotto carico (che ha come suo buffer non riconosciuti-pacchetti riempie), questo sarebbe praticabile.

Questo è possibile in sistemi in cui il ACK(n) significa "ho ricevuto tutto fino al pacchetto # n.

Si otterrà una migliore performance e meno traffico utilizzando tale strategia. Finché il tempo di attesa prima d'inviare-ACK sul ricevitore è inferiore al no ritrasmissione-se--ACK-prima volta sul mittente (prendendo ritardi di trasmissione in considerazione), non ci dovrebbero essere problemi.

Breve corso intensivo su 802.11:

802.11 è un sistema essenzialmente un gigante di timer. Le implementazioni più comuni di 802.11 utilizzano la funzione di coordinamento distribuita, DCF. Il DCF permette per i nodi di entrare e fuori del campo di un canale radio utilizzati per 802.11 e coordinare in modo distribuito che dovrebbe essere l'invio e la ricezione di dati (ignorando i problemi dei nodi nascosti ed esposti per questa discussione). Prima di ogni nodo può iniziare a inviare i dati sul canale che tutti devono attendere un periodo di DIFS, in cui il canale è determinato a restare inattivo, se è inattivo per un periodo DIFS il primo nodo di afferrare il canale inizia la trasmissione. In standard 802.11, cioè implementazioni non 802.11e e non 802.11n, ogni singolo pacchetto di dati che viene trasmesso deve essere riconosciuto da uno strato fisico, PHY, pacchetto di riconoscimento, Indipendentemente dal protocollo di livello superiore essendo utilizzato. Dopo un pacchetto di dati viene inviato un periodo di tempo SIFS deve scadere, dopo SIFS scade frame di controllo destinati a un nodo che ha "preso" controllo del canale può essere inviata, in questo caso e frame di acknowledgement viene trasmesso. SIFS permette nodo che ha inviato il pacchetto di dati da trasmettere per passare alla modalità di ricezione. Se un pacchetto si perde e non ACK ricevuto dopo il verificarsi timeout SIFS / ACK, quindi esponenziale di back-off viene richiamato. Esponenziale back-off, a.k.a finestra di contesa (CW), inizia ad un valore CWmin, in qualche implementazione Linux Questo è 15 volte di slot, in cui una slot di tempo varia a seconda del protocollo 802.11 che viene utilizzato. Il valore CW viene scelto tra 1 a qualsiasi limite superiore che è stata calcolata per CW. Se il pacchetto attuale è stato perso, allora il CW viene incrementato da 15 a 30, e quindi un valore casuale viene scelto tra 1 e 30. Ogni volta c'è un consecutivo perdere CW raddoppia fino a 1023, a quel punto colpisce un limite. Una volta che un pacchetto viene ricevuto con successo il CW viene resettato di nuovo a CWmin.

Per quanto riguarda 802.11n / 802.11e: Ogni pacchetto di dati deve ancora essere riconosciuto, ma quando si utilizza 802.11e (implementato in 802.11n) più pacchetti di dati possono essere aggregati insieme in due modi diversi A-MSDU o A-MPDU. A-MSDU è un jumbo-frame che ha una checksum per l'intero pacchetto aggregato viene inviato, in essa sono molti semi-trame contenenti ciascuno dei frame di dati che dovevano essere inviati. Se non v'è alcun errore nel frame A-MSDU e deve essere ritrasmesso, allora ogni sub-frame è necessaria per essere inviato nuovamente. Tuttavia, quando si utilizza A-MPDU, ogni sub-frame ha un piccolo intestazione e checksum consente alcun sub-frame che ha un errore in esso per essere ritrasmesso da solo / all'interno di un'altra struttura aggregata al successivo nodi invio guadagna il canale . Con questi schemi di pacchetti di invio aggregati c'è la nozione del blocco-ACK. Il blocco-ack contiene una bitmap dei fotogrammi da un numero di sequenza di partenza che sono stati appena inviati nel pacchetto aggregato e ricevuti correttamente o meno. Utilizzo del telaio aggregato invio migliora notevolmente le prestazioni throughput più dati possono essere inviati per acquisizione canale da un nodo mittente, consentendo anche fuori ordine che trasmette pacchetti. Tuttavia, fuori ordine pacchetto invio notevolmente complica livello MAC 802.11.

SIFS = D + M + Rx / Tx

Dove,

D = (ritardo Ricevitore (ritardo RF) e la decodifica di procedimento strato fisico convergenza (PLCP) preambolo / intestazione)

M = (MAC ritardo di elaborazione)

Rx / Tx = (ricetrasmettitore tempo di ritorno)

Soprattutto i ritardi non possono essere evitati in modo Si deve attendere il tempo SIFS prima di inviare riconoscimento

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top