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)

Latència

  • Exemple de distància

A typical Ethernet card has a latency less than 1ms. The Internet backbone as a whole also has very good latency.Here's a real-world example:

   The distance from Stanford to Boston is 4320km.
   The speed of light in vacuum is 300 x 10^6 m/s.
   The speed of light in fibre is roughly 66% of the speed of light in vacuum.
   The speed of light in fibre is 300 x 10^6 m/s * 0.66 = 200 x 10^6 m/s.
   The one-way delay to Boston is 4320 km / 200 x 10^6 m/s = 21.6ms.
   The round-trip time to Boston and back is 43.2ms.
   The current ping time from Stanford to Boston over today's Internet is about 85ms:
   
  [[email protected]]$ ping -c 1 lcs.mit.edu
  PING lcs.mit.edu (18.26.0.36): 56 data bytes
  64 bytes from 18.26.0.36: icmp_seq=0 ttl=238 time=84.5 ms
Latencia2 r.png


Jitter

  • Jitter:ÉS LA VARIACIÓ DE LA LATÈNCIA(en el nostre cas)
  • Ens interessa que la latència sigui estable
  • El ping comprova la latència,el trànsit ha de ser estable per tenir una latència correcta
  • Si hi ha molt de trànsit la latència serà alta

Throughput

TCP

  • Round-Time Trip (RTT) time: és el temps que tarda una 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ó
  • Formula del càlcul del throughput
  • Tamany en bits de la finestra en bits / Latència en segons = Bits per segon-throughput


Acksyn1.png


  • Farem la prova d'omplir un fitxer de uns amb un valor de 1Gb per això utilitzarem la següent comanda

$ sudo dd if=/dev/zero of=/home/ramon/Escritorio/provaLatencia bs=1G count=1

[email protected]:~$ dd if=/dev/zero of=/home/ramon/Escritorio/provaLatencia bs=1G count=1
1+0 registros de entrada
1+0 registros de salida
1073741824 bytes (1,1 GB) copiados, 69,3992 s, 15,5 MB/s
100ms 1ms 0,1ms
5.242,88bps 524.288bps 5.242.880bps

Iperf

  • Serveix per realitzar testos de thourght tant per a TCP com per a UDP
  • La a continuació es mencionen algunes comandes de iperf
$ sudo iperf -s:Enjaguem el servidor
[email protected]:~$ sudo iperf -s
[sudo] password for ramon: 
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------


$ sudo iperf -c localhost
[email protected]:~$ iperf -c localhost
------------------------------------------------------------
Client connecting to localhost, TCP port 5001
TCP window size:  132 KByte (default)
------------------------------------------------------------
[  3] local 127.0.0.1 port 52972 connected with 127.0.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  11.3 GBytes  9.72 Gbits/sec


$ sudo iperf -m, --print_mss
  print TCP maximum segment size (MTU(1500) - (menos,resta) TCP/IP capçalera)


$ sudo iperf -c localhost -m
[email protected]:~$ iperf -c localhost -m
------------------------------------------------------------
Client connecting to localhost, TCP port 5001
TCP window size:  132 KByte (default)
------------------------------------------------------------
[  3] local 127.0.0.1 port 53094 connected with 127.0.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  10.1 GBytes  8.67 Gbits/sec
[  3] MSS size 16384 bytes (MTU 16424 bytes, unknown interface)
$ iperf -c 192.168.202.108 -m
[email protected]:~$ iperf -c 192.168.202.108 -m
------------------------------------------------------------
Client connecting to 192.168.202.108, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.202.107 port 33868 connected with 192.168.202.108 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  58.6 MBytes  49.1 Mbits/sec
[  3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)


[email protected]:~$ iperf -c 192.168.202.108 -m -P 10
------------------------------------------------------------
Client connecting to 192.168.202.108, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 10] local 192.168.202.107 port 33920 connected with 192.168.202.108 port 5001
[  4] local 192.168.202.107 port 33914 connected with 192.168.202.108 port 5001
[  5] local 192.168.202.107 port 33915 connected with 192.168.202.108 port 5001
[  6] local 192.168.202.107 port 33916 connected with 192.168.202.108 port 5001
[  8] local 192.168.202.107 port 33918 connected with 192.168.202.108 port 5001
[  7] local 192.168.202.107 port 33917 connected with 192.168.202.108 port 5001
[ 11] local 192.168.202.107 port 33921 connected with 192.168.202.108 port 5001
[  9] local 192.168.202.107 port 33919 connected with 192.168.202.108 port 5001
[ 12] local 192.168.202.107 port 33922 connected with 192.168.202.108 port 5001
[  3] local 192.168.202.107 port 33913 connected with 192.168.202.108 port 5001
[ ID] Interval       Transfer     Bandwidth
[ 12]  0.0-10.0 sec  12.5 MBytes  10.5 Mbits/sec
[ 12] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  4]  0.0-10.0 sec  10.2 MBytes  8.59 Mbits/sec
[  4] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  7]  0.0-10.0 sec  10.0 MBytes  8.38 Mbits/sec
[  7] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  3]  0.0-10.1 sec  11.8 MBytes  9.80 Mbits/sec
[  3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  5]  0.0-10.1 sec  13.9 MBytes  11.6 Mbits/sec
[  5] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[ 10]  0.0-10.1 sec  10.5 MBytes  8.73 Mbits/sec
[ 10] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  6]  0.0-10.1 sec  13.5 MBytes  11.2 Mbits/sec
[  6] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[ 11]  0.0-10.1 sec  12.1 MBytes  10.0 Mbits/sec
[ 11] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  8]  0.0-10.1 sec  11.1 MBytes  9.20 Mbits/sec
[  8] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[  9]  0.0-10.2 sec  10.5 MBytes  8.63 Mbits/sec
[  9] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
[SUM]  0.0-10.2 sec   116 MBytes  95.5 Mbits/sec
  • Fem una prova on transferim un fitxer d'1Gb de tamany,com veiem la velocitat és de 11.3MB/s
[email protected]:~/Escritorio$ scp provaLatencia [email protected]:/home/jbaucells/Escritorio
The authenticity of host '192.168.202.108 (192.168.202.108)' can't be established.
RSA key fingerprint is fc:8b:97:c0:ab:36:0e:01:c9:34:47:cc:26:8e:81:a6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.202.108' (RSA) to the list of known hosts.
[email protected]'s password: 
provaLatencia                                                                         100% 1024MB  11.3MB/s   01:31    


  • Fem la mateixa prova on transferim el mateix fitxer d'1 GB de tamany a traves d'http on la velocitat més o menys és molt semblant i la carrega


Provalatencia r11.png


IPERF amb UDP

Al client

[email protected]:~$ sudo iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  112 KByte (default)
------------------------------------------------------------


Al servidor

[email protected]:~$ iperf -u -c 192.168.202.108 -b 2000M
------------------------------------------------------------
Client connecting to 192.168.202.108, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  112 KByte (default)
------------------------------------------------------------
[  3] local 192.168.202.107 port 34686 connected with 192.168.202.108 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   114 MBytes  95.8 Mbits/sec
[  3] Sent 81484 datagrams
[  3] Server Report:
[  3]  0.0-10.0 sec   114 MBytes  95.7 Mbits/sec   0.391 ms    0/81483 (0%)
[  3]  0.0-10.0 sec  1 datagrams received out-of-order


Smokeping

Smokeping.png


  • Instal·lem el smokeping
$ sudo apt-get install smokeping
  • Un cop instal·lat anirem al navegador i ficarem el següent
http://localhost/cgi-bin/smokeping.cgi
  • On podrem veure el següent contingut


SmokepingR1.png


  • Editem el fitxer Targets per tal de configurar les màquines que volem que ens mesuri la latència
$ sudo nano 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
menu = Company1
title = Host Company1
host = 192.168.202.106


++ Gateway
menu = Gateway
title = Gateway Aula 20.1
host = 192.168.202.1
+ Internet
menu = Internet
title = Internet Aula 20.1
host = 8.8.8.8
  • Un cop l'hem editat i guardat reiniciem el servei
$ sudo /etc/init.d/smokeping restart



Guifismokeping.png

Fping

  • Provem la comanda fping
[email protected]:~$ fping 8.8.8.8
8.8.8.8 is alive
  • Podem veure totes les opcions que soporta el fping amb la comanda

[email protected]:~$ man fping

  • Amb l'opció -p li especifiquem els mil·lísegons en quan el normal és 1000ms(1 segon)i amb la opció -c especifiquem les vegades que farà ping
[email protected]:~$ fping -c 400 -p 20 8.8.8.8
  • Cambiem la mida del paquet al fer un fping
[email protected]:~$ fping -b 655 -c 20 -p 20 8.8.8.8
8.8.8.8 : [0], 92 bytes, 82.0 ms (82.0 avg, 66% loss)
8.8.8.8 : [1], 92 bytes, 70.8 ms (76.4 avg, 50% loss)
8.8.8.8 : [2], 92 bytes, 85.5 ms (79.4 avg, 40% loss)
8.8.8.8 : [3], 92 bytes, 75.5 ms (78.5 avg, 33% loss)


  • Accedim al directori següent
$ sudo cd /proc/sys/net/ipv4/
  • On comprovem els fitxers que conté
$ sudo ls |grep icmp
icmp_echo_ignore_all
icmp_echo_ignore_broadcasts
icmp_errors_use_inbound_ifaddr
icmp_ignore_bogus_error_responses
icmp_ratelimit
icmp_ratemask
[sudo] password for ramon: 
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.023 ms
64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.015 ms
64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.021 ms
64 bytes from localhost (127.0.0.1): icmp_req=4 ttl=64 time=0.022 ms

ICMP

Bits 160-167 168-175 176-183 184-191
160 Tipus Codi Checksum
192 ID Seqüència
  • Tipus - Tipus ICMP especificat a sota.
  • Codi - més concreció del tipus ICMP; i.e: un ICMP Destination Unreachable pot tenir aquest camp amb valor des del 1 al 15, amb diferent significat cadascun.
  • Checksum - Codi de comprovació d'error calculat a partir de la capçalera ICMP+dades, amb valor 0 per aquest camp.
  • ID - Conté el valor de l'ID, hauria de ser retornat en cas de ECHO REPLY.
  • Seqüència - Conté el valor de seqüència, hauria de ser retornat en cas de ECHO REPLY.

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

Path MTU Discovery

Path MTU Discovery(PMTUD) o PMTUD é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.

  • El MTU més petit és el que ens afectara en el nostre rendiment
  • ping -M do -s 1900 192.168.202.1
From 192.168.202.107 icmp_seq=1 Frag needed and DF set (mtu = 1500)
From 192.168.202.107 icmp_seq=1 Frag needed and DF set (mtu = 1500)
From 192.168.202.107 icmp_seq=1 Frag needed and DF set (mtu = 1500)
From 192.168.202.107 icmp_seq=1 Frag needed and DF set (mtu = 1500)
From 192.168.202.107 icmp_seq=1 Frag needed and DF set (mtu = 1500)
From 192.168.202.107 icmp_seq=1 Frag needed and DF set (mtu = 1500)
  • Fem un ping amb el MTU a 1900,com ens passem del MTU de 1500 s'hauran de fragmentar els paquets,ho podem veure pel wireshark
[email protected]:~$ ping -s 1900 www.upc.edu
Wireshark r2.png


[email protected]:~$ ping -M do -s 1900 www.upc.edu
From A202PC07.aula202.iesebre.com (192.168.202.107) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From A202PC07.aula202.iesebre.com (192.168.202.107) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From A202PC07.aula202.iesebre.com (192.168.202.107) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From A202PC07.aula202.iesebre.com (192.168.202.107) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From A202PC07.aula202.iesebre.com (192.168.202.107) icmp_seq=1 Frag needed and DF set (mtu = 1500)

NOTA: Els valors poden canviar segons el tipus de connexió a Internet. Consulteu la següent taula de nombres màgics:

(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.


  • Augmentem el MTU
[email protected]:~$ sudo ifconfig eth0 mtu 3000
  • Fem un ping a la ip 192.168.202.108
[email protected]:~$ ping -c 4 -M do -s 2500 192.168.202.108
PING 192.168.202.108 (192.168.202.108) 2500(2528) bytes of data.
2508 bytes from 192.168.202.108: icmp_req=1 ttl=64 time=0.913 ms
2508 bytes from 192.168.202.108: icmp_req=2 ttl=64 time=0.875 ms
2508 bytes from 192.168.202.108: icmp_req=3 ttl=64 time=0.877 ms
2508 bytes from 192.168.202.108: icmp_req=4 ttl=64 time=0.915 ms
  • Si ens passem del MTU establert al principi o sigui de 3000,llavors ens dirà que tenim que fragmentar els paquets
[email protected]:~$ ping -c 4 -M do -s 3001 192.168.202.108
PING 192.168.202.108 (192.168.202.108) 3001(3029) bytes of data.
From 192.168.202.107 icmp_seq=1 Frag needed and DF set (mtu = 3000)
From 192.168.202.107 icmp_seq=1 Frag needed and DF set (mtu = 3000)
From 192.168.202.107 icmp_seq=1 Frag needed and DF set (mtu = 3000)
From 192.168.202.107 icmp_seq=1 Frag needed and DF set (mtu = 3000)


NTOP

  • Instal·lació del Ntop
[email protected]:~$ sudo apt-get install ntop
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
 libjs-mochikit ntop-data
Paquetes sugeridos:
 graphviz geoip-database-contrib
  • Ens demanarà la contrasenya del administrador


Ntopr1.png


  • Fem un reconfigure
$ sudo dpkg-reconfigure ntop


  • Us preguntarà per les interfícies que voleu monitoritzar:


Ntopr2.png



Ntopr3.png



  • Vegeu També

Iperf Jitter

  • Enllaços externs

stanford latency