REDES Y TELECOMUNICACIONES
Ing. Luis Cedeño H.
Trabajo No. 1
Tema TCP / IP:
Sub-Temas:
1. Historia TCP y Arquitectura de TCP / IP Miguel Rivera
2.
Características de TCP / IP y como funciona Engelber Guevara3. Protocolo TCP y Protocolo IP
Luis CedeñoLos protocolos son un conjunto de reglas y convenciones de comunicación, que establecen las comunicaciones a través de las redes de telecomunicaciones entre usuarios o computadoras distintas que manejan lenguajes diferentes. TCP / IP no es un único protocolo, se conoce con ese nombre, pero en realidad es un conjunto de protocolos que cubren los distintos niveles del modelo OSI. Los dos protocolos más importantes son TCP (transmisión Control Protocol) e IP (Internet Protocol) los que dan el nombre al conjunto. TCP se encarga del flujo de paquetes y asegura que los datos estén correctos mientras que IP lleva los paquetes de un sitio a otro. El protocolo TCP / IP es muy conocido porque permite que Internet sea una red de redes.
TCP / IP SUB - TEMA 3: PROTOCOLO TCP Y PROTOCO IP
SUB-TEMA PROTOCOLO - TCP
El protocolo TCP es:
2- Orientado a Conexión: Es necesario establecer una conexión previa entre dos máquinas antes de poder transmitir ningún dato. A través de esta conexión los datos llegarán siempre a la aplicación destino de forma ordenada y sin duplicados. Finalmente, es necesario cerrar la conexión.
Una entidad de transporte TCP acepta mensajes de longitud grande proveniente de los procesos de los usuarios, los separa en pedazos o paquetes que no exceden los 64 Kbytes y transmite cada paquete como si fuera un datagrama separado. Estos viajan por un circuito virtual. Es conocido que los datagramas IP pueden seguir rutas distintas, dependiendo del estado de los enrrutadores intermedios, para llegar a un mismo sitio, esto significa que los datagramas IP que transportan los mensajes siguen rutas diferentes aunque el protocolo TCP logre la ilusión de que existe un único circuito por el que viajan todos los bytes uno detrás del otro. Para que esto sea posible es necesario abrir previamente una conexión que garantice que todos los datos lleguen correctamente de forma ordenada y sin duplicados y dependerá de TCP la tarea de reensamblarlos en mensajes con la secuencia correcta.
Cada octeto o byte transmitido por TCP tiene su propio número de secuencia privado con una extensión de 32 bits. Cada byte no se envía inmediatamente después de ser generado por la aplicación, sino que se espera a que haya una cierta cantidad de bayte, se agrupan en un segmento y se envía el segmento completo. Este proceso se lleva a cabo en memorias o buffers. Cada uno de estos segmentos (ver figura 1) viajan en el campo de datos de un datagrama IP. Si el segmento es muy grande será necesario fragmentar el datagrama y si es muy pequeño se enviara más cabecera de datos, esto genera perdida de rendimiento, de allí lo importante de que el tamaño del paquete sea del mayor tamaño posible par evitar la fragmentación.
Formato de segmento TCP
1
0 |
10 |
20 |
30 |
||||||||||||||||||||||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
1 |
2 |
3 |
3 |
5 |
6 |
7 |
8 |
9 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
1 |
Puerto TCP origen |
Puerto TCP destino |
||||||||||||||||||||||||||||||
Número de secuencia |
|||||||||||||||||||||||||||||||
Número de acuse de recibo |
|||||||||||||||||||||||||||||||
HLEN |
Reservado |
Bits código |
Ventana |
||||||||||||||||||||||||||||
Suma de verificación |
Puntero de urgencia |
||||||||||||||||||||||||||||||
Opciones (si las hay) |
Relleno |
||||||||||||||||||||||||||||||
Datos |
|||||||||||||||||||||||||||||||
... |
Figura 1 Formato del segmento TCP
En el formato del segmento TCP vemos como se integran en los campos de datos de un datagrma IP para su transmisión el flujo de bytes que produce una determinada aplicación, después de ser divididos en segmentos TCP. Para accesar a la descripción del significado de cada campo del formato haga
Cick.Una conexión son dos pares de direcciones IP:puerto, es posible que un mismo ordenador tenga dos conexiones distintas y simultaneas utilizando un mismo puerto. El protocolo TCP utiliza el concepto de conexión para identificar las transmisiones. Seguidamente se muestra un ejemplo con tres conexiones, las dos primera con el mismo servidor Web (puerto 80) y la tercera a un servidor FTP (puerto 21).
HOST 1 |
HOST 2 |
194.35.133.5:1256 |
135.22.8.165.:80 |
184.42.15.16:1305 |
135.22.8.165.:80 |
184.42.15.16:1323 |
135.22.10.15.:21 |
Figura 2. Tres conexiones distintas desde un mismo ordenador.
Para establecer una conexión, antes de transmitir cualquier información utilizando el protocolo TCP es necesario abrir una conexión. Un extremo hace una apertura pasiva y el otro una apertura activa, el mecanismo utilizado para establecer a conexión consta de tres vías:
Figura 3. Mecanismo de conexión de tres vías
1. La maquina que inicia la conexión hace una apertura activa enviando al otro extremo un mensaje que tenga el bit SYN=1 (activo). Le informa además del primer número de secuencia que utilizará para enviar sus mensajes.
2. La máquina receptora (un servidor generalmente) recibe el segmento con el bit SYN=1 (activo) y devuelve la confirmación, si desea abrir la conexión, activa el SYN =1 del segmento e informa de su primer número de secuencia, y deja abierta la conexión en su extremo.
3. La maquina que inició la conexión recibe el segmento y envía su confirmación, a partir de este momento queda establecida la conexión.
Vemos que fueron necesarios tres segmentos para que ambas maquinas establecieran conexión, el primero lo envió la maquina que solicito la conexión, el segundo la receptora indicando la recepción de su solicitud e indicando que acepta la solicitud y el tercero lo envía la primera maquina enviando confirmación de recibo y deja abierto su puerto.
Para cerrar la conexión, cuando una aplicación no va a enviar más datos, el procedimiento normal es cerrar la conexión utilizando una variación del mecanismo de 3 vías utilizando para la conexión:
Figura 4. Mecanismo de desconexión
El mecanismo de cierre es algo más complicado que el de establecimiento de conexión debido a que las conexiones son full-duplex y es necesario cerrar cada uno de los dos sentidos de forma independiente.
Vemos que aunque se haya cerrado el sentido de conexión se siguen enviando y devolviendo las confirmaciones
2. Fiabilidad: La información que envía el emisor llega de forma correcta al destino.
Los datos de las aplicaciones llegan de forma segura y correcta al destino, porque cada vez que llega un mensaje se devuelve una confirmación (acknowledgeement) para que el emisor sepa que ha llegado correctamente. Si no le llega esta confirmación pasado un cierto tiempo, el emisor reenvía el mensaje.
Para proporcionar una comunicación fiable, el emisor envía un dato, arranca su temporizador y espera su confirmación (ACK), si recibe el ACK antes de agotarse el temporizador, envía el siguiente dato. Si se agota el temporizador antes de recibir el ACK, reenvía el mensaje, en la figura 5 se representa este comportamiento.
Figura 5. Establecimiento de una comunicación fiable.
Este esquema es perfectamente válido aunque muy ineficiente debido a que sólo se utiliza un sentido de la comunicación a la vez y el canal se está desaprovechando la mayor parte del tiempo. Para solucionar ese problema se utiliza un protocolo de ventana deslizante, que se resume en la figura 6. Donde los mensajes y las confirmaciones van numerado y el emisor puede enviar más de un mensaje antes de haber recibido todas las confirmaciones anteriores.
Figura 6. Establecimiento de una comunicación fiable, con el protocolo venta deslizante.
Última Actualización: 22ABR05
[Principal] [Sintesis] [Pagina Trabajo] [IP] [Datagrama IP] [Datagrama TCP]