stringtranslate.com

Protocolo de comunicación

Un protocolo de comunicación es un sistema de reglas que permite que dos o más entidades de un sistema de comunicaciones transmitan información a través de cualquier variación de una cantidad física . El protocolo define las reglas, la sintaxis , la semántica y la sincronización de la comunicación y los posibles métodos de recuperación de errores . Los protocolos pueden implementarse mediante hardware , software o una combinación de ambos. [1]

Los sistemas de comunicación utilizan formatos bien definidos para intercambiar diversos mensajes. Cada mensaje tiene un significado exacto destinado a obtener una respuesta de un rango de posibles respuestas predeterminadas para esa situación particular. El comportamiento especificado es típicamente independiente de cómo se va a implementar . Los protocolos de comunicación tienen que ser acordados por las partes involucradas. [2] Para llegar a un acuerdo, un protocolo puede convertirse en un estándar técnico . Un lenguaje de programación describe lo mismo para los cálculos, por lo que existe una estrecha analogía entre protocolos y lenguajes de programación: los protocolos son a la comunicación lo que los lenguajes de programación son a los cálculos . [3] Una formulación alternativa establece que los protocolos son a la comunicación lo que los algoritmos son a los cálculos . [4]

Los protocolos múltiples suelen describir diferentes aspectos de una única comunicación. Un grupo de protocolos diseñados para funcionar juntos se conoce como conjunto de protocolos; cuando se implementan en software, forman una pila de protocolos .

Los protocolos de comunicación de Internet son publicados por el Grupo de Trabajo de Ingeniería de Internet (IETF). El IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) se ocupa de las redes cableadas e inalámbricas y la Organización Internacional de Normalización (ISO) se ocupa de otros tipos. La UIT-T se ocupa de los protocolos y formatos de telecomunicaciones para la red telefónica pública conmutada (PSTN). A medida que la PSTN e Internet convergen , los estándares también se están orientando hacia la convergencia.

Sistemas de comunicación

Historia

El primer uso del término protocolo en un contexto moderno de conmutación de datos se produjo en abril de 1967 en un memorando titulado A Protocol for Use in the NPL Data Communications Network. Bajo la dirección de Donald Davies , pionero en la conmutación de paquetes en el Laboratorio Nacional de Física del Reino Unido, fue escrito por Roger Scantlebury y Keith Bartlett para la red NPL . [5] [6] [7] [8] [9]

En ARPANET , el punto de partida para la comunicación de host a host en 1969 fue el protocolo 1822 , escrito por Bob Kahn , que definió la transmisión de mensajes a un IMP. [10] El Programa de Control de Red (NCP) para ARPANET, desarrollado por Steve Crocker y otros estudiantes de posgrado, incluidos Jon Postel y Vint Cerf , se implementó por primera vez en 1970. [11] La interfaz NCP permitió que el software de aplicación se conectara a través de ARPANET implementando protocolos de comunicación de nivel superior, un ejemplo temprano del concepto de capas de protocolo . [12]

La red CYCLADES , diseñada por Louis Pouzin a principios de los años 1970, fue la primera en implementar el principio de extremo a extremo y hacer que los hosts fueran responsables de la entrega confiable de datos en una red de conmutación de paquetes, en lugar de que esto sea un servicio de la red en sí. [13] Su equipo fue el primero en abordar el problema altamente complejo de proporcionar a las aplicaciones de usuario un servicio de circuito virtual confiable mientras se utiliza un servicio de mejor esfuerzo , una contribución temprana a lo que será el Protocolo de Control de Transmisión (TCP). [14] [15] [16]

Bob Metcalfe y otros en Xerox PARC describieron la idea de Ethernet y el PARC Universal Packet (PUP) para interconexión de redes. [17]

Las investigaciones realizadas a principios de los años 1970 por Bob Kahn y Vint Cerf condujeron a la formulación del Programa de Control de Transmisión (TCP). [18] Su especificación RFC  675 fue escrita por Cerf con Yogen Dalal y Carl Sunshine en diciembre de 1974, todavía un diseño monolítico en ese momento.

El Grupo de Trabajo de Redes Internacionales acordó un estándar de datagramas sin conexión que se presentó al CCITT en 1975, pero no fue adoptado ni por el CCITT ni por ARPANET. [19] Investigaciones internacionales independientes, en particular el trabajo de Rémi Després , contribuyeron al desarrollo del estándar X.25 , basado en circuitos virtuales , que fue adoptado por el CCITT en 1976. [20] [21] Los fabricantes de computadoras desarrollaron protocolos propietarios como Systems Network Architecture (SNA) de IBM, DECnet de Digital Equipment Corporation y Xerox Network Systems . [22]

El software TCP fue rediseñado como una pila de protocolos modular, conocida como TCP/IP. Esta se instaló en SATNET en 1982 y en ARPANET en enero de 1983. El desarrollo de un conjunto completo de protocolos de Internet en 1989, como se describe en RFC  1122 y RFC  1123, sentó las bases para el crecimiento de TCP/IP como un conjunto de protocolos integral como el componente central de la Internet emergente . [23]

El trabajo internacional sobre un modelo de referencia para los estándares de comunicación condujo al modelo OSI , publicado en 1984. Durante un período a fines de la década de 1980 y principios de la de 1990, los ingenieros, las organizaciones y las naciones se polarizaron sobre la cuestión de qué estándar , el modelo OSI o el conjunto de protocolos de Internet, daría como resultado las mejores y más robustas redes de computadoras. [24] [25] [26]

Concepto

La información que se intercambia entre dispositivos a través de una red u otros medios se rige por reglas y convenciones que pueden establecerse en especificaciones de protocolos de comunicación. La naturaleza de la comunicación, los datos reales intercambiados y cualquier comportamiento dependiente del estado se definen mediante estas especificaciones. En los sistemas informáticos digitales, las reglas se pueden expresar mediante algoritmos y estructuras de datos . Los protocolos son a la comunicación lo que los algoritmos o lenguajes de programación son a los cálculos. [3] [4]

Los sistemas operativos suelen contener un conjunto de procesos cooperativos que manipulan datos compartidos para comunicarse entre sí. Esta comunicación se rige por protocolos bien entendidos, que pueden estar integrados en el propio código del proceso. [27] [28] Por el contrario, debido a que no hay memoria compartida , los sistemas que se comunican tienen que comunicarse entre sí utilizando un medio de transmisión compartido . La transmisión no es necesariamente fiable y los sistemas individuales pueden utilizar diferentes hardware o sistemas operativos.

Para implementar un protocolo de red, los módulos de software de protocolo se interconectan con un marco implementado en el sistema operativo de la máquina. Este marco implementa la funcionalidad de red del sistema operativo. [29] Cuando los algoritmos de protocolo se expresan en un lenguaje de programación portátil, el software de protocolo puede volverse independiente del sistema operativo . Los marcos más conocidos son el modelo TCP/IP y el modelo OSI .

En el momento en que se desarrolló Internet, la superposición de abstracciones había demostrado ser un enfoque de diseño exitoso tanto para el diseño de compiladores como de sistemas operativos y, dadas las similitudes entre los lenguajes de programación y los protocolos de comunicación, los programas de red originalmente monolíticos se descompusieron en protocolos cooperativos. [30] Esto dio lugar al concepto de protocolos en capas que hoy en día forman la base del diseño de protocolos. [31]

Los sistemas normalmente no utilizan un único protocolo para gestionar una transmisión, sino que utilizan un conjunto de protocolos cooperativos, a veces denominados suite de protocolos . [32] Algunas de las suites de protocolos más conocidas son TCP/IP , IPX/SPX , X.25 , AX.25 y AppleTalk .

Los protocolos se pueden organizar en función de su funcionalidad en grupos; por ejemplo, existe un grupo de protocolos de transporte . Las funcionalidades se asignan a las capas, y cada capa resuelve una clase distinta de problemas relacionados con, por ejemplo, las funciones de interfaz de aplicación, transporte, Internet y red. [33] Para transmitir un mensaje, se debe seleccionar un protocolo de cada capa. La selección del siguiente protocolo se logra ampliando el mensaje con un selector de protocolo para cada capa. [34]

Tipos

Existen dos tipos de protocolos de comunicación, en función de su representación del contenido transportado: basados ​​en texto y binarios. [35]

Basado en texto

Un protocolo basado en texto o protocolo de texto simple representa su contenido en formato legible para humanos , a menudo en texto simple codificado en una codificación legible por máquinas como ASCII o UTF-8 , o en formatos basados ​​en texto estructurado como el formato hexadecimal Intel , XML o JSON .

La legibilidad humana inmediata contrasta con los protocolos binarios nativos que tienen beneficios inherentes para su uso en un entorno informático (como facilidad de análisis mecánico y mejor utilización del ancho de banda ).

Las aplicaciones de red tienen varios métodos para encapsular datos. Un método muy común en los protocolos de Internet es una representación orientada a texto que transmite solicitudes y respuestas como líneas de texto ASCII , terminadas con un carácter de nueva línea (y normalmente un carácter de retorno de carro). Algunos ejemplos de protocolos que utilizan texto simple y legible para sus comandos son FTP ( Protocolo de transferencia de archivos ), SMTP ( Protocolo simple de transferencia de correo ), las primeras versiones de HTTP ( Protocolo de transferencia de hipertexto ) y el protocolo finger . [36]

Los protocolos basados ​​en texto generalmente están optimizados para el análisis y la interpretación humanos y, por lo tanto, son adecuados siempre que se requiera la inspección humana del contenido del protocolo, como durante la depuración y durante las primeras fases de diseño del desarrollo del protocolo.

Binario

Un protocolo binario utiliza todos los valores de un byte , a diferencia de un protocolo basado en texto que solo utiliza valores correspondientes a caracteres legibles por humanos en codificación ASCII . Los protocolos binarios están pensados ​​para ser leídos por una máquina, no por un ser humano. Los protocolos binarios tienen la ventaja de ser breves, lo que se traduce en velocidad de transmisión e interpretación. [37]

El binario se ha utilizado en los documentos normativos que describen estándares modernos como EbXML , HTTP/2 , HTTP/3 y EDOC . [38] Una interfaz en UML [39] también puede considerarse un protocolo binario.

Requisitos básicos

La transmisión de datos a través de una red es solo una parte del problema de un protocolo. Los datos recibidos deben evaluarse en el contexto del progreso de la conversación, por lo que un protocolo debe incluir reglas que describan el contexto. Se dice que este tipo de reglas expresan la sintaxis de la comunicación. Otras reglas determinan si los datos son significativos para el contexto en el que se produce el intercambio. Se dice que este tipo de reglas expresan la semántica de la comunicación.

Los mensajes se envían y reciben en sistemas de comunicación para establecer la comunicación. Por lo tanto, los protocolos deben especificar las reglas que rigen la transmisión. En general, se deben abordar muchos de los siguientes aspectos: [40]

Formatos de datos para el intercambio de datos
Se intercambian cadenas de bits de mensajes digitales. Las cadenas de bits se dividen en campos y cada campo lleva información relevante para el protocolo. Conceptualmente, la cadena de bits se divide en dos partes llamadas encabezado y carga útil . El mensaje real se transporta en la carga útil. El área del encabezado contiene los campos relevantes para el funcionamiento del protocolo. Las cadenas de bits más largas que la unidad máxima de transmisión (MTU) se dividen en partes del tamaño apropiado. [41]
Formatos de direcciones para el intercambio de datos
Las direcciones se utilizan para identificar tanto al remitente como al receptor o receptores previstos. Las direcciones se incluyen en el área de encabezado de las cadenas de bits, lo que permite a los receptores determinar si las cadenas de bits son de interés y deben procesarse o ignorarse. Una conexión entre un remitente y un receptor se puede identificar utilizando un par de direcciones (dirección del remitente, dirección del receptor) . Por lo general, algunos valores de dirección tienen significados especiales. Una dirección de todos 1 podría interpretarse como un direccionamiento de todas las estaciones de la red, por lo que el envío a esta dirección daría como resultado una difusión en la red local. Las reglas que describen los significados del valor de la dirección se denominan colectivamente esquema de direccionamiento . [42]
Mapeo de direcciones
A veces, los protocolos necesitan mapear direcciones de un esquema con direcciones de otro esquema. Por ejemplo, para traducir una dirección IP lógica especificada por la aplicación a una dirección MAC de Ethernet. Esto se conoce como mapeo de direcciones . [43]
Enrutamiento
Cuando los sistemas no están conectados directamente, los sistemas intermediarios a lo largo de la ruta hacia los receptores previstos deben reenviar mensajes en nombre del remitente. En Internet, las redes están conectadas mediante enrutadores. La interconexión de redes a través de enrutadores se denomina interconexión de redes .
Detección de errores de transmisión
La detección de errores es necesaria en redes donde es posible la corrupción de datos. En un enfoque común, se agrega un CRC del área de datos al final de los paquetes, lo que permite que el receptor detecte diferencias causadas por la corrupción. El receptor rechaza los paquetes con diferencias de CRC y organiza de alguna manera la retransmisión. [44]
Expresiones de gratitud
Para la comunicación orientada a la conexión es necesario confirmar la recepción correcta de los paquetes . Los receptores envían confirmaciones a sus respectivos remitentes. [45]
Pérdida de información: tiempos de espera y reintentos
Los paquetes pueden perderse en la red o demorarse en su tránsito. Para hacer frente a esto, bajo algunos protocolos, un remitente puede esperar un acuse de recibo de la recepción correcta del receptor dentro de un cierto período de tiempo. Por lo tanto, en los tiempos de espera , el remitente puede necesitar retransmitir la información. [a] En caso de un enlace roto permanentemente, la retransmisión no tiene efecto, por lo que el número de retransmisiones es limitado. Exceder el límite de reintentos se considera un error. [46]
Dirección del flujo de información
Es necesario abordar la dirección si las transmisiones solo pueden ocurrir en una dirección a la vez, como en los enlaces semidúplex , o desde un remitente a la vez, como en un medio compartido . Esto se conoce como control de acceso al medio . Se deben tomar medidas para dar cabida al caso de colisión o contención en el que dos partes transmiten o desean transmitir simultáneamente. [47]
Control de secuencia
Si se dividen en fragmentos largos y luego se envían a la red individualmente, los fragmentos pueden perderse o demorarse o, en algunos tipos de redes, tomar rutas diferentes a su destino. Como resultado, los fragmentos pueden llegar fuera de secuencia. Las retransmisiones pueden dar como resultado fragmentos duplicados. Al marcar los fragmentos con información de secuencia en el remitente, el receptor puede determinar qué se perdió o duplicó, solicitar las retransmisiones necesarias y volver a ensamblar el mensaje original. [48]
Control de flujo
El control de flujo es necesario cuando el emisor transmite más rápido de lo que el receptor o el equipo de red intermedio puede procesar las transmisiones. El control de flujo se puede implementar mediante el envío de mensajes del receptor al emisor. [49]
Haciendo cola
Los procesos de comunicación o máquinas de estados emplean colas (o "buffers"), normalmente colas FIFO, para procesar los mensajes en el orden en que se envían y, a veces, pueden tener varias colas con diferentes priorizaciones.

Diseño de protocolo

Los principios de ingeniería de sistemas se han aplicado para crear un conjunto de principios de diseño de protocolos de red comunes. El diseño de protocolos complejos a menudo implica la descomposición en protocolos cooperativos más simples. Este conjunto de protocolos cooperativos a veces se denomina familia de protocolos o suite de protocolos [32] dentro de un marco conceptual.

Los sistemas de comunicación funcionan de forma concurrente. Un aspecto importante de la programación concurrente es la sincronización del software para recibir y transmitir mensajes de comunicación en la secuencia adecuada. La programación concurrente ha sido tradicionalmente un tema en los textos de teoría de sistemas operativos. [50] La verificación formal parece indispensable porque los programas concurrentes son conocidos por los errores ocultos y sofisticados que contienen. [51] Un enfoque matemático para el estudio de la concurrencia y la comunicación se conoce como procesos secuenciales de comunicación (CSP). [52] La concurrencia también se puede modelar utilizando máquinas de estados finitos , como las máquinas de Mealy y Moore. Las máquinas de Mealy y Moore se utilizan como herramientas de diseño en sistemas de electrónica digital que se encuentran en forma de hardware utilizado en telecomunicaciones o dispositivos electrónicos en general. [53] [ se necesita una mejor fuente ]

La literatura presenta numerosas analogías entre la comunicación informática y la programación. En este sentido, un mecanismo de transferencia de un protocolo es comparable a una unidad central de procesamiento (CPU). El marco introduce reglas que permiten al programador diseñar protocolos cooperativos de forma independiente entre sí.

Capas

Figura 2. Protocolos en relación con el esquema de capas de Internet.
El modelo TCP/IP o esquema de capas de Internet y su relación con algunos protocolos comunes.

En el diseño de protocolos modernos, los protocolos se organizan en capas para formar una pila de protocolos. La organización en capas es un principio de diseño que divide la tarea de diseño de protocolos en pasos más pequeños, cada uno de los cuales realiza una parte específica e interactúa con las otras partes del protocolo solo en un pequeño número de formas bien definidas. La organización en capas permite diseñar y probar las partes de un protocolo sin una explosión combinatoria de casos, lo que mantiene cada diseño relativamente simple.

Los protocolos de comunicación que se utilizan en Internet están diseñados para funcionar en entornos diversos y complejos. Los protocolos de Internet están diseñados para ser simples y modulares y encajan en una jerarquía básica de capas funcionales definidas en el conjunto de protocolos de Internet . [54] Los dos primeros protocolos cooperantes, el Protocolo de Control de Transmisión (TCP) y el Protocolo de Internet (IP), resultaron de la descomposición del Programa de Control de Transmisión original, un protocolo de comunicación monolítico, en este conjunto de comunicaciones en capas.

El modelo OSI fue desarrollado internacionalmente con base en la experiencia con redes anteriores a Internet como modelo de referencia para la comunicación general, con reglas de interacción de protocolos mucho más estrictas y capas rigurosas.

Por lo general, el software de aplicación se basa en una capa de transporte de datos robusta. Detrás de esta capa de transporte hay un mecanismo de entrega y enrutamiento de datagramas que, por lo general, no tiene conexión en Internet. La retransmisión de paquetes a través de redes se realiza a través de otra capa que involucra solo tecnologías de enlace de red, que a menudo son específicas de ciertas tecnologías de capa física, como Ethernet . La superposición de capas brinda oportunidades para intercambiar tecnologías cuando es necesario; por ejemplo, los protocolos a menudo se apilan en una disposición de tunelización para dar cabida a la conexión de redes diferentes. Por ejemplo, IP puede tunelizarse a través de una red de modo de transferencia asíncrono (ATM).

Superposición de protocolos

Figura 3. Flujos de mensajes utilizando un conjunto de protocolos.
Figura 3. Flujos de mensajes que utilizan un conjunto de protocolos. Los bucles negros muestran los bucles de mensajería reales, mientras que los bucles rojos son la comunicación efectiva entre capas habilitada por las capas inferiores.

La superposición de protocolos constituye la base del diseño de protocolos. [31] Permite la descomposición de protocolos únicos y complejos en protocolos más simples y cooperativos. [54] Cada capa de protocolo resuelve una clase distinta de problemas de comunicación. Juntas, las capas conforman un esquema o modelo de superposición.

Los cálculos tratan con algoritmos y datos; la comunicación implica protocolos y mensajes; por lo tanto, el análogo de un diagrama de flujo de datos es algún tipo de diagrama de flujo de mensajes. [4] Para visualizar las capas de protocolos y los conjuntos de protocolos, en la figura 3 se muestra un diagrama de los flujos de mensajes en y entre dos sistemas, A y B. Los sistemas, A y B, ambos hacen uso del mismo conjunto de protocolos. Los flujos verticales (y protocolos) son dentro del sistema y los flujos de mensajes horizontales (y protocolos) son entre sistemas. Los flujos de mensajes están regidos por reglas y los formatos de datos especificados por protocolos. Las líneas azules marcan los límites de las capas de protocolo (horizontales).

Capas de software

Figura 5: Capas de protocolo y software. Los módulos de software que implementan los protocolos están representados por cubos. El flujo de información entre los módulos está representado por flechas. Las flechas rojas (las dos superiores horizontales) son virtuales. Las líneas azules marcan los límites de las capas.

El software que soporta los protocolos tiene una organización en capas y su relación con las capas de protocolos se muestra en la figura 5.

Para enviar un mensaje en el sistema A, el módulo de software de la capa superior interactúa con el módulo que se encuentra directamente debajo de él y le entrega el mensaje para que sea encapsulado. El módulo inferior completa los datos del encabezado de acuerdo con el protocolo que implementa e interactúa con el módulo inferior que envía el mensaje a través del canal de comunicaciones al módulo inferior del sistema B. En el sistema receptor B sucede lo contrario, por lo que finalmente el mensaje se entrega en su forma original al módulo superior del sistema B. [55]

La traducción de programas se divide en subproblemas. Como resultado, el software de traducción también está estructurado en capas, lo que permite que las capas de software se diseñen de forma independiente. El mismo enfoque se puede observar en la estructura en capas de TCP/IP. [56]

Los módulos que se encuentran por debajo de la capa de aplicación generalmente se consideran parte del sistema operativo. Pasar datos entre estos módulos es mucho menos costoso que pasar datos entre un programa de aplicación y la capa de transporte. El límite entre la capa de aplicación y la capa de transporte se denomina límite del sistema operativo. [57]

Superposición estricta

Adherirse estrictamente a un modelo en capas, una práctica conocida como estratificación estricta, no siempre es el mejor enfoque para la creación de redes. [58] La estratificación estricta puede tener un impacto negativo en el rendimiento de una implementación. [59]

Aunque el uso de capas de protocolos es hoy omnipresente en el campo de las redes informáticas, ha sido criticado históricamente por muchos investigadores [60] ya que abstraer la pila de protocolos de esta manera puede provocar que una capa superior duplique la funcionalidad de una capa inferior, siendo un excelente ejemplo la recuperación de errores tanto por enlace como de extremo a extremo. [61]

Patrones de diseño

Los problemas que se repiten con frecuencia en el diseño e implementación de protocolos de comunicación se pueden abordar mediante patrones de diseño de software . [62] [63] [64] [65] [66]

Especificación formal

Los métodos formales populares para describir la sintaxis de la comunicación son la Notación de Sintaxis Abstracta Uno (un estándar ISO ) y la forma Backus-Naur aumentada (un estándar IETF ).

Los modelos de máquinas de estados finitos se utilizan para describir formalmente las posibles interacciones del protocolo. [67] [68] y máquinas de estados finitos comunicantes [69]

Desarrollo de protocolo

Para que se produzca la comunicación, es necesario seleccionar protocolos. Las reglas se pueden expresar mediante algoritmos y estructuras de datos. La independencia del hardware y del sistema operativo se mejora al expresar los algoritmos en un lenguaje de programación portátil. La independencia de la fuente de la especificación proporciona una interoperabilidad más amplia.

Los estándares de protocolo se crean habitualmente obteniendo la aprobación o el apoyo de una organización de normalización , que inicia el proceso de normalización. Los miembros de la organización de normalización aceptan adherirse al resultado del trabajo de forma voluntaria. A menudo, los miembros controlan grandes cuotas de mercado relevantes para el protocolo y, en muchos casos, los estándares se aplican por ley o por el gobierno porque se cree que sirven a un interés público importante, por lo que obtener la aprobación puede ser muy importante para el protocolo.

La necesidad de estándares de protocolo

La necesidad de estándares de protocolo se puede demostrar observando lo que sucedió con el protocolo de Comunicaciones Sincrónicas Binarias (BSC) inventado por IBM . BSC es un protocolo de nivel de enlace temprano utilizado para conectar dos nodos separados. Originalmente no estaba destinado a ser utilizado en una red multinodo, pero al hacerlo reveló varias deficiencias del protocolo. En ausencia de estandarización, los fabricantes y las organizaciones se sintieron libres de mejorar el protocolo, creando versiones incompatibles en sus redes. En algunos casos, esto se hizo deliberadamente para disuadir a los usuarios de usar equipos de otros fabricantes. Hay más de 50 variantes del protocolo bi-sync original. Se puede suponer que un estándar habría evitado al menos algo de esto. [29]

En algunos casos, los protocolos ganan dominio del mercado sin pasar por un proceso de estandarización. Estos protocolos se conocen como estándares de facto . Los estándares de facto son comunes en mercados emergentes, mercados de nicho o mercados que están monopolizados (u oligopolizados ). Pueden tener un control muy negativo sobre un mercado, especialmente cuando se utilizan para ahuyentar a la competencia. Desde una perspectiva histórica, la estandarización debe verse como una medida para contrarrestar los efectos nocivos de los estándares de facto. Existen excepciones positivas; un sistema operativo estándar de facto como Linux no tiene este control negativo sobre su mercado, porque las fuentes se publican y mantienen de manera abierta, lo que invita a la competencia.

Organizaciones de normalización

Algunas de las organizaciones de normalización relevantes para los protocolos de comunicación son la Organización Internacional de Normalización (ISO), la Unión Internacional de Telecomunicaciones (UIT), el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) y el Grupo de Trabajo de Ingeniería de Internet (IETF). El IETF mantiene los protocolos que se utilizan en Internet. El IEEE controla muchos protocolos de software y hardware en la industria electrónica para dispositivos comerciales y de consumo. La UIT es una organización paraguas de ingenieros de telecomunicaciones que diseñan la red telefónica pública conmutada (PSTN), así como muchos sistemas de comunicación por radio . Para la electrónica marina se utilizan los estándares NMEA . El Consorcio World Wide Web (W3C) produce protocolos y estándares para tecnologías web.

Se supone que las organizaciones internacionales de normalización son más imparciales que las organizaciones locales que tienen intereses comerciales o nacionales que considerar. Las organizaciones de normalización también realizan investigación y desarrollo para las normas del futuro. En la práctica, las organizaciones de normalización mencionadas cooperan estrechamente entre sí. [70]

En el desarrollo de un protocolo pueden participar varios organismos de normalización. Si no están coordinados, el resultado puede ser múltiples definiciones incompatibles de un protocolo, o múltiples interpretaciones incompatibles de mensajes; es posible que invariantes importantes de una definición (por ejemplo, que los valores de tiempo de vida sean monótonos y decrecientes para evitar bucles de enrutamiento estables ) no se respeten en otra. [71]

El proceso de estandarización

En la ISO, el proceso de normalización comienza con la designación de un subcomité de trabajo. El grupo de trabajo emite borradores de trabajo y documentos de discusión para las partes interesadas (incluidos otros organismos de normalización) con el fin de provocar debates y comentarios. Esto generará muchas preguntas, mucha discusión y, por lo general, algún desacuerdo. Estos comentarios se tienen en cuenta y el grupo de trabajo elabora una propuesta preliminar . Después de la retroalimentación, la modificación y el compromiso, la propuesta alcanza el estado de borrador de norma internacional y, en última instancia, de norma internacional . Las normas internacionales se vuelven a emitir periódicamente para abordar las deficiencias y reflejar los puntos de vista cambiantes sobre el tema. [72]

Estandarización OSI

Una lección aprendida de ARPANET , el predecesor de Internet, fue que los protocolos necesitan un marco para funcionar. Por lo tanto, es importante desarrollar un marco de uso general y a prueba de futuro adecuado para protocolos estructurados (como protocolos en capas) y su estandarización. Esto evitaría estándares de protocolo con funcionalidad superpuesta y permitiría una definición clara de las responsabilidades de un protocolo en los diferentes niveles (capas). [74] Esto dio lugar al modelo de interconexión de sistemas abiertos (modelo OSI), que se utiliza como marco para el diseño de protocolos y servicios estándar que se ajusten a las diversas especificaciones de capa. [75]

En el modelo OSI, se supone que los sistemas que se comunican están conectados por un medio físico subyacente que proporciona un mecanismo de transmisión básico. Las capas superiores están numeradas. Cada capa proporciona servicio a la capa superior utilizando los servicios de la capa inmediatamente inferior. La capa superior proporciona servicios al proceso de aplicación. Las capas se comunican entre sí por medio de una interfaz, denominada punto de acceso al servicio . Las capas correspondientes en cada sistema se denominan entidades pares . Para comunicarse, dos entidades pares en una capa dada utilizan un protocolo específico para esa capa que se implementa utilizando los servicios de la capa inferior. [76] Para cada capa, hay dos tipos de estándares: estándares de protocolo que definen cómo se comunican las entidades pares en una capa dada, y estándares de servicio que definen cómo se comunica una capa dada con la capa superior.

En el modelo OSI, las capas y su funcionalidad son (de la capa más alta a la más baja):

A diferencia del esquema de capas TCP/IP, que supone una red sin conexión, RM/OSI supuso una red orientada a la conexión. [84] Las redes orientadas a la conexión son más adecuadas para redes de área amplia y las redes sin conexión son más adecuadas para redes de área local. La comunicación orientada a la conexión requiere algún tipo de sesión y circuitos (virtuales), de ahí la capa de sesión (que falta en el modelo TCP/IP). Los miembros constituyentes de la ISO se ocupaban principalmente de las redes de área amplia, por lo que el desarrollo de RM/OSI se concentró en las redes orientadas a la conexión y las redes sin conexión se mencionaron por primera vez en un apéndice a RM/OSI [85] [86] y luego se incorporaron en una actualización de RM/OSI. [87]

En ese momento, [ ¿cuándo? ] el IETF tuvo que lidiar con esto y con el hecho de que Internet necesitaba protocolos que simplemente no existían. [ cita requerida ] Como resultado, el IETF desarrolló su propio proceso de estandarización basado en "consenso aproximado y código ejecutable". [88] El proceso de estandarización se describe en RFC  2026.

En la actualidad, la IETF se ha convertido en una organización de estándares para los protocolos que se utilizan en Internet. RM/OSI ha ampliado su modelo para incluir servicios sin conexión y, gracias a ello, tanto TCP como IP han podido convertirse en estándares internacionales. [ cita requerida ]

Imagen de alambre

La imagen de un protocolo es la información que un observador no participante puede obtener al observar los mensajes del protocolo, incluyendo tanto la información explícitamente asignada por el protocolo como las inferencias hechas por el observador. [89] Los metadatos de protocolo no cifrados son una fuente que compone la imagen de un protocolo, y los canales secundarios, incluida la sincronización de paquetes, también contribuyen. [90] Diferentes observadores con diferentes puntos de vista pueden ver diferentes imágenes de un protocolo. [91] La imagen de un protocolo es relevante para la privacidad del usuario final y la extensibilidad del protocolo. [92]

Si alguna parte de la imagen de la red no está autenticada criptográficamente , está sujeta a modificaciones por parte de los intermediarios (es decir, los middleboxes ), lo que puede influir en el funcionamiento del protocolo. [90] Incluso si está autenticada, si una parte no está cifrada, formará parte de la imagen de la red, y los intermediarios pueden intervenir dependiendo de su contenido (por ejemplo, descartando paquetes con indicadores particulares). Las señales destinadas deliberadamente al consumo de intermediarios pueden dejarse autenticadas pero sin cifrar. [93]

La imagen del cable puede ser diseñada deliberadamente, cifrando partes que los intermediarios no deberían poder observar y proporcionando señales para lo que deberían poder. [94] Si las señales proporcionadas se desacoplan del funcionamiento del protocolo, pueden volverse poco fiables. [95] La gestión y la investigación benignas de la red se ven afectadas por el cifrado de metadatos; los diseñadores de protocolos deben equilibrar la observabilidad para la operatividad y la investigación frente a la resistencia a la osificación y la privacidad del usuario final. [92] El IETF anunció en 2014 que había determinado que la vigilancia a gran escala de las operaciones del protocolo es un ataque debido a la capacidad de inferir información de la imagen del cable sobre los usuarios y su comportamiento, [96] y que el IETF "trabajaría para mitigar el monitoreo generalizado" en sus diseños de protocolos; [97] esto no se había hecho sistemáticamente anteriormente. [97] El Consejo de Arquitectura de Internet recomendó en 2023 que la divulgación de información por parte de un protocolo a la red debería ser intencional, [98] realizada con el acuerdo tanto del destinatario como del remitente, [99] autenticada en la medida de lo posible y necesario, [100] utilizada únicamente en la medida de su fiabilidad, [101] y minimizada y proporcionada a un número mínimo de entidades. [102] [103] La ingeniería de la imagen del cable y el control de las señales que se proporcionan a los elementos de la red era un "campo en desarrollo" en 2023, según el IAB. [104]

Osificación

La osificación de protocolos es la pérdida de flexibilidad, extensibilidad y capacidad de evolución de los protocolos de red . Esto se debe en gran medida a los middleboxes que son sensibles a la imagen de cable del protocolo y que pueden interrumpir o interferir con mensajes que son válidos pero que el middlebox no reconoce correctamente. [105] Esto es una violación del principio de extremo a extremo . [106] Las causas secundarias incluyen la inflexibilidad en las implementaciones de protocolos en los puntos finales. [107]

La osificación es un problema importante en el diseño y la implementación de protocolos de Internet , ya que puede impedir que se implementen nuevos protocolos o extensiones en Internet, o imponer restricciones al diseño de nuevos protocolos; es posible que los nuevos protocolos deban encapsularse en un protocolo ya implementado o imitar la imagen de otro protocolo. [108] Debido a la osificación, el Protocolo de control de transmisión (TCP) y el Protocolo de datagramas de usuario (UDP) son las únicas opciones prácticas para los protocolos de transporte en Internet, [109] y el propio TCP se ha osificado significativamente, lo que dificulta la extensión o modificación del protocolo. [110]

Los métodos recomendados para prevenir la osificación incluyen el cifrado de metadatos del protocolo, [111] y garantizar que se ejerzan los puntos de extensión y que la variabilidad de la imagen del cable se exhiba lo más completamente posible; [112] remediar la osificación existente requiere coordinación entre los participantes del protocolo. [113] QUIC es el primer protocolo de transporte IETF que ha sido diseñado con propiedades antiosificación deliberadas. [89]

Taxonomías

Los esquemas de clasificación de los protocolos suelen centrarse en el dominio de uso y la función. Como ejemplo de dominio de uso, se utilizan protocolos orientados a conexión y protocolos sin conexión en redes orientadas a conexión y redes sin conexión respectivamente. Un ejemplo de función es un protocolo de tunelización , que se utiliza para encapsular paquetes en un protocolo de alto nivel de modo que los paquetes puedan pasar a través de un sistema de transporte utilizando el protocolo de alto nivel.

Un esquema de capas combina tanto la función como el dominio de uso. Los esquemas de capas dominantes son los desarrollados por el IETF y por ISO. A pesar del hecho de que los supuestos subyacentes de los esquemas de capas son lo suficientemente diferentes como para justificar la distinción entre ambos, es una práctica común compararlos relacionando los protocolos comunes con las capas de los dos esquemas. [114] El esquema de capas del IETF se denomina capas de Internet o capas TCP/IP . El esquema de capas de ISO se denomina modelo OSI o capas ISO .

En la configuración de equipos de red, a menudo se hace una distinción técnica: el término protocolo se refiere estrictamente a la capa de transporte, y el término servicio se refiere a los protocolos que utilizan un protocolo para el transporte. En el caso común de TCP y UDP, los servicios se distinguen por números de puerto. La conformidad con estos números de puerto es voluntaria, por lo que en los sistemas de inspección de contenido el término servicio se refiere estrictamente a los números de puerto, y el término aplicación se utiliza a menudo para referirse a los protocolos identificados a través de firmas de inspección.

Véase también

Notas

  1. ^ La falta de recepción de un acuse de recibo indica que se perdió la transmisión original o el acuse de recibo. El remitente no tiene forma de distinguir estos casos y, por lo tanto, para garantizar la recepción de todos los datos, debe asumir, de manera prudente, que se perdió la transmisión original.

Referencias

  1. ^ US 7529565, Hilpisch, Robert E.; Duchscher, Rob y Seel, Mark et al., "Protocolo de comunicación inalámbrica", publicado el 5 de mayo de 2009, asignado a Starkey Laboratories Inc. y Oticon AS 
  2. ^ Protocolo, Encyclopædia Britannica , archivado desde el original el 12 de septiembre de 2012 , consultado el 24 de septiembre de 2012
  3. ^ ab Comer 2000, Sect. 11.2 - La necesidad de múltiples protocolos, p. 177, "Son (los protocolos) a la comunicación lo que los lenguajes de programación son a la computación".
  4. ^ abc Comer 2000, Sect. 1.3 - Servicios de Internet, p. 3, "Los protocolos son a la comunicación lo que los algoritmos son a la computación"
  5. ^ Naughton, John (24 de septiembre de 2015). Una breve historia del futuro. Orion. ISBN 978-1-4746-0277-8.
  6. ^ Cambell-Kelly, Martin (1987). "Comunicaciones de datos en el Laboratorio Nacional de Física (1965-1975)". Anales de la historia de la informática . 9 (3/4): 221–247. doi :10.1109/MAHC.1987.10023. S2CID  8172150.
  7. ^ Pelkey, James L. "6.1 La subred de comunicaciones: BBN 1969". Capitalismo emprendedor e innovación: una historia de las comunicaciones informáticas 1968-1988 . Como recuerda Kahn: ... las contribuciones de Paul Baran ... También creo que Paul estaba motivado casi por completo por consideraciones de voz. Si nos fijamos en lo que escribió, estaba hablando de conmutadores que eran productos electrónicos de bajo coste. La idea de poner ordenadores potentes en estos lugares no se le había ocurrido como algo rentable. Así que la idea de los conmutadores informáticos faltaba. La noción completa de protocolos no existía en ese momento. Y la idea de las comunicaciones de ordenador a ordenador era realmente una preocupación secundaria.
  8. ^ Waldrop, M. Mitchell (2018). La máquina de los sueños. Stripe Press. pág. 286. ISBN 978-1-953953-36-0. Baran había puesto más énfasis en las comunicaciones de voz digitales que en las comunicaciones por computadora.
  9. ^ Kleinrock, L. (1978). "Principios y lecciones en comunicaciones por paquetes". Actas del IEEE . 66 (11): 1320–1329. doi :10.1109/PROC.1978.11143. ISSN  0018-9219. Paul Baran ... se centró en los procedimientos de enrutamiento y en la capacidad de supervivencia de los sistemas de comunicación distribuidos en un entorno hostil, pero no se concentró en la necesidad de compartir recursos en su forma tal como la entendemos ahora; de hecho, el concepto de conmutador de software no estaba presente en su trabajo.
  10. ^ Procesador de mensajes de interfaz: especificaciones para la interconexión de un host y un IMP (PDF) (Informe). Bolt Beranek y Newman (BBN). Informe n.º 1822.
  11. ^ LIBROS, ALTA DEFINICIÓN. UGC -NET/JRF/SET PTP & Guía de Aptitud Docente e Investigadora: UGC -NET Por HD. Libros en Alta Definición.
  12. ^ "NCP – Programa de Control de Redes". Living Internet . Archivado desde el original el 7 de agosto de 2022 . Consultado el 8 de octubre de 2022 .
  13. ^ Bennett, Richard (septiembre de 2009). "Designed for Change: End-to-End Arguments, Internet Innovation, and the Net Neutrality Debate" (PDF) . Fundación para la Tecnología de la Información y la Innovación. pp. 7, 11. Consultado el 11 de septiembre de 2017 .
  14. ^ Abbate, Janet (2000). Inventando Internet. MIT Press. Págs. 124-127. ISBN . 978-0-262-51115-5De hecho , CYCLADES, a diferencia de ARPANET, había sido diseñado explícitamente para facilitar la interconexión de redes; podía, por ejemplo, manejar distintos formatos y distintos niveles de servicio.
  15. ^ Kim, Byung-Keun (2005). Internacionalización de Internet: la coevolución de la influencia y la tecnología. Edward Elgar. Págs. 51-55. ISBN 1845426754Además de la red NPL y ARPANET, CYCLADES, una red experimental académica y de investigación, también jugó un papel importante en el desarrollo de tecnologías de redes informáticas .
  16. ^ "El quinto hombre de Internet". The Economist . 30 de noviembre de 2013. ISSN  0013-0613 . Consultado el 22 de abril de 2020 . A principios de la década de 1970, Pouzin creó una innovadora red de datos que conectaba lugares de Francia, Italia y Gran Bretaña. Su simplicidad y eficiencia indicaron el camino hacia una red que podría conectar no solo docenas de máquinas, sino millones de ellas. Captó la imaginación del Dr. Cerf y el Dr. Kahn, quienes incluyeron aspectos de su diseño en los protocolos que ahora impulsan Internet.
  17. ^ Moschovitis 1999, pág. 78-9
  18. ^ Cerf, V.; Kahn, R. (1974). "Un protocolo para la intercomunicación de redes de paquetes" (PDF) . IEEE Transactions on Communications . 22 (5): 637–648. doi :10.1109/TCOM.1974.1092259. ISSN  1558-0857. Archivado (PDF) desde el original el 6 de enero de 2017 . Consultado el 23 de febrero de 2020 . Los autores desean agradecer a varios colegas por sus útiles comentarios durante las primeras discusiones sobre los protocolos de red internacionales, especialmente a R. Metcalfe, R. Scantlebury, D. Walden y H. Zimmerman; D. Davies y L. Pouzin, quienes comentaron de manera constructiva sobre los problemas de fragmentación y contabilidad; y S. Crocker, quien comentó sobre la creación y destrucción de asociaciones.
  19. ^ McKenzie, Alexander (2011). "INWG y la concepción de Internet: un relato de testigo ocular". IEEE Annals of the History of Computing . 33 (1): 66–71. doi :10.1109/MAHC.2011.9. ISSN  1934-1547. S2CID  206443072.
  20. ^ Schwartz, Mischa (2010). "Circuitos virtuales X.25 - TRANSPAC en Francia - Redes de datos anteriores a Internet [Historia de las comunicaciones]". Revista de comunicaciones IEEE . 48 (11): 40–46. doi :10.1109/MCOM.2010.5621965. ISSN  1558-1896. S2CID  23639680.
  21. ^ Rybczynski, Tony (2009). "Comercialización de la conmutación de paquetes (1975-1985): una perspectiva canadiense [Historia de las comunicaciones]". Revista de comunicaciones del IEEE . 47 (12): 26–31. doi :10.1109/MCOM.2009.5350364. ISSN  1558-1896. S2CID  23243636.
  22. ^ La prehistoria "oculta" de las redes de investigación europeas. Trafford Publishing. p. 354. ISBN 978-1-4669-3935-6.
  23. ^ "Protocolo de Internet TCP/IP". Living Internet . Archivado desde el original el 1 de septiembre de 2022 . Consultado el 8 de octubre de 2022 .
  24. ^ Andrew L. Russell (30 de julio de 2013). "OSI: La Internet que no existía". IEEE Spectrum . Vol. 50, núm. 8.
  25. ^ Russell, Andrew L. "Rough Consensus and Running Code' and the Internet-OSI Standards War" (PDF) . IEEE Annals of the History of Computing. Archivado (PDF) del original el 17 de noviembre de 2019. Consultado el 23 de febrero de 2020 .
  26. ^ "Guerras de estándares" (PDF) . 2006. Archivado (PDF) del original el 24 de febrero de 2021. Consultado el 23 de febrero de 2020 .
  27. ^ Ben-Ari 1982, capítulo 2 - La abstracción de programación concurrente, p. 18-19, afirma lo mismo.
  28. ^ Ben-Ari 1982, Sección 2.7 - Resumen, pág. 27, resume la abstracción de programación concurrente.
  29. ^ ab Marsden 1986, Sección 6.1 - ¿Por qué son necesarios los estándares?, p. 64-65, utiliza BSC como ejemplo para mostrar la necesidad de protocolos estándar y de un marco estándar.
  30. ^ Comer 2000, Sect. 11.2 - La necesidad de múltiples protocolos, p. 177, explica esto estableciendo analogías entre la comunicación informática y los lenguajes de programación.
  31. ^ ab Sect. 11.10 - La desventaja de la superposición, pág. 192, establece: la superposición forma la base para el diseño del protocolo.
  32. ^ ab Comer 2000, Sect. 11.2 - La necesidad de múltiples protocolos, p. 177, afirma lo mismo.
  33. ^ Comer 2000, Sect. 11.3 - Las capas conceptuales del software de protocolo, p. 178, "Cada capa asume la responsabilidad de manejar una parte del problema".
  34. ^ Comer 2000, Sect. 11.11 - La idea básica detrás de la multiplexación y demultiplexación, p. 192, afirma lo mismo.
  35. ^ "Comunicación de datos: una descripción general | Temas de ScienceDirect". www.sciencedirect.com . Archivado desde el original el 31 de mayo de 2022 . Consultado el 31 de mayo de 2022 .
  36. ^ Kirch, Olaf (16 de enero de 2002). «Text Based Protocols». Archivado desde el original el 30 de mayo de 2010. Consultado el 21 de octubre de 2014 .
  37. ^ Kirch, Olaf (16 de enero de 2002). «Binary Representation Protocols». Archivado desde el original el 30 de mayo de 2010. Consultado el 4 de mayo de 2006 .
  38. ^ Kirch, Olaf (16 de enero de 2002). «Binary Representation Protocols». Archivado desde el original el 5 de marzo de 2006. Consultado el 4 de mayo de 2006 .
  39. ^ "¡Bienvenido al sitio web de UML!". Uml.org . Archivado desde el original el 30 de septiembre de 2019. Consultado el 15 de enero de 2017 .
  40. ^ Marsden 1986, Capítulo 3 - Conceptos fundamentales del protocolo y áreas problemáticas, págs. 26-42, explica gran parte de lo siguiente.
  41. ^ Comer 2000, Sect. 7.7.4 - Tamaño del datagrama, MTU de red y fragmentación, pág. 104, explica la fragmentación y su efecto en el encabezado de los fragmentos.
  42. ^ Comer 2000, Capítulo 4 - Direcciones de Internet con clases, pág. 64-67;71.
  43. ^ Marsden 1986, Sección 14.3 - Conceptos de capas y definiciones generales, pág. 187, explica el mapeo de direcciones.
  44. ^ Marsden 1986, Sección 3.2 - Detección y errores de transmisión, pág. 27, explica las ventajas de la corrección de errores hacia atrás.
  45. ^ Marsden 1986, Sección 3.3 - Reconocimiento, p. 28-33, explica las ventajas del reconocimiento únicamente positivo y menciona los protocolos de datagramas como excepciones.
  46. ^ Marsden 1986, Sección 3.4 - Pérdida de información: tiempos de espera y reintentos, pág. 33-34.
  47. ^ Marsden 1986, Sección 3.5 - Dirección del flujo de información, p. 34-35, explica la relación amo/esclavo y las negociaciones para obtener el control.
  48. ^ Marsden 1986, Sección 3.6 - Control de secuencia, p. 35-36, explica cómo se pierden los paquetes y cómo la secuenciación resuelve este problema.
  49. ^ Marsden 1986, Sección 3.7 - Control de flujo, p. 36-38.
  50. ^ Ben-Ari 1982, en su prefacio, p. xiii.
  51. ^ Ben-Ari 1982, en su prefacio, p. xiv.
  52. ^ Hoare 1985, Capítulo 4 - Comunicación, p. 133, trata sobre la comunicación.
  53. ^ S. Srinivasan, Circuitos y sistemas digitales, cursos NPTEL, archivado desde el original el 27 de diciembre de 2009
  54. ^ ab Comer 2000, Sect. 11.2 - La necesidad de múltiples protocolos, p. 177, introduce la descomposición en capas.
  55. ^ Comer 2000, Sect. 11.3 - Las capas conceptuales del software de protocolo, p. 179, los dos primeros párrafos describen el envío de un mensaje a través de capas sucesivas.
  56. ^ Comer 2000, Sect. 11.2 - La necesidad de múltiples protocolos, p. 178, explica las similitudes entre el software de protocolo y el compilador, ensamblador, enlazador y cargador.
  57. ^ Comer 2000, Sect. 11.9.1 - Límite del sistema operativo, p. 192, describe el límite del sistema operativo.
  58. ^ IETF 1989, Sec. 1.3.1 - Organización, pág. 15, segundo párrafo: muchas decisiones de diseño implican una "ruptura" creativa de las capas estrictas.
  59. ^ Comer 2000, Sect. 11.10 - La desventaja de la estratificación, p. 192, explica por qué "la estratificación estricta puede ser extremadamente ineficiente" dando ejemplos de optimizaciones.
  60. ^ Wakeman, I (enero de 1992). "La estratificación considerada perjudicial". IEEE Network : 20–24.
  61. ^ Kurose, James; Ross, Keith (2005). Redes informáticas: un enfoque descendente . Pearson.
  62. ^ Lascano, Jorge Edison; Clyde, Stephen; Raza, Ali. «Patrones de diseño de protocolos de comunicación (CommDP) - COMMDP». Archivado desde el original el 18 de marzo de 2017 . Consultado el 17 de marzo de 2017 .
  63. ^ Lascano, JE; Clyde, S. (2016). Un lenguaje de patrones para protocolos de comunicación a nivel de aplicación . ICSEA 2016, La undécima conferencia internacional sobre avances en ingeniería de software. págs. 22–30.
  64. ^ Daigneau, R. (2011). Patrones de diseño de servicios: Soluciones de diseño fundamentales para SOAP/WSDL y servicios web RESTful (1.ª ed.). Upper Saddle River, NJ: Addison-Wesley Professional.
  65. ^ Fowler, M. (2002). Patrones de arquitectura de aplicaciones empresariales (1.ª ed.). Boston: Addison-Wesley Professional. ISBN 0-321-12742-0.
  66. ^ [1]F. Buschmann, K. Henney y DC Schmidt, Arquitectura de software orientada a patrones, volumen 4: un lenguaje de patrones para computación distribuida, edición del volumen 4. Chichester, Inglaterra; Nueva York: Wiley, 2007.
  67. ^ Bochmann, G. (1978). "Descripción de estados finitos de protocolos de comunicación". Redes de computadoras . 2 (4–5): 361–372. doi :10.1016/0376-5075(78)90015-6.
  68. ^ Comer 2000, Glosario de términos y abreviaturas de interconexión de redes, pág. 704, término protocolo.
  69. ^ Brand, Daniel; Zafiropulo, Pitro (1983). "Sobre la comunicación de máquinas de estados finitos". Revista de la ACM . 30 (2): 323. doi : 10.1145/322374.322380 . S2CID  11607967.
  70. ^ Marsden 1986, Sección 6.3 - Ventajas de la estandarización, p. 66-67, afirma lo mismo.
  71. ^ Bryant y Morrow 2009, pág. 4.
  72. ^ Marsden 1986, Sección 6.4 – Algunos problemas con la estandarización, pág. 67, sigue a HDLC para ilustrar el proceso.
  73. ^ «X.225: Tecnología de la información – Interconexión de sistemas abiertos – Protocolo de sesión orientado a la conexión: Especificación del protocolo». Archivado desde el original el 1 de febrero de 2021. Consultado el 10 de marzo de 2023 .
  74. ^ Marsden 1986, Sección 6.1 - ¿Por qué son necesarios los estándares?, pág. 65, explica las lecciones aprendidas de ARPANET.
  75. ^ Marsden 1986, Sección 14.1 - Introducción, pág. 181, presenta OSI.
  76. ^ Marsden 1986, Sección 14.3 - Conceptos de capas y definiciones generales, págs. 183-185, explica la terminología.
  77. ^ Marsden 1986, Sección 14.4 - La capa de aplicación, p. 188, explica esto.
  78. ^ Marsden 1986, Sección 14.5 - La capa de presentación, p. 189, explica esto.
  79. ^ Marsden 1986, Sección 14.6 - La capa de sesión, p. 190, explica esto.
  80. ^ Marsden 1986, Sección 14.7 - La capa de transporte, p. 191, explica esto.
  81. ^ Marsden 1986, Sección 14.8 - La capa de red, p. 192, explica esto.
  82. ^ Marsden 1986, Sección 14.9 - La capa de enlace de datos, p. 194, explica esto.
  83. ^ Marsden 1986, Sección 14.10 - La capa física, p. 195, explica esto.
  84. ^ ISO 7498:1984 – Sistemas de procesamiento de información – Interconexión de sistemas abiertos – Modelo básico de referencia. p. 5. Este modelo básico de referencia de interconexión de sistemas abiertos se basa en el supuesto de que se requiere una conexión para la transferencia de datos.
  85. ^ ISO 7498:1984/ADD 1:1987 – Sistemas de procesamiento de información — Interconexión de sistemas abiertos — Modelo básico de referencia — Anexo 1.
  86. ^ Marsden 1986, Sección 14.11 - Modo sin conexión y RM/OSI, pág. 195, menciona esto.
  87. ^ ISO 7498:1994 – Sistemas de procesamiento de información – Interconexión de sistemas abiertos – Modelo básico de referencia.
  88. ^ Comer 2000, Sección 1.9 - Protocolos y estandarización de Internet, pág. 12, explica por qué la IETF no utilizó los protocolos existentes.
  89. ^ por Trammell & Kuehlewind 2019, pág. 2.
  90. ^ de Trammell & Kuehlewind 2019, pág. 3.
  91. ^ Trammell y Kuehlewind 2019, pág. 4.
  92. ^ ab Fairhurst & Perkins 2021, 7. Conclusiones.
  93. ^ Trammell y Kuehlewind 2019, pág. 5.
  94. ^ Trammell y Kuehlewind 2019, pág. 6.
  95. ^ Trammell y Kuehlewind 2019, pág. 7-8.
  96. ^ Farrell y Tschofenig 2014, pág. 2.
  97. ^ desde Farrell y Tschofenig 2014, pág. 3.
  98. ^ Arkko et al. 2023, 2.1. Distribución intencional.
  99. ^ Arkko et al. 2023, 2.2. Control de la distribución de información.
  100. ^ Arkko et al. 2023, 2.3. Protección de la información y autenticación.
  101. ^ Arkko et al. 2023, 2.5. Limitación del impacto de la información.
  102. ^ Arkko et al. 2023, 2.4. Minimizar la información.
  103. ^ Arkko et al. 2023, 2.6. Conjunto mínimo de entidades.
  104. ^ Arkko et al. 2023, 3. Trabajos futuros.
  105. ^ Papastergiou y col. 2017, pág. 619.
  106. ^ Papastergiou y col. 2017, pág. 620.
  107. ^ Papastergiou y col. 2017, pág. 620-621.
  108. ^ Papastergiou y col. 2017, pág. 623-4.
  109. ^ McQuistin, Perkins y Fayed 2016, pág. 1.
  110. ^ Thomson y Pauly 2021, A.5. TCP.
  111. ^ Hardie 2019, pág. 7-8.
  112. ^ Thomson & Pauly 2021, 3. Uso activo.
  113. ^ Thomson & Pauly 2021, 3.5. Restauración del uso activo.
  114. ^ Comer 2000, Sect. 11.5.1 - El modelo de referencia de 5 capas TCP/IP, p. 183, afirma lo mismo.

Bibliografía

Enlaces externos