martes, 5 de febrero de 2013

Tarea#1 - RDP 0793

El "protocolo de control de transmisión" ('Transmission Control Protocol', TCP) está pensado para ser utilizado como un protocolo 'host' a 'host' muy fiable entre miembros de redes de comunicación de
computadoras por intercambio de paquetes y en un sistema interconectado de tales redes.



2.1.  Elementos del sistema de inter-redes.

El entorno de inter-redes consiste en una serie de 'hosts' conectados a varias redes que a su vez están interconectadas vía pasarelas ('gateways').  Aquí se supone que las redes pueden ser tanto redes locales (i.e. de tipo de ETHERNET) o grandes redes (i.e. ARPANET),  pero en cualquier caso basadas en tecnología de intercambio de paquetes.  Los agentes activos que producen y consumen los mensajes   son los procesos.  Varios niveles de protocolos en las redes, las pasarelas y 'hosts' dan soporte a un sistema de comunicación entre procesos que proporciona un flujo de datos bidireccional sobre   conexiones lógicas entre los puertos de los procesos.

2.2.  Modelo de operación

Los procesos transmiten datos llamando al módulo de TCP y pasando búferes de datos como argumentos de la llamada.  El módulo de TCP empaqueta en segmentos los datos provenientes de estos búferes y efectúa una llamada al módulo de internet para que transmita cada segmento al módulo de TCP de destino.  El TCP receptor coloca los datos de un segmento en el búfer de recepción del usuario y lo notifica al usuario receptor. Los módulos de TCP incluyen información de control en los segmentos que puede ser utilizada para asegurar una transmisión fiable y ordenada de datos.

2.3.  El entorno del 'host'

Se supone que el módulo de TCP lo es del sistema operativo.  Los usuarios accederán a dicho módulo de una forma muy similar a como acceden al sistema de archivos. El módulo de TCP, a su vez, puede  llamar a otras funciones del sistema operativo, por ejemplo, para gestionar las estructuras de datos. Se supone que la interfaz real final con la red se controla mediante un módulo manejador del dispositivo ('device driver') de red.  El módulo de TCP no llama directamente al manejador, sino que efectúal lamadas al módulo del protocolo de datagramas de internet que en su lugar llama al manejador del dispositivo de red.

2.4.  Interfaces

La interfaz TCP/usuario proporciona al usuario funciones de llamada al módulo de TCP para abrir (OPEN) o cerrar (CLOSE) una conexión, para enviar (SEND) o recibir (RECEIVE) datos, o para obtener información de estado (STATUS) sobre una conexión. Estas llamadas son del mismo tipo que otras llamadas al sistema operativo realizadas desde programas de usuario como, por ejemplo, lasl llamadas para abrir, leer y cerrar un fichero.

2.5.  Relación con otros protocolos
Se espera que TCP sea capaz de soportar protocolos de nivel superior eficientemente. Debería ser fácil implementar la interfaz de TCP con los protocolos de nivel superior como Telnet de ARPANET o AUTODIN II THP.

2.6.  Comunicación fiable

La transmisión es fiable gracias al uso de números de secuencia y de acuses de recibo. Básicamente, se le asigna un número de secuencia a cada octeto de datos.  El número de secuencia del primer octeto de  datos en un segmento se transmite con ese segmento y se le denomina el número de secuencia del segmento.  Los segmentos también llevan un número de acuse de recibo que es el número de secuencia del siguiente octeto de datos esperado en la transmisión en el sentido inverso. Cuando el módulo de TCP transmite un segmento conteniendo datos, pone una copia en una cola de retransmisión e inicia un contador de tiempo; si llega el acuse de recibo para esos de datos, el segmento se borra de la cola. Si no se recibe el acuse de recibo dentro de un plazo de expiración, el segmento se retransmite.

2.7.  Establecimiento y finalización de la conexión

Para identificar los distintos flujos de datos que un módulo TCP puede manejar simultáneamente, TCP proporciona un identificador de puerto. Como los identificadores de puertos son seleccionados de forma  independiente por cada TCP, puede que no sean únicos. Para disponer de direcciones únicas dentro de cada TCP, se concatena la dirección de internet que identifica al módulo de TCP con el identificador de  puerto para así conformar una dirección de conector ('socket') que será única a largo de todo el conjunto de redes interconectadas.

2.8.  Comunicación de datos

Puede pensarse en los datos que fluyen en una conexión como en un flujo de octetos. El usuario emisor indica en cada llamada SEND mediante la puesta a uno del indicador PUSH si los datos de esa llamada (y de cualquier llamada precedente) deben ser entregados inmediatamente al usuario receptor.

2.9.  Prioridad y seguridad

TCP hace uso del campo de tipo de servicio del protocolo de internet y de la opción de seguridad para proporcionar prioridad y seguridad a los usuarios de TCP, tomando como base cada conexión. No todos los módulos de TCP trabajarán necesariamente en un entorno de seguridad multinivel; algunos puede que estén limitados a usos reservados solamente, y otros puede que operen en un único nivel de seguridad y compartimentación. Consecuentemente, algunas implementaciones y servicios de TCP para usuarios puede que estén limitados a un subconjunto del caso con seguridad multinivel.

2.10.  Principio de robustez

Las implementaciones de TCP seguirán un principio general de robustez: sé conservador en lo que hagas, sé liberal en lo que aceptes de los demás.

Conclusión:

Este protocolo esta basado en comunicaiones, se usa cuando se trata de enviar información completa y segura... donde no se pierda los datos y todos llegen en un orden. Las caracteristicas que hacen a este protocolo uno de los mejores porque confirma o envia datos de prueba para checar que el "host" a la que se lo enviara esta disponible y no se pierdan los datos. A diferencia de UDP que este le "vale" si llega, en que orden llega, si el objetivo esta o no disponible, ambos son muy usados... por ejemplo TCP se usa para subir paginas a un servidor privado donde quieres que no se pierda nada, y UDP en las videocoferencias donde no es importante perderse unos cuantos segundos.



REFERENCIAS:

http://www.rfc-es.org/rfc/rfc0793-es.txt