Protocolo de Internet

Tomado de: programas.cuaed.unam.mx

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.

Protocolos de Internet

Los siguientes protocolos trabajan en el nivel de Internet.

ARP (Address Resolution Protocol) RFC 826

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é

RARP (Reverse Address Resolution Protocol) RFC 90

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.

IP (Internet Protocol) RFC 791

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.

CampoFunción
Version4 bits son usados para indicar la versión de IP.
Header Length4 bits para indicar el número de 32 bits en el encabezado IP.
Type of service8 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 Length13 bits usados para indicar el total de la longitud del datagrama.
Identification16 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 Flags3 bits para las banderas del proceso o de fragmentación.
Fragmentation Offset13 bits para un contador que indica la posición del fragmento.
TTL8 bits para indicar los saltos, antes de ser descargado.
Protocol8 bits para identificar el protocolo IP del cliente.
Header Checksum16 bits usados como checksum.
Source Address32 bits para almacenar la IP del host origen.
Destination Address32 bits para la dirección destino.
Options and PaddingUn 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

RARP (Reverse ICMP (Internet Control Message Protocol) RFC 792

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:

  • Construir y mantener tablas de ruteo.
  • Diagnosticar problemas (ping y traceroute) que envían y reciben mensajes de petición de Echo ICMP, con lo que determinan si un host está encendido y conectado a la red.
  • Ajustar el control de flujo para prevenir la saturación de enlace de los ruteadores.

IGMP (Internet Group Management Protocol) RFC 988

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.

UDP (User Datagram Protocol) RFC 792

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.

TCP (Transmission Control Protocol) RFC 793

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:

CampoFunción
Version4 bits son usados para indicar la versión de IP.
Source PortPuerto del host que envía 16 bits.
Destination PortPuerto del host destino: 16 bits.
Sequence NumberLa secuencia en bits transmitidos por segmento. El número de secuencia es usado para verificar que todos los bytes fueron recibidos: 32 bits.
Acknowledgment NumberEl número de secuencia de los bytes que host local espera recibir: 32 bits.
Data LengthLongitud del encabezado: 4 bits.
ReservedReservado para uso futuro: 6 bits.
FlagsEste campo especifica el contenido del segmento.
WindowsIndica qué espacio está disponible en la ventana TCP.
ChecksumVerifica que el encabezado no esté corrompido: 16 bits.
Urgent PointerCuando 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

Puerto y socket

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.

https://programas.cuaed.unam.mx/repositorio/moodle/pluginfile.php/795/mod_resource/content/7/contenido/index.html

Deja una respuesta

Tu dirección de correo electrónico no será publicada.