370 likes | 697 Vues
PROTOCOLOS DE TRANSPORTE. RODRIGO VERGARA ROJAS SEMINARIO DE REDES DE ALTA VELOCIDAD PRIMER SEMESTRE 1999. Contenido. 1) Introducción a TCP/IP 2) Protocolo TCP 3) Cabecera TCP 4) Control de Flujo en TCP 5) Efecto del Tamaño de la Ventana 6) Resumen 7) Bibliografía. Protocolo TCP/IP.
E N D
PROTOCOLOS DE TRANSPORTE RODRIGO VERGARA ROJAS SEMINARIO DE REDES DE ALTA VELOCIDAD PRIMER SEMESTRE 1999
Contenido • 1) Introducción a TCP/IP • 2) Protocolo TCP • 3) Cabecera TCP • 4) Control de Flujo en TCP • 5) Efecto del Tamaño de la Ventana • 6) Resumen • 7) Bibliografía
Protocolo TCP/IP • Familia de protocolos más usada en la interconectividad de interredes. • Usado por Internet y otras redes para interconectar computadores, equipos de comunicación y programas. • Permitió el desarrollo y la masificación de la Internet • Algunos de los motivos de su popularidad • Independencia del fabricante. • Soporta múltiples tecnologías. • Puede funcionar en máquinas de cualquier tamaño. • Universalidad (Todas las máquinas lo utilizan, no así UNIX)
PROTOCOLO TCP/IP • Los datos a transmitir se dividen en pequeños paquetes, los cuales llevan la dirección de destino y el número de secuencia. • Al llegar al receptor, este manda un mensaje de acuse de recibo (ACK), el que no es enviado si falta un paquete o llega uno defectuoso Si no recibe el ACK, el transmisor interpreta que no ha llegado el paquete y lo retransmite • En el receptor se reordenan los paquetes en secuencia. • La transferencia de paquetes se hace de un computador o enrutador a otro hasta que llegue a su destino. Esto permite • Mayor rapidez de transmisión (Permite esquivar atascos) • Alta fiabilidad (Existen varias rutas alternativas).
Niveles Superiores Definen la manera en que las aplicaciones usan la interred Capas y Protocolos TCP/IP TCP Especifica la manera de asegurar una transferencia confiable. Indica formato de paquetes enviados, así como el mecanismo para enviar paquetes del transmisor, por medio de enrutadores, al destino final Protocolo Internet (IP) Interfaz de Red Especifica la organización de los datos en bloques y la transmisión de estos por la red Física Hardware básico de red
DATA DATA DATA DATA TCP Header PDU en TCP-IP IP Header Network Header FLUJO DE BYTES DE APLICACIÓN. TCP DATA DATA IP RED
PROTOCOLO TCP Niveles Superiores • Prepara la información en el emisor • Divide la información en varios paquetes. • Añade overhead para controlar la llegada en el receptor • Controla los resultados del transporte en el receptor • Recepción de paquetes • Comprobar falta de paquetes o errores en alguno de ellos. Si existe, le hace entender indirectamente al transmisor esta situación (no manda ACK). • Reconstruir la información original. TCP Protocolo Internet (IP) Red de comunicación
PROTOCOLO TCP Servicio de entrega sin conexiones (Tipo Datagrama) Niveles Superiores PERO....... TCP IP no está diseñado para garantizar que van a llegar todos los paquetes sin errores y en secuencia. Protocolo Internet (IP) Red de comunicación Duplicación de Paquetes Pérdida de Secuencia Pérdida de Paquetes Retardo de Paquetes
PROTOCOLO TCP • Usa IP para transmitir datos a otra computadora. • Ofrece un servicio de transferencia de datos eficiente y confiable a los programas de aplicación. • Debe compensar pérdidas y retardos sin sobrecargar redes ni enrutadores. Niveles Superiores TCP Protocolo Internet (IP) Red de comunicación
PROTOCOLO TCP • Es vital su diseño e implementación para • Lograr buen rendimiento en los sistemas terminales. • Lograr una eficiente conexión de redes (connecting networks) como un todo. • Las políticas de transmisión y retransmisión de datos impactan profundamente en los niveles de congestión en la red (control de flujo). • Deben ofrecer confiabilidad en la transferencia de datos, la cual es fundamental para muchas aplicaciones.
PROTOCOLO TCP • Orientado a la Conexión • Primero se solicita conexión al destino. • Luego se envían los datos. • Aunque no existen conexiones virtuales, TCP da la ilusión de un circuito virtual. • Comunicación Punto a Punto • Las comunicaciones TCP tienen dos puntos terminales. • Se conectan aplicaciones de la computadora local con una remota.
PROTOCOLO TCP • Confiabilidad Total. • Garantiza que los datos enviados llegarán a la capa de aplicación incólumes, sin datos faltantes o desordenados. • Comunicación Dúplex Integral • Los datos deben fluir en ambos sentidos. • Cualquiera de los terminales debe poder transmitir en cualquier momento
PROTOCOLO TCP • Interfaz de Flujo. • Debe ofrecer una interfaz de flujo que permita a la aplicación transmitir una secuencia continua de octetos por una conexión. • Arranque Confiable de Conexión • Requiere que, cuando se establece una conexión entre dos aplicaciones, ambas la acepten.
PROTOCOLO TCP TERMINAL A TERMINAL RECEPTOR TCP ve a IP como un mecanismo que le permite intercambiar mensaje con un TCP remoto EMISOR Aplicación Aplicación TCP TCP IP IP ROUTER IP Interfaz Red Interfaz Red Interfaz Red RED 1 RED 2
NORMAS TCP RFC 793 (1981) Definición Oficial de TCP Resumen de mejoras y especificaciones de implementación RFC 1122 (1989)
Número de Puerto Destino CABECERA TCP Número de Puerto Fuente Número de Secuencia SYN = 0 Número de secuencia del primer octeto de datos en cada segmento. SYN = 1 Número de secuencia inicial (ISN). Primer octeto de datos es ISN + 1 Se usa para reordenar segmentos que llegan en desorden
Puertos y Direcciones IP • En la cabecera IP van las direcciones IP. En la cabecera TCP van los puertos de la fuente y el destinatario. • Las direcciones de puerto usan 16 bits. O sea, pueden haber hasta 65536 direcciones. Luego, no se le puede garantizar a cada persona en el mundo una puerta única. • No es función de TCP ni de los puertos identificar la máquina. Una misma máquina por lo general va a tener varias aplicaciones, y por ende varios puertos
Puertos y Direcciones IP • Los puertos están relacionados con las distintas aplicaciones. Cada aplicación tiene su puerto asignado para intercambio de información. En general son los mismos en todos los terminales para las mismas funciones. • FTP: 20/21 • Sendmail: 25 • WWW: 80
CABECERA TCP ACK = 1 Contiene el siguiente número de secuencia del siguiente dato que el transmisor espera recibir. Número de Acuse de Recibo • Número de palabras de 32 bits en la cabecera. • Indica cuando comienzan los datos. • El largo de la cabecera es múltiplo de 32 bits. Reservado para usos futuros
Flags URG: Indica datos urgentes ACK: Valida campo Acknowledgment PSH: Fuerza a enviar datos aunque el buffer de emisor no esté lleno. RST: Conexión abortada SYN Sincroniza números de secuencia FIN: Se usa para indica fin de la conexión CABECERA TCP Asignación de créditos de control de Flujo, en octetos. Indica el espacio de buffer disponible que tiene el emisor para recibir más datos PSH = 1 Se manda inmediatamente la información del buffer en uno o más segmentos. El receptor los toma y procesa de inmediato. PSH = 0 El envío y recepción se hacen según la conveniencia del transmisor y el receptor.
Apuntador Urgente Indica el último octeto en una secuencia de datos urgentes. Esto permite al receptor conocer la cantidad de dato urgente que va a recibir. CABECERA TCP Bits ‘0’ de relleno que aseguran que los datos comiencen en una frontera de 32 bits. Código de detección de errores. Cubre la cabecera y los datos del segmento TCP. Permite garantizar integridad de los datos
Tamaño de segmento máximo 00000010 00000100 CABECERA TCP Especifica características opcionales. El largo es múltiplo de 8 bits. 00000000 Tipo 0: Fin de lista total de opciones 00000001 Tipo 1: No Operación. Se usa para alinear el comienzo de la opción siguiente Tipo 2: Tamaño de segmento máximo. Segundo octeto indica el largo. Indica el máximo tamaño de segmento que el receptor puede admitir. Se envía cuando SYN = 1. Si no se especifica, se asume que cualquier tamaño de segmento es admitido.
CABECERA TCP. Opciones posteriores a RFC 793 • Factor de escala de ventana • Permite multiplicar el valor de la ventana en un factor 2F, donde F es el factor de escala, cuyo máximo valor es 14. • Se usa sólo si durante la fase de inicio de la conexión. • Timestamp • La fuente envía un segmento con un campo Timestamp Value. El receptor lo recibe y envía en el siguiente segmento de ACK el campo Timestamp Echo Replay, con el mismo valor de Timestamp Value. • Esto provee una forma de implementar en TCP un monitoreo continuo del tiempo de viaje de los paquetes (round-trip time) de una conexión.
Control de Flujo • El mecanismo de control de flujo de TCP es conocido como “Esquema de asignación de créditos”. • Trabaja con los datos ubicados en buffers en el emisor y el receptor • Cada octeto de datos transmitido tiene un número de secuencia. Cada segmento TCP incluye el número de secuencia del primer octeto. • El receptor envía un mensaje de la forma (A = i, W = j), con la siguiente interpretación • Todos los octetos hasta el i - 1 están reconocidos. Se espera octeto con número de secuencia i. • Se concede permiso al emisor para enviar hasta j octetos de dato, correspondientes a los números de secuencia i hasta i + j -1.
Control de Flujo • El mecanismo de asignación de créditos es flexible. Por ejemplo, si el receptor manda un mensaje (A = i, W = j), y el último octeto recibido por este fue el i - 1 • Para aumentar crédito a una cantidad k (k > j) cuando no han arribado nuevos octetos, el receptor envía (A = i, W = k). • Para reconocer un segmento enviado que contiene m octetos de datos (m < j), sin permitir crédito adicional, el receptor envía (A = i + m, W = j - m)
Control de Flujo • Si el emisor opera más rápido que el receptor, los datos de entrada llenarán tarde o temprano el buffer del receptor. • En tal caso, este último envía un mensaje “ventana cero”. • El emisor que reciba este mensaje deja de transmitir paquetes hasta que el receptor indique que puede recibir más paquetes.
Se supone que la transmisión ocurre en una sola dirección y que los segmentos se componen de 200 octetos.
Receptor Control de Flujo TCP Transmisor W = 2500 Transmite Octetos 1-1000 Transmite Octetos 1001-2000 Transmite Octetos 2001-2500 ACK = 1001, W = 1500 ACK = 2001, W = 500 Recibe ACK de 1001 ACK = 2501, W = 0 Recibe ACK de 2001 Aplicación lee 2000 Octetos Recibe ACK de 2501 ACK = 2500, W = 2000 Transmite Octetos 2501-3500 Transmite Octetos 3501-4500 ACK = 3501, W = 1000 ACK = 4501, W = 0 Recibe ACK de 3501 Recibe ACK de 4501 Aplicación lee 1000 Octetos ACK = 4501, W = 1000 Recibe ACK de 4501
Ventana del emisor Ventana del receptor
Efecto del tamaño de la ventana. • Se definen • W: Tamaño de ventana TCP [Octetos] • R: Tasa de datos [bps] de la fuente TCP disponible para una conexión TCP dada. • D: Retardo de propagación [seg] entre Fuente TCP y destino sobre una conexión TCP dada Fuente D [seg] OCTETO Destinatario D [seg] ACK En todo este tiempo, una fuente no limitada puede transmitir hasta 2RD bits, o RD/4 octetos
Efecto del tamaño de la ventana • La fuente está limitada a un tamaño de ventana W octetos hasta que se recibe el siguiente acknowledgment. • W > RD/4 Se puede enviar el máximo de paquetes posible por la conexión (Throughput S o aprovechamiento de las capacidad de la conexión igual a 1) • W < RD/4 Lo máximo que se puede mandar es W. (Throughput S = W/(RD/4)).
Máximo Tamaño de Ventana (220-1) 106 octetos Máximo Tamaño de Ventana 216-1 = 65535 octetos
Factores adicionales que afectan el Throughput • Multiplexación de conexiones TCP sobre la misma interfaz de red. • Cada conexión maneja una parte de la capacidad disponible Tasa de Bits Throughput • Cada aplicación necesita una ventana más pequeña para cumplir con la condición de Throughput máximo. • Muchas conexiones TCP incluyen lazos que cruzan por múltiples redes. Además existe el riesgo de congestión Retardo de Propagación Throughput . • Si R es mayor que la tasa de transmisión en algún punto del lazo, se produce un “cuello de botella” en la ruta Throughput .
Factores adicionales que afectan el Throughput • Retransmisión de paquetes Throughput • La magnitud del impacto depende de la estrategia de retransmisión. • Estimación del control de flujo • El receptor puede potencialmente aumentar el Throughput permitiendo créditos adicionales por espacios que aún no existen. • Si el receptor anticipa que va a desocupar 1000 octetos del buffer, va a enviar un mensaje con W = 1000 al emisor. (Política Optimista) • Si el emisor es más rápido que el receptor, se corre el riesgo de que los 1000 octetos lleguen antes que los espacios del buffer estén disponibles Se pierden paquetes en el receptor Retransmisión Throughput .
Resumiendo...... • Hasta aquí se ha visto • Generalidades del Protocolo TCP/IP. • Generalidades de TCP. • Cabecera TCP. • Control de Flujo en TCP. • Efecto del tamaño de la ventana deslizante en el throughput • Lo que sigue es • Estrategias de retransmisión en TCP. • Políticas de Implementación en TCP.
BIBLIOGRAFÍA • “High Speed Networks: TCP/IP and ATM Design Principles”, William Stallings. Prentice Hall, 1998 • “Redes de Computadores, Internet e Interredes”, Douglas Comer, Prentice Hall, 1997 • “Tutorial de Internet” http://www.nauta.es/nauta/texto/tu-de-in.htm • “Protocolos TCP/IP”, J Miravet, J Muñoz y J Tegedor, http://www4.uji.es/~al019803/Tcpip.htm
BIBLIOGRAFÍA • “TCP/IP” Hans Kruse, http://www.csm.ohiou.edu/Kruse/Presentations/TCPIP/index.htm • “Transmission Control Protocol” Norma RFC 793 http://www.cis.ohio-state.edu/htbin/rfc/rfc793 • “Requirements for Internet Hosts”, Norma RFC 1122 http://www.cis.ohio-state.edu/htbin/rfc/rfc1122