DPD Conceptos fundamentales de redes
De Gleducar, http://www.gleducar.org.ar
Tabla de contenidos |
Configuración de redes
La tarjeta de red
La tarjeta de red (NIC) debe estar soportada por el kernel. Para determinar cuál es la tarjeta de red que estás utilizando, es importante mirar la información que brinda la salida del comando dmesg, revisar el archivo /proc/interrupts, ejecutar /sbin/lsmod o mirar /etc/modules.conf en busca de información acerca de la tarjeta de red.
Ejemplo:
dmesg Linux Tulip driver version 0.9.14 (February 20, 2001) PCI: Enabling device 00:0f.0 (0004 -> 0007) PCI: Found IRQ 10 for device 00:0f.0 eth0: Lite-On 82c168 PNIC rev 32 at 0xf800, 00:A0:CC:D3:6E:0F, IRQ 10. eth0: MII transceiver #1 config 3000 status 7829 advertising 01e1.
cat /proc/interrupts 0: 8729602 XT-PIC timer 1: 4 XT-PIC keyboard 2: 0 XT-PIC cascade 7: 0 XT-PIC parport0 8: 1 XT-PIC rtc 10: 622417 XT-PIC eth0 11: 0 XT-PIC usb-uhci 14: 143040 XT-PIC ide0 15: 180 XT-PIC ide1
/sbin/lsmod Module Size Used by tulip 37360 1 (autoclean)
En el ejemplo anterior el chipset de la tarjeta de red es Tulip, la dirección de entrada/salida (E/S) es 0xf800 y el número de interrupción (IRQ) es 10. Esta información es de utilidad si el módulo es incorrecto o si los recursos (E/S o IRQ) no están disponibles. También puede usarse para insertar un módulo con otra dirección de E/S (con el comando modprobe o insmod) o directamente cargarla en /etc/modules.conf (esto ahorrará que lo tengas que hacer cada vez que arranques tu computadora).
Información del host
Los siguientes archivos se utilizan para guardar información acerca de la red.
/etc/resolv.conf contiene la lista de los servidores de nombres de dominio (DNS)
nameserver 192.168.1.108 nameserver 192.168.1.1 search linuxit.org
/etc/HOSTNAME o /etc/hostname es dónde se guarda el nombre de la computadora o host.
Podés asociar un nombre a un interfaz de la red. Esto es implementado de diferentes maneras por las distintas distribuciones.
/etc/hosts contiene el número IP de tu computadora y una lista de las computadoras conocidas por tu computadora.
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost localhost.localdomain # other hosts 192.168.1.108 mesa mesa.domain.org 192.168.1.119 pico
/etc/sysconfig/network determina si la red debe arrancar de manera automática o no. (También puede contener el nombre de la computadora).
NETWORKING=yes
HOSTNAME=mesa.domain.org
GATEWAY=192.168.1.1
GATEWAYDEV=
/etc/sysconfig/network-scripts/ifcfg-eth0 Los parámetros de configuración para la tarjeta de red (interface) eth0.
DEVICE=eth0 BOOTPROTO=none BROADCAST=192.168.1.255 IPADDR=192.168.1.108 NETWORK=192.168.1.0 ONBOOT=yes USERCTL=no
Iniciar y detener la red
- Desde la línea de comando
La herramienta para configurar la tarjeta de red es /sbin/ifconfig. Una vez que cargó el módulo asociado a eth0, ubicado en /etc/modules.conf (ejemplo tulip.o), éste recibe una IP y una máscara de red válidos.
La tarjeta de red se puede arrancar o detener sin pérdida de información mientras se inserta el módulo en el núcleo. {{{revisar}}}
As a result the interface can be switched on and off without loosing this information as long as the kernel module is inserted.
Ejemplos: utilizando ifconfig.
/sbin/ifconfig eth0 192.168.10.1 netmask 255.255.128.0 /sbin/ifconfig eth0 down /sbin/ifconfig eth0 up
Otra herramienta es /sbin/ifup. Ésta lee la configuración del sistema en /etc/sysconfig/ y asigna los valores guardados para la/s tarjeta/s de red. El guión (script) para eth0 se llama ifcfg-eth0 y tiene que estar configurado. Si ifup tiene definido que la IP se asigne por DHCP, la tarjeta de red iniciará con ese protocolo, y de esa manera tomará una IP y máscara de red.
Ejemplos: utilizando ifup.
/sbin/ifup eth0 /sbin/ifup ppp0 /sbin/ifdown eth0
- Utilizando guiones de red
Cuando GNU/Linux está arrancado la tarjeta de red se enciende y lee el guión /etc/rc.d/init.d/network. Toda la información referente a la red se encuentra en el directorio /etc/sysconfig/.
Además el guión también lee las opciones de sysctl en /etc/sysctl.conf, desde éste archivo podés configurar el sistema como encaminador (Router). (El kernel aloja la opción de reencaminar paquetes (IP Forwarding)). Un ejemplo es la siguiente línea:
net.ipv4.ip_forward = 1
Este comando habilitará el reenvío de paquetes (IP forwarding) y el archivo /proc/sys/net/ipv4/ip_forward contendrá un número uno.
El guión de la red se reinicia con el siguiente comando:
/etc/rc.d/init.d/network restart
- Renovando la IP con DHCP
Las siguientes herramientas le solicitan al servidor DHCP una nueva IP:
- pump
- dhcpclient
El cliente DHCP se llama dhcpcd (no lo confundas con el demonio del servidor DHCP dhcpd).
Routing
Una diferencia notable cuando se esta usando un script de sistema como ifup en vez de ifconfig, es que las tablas routeo del sistema están configuradas en un caso y no en el otro.
Esto es por que el archivo /etc/sysconfig/network es leido, cuando un gateway por defecto es guardado, o el servidor de DHCP le envió esta información junto con el número de IP. Las tablas de ruteo son configuradas, controladas y cambiadas con la herramienta /sbin/route.
Ejemplos de ruteo:
Agrega una ruta estática a la red 10.0.0.0 a traves del dispositivo eth1 y usa 192.168.1.108 como el gateway para esa red:
/sbin/route add -net 10.0.0.0 gw 192.168.1.108 dev eth1
Agrega un gateway por defecto:
/sbin/route add default gw 192.168.1.1 eth0
Lista la tabla de ruteo del kernel:
/sbin/route -n
Kernel IP routing table
Destination Gateway Genmask Iface
192.168.1.0 0.0.0.0 255.255.255.0 eth0
10.1.8.0 192.168.1.108 255.0.0.0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 lo
0.0.0.0 192.168.1.1 0.0.0.0 eth0
- Gateway por defecto
- En la ultima lista, el campo Destination es una lista de redes. En particular, 0.0.0.0 significa ’cualquier lado’. Con esto en mente, hay dos IPs en el campo Gateway. Cual es el gateway por defecto?
- Para evitar tener que ingresar rutas estaticas a mano, demonios especiales gated o routed se corren para un update dinamico de las tablas de ruteo a traves de la red.
- Si usted pertenece a la red 192.168.10.0 y usted agrega una ruta a la red 192.168.1.0 usted puede encontrar que algunas computadoras de la segunda red no estan respondiendo. Esto es porque ninguna red se configuro desde la red 192.168.1.0 de vuelta a su host!! Este problema se resuelve usando ruteo dinamico.
- Rutas estaticas permanentes
- Si usted tiene muchas redes con mas de un gateway puede usar /etc/sysconfig/static-routes (en vez de demonios de ruteo). Estas rutas van a ser agregadas en tiempo de booteo por el script de red.
- Nombrando Redes
- Usando el archivo /etc/networks es posible asignar nombres a los numeros de red (para numeros de red vea redes TCP/IP en p. 48).
/etc/networks format network-name network-number aliases
Por ejemplo, el numero de red 10.0.0.0 puede llamarse office.org, siguiendo el formato antes mencionado. Luego es posible usar nombres de red con herramientas como route como se muestra a continuacion:
route add -net office.org netmask 255.0.0.0
10.8.10.34 192.168.1.2 network gw network gw 10.0.0.0 0.0.0.0 192.168.1.0 0.0.0.0 0.0.0.0 10.0.0.1 0.0.0.0 192.168.1.1 route add 192.168.1.0\ route add 10.0.0.0\ netmask 255.255.255.0\ netmask 255.0.0.0\ gw 10.0.0.111 gw 192.168.1.108 network gw network gw 10.0.0.0 0.0.0.0 192.168.1.0 0.0.0.0 192.168.1.0 10.0.0.111 10.0.0.0 192.168.1.108 0.0.0.0 10.0.0.1 0.0.0.0 192.168.1.1
Herramientas comunes de red
Aquí exponemos una pequeña lista de herramientas de red para cuando las conexiones tienen problemas.
ping
Esta herramienta envía un datagrama de petición de eco al host remoto (ICMP ECHO_REQUEST) y espera un datagrama de respuesta por parte de éste (ICMP ECHO_RESPONSE)
Opciones para ping
-b ping a broadcast address (pinguea a la dirección de difusión). -c N send N packets. (envía N paquetes) -q quiet mode: display only start and end messages. (Modo silencioso: muestra sólo los mensajes de inicio y de fin).
tcpdump
Esta herramienta se usa para analizar el tráfico de red para capturar paquetes de red. El siguiente comando ilustra algunas opciones:
Utilice tcpdump para detectar las interfaces de red:
tcpdump
Indique una interface de red para capturar paquetes desde allí:
tcpdump -i wlan0
Utilice expresiones regulares para encontrar paquetes específicos:
tcpdump host 192.168.10.1 and port 80
Note que en un entonrno cruzado, el router puede configurarse para enviar paquetes hacia la placa de red, solamente si los paquetes están enviados hacía esa interface. En ese caso no se puede analizar la red entera.
netstat
Dependiendo de las opciones utilizadas, este comando, muestra información sobre las conexiones de redes actuales, la tabla de ruteo o estadísticas de la interface.
Opciones para netstat:
-r igual que /sbin/route.
-I muestra una lista con los interfaces de red.
-n no resuelve las direcciones IP.
-p devuelve el número de proceso y el nombre de los programas que se ejecutan. (únicamente lo puede utilizar root).
-v modo verboso o con más datos
-c actualización contínua.
Ejemplo: Output of netstat –-inet –n :
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.168.1.10:139 192.168.1.153:1992 ESTABLISHED tcp 0 0 192.168.1.10:22 192.168.1.138:1114 ESTABLISHED tcp 0 0 192.168.1.10:80 192.168.1.71:18858 TIME_WAIT
En el listado superior podemos ver que la placa de red de nuestra computadora ha establecido conexiones en los puertos, 139, 22 y 80.
arp
Muestra el almacén (cache) de direcciones IP resueltas del kernel. Display the kernel address resolution cache.
Ejemplo:
arp Address HWtype HWaddress Iface 192.168.1.71 ether 00:04:C1:D7:CA:2D eth0
traceroute
Exhibe la ruta de un paquete desde nuestra computadora hasta llegar a la dirección IP o dominio que le indicamos. Traceroute fuerza a los encaminadores (routers) intermedios para que le devuelvan los mensajes de error (ICMP TIME_EXCEEDED) deliberadamente fija el valor del tiempo de vida (TTL Time to Live) del paquete demasiado bajo. Luego va incrementando el TTL para llegar al próximo router y recibe el datagrama TIME_EXEEDED aumentando nuevamente el TTL hasta llegar a la IP o al dominio.
Opciones para traceroute:
-f ttl
cambia el valor inicial del tiempo de vida de un paquete (Time To Live) al del primer paquete que sale.
-n
no resuelve las direcciones IP
-v
verboso. Modo detallado.
-w sec
fija en segundos el tiempo (timeout) estimado que se espera el regreso de los paquetes.
Redes TCP/IP
Números binarios y Octetos
Los octetos
La dirección IP que se asignan a una interfaz está compuesta por octetos. En el caso de IP versión 4 (IPv4) se componen de 4 octetos de 8 bits separados por puntos.
Ejemplo:
Decimal Binario 192.168.1.1 11000000.10101000.00000001.00000001
Dirección de Broadcast, Dirección de Red y Mascara de Red
Un número de IP contiene información sobre la dirección de host (o interfaz) y dirección de red.
La máscara de red
Queda un último detalle: existe una notación estándar para grupos de direcciones IP, a veces llamada «dirección de red». Igual que un número de teléfono puede ser separado en prefijo de área y el resto, podemos separar una dirección IP en el prefijo de red y el resto.
Antes se hablaba de «la red 1.2.3», refiriéndose a todas las 256 direcciones de la 1.2.3.0 a la 1.2.3.255. O si no bastaba con esa red, se hacía referencia a «la red 1.2», que implica todas las direcciones desde la 1.2.0.0 a la 1.2.255.255.
Normalmente no escribimos «1.2.0.0 - 1.2.255.255». En su lugar, lo abreviamos como «1.2.0.0/16». Esta extraña notación «/16» (se llama «netmask» - máscara de red) precisa de alguna explicación.
Cada número entre los puntos en una dirección IP se compone de 8 dígitos binarios (00000000 a11111111): los escribimos en la forma decimal para hacerlos más legibles para el ser humano. El «/16» significa que los primeros 16 dígitos binarios constituyen la dirección de red, o en otras palabras, «1.2.» es la parte de la red (recuerde: cada dígito representa 8 binarios). Esto significa que cualquier dirección IP que comience por «1.2» es parte de la red: «1.2.3.4» y «1.2.3.50» lo son, y «1.3.1.1» no.
Para hacer la vida más fácil, solemos usar redes que acaban en «/8», «/16» y «/24». Por ejemplo, «10.0.0.0/8» es una gran red que contiene las direcciones desde la 10.0.0.0 a la 10.255.255.255 (¡alrededor de 24 millones de direcciones!). 10.0.0.0/16 es más pequeña, y sólo contiene las direcciones IP de la 10.0.0.0 a la 10.0.255.255. 10.0.0.0/24 es aún más pequeña, y sólo contiene las direcciones 10.0.0.0 a 10.0.0.255.
Para terminar de hacerlo confuso, hay otras maneras de escribir máscaras de red. Podemos escribirlas como direcciones IP:
10.0.0.0/255.0.0.0
Para concluir, cabe señalar que la IP más alta de cualquier red está reservada para la «dirección de broadcasting», que se puede usar para enviar un mensaje a todas las máquinas de la red a la vez.
He aquí una tabla de máscaras de red:
| Forma Corta | Forma Completa | Máximo número Máquinas |
|---|---|---|
| /8 | /255.0.0.0 | 16,777,215 |
| /16 | /255.255.0.0 | 65,535 |
| /17 | /255.255.128.0 | 32,767 |
| /18 | /255.255.192.0 | 16,383 |
| /19 | /255.255.224.0 | 8,191 |
| /20 | /255.255.240.0 | 4,095 |
| /21 | /255.255.248.0 | 2,047 |
| /22 | /255.255.252.0 | 1,023 |
| /23 | /255.255.254.0 | 511 |
| /24 | /255.255.255.0 | 255 |
| /25 | /255.255.255.128 | 127 |
| /26 | /255.255.255.192 | 63 |
| /27 | /255.255.255.224 | 31 |
| /28 | /255.255.255.240 | 15 |
| /29 | /255.255.255.248 | 7 |
| /30 | /255.255.255.252 | 3 |
La dirección de la red
Cada red tiene un número el cual es necesario cuando seteamos el ruteo. El número de red es solo una porción del número. La porción de la dirección del cliente es reemplazada por cero. Número típico de red: 192.168.1.0
La dirección de broadcast (difusión)
La dirección de broadcast de una maquina es el rango de clientes/interfaces (hosts) que pueden ser accedidos desde la misma red.
Por ejemplo un cliente con una direcciónde broadcast 10.1.255.255 podrá acceder a cualquier máquina comprendida en el rango de IPs 10.1.x.x.
Típic dirección de broadcast: 192.168.1.255
Revisión sobre octetos
Algunas operaciones lógicas simples pueden aplicarse al broadcast, máscara y dirección de red.
Para obtener la dirección de red desde una IP, basta con realizar la operanción AND entre la misma y la máscara de red.
Dirección de red = IP AND Máscara de red
Similarmente se puede encontrar la dirección de broadcast realizando: la dirección de host OR la No máscara de red.
Dirección de Broadcast = IP OR not[Máscara de red]
AND y OR son operaciones lógicas que se realizan entre las formas binarias de esas direcciones.
Ejemplos:
Tomando la IP 192.168.3.5 con máscara de red 255.255.255.0, podemos hacer las siguientes operaciones:
11000000.10101000.00000011.00000101 (192.168.3.5)
AND
11111111.11111111.11111111.00000000 (255.255.255.000)
__________________________________________________________
11000000.10101000.00000011.00000000 (192.168.3.0)
11000000.10101000.00000011.00000101 (192.168.3.5)
OR
00000000.00000000.00000000.11111111 (000.000.000.255)
__________________________________________________________
11000000.10101000.00000011.11111111 (192.168.3.255)
Este es un claro ejemplo como con un número de IP y su máscara de red podemos conseguir toda la información relativa a la red y el host.
También existe un recurso muy bueno para hacer estos cálculos que se encuentra en http://www.subnet-calculator.com
Clases de Redes
Direcciones IP reservadas
Para redes privadas un rango determinados de IP se reservaron y que nunca se usan en Internet. Estas IPs reservadas se usan tipicamente en LANs. La siguiente tabla muestra varias clases privadas/reservadas. Regulado por la RFC 3300.
| Direcciones | Equivalente CIDR | Propósito | RFC | Clase | Direcciones posibles |
|---|---|---|---|---|---|
| 0.0.0.0 - 0.255.255.255 | 0.0.0.0/8 | Dirección Cero | RFC 1700 | A | 16,777,216 |
| 10.0.0.0 - 10.255.255.255 | 10.0.0.0/8 | Direcciones IP privadas | RFC 1918 | A | 16,777,216 |
| 127.0.0.0 - 127.255.255.255 | 127.0.0.0/8 | Dirección Localhost Loopback | RFC 1700 | A | 16,777,216 |
| 169.254.0.0 - 169.254.255.255 | 169.254.0.0/16 | Zeroconf | RFC 3330 | B | 65,536 |
| 172.16.0.0 - 172.31.255.255 | 172.16.0.0/12 | Direcciones IP privadas | RFC 1918 | B | 1,048,576 |
| 192.0.2.0 - 192.0.2.255 | 192.0.2.0/24 | Documentación y ejemplos | RFC 3330 | C | 256 |
| 192.88.99.0 - 192.88.99.255 | 192.88.99.0/24 | IPv6 to IPv4 relay Anycast | RFC 3068 | C | 256 |
| 192.168.0.0 - 192.168.255.255 | 192.168.0.0/16 | Direcciones IP privadas | RFC 1918 | C | 65,536 |
| 198.18.0.0 - 198.19.255.255 | 198.18.0.0/15 | Network Device Benchmark | RFC 2544 | C | 131,072 |
| 224.0.0.0 - 239.255.255.255 | 224.0.0.0/4 | Multicast | RFC 3171 | D | 268,435,456 |
| 240.0.0.0 - 255.255.255.255 | 240.0.0.0/4 | Reservado | RFC 1700 | E | 268,435,456 |
Clases de IP
- Clase A
- En una red de clase A, se asigna el primer octeto para identificar la red, reservando los tres últimos octetos (24 bits) para que sean asignados a los hosts, de modo que la cantidad máxima de hosts es 224 (menos dos: las direcciones reservadas de broadcast [tres últimos octetos a 255] y de red [tres últimos octetos a 0]), es decir, 16 777 214 hosts.
- Clase B
- En una red de clase B, se asignan los dos primeros octetos para identificar la red, reservando los dos octetos finales (16 bits) para que sean asignados a los hosts, de modo que la cantidad máxima de hosts es 216 (menos dos), o 65 534 hosts.
- Clase C
- En una red de clase C, se asignan los tres primeros octetos para identificar la red, reservando el octeto final (8 bits) para que sea asignado a los hosts, de modo que la cantidad máxima de hosts es 28 (menos dos), o 254 hosts.
Classless Subnets
EDITANDO MACHU
Subneting occurs when bits reserved for hosts are used for the network. This is determined by the netmask and results in networks being split.
For example a regular class A netmask 255.0.0.0 can be altered to allow the first 1-bit of the second byte to be part of the network. This results in a 9-bit network address and a 23-bit host address IP.
The binary netmask looks like
11111111.10000000.00000000.00000000 or 255.128.0.0
Slash Notation
A network can be described using a slash notation. The following notations are equivalent:
10.0.0.0/9 network 10.0.0.0, netmask 255.128.0.0
We will take the example of a class C address 192.168.1.0. We investigate a 25-bit then a 26-bit network.
25-bit network
Netmask: 11111111.11111111.11111111.10000000 or 255.255.255.128
Since Network = IP AND Netmask, we see from the netmask that two network addresses can be formed depending on the hosts range:
1. Host addresses in the 192.168.1.0xxxxxxx range result in a 192.168.1.0 network. We say the network number is 0 2. Host addresses in the 192.168.1.1xxxxxxx range result in a 192.168.1.128 network. We say the network number is 128
In both cases substitution of the x’s bye zeros or ones have a special meaning
Network address Substitute with 0’s Substitute with 1’s 0 Network: 0 Broadcast: 127 128 Network: 128 Broadcast: 255
We are left with the task of counting the number of hosts on each network. Since the host address is 7-bit long and we exclude 2 values (all 1’s and all 0’s) we have 27 – 2 = 126 hosts on each network or a total of 252 hosts.
Notice that if the default subnet mask 255.255.255.0 is used we have 254 available host addresses. In the above example 192.168.1.127 and 192.168.1.128 are taken for the first broadcast and second network respectively, this is why only 252 host addresses can be used.
26-bit network
Netmask: 11111111.11111111.11111111.11000000 or 255.255.255.192
Here again depending on the host’s address 4 different network addresses can be determined with the AND rule.
1. Host addresses in the 192.168.1.00xxxxxx range result in a 192.168.1.0 network. 2. Host addresses in the 192.168.1.01xxxxxx range result in a 192.168.1.64 network. 3. Host addresses in the 192.168.1.10xxxxxx range result in a 192.168.1.128 network. 4. Host addresses in the 192.168.1.11xxxxxx range result in a 192.168.1.192 network.
Substituting the x’s with 1’s in the numbers above give us the corresponding broadcast addresses: 192.168.1.63, 192.168.1.127, 192.168.1.191, 192.168.1.255
Each subnet has 26 – 2 = 62 possible hosts or a total of 248.
El grupo TCP/IP
Para Internet, el protocolo de red es el Internet Protocol (versión 4), o IP. No es el único que hay (tenemos otros como el Appletalk de Apple, IPX de Novell, DECNet de Digital y el NetBEUI de Microsoft) pero es el más ampliamente adoptado. Hay una nueva versión de IP denominada IPv6, pero aún no es tan común.
Para enviar un mensaje de una parte a otra del planeta, su computadora escribe un fragmento de Internet Protocol, lo envía por el módem, que usa algún protocolo de nivel de enlace de módems para enviarlo al otro módem al que está llamando, que posiblemente esté enchufado a un servidor terminal (básicamente una gran caja de módems), que lo envía a otro nodo dentro de la red del ISP (Proveedor de Servicios de Internet), que lo envía normalmente a otro nodo mayor, que lo manda al siguiente, y así sucesivamente. Un nodo que conecte dos o más redes se llama router y tendrá una interfaz para cada red.
Llamamos a este conjunto de protocolos una pila de protocolos, que a veces se representa de esta manera:
[ Aplicación: Controla Datos ] [ Capa de aplicación: Sirve Datos ]
| ^
v |
[ TCP: Controla la Retransmisión ] [ TCP: Controla la Retransmisión ]
| ^
v |
[ IP: Controla el Encaminamiento ] [ IP: Controla el Encaminamiento ]
| ^
v |
[ Enlace: Controla un solo Salto ] [ Enlace: Controla un solo Salto ]
| |
+---------------------------------------+
De manera que en el diagrama vemos un navegador (la Aplicación de la izquiereda) obteniendo una página web de un servidor web (la Aplicación de la derecha).
Para hacerlo utiliza el TCP (Transmission Control Protocol). Alrededor del 90% del tráfico de Internet hoy día es TCP, y se emplea para Web y correo electrónico.
De manera que el navegador hace una consulta mediante una conexión TCP al servidor web remoto: esto lo controla la capa TCP, que se la pasa a la capa IP, que se hace cargo de la dirección que tiene que seguir, y la pasa a la capa de enlace apropiada, que la transmite al otro extremo del enlace.
En el otro extremo, la capa de enlace la pasa a la capa IP, que comprueba que vaya destinado a esa máquina (si no, puede enviarla a otra capa de enlace diferente para que pase al siguiente nodo), se entrega a la capa TCP que, por último, se la manda al servidor.
De manera que tenemos lo siguiente:
- La aplicación (el navegador, o el servidor web en el otro extremo) decide con quién quiere hablar, (y qué le quiere enviar).
- La capa TCP envía paquetes especiales para iniciar la conversación con el otro extremo y entonces empaqueta los datos en «paquetes» TCP: un paquete es sólo un término para describir un grupo de datos que pasan a través de la red. La capa TCP delega este paquete en la capa IP: estará mandándoselo a la capa IP hasta que la capa TCP del otro extremo responda diciendo que lo ha recibido. Esto se llama «retransmisión», e implica gran cantidad de reglas complejas que deciden cuándo retransmitir, cuánto esperar, etc. También le da a cada paquete un número, lo que significa que el otro extremo podrá ponerlos en el orden correcto.
- La capa IP comprueba el destino del paquete, y averigua el siguiente nodo al que mandárselo. Este sencillo acto se llama «encaminamiento» (routing), y va desde lo realmente sencillo (si sólo tiene un módem, y no hay otra interfaz de red, todos los paquetes saldrán por ahí) a lo extremadamente complejo (si tiene 15 grandes redes conectadas directamente con usted).
| Nivel de aplicación | BitTorrent, FTP, HTTP, HTTPS, IMAP, ICQ, IRC, NFS, NNTP, POP3, RTP (protocolo), SIP, SMB/CIFS, SMTP, SNMP, SSH, SSL, Telnet, UUCP, ... |
| Nivel de transporte | DCCP, SCTP, SPX, TCP, UDP,... |
| Nivel de red | ARP, RARP, IP (IPv4, IPv6), X.25, ICMP, IGMP, NetBEUI, IPX, Appletalk... |
| Nivel de enlace | Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM, HDLC, PPP, Wi-Fi... |
Un vistazo a los protocolos
- IP
IP, de sus siglas en inglés Internet Protocol, es un protocolo no orientado a conexión usado tanto por el origen como por el destino para la comunicación de datos a través de una red de paquetes conmutados.
Los datos en una red basada en IP son enviados en bloques conocidos como paquetes o datagramas. En particular, en IP no se necesita ninguna configuración antes de que un equipo intente enviar paquetes a otro con el que no se había comunicado antes.
El Protocolo de Internet provee un servicio de datagramas no fiable (lo hará lo mejor posible pero garantizando poco). IP no provee ningún mecanismo para determinar si un paquete alcanza o no su destino y únicamente proporciona seguridad (mediante checksums o sumas de comprobación) de sus cabeceras y no de los datos transmitidos. Por ejemplo, al no garantizar nada sobre la recepción del paquete, éste podría llegar dañado, en otro orden con respecto a los demás paquetes, duplicado o simplemente no llegar. Si se necesita fiabilidad, esta es proporcionada por los protocolos de la capa de transporte, como TCP.
Si los datagramas superan el tamaño máximo negociado (MTU), en el tramo de red por el que va a circular podrá ser dividida en paquetes más pequeños, y reensamblada luego cuando sea necesario. Estos fragmentos podrán ir cada uno por un camino diferente dependiendo de como estén de congestianadas las rutas en cada momento.
Las cabeceras IP contienen las direcciones de las máquinas de origen y destino (direcciones IP), direcciones que serán usadas por los conmutadores de paquetes (switches) y los enrutadores (routers) para decidir el tramo de red por el que reenviarán los paquetes.
El IP es el elemento común en la Internet de hoy. El actual y más popular protocolo de red es IPv4. IPv6 es el sucesor propuesto de IPv4; poco a poco Internet está agotando las direcciones disponibles por lo que IPv6 utiliza direcciones de fuente y destino de 128 bits, muchas mas direcciones que las que provee IPv4 con 32 bits.
- TCP
El protocolo garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de puerto.
En la pila de protocolos TCP/IP, TCP es la capa intermedia entre el protocolo de internet (IP) y la aplicación. Habitualmente, las aplicaciones necesitan que la comunicación sea fiable y, dado que la capa IP aporta un servicio de datagramas no fiable, TCP añade las funciones necesarias para prestar un servicio que permita que la comunicación entre dos sistemas se efectúe:
- libre de errores.
- en orden.
- sin pérdidas.
- sin duplicaciones.
- UDP
User Datagram Protocol es un protocolo del nivel de transporte basado en el intercambio de datagramas. Permite el envío de datagramas a través de la red sin que se haya establecido previamente una conexión, ya que el propio datagrama incorpora suficiente información de direccionamiento en su cabecera. Tampoco tiene confirmación, ni control de flujo, por lo que los paquetes pueden adelantarse unos a otros: Y tampoco sabemos si ha llegado correctamente, ya que no hay confirmación de entrega o de recepción.
Su uso principal es para protocolos como DHCP, BOOTP, DNS y demás protocolos en los que el intercambio de paquetes de la conexion/desconexion son mayores o no son rentables con respecto a la información transmitida, así como para la transmisión de audio y vídeo en tiempo real, donde no es posible realizar retransmisiones por los estrictos requisitos de retardo que se tiene en estos casos.
- ICMP
El Protocolo de Control de Mensajes de Internet es uno de los protocolos centrales del conjunto de protocolos de Internet. Es usado principalmente por los Sistemas operativos de las computadoras en una red para enviar mensajes de error, indicando, por ejemplo, que un servicio determinado no está disponible o que un router o host no puede ser localizado.
ICMP difiere del propósito de TCP y UDP ya que generalmente no se utiliza directamente a nivel de usuario. La única excepción es la herramienta ping, que envía mensajes de petición Echo ICMP para determinar si un host está disponible y el tiempo que le toma a los paquetes en ir y regresar a ese host.
- PPP
El protocolo PPP permite establecer una comunicación a nivel de enlace entre dos computadoras. Generalmente, se utiliza para establecer la conexión a Internet de un particular con su proveedor de acceso a través de un modem telefónico. Ocasionalmente también es utilizado sobre conexiones de banda ancha (como PPPoE o PPPoA). Además del simple transporte de datos, PPP facilita dos funciones importantes:
- Autenticación. Generalmente mediante una clave de acceso.
- Asignación dinámica de IP. Los proveedores de acceso cuentan con un número limitado de direcciones IP y cuentan con más clientes que direcciones. Naturalmente, no todos los clientes se conectan al mismo tiempo. Así, es posible asignar una dirección IP a cada cliente en el momento en que se conectan al proveedor. La dirección IP se conserva hasta que termina la conexión por PPP. Posteriormente, puede ser asignada a otro cliente.
PPP también tiene otros usos, por ejemplo, se utiliza para establecer la comunicación entre un modem ADSL y el gateway del operador de telecomunicaciones. También se ha venido utilizando para conectar a trabajadores desplazados (por ej.: ordenador portátil) con sus oficinas, a través de un centro de acceso remoto de su empresa. Aunque está aplicación se está abandonando en favor de las redes privadas virtuales, por ser más seguras.
Servicios y puertos
La lista de servicios de red conocidos y sus relativos puertos se encuentra generalmente en /etc/services. La lista oficial es administrada por IANA (Autoridad de Asignación de Números de Internet).
Cuando el campo "puerto" tiene 16 bits, hay 65535 números disponibles. Los números del 1 al 1023 tienen puertos privilegiados y son reservados para servicios que corre el usuario root. Las aplicaciones más conocidas, escuchan en estos puertos.
Esta es la salida de un escaneo de puertos:
Port State Service 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 25/tcp open smtp 70/tcp open gopher 79/tcp open finger 80/tcp open http
Estos puertos abiertos pueden ser usados por una aplicación.
El archivo /etc/services y los principales puertos:
ftp-data 20/tcp ftp 21/tcp ssh 22/udp ssh 22/tcp telnet 23/tcp smtp 25/tcp mail domain 53/tcp domain 53/udp http 80/tcp # www is used by some broken pop-3 110/tcp # PostOffice V.3 sunrpc 111/tcp sftp 115/tcp uucp-path 117/tcp nntp 119/tcp usenet # Network News Transfer ntp 123/tcp # Network Time Protocol netbios-ns 137/tcp nbns netbios-ns 137/udp nbns netbios-dgm 138/tcp nbdgm netbios-dgm 138/udp nbdgm netbios-ssn 139/tcp nbssn imap 143/tcp # imap network mail protocol NeWS 144/tcp news # Window System snmp 161/udp snmp-trap 162/udp
