Datagrama
Un datagrama es una unidad de transferencia básica asociada con una red de conmutación de paquetes. Los datagramas suelen estar estructurados en secciones de encabezado y carga útil. Los datagramas proporcionan un servicio de comunicación sin conexión a través de una red de conmutación de paquetes. No es necesario que la red garantice la entrega, la hora de llegada y el orden de llegada de los datagramas.
Historia
A principios de la década de 1970, el ponente del CCITT sobre conmutación de paquetes, Halvor, creó el término datagrama combinando las palabras datos y telegrama. Bothner-Por.
Si bien la palabra era nueva, el concepto ya tenía una larga historia.
En 1962, Paul Baran describió, en un informe de RAND Corporation, una hipotética red militar que debía resistir un ataque nuclear. Pequeños 'bloques de mensajes' estandarizados, con direcciones de origen y destino, se almacenaron y reenviaron en nodos informáticos de una red informática altamente redundante. "El usuario de la red que ha solicitado una "conexión virtual" a una estación final y ha transmitido mensajes... también podría ver el sistema como una caja negra que proporciona una aparente conexión de circuito.
En 1967, Donald Davies publicó un artículo seminal en el que introdujo las palabras ahora ampliamente utilizadas paquete y conmutación de paquetes. Su red central es similar a la de Paul Baran, aunque ha sido diseñada de forma independiente. Para lidiar con las permutaciones de datagramas (debido a las preferencias de enrutamiento actualizadas dinámicamente) y las pérdidas de datagramas (inevitables cuando las fuentes rápidas envían a destinos lentos), asume que "todos los usuarios de la red se proporcionarán algún tipo de control de errores". #34; (lo que se llamará más adelante en un servicio de datagrama puro). Su objetivo es, por primera vez en la conmutación de paquetes, una 'red de comunicación de portador común'. Para soportar el acceso remoto a los servicios informáticos por parte de los terminales de usuario, que en ese momento transmitían en general carácter por carácter, incluyó en la periferia de la red ordenadores de interfaz que convierten los flujos de caracteres en flujos de paquetes y viceversa.
En 1970, Lawrence Roberts y Barry D. Wessler publicaron un artículo sobre ARPANET, la primera red de conmutación de paquetes de varios nodos. Un documento adjunto describía sus nodos de conmutación (los IMP) y sus formatos de paquete. El núcleo de la red realizó el cambio de datagramas como en Baran's y Davies's. modelo, pero se agregó provisión dentro de la red, en su periferia, para lidiar con las pérdidas y permutaciones de datagramas. De este modo, se ofreció un servicio confiable de transferencia de mensajes a las computadoras de los usuarios, lo que simplificó enormemente su propio trabajo y lo hizo menos dependiente de futuras investigaciones.
En 1973, Louis Pouzin presentó su diseño para Cyclades, la primera red de tamaño real que implementaba el modelo de datagrama puro de Donald Davies. Por lo tanto, el equipo de Cyclades ha sido el primero en abordar el problema altamente complejo de proporcionar a las aplicaciones de usuario un servicio de circuito virtual confiable (el equivalente a una conexión TCP de Internet) mientras usa un servicio de red de extremo a extremo conocido por producir permutaciones y pérdidas de datagramas no despreciables.. Aunque la preocupación de Pouzin 'en una primera etapa no es hacer un gran avance en la tecnología de conmutación de paquetes, sino construir una herramienta de comunicaciones confiable para las Cícladas', dos miembros de su equipo, Hubert Zimmerman y Gérard Le Lann, hizo contribuciones significativas al diseño del TCP de Internet que Vint Cerf, su diseñador principal, reconoció.
En 1981, la Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA) emitió la primera especificación del protocolo de Internet (IP). Introdujo una gran evolución del concepto de datagrama: fragmentación. Con la fragmentación, algunas partes de la red global pueden utilizar paquetes de gran tamaño (normalmente, redes de área local para minimizar la potencia de procesamiento), mientras que otras pueden imponer tamaños de paquetes más pequeños (normalmente, redes de área amplia para minimizar el tiempo de respuesta). Los nodos de red pueden dividir un paquete de un datagrama en varios paquetes más pequeños del mismo datagrama.
En 1999, el Grupo de Trabajo de Ingeniería de Internet (IETF) oficializó el uso de la traducción de direcciones de red (NAT) ya ampliamente implementada por lo que cada dirección pública puede ser compartida por varios dispositivos privados. Con él, se retrasó el próximo agotamiento de direcciones de Internet, lo que dejó suficiente tiempo para introducir IPv6, la nueva generación de paquetes de Internet que admiten direcciones más largas. El principio inicial de la transparencia total de la red de extremo a extremo para los datagramas se relajó: los nodos NAT tenían que administrar los estados por conexión, haciéndolos en parte orientados a la conexión.
En 2015, el IETF mejoró su débil "informativo" recomendación de 1998, que los nodos de conmutación de datagramas realicen una gestión activa de colas (AQM), para que sea una "mejor práctica actual" más fuerte y más detallada; recomendación. Si bien el modelo inicial de colas de datagramas era simple de implementar y no necesitaba más ajustes que las longitudes de las colas, se consideró necesario el soporte de mecanismos más sofisticados y parametrizados 'para mejorar y preservar el rendimiento de Internet'. (ROJO, ECN, etc.). También se solicitó más investigación sobre el tema, con una lista de elementos identificados.
Definición
El término datagrama se define de la siguiente manera:
“Una entidad independiente y autocontenida de datos que transporta suficiente información para ser enrutada desde la fuente al ordenador de destino sin depender de intercambios anteriores entre esta fuente y el ordenador de destino y la red de transporte. ”
—RFC 1594
Un datagrama debe ser autónomo sin depender de intercambios anteriores porque no existe una conexión de duración fija entre los dos puntos de comunicación como ocurre, por ejemplo, en la mayoría de las conversaciones telefónicas de voz.
El servicio de datagramas a menudo se compara con un servicio de entrega de correo; el usuario solo proporciona la dirección de destino, pero no recibe ninguna garantía de entrega ni confirmación de la entrega exitosa. Por lo tanto, el servicio de datagramas se considera poco confiable. El servicio de datagramas enruta datagramas sin crear primero una ruta predeterminada. Por lo tanto, el servicio de datagramas se considera sin conexión. Tampoco se tiene en cuenta el orden en que este y otros datagramas se envían o reciben. De hecho, muchos datagramas en el mismo grupo pueden viajar por caminos diferentes antes de llegar al mismo destino.
Estructura
Cada datagrama tiene dos componentes, un encabezado y una carga útil de datos. El encabezado contiene toda la información suficiente para el enrutamiento desde el equipo de origen hasta el destino sin depender de intercambios previos entre el equipo y la red. Los encabezados pueden incluir direcciones de origen y destino, así como un campo de tipo. La carga útil son los datos que se van a transportar. Este proceso de anidar cargas útiles de datos en un encabezado etiquetado se denomina encapsulación.
Ejemplos
OSI layer | Nombre |
---|---|
Capa 4 | Serie de datos |
Capa 3 | Paquete de datos |
Capa 2 | Marco Ethernet (IEEE 802.3) Marco LAN inalámbrico (IEEE 802.11) |
Capa 1 | Chip (CDMA) |
Protocolo de Internet
El Protocolo de Internet (IP) define estándares para varios tipos de datagramas. La capa de Internet es un servicio de datagramas proporcionado por una IP. Por ejemplo, UDP lo ejecuta un servicio de datagramas en la capa de Internet. IP es un servicio de entrega de mensajes totalmente sin conexión, de mejor esfuerzo y poco confiable. TCP es un protocolo de nivel superior que se ejecuta sobre IP y proporciona un servicio confiable orientado a la conexión.
Contenido relacionado
Control de enlace de datos de alto nivel
Computación de 8 bits
Cierre (programación informática)