TCP Transmission Control Protocol Esquema de Capas de
























- Slides: 24
TCP Transmission Control Protocol
Esquema de Capas de TCP/IP Capa Física Capa de Red Capa de Transporte Capa de Aplicación
El protocolo TCP n Características: – orientado a la conexión – comunicación punto a punto – confiable (establecimiento, transmisión y desconexión) – comunicación full-duplex – comunicación por flujo
Esquema de Conexión TCP EMISOR Aplicación TCP ve a IP como un mecanismo que le permite intercambiar mensaje con un TCP remoto TCP RECEPTOR Aplicación TCP ROUTER IP IP IP Interfaz Red RED 1 Interfaz Red RED 2
Normas TCP RFC 793 (1981) RFC 1122 (1989) Definición Oficial de TCP Resumen de mejoras y especificaciones de implementación
Logrando la Confiabilidad PROBLEMA Pérdidas de paquetes Distintas velocidades de tx. /rx. en las máquinas que se comunican Congestión en la red Rebooteos, desconexiones, máquinas apagadas, etc. SOLUCIÓN Retransmisión (timeout adaptivo) Control de Flujo (buffers, ventana deslizante) Control de Congestión 3 -way handshaking (saludo de 3 etapas) 1 2 3
Logrando la Confiabilidad PROBLEMA Pérdidas de paquetes Distintas velocidades de tx. /rx. en las máquinas que se comunican Congestión en la red Rebooteos, desconexiones, máquinas apagadas, etc. SOLUCIÓN Retransmisión (timeout adaptivo) Control de Flujo (buffers, ventana deslizante) Control de Congestión 3 -way handshaking (saludo de 3 etapas) 1 2 3
Retransmisiones TX Corre tout RX Envía información Recibe información Envía reconocimiento (ACK) Recibe ACK antes de que expire tout Envía más información Corre tout Expira tout Retransmite Existen métodos para asignar un valor adecuado al tiempo tout
Establecimiento de la Conexión TX RX Envía SYN con Seq = x Recibe SYN + ACK Envía ACK y + 1 Recibe segmento SYN Envía SYN seq = y, ACK x +1 Recibe ACK • Los números de secuencia inicial son elegidos aleatoriamente.
Cerrando la Conexión TX RX (La aplicación cierra la conexión) Envía FIN con Seq = x Recibe segmento FIN Envía ACK x +1 Recibe segmento ACK (La aplicación cierra la conexión) Envía FIN con Seq = y, ACK x + 1 Recibe segmento FIN + ACK Envía ACK y +1 Recibe segmento ACK Además, existe la posibilidad de cerrar la conexión abruptamente mediante un segmento con RST.
Esquema de Conexión TCP SYN Tiempo 1 RTT SYN ACK DATA conexión cerrada por Tx DATA FIN ACK 1 RTT Conexión Establecida = Tiempo de procesamiento en el Host conexión cerrada por Rx
TCP y la Conexión El protocolo TCP usa una conexión virtual (por SW) para transmitir la información. n TCP conecta dos puntos usando la dirección de la máquina y el puerto al cual se conecta. n El puerto puede ser compartido por distintas conexiones al mismo tiempo. n
Ventanas Deslizantes en TCP La ventana deslizante es un método para enviar los paquetes en una conexión en forma mas eficiente que esperando por el ACK de cada uno de los paquetes en forma secuencial. n La ventana deslizante será útil dependiendo del tamaño de la ventana y la velocidad de la red para recibir los paquetes que se quieren enviar. n
Ventanas Deslizantes en TCP La ventana en TCP opera sobre Octetos y no sobre paquetes es por eso que requiere de punteros para seguir el envío de esos Octetos. n Las ventanas son de ancho variable el cual esta dado por el “window advertisement” que esta contenido en todos los ACK y que ayuda al control de flujo y a la eficiencia de la conexión. n
Ventanas Deslizantes en TCP Ventana Inicial 1 2 3 Secuencia de Paquetes 4 Ventana Deslizada 5 6 7 8 9 10
Ventanas Deslizantes en TCP Octetos que se han enviado pero no se han ACK Octeto enviado y ACK 1 2 3 Puntero al principio de la ventana 4 5 6 7 8 9 10 Puntero al final de la ventana (variable)
Efecto de la ventana variable DATA ACK 3 RTT +2 DATA ACK 1 RTT +2 ACK DATA ACK Ventana de ancho 1 Ventana de ancho 3 Esquema simplificado de conexión TCP
Formato del Segmento en TCP 0 4 10 16 24 31 SOURCE PORT DESTINATION PORT SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER HLEN RESERVED CODE BITS WINDOW CHECKSUM URGENT POINTER OPTIONS (IF ANY) PADDING DATA. . . CODE BITS = URG-ACK-PSH-RST-SYN-FIN
Fragmentación y Checksum TCP esta implementado en muchos tipos de redes, con la dificultad clara de que estas redes se comunican a distinta velocidad y que soportan distintos tamaños de datagramas. n TCP negocia el tamaño del datagrama a enviar, esto lo hace en el comienzo de la conexión enviando el tamaño máximo de datagrama que puede manejar. n
Fragmentación y Checksum Cuando TCP envía el tamaño máximo de datagrama que puede manejar el otro extremo hace lo mismo y se conectan con el tamaño de datagrama menor. n Esta conexión es entre dos puntos y no toma en cuenta la ruta que tomaran los paquetes en la red. n
Fragmentación y Checksum La ruta es un problema, pues el datagrama puede pasar por redes de menor tamaño, con lo cual se tendrá que fragmentar el datagrama para que pueda pasar por esa red. n En implementaciones típicas se suele usar que un tamaño seguro de paquete es de 576 octetos, el cual debiera ser soportado por cualquier tipo de red. n
Fragmentación y Checksum El header IP contiene toda la información sobre las particiones de los datagramas. n Las redes Ethernet aceptan paquetes de 1500 octetos de largo. n Cuando los datagramas llegan a su destino deben ser re-ensamblados por TCP para poder ser utilizados. n
Fragmentación y Checksum Luego de tener los paquetes enteros, si es que estos pudieron llegar y ser reensamblados se procede a hacer el Checksum para comprobar si lo que se ha transmitido esta realmente correcto. n El Checksum es del mismo tipo que el de UDP y esta basado en el pseudoheader que se calcula en ambas partes de la conexión para ver si es valida. n
BIBLIOGRAFIA “The World of Networks” Cap. 2 (Protocols) n “Internetworking with TCP/IP” Cap. 13 Douglas E. Comer. n “Introduction to the Internet Protocols” Computer Science Facilities Group Rutgers University New Jersey n RFC 793, RFC 1180, RFC 1263 n