PDA

View Full Version : Abbassare Ping con TcpAckFrequency


Arael
18-02-2011, 14:57
Copio ed incollo una guida trovata su internet:

---

USATO PER Abbasare lag a: Giochi On-line da pc, Xbox 360, ps3.

PREMESSA:
Questa vuole essere una guida riassuntiva sull’ottimizzazione di alcuni paramentri di windows, per migliorare sia in tempi di risposta che in navigabilità.
L’importanza del ping nei videogiochi online:
Il Ping è il tempo di risposta ad una nostra rischiesta al server, espresso in micro secondi (ms).
esempio: START/PROGRAMMI/ACCESSORI/PROMPT DEI COMANDI e digitiamo sotto dos: ping maya.ngi.it diamo invio, avremo una serie di risultati in ms ( tempo minimo, medio e massimo).
Tanto per dare un idea, se giocassimo una partita di ping pong, ogni qualvolta lanciamo la pallina all’avversario, dovremo aspettare che torni indietro per rilanciarla, il tempo che intercorre in queste fasi è il ping. Inferiore è questo tempo minore sarà il tempo di attesa per avere l’informazione da parte del server e viceversa. In uno sparatutto dove il nemico si muove per sfuggire ai nostri colpi, avere un ping basso è fondamentale, perchè se così non fosse, la posizione che abbiamo sullo shermo dell’avversario potrebbe non corrispondere alla realtà, un po come se inqudrassimo la scia fantasma di chi poco tempo prima c’era.
Il valore del nostro ping medio è influenzato da molti fattori, tra cui: la qualità della linea adsl, cavi, filtri adsl, settagi del router in centrale, dunque anche dal provider e soprattutto anche dal server che andiamo ad interrogare… tra questi grandi fattori poco personalizzabili possiamo in parte intervenire su altri che influenzano il ping della nostra adsl; alcuni paramentri del nostro sistema operativo, sia esso Windows XP o Vista possono essere modificati per ottenere tempi di risposta brevi. Parametri che tendenzialmente servono a controllare che i pacchetti arrivati siano corretti i cosi detti controlli di errore od altri che frammentano un pacchetto in più piccoli, per recuperare in parte il dato corrotto incaso di errore.
Come abbassare il Ping tramite chiavi di registro.

Windows XP:
1° valore da aggiungere: TcpAckFrequency
START/ESEGUI (digita regedit e dai invio) a questo punto recatevi al seguente settore:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\
Vi troverete delle sottovoci, esempio: {8E8 DF763-B0F2-45D6-842F-F56E712ECCF0} solo in una di queste selezionandola vi saranno elencate delle voci che riportano i dati della vostra connessione, come indirizzo ip, dns ecc. nelle altre ce poco o nulla. Una volta individuata, all’interno di essa tasto destro e creiamo una nuova stringa Dword che chiameremo TcpAckFrequency (mi raccomando mantenete le lettere maiuscole e minuscole cosi come è scritto). Una volta creata la modifichiamo col tasto destro e mettiamo il valore 1 in dati valore esadecimale.
2° valore da aggiungere: TCPNoDelay
START/ESEGUI (digita regedit e dai invio) a questo punto recatevi al seguente settore:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\
All’interno di essa tasto destro e creiamo una nuova stringa Dword che chiameremo TCPNoDelay (mi raccomando mantenete le lettere maiuscole e minuscole cosi come è scritto). Una volta creata la modifichiamo col tasto destro e mettiamo il valore 1 in dati valore esadecimale.
Riavviate il pc per rendere effettive le modifiche apportate.

Windows Vista:
1° valore da aggiungere: TcpAckFrequency
Il primo valore TcpAckFrequency come per Windows XP può anche essere impostato in Vista, dunque seguite la stessa procedura sopra elencata. Anche se non dovrebbe apportare vantaggi su Vista io l’ho introdotto ugualmente nel registro.
2° valore da aggiungere: TCPNoDelay
Su Vista per poter introdurre questo valore dobbiamo attivare il parmetro: MSMQ come per Windows XP,
attivarlo è semplice; andate su PANNELLO DI CONTROLLO/PROGRAMMI E FUNZIONALITA nella finestra sulla sinistra tra le varie voci troverete in fondo: ATTIVAZIONE E DISATTIVAZIONE DELLE FUNZIONALITA DI WINDOWS cliccate e selezionate: MICROSOFT MESSAGE QUEUE (MSMQ) SERVER e aggiungete COMPONENTI DI BASE DI MICROSOFT MESSAGE QUEUE (MSMQ) selezionate le prime tre caselle tranne trigger msmq (non serve), date ok e riavviate il pc una volta richiesto. Tornati sotto Vista, seguite la stessa procedura di windows XP sopra elencata.
---

Ora io mi trovo in:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

Ma vi sono tantissime sottocartelle, e non riesco ad individuare quella giusta da modificare visto che alcune sono MOLTO simili.

Uso una chiavetta Internet per connettermi, qualcuno ha mai fatto questa modifica o ha idea di come trovare quella giusta?

Deuced
19-02-2011, 07:22
piuttosto che editare i valori manualmente (a volte lo preferisco anch'io,ma bisogna essere consci di cosa si modifica) ti consiglio di utilizzare qualche tool che ti permetta di fare il backup di tutte le impostazioni o almeno modificarle in pochi secondi.Ti consiglio di scaricare il tool più adatto da questa pagina

http://www.speedguide.net/downloads.php

Ovviamente non ti aspettare miracoli,si può migliorare la fluidità della navigazione ma non di certo abbassare il ping,è un parametro che dal lato utente non è migliorabile

Slash82
19-02-2011, 09:25
queste sono modifiche lato client sono inutili, non ti aspettare miglioramenti..

Arael
19-02-2011, 12:03
Sono riuscito a trovare il sito dell'autore di uno script che modifica quasi tutto quello che ho scritto.

il 90% degli utenti che l'ha provato ha più che dimezzato il proprio ping.

Ho letto anche la documentazione tecnica di come funziona e devo dire che la cosa mi ha convinto.

A quanto pare Windows peggiora anche il Ping con i tuoi tempi morti di ACK...

Slash82
19-02-2011, 12:24
già leggendo che questi utenti hanno quasi dimezzato mi sa di grandissima cacata, perchè non sappiamo se cambi in qualche modo la dimensione dei pacchetti inviati.
Su counter strike ci sono dei comandi con cui puoi modificare la grandezza dei pacchetti che invii ai server. Tramite questo comando avevo ridotto moltissimo la dimensione dei pacchetti, di conseguenza avevo un ping molto più basso. Da palermo normalmente con un'adsl in fast si pinga 30-35ms. Modificando quei parametri sono riuscito ad avere 12ms di ping..... Sai quale era la cattiva notizia? Che siccome inviavo così pochi dati il server non riceveva abbastanza dati e praticamente non riuscivo ad uccidere nessuno.... Ho riportato il valore a default con conseguente aumento del ping e i colpi magicamente arrivavano bene e ho ripreso a fraggare normalmente....

Deuced
19-02-2011, 12:51
Sono riuscito a trovare il sito dell'autore di uno script che modifica quasi tutto quello che ho scritto.

il 90% degli utenti che l'ha provato ha più che dimezzato il proprio ping.

Ho letto anche la documentazione tecnica di come funziona e devo dire che la cosa mi ha convinto.

A quanto pare Windows peggiora anche il Ping con i tuoi tempi morti di ACK...

il ping non è modificabile lato utente,ma solo lato centrale.E poi l'articolo da te postato è fallace già di per sé,dato che indica alcuni parametri di windows da modificare per abbassare il ping nei giochi xbox e ps3.Magia insomma :D

Scherzi a parte,che windows non sfrutti al 100% la connessione può anche essere,ma con il tcp/ip optimizer che ti ho postato potresti tweakkarlo a dovere.Funziona,lo uso anch'io e la navigazione è più fluida e i download più stabili,ma i valori della tua connessione rimarranno ahimé sempre gli stessi.

Arael
19-02-2011, 13:33
il ping non è modificabile lato utente,ma solo lato centrale.E poi l'articolo da te postato è fallace già di per sé,dato che indica alcuni parametri di windows da modificare per abbassare il ping nei giochi xbox e ps3.Magia insomma :D

Scherzi a parte,che windows non sfrutti al 100% la connessione può anche essere,ma con il tcp/ip optimizer che ti ho postato potresti tweakkarlo a dovere.Funziona,lo uso anch'io e la navigazione è più fluida e i download più stabili,ma i valori della tua connessione rimarranno ahimé sempre gli stessi.
Preso dal sito dell'autore:

Typical Scenario

If you could listen to a conversation between your computer and the game server, this is what you would hear.

Before Leatrix Latency Fix is installed:

* Server: "Ok computer, I just sent a data packet over to you, got it?"
* Your computer: ...
* Server: "Come on, answer me! I don't have all day! Stop wasting time!"
* Your computer: ...
* Server: "Ok, forget it, I've waited long enough, sending another one over! Got it?"
* Your computer: "Yep, got that one, also got the one you sent before, thanks."
* Server: "Well, why didn't you acknowledge the first one when I sent it? I was waiting ages!"
* Your computer: "Sorry, I'm just trying to make the network more efficient by bundling the acknowledgements together in pairs. This is how I'm setup by default."

After Leatrix Latency Fix is installed:

* Server: "Ok computer, I just sent a data packet over, got it?"
* Your computer: "Yep, send the next!"
* Server: "That was fast! Ok, here's another, got that?"
* Your computer: "Yep, send the next!"
* Server: "Wow! What an improvement! Now that's more like it!"
* Your computer: "Yep, it's certainly keeping me on my toes, thanks!"

A Note from the Author

Leatrix Latency Fix is a script which will modify the TCP acknowledgement process, effectively lowering your latency in online games by speeding up the transmission of data being sent from server to client. It will make a good connection faster and more responsive.

I have written an installation script, removal script and checking script, and I've compiled a huge FAQ which covers almost every possible problem, and I've published the whole lot on Wowinterface for free. I've also been here to respond to questions on a wide range of issues and I've done all that for the Wow community.

If you're new to Leatrix Latency Fix and have a problem installing it, read the FAQ.
This is a summary of reported Wow latency values taken from player comments.
The overall average reduction is around 66%.

Name Before After Saving Operating System
Ckramme 280-330 44-87 89% Windows 7 Beta
Epitome 300-400 30-65 87% Windows XP SP3
Halstrom 105-155 16-21 85%
Silenia 96-123 16 85% Windows Vista 64bit SP1
Skylinee 250 40 84% Windows Vista 64bit
Mozzi 200-300 60-80 84% Windows 7 Beta
Katira 586 107 82%
Namtar 150-250 35-40 80% Windows XP SP3
Des1963 150-190 32-40 79%
Shadout 100-250 30 79% Windows Vista 64bit SP1
Bulbul 80-100 20 77% Windows XP SP3
Haylie 150-200 30-50 77% Windows Vista SP1
Leatrix 200 55 73% Windows XP SP3
Marthisdil 220 70 68%
Kunstbanause 170 55 67% Windows Vista 64bit
Makronom 180-200 60-70 66%
Breener 160-250 67 66% Windows Vista 64bit SP1
Aceman67 356 124 65% Windows 7 Beta
Chobaka 100-200 40-60 65% Windows XP SP3
Khuul 150-250 70 63% Windows XP SP3
Kristie 250 100 60% Windows 7 Beta
Phrozenassid 180-280 90-120 54%
XMushroom 170 80 53% Windows Vista SP1
Smikules 230 115 50% Windows 7 Beta
Toadstool 400-500 250 44% Windows Vista SP1
Mooshroom 300-400 200 41%
Bleukreuz 350-450 250 36% Windows Vista SP1
Servi 150-300 100-200 33% Windows XP SP3
Alsenfaire 500-800 400-500 29% Windows XP SP3

Deuced
19-02-2011, 15:24
sostanzialmente sono dei fix che ti ho proposto anch'io e presenti in tcp/ip optimizer,ha scoperto l'acqua calda.

Tra l'altro se tu guardi i test vedrai che sono stati effettuati su world of warcraft...ciò non vuol dire che il ping della connessione è diminuito effettivamente,è diminuto il ping fra client e server,ma a che prezzo??

Detto in maniera semplice:mettiamo che il tizio pingava hwupgrade.it a 50ms e wow a 100,ha ottimizzato le cose e ora pinga hwupgrade.it sempre a 50 e wow a 50.Tutto qui,il ping non è modificabile.Tra l'altro il fix che lui ha pensato per wow usa pure più cicli per la cpu causando una perdita di frames...

Per wow magari funziona,per il resto puoi benissimo usare ciò che ti ho linkato io :) Poi se continui ad essere diffidente prova tu stesso,basta aprire il prompt dei comandi e scrivere ping "sito"

Deuced
19-02-2011, 15:33
ok,per curiosità l'ho testato io :D

Prima di installare lo script

2 62ms 64ms 63ms 213.205.16.197
3 63ms 63ms 64ms 94.32.137.193
4 69ms 69ms 69ms 213.205.23.37
5 69ms 69ms 71ms 213.205.17.61
6 77ms 78ms 77ms 94.32.135.145
7 104ms 77ms 77ms 77.67.82.229
8 79ms 81ms 79ms 89.149.184.113
9 80ms 79ms 79ms 77.67.72.250
10 89ms 95ms 81ms 209.85.249.54
11 79ms 80ms 80ms 72.14.232.63
12 80ms 79ms 79ms 74.125.232.115


dopo

2 64ms 64ms 63ms 213.205.16.197
3 64ms 65ms 63ms 94.32.137.209
4 69ms 68ms 69ms 213.205.23.37
5 68ms 69ms 70ms 213.205.17.61
6 78ms 77ms 77ms 94.32.135.145
7 77ms 76ms 77ms 77.67.82.229
8 79ms 78ms 80ms 89.149.184.113
9 80ms 80ms 79ms 77.67.72.250
10 80ms 80ms 80ms 209.85.249.54
11 92ms 79ms 79ms 72.14.232.63
12 79ms 80ms 80ms 74.125.232.113

Trova le differenze :D

Spulciando lo script ho visto che semplicemente modifica il valore di registro TCPackAcknowledgement di cui trovi una spiegazione qua http://support.microsoft.com/kb/328890/en-us ed in maniera approfondita googlando.Sostanzialmente fa ciò che ti avevo detto,il ping rimane sempre quello (ovviamente) ma con alcuni server migliora la gestione dei pacchetti ottimizzandoli.Ciò non vuol dire che ha abbassato il ping generale,ma solo quello tra client ed alcuni server (prima più alto di quello potenziale).Il ping rimane uguale,non si scappa!

mavelot
19-02-2011, 15:48
confermo da conoscitore del networking che trattasi di cagata spaziale, almeno al 98%.

Arael
19-02-2011, 15:57
Il tuo programma fa le stesse cose? Ma mi sembra anche tante altre cose.

Sai dirmi la seconda parte della guida cosa fa?

2° valore da aggiungere: TCPNoDelay
START/ESEGUI (digita regedit e dai invio) a questo punto recatevi al seguente settore:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\
All’interno di essa tasto destro e creiamo una nuova stringa Dword che chiameremo TCPNoDelay (mi raccomando mantenete le lettere maiuscole e minuscole cosi come è scritto). Una volta creata la modifichiamo col tasto destro e mettiamo il valore 1 in dati valore esadecimale.
Riavviate il pc per rendere effettive le modifiche apportate.
La prima parte della guida non è altro che lo script che ho trovato.

P.S: non ho capito bene dove bisogna inserire la stringa, e deve essere di tipo Dword?

Deuced
19-02-2011, 16:07
confermo da conoscitore del networking che trattasi di cagata spaziale, almeno al 98%.


nel dettaglio ecco ciò che fa nel rimanente 2%

The tweak below allows for tweaking or disabling Nagle's alogrithm. Disabling "nagling" allows for very small packets to be transferred immediately without delay. Note that disabling Nagle's algorithm is only recommended for some games, and it may have negative impact on file transfers/throughput. The dafault state (Nagling enabled) improves performance by allowing several small packets to be combined together into a single, larger packet for more efficient transmission. While this improves overall performance and reduces TCP/IP overhead, it may briefly delay transmission of smaller packets. Keep in mind that disabling Nagle's algorithm may have some negative effect on file transfers, and can only help reduce delay in some games. To implement this tweak, in the registry editor (Start>Run>regedit) find:

This setting configures the maximum number of outstanding ACKs in Windows XP/2003/Vista/2008:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-id}
There will be multiple NIC interfaces listed there, for example: {1660430C-B14A-4AC2-8F83-B653E83E8297}. Find the correct one with your IP address listed. Under this {NIC-id} key, create a new DWORD value:
TcpAckFrequency=1 (DWORD value, 1=disable, 2=default, 2-n=send ACKs if outstanding ACKs before timed interval. Setting not present by default).

For gaming performance, recommended is 1 (disable). For pure throughput and data streaming, you can experiment with values over 2. If you try larger values, just make sure TcpAckFrequency*MTU is less than RWIN, since the sender may stop sending data if RWIN fills witout acknowledgement.
Notes:
Reportedly, the above gaming tweak (disabling nagle's algorithm) can reduce WoW (World of Warcraft) latency by almost half!

Ecco spiegato perché con wow gli utenti avevano un dimezzamento del ping,è wow (e qualche altro gioco) che trae giovamento da questo tweak :) Il prezzo da pagare è un uso maggiore della cpu e soprattutto una performance peggiore della linea in download.L'ideale sarebbe attivarlo solo quando si gioca...

@Arael

detto in maniera semplice,se non sai cosa fai non modificare nulla senza aver almeno fatto un backup.Se usi tcp optimizer devi solo spostare la barra della connection speed fino a raggiungere i valori della tua linea (possibilmente reali e non teorici,per trovarli scarica qualcosa e moltiplica i Kb/s per 8) e poi in basso scegli "optimal" e poi apply changes.Così ti applicherà TUTTI i tweak possibili ed immaginabili.Vuoi provare i tweaks da te menzionati?Sempre nello stesso programmino scegli custom al posto di optimal,vai nella scheda adavanced settings e dove c'è la sezione gaming tweak selezioni disabled per tutte e 3 le funzioni (le prime 2 sono quelle da te postate).

Spero di esserti stato d'aiuto.Se non ti rivedremo più sul forum sapremo che hai giocato troppo con le impostazioni :sofico:

Arael
19-02-2011, 16:34
Uhm, grazie dell'incoraggiamento nell'ultima parte...

Comunque ho una Chiavetta Internet, non penso che impostare la velocità reale possa aiutare, in quando oggi va a 0.20, domani andrà a 0.60, di notte va a 1.4 ecc ecc.

Con quel programmino posso mettere solo le 3 impostazioni come scritto nelle guide? E soprattutto posso ripristinare tutto come prima?

Deuced
19-02-2011, 17:05
si scherza!Comunque sì ad entrambe le domande