PDF Redes de Comunicaciones en PDF.
Subsecciones

3.4 Otros protocolos de la familia Internet

3.4.1 ARP y RARP

El protocolo ARP (Address Resolution Protocol) es el método estándar para obtener la dirección ``física'' (nivel 2 -de enlace-) de una NIC cuando únicamente se conoce su dirección ``lógica'' (nivel 3 -de red-). Una vez obtenida se guarda temporalmente la información en una tabla (tablas caché ARP) para reducir el número de consultas.

No es un protocolo de uso exclusivo con IP, aunque dada la gran implantación de dicho protocolo y de Ethernet, se utiliza principalmente para asociar una dirección IP a una dirección MAC de Ethernet. También se utiliza ampliamente con IP sobre otras tecnologías LAN como Token Ring, FDDI, IEEE 802.11 (Wi-Fi) o ATM.

Existe un protocolo, RARP (Reverse ARP), cuya función es la inversa.

3.4.2 ICMP e IGMP

ICMP (Internet Control Messaging Protocol) es parte fundamental y complementaria de IP y es empleado por éste para notificar mensajes de error o situaciones que requieren cierta atención. Debido a que los paquetes ICMP viajan en paquetes IP es a veces considerado un nivel por encima.

Los distintos mensajes ICMP posibles utilizan un identificador numérico, que en el caso de los mensajes de error es menor que 128. ICMP también permite adquirir información mediante pares de paquetes petición / respuesta, por ejemplo, para adquirir la máscara de red de un sistema o el valor de su reloj (timestamps). Por último, en numerosas ocasiones se emplea para comprobar la existencia de conectividad, como en la utilidad ``ping'', empleando paquetes ICMP ``echo'' (id. 128) y ``echo reply'' (id. 129).

Los mensajes de error de ICMP se generan cuando el destinatario o un encaminador no puede procesar un paquete IP e incluyen la cabecera del paquete IP que ha generado el error y los primeros 8 bytes del contenido del mismo, lo que es suficiente en TCP para conocer la comunicación que originó el paquete erróneo -recordemos que IP no garantiza la recepción de paquetes-.

Como IPv6 está diseñado para poder soportar múltiples protocolos de transporte, ICMPv6 incluye el inicio del paquete IP fallido original (incluyendo la cabecera) hasta generar un paquete de error de 1280 bytes, que es el MTU mínimo admitido por IPv6.

IGMP (Internet Group Management Protocol) se utiliza para informar a los encaminadores de la pertenencia de un equipo a un grupo de multicast. Es análogo a ICMP pero para conexiones multicast en vez de unicast. IGMP se puede usar para transmisión de vídeo, para juegos... Es un protocolo vulnerable, poco utilizado y opcional (mientras que ICMP es requerido por IAB) por lo que algunos cortafuegos lo bloquean opcionalmente.

3.4.3 TCP

TCP (Transmission Control Protocol) es el protocolo de transporte empleado actualmente por la mayoría de los protocolos de aplicaciones en Internet. Utiliza un esquema de circuito virtual para establecer un flujo de bytes sobre IP.

El protocolo TCP utiliza la técnica de ventana deslizante -pudiéndose cambiar el tamaño de la ventana durante la comunicación- y la técnica de piggybacking es decir, incluye en la transmisión de paquetes, la confirmación de recepción de paquetes. Así un equipo que reciba correctamente los bytes 1, 3 y 4, emitirá el reconocimiento del byte 1 (ACK 1). Cuando reciba correctamente el 2 emitirá ACK 4, indicando que ha recibido correctamente hasta el byte 418.

Para permitir múltiples conexiones entre equipos e identificar a los destinatarios y remitentes de manera sencilla, TCP multiplexa las direcciones IP utilizando puertos. Así una conexión TCP se identifica como:

<TCP, IP_local.Puerto_local, IP_destino.Puerto_destino>.

Antes de comenzar la transmisión de datos, se debe establecer una conexión haciendo que los nodos reserven recursos y estableciendo parámetros como el tamaño de los mensajes (MTU del circuito virtual) o la ventana de transmisión. Una conexión TCP se establece en tres pasos (three-way handshake):

  1. El equipo que inicia la conexión envía al destinatario un paquete de sincronización ``SYN'' con el número de secuencia inicial elegido para esta conexión19 y el tamaño de ventana;
  2. éste le responde con un paquete de reconocimiento ``SYN-ACK'', confirmándole la recepción de su número inicial (ACK) y enviándole un número propio inicial de secuencia (SYN);
  3. el equipo que ha iniciado la conexión reconoce la recepción de la señal ``SYN-ACK'' mediante una señal ``ACK''. En este momento la conexión se ha establecido y puede tener lugar toda la transferencia de datos.
De igual modo, la finalización de la conexión se lleva a cabo mediante el intercambio de un par de paquetes TCP por parte de cada equipo: un paquete ``FIN'' y un paquete ``ACK''. Esto puede llevarse a cabo en 4 pasos (FIN-ACK-FIN-ACK) o en tres pasos (FIN-FIN&ACK-ACK). Algunas implementaciones permiten finalizar en dos pasos o cerrar solo un lado de la comunicación...

Si bien una vez establecida la comunicación, TCP envía los bytes agrupados en conjuntos llamados segmentos, el control de la transmisión, incluyendo la cuenta de envíos (Sequence Number) o las recepciones correctas (Acknowledgment Number), se hace en base a bytes no a paquetes o segmentos.

Las aplicaciones que utilizan TCP pueden invocar a la función Push para solicitar que se envíe un segmento sin esperar nuevos bytes para incluir en él20. De manera similar la función Urgent solicita que los nuevos bytes añadidos al segmento se traten antes que los que ya estén en él esperando su envío21.

3.4.4 Cabecera de trama de TCP

0 4 10 16 31
Source Port
Destination Port
Sequence Number
Acknowledgment Number
Dat. Offset
Reserved
Flags
Window
Checksum
Urgent Pointer
Options & Padding

3.4.5 UDP

UDP (User Datagram Protocol) es un protocolo que utiliza un esquema de datagramas sobre IP. UDP no garantiza la comunicación, es decir, los paquetes pueden no llegar, llegar correctamente, duplicados o fuera de orden. Al evitar esas comprobaciones y su sobrecarga (overhead) el protocolo UDP es más sencillo, rápido y eficiente que TCP, pero solo sirve para aplicaciones que no necesiten garantías en la comunicación. Esto es muy práctico en aplicaciones en que es más importante la velocidad de transmisión (como comunicación de audio y vídeo: IPTV, VoIP, juegos en línea) o en aplicaciones servidoras sin estado que deben responder pequeñas consultas de un gran número de clientes (como DNS). A diferencia de TCP, UDP permite paquetes de difusión (broadcast y multicast).

3.4.6 Cabecera de trama de UDP

0 16 31
Source Port
Destination Port
Length
Checksum
La cabecera de trama de UDP únicamente indica puertos de origen y destino, longitud del datagrama -incluyendo la cabecera- y un código de control del paquete23.

3.4.7 Puertos de aplicaciones basadas en TCP/UDP

A continuación se indican algunos de los principales protocolos de aplicaciones y sus puertos habituales asociados24.

Puerto
Protocol.
Descripción
7 tcp y udp Echo - Responde con eco a llamadas remotas
20-21 tcp FTP (File Transfer Protocol) - Transferencia de Ficheros [datos (20) y control (21)]
22 tcp SSH, SCP, SFTP - Juego de protocolos de comunicación segura
23 tcp Telnet - Protocolo de comunicación de inseguro
25 tcp SMTP (Simple Mail Transfer Protocol) - Transferencia Simple de Correo
53 tcp y udp DNS (Domain Name System) - Sistema de Nombres de Dominio
67-68 udp BOOTP (Server-Client) / DHCP (Dynamic Host Configuration Protocol)
80 tcp HTTP (HyperText Transfer Protocol) - Transferencia de HiperTexto (web)
88 tcp Kerberos - Agente de autenticación
110 tcp POP3 (Post Office Protocol 3) - Correo-e
123 tcp y udp NTP - Protocolo de sincronización de tiempo
135 tcp RPC (Remote Procedure Call)
137-139 tcp y udp NetBIOS Servicio de nombres [nombres (137), datagramas (138), sesiones (139)]
143 tcp IMAP4 (Internet Message Access Protocol 4) - Correo-e
161-162 tcp y udp SNMP - Gestión Simple de Red [consultas (161) y señales (162)]
389 tcp y udp LDAP - Protocolo de acceso ligero a Bases de Datos
443 tcp HTTPS/SSL - HTTP sobre una capa SSL
631 tcp CUPS - Sistema de impresión Unix
636 tcp LDAPs - LDAP sobre SSL
993 tcp IMAP4 sobre SSL
995 tcp POP3 sobre SSL
1433-1434 tcp Microsoft-SQL (Server-Monitor)
1512 tcp WINS
1521 tcp Oracle listener (por defecto)
1701 udp Enrutamiento y Acceso Remoto para VPN con L2TP.
1723 tcp Enrutamiento y Acceso Remoto para VPN con PPTP.
2049 tcp NFS - Archivos del sistema de red
3128 tcp Servidores intermediarios de HTTP, como Squid
3306 tcp MySQL sistema de gestión de bases de datos
3389 tcp RDP (Remote Desktop Protocol)
5060 udp Session Initiation Protocol (SIP)
5432 tcp PostgreSQL sistema de gestión de bases de datos
10000 tcp Webmin (Administración remota web)


Notas al pie

... 418
Dado que emisor y receptor han acordado un tamaño de ventana, el emisor no envía más bytes de los que puede almacenar el receptor.
...'on19
El número de secuencia inicial se elige de manera pseudoaleatoria para que no se pueda mezclar con otra comunicación por error.
...'el20
Por ejemplo en una conexión telnet con eco remoto, al pulsar Intro se envía la información con Push.
...'io21
Por ejemplo en una conexión telnet, al pulsar Ctrl-C se envía como Urgent.
... cabecera22
Para este código se utiliza el complemento a uno de 16 bits de la suma en complemento a uno del paquete con una pseudo cabecera IP virtual.
... paquete23
Se calcula igual que en TCP.
... asociados24
Puertos reservados [0-1.023]; Puertos registrados [1.024-49.151]; Puertos dinámicos [49.152-62.535].
2009-05
 
Creative Commons License 2009-05 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los documentos bajo los términos de la licencia
"Reconocimiento-Compartir bajo la misma licencia 3.0 España" de Creative Commons.
Puede ver una copia de esta licencia completa.

Redes de Comunicaciones, LAN, WAN, ISO OSI, IP, Ethernet, IEEE 802.11, Wi-Fi, PDH, RDSI, Frame-Relay, xDSL, CATV, VPN, H.323, SIP, Multimedia