Vous êtes sur la page 1sur 29

¿Qué es el ICMP?

Aspectos destacados del protocolo de mensajes

Para intercambiar datos de estado o mensajes de error, los nodos recurren


al Internet Control Message Protocol (ICMP) en las redes TCP/IP.
Concretamente, los servidores de aplicaciones y las puertas de acceso como
los routers, utilizan esta implementación del protocolo IP para devolver
mensajes sobre problemas con datagramas al remitente del paquete. Aspectos
como la creación, la funcionalidad y la organización dentro de la amplia gama
de protocolos de Internet se especificaron en 1981 en la RFC 792. En el caso
de la sexta versión del Internet Protocol (IP), la implementación
específica ICMPv6 fue definida en la RFC 4443.

Por definición, ICMP es un protocolo autónomo aun cuando los diferentes


mensajes están incluidos en paquetes IP tradicionales. Para tal fin, el
protocolo de Internet trata a la implementación opcional como un protocolo de
capas superiores. Los diversos servicios de red que se suelen utilizar hoy en
día, como traceroute o ping, se basan en el protocolo ICMP.

¿Cómo funciona ICMP?

Para poder entender cómo funciona el protocolo, es necesario echar un vistazo


a la construcción de la cabecera del Internet Control Message Protocol,
vinculada directamente con la del IP, aunque se muestra en el campo
“Protocol” de IP mediante la inserción del número de protocolo, que puede ser
1 o 58 (ICMPv6). El campo de la cabecera del Internet Control Message
Protocol no es, sin embargo, tan amplio y tiene la siguiente forma:

El primer campo de 8 bits “Tipo” determina el tipo de mensaje al que hace


referencia el paquete ICMP correspondiente. Este dato puede especificarse por
medio del campo “Código”, que tiene una longitud de 8 bits. Así, un mensaje
ICMP del tipo 3 indica que no se ha alcanzado el objetivo del paquete de
datos, mientras que el código de este dato precisa y ofrece información acerca
de si la red de destino (0), el host deseado (1) o el puerto esperado (3) no ha
respondido a la solicitud. Tras los datos sobre el tipo de mensaje se encuentra
la suma de verificación de ICMP, que garantiza la exactitud del mensaje. Esta
se forma de igual manera que la suma de verificación de otros protocolos
estándar (IP, UDP, TCP).

Por último aparecen los datos del protocolo ICMP que se crean y estructuran
de manera muy diferente en función del tipo y de la instancia
desencadenante. A menudo también se especifican aquí la cabecera IP y los
primeros 64 bits del paquete de datos que es responsable del mensaje de error
o de la solicitud de estado. En el llamado tunneling de ICMP, este campo se
utiliza para otros fines, como puede ser enviar datos de usuario bajo el radar de
los cortafuegos o para establecer un canal de comunicación entre dos
ordenadores.

¿Qué tipos de paquetes ICMP existen?

Debido a la longitud del campo de 8 bits, en teoría son posibles 256 tipos de
mensajes ICMP diferentes, de los que se asignan alrededor de 40 (incluidos
algunos representantes ya obsoletos) y algunos están bloqueados para el uso
meramente experimental. No se asignan, sin embargo, gran parte de los
números (42-252), sino que en principio solo se reservan. La asignación de los
números es responsabilidad de la IANA (Internet Assigned Numbers
Authority), que también regula la clasificación de los espacios para las
direcciones IP y para los puertos. En la siguiente tabla aparece una
recopilación de los tipos de paquetes más importantes basados en el Internet
Control Message Protocol:

Tipo Tipo Nombre del Código Descripción


ICMP ICMPv6 tipo
129 Echo Reply Respuesta a un ping de red para comprobar la
accesibilidad
3 1 Destination 0–15 Mensaje ICMP que informa acerca de, por
Unreachable ejemplo, la accesibilidad de red de los
componentes del campo “Código” (red,
protocolo, puerto, host), sobre problemas de
enrutamiento o sobre el bloqueo por parte de los
cortafuegos
5 137 Redirect 0–3 Mensaje sobre el redireccionamiento de un
Message paquete para la red indicada (0), para el host
escogido (1), para el servicio especificado y para
la red (2) o para el servicio y host especificados
(3)
8 128 Echo Request Ping de red
9 134 Router Lo utilizan los routers para informarse acerca de
Advertisement los diferentes clientes de red
11 3 Time Exceeded 0 o 1 Informe de estado que o bien indica que el
tiempo de vida (Time to Live, TTL) de un paquete
(0) o el tiempo de espera para el ensamblaje de
paquetes IP (1) ha expirado
13 13 Timestamp Dota al paquete IP de una marca de tiempo que
se corresponde con el momento del envío y que
es de utilidad para la sincronización de dos
ordenadores
14 - Timestamp Mensaje de respuesta a una petición de marca
Reply de tiempo enviado por el destinatario tras la
recepción de la misma
Tipo Tipo Nombre del Código Descripción
ICMP ICMPv6 tipo
30 - Traceroute Tipo de mensaje ICMP obsoleto que se utilizaba
para el seguimiento de la ruta de un paquete de
datos en la red. Hoy en día se utilizan “Echo
Request” y “Echo Reply” para estos fines

Utilización de ICMP y de ICMPv6

El protocolo ICMP es esencial para la comunicación en redes IP, en las que los
routers son los que lo utilizan, como ya se ha mencionado. Los servidores y los
clientes también hacen uso igualmente de las posibilidades de los mensajes
vinculados al protocolo de Internet y, de este modo, reciben información de
red importante.

Otro de los escenarios de aplicación más extendidos es el llamado ping de


red, que puede ejecutarse con ayuda de aplicaciones del mismo nombre a
través de las líneas de comandos del sistema operativo correspondiente. Esta
simple pero útil herramienta de diagnóstico es la solución más sencilla para
comprobar la accesibilidad de un determinado host en la red. Para ello, el ping
envía, por un lado, un paquete IP incluida una “Echo Request” ICMP(6) (tipo 8
o 128), al que, tras su recepción, el receptor responderá con un paquete de
datos que contiene la entrada ICMP “Echo Reply” (tipo 0 o 129). Si no se
localiza al sistema al que se ha enviado el ping, la última estación de red
disponible enviará un paquete de respuesta, el cual se amplía con un
componente ICMP, es decir, tipo 3 o 1 “Destination Unreachable” (“objetivo
inalcanzable”).

Por el contrario, los routers utilizan el protocolo ICMP para diversos fines:
mediante el tipo “Router Advertisement” (tipo 9 de ICMP; tipo 134 de
ICMPv6), por ejemplo, pueden informar periódicamente a todos los
participantes de red activos sobre su presencia y sobre diferentes datos de red.
Estos guardan los datos recibidos en el caché y hacen que el router se
convierta en la puerta de acceso estándar. Asimismo, los routers intentan
optimizar la ruta de los paquetes de datos en la red por medio del tipo
“Redirect” de ICMP (tipo 5 o 137). Con ayuda de este tipo de mensajes, las
interfaces de red son capaces de advertir a los hosts sobre la existencia de un
hop (conexión intermedia) de mejor calidad para el envío de paquetes IP.

Protocolo TCP/IP
El modelo TCP/IP describe un conjunto de guías generales de diseño e
implementación de protocolos de red específicos para permitir que un equipo
pueda comunicarse en una red. TCP/IP provee conectividad de extremo a
extremo especificando como los datos deberían ser formateados,
direccionados, transmitidos, enrutados y recibidos por el destinatario.
La importancia del modelo TCP/IP es que es el modelo usado para acceder a
Internet o a redes internas (Intranet) de ordenadores. Arduino va a permitir
conectarse a Internet o a una red interna mediante TCP/IP y poder realizar
múltiples operaciones o usarse como pasarela para conectar a Internet
dispositivos que no tienen esa capacidad. La implementación de la pila de
protocolos de TCP/IP en Arduino se hace mediante un shield o HW adicional
que nos da la capa de acceso a red (ethernet o WiFi), internet (IP) y transporte.
La capa de aplicación deberemos implementarla dentro de Arduino ya sea
directamente o mediante una librería.
En el caso del protocolo TCP/IP la pila OSI se simplifica:

Capa de Invoca programas que acceden servicios en la red. Interactúan con


Aplicación. uno o más protocolos de transporte para enviar o recibir datos, en

forma de mensajes o bien en forma de flujos de bytes.

Provee comunicación extremo a extremo desde un programa de

aplicación a otro. Regula el flujo de información. Puede proveer un

transporte confiable asegurándose que los datos lleguen sin errores y

en la secuencia correcta. Coordina a múltiples aplicaciones que se

encuentren interactuando con la red simultáneamente de tal manera

que los datos que envíe una aplicación sean recibidos correctamente

por la aplicación remota, esto lo hace añadiendo identificadores de

cada una de las aplicaciones. Realiza además una verificación por

Capa de suma, para asegurar que la información no sufrió alteraciones

Transporte. durante su transmisión.

Controla la comunicación entre un equipo y otro, decide qué rutas

deben seguir los paquetes de información para alcanzar su destino.

Conforma los paquetes IP que será enviados por la capa inferior.

Capa Desencapsula los paquetes recibidos pasando a la capa superior la

Internet. información dirigida a una aplicación.

Capa de Emite al medio físico los flujos de bit y recibe los que de él provienen.

Interfaz de Consiste en los manejadores de los dispositivos que se conectan al

Red. medio de transmisión.

Más información en: http://www.uca.edu.sv/investigacion/tutoriales/tcp-ip.html


Los elementos de red (switches, routers, etc…) no llegan hasta la última capa y
se podría representar así la comunicación entre dos dispositivos.
Algunos elementos de la red de comunicación pueden llegar a capas
superiores a la de red e incluso hasta la capa de aplicación como los firewalls
para detectar ataques en capas superiores. Es el caso de firewalls de estado y
de aplicación. Un cortafuegos de aplicación puede filtrar protocolos de capas
superiores tales como FTP, TELNET, DNS, DHCP, HTTP, TCP, UDP y TFTP
(GSS). Por ejemplo, si una organización quiere bloquear toda la información
relacionada con una palabra en concreto, puede habilitarse el filtrado de
contenido para bloquear esa palabra en particular. No obstante, los cortafuegos
de aplicación resultan más lentos que los de estado.

Direccionamiento IP
TCP/IP utiliza un identificador denominado dirección internet o dirección IP,
cuya longitud es de 32 bytes. La dirección IP identifica tanto a la red a la que
pertenece una computadora como a ella misma dentro de dicha red.
 Longitud de 32 bits.
 Identifica a las redes y a los nodos conectados a ellas.
 Especifica la conexión entre redes.
 Se representan mediante cuatro octetos, escritos en formato decimal,
separados por puntos.
Existen ciertas direcciones en cada clase de dirección IP que no están
asignadas y que se denominan direcciones privadas. Las direcciones privadas
pueden ser utilizadas por los hosts que usan traducción de dirección de red
(NAT) para conectarse a una red pública o por los hosts que no se conectan a
Internet. En una misma red no pueden existir dos direcciones iguales, pero sí
se pueden repetir en dos redes privadas que no tengan conexión entre sí o que
se conecten mediante el protocolo NAT. Las direcciones privadas son:
 Clase A: 10.0.0.0 a 10.255.255.255 (8 bits red, 24 bits hosts).
 Clase B: 172.16.0.0 a 172.31.255.255 (16 bits red, 16 bits hosts). 16
redes clase B contiguas, uso en universidades y grandes compañías.
 Clase C: 192.168.0.0 a 192.168.255.255 (24 bits red, 8 bits hosts). 256
redes clase contiguas, uso de compañías medianas y pequeñas además de
pequeños proveedores de internet (ISP).

Clases de direcciones IP:

Clases Número de Redes Número de Nodos Rango de Direcciones IP

A 127 16,777,215 1.0.0.0 a la 127.0.0.0

B 4095 65,535 128.0.0.0 a la 191.255.0.0

C 2,097,151 255 192.0.0.0 a la 223.255.255.0

Subredes en IP:

 Las subredes deben identificarse usando una máscara de subred.


 La máscara de subred es de cuatro bytes y para obtener el número de
subred se realiza un operación AND lógica entre ella y la dirección IP de
algún equipo.
 La máscara de subred deberá ser la misma para todos los equipos de la
red IP.

El enrutamiento sirve para alcanzar redes distantes. Las direcciones IP se


agrupan en clases. Ahora bien para cada clase se pueden contar con un
número determinados de subredes. Las subredes son redes físicas
independientes que comparten la misma dirección IP (es decir aquella que
identifica a la red principal). La pregunta entonces es ¿cómo se logra que
equipos que comparten el mismo identificador de red pero se sitúan en redes
físicas diferentes podrán comunicarse usando compuertas? La solución a este
problema es determinando una máscara de dirección.

Supóngase que la dirección IP de una equipo es 148.206.257.2. La máscara


de subred es 255.255.255.0. El equipo por tanto está en la subred
148.206.257.0

Una dirección IP dinámica es una IP asignada mediante un servidor DHCP


(Dynamic Host Configuration Protocol) al usuario. La IP que se obtiene tiene
una duración máxima determinada. El servidor DHCP provee parámetros de
configuración específicos para cada cliente que desee participar en la red IP.
Entre estos parámetros se encuentra la dirección IP del cliente.

Las IP dinámicas son las que actualmente ofrecen la mayoría de operadores.


El servidor del servicio DHCP puede ser configurado para que renueve las
direcciones asignadas cada tiempo determinado.

Protocolo de Mensajes de Control de Internet ICMP (Internet Control Message


Protocol)

 Reporta sobre destinos inalcanzables.


 Control de flujo de datagramas y congestión.
 Controla los requerimiento de cambio de rutas entre compuertas.
 Detecta rutas circulares o excesivamente largas.
 Verifica la existencia de trayectorias hacia alguna red y el estatus de la
misma.

La función de la dirección IPv6 es exactamente la misma que la de su


predecesor IPv4, pero dentro del protocolo IPv6. Está compuesta por 128 bits y
se expresa en una notación hexadecimal de 32 dígitos. IPv6 permite
actualmente que cada persona en la Tierra tenga asignados varios millones de
IPs, ya que puede implementarse con 3.4×10E38 hosts direccionables. La
ventaja con respecto a la dirección IPv4 es obvia en cuanto a su capacidad de
direccionamiento.

IPv6 admite 340.282.366.920.938.463.463.374.607.431.768.211.456 (340


sextillones de direcciones) —cerca de 6,7E17 (670 mil billones) de direcciones
por cada milímetro cuadrado de la superficie de La Tierra.

Su representación suele ser hexadecimal y para la separación de cada par de


octetos se emplea el símbolo “:”. Un bloque abarca desde 0000 hasta FFFF.
Algunas reglas de notación acerca de la representación de direcciones IPv6
son:

Los ceros iniciales se pueden obviar.

Ejemplo: 2001:0123:0004:00ab:0cde:3403:0001:0063 ->


2001:123:4:ab:cde:3403:1:63

Los bloques contiguos de ceros se pueden comprimir empleando “::”. Esta


operación sólo se puede hacer una vez.

Dirección MAC

En las redes, la dirección MAC (siglas en inglés de media access control; en


español “control de acceso al medio”) es un identificador de 48 bits (6 bloques
hexadecimales) que corresponde de forma única a una tarjeta o dispositivo de
red. Se conoce también como dirección física, y es única para cada dispositivo.
Está determinada y configurada por el IEEE (los últimos 24 bits) y el fabricante
(los primeros 24 bits) utilizando el organizationally unique identifier. La mayoría
de los protocolos que trabajan en la capa 2 del modelo OSI usan una de las
tres numeraciones manejadas por el IEEE: MAC-48, EUI-48, y EUI-64, las
cuales han sido diseñadas para ser identificadores globalmente únicos. No
todos los protocolos de comunicación usan direcciones MAC, y no todos los
protocolos requieren identificadores globalmente únicos.

Las direcciones MAC son únicas a nivel mundial, puesto que son escritas
directamente, en forma binaria, en el hardware en su momento de fabricación.

En Arduino es importante poner la dirección MAC correcta para evitar


problemas.
En el caso del shield ethernet, la MAC no está incluida en el integrado que
implementa la pila de protocolos TCP/IP, sino que se debe configurar y eso lo
hace Arduino desde el setup().

Tutorial TCP/IP: http://www.uca.edu.sv/investigacion/tutoriales/tcp-ip.html

Nivel de Transporte: TCP y UDP

El protocolo UDP es un protocolo no orientado a conexión. Es decir cuando una


máquina A envía paquetes a una máquina B, el flujo es unidireccional. La
transferencia de datos es realizada sin haber realizado previamente una
conexión con la máquina de destino (maquina B), y el destinatario recibirá los
datos sin enviar una confirmación al emisor (la máquina A). Esto es debido a
que la encapsulación de datos enviada por el protocolo UDP no permite
transmitir la información relacionada al emisor. Por ello el destinatario no
conocerá al emisor de los datos excepto su IP.

Su uso principal es para protocolos como DHCP, BOOTP, DNS y demás


protocolos en los que el intercambio de paquetes de la conexión/desconexión
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 real, donde no es posible
realizar retransmisiones por los estrictos requisitos de retardo que se tiene en
estos casos.
La librería Ethernet de Arduino dispone de la clase EthernetUDP que permite
enviar y recibir mensajes UDP.
Ver https://www.arduino.cc/en/Reference/Ethernet

Al contrario que UDP, el protocolo TCP está orientado a conexión. Cuando una
máquina A envía datos a una máquina B, la máquina B es informada de la
llegada de datos, y confirma su buena recepción. Aquí interviene el control
CRC de datos que se basa en una ecuación matemática que permite verificar
la integridad de los datos transmitidos. De este modo, si los datos recibidos son
corruptos, el protocolo TCP permite que los destinatarios soliciten al emisor que
vuelvan a enviar los datos corruptos.
Muchos programas dentro de una red de datos compuesta por redes de
ordenadores, pueden usar TCP para crear “conexiones” entre sí a través de las
cuales puede enviarse un flujo de datos. 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.

TCP da soporte a muchas de las aplicaciones más populares de Internet


(navegadores, intercambio de ficheros, clientes FTP, etc.) y protocolos de
aplicación HTTP, SMTP, SSH y FTP.

TCP usa el concepto de número de puerto para identificar a las aplicaciones


emisoras y receptoras. Cada lado de la conexión TCP tiene asociado un
número de puerto (de 16 bits sin signo, con lo que existen 65536 puertos
posibles) asignado por la aplicación emisora o receptora. Los puertos son
clasificados en tres categorías:

 bien conocidos,
 registrados, y
 dinámicos/privados.

Los puertos bien conocidos son asignados por la Internet Assigned Numbers
Authority (IANA), van del 0 al 1023 y son usados normalmente por el sistema o
por procesos con privilegios. Las aplicaciones que usan este tipo de puertos
son ejecutadas como servidores y se quedan a la escucha de conexiones.
Algunos ejemplos son: FTP (21), SSH (22), Telnet (23), SMTP (25)
y HTTP(80).

Los puertos registrados son normalmente empleados por las aplicaciones de


usuario de forma temporal cuando conectan con los servidores, pero también
pueden representar servicios que hayan sido registrados por un tercero (rango
de puertos registrados: 1024 al 49151).

Los puertos dinámicos/privados también pueden ser usados por las


aplicaciones de usuario, pero este caso es menos común. Los puertos
dinámicos/privados no tienen significado fuera de la conexión TCP en la que
fueron usados (rango de puertos dinámicos/privados: 49152 al 65535.

Los protocolos TCP y UDP usan el concepto de puerto. Un lista de los puertos
bien conocidos es

Más información:

 https://es.wikipedia.org/wiki/Protocolo_de_control_de_transmisi%C3%B3
n
 https://en.wikipedia.org/wiki/Transmission_Control_Protocol
 Diferencia entre TCP y UDP: http://www.codigomaestro.com/redes/cual-
es-la-diferencia-entre-los-protocolos-tcp-udp/
 Diferencia entre TCP y UDP: http://es.diffen.com/tecnologia/TCP-vs-UDP
 Buena explicación: https://www.pluralsight.com/blog/it-ops/networking-
basics-tcp-udp-tcpip-osi-models
 Buena
explicación: https://es.wikibooks.org/wiki/Redes_inform%C3%A1ticas/Pr
otocolos_TCP_y_UDP_en_el_nivel_de_transporte

Conexión y Desconexión TCP/IP


El proceso de establecimiento de una conexión TCP se denomina “three way
handshake” Durante el establecimiento de la conexión, se configuran algunos
parámetros tales como el número de secuencia con el fin de asegurar la
entrega ordenada de los datos y la robustez de la comunicación.
El método “three way handshake” crea una conexión entre cliente y servidor
que se realiza mediante tres pasos donde el cliente y servidor intercambian
paquetes SYN y ACK (acknowledgment) antes de de que la comunicación real
comience.
Aunque es posible que un par de entidades finales comiencen una conexión
entre ellas simultáneamente, normalmente una de ellas abre un socket en un
determinado puerto TCP y se queda a la escucha de nuevas conexiones. Es
común referirse a esto como apertura pasiva, y determina el lado servidor de
una conexión.
El lado cliente de una conexión realiza una apertura activa de un puerto
enviando un paquete SYN inicial al servidor como parte de la negociación en
tres pasos. En el lado del servidor (este receptor también puede ser una PC o
alguna estación terminal) se comprueba si el puerto está abierto, es decir, si
existe algún proceso escuchando en ese puerto, pues se debe verificar que el
dispositivo de destino tenga este servicio activo y esté aceptando peticiones en
el número de puerto que el cliente intenta usar para la sesión. En caso de no
estarlo, se envía al cliente un paquete de respuesta con el bit RST activado, lo
que significa el rechazo del intento de conexión. En caso de que sí se
encuentre abierto el puerto, el lado servidor respondería a la petición SYN
válida con un paquete SYN/ACK. Finalmente, el cliente debería responderle al
servidor con un ACK, completando así la negociación en tres pasos (SYN,
SYN/ACK y ACK) y la fase de establecimiento de conexión. Es interesante
notar que existe un número de secuencia generado por cada lado, ayudando
de este modo a que no se puedan establecer conexiones falseadas (spoofing).

Más información:

 http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessT
heThreeWayHandsh-3.htm
 https://lwn.net/Articles/508865/

La fase de finalización de la conexión utiliza una negociación en cuatro pasos


(four-way handshake), terminando la conexión desde cada lado
independientemente. Sin embargo, es posible realizar la finalización de la
conexión en 3 fases; enviando el segmento FIN y el ACK en uno solo. Cuando
uno de los dos extremos de la conexión desea parar su “mitad” de conexión
transmite un segmento con el flag FIN en 1, que el otro interlocutor confirmará
con un ACK. Por tanto, una desconexión típica requiere un par de segmentos
FIN y ACK desde cada lado de la conexión.

Una conexión puede estar “medio abierta” en el caso de que uno de los lados
la finalice pero el otro no. El lado que ha dado por finalizada la conexión no
puede enviar más datos pero la otra parte si podrá.

Es importante conocer este apartado porque a pesar que esta negociación la


hace el shield de Ethernet o Wifi y no se programa en Arduino, sirve para saber
qué está pasando cuando Arduino actúa como cliente o servidor y poder hacer
depuración cuando tenemos errores.

Todo este proceso o cualquier otro podemos verlo con una analizado de
protocolos como wireshark: https://www.wireshark.org/

Cuando tenemos un conjunto de maquinas comunicadas entre ellas por de una


red o un conjunto de redes, los protocolos de red necesitan un modo de
determinar de que maquina precede el mensaje y a qué maquina se dirige el
mensaje. TCP/IP utiliza una dirección IP para ese fin.

Puede que ya hayas visto anteriormente una dirección IP. Una


dirección IP tiene el formato ###.###.###.###, donde cada grupo de tres dígitos
puede estar comprendido entre el 0 (000) y el 255. Estas direcciones se dividen
en componentes de red y de host. El tamaño de cada uno de estos
componentes es variable, dentro del formato de dirección. TCP/IP puede decir
de que porción de la red se trata, por el primer grupo (conjunto de tres
números). El rango posible de números del primer grupo se divide en clases.
La Tabla 1 contiene una lista de estas clases.
Tabla 1 - Clases de redes.

Tabla 2 - Clases de redes privadas.

Después de que el TCP/IP determina dentro de qué clase de dirección reside la


dirección IP, sabe que parte de la dirección ha de utilizadar para la red y qué
parte para el host, como se maestra en la Figura 1.
Figura 1 - Esquema detalle red y Host.

Puesto que hoy como norma general solamente se proporcionan las


direcciones de la clase C o más pequeña, los ejemplos caerán normalmente
dentro de los parámetros de la clase C.

Existe también una dirección especial compartida para todas las máquinas que
utilizan TCP/IP. Esta dirección es 127.0.0.1 y se denomina dirección de circuito
cerrado (loopback). La dirección IP 127.0 0.1 siempre se refiere a la máquina
en la que trabaja (localhost). Si se quiere referir a ella por su hombre, utilice
''localhost'.

Como ya hemos señalado antes, TCP/IP es una colección de protocolos que


juntos mueven el tráfico por Internet y redes relacionadas. Como método para
agrupar protocolos en grupos parecidos, cada serie de capas se refiere a un
nivel específico de funcionalidad dentro de la colección TCP/IP. Normalmente,
las capas son, de abajo a arriba, la capa de red local, la capa de Internet, la
capa de transporte y la capa aplicación. Los nombres pueden variar
ligeramente, pero comprender lo que cada capa hace, ayuda bastante en la
compresión del funcionamiento de la colección de protocolos TCP/IP.
La capa de red local.

La capa más inferior de TCP/IP es la capa de red local, que es donde empieza
todo. Se refiere a los protocolos que llevan información a través de su LAN y
de la LAN de los demás (o cualquier solución que tengan). Los elementos que
resides en esta capa TCP/IP son los controladores de dispositivos de red,
como los dispositivos de tarjeta de red Ethernet.

La capa de red local controla cuando el tráfico entra en la propia LAN y


traspasa el control cuando el tráfico lo abandona.
La capa de Internet.

La capa de Internet es el lugar donde reside la IP de TCP/IP. Esta capa es


responsable de decirle a los datos donde tienen que ir, para llegar de una red a
otra a través de Internet, o a través de cualquier red en la que resida.
La IP entiende la dirección de Internet, descompone los datos para el viaje por
Internet, reagrupa los dados cuando llegan a su host o red de destino,
asegurándose de que llegan a la subred adecuada y si es necesario.

Los paquetes IP se denominan datagramas. Cada datagrama tiene un


encabezamiento asociado con él, que contiene la siguiente información.

* La versión del protocolo de Internet que produce el paquete: Esta es la


versión 4, hasta que el traslado finalmente se realicé a lPv6.
* La extensión del encabezamiento: Este encabezamiento está formado por
trozos de 4 bytes denominados palabras. La longitud del encabezamiento viene
dada, al igual que el número de trozos, de manera que multiplicado por 4, da la
longitud de encabezamiento adecuada.
* Tipo de servicio: Este campo actualmente no se utiliza, pero se incluyo en
caso de que se colocara en el lugar adecuado un método para priorizar
paquetes. Sin embargo, algunos sistemas operativos y protocolos lo utilizan
para sus propios fines. Normalmente, tiene valor 0.
* Longitud: Cantidad de bytes que tiene de extensión este datagrama.
* Identificación: Un número de identificación que permite al receptor localizar a
qué lugar pertenece este datagrama en la secuencia de los paquetes enviados.
Fundamental para volver a unir los datos adecuadamente.
* Parámetros: Una o más configuraciones que determinan lo que se puede o
no se puede hacer con este datagrama. Existen en la actualidad Tres posibles
elecciones. La primera significa que no hay parámetros. La segunda afirma que
este datagrama se fragmentar o dividir en piezas. La tercera especifica que se
ha dividido en piezas, y esta no es la última pieza.
* Qué fragmento: Una medida de donde va este fragmento dentro del
datagrama completo, si se fragmenta el paquete.
* Tiempo de vida: Cantidad de segundos que puede existir este datagrama
en Internet. Si todavía está intentando llegar al lugar al que se dirige cuando se
acaba el tiempo, se elimina el datagrama.
* Protocolo: Específicamente el protocolo al que pertenece este paquete. La
lista completa está disponible en www.faqs.org/rfcs/rfc762.html, en el apartado
''Números de protocolo de Internet asignados''.
* Verificación del encabezamiento: Número en que se basa en el contenido
del encabezamiento, computado la primera vez que se construye y cada vez
que se cambia. Las máquinas receptoras hacen la misma computación y
aseguran que su número concuerda con el original. Si loo números no son los
mismos, es que se ha dañado el encabezamiento y se requiere una copia del
datagrama desde la fuente.
* Dirección IP fuente: Dirección IP de la que procede el datagrama.
* Dirección IP de destino: Dirección IP a la que se dirige el datagrama.
* Opciones: Diferentes opciones unidas al encabezamiento. La mayoría no se
utilizan excepto cuando se estable una conexión TCP/IP.
* Ceros: La parte final de un encabezamiento IP es una secuencia de ceros
que asegura que el tamaño completo del encabezamiento es factor de 32.

La capa transporte.

En realidad, la capa de transporte traslada los dados por Internet. Con este fin
se utilizan dos protocolos primarios: TCP y el Protocolo de datagrama de
usuario (UDP), que no se debe confundir con el termino datagrama del que
hemos hablado en el apartado anterior. El TCP se ocupa de servicios que
requieren una conexión ininterrumpida con comprobación de error y
recuperación. Sus datos se envían en oleadas, donde cada parte es numerada
secuencialmente y reenviada si no es recibida al otro lado.

Para cada red se establece un valor denominado Maximum Transmition


Unit (MTU), que declare el tamaño máximo de paquete que maneja esta red.
Cuando el tamaño del paquete excede la MTU, el TCP la divide en fragmentos,
que son piezas de un paquete. Cada fragmento tiene su propia información de
encabezamiento, que contiene todo lo necesario para volver a reunir otra vez
las piezas del paquete.

El UDP, por otro lado, no comprueba los errores e incluso realmente no se


conecta con la máquina receptora. Sin embargo, se utiliza tanto para
cantidades de datos muy pequeñas como muy grandes. Cuando nos referimos
al audio o al video, no es imprescindible el que todos y cada uno de los bytes
alcancen su fuente, y esperar a reenviar puede deformar los resultados más
que la pérdida de bits y piezas del paquete. El UDP también resulta útil en
las LAN que tienen un rendimiento total prácticamente ideal. De hecho, en
estas circunstancias el UDP es más rápido que el TCP, puesto que por encima
no existe ninguna comprobación de error.

La capa de aplicación.

La cima del grupo de capas TCP/IP es la capa de Aplicación, que es donde


residen los diferentes programas que utiliza Internet: los navegadores Web que
utilizan el Protocolo de transferencia de hipertexto (HTTP), clientes
de Protocolo de transferencia de archivos (FTP) que obtienen archivos de
los servidores, programas de correo electrónico que envían correos
electrónicos a través del Protocolo de transferencia de correo (SMTP) y
mucho más. Cada uno de estos protocolos tiene su propiq manera de hacer las
cosas, pero en algun punto cada uno pasa y recibe dados de la capa
de Internet.

La tabla 3 contiene una lista de los protocolos de la capa aplicación más


populares y nos dice si utilizan TCPo UDP.

Tabla 3 - Lista protocolos capa Aplicación

Nota: Para ver una lista completa de los protocolos ver el archivo
/etc/services en Linux/Unix y C:\WINDOWS\system32\drivers\etc\services
(la unidad puede variar).

Se habla de migrar NFS a TCP. Aunque no es una cuestión inmediata,


demuestra que el protocolo para Internet que se utiliza para transportar
información no es inflexible.

Cuanto más grande se hace la red más difícil es agregar máquinas nuevas.
Agregar una máquina nueva a una red requiere editar todos los archivos
/etc/hosts, agregar cuentas de usuario y contraseñas a la máquina nueva, tener
usuarios que cambian las contraseñas y mucho más. Afortunadamente,
cuestas con varias herramientas para facilitar tu vlda como administrador de
sistemas.

Demanda de direcciones IP.

Mantener listas de información de direcciones en redes grandes en todas las


máquinas exige mucho tempo y está lleno de problemas. Esta situación es
especialmente problemática si se tiene que reconfigurar la red, si se tienen que
trasladar las máquinas de una manera regular o si la red tiene mas máquinas
que direcciones disponibles debido al crecimiento tras la asignación de la
dirección inicial. Con el servicio “Protocolo de Configuración dinámica de
host” (Dynamic Host Configuration Protocol - DHCP) puede entregar a las
máquinas direcciones IP aleatorias cuando arrancan o incluso asignarles
direcciones IP permanentes o fijas. De manera adicional, puede distribuir
mascaras de red, nombres de asignación y especificar las direcciones de los
servidores de nombre que deberían utilizar las máquinas. El programa pump
maneja tanto el DHCP como el antiguo servicio Protocolo Bootstrap
(BOOTP) en Linux.

Red Hat viene con el servidor DHCP/BOOTP de Internet software PC. La


versión 2 es capaz de comprobar si las direcciones IP ya están en uso antes de
distribuirlas. Si, por cualquier motivo, desea conseguir el código fuente de este
servidor, vaya a www.isc.org/products/DHCP.

El archivo de configuración para el servidor ISC DHCP/BOOTP es


/etc/dhcpd.conf. Este archivo contiene una seria de parámetros, opciones y
declaraciones que juntos forman las normas de asignación y comportamiento
para el servidor. Estos elementos del contrato entregado por el servidor DHCP.
Piense en el DHCP como una compañía de alquiler de coches. Solicita un
coche y la compañía de alquiler lo contrata para usted por un período de
tiempo. El DHCP funciona de una manera similar. Un cliente solicita asig-
naciones de dirección y el servidor le presta la información de dirección IP que
necesita para ser parte de la red.

Las sentencias de parámetros son compactas y sencillas. La tabla 7 contiene


muchas de ellas. Un parámetro se utiliza en el siguiente formato:

parámetro valores:

Tabla 5 - Parámetros disponibles en /etc/dhcpd.conf


Cuando llegan las declaraciones, estas parecen un poco extrañas si se
proporcionan en un formato general:
declaración {
parámetro1
parámetro2
….
parámetro
declaración1
declaración2
….
declaración
}

Como puede comprobar, con frecuencia finaliza con declaraciones dentro de


otras declaraciones cuando está construyendo su archivo dhcpd.conf. En la
tabla 7 puede ver una lista de aquellas declaraciones que se encuentran a su
disposición.

Tabla 7

Gestión de cuenta centralizada.

En algunas ocasiones, la parte más frustrante de administrar una red gran de


es intentar asegurarse de que todas las máquinas tienen la información de
cuenta de usuario correcta. Puede que no quieras que necesariamente todos
los usuarios tengan cuentas en todas las máquinas pero si necesita cualquier
tipo de cruce y tienes muchos usuarios que van y vienen, puede que mantener
el contacto con las cuentas resulte bastante frustrante y te lleve mucho tiempo.
Muchos administradores utilizan el NIS o los paquetes NIS+, para centralizar la
gestión de cuentas. Hablaremos de ello en un capítulo posterior.

Para configurar su red, siga este orden general:


1. El lugar desde el que inicia depende del tipo de conexión que va ha
configurar:

* Si va a configurar una conexión de módem, vea el apartado "Configurar


conexiones de marcado", más adelante en este capítulo.

* Para configurar la información de red básica para una conexión LAN interna,
diríjase al apartado "Configurar manualmente la red estática básica para
una LAN" o "Configurar la red básica con Linuxconf para una LAN".

Nota: Si necesita configurar una LAN y una conexión de módem que conecte
esa LAN con el exterior empiece configurando la parte interna de la LAN y
configure en último lugar la conexión PPP.

2. Compruebe las conexiones. Intente hablar con el exterior. Si simplemente


configura una LAN asegúrese de que las máquinas pueden hablar hacia el
interior y el exterior de la máquina.
3. Refuerce su seguridad (como veremos en un capítulo posterior) antes de
continuar. O, al menos por ahora, realice parte de este trabajo inicial en esta
área.

4. Configure la resolución de nombre de su dominio, como veremos en un


capítulo posterior.

5. Configure los otros servicios de Internet y de red, como el correo electrónico,


la Web y todo lo demás.

6. Termine de reforzar su seguridad.

Conseguir un conjunto de direcciones IP.

Si piensa utilizar sólo una LAN interna con números de red reservados para
uso interno simplemente usa un rango entre las diferentes clases de redes
privadas que se adapte a tus necesidades (ver la tabla 2).
Si necesitas un grupo de números IP para su red pública en Internet, haz lo
siguiente:

1. Determina en primer lugar el número de hosts que tiene su red LAN en la


actualidad que necesites tener en Internet, añade un pequeño margen para
aquellos que puedas agregar en el futuro. Siempre conviene dejar cierto
margen de error, pero tampoco es bueno pasarse en las estimaciones. Internet
no está muy sobrada de direcciones IP por eso conviene que únicamente
solicites aquellas que realmente vayas a necesitar.

2. Hoy en día, las direcciones IP normalmente las asignan los proveedores


de servicios de Internet (los ISP) desde sus propios bloques de dirección que
tiene asignadas. Habla con su representante de servicios para descubrir los
rangos que puedes ofrecerle.
Registrar un nombre de dominio.

Después de obtener tus direcciones IP para tu red, si desea utilizar tu red en


Internet, necesita registrar un nombre de dominio, el nombre de dominio está
compuesto por dos partes, una primera que es el propio nombre y una segunda
parte que se denomina dominio y que indica el ámbito al que pertenece,
pueden ser genéricos y de ámbito territorial. Para encontrar un nombre de
dominio disponible y poder registrarlo, haz lo siguiente:

1.Crea una lista de los tipos de nombres que sean adecuados para su dominio.
Por ahora fíjate solamente en la porción del nombre, no en la extensión.
Después de que tengas una lista de, por lo menos, cinco posibilidades, pasa al
paso dos.

2.Determina el conjunto de dominios que se ajustan a tu sitio El conjunto


completo de dominios lo puede encontrar
en http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains

3.Ahora llega la parte que potencialmente puede resultar frustrante. Muchos


nombres de dominio ya están cogidos. Eche un vistazo al siguiente al siguiente
apartado, "Comprobar si un nombre de dominio ya está cogido" con el fin de
recorrer los diferentes nombres de dominio y combinaciones de dominios que
se encuentran disponibles. La decisión última depende de un par de factores:

¿Qué extensión es la más apropiada para su sitio? Lea cuidadosa el propósito


de cada una de las extensiones principales. Aunque el sistema ofrece alguna
flexibilidad, necesita asegurarse de que el nombre de dominio para el sitio le
proporciona la impresión adecuada. Esta cuestión incluye si el sitio es
considerado con fines locales o internacionales y si se ajusta correctamente a
las normas establecidas para alguna de las extensiones más limitadas. El coste
también constituye un factor el cual es necesario tener en cuenta. Algunos de
los dominios más que otros.

Ver si un dominio está en uso. Si quieres ver si un nombre de dominio ya está


en uso, puedes comprobarlo en el servicio de hosting 1and1, 1and! te dará
información si el nombre de dominio que introduzcas es libre o cogido.

Determinar los valores para dividir en subredes una red de clase C.

Dividir una red en subredes puede ser una tarea rápida y fácil o puede llevarte
mucho tiempo y provocar mucha frustración. El hecho de que ocurra una cosa
o la otra, depende del rango de direcciones que tengas disponibles y cuantas
subredes y de qué tamaños necesitas crearlas. Para dividir sus direcciones
disponibles en subredes, haz lo siguiente:

1.Si tiene una red de clase C, descompóngala en redes eligiendo la máscara


de red adecuada. Primero, decida más o menos cuántas máquinas tiene en
cada subred.
2.Después de que sepa cuántas máquinas quiere por subred, vea la Tabla 8
que contiene una lista de cuántas máquinas aproximadamente obtiene por
cada subred en una red de clase C.

Tabla 8. Maquinas por subred.

Nota: Esta tabla proporciona valores aproximados, puesto que se pierden


al menos dos direcciones por cuestiones de red.

3.Señale la máscara de red a utilizar para su red dividida en subredes.


Consulte la Tabla 9 para las máscaras de red a utilizar dependiendo de cómo
haya dividido una fuente completa de direcciones de clase C.

Tabla 9. Máscaras de red para descomponer redes de clase C.

4.Señale los rangos de dirección IP para cada segmento dividido en subredes.


Utilice los valores señalados a continuación para construir estos rangos. El
número que aparece en la columna Hosts por subred es su límite. Por ejemplo,
si va a crear cuatro subredes, A, B, C y D, basándose en una red 192.168.1.0
entonces tiene un valor de 63 máquinas por cada subred. Esto le proporciona
el siguiente conjunto de rangos:

Subred A desde la 192.168.1.0 hasta 192.168.1.63


Subred B desde la 192.168.1.64 hasta 192.168.1.127
Subred C desde la 192.168.1.128 hasta 192.168.1.191
Subred D desde la 192.168.1.192 hasta 192.168.1.255

En el esquema 2 podéis se puede ver como quedarían montadas las subredes,


hay que tener en cuenta que para el trafico vaya de una subred a otra
tendremos que montar un router que enrute el tráfico entre las diferentes
subredes.

Esquema 2. 4 subredes de red clase C.


La tabla 10 muestra las direcciones de red de clase C para subredes divididas
en 2, 4, 8 y 16 partes, en la tabla se muestran las direcciones iniciales de cada
subred, la dirección final de cada subred se obtiene restando uno la dirección
inicial de la siguiente subred.

Tabla 10. Dirección inicial de cada subred.

5. Elimina a continuación la dirección de difusión de cada subred. En la tabla 11


podemos ver las direcciones de difusión correspondientes a la subred de clase
C para subredes divididas en 2, 4, 8 y 16 partes.

Tabla 11. Dirección de difusión de cada subred.

Aplicar valores de subred a una red.


Aunque este capítulo no está dedicado a enseñar todos los fundamentos de la
conexión de redes, debería recordar los siguientes puntos a la hora de colocar
una subred en el lugar adecuado:

- Las máquinas que están conectadas en dos o más redes deben ser
consideradas como router de modo que el núcleo sepa dónde enviar los datos
destinados a las diferentes redes.

- Las máquinas que comparten dos o más redes necesitan tener una interfaz
diferente para cada red. Por este motivo, por ejemplo, si la máquina en un
router que se encuentra situado entre dos subredes diferentes unidas mediante
Ethernet, entonces debe tener dos tarjetas Ethernet, una para cada de red.

- Las direcciones primera y última dentro de una subred no pueden utilizarse


para maquinas. La primera es la dirección de red para la subred y la última es
la dirección de difusión.

Expresar rangos de dirección.

Para expresar un rango de direcciones IP que no estén divididas en subredes,


haga lo siguiente:

1. Determine primero el rango de direcciones contiguo que quiere utilizar.

Por ejemplo, desde la 192.168.40.0 hasta la 192.168.40.20.

2. Determine luego la clase de dirección IP a la que pertenece este rango. Por


ejemplo, 192 es una dirección de clase C.

3. Determine la máscara de red para la clase de dirección. Una máscara de red


para una dirección de clase C es 255.255.255.0. Esta máscara de red básica
se refiere a la red completa. En este caso, el 0 final significa que cualquier
número de 0 a 255 está incluido.

4. El formato para expresar este rango de direcciones es dirección/máscara,


donde la dirección es el inicio del rango y la máscara es una máscara de red
que refleja la extensión del rango. Por consiguiente, la primera parte de la
expresión es 192.168.40.0. Para calcular la segunda parte, comience con
255.255.255.255 y a continuación quítele el número de dirección, 20 en el
ejemplo, a la última porción de la máscara de red, convirtiéndola de este modo
en 255.255.255.235. Su par es ahora 192.168.40.0/255.255.255.235.

PROTOCOLO UDP
El término UDP en inglés significa (User Datagram Protocol) o en
español Protocolo de Datagrama de Usuario, es un protocolo sin conexión, a
diferencia del TCP que funciona con redes IP.
Este protocolo UDP/IP provee muy pocos servicios de recuperación de errores,
de manera que ofrece un manera directa de poder enviar y recibir datagramas
por medio de una red IP. Se utiliza sobre todo cuando la velocidad es un factor
importante en la transmisión de la información, tal es el caso de. Cuando se
realiza streaming de video o audio emplean el UDP.

No obstante, varias aplicaciones cliente-servidor que tienen una solicitud y una


respuesta emplean el UDP en lugar de poder establecer y luego liberar una
conexión. El UDP se describe en el RFC 768. Un segmento UDP consiste en una
cabecera de 7 bytes seguida de los datos. De manera que la cabeza se muestra
en seguida. Los dos puertos sirven para lo mismo que en el TCP para identificar
los puntos terminales de las máquinas origen y destino. El campo de longitud
UDP, incluye la cabecera de 8 bytes y los datos. La suma de comprobación UDP
incluye la misma pseudo cabecera de formato, y la cabecera UDP, y los datos
rellenados con una cierta cantidad par de bytes de ser obligatorio.
Asimismo dicha suma es opcional ya que se almacena como o si no se calcula.
No utilizarlo sería algo ilógico, a menos que la cantidad de los datos no sea
importante, como tal es el caso de la voz digitalizada.

Vous aimerez peut-être aussi