GUIDA ALLE CONNESSIONI DI RETE - 1

Andare in basso

GUIDA ALLE CONNESSIONI DI RETE - 1

Messaggio  ack il Mar Lug 07, 2009 8:46 pm

Visto le numerose segnalazioni di gente che ha problemi di connessione ho deciso di scrivere questo mini-guida per spiegare quali sono i problemi piu' comuni indicandone le cause e i possibili rimedi per migliorare il gioco in modalita' multiplayer.
In linea teorica il funzionamento e' pressapoco uguale per tutte le tipologie di reti, ma le indicazioni che trovate qui sono principalmente rivolte ad utenti ADSL (tra i 2 e gli 8 mega)

Visto il complesso argomento il post e' abbastanza lungo ma vi consiglio vivamente di leggerlo tutto per avere una visione completa dell'argomento.

Innanzitutto divido il problema in due categorie di utenti: Wireless e Ethernet
(Non considero nemmeno coloro che hanno il modem o router usb perche' fa talmente schifo che non merita di essere preso in considerazione, se rientrate in questa categoria cercate al piu' presto di passare ad ethernet!)

Utenti Wireless
Questa categoria e' la piu' svantaggiata perche' i problemi sono principalmente tecnici.
Il problema di fondo e' che le reti wireless sono moooolto sensibili a interferenze e rumori esterni.

In una comunicazione wireless intervengono due componenti: il router (l'access point wireless) e il pc (con scheda o pennetta usb wireless).
Entrambi sono contemporaneamente sia ricevitori che trasmettitori.
Durante una normale comunicazione tra i due succede in linea di massima questo: il trasmettitore controlla la potenza del segnale ricevuto
e se e' troppo bassa aumenta la frequenza del segnale trasmesso.
Voi direte: ehmbe' allora?
Il problema e' che a frequenze basse il segnale attraversa bene gli ostacoli (muri, pioggia, etc.) (un esempio di trasmissione ad onde radio a bassa frequenza e' la classica radio) ma la potenza del segnale scende rapidamente a seconda della distanza,
mentre a frequenza alte il segnale si focalizza bene e arriva a distanze maggiori (come i raggi laser per intenderci), ma non attraversa gli ostacoli (tende a rimbalzare) e viene assorbito dalla pioggia (un esempio di trasmissione ad onde radio ad alta frequenza e' il microonde.. e voi scommetto che pensavate fosse una macchina infernale, non e' altro che una grossa radio ad alte frequenze ;P )
Morale piu' distante vi trovate dal router e/o piu' ostacoli il segnale trova e peggio andra' la connessione.

Inoltre, il segnale che viene inviato puo' subire forti disturbi dagli elettrodomestici piu' comuni (in primis il microonde, che utilizza la stessa banda di frequenze, ma anche il bluetooth utilizza lo stesso spettro di frequenze, come altri classici dispositivi quali parabolina che invia segnale audio/video ad altri apparecchi, telecomando per il cancello, sistemi di sorveglianza e di allarme,etc.. non potete nemmeno immaginare quanti ve ne siano)
Voi direte: ma perche' fanno tutti questi dispositivi che utilizzano la stessa banda di frequenze che poi interferiscono uno con l'altro e non funziona mai un *BIP*?!?
La risposta,anche se puo' sembrare strano, e' piu' che altro una questione politica/burocratica, infatti per non far si' che ogni casa produttrice di dispositivi radio si acquistasse tutte le bande disponibili (ovviamente limitate), hanno fatto si' che alcune bande fossero riservate (alcune per le radio, altre per scopi militari, altre per i cellulari, altre per tecnologie future e/o in via di sviluppo, altre per grandi aziende che hanno pagato e anche tanto per avere la propria banda) mentre a tutti gli altri dispositivi wireless (bluetooth, infrarossi, microonde, e tanti tanti altri) hanno lasciato una banda gratuita senza ne' controllo ne' limitazioni che tutti i dispositivi usano come fossero gli unici presenti.

Per capire meglio cosa significa 'interferenza' tra segnali vi spiego in poche parole come funziona la comunicazione wireless.
Nella comunicazione vengono inviati pacchetti (non i pacchetti IP come molti pensano) che per la precisione si chiamano frame (tutti della dimensione fissa di circa 1500 byte) che al loro interno possono contenere anche pacchetti IP ma non solo.
Quando due frame che viaggiano nella stessa direzione si "scontrano" (il termine corretto e' "collidono") entrambi i frame vengono danneggiati (cio' significa che il segnale ottenuto e' distorto per entrambe le direzioni). Per ogni collisione tra frame, il risultato e' che entrambi i dispositivi che stavano attendendo il pacchetto ricevono il frame rovinato e appena i ricevitori se ne accorgono ne richiedono la ritrasmissione, per evitare una nuova collisione entrambi i trasmettitori aspettano un tempo casuale prima di riprovare (ovviamente il tutto semplificato in poche parole perche' i meccanismi che fanno funzionare il tutto sono un po' piu' complicati di cosi' Wink)
Per i router wireless che sono sulla stessa portante (stesso raggio d'azione) esiste uno speciale protocollo che cerca di evitare o ridurre al minimo le collisioni, questo protocollo consiste in poche parole nel ascoltare il canale prima di trasmettere ogni frame e se vede che c'e' gia' una trasmissione in atto aspetta prima che questa sia terminata. Quando trova il canale libero non trasmette subito ma aspetta con probabilita' P prima di provare (per evitare di interferire con altre trasmissioni gia' iniziate), se durante la trasmissione succede una collisione allora riprova a trasmettere con probabilita' 1-P (e' un po' complicato, ma nella realta' il meccanismo e' molto piu'complesso).
Gli altri dispositivi wireless (non router) invece se ne fregano completamente del protocollo dei router e trasmettono appena hanno qualcosa da inviare (senza controllare se ci sono trasmissioni in atto) facendo casino e rovinando la trasmissione di entrambi (in generale la probabilita' che non ci sia una collisione e' poco piu' del 60% negli altri casi e' necessaria la ritrassmissione con i conseguenti ritardi dovuti ad essa. Nel caso di ethernet una collisione avviene con probabilita' inferiore al 0.01%, capite bene la differenza immagino!!!)

POSSIBILI RIMEDI PER SISTEMI WIRELESS:

  • ridurre la distanza tra router e pc, o quantomeno il numero di ostacoli che vi si pongono tra loro (per esempio evitare di sistemare il router sotto la scrivania o in un angolo perche' e' brutto da vedere). Il segnale infatti e' omnidirezionale (cioe' si propaga in tutte le direzioni) ma viaggia in linea retta e non fa quindi le "chicane" tra porte,muri e finestre; se trova un ostacolo (a seconda del materiale) puo' essere assorbito (cio' si manifesta con pacchetti persi) o ancora peggio puo' rimbalzare creando l'effetto chiamato multipath-fading (cioe' il segnale si distorce generando collisioni).Per capire quanti ostacoli vi sono tra pc e router immaginate di tirare un filo dritto tra i due e controllate quante cose vi si interpongono.
  • spegnere eventuali dispositivi che possono interferire (NO alle tastiere/mouse/stampanti/cellulari wireless o bluetooth nel raggio d'azione del router che in genere e' una decina di metri circa)
  • evitare l'uso di nat/firewall/dhcp sul router (ovviamente quando possibile), vedi meglio sezione PING ALTO


Bisogna considerare una altra cosa molto importante che incide parecchio nel fatto che le prestazioni di ethernet sono molto superiori che quelle wireless!
Fino a qui' abbiamo capito che sia su Ethernet che su Wireless i frame possono collidere e rovinarsi oppure perdersi. Ma mentre nel caso di Ethernet le collisioni sono rare e i pacchetti difficilmente si perdono (ve lo immaginate voi un pacchetto che esce dal cavo ;P), nel caso di Wireless la situazione e' esattamente l'opposto!
Quando sono stati inventati i router e i protocolli che girano intorno ad essi non esistevano ancora le reti wireless quindi gli algoritmi utilizzati erano principalmente rivolti ad ottimizzare le prestazioni di ethernet.
Quando un router riceve troppi pacchetti o troppi frame danneggiati ritiene che la rete sia "congestionata" (troppo affollata) e inizia a diminuire l'affluenza di pacchetti nel tentativo di ridurre la congestione. Questo funziona bene nel caso di ethernet in quanto essendo un canale molto affidabile e' difficile che ci siano problemi quindi se al router arrivano tanti pacchetti danneggiati significa che ci sono troppi pacchetti in circolo ed e' bene rallentare.
Per wireless la situazione e' completamente diversa.
I pacchetti si perdono e collidono in continuazione quindi devono essere continuamente ritrasmessi.Se vi ricordate pero' vi ho detto prima che per ogni ritrasmissione c'e' un'attesa di un tempo casuale prima di riprovare quindi paradossalmente piu' pacchetti vengono inviati meglio e' perche' ci sono piu' probabilita' che il frame arrivi a destinazione (essendo wireless un sistema di tipo probabilistico maggiore e' il numero di pacchetti trasmessi maggiore e' la probabilita' che arrivino a destinazione). Rallentare il numero di pacchetti gestiti dal router non fa altro che peggiorare la situzione perche' questo ritardo si va a sommare al ritardo del tempo casuale del pacchetto prima di essere inviato + quello del tempo di attesa.
I router al giorno d'oggi utilizzano ancora questa tecnica in quanto riadattare tutti i router in circolazione al mondo per utilizzare un protocollo che funzioni pensando anche a wireless sarebbe una cosa troppo onerosa (significherebbe spegnere tutti i server mondiali per cambiare il funzionamento di internet).

Considerando tutti questi fattori vediamo cosa possiamo fare per migliorare la connessione nel gioco.
Il consiglio che vi do' io e' di provare a cambiare questi parametri nel file di configurazione (questi valori sono solo indicativi perche' la connessione puo' variare da caso a caso e da server a server):

PER I PACCHETTI:
  • seta cl_maxpackets 100-125 (di default e' 30)
    Impostando ad un valore alto consentiamo al gioco di ricevere piu' pacchetti al secondo dal server(cercando di ridurre il problema descritto sopra) e di avere un gioco piu' fluido. Questo parametro pero' solitamente fa aumentare leggermente il ping e c'e' il rischio di ricevere troppi pacchetti che non si riescono a gestire (packets loss). Si puo' notare questo fatto se nel grafo in basso del lagometer compaiono picchi rossi o durante il gioco vi compare spesso la scritta "Connection interrupted", in questo caso e' meglio provare ad abbassare questo valore tipo 63-75.
  • seta cl_packetdup 1
    in questo modo consentiamo di inviare un pacchetto di scorta per ogni pacchetto inviato (i due pacchetti inviati sono uguali, se un pacchetto viene rovinato o perso durante la trasmissione c'e' sempre quello di scorta, se invece al server arrivano tutti e due i pacchetti e' suo il compito di scartare i duplicati). E' possibile volendo aumentare il numero di pacchetti di scorta inviati (per esempio con cl_packetdup 2 vengono inviati 3 pacchetti uguali ma in questo caso si rischia di inviarne troppi e di intasare la rete o il server quindi utilizzare questo valore solo nel caso in cui la connessione sia proprio pessima (vedi sezione LAGOMETER)
  • seta rate 25000
    n° massimo di bytes ricevuti dal server al secondo, e' possibile provare anche con valori piu' bassi tipo 20000 nel caso ci sia ancora lag. Se per esempio avete la connessione ad internet condivisa con altri pc (tipo vostra sorella vuole poter andare in facebook a farsi i *BIP* degli altri proprio nel momento in cui voi vi connettete ad OA) allora e' meglio diminuire questo valore in modo da non saturare subito la banda (vedi sezione LAGOMETER per dettagli)


Continua su GUIDA ALLE CONNESSIONI DI RETE - 2
avatar
ack

Numero di messaggi : 46
Punti : 55
Data d'iscrizione : 24.05.09

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

Tornare in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum