Sie sind auf Seite 1von 9

3.5 Transporte Orientado a conexin: TCP Este protocolo corresponde a la capa de transporte de Internet.

En donde podremos ver que para proporcionar una transferencia fiable de datos se deben tener en cuenta los principios discutidos en la seccin anterior. 3.5.1 La conexin TCP Se dice que TCP es orientado a conexin ya que antes de que un proceso comience a enviar datos a otro, estos dos procesos previamente deben establecer un acuerdo entre ellos, por lo que se envan segmentos para establecer los parmetros que asegure la transferencia de datos. El estado de la conexin reside en los dos sistemas finales, por lo que el protocolo TCP funciona slo en los finales, y no en los elementos intermedios de la red (como routers y bridges). Una conexin TCP proporciona una transferencia de datos Full Duplex, Si existe una conexin TCP entre el proceso A en un host y el proceso B en otro host, entonces los datos pueden fluir de A a B al mismo tiempo que pueden fluir de B a A. Una conexin TCP tambin siempre es punto a punto, o sea entre un nico emisor y un nico receptor, es por esto que la miltidifusin no se puede dar en conexiones TCP. Ejemplo, el proceso que inicia la conexin se le denomina cliente, mientras que el otro proceso de le denomina servidor. Por lo que esto en Java se realiza con el siguiente comando. Socket clienteSocket = new Socket(nombreHost, numPuerto); nombreHost: Nombre del servidor. numPuerto: Identifica el proceso en el servidor. El envo de segmento entre cliente y servidor es llamado acuerdo en tres fases, los dos primeros segmentos son especiales y el tercer segmento que enva el cliente es para transportar carga hacia el servidor. El cliente pasa un flujo de datos a travs del socket. Una vez que los datos pasan por la puerta, estos llegan al TCP que se ejecuta en el cliente. El TCP dirige estos daos al bfer de envo de la conexin, ya que este bufs fue dispuesto en el acuerdo de las tres fases inicial. De tiempo en tiempo, TCP agarra trozos de datos del bfer de envo. Ya que es muy interesante que la especificacin de TCP sea muy laxa al concretar cuando el TCP debe realmente enviar los datos almacenados, indicando que TCP debera enviar los datos en segmento segn convenga. El MSS, tamao mximo de segmento, indica la cantidad mxima de datos que pueden ser tomadas y colocadas en un segmento, este trmino no se refiere al tamao del segmento. Este depende de la implementacin del TCP y a menudo, puede ser configurado, estos tamao se eligen para evitar la fragmentacin IP. TCP asocia cada paquete de datos del cliente con una cabecera TCP, formando as segmentos TCP. Estos segmentos se pasan por la capa de red, donde son encapsulados por separado en datagramas IP. Los datagramas IP son enviados por la red. Cuando TCP recibe un segmento en el otro extremo, deposita los datos del segmento en el bfer de recepcin de la conexin. La aplicacin lee el flujo de datos desde este bfer. Cada lado de la conexin tiene sus propios bfer de envo y recepcin.

Bfer de envo y recepcin TCP. 3.5.2 La estructura del segmento TCP El segmento TCP tiene campo de datos y la cabecera. Los datos que se introducen en el segmento, estn limitados por el MSS. Si necesitamos enviar archivos mayores al tamao del MSS, TCP divide el archivo en fragmentos para adaptarse al MSS. Normalmente la cabecera de TCP ocupa 20bytes. La cabecera consta de: - Nmero de puerto origen y nmero de puerto destino. - Nmero de secuencia de 32bits. - Nmero de reconocimiento de 32bits - Campo de longitud de la cabecera, es de 4 bits y especifica la longitud de la propia cabecera TCP ya que podemos tener una cabecera de tamao variable, normalmente este campo est vaco por tanto son los 20bytes que dijimos anteriormente). - Campo opciones: se usa para fijar un tamao mximo de segmento (MSS). - Campo indicador: tiene 6 bits, se encarga de todo lo relacionado con los reconocimientos, establecimiento y cierre de conexiones.

Telnet: Un caso de estudio para los nmeros de secuencia y de reconocimiento. Telnet, es un protocolo de la capa de aplicacin, utilizado para el acceso remoto. Este se ejecuta sobre TCP, por lo que funciona en cualquier par de hots. Al iniciarse una sesin Telnet, cada carecer escrito por el cliente ser enviado al host remoto, el host remoto devolver una copia de cada carcter, la cual ser mostrada en la pantalla del usuario Telnet. Ya que este eco es utilizado para asegurar que los datos vistos por el usuario Telnet ya hayan sido recibidos y procesados e el sitio remoto. En total el carcter atraviesa dos veces la red. Supongamos que el usuario escribe una sola letra, C, examinando los segmentos TCP que se envan entre el cliente y servidor, los nmeros iniciales de secuencia son 42 y 79 para el cliente y servidor respectivamente. Por lo que el nmero de secuencia de un segmento es el nmero de secuencia del primer byte en el campo de datos. As, el primer segmento enviado desde el cliente tendr el nmero de secuencia 42, el primer segmento enviado desde el servidor tendr el nmero de secuencia 79. Adems se debe tomar en cuenta que nmero de reconocimiento es el nmero de secuencia del siguiente byte de datos que espera el host. Despus de que se ha establecido la conexin TCP, pero antes de que se haya enviado ningn dato, el cliente esta esperando el byte 79, y el servidor esta esperando el byte 42. Como se muestra en la figura, se envan tres segmentos. El primer segmento se enva desde el cliente hacia el servidor, y contiene la representacin ASCII de un byte del carcter C en su campo de datos. As, el primer segmento tambin tiene el 42 en su campo de nmero de secuencia, como se haba dicho anteriormente. Tambin, como el cliente aun no ha recibido ningn dato del servidor, el primer segmento tendr el 79 en su campo de nmero de reconocimiento. El segundo segmento se enva desde el servidor al cliente. Tiene dos propsitos. Primero, proporciona un reconocimiento de los datos recibidos por el servidor. Colocando el 43 en el campo de reconocimiento, el servidor le esta diciendo al cliente que ha recibido con xito todos los bytes hasta el 42, y que est esperando los bytes a partir del 43. El segundo propsito de este segmento es enviar de vuelta el eco de la letra C en su campo de datos. Este segundo segmento tiene nmero de secuencia 79, ya que es el primer byte de datos que esta enviando el servidor. Tenga en cuenta que el reconocimiento de los datos del cliente hacia el servidor se transporta en un segmento que lleva datos desde el servidor al cliente. El tercer segmento se enva desde el cliente al servidor. Su nico propsito es reconocer los datos que han recibido del servidor. Este segmento tiene vaco el campo de datos. Por lo que el segmento tiene el 80 en el campo de nmero de reconocimiento, ya que el cliente ha recibido el flujo de bytes hasta el byte con nmero de secuencia 79, y por lo tanto esta esperando los bytes a partir del 80.

3.5.4 Trasferencia fiable de datos TCP crea un servicio de transferencia fiable de datos sobre el servicio del servicio IP no fiable. Ya que asegura que el flujo de datos no estn corrompidos, agujerados, duplicados y desordenado al memento de ser ledos desde el bfer de recepcin TCP. Para la tcnica fiable de datos a cada segmento se le asocia un temporizador, pero esta tcnica exige una sobrecarga considerable, por esto solo se utilizan un nico temporizador de retransmisin. En la descripcin simplificada de un emisor TCP, se puede apreciar que existen tres eventos relacionados con la transmisin y la retransmisin en un emisor TCP. La recepcin de datos desde la aplicacin que se encuentra encima. El final del tiempo marcado por el temporizador. Y la recepcin de un ACK.

Durante el primer evento el TCP recibe datos de la aplicacin, los encapsula en un segmento, y pasa dicho segmento a IP. Se tiene en cuenta el numero se secuencia que es el numero del primer byte de datos, y tambin recordar que TCP arranca el temporizador cuando pasa el segmento a IP. El intervalo de expiracin para este

temporizador es el IntervaloEspera, que se calcula a partir de EstimacionRTT y DevRTT. EstimacionRTT: Es el valor estimado para obtener una nueva MuestraRTT, donde MuestraRTT es la cantidad de tiempo desde que se enva el segmento hasta que recibe el reconocimiento para el segmento. DevRTT: Es la medida de variabilidad del RTT, donde define la variacin de tiempo de ida y vuelta. El segundo evento principal es el envero de fin del tiempo de espera. TCP responde a este evento de fin de tiempo de espera volviendo a transmitir el segmento causante del evento. Por lo que, TCP arranca el temporizador. El tercer evento principal que debe ser gestionado por el emisor TCP es la llegada de un segmento de reconocimiento (ACK) desde el receptor (ms especficamente, de un segmento que contiene un valor valido en el campo ACK). Al ocurrir este evento, TCP compara el valor y del ACK con la variable BaseEnvio. La variable de estado BaseEnvio de TCP es el numero de secuencia del byte mas antiguo por reconocer. (Por ello BaseEnvio 1 es el numero del ultimo byte del ultimo que se tiene constancia que haya sido recibido correctamente y en orden por el receptor) TCP utiliza reconocimientos acumulados, de forma que se reconoce la recepcin de todos los bytes con nmeros anteriores a y. Si y > BeseEnvio, entonces el ACK esta reconociendo uno o mas segmentos no recocidos previamente. Por eso, el emisor actualiza su variable BaseEnvio, y tambin rearranca el tiempo si existiera segmentos aun no reconocidos.

Unos cuantos escenarios interesantes

Retransmisin rpida La retransmisin rpida se ve motivada por algunos periodos de espera que son relativamente largos, como en el caso de que se fuerce por una larga espera antes de que se pueda reenviar el paquete perdido. Afortunadamente, el emisor puede detectar a menudo los paquetes perdidos bastante antes de que se cumpla el intervalo de espera tomando nota de los ACK duplicados. Un ACK duplicado es un ACK que reconoce un segmento para el cual el emisor ya ha recibido un reconocimiento previo. Si el emisor recibe tres ACK repetidos, TCP realiza una retransmisin rpida, retransmitiendo el segmento ausente antes de que expire el temporizador.

Das könnte Ihnen auch gefallen