Redes de Comunicaciones en PDF.
Subsecciones
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.
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.
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):
- 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;
- é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);
- 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.
| 0 |
4 |
10 |
16 31 |
|
Source Port |
Destination Port |
|
Sequence
Number |
|
Acknowledgment
Number |
|
Dat. Offset |
Reserved |
Flags |
Window |
|
Checksum |
Urgent Pointer |
|
Options &
Padding |
- Source Port: Número de puerto de 16 bits del emisor,
que el receptor debe usar para responder.
- Destination Port: Número de puerto de 16 bits del
receptor.
- Sequence Number: Número de secuencia del primer byte de
datos del segmento enviado en el paquete. Si el byte de control SYN
está a 1, el número de secuencia es el inicial y el primer byte de
datos será el n+1.
- Acknowledgment Number: Contiene el valor del último
byte recibido correctamente. Este número implica que todos los bytes
anteriores han sido recibidos correctamente
(reconocidos).
- Data Offset: Indica la longitud de la cabecera en
palabras de 32 bits y, por tanto, dónde empiezan los datos. Esta
longitud es de 5 palabras (20 Bytes) más el campo
Opciones si existe.
- Reserved: bits reservados para un uso futuro; deben ser
cero.
- Flags: 6 bits utilizados para el control de la conexión
- URG (Urgent): Indica al receptor que los primeros bytes
en tratar sean los bytes urgentes, cuyo inicio se indica en el campo
urgent pointer.
- ACK (Acknowledge): Indica que el campo de reconocimiento
es significativo en el segmento.
- PSH (Push): Indica que se ha solicitado la función
Push.
- RST (Reset): Reinicia la conexión porque el puerto
destino no está en uso o el número de secuencia no se puede usar.
- SYN (Syncro.): Indica si el número de secuencia es el
inicial.
- FIN: Indica que el emisor desea terminar la comunicación.
- Window: Establece un nuevo tamaño de la ventana de
bytes para la comunicación.
- Checksum: código de control de la
cabecera22. Si no es correcto
se desecha el paquete.
- Urgent Pointer: Apunta al primer byte de datos urgentes.
- Options & Padding (Opciones y relleno): este es un campo
opcional de longitud variable para pruebas de red o depuración. No se
requiere que las implementaciones de TCP puedan generar las opciones,
pero sí que puedan procesar los segmentos que contienen opciones
saltando las opciones, gracias a que conocen la longitud de la
cabecera. Esto hace que la longitud de las opciones deba ser múltiplo
de 32bits, utilizándose bits de relleno si es necesario.
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).
| 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.
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
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