La familia de protocolos de internet o pila de protocolos de Internet[1] es un conjunto constituido por los protocolos de comunicación que componen la arquitectura de internet, y que permiten la comunicación efectiva en la transmisión de datos entre computadoras.
En ocasiones se le denomina conjunto de protocolos TCP/IP, en referencia a los dos protocolos más importantes que la componen, que fueron de los primeros en definirse, y que son los dos más utilizados de la familia:
Existen tantos protocolos en este conjunto que llegan a ser más de cien diferentes,[cita requerida] entre ellos se encuentran:
Se debe tener en cuenta también que esta familia de protocolos, o pila TCP/IP, no es un estándar estricto, como lo es el modelo OSI de ISO, en el cual cada nivel o capa responde a una normativa muy específica. En el caso de TCP/IP, se basa en la mejores prácticas y/o las diferentes RFC que se van publicando. Es por esta razón por lo que es común que diferentes autores lo presenten como un modelo de cuatro o cinco capas, y ambas posturas son igual de válidas, pues son la interpretación de cada autor.
Teniendo en cuenta estos conceptos, se puede plantear una correspondencia entre ambos modelos de la forma que se presenta en la imagen lateral.[2]
Por esa razón si queremos asociar los protocolos mencionados anteriormente con este modelo de capas TCP/IP, los deberíamos presentar según la imagen que se presenta a continuación.
Por último, es muy importante considerar que estos diferentes niveles o capas, se han diseñado para desempeñar servicios y/o funciones muy específicas, en particular hacia dos grandes conceptos de informática: redes y TI, tal cual se presenta en la imagen que figura a continuación.
Fue desarrollado y demostrado por primera vez en 1972 por el Departamento de Defensa de los Estados Unidos, ejecutándolo en ARPANET, una red de área extensa de dicho departamento.
La familia de protocolos de internet puede describirse por analogía con el modelo OSI (Open System Interconnection), que describe los niveles o capas de la pila de protocolos, aunque en la práctica no corresponde exactamente con el modelo en Internet. En una pila de protocolos, cada nivel resuelve una serie de tareas relacionadas con la transmisión de datos, y proporciona un servicio bien definido a los niveles más altos. Los niveles superiores son los más cercanos al usuario y tratan con datos más abstractos, dejando a los niveles más bajos la labor de traducir los datos de forma que sean físicamente manipulables.
El modelo de Internet fue diseñado como la solución a un problema práctico de ingeniería. El modelo OSI, en cambio, fue propuesto como una aproximación teórica y también como una primera fase en la evolución de las redes de computadoras. Por lo tanto, el modelo OSI es más fácil de entender, pero el modelo TCP/IP es el que realmente se usa. Sirve de ayuda entender el OSI, antes de conocer TCP/IP, ya que se aplican los mismos principios, pero son más fáciles de entender en el OSI.
TCP/IP es el sucesor del Network Control Program (NCP), con el que inició la operación de ARPANET, y fue presentado por primera vez con los RFC 791,[3] RFC 792[4] y RFC 793[5] en septiembre de 1981. Para noviembre del mismo año se presentó el plan definitivo de transición en el RFC 801,[6] y se marcó el 1 de enero de 1983 como el “Día Bandera”
La familia de protocolos de Internet fueron el resultado del trabajo llevado a cabo por la “Agencia de Proyectos de Investigación Avanzados de Defensa”: DARPA, por sus siglas en inglés, a principios de los años 1970. Después de la construcción de la pionera ARPANET en 1969, DARPA comenzó a trabajar en un gran número de tecnologías de transmisión de datos. En 1972, Robert E. Kahn fue contratado por la “Oficina de Técnicas de Procesamiento de Información” de DARPA, donde trabajó en la comunicación de paquetes por satélite y por ondas de radio, reconoció el importante valor de la comunicación de estas dos formas. En la primavera de 1973, Vint Cerf, desarrollador del protocolo de ARPANET, Network Control Program se unió a Kahn con el objetivo de crear una arquitectura abierta de interconexión y diseñar así la nueva generación de protocolos de ARPANET. Kahn y Cerf fueron premiados con la Medalla Presidencial de la Libertad el 10 de noviembre de 2005 por su contribución a la cultura estadounidense.[7]
Para el verano de 1973, Kahn y Cerf habían conseguido una remodelación fundamental, donde las diferencias entre los protocolos de red se ocultaban usando un protocolo de comunicaciones y además, la red dejaba de ser responsable de la fiabilidad de la comunicación, como pasaba en ARPANET, era el host el responsable. Cerf reconoció el mérito de Louis Pouzin, creador de la red CYCLADES, ya que su trabajo estuvo muy influenciado por el diseño de esta red.
Con el papel que realizaban las redes en el proceso de comunicación reducido al mínimo, se convirtió en una posibilidad real comunicar redes diferentes, sin importar las características que estas tuvieran. Hay un dicho popular sobre TCP/IP, que fue el producto final desarrollado por Cerf y Kahn, que dice que: puede funcionar incluso entre “dos latas unidas por un cordón”. De hecho hay hasta una implementación usando palomas mensajeras, IP sobre palomas mensajeras, que está documentado en RFC 1149.[8][9]
Una computadora denominada router (nombre que fue después cambiado a gateway, pasarela o puerta de enlace para evitar confusiones con otros tipos de puerta de enlace), está dotada con una interfaz para cada red, y envía datagramas de ida y vuelta entre ellos. Los requisitos para estos routers están definidos en el RFC 1812.[10]
Esta idea fue ejecutada de una forma más detallada por el grupo de investigación que Cerf tenía en Stanford durante el periodo de 1973 a 1974, dando como resultado la primera especificación TCP (Request for Comments 675,).[11] Entonces DARPA fue contratada por BBN Technologies, la Universidad de Stanford, y la University College de Londres (UCL) para desarrollar versiones operacionales del protocolo en diferentes plataformas de hardware. Se desarrollaron así cuatro versiones diferentes: TCP v1, TCP v2, una tercera dividida en dos: TCP v3 e IP v3, en la primavera de 1978, y después se estabilizó la versión TCP/IP v4: el protocolo estándar que todavía se emplea en Internet.
En 1975 se realizó la primera prueba de comunicación entre dos redes con protocolos TCP/IP entre la Universidad de Stanford y la UCL. En 1977 se realizó otra prueba de comunicación entre tres redes distintas con ubicaciones en Estados Unidos, Reino Unido y Noruega. Varios prototipos diferentes de protocolos TCP/IP se desarrollaron en múltiples centros de investigación entre los años 1978 y 1983. La migración completa de la red ARPANET a TCP/IP concluyó oficialmente el día 1 de enero de 1983, cuando los protocolos fueron activados permanentemente.[12]
En marzo de 1982, el Departamento de Defensa de los Estados Unidos declaró TCP/IP el estándar para las comunicaciones entre redes militares.[13] En 1985, el “Centro de Administración de Internet” (IAB, Internet Architecture Board) organizó un “Taller de Trabajo” de tres días de duración, al que asistieron 250 comerciantes. Esto sirvió para promocionar el protocolo, lo que contribuyó a un incremento de su uso comercial.
Tal como se presenta en la RFC 1122.,[14] el desarrollo de los protocolos en que se basa Internet se rige por principios, dos de los cuales se describen a continuación:
Si dos nodos necesitan un mecanismo para proveer alguna funcionalidad en su comunicación, dicho mecanismo debe ser implementado directamente en los mismos nodos sin que los demás elementos de red interfieran o participen, a menos que sea absolutamente necesario.
El principio de extremo a extremo ha evolucionado con el tiempo. Su expresión original ponía el mantenimiento del estado y la inteligencia general en los bordes, y asumía que la Internet que conectaba los bordes no retenía ningún estado y se concentraba en la velocidad y la simplicidad. Las necesidades del mundo real en cuanto a cortafuegos, traductores de direcciones de red, cachés de contenido web y demás han obligado a cambiar este principio.[15].
Un sistema debe ser conservador en su comportamiento como emisario y liberal en su comportamiento como receptor. Es decir, debe ser cuidadoso en cumplir los protocolos cuando envía datos y debe ser flexible para recibir datos que, aunque tengan deficiencias, puedan ser correctamente interpretados.
El principio de robustez establece: "En general, una implementación debe ser conservadora en su comportamiento de envío, y liberal en su comportamiento de recepción. Es decir, debe tener cuidado de enviar datagramas bien formados, pero debe aceptar cualquier datagrama que pueda interpretar (por ejemplo, no objetar los errores técnicos cuando el significado sigue siendo claro)."[16] "La segunda parte del principio es casi tan importante como la primera: el software de otros hosts puede contener deficiencias que hacen que no sea aconsejable explotar características legales pero oscuras del protocolo. "[17]
La encapsulación se utiliza para proporcionar abstracción de protocolos y servicios. La encapsulación suele estar alineada con la división del conjunto de protocolos en capas de funcionalidad general. En general, una aplicación (el nivel más alto del modelo) utiliza un conjunto de protocolos para enviar sus datos a través de las capas. Los datos se encapsulan aún más en cada nivel.
Uno de los primeros documentos sobre la arquitectura, el RFC 1122, titulado Requisitos del host, enfatiza los principios arquitectónicos sobre las capas. RFC 1122 está estructurado en secciones que hacen referencia a capas, pero el documento hace referencia a muchos otros principios arquitectónicos y no enfatiza las capas.
El conjunto TCP/IP está diseñado para encaminar y tiene un grado muy elevado de fiabilidad, es adecuado para redes de cualquier tamaño. Se utiliza a nivel mundial en todo tipo de redes, desde hogareñas hasta redes empresariales y en Internet. Es compatible con las herramientas estándar para analizar el funcionamiento de la red.
Un inconveniente de TCP/IP es que es más difícil de configurar y de mantener[cita requerida] que NetBEUI o IPX/SPX; además, es algo más lento en redes con un volumen de tráfico medio bajo[cita requerida]. Sin embargo, puede ser más rápido en redes con un volumen de tráfico grande donde haya que encaminar un gran número de tramas[cita requerida].
El conjunto de protocolos TCP/IP está disponible en https://ietf.org/standards, lo que permite su uso por parte de cualquier fabricante.