IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Iperf

Per realitzar tests de network.

Opcions:

iperf -s (servidor).
iperf -c (client).
iperf -m (mostrarà el MTU -quantitat màxima de dades que es poden enviar- del TCP).
iperf -P (nombre de iperf que es poden executar alhora).

Exemples:

[email protected]:~$ iperf -c localhost
------------------------------------------------------------
Client connecting to localhost, TCP port 5001
TCP window size: 49.5 KByte (default)
------------------------------------------------------------
[  3] local 127.0.0.1 port 59861 connected with 127.0.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  13.5 GBytes  11.6 Gbits/sec
[email protected]:~$ iperf -c localhost -m
------------------------------------------------------------
Client connecting to localhost, TCP port 5001
TCP window size: 49.5 KByte (default)
------------------------------------------------------------
[  3] local 127.0.0.1 port 59948 connected with 127.0.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  12.2 GBytes  10.5 Gbits/sec
[  3] MSS size 16384 bytes (MTU 16424 bytes, unknown interface)
[email protected]:~$ iperf -c 192.168.202.103 -m
------------------------------------------------------------
Client connecting to 192.168.202.103, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.202.102 port 53603 connected with 192.168.202.103 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.01 GBytes    865 Mbits/sec
[  3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[email protected]:~$ iperf -c 192.168.202.103 -m -P 10  ---> executarem 10 iperf
------------------------------------------------------------
Client connecting to 192.168.202.103, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  5] local 192.168.202.102 port 53611 connected with 192.168.202.103 port 5001
[  6] local 192.168.202.102 port 53612 connected with 192.168.202.103 port 5001
[  7] local 192.168.202.102 port 53614 connected with 192.168.202.103 port 5001
[ 10] local 192.168.202.102 port 53617 connected with 192.168.202.103 port 5001
[  8] local 192.168.202.102 port 53615 connected with 192.168.202.103 port 5001
[ 11] local 192.168.202.102 port 53618 connected with 192.168.202.103 port 5001
[  4] local 192.168.202.102 port 53613 connected with 192.168.202.103 port 5001
[  9] local 192.168.202.102 port 53616 connected with 192.168.202.103 port 5001
[ 12] local 192.168.202.102 port 53619 connected with 192.168.202.103 port 5001
[  3] local 192.168.202.102 port 53610 connected with 192.168.202.103 port 5001
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec    131 MBytes    110 Mbits/sec
[  5] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  7]  0.0-10.0 sec    104 MBytes  87.1 Mbits/sec
[  7] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[ 10]  0.0-10.0 sec  97.8 MBytes  82.0 Mbits/sec
[ 10] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[ 11]  0.0-10.0 sec  92.6 MBytes  77.7 Mbits/sec
[ 11] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  9]  0.0-10.0 sec    106 MBytes  88.6 Mbits/sec
[  9] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  3]  0.0-10.0 sec  88.1 MBytes  73.9 Mbits/sec
[  3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  8]  0.0-10.0 sec  90.3 MBytes  75.7 Mbits/sec
[  8] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  4]  0.0-10.0 sec  96.2 MBytes  80.6 Mbits/sec
[  4] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[ 12]  0.0-10.0 sec  63.2 MBytes  52.9 Mbits/sec
[ 12] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  6]  0.0-10.0 sec  66.1 MBytes  55.3 Mbits/sec
[  6] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[SUM]  0.0-10.0 sec    935 MBytes    783 Mbits/sec
Amplebandajaumes2.png
Amplebandajaumes3.png
Amplebandajaumes4.png

PCI

El bus PCI pot ser un coll de botella. Les targetes PCI a 1G:

Gigabit network cards provide speeds of 1000Mb/s, or 125MB/s
PCI: Hi han diferents formats:
  • PCI slot de 32 bit a 33MHz: 133MB/s com que el bus es compartit, és més real contar 80MB/s en el millor dels casos. Per tant, es perden 45MB/s
  • 66MHz PCI slot: pot treballar am 266MB/s
  • 64 bit PCI slots: pot treballar a 532MB/s en un bus de 66MHz

Amb la comanda:

$ sudo lshw > lshw.txt

enviem tota la informació del hardware a un fitxer. Si després el mirem podem observar que:

*-pci:0
            description: PCI bridge
            product: N10/ICH 7 Family PCI Express Port 1
            vendor: Intel Corporation
            physical id: 1c
            bus info: [email protected]:00:1c.0
            version: 01
            width: 32 bits
            clock: 33MHz  ---> 133MB/s
            capabilities: pci pciexpress msi pm bus_master cap_list
            configuration: driver=pcieport
            resources: irq:24 ioport:1000(size=4096) memory:80000000-801fffff memory:80200000-803fffff(prefetchable)

Latència

Amplebandajaumes1.png

Jitter

Variació de la latència. Interessa un jitter baix (seria una latència estable). Un augment del trànsit és una causa d'un jitter alt.

Throughput

Velocitat real que acabarem tenint.

  • RTT: Round-Time Trip. Temps que tarda un paquet en anar i tornar (el valor que retorna la comanda Ping).
  • Maximum Segment Size (MSS). La quantitat de dades màxima per paquet.
  • TCP Window size. La mida de la finestra TCP als dos extrems de la connexió (per defecte 64k = 65536 Bytes = 524288 bits).

TCP throughput

Depèn de la latència i la finestra. Grandària de la finestra / latència en segons.

100ms 1ms 0,1ms
5.242,88bps 524.288bps 5.242.880bps

Smokeping

Fa gràfiques que mesuren la latència. Mesura el jitter.

Amplebandajaumes5.png

Instal·lació

$ sudo apt-get install smokeping

Una vegada instal·lat, per entrar dins de l'aplicació s'ha de ficar el següent al navegador:

http://localhost/cgi-bin/smokeping.cgi
Amplebandajaumes6.png

Fitxers de configuració

  • /etc/smokeping/config.d/Targets
*** Targets ***

probe = FPing

## You have to edit and uncomment all what you want below this.
# Please, refer to smokeping_config man page for more info
# The given adresses aren't real to avoid DoS.

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of 'A poorly \
        mantained site running Debian.'

+ Local

menu = Local
title = Local Network

++ LocalMachine

menu = Local Machine
title = This host
host = localhost

++ Company   ---> afegit (per mirar la màquina del company)

menu = Company
title = Sergi
host = 192.168.202.101

++ Gateway   ---> afegit

menu = Gateway
title = Iesebre
host = 192.168.0.4

++ Internet

menu = Internet ---> afegit title = Google host = 8.8.8.8

Exemple:

Amplebandajaumes7.png

El color verd indica que és correcte. El problema vindria si surten colors vermells. Això significaria que hi han pèrdues.

  • median rtt: temps que triga un paquet en anar i tornar.
  • packet loss: paquets perduts.
  • loss color: paquets perduts (interessa que estigui de color verd).

Fping

Per saber (només) si contesta o no.

Per exemple:

[email protected]:/etc/smokeping/config.d$ fping 192.168.202.101
192.168.202.101 is alive
  • Si volem enviar, per exemple, 5 pings:
[email protected]:/etc/smokeping/config.d$ fping -c 5 8.8.8.8
8.8.8.8 : [0], 84 bytes, 96.8 ms (96.8 avg, 0% loss)
8.8.8.8 : [1], 84 bytes, 105 ms (101 avg, 0% loss)
8.8.8.8 : [2], 84 bytes, 207 ms (136 avg, 0% loss)
8.8.8.8 : [3], 84 bytes, 63.4 ms (118 avg, 0% loss)
8.8.8.8 : [4], 84 bytes, 63.4 ms (107 avg, 0% loss)

8.8.8.8 : xmt/rcv/%loss = 5/5/0%, min/avg/max = 63.4/107/207
[email protected]:/etc/smokeping/config.d$ 
  • Enviar un ping cada 20ms. quatre-centes vegades:
[email protected]:/etc/smokeping/config.d$ fping -c 400 -p 20 8.8.8.8
8.8.8.8 : [0], 84 bytes, 211 ms (211 avg, 87% loss)
8.8.8.8 : [1], 84 bytes, 217 ms (214 avg, 77% loss)
8.8.8.8 : [2], 84 bytes, 222 ms (217 avg, 70% loss)
8.8.8.8 : [3], 84 bytes, 209 ms (215 avg, 63% loss)
8.8.8.8 : [5], 84 bytes, 194 ms (211 avg, 58% loss)
8.8.8.8 : [6], 84 bytes, 189 ms (207 avg, 53% loss)
8.8.8.8 : [8], 84 bytes, 182 ms (203 avg, 53% loss)
8.8.8.8 : [10], 84 bytes, 167 ms (199 avg, 50% loss)
8.8.8.8 : [12], 84 bytes, 157 ms (194 avg, 50% loss)
...
8.8.8.8 : [397], 84 bytes, 74.1 ms (102 avg, 23% loss)
8.8.8.8 : xmt/rcv/%loss = 400/305/23%, min/avg/max = 61.6/102/253
[email protected]:/etc/smokeping/config.d$ 
  • Canviar la mida del paquet:
[email protected]:/etc/smokeping/config.d$ fping -b 12 -c 20 -p 20 192.168.202.101
192.168.202.101 : [0], 40 bytes, 0.08 ms (0.08 avg, 0% loss)
192.168.202.101 : [1], 40 bytes, 0.10 ms (0.09 avg, 0% loss)
192.168.202.101 : [2], 40 bytes, 0.08 ms (0.08 avg, 0% loss)
192.168.202.101 : [3], 40 bytes, 0.09 ms (0.08 avg, 0% loss)
192.168.202.101 : [4], 40 bytes, 0.08 ms (0.08 avg, 0% loss)
192.168.202.101 : [5], 40 bytes, 0.07 ms (0.08 avg, 0% loss)
192.168.202.101 : [6], 40 bytes, 0.09 ms (0.08 avg, 0% loss)
192.168.202.101 : [7], 40 bytes, 0.08 ms (0.08 avg, 0% loss)
192.168.202.101 : [8], 40 bytes, 0.08 ms (0.08 avg, 0% loss)
192.168.202.101 : [9], 40 bytes, 0.08 ms (0.08 avg, 0% loss)
192.168.202.101 : [10], 40 bytes, 0.08 ms (0.08 avg, 0% loss)
192.168.202.101 : [11], 40 bytes, 0.08 ms (0.08 avg, 0% loss)
192.168.202.101 : [12], 40 bytes, 0.09 ms (0.08 avg, 0% loss)
192.168.202.101 : [13], 40 bytes, 0.20 ms (0.09 avg, 0% loss)
192.168.202.101 : [14], 40 bytes, 0.08 ms (0.09 avg, 0% loss)
192.168.202.101 : [15], 40 bytes, 0.07 ms (0.08 avg, 0% loss)
192.168.202.101 : [16], 40 bytes, 0.07 ms (0.08 avg, 0% loss)
192.168.202.101 : [17], 40 bytes, 0.09 ms (0.08 avg, 0% loss)
192.168.202.101 : [18], 40 bytes, 0.08 ms (0.08 avg, 0% loss)
192.168.202.101 : [19], 40 bytes, 0.06 ms (0.08 avg, 0% loss)

192.168.202.101 : xmt/rcv/%loss = 20/20/0%, min/avg/max = 0.06/0.08/0.20

Opcions avançades

Per ficar un limit al temps excedit, destinació rebutjada i els paràmetres problemàtics:

$ sudo bash -c "echo 6169 > icmp_ratemask"

Amb aquesta comanda limitem la quantitat màxima de pings en milisegons (en aquest cas, cada 10 milisegons).

$ sudo bash -c "echo 10 > icmp_ratelimit"

La capçalera ICMP comença després del bit 160 de la capçalera IP (llevat que s'usin opcions IP):

Bits 160-167 168-175 176-183 184-191
160 Tipus Codi Checksum
192 ID Seqüència

Alguns missatges de control permesos són (llista incompleta): 0 - Echo Reply 1 - Reservat 2 - Reservat 3 - Destination Unreachable 4 - Source Quench 5 - Redirect Message 6 - Direcció Alterna de Host 7 - Reservat 8 - Echo Request 9 - Anunci de Router 10 - Solicitud de Router 11 - Temps Excedit 12 - Problema de Parámetre 13 - Marca de temps 14 - Resposta de Marca de temps 15 - Petició d'Informació 16 - Resposta d'Informació 17 - Petició de Máscara de Direcció 18 - Resposta de Máscara de Direcció 19 - Reservat per a seguretat 20-29 - Reservat per a experiments de resistència 30 - Traceroute 31 - Error de Conversión de Datagrama 32 - Redirecció de Host Mòbil 33 - IPv6 On estàs? 34 - IPv6 On estic? 35 - Petició de Registre de Mòbil 36 - Resposta de Registre de Mòbil 37 - Petició de Nom de Domini 38 - Resposta de Nom de Domini 39 - SKIP Protocol d'Algorisme de Descobrimient 40 - Photuris, Errors de Seguretat 41-255 - Reservat

$ ping -t 1 8.8.8.8
  • -t: time to life: temps de vida del ping. Amb 1 només viurà un salt.
[email protected]:~$ ping -t 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.202.1 icmp_seq=1 Time to live exceeded  ---> segon salt i ja deixa de fer ping.
From 192.168.202.1 icmp_seq=2 Time to live exceeded
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 999ms

[email protected]:~$
Path MTU Discovery

És una tècnica estandaritzada en xarxes de computadors que permet determinar quina és la mida màxima de MTU que es pot utilitzar entre dos màquines d'Internet (connectades a nivell IP) normalment amb l'objectiu d'evitar la fragmentació de paquets.

$ ping -M do -s 1900 www.upc.edu
[email protected]:~$ ping -M do -s 1900 www.upc.edu
PING www.upc.es (147.83.2.135) 1900(1928) bytes of data.
From A202PC02.aula202.iesebre.com (192.168.202.102) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From A202PC02.aula202.iesebre.com (192.168.202.102) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From A202PC02.aula202.iesebre.com (192.168.202.102) icmp_seq=1 Frag needed and DF set (mtu = 1500)
[email protected]:~$ ping -M do -s 1472 www.upc.edu
PING www.upc.es (147.83.2.135) 1472(1500) bytes of data.
1480 bytes from upc.es (147.83.2.135): icmp_seq=1 ttl=241 time=85.1 ms
1480 bytes from barcelonatech-upc.eu (147.83.2.135): icmp_seq=2 ttl=241 time=123 ms
^C
--- www.upc.es ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 85.153/104.535/123.917/19.382 ms
[email protected]:~$ ping -M do -s 1473 www.upc.edu
PING www.upc.es (147.83.2.135) 1473(1501) bytes of data.
From A202PC02.aula202.iesebre.com (192.168.202.102) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From A202PC02.aula202.iesebre.com (192.168.202.102) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From A202PC02.aula202.iesebre.com (192.168.202.102) icmp_seq=1 Frag needed and DF set (mtu = 1500)

MTU és la mida del paquet IP (capçalera inclosa).

Hi ha una caxé de 10 minuts:

$ cat /proc/sys/net/ipv4/route/mtu_expires
600
(TCP, IP, MTU and MSS magic numbers)
65535 és la mida màxima d'un paquet IPv4 contant també la capçalera (limitat pels 16 bits dels camp total length)
1500	The biggest-sized IP packet that can normally traverse the Internet without getting fragmented. Typical MTU for non-PPPoE, 
non-VPN connections.
1492	The maximum MTU recommended for Internet PPPoE implementations.
1472	The maximum ping data payload before fragmentation errors are received on non-PPPoE, non-VPN connections.
1460	TCP Data size (MSS) when MTU is 1500 and not using PPPoE.
1464	The maximum ping data payload before fragmentation errors are received when using a PPPoE-connected machine.
1452	TCP Data size (MSS) when MTU is 1492 and using PPPoE.
576	Typically recommended as the MTU for dial-up type applications, leaving 536 bytes of TCP data.
48	The sum of IP, TCP and PPPoE headers.
40     The sum of IP and TCP headers.
28	The sum of IP and ICMP headers.

Si configurem la MTU a 3000, després podrem enviar paquets superiors als 1500 que venen per defecte sense fragmentar-los (sempre i quan no superin el límit de MTU que hem configurat)

[email protected]:~$ sudo ifconfig eth0 mtu 3000
[sudo] password for alumne: 
[email protected]:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 44:87:fc:94:06:0b  
          inet addr:192.168.202.102  Bcast:192.168.202.255  Mask:255.255.255.0
          inet6 addr: fe80::4687:fcff:fe94:60b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:3000  Metric:1
          RX packets:20608 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20214 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5762081 (5.7 MB)  TX bytes:4410065 (4.4 MB)
          Interrupt:26 Base address:0x8000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:42135 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42135 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:23639256 (23.6 MB)  TX bytes:23639256 (23.6 MB)

wlan1     Link encap:Ethernet  HWaddr f8:d1:11:74:82:1f  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

[email protected]:~$ ping -M do -s 2000 192.168.202.103   ---> fem ping al company que també té una MTU de 3000
PING 192.168.202.103 (192.168.202.103) 2000(2028) bytes of data.
2008 bytes from 192.168.202.103: icmp_seq=1 ttl=64 time=2.99 ms
2008 bytes from 192.168.202.103: icmp_seq=2 ttl=64 time=0.623 ms
2008 bytes from 192.168.202.103: icmp_seq=3 ttl=64 time=0.599 ms
2008 bytes from 192.168.202.103: icmp_seq=4 ttl=64 time=0.612 ms
^C
--- 192.168.202.103 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.599/1.206/2.992/1.031 ms
[email protected]:~$ 

Ntop

Instal·lació

$ sudo apt-get install ntop

Configuració

$ sudo dpkg-reconfigure ntop
Amplebandajaumes8.png
Amplebandajaumes9.png

Després executem ntop des de línia de comandes

Amplebandajaumes10.png

Introduïm la contrasenya. Cancel·lem la instal·lació amb Ctrl-C i reiniciem el servei amb:

$ sudo /etc/init.d/ntop restart

i després entrem al navegador amb:

http://localhost:3000
Amplebandajaumes11.png



multiget

Vegeu també

http://acacha.org/mediawiki/index.php/Ping#Ping

Enllaços externs

http://rescomp.stanford.edu/~cheshire/rants/Latency.html