Los estándares de TCP/IP están definidos en los documentos oficiales conocidos como RFC (Request for Comments) que han sido desarrollados por la IETF (Internet Eingeener Task Force), Grupo de Trabajo de Ingeniería de Internet. Su propósito es proporcionar una referencia a la comunidad de Internet para su discusión, estandarización e implementación. Para su aplicación correcta en un sistema operativo deberá consultarse el manual correspondiente.
Ethernet
Los siguientes protocolos trabajan en el nivel de Internet.
El Protocolo de Resolución de Dirección permite que un equipo conozca la dirección física de una tarjeta de interfaz de red relacionada a una dirección IP (dirección lógica).
Para que se relacionen las direcciones físicas con las lógicas, ARP pregunta a todos equipos de la red, mediante un broadcast (comunicación de uno a todos), sus direcciones físicas y crea una tabla de búsqueda entre las direcciones lógicas y físicas en una memoria caché.
Realiza el mapeo de direcciones MAC a direcciones IP; es decir, dada una dirección MAC, se encarga de obtener de manera dinámica la dirección IP; este protocolo se utiliza en terminales diskless (computadoras que no cuenta con disco duro) en donde pueda residir una dirección lógica. Esta computadora requiere obtener su dirección IP de algún servidor de RARP.
Es un protocolo que puede usarse tanto para el direccionamiento como para el enrutamiento de paquetes. El direccionamiento es cómo asignamos una dirección IP a un equipo que se conectará en red; el enrutamiento encuentra el mejor camino para hacer llegar a un paquete del origen a su destino final, pasando por equipos de telecomunicaciones como ruteadores.
No está orientado a la conexión, lo cual significa que no establece una sesión antes del intercambio de datos. No garantiza la entrega de paquetes, siempre hace su mejor esfuerzo, pero por el camino puede ser extraviado, fuera de secuencia o duplicado.
Si se necesita fiabilidad de la llegada de paquetes a su destino, ésta la proporcionan protocolos de la capa de transporte como TCP.
Campo | Función |
Version | 4 bits son usados para indicar la versión de IP. |
Header Length | 4 bits para indicar el número de 32 bits en el encabezado IP. |
Type of service | 8 bits que son usados para indicar la calidad deseada del servicio por este datagrama en la entrega a través de los routers en la red. |
Total Length | 13 bits usados para indicar el total de la longitud del datagrama. |
Identification | 16 bits son usados como identificadores para este específico paquete. Si el paquete es fragmentado, todos los fragmentos tienen el mismo número de identificador. |
Fragmentation Flags | 3 bits para las banderas del proceso o de fragmentación. |
Fragmentation Offset | 13 bits para un contador que indica la posición del fragmento. |
TTL | 8 bits para indicar los saltos, antes de ser descargado. |
Protocol | 8 bits para identificar el protocolo IP del cliente. |
Header Checksum | 16 bits usados como checksum. |
Source Address | 32 bits para almacenar la IP del host origen. |
Destination Address | 32 bits para la dirección destino. |
Options and Padding | Un múltiple de 31 bits usado para almacenar las opciones de IP. |
Tabla 1. Estructura del paquete IP1
1 RFC 791 (s. f.). Consultado el 28 de septiembre de http://www.rfc-es.org/rfc/rfc0791-es.txt
Envía mensajes y reportes de error de los paquetes. El protocolo de mensajes de control de Internet es un protocolo de mantenimiento. Los mensajes ICMP se encapsulan dentro de los datagramas de IP para que puedan encaminarse entre varias redes interconectadas. Se utiliza para:
Este protocolo de red se utiliza para intercambiar información acerca del estado de pertenencia entre ruteadores IP que admiten la multidifusión, y miembros de grupos de multidifusión. Los hosts miembros individuales informan acerca de la pertenencia de los hosts al grupo de multidifusión; en tanto los ruteadores de multidifusión sondean periódicamente el estado de la pertenencia.
La última versión disponible de este protocolo es la IGMPv3 descrita en el RFC 3376.
Mediante el protocolo IGMP, el propio ruteador de multidifusión local de alguna organización puede encontrar máquinas vecinas con miembros activos de cualquier grupo de multidifusión que haya en Internet, en el escenario de la propia red de área local de la organización en cuestión.
El protocolo IGMP ocupa, al igual que el protocolo ICMP, un mismo subnivel de comunicaciones por encima de IP en el nivel de red o Internet. Además, y al igual que el protocolo ICMP, el protocolo IGMP está tan íntimamente ligado al protocolo IP que, de hecho, se puede ver como una parte integral de IP; es decir, un módulo más dentro del propio módulo o proceso IP.
El protocolo de datagramas de usuarios suministra un servicio no orientado a la conexión (sin que se haya establecido anteriormente una conexión) y no fiable (no tiene confirmación ni control de flujo). Se utiliza frecuentemente en comunicaciones de datagramas IP de difusión. Puesto que no está garantizada la recepción de los datagramas UDP; los programas que lo utilizan deben elaborar sus propios mecanismos de fiabilidad.
Su uso principal es para protocolos como DHCP, BOOTP, DNS y otros protocolos donde se hace un intercambio de paquetes en los cuales no es necesario tener la confirmación de los paquetes entregados, por ejemplo, en la transmisión de un video por streaming, donde podemos llegar a perder paquetes en la transmisión y no es necesario su reenvío para verlos posteriormente, ya que esto dejaría de dar sentido a lo que se ve.
Es un protocolo de Internet orientado a conexión responsable de fragmentar los datos en paquetes que el protocolo IP envía a la red. Este protocolo proporciona un flujo de comunicación fiable y secuenciada para la comunicación de red.
El protocolo de control de transmisión suministra a los programas un servicio orientado a conexión fiable y de flujos de bytes. Los servicios de red se basan en el transporte TCP para iniciar la sesión, compartir archivos e impresión, duplicar la información entre controladores de dominio, transferencia de listas de examinadores y otras funciones comunes. Sólo puede utilizarse TCP para comunicaciones de uno a uno. TCP utiliza una suma de comprobación en ambas cabeceras y en los datos de cada segmento para reducir las probabilidades de corrupción que no se detecte en los datos.
Un mensaje de ACK (acknowledgment) es usado para verificar que los datos hayan sido recibidos por los otros hosts. Por cada segmento enviado, el host que recibe debe enviar un ACK. Cuando no se recibe el mensaje de ACK, la información es retransmitida; igualmente, cuando un segmento es dañado se vuelve a enviar.
Estructura del paquete de TCP2. Todos los paquetes de TCP tienen dos partes: datos y encabezado. Los campos que contiene el encabezado son los siguientes:
Campo | Función |
Version | 4 bits son usados para indicar la versión de IP. |
Source Port | Puerto del host que envía 16 bits. |
Destination Port | Puerto del host destino: 16 bits. |
Sequence Number | La secuencia en bits transmitidos por segmento. El número de secuencia es usado para verificar que todos los bytes fueron recibidos: 32 bits. |
Acknowledgment Number | El número de secuencia de los bytes que host local espera recibir: 32 bits. |
Data Length | Longitud del encabezado: 4 bits. |
Reserved | Reservado para uso futuro: 6 bits. |
Flags | Este campo especifica el contenido del segmento. |
Windows | Indica qué espacio está disponible en la ventana TCP. |
Checksum | Verifica que el encabezado no esté corrompido: 16 bits. |
Urgent Pointer | Cuando un dato urgente es enviado (se especifica en el campo Flag): 16 bits. |
2 Consultado el 25 de septiembre de 2017 de http://www.rfc-es.org/rfc/rfc0793-es.txt
Cada equipo en una red IP tiene al menos una dirección IP. Además, cada máquina tiene varios procesos individuales en ejecución. Cada proceso puede llegar a ser un cliente de red, un servidor de red o ambos. Si el destino de un paquete se identifica sólo con la dirección IP, el sistema operativo no tiene forma de saber a qué proceso se envían los contenidos del paquete. Para resolver este problema, TCP/IP añade un componente identificado como puerto TCP o UDP. Cada conexión de una máquina a otra tiene un puerto de origen y un puerto destino. Cada puerto se etiqueta con un número entero del 0 al 65 535.
A fin de identificar cada conexión única posible entre dos máquinas, el sistema operativo tiene cuatro fuentes de información: la dirección IP origen, la dirección IP destino, el número de puerto origen y el número de puerto destino. La combinación de estos cuatro valores garantiza que es única para todas las conexiones entre máquinas.
Un puerto es un número de 16 bits entre 0 y 65 535; el puerto es un número que identifica un socket de forma que todos los paquetes, además de tener una dirección IP de destino tienen también un puerto de destino. El número de puerto es fijo en el servidor y depende del servicio que preste (por ejemplo, un servidor web está en el puerto 80 siempre); y en el usuario depende de la conexión, pues utiliza un número de puerto distinto para cada computadora con el que se conecta.
Un socket es una interfaz de entrada-salida de datos que permite la intercomunicación entre procesos. Los procesos pueden estar ejecutándose en el mismo o en distintos sistemas, unidos mediante una red. Un identificador de socket es una pareja formada por una dirección IP y un puerto. Cuando un programa crea un socket puede solicitarle al sistema operativo que asocie un número de puerto con el socket.
Los sockets stream son los más utilizados, hacen uso del protocolo TCP, el cual provee un flujo de datos bidireccional, secuenciado, sin duplicación de paquetes y libre de errores. La especificación del protocolo TCP se puede leer en la RFC 793.
Los sockets datagram hacen uso del protocolo UDP, el cual provee un flujo de datos bidireccional; pero los paquetes pueden llegar fuera de secuencia; pueden no llegar o contener errores. Se llaman también sockets sin conexión, porque no hay que mantener una conexión activa, como en el caso de sockets stream. Son utilizados para transferencia de información paquete por paquete.
Actividad. Protocolos de red
Cuando nos comunicamos desde nuestra computadora o teléfono inteligente a algún sitio en Internet, o descargamos el correo electrónico, o transferimos música, siempre hacemos uso de protocolos que permiten esa comunicación. Los protocolos identifican cada servicio de red que utilizamos para responder a cada petición que se hace, por ejemplo, visualizar una página web o realizar la descarga de un archivo.
Selecciona el concepto de protocolo de red correcto.
Autoevaluación. Características básicas de los protocolos
Los protocolos nos sirven para comunicarnos en la red de una forma ordenada; sus funciones tienen mucho que ver con la capa en la que trabajan. Veamos cuánto sabes del tema o si será necesario dar un repaso a lo leído.
Verifica si son verdaderas o falsas las características básicas de los protocolos que a continuación se enuncian.