|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2005
Messaggi: 2969
|
Quanta banda per gli acknowledgements?
Vorrei sapere e gradirei molto se riusciste a trovarmi un link che spieghi approfonditamente, quanta banda in upload serve per scaricare ad una certa velocità in download, se si utilizza il protocollo TCP/IP.
Forse questa banda dipende anche dal numero di connessioni aperte più che dalla banda complessiva in download oppure dall'RWIN? Queste ultime considerazioni le faccio solo a intuito, se qualcuno sapesse spiegarmi meglio la questione, apprezzerei. Questo perché vorrei fare un fine-tuning della banda che rendo disponibile in upload nei software p2p, ma non vorrei una risposta tipo metti l'80% dell'up, perché non può essere corretto dato che per esempio: a 2048/256 si hanno 51Kbit/s disponibili per 2048 kbps in download. Quindi un rapporto di 2.5:100 mentre a 20480/1024 (non guardatemi strano.. ![]() Mentre logicamente suppongo che questo rapporto dovrebbe avere un valore fisso o variabile secondo quello che ho supposto sopra e non secondo la banda che ti rende disponibile l'ISP. ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2005
Messaggi: 2969
|
Up per domattina.
Spero di trovare qualcuno esperto che abbia voglia di rispondere, appena sveglio. ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
|
Più che allocare una certa quota della banda, secondo me sarebbe più utile assegnare una maggiore priorità ai pacchetti ACK in modo da poter essere smistati più velocemente rispetto agli altri, che poi è effettivamente quello che si vede fare in giro.
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jun 2005
Messaggi: 2969
|
Quote:
![]() Cosa intendi per "in giro"? E come viene realizzato? Possibile con il ToS? Ho un router compatibile con QoS e ToS per fortuna. Mi chiede quale numero da 0 a 63 impostare con priorità alta. Siccome il P2P che uso supporta il ToS, potrebbe essere proprio che lo prova a sfruttare per quello: come faccio a sapere qual'è il tipo di servizio tra questi 64? Comunque aspetto ancora dei link per maggiori spiegazioni. ![]() |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
|
Dovresti leggere il manuale del tuo router, anche se credo che con quel range di valori si intenda assegnare priorità maggiore a valori minori.
Se ti interessa approfondire in generale sul Type of Service (ToS) puoi leggere la relativa RFC Usando Gentoo potresti creare delle regole di Quality of Service (QoS) via software, sfruttando traffic control, vedi http://www.netfilter.org/ the packet filtering framework inside Linux Kernel http://lartc.org/ Linux Advanced Routing & Traffic Control http://www.ipp2p.org/ peer-to-peer (P2P) data in IP traffic http://l7-filter.sourceforge.net/ classifier for Linux's Netfilter http://www.mastershaper.org/ network traffic shaper http://www.faqs.org/docs/Linux-HOWTO...HTB-HOWTO.html Traffic-Control-tcng-HTB-HOWTO http://luxik.cdi.cz/%7Edevik/qos/htb/ HTB Home http://linux-net.osdl.org/index.php/Bonding Bonding http://www.pluto.it/files/ildp/HOWTO...WTO/index.html Bandwidth-Limiting-HOWTO http://www.docum.org/docum.org/ document for Lartc HOWTO http://forums.gentoo.org/viewtopic-t-225863d.html Bandwidth limiting howto with Gentoo Io per il mio computer che fa da router ho scritto questo script Codice:
#!/bin/sh # #************ DEFINIZIONI GENERICHE ************ # upload rate in kbit/s # (Set 5% - 10% lower than *measured* line speed ) UPLOAD=384 echo 'Upload = '$UPLOAD # absolute paths IF=/sbin/ifconfig IP=/sbin/iptables TC=/sbin/tc # network interfaces ETH="eth0" # WAN interface LAN="eth1" # LAN interface # maximum transmission unit MTU=1500 # length of burst buffers and udp packets # (must be larger than kernel jiffy of 10ms) DBURST_D=10 DBURST_U=10 UDP_LENGTH=128 #************ DEFINIZIONI PORTE **************** # game ports GAME_PORTS="27000:30000" # p2p server ports LOW_TCP_PORTS="4662,49000:49300" LOW_UDP_PORTS="4672,4665,49000:49300" # p2p client ports LOW_TCP_PORTS2="4801,4901" LOW_UDP_PORTS2="4802,4902" #*********************************************** case $1 in #**************** START ************************ start) #*********************************************** echo '' echo '****** Initialiazing bandwidth shaping ******' echo '' $IF $ETH txqueuelen 1000 mtu $MTU #************ RESET QOS *********************** echo 'Remove queuing disciplines from all interfaces' sed -n 's/ *\(.*\):.*/\1/p' /proc/net/dev | while read INTERFACE; do tc qdisc del dev $INTERFACE root >&- 2>&- done #*********************************************** echo '' echo '****** Setting mangle table definitions ******' echo '' echo 'Restoring any saved connection mark if not already marked' $IP -t mangle -A OUTPUT -m mark --mark 0 -j CONNMARK --restore-mark #echo 'Setting normal priority for server unsorted traffic' # $IP -t mangle -A OUTPUT -m mark --mark 0 -j MARK --set-mark 3 echo 'Setting high priority for client-to-server traffic' $IP -t mangle -A PREROUTING -i $LAN -j MARK --set-mark 2 echo 'Setting highest priority for gaming' $IP -t mangle -A POSTROUTING -p udp -m multiport --dport $GAME_PORTS -j MARK --set-mark 1 echo 'Setting ACK Packets' $IP -t mangle -A OUTPUT -o $ETH -j MARK -p tcp -m length --length :128 --tcp-flags SYN,RST,ACK ACK --set-mark 1 $IP -t mangle -A POSTROUTING -o $ETH -j MARK -p tcp -m length --length :128 --tcp-flags SYN,RST,ACK ACK --set-mark 1 echo 'Setting highest priority for icmp protocol (ping)' $IP -t mangle -A OUTPUT -p icmp -j MARK --set-mark 1 $IP -t mangle -A POSTROUTING -p icmp -j MARK --set-mark 1 echo 'Setting highest priority for TOS Minimize-Delay' $IP -t mangle -A OUTPUT -j MARK -m tos --tos Minimize-Delay --set-mark 1 $IP -t mangle -A POSTROUTING -j MARK -m tos --tos Minimize-Delay --set-mark 1 echo 'Setting small UDP packets (most likely games)' [ "$UDP_LENGTH" -gt 0 ] && $IP -t mangle -A POSTROUTING -p udp -m length --length :$UDP_LENGTH -j MARK --set-mark 1 echo 'Setting lowest priority for p2p' $IP -t mangle -A POSTROUTING -j MARK -p tcp -m multiport --sports $LOW_TCP_PORTS2 --set-mark 4 $IP -t mangle -A POSTROUTING -j MARK -p udp -m multiport --sports $LOW_UDP_PORTS2 --set-mark 4 #$IP -t mangle -A POSTROUTING -j MARK -m ipp2p --edk --bit --set-mark 4 $IP -t mangle -A OUTPUT -j MARK -p tcp -m multiport --sports $LOW_TCP_PORTS --set-mark 4 $IP -t mangle -A OUTPUT -j MARK -p udp -m multiport --sports $LOW_UDP_PORTS --set-mark 4 #************ HFSC SCHEDULER ********************** echo '' echo '****** Setting hfsc root ******' echo '' # Calculate MTU duration DMTU_U=$((8*$MTU/$UPLOAD)) # Make sure burst duration is at least MTU [ $DBURST_U -lt $((1*$DMTU_U)) ] && DBURST_U=$((1*$DMTU_U)) echo 'Attaching egress queuing discipline to QoS interface' tc qdisc add dev $ETH root handle 1: hfsc default 40 tc class add dev $ETH parent 1: classid 1:1 hfsc sc rate ${UPLOAD}kbit ul rate ${UPLOAD}kbit tc class add dev $ETH parent 1:1 classid 1:10 hfsc sc m1 $(($UPLOAD*10/10))kbit d ${DBURST_U}ms m2 $(($UPLOAD*5/10))kbit tc class add dev $ETH parent 1:1 classid 1:20 hfsc sc m1 $(($UPLOAD*8/10))kbit d ${DBURST_U}ms m2 $(($UPLOAD*2/10))kbit tc class add dev $ETH parent 1:1 classid 1:30 hfsc sc m1 $(($UPLOAD*5/10))kbit d ${DBURST_U}ms m2 $(($UPLOAD*2/10))kbit tc class add dev $ETH parent 1:1 classid 1:40 hfsc sc m1 $(($UPLOAD*0/10))kbit d ${DBURST_U}ms m2 $(($UPLOAD*1/10))kbit echo 'Setting sfq queque' tc qdisc add dev $ETH parent 1:10 sfq quantum $MTU perturb 10 tc qdisc add dev $ETH parent 1:20 sfq quantum $MTU perturb 10 tc qdisc add dev $ETH parent 1:30 sfq quantum $MTU perturb 10 tc qdisc add dev $ETH parent 1:40 sfq quantum $MTU perturb 10 echo 'Setting traffic control filter' tc filter add dev $ETH parent 1: prio 1 protocol ip handle 1 fw flowid 1:10 tc filter add dev $ETH parent 1: prio 2 protocol ip handle 2 fw flowid 1:20 tc filter add dev $ETH parent 1: prio 3 protocol ip handle 3 fw flowid 1:30 tc filter add dev $ETH parent 1: prio 4 protocol ip handle 4 fw flowid 1:40 ;; #************* STOP **************************** stop) echo '****** Stopping bandwidth shaping ******' echo 'Cleaning mangle table and reset traffic control' $IP --table mangle --flush $TC qdisc del dev $ETH root ;; #************* SHOW SETUP ********************** show) echo "" echo "eth0:" $TC qdisc show dev $ETH echo "" $TC class show dev $ETH echo "" $TC filter show dev $ETH echo "" ;; #************* SHOW STATISTICS ***************** show-s) echo "" echo "eth0:" $TC -s qdisc show dev $ETH echo "" $TC -s class show dev $ETH echo "" $TC -s filter show dev $ETH echo "" ;; #*********************************************** restart|force-reload) $0 stop sleep 1 $0 start ;; #*********************************************** *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|show|show-s}" >&2 echo "Eg: invoke-rc.d tc start" >&2 exit 1 ;; #*********************************************** esac exit 0 #************** END **************************** ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jun 2005
Messaggi: 2969
|
Bene, ora ho un bel po'di materiale da studiarmi!!
![]() Adsl-optimizer lo metterò anche io!! Penso che mi iscriverò a quel thread! Grazie Devil! ! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:23.