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:

Fact Three: Current consumer devices have appallingly bad latency.

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
  • So: the hardware of the Internet can currently achieve within a factor of two of the speed of light.

Calcular per anar de Tortosa a Barcelona:

Jitter

El jitter, en telecomunicacions, es conegut com la variació de la latència.

Throughput

TCP

Una simple connexió TCP is veu molt afectada pels següents paràmetres:

  • 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ó (per defecte 64K- TODO Linux autotuning pot millorar aquest valor?)

Altres conceptes importants:

  • Maximum TCP Buffer (Memory) space: All operating systems have some global mechanism to limit the amount of system memory that can be used by any one TCP connection.
  • Socket Buffer Sizes: Most operating systems also support separate per connection send and receive buffer limits that can be adjusted by the user, application or other mechanism as long as they stay within the maximum memory limits above. These buffer sizes correspond to the SO_SNDBUF and SO_RCVBUF options of the BSD setsockopt() call
  • TCP Large Window Extensions (RFC1323): These enable optional TCP protocol features (window scale and time stamps) which are required to support large BDP paths.
  • TCP Selective Acknowledgments Option (SACK, RFC2018) allow a TCP receiver inform the sender exactly which data is missing and needs to be retransmitted.
  • Path MTU: The host system must use the largest possible MTU for the path. This may require enabling Path MTU Discovery (RFC1191, RFC1981, RFC4821).

Formula del càlcul del throughput

Formula per calcular el TCP throughput, límit :

TCP-Window-Size-in-bits / Latency-in-seconds = Bits-per-second-throughput

Mida de la finestra típica a Windows: 64KB = 65536 Bytes = 524288 bits

Iperf

Iperf és una eina que permet fer tests de velocitat (throughput) entre un client i un servidor. Proporciona les eines tant per al client com per al servidor.

Opcions generals:

  • -m, --print_mss: print TCP maximum segment size (MTU - TCP/IP header)

Opcions del client:

  • -c : Indica la IP del servidor iperf amb el qual volem fer un test.
  • -d (dual): injecta el flux en les dues direccions
  • -l: MIda del paquet. Útil per a UDP, no pas per a TCP. Quan més gran sigui el paquet menys overhead de les capçaleres.
  • -f (format) : format dels resultats. -fM seria megabytes, -fk seria kilobits/s.
  • -t (time/temps): temps que s'utilitzarà per fer el test en segons (per defecte són només 10 segons)
  • -i (interval): Interval de temps entre tests
  • -u (UDP): test amb UDP. Per defecte s'utilitza TCP.

Podem usar la comanda lshw per a obtenir dades (com el resultat és molt gran el podem guardar en un fitxer per a després buscar la informació):

sudo lshw > lshw.txt

Smokeping

Aplicació per a monitoritzar la latència de la xarxa.

La podem instal·lar amb la comanda:

$ sudo apt-get install smokeping

Per exemple i podem accedir amb:

http://localhost//smokeping/smokeping.cgi

Configurem el fitxer /etc/smokeping/config.d/Targets:

Reiniciem el servei per aplicar els canvis:

$ sudo /etc/init.d/smokeping restart

Gràfica d'exemple:

fping

Exemples:

$ fping 8.8.8.8

8.8.8.8 is alive
$ fping -c 5 8.8.8.8

8.8.8.8 : [0], 84 bytes, 154 ms (154 avg, 0% loss)
8.8.8.8 : [1], 84 bytes, 94.4 ms (124 avg, 0% loss)
8.8.8.8 : [2], 84 bytes, 93.7 ms (114 avg, 0% loss)
8.8.8.8 : [3], 84 bytes, 231 ms (143 avg, 0% loss)
8.8.8.8 : [4], 84 bytes, 62.9 ms (127 avg, 0% loss)

8.8.8.8 : xmt/rcv/%loss = 5/5/0%, min/avg/max = 62.9/127/231

Opcions avançades del ping

$ sudo ping -i 0.00000001 192.168.202.215

Fitxer /proc/sys/net/ipv4/icmp_ratelimit:

Fitxer /proc/sys/net/ipv4/icmp_ratemask:

ping com a traceroute

Es pot fer amb l'opció -R:

$ ping -nR www.iesebre.com
PING www.iesebre.com (192.168.0.9) 56(124) bytes of data.
64 bytes from 192.168.0.9: icmp_seq=1 ttl=63 time=0.517 ms
RR: 	192.168.202.113
	192.168.0.46
	192.168.0.9
	192.168.0.9
	192.168.202.1
	192.168.202.113

64 bytes from 192.168.0.9: icmp_seq=2 ttl=63 time=0.501 ms	(same route)
64 bytes from 192.168.0.9: icmp_seq=3 ttl=63 time=0.590 ms	(same route)

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.

Amb l'ordre traceroute podem esbrinar quins són els salts (nodes IP) pels que passa (PATH o camí) un paquet per comunicar dos màquines IP.

Per exemple:

$ ping -M do -s 1900 www.google.es
From A202PC13.aula202.iesebre.com (192.168.202.113) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From A202PC13.aula202.iesebre.com (192.168.202.113) icmp_seq=1 Frag needed and DF set (mtu = 1500)

En canvi:

$ ping -M do -s 1472 www.google.es
PING www-cctld.l.google.com (74.125.230.216) 1472(1500) bytes of data.
1480 bytes from par08s09-in-f24.1e100.net (74.125.230.216): icmp_seq=1 ttl=53 time=74.2 ms
1480 bytes from par08s09-in-f24.1e100.net (74.125.230.216): icmp_seq=2 ttl=53 time=73.9 ms

Per tant amb 1472 tenim que el MTU màxim hauria de der 1500:

1472 (mida del ping) + 8 bytes (capçalera ICMP) + 20 bytes (Capçalera IP)

Investigant:

$ sudo ifconfig eth2 mtu 7200 

NOTA: El MTU màxim d'una targeta de xarxa be limitat pel fabricant.

ICMP

ICMP (Internet Control Message Protocol, Protocol de Missatges de Control d'Interxarxa) és un protocol que per al seu funcionament utilitza directament el protocol IP dins de l'arquitectura TCP/IP. La seva funció és informar de l'estat i situacions d'error en el funcionament de la capa de xarxa, sobretot en aspectes com l'encaminament, congestió, fragmentació, etc.

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

ntop

L'origen del seu nom està en la comanda top (network top). La comanda top ens permet saber en temps real l'ús que s'està fent dels recursos d'una màquina per part dels processos.

Ntop ens indica a temps real quin ús s'està fent dels recursos de xarxa per part de les màquines d'una xarxa.

Instal·lació

Per instal·lar ntop en un sistema Debian/Ubuntu:

$ sudo apt-get install ntop

La instal·lació crea un usuari específic del sistema (usuari ntop). Aquest és l'usuari que correrà l'aplicació ntop.

Un cop instal·lat és necessari que configurem ntop:

$ sudo dpkg-reconfigure ntop

multiget

Vegeu també

Enllaços externs