martes, 23 de junio de 2015


PROTOCOLO TCP

TCP permite a las aplicaciones comunicarse entre sí como si estuvieran conectadas físicamente. TCP envía los datos en un formato que se transmite carácter por carácter, en lugar de transmitirse por paquetes discretos. Esta transmisión consiste en lo siguiente:
  • Punto de partida, que abre la conexión.
  • Transmisión completa en orden de bytes.
  • Punto de fin, que cierra la conexión.
TCP conecta un encabezado a los datos transmitidos. Este encabezado contiene múltiples parámetros que ayudan a los procesos del sistema transmisor a conectarse a sus procesos correspondientes en el sistema receptor.

TCP confirma que un paquete ha alcanzado su destino estableciendo una conexión de punto a punto entre los hosts de envío y recepción. Por tanto, el protocolo TCP se considera un protocolo fiable orientado a la conexión.

PROTOCOLO IP


El protocolo IP y sus protocolos de enrutamiento asociados son posiblemente la parte más significativa del conjunto TCP/IP. El protocolo IP se encarga de:
  • Direcciones IP: Las convenciones de direcciones IP forman parte del protocolo IP. Cómo diseñar un esquema de direcciones IPv4introduce las direcciones IPv4 y Descripción general de las direcciones IPv6 las direcciones IPv6.
  • Comunicaciones de host a host: El protocolo IP determina la ruta que debe utilizar un paquete, basándose en la dirección IP del sistema receptor.
  •  Formato de paquetes: el protocolo IP agrupa paquetes en unidades conocidas como datagramas. Puede ver una descripción completa de los datagramas en Capa de Internet: preparación de los paquetes para la entrega.
  • Fragmentación: Si un paquete es demasiado grande para su transmisión a través del medio de red, el protocolo IP del sistema de envío divide el paquete en fragmentos de menor tamaño. A continuación, el protocolo IP del sistema receptor reconstruye los fragmentos y crea el paquete original.
Oracle Solaris admite los formatos de direcciones IPv4 e IPv6, que se describen en este manual. Para evitar confusiones con el uso del Protocolo de Internet, se utiliza una de las convenciones siguientes:

  • Cuando se utiliza el término "IP" en una descripción, ésta se aplica tanto a IPv4 como a IPv6.
  • Cuando se utiliza el término "IPv4" en una descripción, ésta sólo se aplica a IPv4.
  • Cuando se utiliza el término "IPv6" en una descripción, ésta sólo se aplica a IPv6.


CAPA DE APLICACIÓN


En esta capa se incluyen los procesos que usan los protocolos de la capa de transporte. Hay muchos protocolos de aplicación La mayor parte proporcionan servicios de usuario y constantemente se añaden nuevos servicios. Algunos de los protocolos mas conocidos de esta capa son:
  • Telnet: Protocolo que permite la conexión remota de terminales.
  • FTP: Utilizado para efectuar transferencias interactivas de ficheros.
  • SMTP: Este es el protocolo que nos permite enviar correo a través de la red.
Estos tres protocolos hacen uso de los servicios orientados a la conexión del TCP.
Algunos protocolos que, en cambio, usan los servicios del UDP son:
  • DNS: Protocolo que traduce en direcciones IP los nombres asignados a los dispositivos de la red.
  • NFS: Protocolo que permite la compartición de ficheros por distintas maquinas de una red.
  • RIP: Utilizado por los dispositivos de la red para intercambiar información relativa a las rutas a seguir por los paquetes.


CAPA DE TRANSPORTE

Los dos protocolos más importantes de esta capa son el TCP y el UDP. El primero se encarga de los servicios de envío de datos con detección y corrección de errores. El UDP proporciona servicios de envío de datagramas sin conexión.

El protocolo UDP proporciona a los programas de aplicación acceso directo al envío de datagramas, parecido al servicio que proporciona el IP. Este permite a las aplicaciones intercambiar mensajes con un mínimo de supervisión por parte del protocolo.
Este protocolo se usa principalmente en:
  • Envío de pequeñas cantidades de datos, pues seria mas costoso supervisar el establecimiento de conexiones y asegurar un envío fidedigno que retransmitir el conjunto de datos completo.
  • Aplicaciones que se ajustan al modelo "pregunta-respuesta". La respuesta se puede usar como una confirmación a la pregunta. Si no se recibe respuesta, en un cierto periodo de tiempo, la aplicación, simplemente, vuelve a enviar la pregunta.
  • Aplicaciones que tienen su propio sistema de verificar que el envío de datos ha sido fidedigno y no requieren este servicio de los protocolos de la capa de transporte.
Las aplicaciones que requieren de la capa de transporte un servicio de transmisión de datos fidedigno, usan el protocolo TCP. Este protocolo verifica que los datos se envíen a través de la red adecuadamente y en la secuencia apropiada. Las características de este protocolo son:
  • Fiabilidad.
  • Orientado a la conexión y al flujo de datos.
Para lograr la fiabilidad, el TCP, se basa en un mecanismo de confirmación positiva con retransmisión (PAR, del inglés, Positive Acknowledgement with Retransmision).
Básicamente, este mecanismo consiste en que el emisor envíe los datos una y otra vez, hasta que reciba una confirmación de la llegada de los datos en perfecto estado.
Cada segmento de datos contiene un campo de chequeo que el sistema receptor usa para verificar la integridad de los datos. Para cada segmento recibido correctamente se envía una confirmación. Los segmentos dañados se eliminan. Tras un cierto periodo de tiempo, el emisor, volverá a enviar todos aquellos segmentos para los que no ha recibido confirmación.
El protocolo TCP es un protocolo orientado a la conexión. Este protocolo establece una conexión entre las dos máquinas que se comunican. Se intercambia información de control antes y después de la transmisión de los datos.
El TCP ve los datos que envía como un flujo continuo de bytes, no como paquetes independientes. Debido a esto, es necesario enviarlos en la secuencia adecuada. El TCP, se cuida de mantener esta secuencia mediante los campos de número de secuencia y número de confirmación de la cabecera de segmento.
En el paso, de información de control, que realiza el TCP, antes de establecer la conexión, se intercambian tres paquetes. Dicho intercambio se denomina "apretón a tres vías".
En el primer segmento, el emisor comunica al receptor, el número inicial de su secuencia. Esto se realiza poniendo este número en el campo número de secuencia de la cabecera del segmento, y activando el bit de sincronización de números de secuencia.
Cuando este segmento llega al receptor este contesta enviando:
  • Su propio número inicial de secuencia, en el campo de número de secuencia y activando el bit de sincronización.
  • La confirmación de recepción, indicando en el campo de confirmación el número inicial de secuencia del emisor y activando el bit de confirmación.
Cuando este segundo segmento llega al emisor este confirma la recepción del mismo enviando un tercer segmento con el número de inicio de secuencia del receptor en el campo de número de confirmación y el bit de confirmación activado.
En este momento, el emisor tiene plena conciencia de que la maquina receptora esta operacional y lista para recibir sus datos, así pues se inicia el envío de los mismos.
Según se van recibiendo datos, el receptor irá indicando al emisor la correcta recepción de los mismos. Esto se realiza periódicamente, enviando al emisor un segmento con el bit de confirmación activado y el número de secuencia del ultimo byte recibido correctamente. De esta forma nos evitamos el tener que enviar una confirmación con cada byte recibido.
En el campo de ventana de la cabecera de este mismo segmento se indica el número de bytes que el receptor es capaz de aceptar. Este número indica al emisor que puede continuar enviando segmentos siempre y cuando la longitud en bytes de estos sea inferior al tamaño de la ventana. Un tamaño de ventana cero indicará al emisor que detenga el envío de segmentos hasta recibir un segmento con tamaño de ventana mayor que cero.
Cuando el emisor termina de enviar los datos se establece otro "apretón a tres vías" que difiere del que ha tenido lugar como inicio de la conexión únicamente, en que en vez de llevar activado el bit de sincronización, los segmentos llevaran activado el bit de fin de transmisión de datos.
El TCP es también responsable de enviar los datos recibidos a la aplicación correcta. La aplicación a la que se destina los datos esta identificada por un número de 16 bits llamado número de puerto. El número de puerto, tanto del origen como del destino, se especifica en la cabecera de cada segmento.


CAPA DE INTERNET


El protocolo mas importante de esta capa y piedra baIP. Este protocolo proporciona los servicios básicos de transmisión de paquetes sobre los cuales se construyen todas las redes TCP/IP. Las funciones de este protocolo incluyen:
se de toda la Internet es el
  • Definir del datagrama, que es la unidad básica de transmisión en Internet.
  • Definir el esquema de direccionamiento de Internet.
  • Mover los datos entre la capa de acceso a red y la capa de transporte.
  • Encauzar los datagramas hacia sistemas remotos. (Routing)
  • Realizar la fragmentación y re-ensamblaje de los datagramas.
El protocolo IP es un "protocolo sin conexión", es decir, no intercambia información de control para establecer una conexión antes de enviar los datos. En caso de que dicha conexión fuese necesaria, el IP delegará tal labor en protocolos de otras capas.
Este protocolo tampoco realiza detección de errores o recuperación de datos ante los mismos.
Los protocolos TCP/IP fueron diseñados para el intercambio de datos en ARPANET, que era una red de intercambio de paquetes. Un paquete es un bloque de datos que lleva consigo la información necesaria para enviarlo. Para aclarar esto podríamos comparar un paquete con una tarjeta postal, en la que no solo escribimos un mensaje sino que además añadimos los datos pertinentes para que llegue a su destinatario, nombre, dirección, etc.
Una red de intercambio de paquetes usa esta información para cambiar los paquetes de una red a otra moviéndolos hacia su destino final. Cada paquete navega por la red independientemente de cualquier otro paquete.
El datagrama es el formato del paquete que define el IP. Un datagrama consta de dos partes, la cabecera y los datos.

Estructura de un paquete IPv4

Bits 0 - 3
4 - 7
8 - 15
16 - 18
19 - 31
Versión
Longitud Encabezado IP
Tipo de servicio
Longitud Total
Identificación
Flags
Offset del fragmento
Tiempo de vida
Protocolo
Chequeo de cabecera
Dirección de origen
Dirección de destino
Opciones

Datos
 
A la hora de enviar un datagrama, el IP comprueba la dirección de destino. Aquí nos surgen dos posibilidades:
  1. Que el destino sea una maquina de la red local. En este caso se envía el datagrama directamente a dicha maquina y listo.
  2. Que el destino sea una maquina perteneciente a otra red física. En este caso el IP encauzara el datagrama a través de gateways hacia su destino. El termino ingles de este encauzamineto, normalmente mas usado que el español, esrouting.
Con la segunda posibilidad surge un problema más. Puesto que el datagrama va a atravesar distintas redes físicas, puede darse el caso de que su tamaño no sea adecuado para la transmisión a través de estas redes, pues cada tipo de red define un tamaño máximo para los paquetes que pueden circular por ella.
En este caso, cuando llegue al gateway, el IP fragmentará el datagrama en piezas mas pequeñas, y a efectos de facilitar su ensamblaje posterior en la cabecera de cada pieza resultante se especificará a que datagrama pertenece y que posición tiene la pieza dentro del datagrama. Para el ensamblaje de las piezas se comprueban estos campos de la cabecera y otro mas en el que se indica si hay mas fragmentos que ensamblar o no.
Una vez que el datagrama llega a la maquina de destino, y en concreto a la capa de Internet, el IP habrá de enviarlo al protocolo correspondiente de la capa de transporte. Los protocolos de dicha capa tienen asignados unos números que los identifican y que quedan registrados en la cabecera del datagrama.
Otro protocolo definido en la capa de Internet es el ICMP, protocolo de control de mensajes en Internet. Dicho protocolo usa el sistema de envío de mensajes del IP para enviar sus propios mensajes.
Los mensajes enviados por este protocolo realizan las siguientes funciones:
  • Control de flujo: Cuando los datagramas llegan demasiado rápido a una maquina, de forma que esta no tiene tiempo para procesarlos, el ICMP de dicha maquina enviará al emisor de los datagramas un mensaje para que detenga el envío temporalmente.
  • Detección de destinos inalcanzables: Cuando no se puede alcanzar la dirección de destino de un datagrama, la máquina que detecta el problema envía a la dirección de origen de ese datagrama un mensaje notificando dicha situación.
  • Redireccion de rutas: Cuando a un gateway, le llega un datagrama a enviar a una máquina, y existe otro gateway que resulta ser una opción mejor para enviar dicho datagrama, el primer gateway envía al emisor un mensaje comunicándole dicha situación para que el envío se haga a través del segundo gateway.
  • Chequeo de sistemas remotos: Una máquina que necesite saber si otra máquina de otra red está conectada y operacional le enviara un mensaje, llamado echo, que la otra máquina devolverá si está conectada y operacional. El comando ping de Unix utiliza este protocolo.


CAPA DE ACCESO A LA RED

Los protocolos de esta capa proporcionan al sistema los medios para enviar los datos a otros dispositivos conectados a la red. Es en esta capa donde se define como usar la red para enviar un datagrama. Es la única capa de la pila cuyos protocolos deben conocer los detalles de la red física. Este conocimiento es necesario pues son estos protocolos los que han de dar un formato correcto a los datos a transmitir, de acuerdo con las restricciones que nos imponga, físicamente, la red.
Las principales funciones de los protocolos definidos en esta capa son:
  • Encapsulación de los datagramas dentro de los marcos a transmitir por la red.
  • Traducción de las direcciones IP a las direcciones físicas de la red.


 CAPAS DEL MODELO DE ARQUITECTURA TCP/IP










VENTAJAS E INCONVENIENTES

El conjunto TCP/IP está diseñado para encaminar y tiene un grado muy elevado de fiabilidad, es adecuado para redes grandes y medianas, así como en redes empresariales. Se utiliza a nivel mundial para conectarse a Internet y a los servidores web. 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 que NetBEUI o IPX/SPX; además, es algo más lento en redes con un volumen de tráfico medio bajo. 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.
El conjunto TCP/IP se utiliza tanto en campus universitarios como en complejos empresariales, en donde utilizan muchos enrutadores y conexiones a mainframe o a computadoras UNIX, así como también en redes pequeñas o domésticas, en teléfonos móviles y en domótica
.Gracias a que el conjunto de protocolos TCP/IP no pertenecía a una empresa en concreto y permitir el Departamento de Defensa estadounidense su uso por parte de cualquier fabricante, fue lo que permitió el nacimiento de Internet. Los fabricantes fueron abandonando poco a poco sus protocolos propios de comunicaciones y adoptando TCP/IP.




HISTORIA DEL PROTOCOLO TCP/IP


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.
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 Hubert Zimmerman y Louis Pouzin, creadores 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 el protocolo TCP/IP, que fue el producto final desarrollado por Cerf y Kahn, que dice que: este protocolo acabará funcionando 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.
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.
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,). 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 con un protocolo TCP/IP 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 al protocolo TCP/IP concluyó oficialmente el día 1 de enero de 1983, cuando los protocolos fueron activados permanentemente.
En marzo de 1982IABInternet Architecture Board) organizó un “Taller de Trabajo” de tres días de duración, al que asistieron 250 comerciantes. Esto sirivió para promocionar el protocolo, lo que contribuyó a un incremento de su uso comercial.
, el Departamento de Defensa de los Estados Unidos declaró al protocolo TCP/IP el estándar para las comunicaciones entre redes militares. En 1985, el “Centro de Administración de Internet” 


FAMILIA DE PROTOCOLOS DE INTERNET

La familia de protocolos de Internet es un conjunto de protocolos de red en los que se basa Internet y que permiten 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:
  1. TCP (Transmission Control Protocol), Protocolo de Control de Transmisión, e,
  2. IP (Internet Protocol), Protocolo de Internet.
Existen tantos protocolos en este conjunto que llegan a ser más de cien diferentes, entre ellos se encuentran, entre otros:
  • ARP (Address Resolution Protocol), Protocolo de Resolución de Direcciones, para la resolución de direcciones,
  • FTP (File Transfer Protocol), Protocolo de Transferencia de Archivos, para transferencia de archivos o ficheros,
  • HTTP (HyperText Transfer Protocol), Protocolo de Transferencia de HiperTexto, que es popular porque se utiliza para acceder a las páginas web,
  • POP (Post Office Protocol), Protocolo de Oficina Postal, para correo electrónico,
  • SMTP (Simple Mail Transfer Protocol), Protocolo de Transferencia Simple de Correo, para correo electrónico,
  • Telnet (Teletype Network), para acceder a equipos remotos.
TCP/IP 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 OSIOpen 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.
El protocolo 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, RFC 792 y RFC 793 en septiembre de 1981. Para noviembre del mismo año se presentó el plan definitivo de transición en el RFC 801, y se marcó el 1 de enero de 1983 como el “Día Bandera” para completar la migración.


MODELO TCP/IP

El modelo TCP/IP es una descripción de protocolos de red desarrollado por Vinton Cerf y Robert E. Kahn, en la década de 1970. Fue implantado en la red ARPANET, la primera red de área amplia (WAN), desarrollada por encargo de DARPA, una agencia delDepartamento de Defensa de los Estados Unidos, y predecesora de Internet.
A veces se denomina como Internet Model, “modelo DoD” o “modelo DARPA”.
El modelo TCP/IP describe un conjunto de guías generales de diseño e implementación de protocolos de red específicos para permitir que un equipo pueda comunicarse en una red. TCP/IP provee conectividad de extremo a extremo especificando como los datos deberían ser formateados, direccionados, transmitidos, enrutados y recibidos por el destinatario. El modelo TCP/IP y los protocolos relacionados son mantenidos por la Internet Engineering Task Force (IETF).
Para conseguir un intercambio fiable de datos entre dos equipos, se deben llevar a cabo muchos procedimientos separados. El resultado es que el software de comunicaciones es complejo. Con un modelo en capas o niveles resulta más sencillo agrupar funciones relacionadas e implementar el software modular de comunicaciones.
Las capas están jerarquizadas. Cada capa se construye sobre su predecesora. El número de capas y, en cada una de ellas, sus servicios y funciones son variables con cada tipo de red. Sin embargo, en cualquier red, la misión de cada capa es proveer servicios a las capas superiores haciéndoles transparentes el modo en que esos servicios se llevan a cabo. De esta manera, cada capa debe ocuparse exclusivamente de su nivel inmediatamente inferior, a quien solicita servicios, y del nivel inmediatamente superior, a quien devuelve resultados.

  • Capa 4 o capa de aplicación: aplicación, asimilable a las capas: 5 (sesión), 6 (presentación) y 7 (aplicación), del modelo OSI. La capa de aplicación debía incluir los detalles de las capas de sesión y presentación OSI. Crearon una capa de aplicación que maneja aspectos de representación, codificación y control de diálogo.
  • Capa 3 o capa de transporte: transporte, asimilable a la capa 4 (transporte) del modelo OSI.
  • Capa 2 o capa de internet: Internet, asimilable a la capa 3 (red) del modelo OSI.
  • Capa 1 o capa de acceso al medio: acceso al medio, asimilable a la capa 2 (enlace de datos) y a la capa 1 (física) del modelo OSI.