- Aprender
- Informática
- Ciencias de la computación
- Redes informáticas
- Capa de transporte
La capa de transporte: UDP y TCP
IntermedioUnidad 3 de 8 del curso Curso de Redes informáticas
Lo que aprenderás
- Describe los servicios que la capa de transporte añade sobre la capa de red y sigue cómo cada segmento entrante llega al proceso de aplicación correcto mediante números de puerto y sockets.
- Describe los servicios de la capa de transporte y sus limitacionesExplica cómo la capa de transporte convierte la entrega entre sistemas terminales en comunicación entre procesos y compara lo que TCP y UDP ofrecen a las aplicaciones.
- Entrega los segmentos al socket correcto mediante los puertosUtiliza los números de puerto para explicar la multiplexación y la demultiplexación e identifica qué socket recibe un segmento UDP o TCP.
- Describe los servicios de la capa de transporte y sus limitaciones
- Lee la cabecera UDP, calcula y verifica su suma de comprobación y decide si el servicio mínimo de UDP es una mejor opción que TCP para una aplicación dada.
- Lee la cabecera UDP y calcula su suma de comprobaciónInterpreta los cuatro campos de la cabecera UDP y calcula la suma de comprobación de internet con aritmética de complemento a uno.
- Decide cuándo UDP es el protocolo de transporte adecuadoSopesa la velocidad y el control de UDP frente a su falta de fiabilidad, control de flujo y control de congestión, y elige el protocolo de transporte según las necesidades de una aplicación.
- Lee la cabecera UDP y calcula su suma de comprobación
- Diseña paso a paso un protocolo que entregue correctamente los datos a través de un canal que corrompe y pierde paquetes, y después hazlo eficiente mediante la transmisión en cadena con retroceso N y repetición selectiva.
- Recupérate de los errores de bits mediante acuses de recibo y números de secuenciaConstruye un protocolo de parada y espera para un canal que corrompe bits y explica por qué necesita sumas de comprobación, acuses de recibo, retransmisiones y números de secuencia.
- Gestiona la pérdida de paquetes con temporizadores y mide el rendimiento de parada y esperaAñade un temporizador de cuenta atrás para gestionar los paquetes perdidos, sigue el protocolo del bit alternante en situaciones de pérdida y calcula por qué parada y espera desaprovecha un enlace rápido.
- Transmite paquetes en cadena con retroceso NSigue al emisor y al receptor de retroceso N con acuses de recibo acumulativos y un solo temporizador, y explica su límite de tamaño de ventana.
- Retransmite solo los paquetes perdidos mediante repetición selectivaSigue la repetición selectiva con acuses de recibo individuales, temporizadores por paquete y almacenamiento en búfer en el receptor, explica su límite de ventana más estricto y compárala con retroceso N.
- Recupérate de los errores de bits mediante acuses de recibo y números de secuencia
- Describe la conexión TCP y el formato del segmento, calcula los números de secuencia y de acuse de recibo en un flujo de bytes y sigue cómo se abren y cierran las conexiones.
- Describe la conexión TCP y la estructura de sus segmentosExplica qué es una conexión TCP, cómo trata TCP los datos de aplicación como un flujo de bytes y para qué sirve cada campo de la cabecera TCP.
- Numera los bytes mediante números de secuencia y de acuse de reciboCalcula los números de secuencia y de acuse de recibo de los segmentos en ambos sentidos de una conexión, incluidas las llegadas fuera de orden y el retorno cíclico.
- Abre y cierra conexiones TCPSigue el establecimiento de conexión en tres pasos y el cierre con números de secuencia y estados, y explica TIME_WAIT, los reinicios y las inundaciones de solicitudes SYN.
- Describe la conexión TCP y la estructura de sus segmentos
- Estima el tiempo de ida y vuelta y configura el tiempo de espera de TCP, sigue cómo TCP detecta y repara las pérdidas, y utiliza la ventana de recepción para impedir que el emisor desborde el búfer del receptor.
- Estima el tiempo de ida y vuelta y configura el tiempo de esperaCalcula el tiempo de ida y vuelta suavizado de TCP, su variación y el tiempo de espera de retransmisión, y explica cómo aumenta este tiempo después de una pérdida.
- Sigue las retransmisiones y los acuses de recibo de TCPSigue al emisor y al receptor TCP ante acuses de recibo perdidos, retrasados y duplicados, aplica sus reglas de acuse de recibo y utiliza la retransmisión rápida.
- Evita el desbordamiento del búfer de recepción mediante el control de flujoCalcula la ventana de recepción, aplica el límite del emisor a los datos sin acuse de recibo y explica las ventanas cero, el escalado de ventana y el límite de rendimiento que impone una ventana.
- Estima el tiempo de ida y vuelta y configura el tiempo de espera
Guía de estudio de Capa de transporte
1De los sistemas terminales a los procesos de aplicación
Un sistema terminal puede ejecutar un navegador, una llamada y una transferencia de archivos al mismo tiempo. Cada aplicación necesita sus propios datos, aunque compartan una interfaz de red. Los protocolos de transporte proporcionan ese servicio a nivel de proceso sobre IP. Sigue un segmento desde el socket emisor hasta el socket receptor y después usa puertos y direcciones para distinguir la entrega UDP de las conexiones independientes que mantiene un servidor TCP.
1.1 Qué añaden TCP y UDP a IP
Una aplicación envía datos mediante un socket, la interfaz entre su proceso y la capa de transporte. La capa de transporte hace que los procesos de distintos sistemas terminales parezcan comunicarse directamente. Esto es comunicación lógica: los datos siguen atravesando enlaces y encaminadores, pero la aplicación trabaja mediante su socket local.
Sigue los datos a través de las capas
En el emisor, el protocolo de transporte toma los datos de aplicación, los divide en partes cuando es necesario y añade una cabecera de transporte. El segmento resultante pasa a IP. IP añade su propia cabecera y produce un datagrama IP para que la red lo transporte. En el destino, IP pasa el segmento al protocolo de transporte, que interpreta la cabecera de transporte y entrega los datos a un socket.
La lógica del protocolo se ejecuta en los sistemas terminales. Los encaminadores ordinarios reenvían datagramas IP; no realizan acuses de recibo ni retransmisiones TCP en nombre de las aplicaciones. Piensa en una dirección IP como la dirección de un edificio y en el socket receptor como la persona destinataria dentro de él. Llevar una carta al edificio y entregarla a la persona correcta son tareas distintas.
IP ofrece entrega de mejor esfuerzo entre sistemas terminales. Los datagramas pueden perderse, duplicarse, llegar en otro orden o corromperse. El transporte amplía la entrega a los procesos y puede añadir mecanismos que reparen estos fallos.
Compara los servicios
| Servicio | UDP | TCP |
|---|---|---|
| Estilo de comunicación | Mensajes independientes | Conexión con un flujo de bytes |
| Entrega fiable y en orden | No | Sí |
| Control de flujo del receptor | No | Sí |
| Control de congestión de la red | Sin mecanismo incorporado | Sí |
| Retardo máximo o rendimiento mínimo | Sin garantía | Sin garantía |
| Cifrado por sí solo | No | No |
UDP, el protocolo de datagramas de usuario, añade puertos y una comprobación de errores a la entrega de IP. Un segmento puede llegar sin ningún intercambio previo de establecimiento. UDP no recupera un segmento perdido ni retiene un segmento posterior hasta que llegue uno anterior.
TCP, el protocolo de control de transmisión, establece el estado de conexión antes de la transferencia normal de datos. Numera los bytes, comprueba si hay errores, obtiene acuses de recibo y retransmite los datos que faltan. La aplicación receptora obtiene un flujo de bytes fiable y en orden. El control de flujo protege su búfer; el control de congestión responde a la carga de la red.
La fiabilidad no hace fiable la red subyacente. Si desaparece un datagrama IP, TCP envía otra copia de los datos que faltan. Si los bytes posteriores llegan primero, el receptor puede retenerlos hasta que se llene el hueco. La aplicación recibe los datos con la entrega reparada, pero puede esperar más tiempo. Ni TCP ni UDP pueden prometer un plazo de entrega ni reservar capacidad de red simplemente por funcionar sobre IP de mejor esfuerzo.
Elige el servicio en el socket
Un socket de flujo normalmente selecciona TCP; un socket de datagramas selecciona UDP. HTTP/1.1 y HTTP/2, la transferencia de correo SMTP y el inicio de sesión remoto mediante SSH usan TCP. Las consultas DNS ordinarias suelen usar UDP. HTTP/3 usa QUIC sobre UDP: QUIC proporciona flujos fiables y seguridad sobre el servicio mínimo de UDP.
Una conexión TCP por sí sola no mantiene en secreto una contraseña. TLS añade cifrado y autenticación sobre TCP; QUIC integra TLS en su diseño. La fiabilidad responde a si los bytes llegan a la aplicación correctamente y en orden. La confidencialidad responde a si un observador puede leerlos.
Puntos clave
- IP entrega datos entre sistemas terminales; transporte los entrega entre procesos de aplicación.
- TCP repara las pérdidas y los cambios de orden en los sistemas terminales.
- UDP proporciona entrega de mensajes sin recuperación ni control de flujo incorporados.
- Ni TCP ni UDP por sí solos garantizan un plazo, un rendimiento ni cifrado.
1.2 Puertos y selección de sockets
Un sistema terminal suele tener muchos sockets abiertos. La multiplexación reúne los datos salientes de esos sockets y añade cabeceras de transporte. La demultiplexación selecciona el socket receptor de cada segmento entrante.
Lee la información de direccionamiento
Tanto TCP como UDP llevan un puerto de origen de 16 bits y un puerto de destino de 16 bits. Los valores van de 0 a 65 535. El puerto de destino identifica el servicio receptor; el puerto de origen ayuda al otro extremo a dirigir su respuesta. La IANA agrupa los puertos en puertos de sistema 0–1023, puertos de usuario 1024–49151 y puertos dinámicos 49152–65535.
Los servidores escuchan en puertos acordados: SSH usa el 22, SMTP el 25, DNS el 53, HTTP el 80 y HTTPS habitualmente el 443. Los clientes suelen obtener del sistema operativo un puerto efímero temporal. Su rango configurado no tiene por qué coincidir con el rango dinámico de la IANA: un valor predeterminado habitual de Linux es 32768–60999, mientras que Windows suele usar 49152–65535.
Para un datagrama IP entrante, el sistema terminal identifica primero el protocolo de transporte. El valor de protocolo IPv4 6 significa TCP y el 17 significa UDP; IPv6 identifica el protocolo de la capa superior mediante su cadena de cabeceras siguientes. El puerto TCP 53 y el puerto UDP 53 pertenecen a espacios de nombres de transporte distintos. El receptor usa después las direcciones y los puertos para seleccionar un socket y pone los datos en cola para la aplicación.
UDP: muchos clientes, un socket receptor
En el modelo básico de servidor UDP sin conexión, el socket receptor se selecciona mediante la dirección IP de destino y el puerto de destino. Distintos clientes pueden enviar datos a ese mismo socket.
Un servidor en 203.0.113.53 escucha en el puerto UDP 53. Las solicitudes de 198.51.100.7:51000 y 192.0.2.44:62011 llegan a este único socket del servidor. La primera respuesta viaja desde 203.0.113.53:53 hasta 198.51.100.7:51000. La aplicación obtiene la dirección y el puerto de origen de cada solicitud para poder responder al cliente correcto. Un socket UDP conectado también puede restringir el extremo del que recibe; no se añade ningún intercambio de establecimiento UDP.
TCP: distingue las conexiones por cuatro valores
Un servidor TCP tiene un socket de escucha y sockets de conexión independientes. Una conexión se identifica mediante la cuádrupla de IP de origen, puerto de origen, IP de destino y puerto de destino.
Para un servidor en 203.0.113.10:80, estas son conexiones distintas:
- 198.51.100.7:50312 → 203.0.113.10:80
- 198.51.100.7:50313 → 203.0.113.10:80
- 192.0.2.44:50312 → 203.0.113.10:80
Las dos primeras difieren en el puerto de origen. La primera y la tercera comparten un puerto de origen, pero difieren en la dirección de origen. Las tres usan el puerto 80 del servidor. No hace falta un puerto de servidor distinto para cada cliente porque la cuádrupla completa distingue sus sockets de conexión. Un proceso puede gestionar muchos de estos sockets.
Cuando ningún socket coincide
Un SYN enviado a un puerto TCP cerrado normalmente recibe un reinicio de conexión, con el indicador RST activado. Un segmento UDP enviado a un puerto sin receptor normalmente provoca un mensaje ICMP de «puerto inaccesible». Los cortafuegos, el filtrado y los límites de respuesta pueden afectar a lo que se recibe. En una sonda de puerto, SYN-ACK indica que hay un servicio TCP escuchando; RST indica rechazo. El silencio por sí solo no permite distinguir entre filtrado, pérdida o un sistema terminal que no está disponible.
Puntos clave
- La multiplexación combina el tráfico saliente de los sockets; la demultiplexación selecciona un socket receptor.
- Los números de puerto tienen 16 bits y pertenecen a un protocolo de transporte.
- Un servidor UDP básico puede recibir datos de muchos clientes mediante un solo socket.
- TCP distingue los sockets de conexión mediante ambas direcciones IP y ambos puertos.
- Los puertos TCP y UDP cerrados normalmente producen respuestas distintas.
2Mensajes UDP, sumas de comprobación y elección de las aplicaciones
UDP mantiene reducido el servicio de transporte: una cabecera corta, entrega a un socket y una suma de comprobación. Esa sencillez resulta útil cuando una aplicación quiere controlar los tiempos de los mensajes, pero deja la recuperación y la gestión de la tasa a la aplicación o a un protocolo situado sobre UDP. Lee la cabecera y resuelve una suma de comprobación con acarreo circular; después, evalúa una aplicación según sus plazos y necesidades de entrega, sin tratar todos los servicios en tiempo real como si fueran iguales.
2.1 La cabecera UDP y la suma de comprobación de internet
UDP envía cada mensaje de forma independiente, sin intercambio de establecimiento ni estado compartido de secuencia de conexión. Su cabecera fija de 8 bytes contiene cuatro campos, cada uno de 16 bits: puerto de origen, puerto de destino, longitud y suma de comprobación.
Cuenta los bytes correctos
La longitud abarca la cabecera UDP más sus datos. Es de al menos 8 bytes. Un mensaje con 40 bytes de datos tiene una longitud UDP de 48. Con una cabecera IPv4 de 20 bytes y sin opciones IP, el datagrama IP completo tiene 68 bytes. La cabecera IP queda fuera de la longitud UDP.
La suma de comprobación detecta algunos errores de bits en la cabecera y los datos UDP. También abarca una pseudocabecera construida a partir de la información de direccionamiento IP, el número de protocolo y la longitud UDP. Esos valores ayudan a detectar un segmento entregado con información de direccionamiento incorrecta. La pseudocabecera es una entrada para el cálculo; no es una parte adicional transmitida de la cabecera UDP.
Suma con acarreo circular
Trata la entrada del cálculo como palabras de 16 bits. Pon el campo de suma de comprobación a cero durante el cálculo. Suma las palabras y devuelve cualquier acarreo que supere el bit 16 al extremo de menor peso. Esto es una suma en complemento a uno. Por último, invierte los 16 bits de la suma resultante para obtener la suma de comprobación. Si el número de bytes es impar, añade un byte de ceros únicamente para el cálculo.
Para tres palabras ilustrativas, usa hexadecimal para que se vea el acarreo:
- Suma A35C y 69C3 para obtener 10D1F. El 1 inicial es un acarreo fuera de los 16 bits.
- Incorpóralo de nuevo: 0D1F + 1 = 0D20.
- Suma 1234: 0D20 + 1234 = 1F54.
- Complementa cada bit: FFFF − 1F54 = E0AB.
La suma de comprobación es E0AB. Simplemente descartar el acarreo inicial daría una suma incorrecta. En binario, la suma final es 0001 1111 0101 0100 y su complemento es 1110 0000 1010 1011.
Comprueba en el receptor
El receptor repite la suma con acarreo circular sobre la pseudocabecera y el segmento recibido, incluyendo ahora el campo de suma de comprobación. Un segmento sin cambios da solo unos, FFFF. Aquí, 1F54 + E0AB = FFFF. Un resultado que contiene un bit cero indica que se ha detectado un error. UDP descarta sin avisar un segmento cuya suma de comprobación suministrada y distinta de cero no supera la verificación; no envía un reemplazo ni repara los datos.
Un resultado formado solo por unos significa que se superó la verificación, no que se hayan descartado todos los errores posibles. Los cambios compensatorios en distintas palabras pueden dejar la suma sin cambios. La suma de comprobación detecta errores; no localiza los bits incorrectos ni los corrige.
Por qué los sistemas terminales vuelven a comprobar
Una comprobación de enlace protege un enlace concreto. Algunos enlaces pueden carecer de ella y también puede haber corrupción dentro de los equipos entre enlaces. Una comprobación de extremo a extremo verifica lo que llegó al sistema terminal de destino. Esto ilustra el principio de extremo a extremo: una propiedad necesaria en todo el trayecto debe comprobarse en sus extremos.
Sobre IPv4, un campo de suma de comprobación UDP igual a cero indica que el emisor omitió la suma. Una suma calculada de cero se transmite como una secuencia de unos para conservar esta distinción. IPv6 normalmente exige una suma de comprobación UDP, con excepciones para túneles definidas de forma restringida. TCP también usa una suma de comprobación de internet con una pseudocabecera y exige su suma de comprobación.
Puntos clave
- La longitud UDP incluye su cabecera de 8 bytes y excluye la cabecera IP.
- Incorpora cada acarreo a los 16 bits de menor peso y después complementa la suma.
- Un resultado formado solo por unos en el receptor significa que se superó la verificación.
- UDP descarta un segmento cuya suma de comprobación distinta de cero no supera la verificación, sin retransmitirlo.
- La suma de comprobación puede pasar por alto errores y no puede corregirlos.
- Un campo de suma de comprobación UDP igual a cero en IPv4 significa que se omitió la suma.
2.2 Elige UDP según las necesidades de la aplicación
El servicio reducido de UDP da a una aplicación control sobre sus mensajes. No hay intercambio de establecimiento de transporte antes del primer mensaje, ni cola de retransmisión UDP, ni mecanismo UDP que retenga datos posteriores por un mensaje anterior que falta. La aplicación decide qué enviar y qué pérdidas importan.
Ajusta la recuperación al tiempo útil de llegada
Considera audio de voz enviado en partes de 20 ms: 50 mensajes por segundo. Una parte que falta debe reproducirse dentro de 60 ms, pero detectar la pérdida y obtener otra copia tarda unos 150 ms. Esa parte recuperada llegaría demasiado tarde. Una aplicación de voz puede reproducir las partes posteriores a tiempo y disimular el sonido que falta, por ejemplo, suavizando el hueco.
La cantidad decisiva es el tiempo que queda antes de la reproducción, no la duración de 20 ms de una parte. Si la recuperación puede terminar antes del plazo, la retransmisión puede ayudar. TCP debe entregar los bytes en orden, por lo que un byte anterior que falta también puede retrasar la entrega de bytes posteriores que ya se han recibido. Esta espera suele llamarse bloqueo de cabecera de cola dentro del flujo.
Una transferencia de archivos tiene otra prioridad: cada byte debe llegar correctamente y es aceptable esperar a la recuperación. TCP ya proporciona ese servicio. Usar UDP trasladaría a la aplicación o a otro protocolo el trabajo de detectar pérdidas, solicitar datos de reemplazo y restablecer el orden.
Qué aporta la cabecera pequeña
La cabecera UDP tiene 8 bytes; la de TCP tiene al menos 20. Un servidor UDP puede recibir mensajes de muchos clientes sin establecer conexiones de transporte por cliente. Sigue habiendo búferes de socket y recursos de aplicación, por lo que «sin conexión» no significa que el sistema terminal no almacene nada.
Los usos habituales de UDP incluyen consultas DNS ordinarias en el puerto 53, sincronización horaria NTP en el 123, gestión SNMP en el 161 y asignación de direcciones DHCP en el 67 y el 68. Las llamadas y los juegos suelen elegir UDP para que los mensajes lleguen a tiempo. El vídeo bajo demanda suele usar HTTP sobre TCP o QUIC, por lo que «el vídeo usa UDP» es una regla demasiado general.
QUIC muestra cuánto puede añadir un protocolo sobre UDP: flujos fiables, control de congestión y seguridad TLS 1.3. Se estandarizó en 2021 y suele usar el puerto UDP 443; HTTP/3 funciona sobre QUIC. UDP por sí mismo no ha adquirido esos servicios.
Mantén los mensajes lo bastante pequeños
UDP conserva los límites de los mensajes. Una operación de recepción lee un mensaje, no un flujo de bytes formado a partir de varios envíos. La aplicación debe proporcionar un búfer de lectura suficientemente grande; un búfer más pequeño puede truncar el mensaje.
Para IPv4 con una cabecera IP de 20 bytes, la carga útil máxima teórica es 65 535 − 20 − 8 = 65 507 bytes. Enviar datos cerca de ese límite puede requerir fragmentación IP. En un trayecto que admite datagramas IPv4 de 1500 bytes, caben 1500 − 20 − 8 = 1472 bytes de datos sin fragmentación cuando no hay opciones IP. Otros trayectos y cabeceras pueden reducir ese valor.
Ten en cuenta los controles que faltan
UDP no tiene control de flujo incorporado para proteger a un receptor lento. Si su búfer de socket se llena, los mensajes entrantes pueden descartarse. Tampoco tiene control de congestión incorporado. Las aplicaciones UDP responsables proporcionan un control adecuado de la tasa para no saturar un trayecto compartido. Algunas redes filtran UDP, por lo que las aplicaciones pueden necesitar una alternativa.
Omitir el establecimiento y la recuperación puede reducir el retardo, pero UDP no aumenta la capacidad de un enlace ni evita las pérdidas de IP. Evalúa el protocolo de aplicación completo: el trabajo que añade sobre UDP puede importar más que el tamaño de la cabecera.
Puntos clave
- Elige la recuperación según si los datos recuperados todavía pueden utilizarse.
- UDP conserva los mensajes, pero no proporciona recuperación de pérdidas ni ordenación.
- Las aplicaciones sobre UDP deben gestionar la capacidad del receptor y la carga de la red.
- QUIC proporciona flujos fiables y seguros sobre UDP.
3Construye la fiabilidad y mantén los datos en vuelo
Un protocolo fiable necesita pruebas de qué ha llegado y un plan para actuar cuando faltan esas pruebas. Empieza con un canal que invierte bits y después añade pérdidas de paquetes y respuestas retrasadas. Una vez garantizado el funcionamiento correcto, calcula cuánto tiempo deja parada y espera inactivo al emisor. Las ventanas deslizantes permiten que varios paquetes viajen a la vez; retroceso N y repetición selectiva toman decisiones distintas sobre los acuses de recibo, el almacenamiento en búfer y la retransmisión.
3.1 Sumas de comprobación, respuestas y detección de duplicados
Un protocolo de transferencia fiable de datos entrega a la aplicación receptora datos correctos, en orden y sin duplicados, aunque el canal subyacente dañe paquetes. Construye el diseño preguntándote qué puede salir mal en cada etapa. En estos protocolos, los datos de aplicación avanzan en un sentido y las respuestas de control viajan en el contrario.
Describe el comportamiento con estados
Una máquina de estados finitos registra el estado actual del emisor o del receptor. Cada transición tiene un evento desencadenante y las acciones que se deben realizar. Un estado como «esperando ACK 0» recoge qué prueba necesita el emisor antes de continuar. En la notación de estas máquinas, Λ indica que no hay evento o acción; una flecha entrante discontinua señala el estado inicial.
Con un canal perfectamente fiable, la versión 1.0 solo necesita envío y entrega. El emisor empaqueta los datos, el receptor los extrae y ninguno necesita respuestas. Añadir errores de bits cambia el diseño.
Detecta un error y pide otra copia
La versión 2.0 usa tres mecanismos:
- Una suma de comprobación permite al receptor comprobar si un paquete está corrompido.
- Un ACK informa de una recepción correcta; un NAK informa de datos dañados.
- La retransmisión envía otra copia cuando es necesario.
En conjunto forman la solicitud de repetición automática (ARQ). El emisor envía un paquete y espera una respuesta antes de enviar el siguiente: parada y espera. Guarda una copia del paquete actual porque puede necesitar reenviarlo.
Pero los paquetes de respuesta atraviesan el mismo canal no fiable. Un ACK dañado deja al emisor sin saber si el receptor aceptó los datos o si necesita otra copia. Reenviar solo es seguro si el receptor puede distinguir una copia de reemplazo de datos de aplicación nuevos. Una suma de comprobación por sí sola no identifica duplicados; dos copias válidas tienen el mismo contenido válido.
Da una identidad a cada paquete pendiente
La versión 2.1 añade un número de secuencia. Con un solo paquete pendiente, basta un número de un bit que alterna 0, 1, 0, 1 en este modelo de canal de parada y espera. El receptor recuerda qué número espera. Entrega una vez un paquete válido con ese número y después cambia el número esperado. Un paquete con el número anterior es un duplicado: confírmalo de nuevo, pero no vuelvas a entregar sus datos.
El emisor conserva el número actual mientras retransmite. Solo pasa al otro número después de recibir el ACK correspondiente y legible. En este diseño con errores, pero sin pérdidas, una respuesta corrompida o un NAK provocan una retransmisión.
Sustituye los NAK por ACK repetidos
La versión 2.2 elimina los NAK. El receptor responde a un paquete dañado o duplicado con un ACK del último paquete que aceptó. Por tanto, el ACK necesita un número.
Supongamos que el paquete 0 lleva «A» y llega correctamente. El receptor entrega «A» y envía ACK 0. El paquete 1, que lleva «B», se corrompe, por lo que el receptor repite ACK 0. El emisor espera ACK 1; este ACK duplicado indica que debe reenviar el paquete 1. La copia válida se entrega como «B» y se confirma con ACK 1.
Descartar los datos duplicados y confirmar el paquete duplicado son acciones distintas. Si el receptor ignorara sin responder una copia de reemplazo cuyo ACK anterior era ilegible, el emisor nunca podría saber que la entrega tuvo éxito. TCP también evita los NAK, aunque su numeración de bytes y sus reglas de retransmisión rápida difieren de las de este protocolo sencillo.
Puntos clave
- Una suma de comprobación detecta corrupción, pero por sí sola no puede identificar un duplicado.
- ARQ combina detección de errores, respuestas del receptor y retransmisión.
- Parada y espera mantiene un paquete de datos pendiente.
- Los números de secuencia alternantes permiten al receptor entregar cada paquete una sola vez.
- Un duplicado se confirma de nuevo sin volver a entregar sus datos.
3.2 Temporizadores y eficiencia de parada y espera
Una respuesta no ayuda si nunca llega. Cuando el canal puede perder un paquete de datos o un ACK, el emisor necesita una forma de continuar sin recibir un mensaje. La versión 3.0 añade un temporizador de cuenta atrás al protocolo del bit alternante.
Gestiona el silencio sin entregar dos veces
El emisor inicia el temporizador cada vez que envía el paquete actual, incluida una copia de reemplazo. Un ACK correspondiente e intacto detiene el temporizador y permite enviar el siguiente paquete. Un ACK corrompido o con un número incorrecto se ignora. Si el temporizador vence primero, el emisor reenvía el mismo paquete y reinicia el temporizador.
Si se pierde un paquete de datos, el receptor no tiene nada que confirmar; el vencimiento del tiempo de espera provoca el envío de una copia de reemplazo. Si se pierde un ACK, el receptor ya ha entregado los datos. Cuando llega la copia de reemplazo, el número de secuencia identifica un duplicado. El receptor descarta sus datos y vuelve a enviar el ACK.
Un vencimiento prematuro del tiempo de espera ocurre cuando el paquete original o el ACK solo se retrasó. La copia de reemplazo desperdicia capacidad de transmisión, pero la detección de duplicados preserva la entrega correcta. Un tiempo de espera útil debe contemplar el tiempo de ida y vuelta previsto y el procesamiento del receptor. Si es demasiado corto, produce retransmisiones innecesarias; si es demasiado largo, retrasa la recuperación de una pérdida real.
Separa el tiempo de transmisión del tiempo de espera
Sea la longitud del paquete bits y la tasa del enlace bit/s. El emisor necesita segundos para transmitir un paquete al enlace. Sin contar el tiempo de transmisión y procesamiento del ACK, un ciclo de parada y espera tarda . La fracción de tiempo dedicada a enviar es
Para paquetes de 1500 bytes en un enlace de 1 Gbit/s, primero convierte bytes a bits:
Entonces . Con un RTT de 40 ms,
El emisor está activo aproximadamente el 0,03 % del tiempo. El rendimiento es de unos 12 000 bits cada 0,040012 s, o 300 kbit/s. Incluso un enlace muy rápido transporta poco tráfico útil porque el emisor pasa casi todo el ciclo esperando.
Transmite los paquetes en cadena
La transmisión en cadena permite que haya varios paquetes en vuelo sin acuse de recibo. Si caben hasta paquetes en la ventana de envío, la utilización ideal pasa a ser
Con el mismo enlace, 1000 paquetes dan una utilización aproximada de 0,30. Para mantenerlo completamente ocupado se necesitan al menos tiempos de transmisión de paquete, por lo que se redondea hacia arriba a 3335 paquetes. Redondear hacia abajo deja un pequeño intervalo de inactividad antes del primer ACK.
Una cadena mayor necesita suficientes números de secuencia para distinguir sus paquetes y suficiente espacio de búfer para conservar los datos sin acuse de recibo. El receptor también puede necesitar almacenamiento en búfer, según el protocolo. Retroceso N y repetición selectiva resuelven estas decisiones de diseño de forma diferente.
Aumentar solo la tasa del enlace acorta el tiempo de transmisión, que ya es breve. Para un tamaño de paquete y un RTT fijos, reduce la utilización de parada y espera. Tener más datos en vuelo permite al emisor usar la capacidad disponible.
Puntos clave
- Un temporizador permite continuar cuando se pierden datos o respuestas.
- Un vencimiento prematuro desperdicia capacidad, pero los números de secuencia evitan la entrega duplicada.
- Usa bits para la longitud del paquete cuando la tasa del enlace esté en bit/s.
- La utilización de parada y espera es el tiempo de transmisión dividido por el tiempo del ciclo completo.
- La transmisión en cadena mejora la utilización al permitir varios paquetes pendientes.
- Redondea hacia arriba una ventana requerida de paquetes enteros y limita la utilización a 1.
3.3 Ventanas de retroceso N y ACK acumulativos
Retroceso N (GBN) permite hasta paquetes enviados pero sin acuse de recibo. La ventana deslizante del emisor avanza cuando los acuses de recibo confirman la entrega. El receptor se mantiene sencillo: solo acepta el siguiente paquete en orden.
Mantén separados los rangos del emisor
La variable base identifica el paquete más antiguo sin acuse de recibo. nextseqnum identifica el siguiente paquete nuevo que se enviará. Antes del retorno cíclico de los números de secuencia, los rangos son:
- Por debajo de
base: ya confirmados. - De
baseanextseqnum − 1inclusive: enviados, a la espera de acuse de recibo. - De
nextseqnumabase + N − 1inclusive: disponibles para datos nuevos. - En
base + No por encima: bloqueados hasta que avance la ventana.
Para base = 10, nextseqnum = 13 y , los paquetes 10–12 están pendientes. Los paquetes 13 y 14 pueden enviarse. El paquete 15 no puede. Una ventana limita los datos pendientes, no el número total de paquetes de una transferencia.
Los acuses de recibo acumulativos desplazan la base
El ACK de GBN confirma todos los paquetes hasta inclusive. Desplaza base a . Por tanto, un ACK acumulativo posterior puede cubrir ACK anteriores que se hayan perdido. Esta convención de numeración identifica el último paquete aceptado; la convención de ACK de TCP identifica el siguiente byte esperado.
GBN mantiene un temporizador para el paquete pendiente más antiguo. El envío del primer paquete pendiente lo inicia. Un ACK que hace avanzar la base lo reinicia si todavía hay datos pendientes; la confirmación de todos los datos lo detiene. Cuando vence el temporizador, el emisor retransmite todos los paquetes que se han enviado pero siguen sin acuse de recibo. Ese número puede ser menor que la ventana máxima .
Sigue un paquete que falta
Usa una ventana de cuatro y envía los paquetes 0, 1, 2 y 3. El paquete 2 se pierde. El receptor entrega 0 y 1 y envía ACK 0 y ACK 1. El paquete 3 llega más allá del hueco: el receptor lo descarta y repite ACK 1.
Los dos primeros ACK abren espacio para los paquetes 4 y 5. Estos también llegan más allá del paquete 2 que falta, por lo que ambos se descartan y se responde con ACK 1. La base del emisor permanece en 2. Al vencer el tiempo de espera, retransmite 2, 3, 4 y 5. Ahora llegan en orden y todos pueden entregarse.
Las copias de 3, 4 y 5 estaban intactas la primera vez. GBN las reenvía porque su receptor decidió no almacenar en búfer los paquetes fuera de orden. Esto ahorra estado en el receptor a costa de tráfico adicional después de una pérdida.
Deja un número de secuencia fuera de la ventana
Un campo de bits proporciona números de paquete, que se reutilizan cíclicamente. GBN requiere
Con tres bits, los números son 0–7 y la mayor ventana de envío es siete. Si se permitieran los ocho, el receptor podría aceptar 0–7 y volver a esperar 0. Si se perdieran todos los ACK, un 0 antiguo retransmitido parecería nuevo. Si solo se envían 0–6, el receptor espera 7 y puede reconocer el 0 retransmitido como antiguo. La aritmética de ventana cerca del retorno cíclico sigue el orden cíclico, no el orden numérico ordinario.
Puntos clave
- El ACK n de GBN confirma todos los paquetes hasta n inclusive.
- El receptor descarta los paquetes que llegan más allá de un hueco.
- Un temporizador controla el paquete pendiente más antiguo.
- El vencimiento del tiempo de espera provoca el reenvío de los paquetes enviados sin acuse de recibo.
- La mayor ventana GBN con números de k bits es 2^k − 1.
3.4 Repetición selectiva y reutilización de números de secuencia
La repetición selectiva (SR) guarda los paquetes recibidos correctamente aunque falten otros anteriores. Cada paquete válido recibe su propio ACK. El emisor puede entonces reemplazar solo el paquete cuyo temporizador vence.
Realiza el seguimiento de cada paquete por separado
La ventana del emisor comienza en send_base, el paquete más antiguo sin acuse de recibo, y contiene números de secuencia permitidos. Cada paquete pendiente tiene un temporizador lógico. Un ACK marca ese paquete concreto como recibido. Un ACK posterior a la base no desplaza por sí solo la ventana: la base permanece en el primer hueco. Una vez que se confirma ese hueco, la base salta los paquetes posteriores que ya están confirmados.
La ventana del receptor comienza en rcv_base, el siguiente paquete necesario para la entrega. Se confirma un paquete válido dentro de la ventana. Los datos fuera de orden se almacenan en búfer. Cuando llega el paquete de la base, el receptor lo entrega junto con cada paquete consecutivo almacenado que lo sigue, hasta el siguiente hueco.
Un paquete de la ventana inmediatamente anterior es un duplicado antiguo. El receptor lo confirma de nuevo sin entregarlo. Esta regla es esencial cuando se perdió el ACK original: el emisor puede seguir esperando aunque el receptor haya avanzado.
Recupérate de una pérdida
Usa y supongamos que se pierde el paquete 2 después de que el emisor envíe 0–3. El receptor entrega y confirma 0 y 1, y después almacena en búfer y confirma 3. Esos dos primeros ACK permiten al emisor transmitir 4 y 5. Ambos se almacenan en búfer y se confirman individualmente, pero send_base permanece en 2.
Cuando vence el temporizador del paquete 2, solo se reenvía el 2. Su llegada permite al receptor entregar 2, 3, 4 y 5 juntos y desplazar rcv_base a 6. Una vez que ACK 2 llega al emisor, su base también avanza a 6, saltando los paquetes 3–5 cuyos ACK ya tiene.
Por qué la ventana ocupa como máximo la mitad del espacio de números
El receptor puede ir por delante del emisor porque los ACK se retrasan o se pierden. Los nuevos números aceptables no deben solaparse con números que aún podrían retransmitirse como paquetes antiguos.
Con números de dos bits 0–3 y una ventana de tres, supongamos que el receptor acepta 0, 1 y 2. Su nueva ventana es {3, 0, 1}. Si desaparecen todos los ACK, un 0 antiguo retransmitido encaja en esta ventana y parece nuevo. El receptor no puede distinguirlo de un 0 realmente nuevo enviado después de un 3 perdido.
Para ventanas de emisor y receptor del mismo tamaño, el límite seguro es
Por tanto, una numeración de tres bits permite ventanas SR de hasta cuatro, mientras que GBN permite siete.
| Característica | Retroceso N | Repetición selectiva |
|---|---|---|
| Significado del ACK | Todos los paquetes hasta n inclusive | Solo el paquete n |
| Estado de temporizadores | Un temporizador para el paquete más antiguo | Un temporizador lógico por paquete |
| Acción del receptor ante paquetes fuera de orden | Descartar | Almacenar en búfer y confirmar |
| Recuperación al vencer el tiempo de espera | Todos los paquetes pendientes | El paquete cuyo tiempo de espera venció |
Distingue una copia antigua después del retorno cíclico
Los límites de ventana gestionan las ventanas actuales, pero una red real también puede mantener una copia antigua en tránsito hasta que se reutilicen los números. Un tiempo de vida máximo del paquete limita cuánto pueden sobrevivir esas copias. TCP lo llama tiempo de vida máximo de un segmento (MSL). A tasas altas, TCP puede reutilizar rápidamente su espacio de secuencia de 32 bits, por lo que la protección contra la reutilización cíclica de números de secuencia (PAWS) basada en marcas de tiempo ayuda a rechazar datos antiguos.
Puntos clave
- SR confirma cada paquete pendiente y controla su tiempo individualmente.
- Los paquetes fuera de orden se almacenan en búfer hasta que se llena el hueco de entrega.
- Un ACK posterior marca la recepción, pero la base del emisor permanece en el primer paquete sin confirmar.
- Los duplicados antiguos deben confirmarse de nuevo.
- Las ventanas SR de igual tamaño pueden ocupar como máximo la mitad del espacio de números de secuencia.
- Las copias muy retrasadas también requieren protección cuando se reutilizan los números.
4Segmentos TCP, números de byte y conexiones
TCP mantiene un flujo de bytes independiente en cada sentido de una conexión. Su cabecera vincula esos flujos a puertos, identifica sus bytes y transporta acuses de recibo y señales de control. Lee el formato del segmento y después sigue los números durante la transferencia de datos, el establecimiento y el cierre. Mantener separados los dos sentidos facilita el seguimiento de los acuses de recibo incorporados a los datos, los semicierres y los números de secuencia adicionales que usan SYN y FIN.
4.1 El flujo de bytes TCP y la cabecera del segmento
Una conexión TCP es el estado mantenido en dos sistemas terminales: búferes, contadores de bytes y otras variables creadas durante el establecimiento. Es punto a punto, entre dos extremos, y dúplex completo, lo que permite que ambos envíen a la vez. Los encaminadores ordinarios reenvían sus datagramas IP sin mantener el estado TCP de los extremos.
Los bytes no tienen límites de mensaje
TCP conserva el orden de los bytes, pero no los límites de escritura de la aplicación. Tres escrituras de 100 bytes pueden llegar a la aplicación en una sola lectura de 300 bytes o en lecturas de 50 y 250 bytes. Una aplicación que intercambia mensajes debe proporcionar su delimitación, por ejemplo, mediante un campo de longitud o un delimitador. Una lectura corta no demuestra que haya llegado un mensaje completo.
Las escrituras de la aplicación entran en un búfer de envío. TCP elige las partes que transmitirá y conserva los datos sin acuse de recibo para una posible retransmisión. Los datos entrantes van a un búfer de recepción hasta que la aplicación receptora los lee.
Calcula el tamaño de los datos por separado de las cabeceras
El tamaño máximo de segmento (MSS) limita los datos de aplicación de un segmento. Excluye las cabeceras TCP e IP. Para un trayecto que admite datagramas IP de 1500 bytes con una cabecera IPv4 de 20 bytes y una cabecera TCP de 20 bytes,
Las opciones ocupan más espacio, por lo que el emisor debe tener en cuenta las longitudes reales de sus cabeceras. Cada extremo anuncia el MSS que puede recibir durante el establecimiento de la conexión; los límites del trayecto pueden restringir aún más lo que se puede enviar. Sin una opción MSS, los valores predeterminados son 536 bytes de datos para IPv4 y 1220 para IPv6.
Lee los campos de la cabecera
| Campo | Tamaño | Propósito |
|---|---|---|
| Puertos de origen y destino | 16 bits cada uno | Identificar los extremos de las aplicaciones |
| Número de secuencia | 32 bits | Identificar el primer byte de datos |
| Número de acuse de recibo | 32 bits | Indicar el siguiente byte esperado |
| Desplazamiento de datos | 4 bits | Dar la longitud de la cabecera en palabras de 32 bits |
| Ventana de recepción | 16 bits | Anunciar la capacidad del receptor |
| Suma de comprobación | 16 bits | Detectar errores con una pseudocabecera |
| Puntero urgente | 16 bits | Localizar datos urgentes cuando URG está activado |
La cabecera mínima tiene cinco palabras de 32 bits, o 20 bytes. Un desplazamiento de datos de 8 significa 32 bytes, incluidos 12 bytes más allá de la cabecera fija. El desplazamiento máximo es 15: 60 bytes en total, lo que permite hasta 40 bytes de opciones.
Interpreta los indicadores y las opciones
SYN sincroniza los números de secuencia durante la apertura. FIN cierra un sentido de envío. RST aborta o rechaza una conexión. ACK hace válido el campo de acuse de recibo. PSH solicita la entrega rápida hacia la aplicación; no crea un límite de mensaje. URG da significado al puntero urgente, aunque se recomienda que las aplicaciones nuevas eviten ese mecanismo. ECE y CWR transportan señales de notificación explícita de congestión.
Entre las opciones habituales están MSS, escalado de ventana, marcas de tiempo y acuse de recibo selectivo (SACK). El escalado amplía el rango de la ventana de recepción. Las marcas de tiempo ayudan a medir el RTT y a rechazar segmentos antiguos. SACK describe los bloques recibidos más allá de un hueco.
Sin opciones, TCP más IPv4 añade 40 bytes. Un segmento completo de 1460 bytes de datos ocupa un datagrama IP de 1500 bytes, aproximadamente un 97,3 % de datos de aplicación. Un ACK sin datos sigue ocupando esos 40 bytes de cabecera.
Puntos clave
- TCP es un flujo de bytes dúplex completo y punto a punto.
- Las aplicaciones proporcionan su propia delimitación de mensajes.
- El MSS cuenta solo datos de aplicación; el desplazamiento de datos cuenta palabras de cabecera de 32 bits.
- SYN, FIN y RST cumplen funciones distintas en la gestión de conexiones.
- Las opciones amplían TCP sin cambiar los campos de la cabecera fija.
4.2 Números de secuencia y el siguiente byte esperado
Los números de secuencia TCP cuentan bytes, no segmentos. El número de secuencia de un segmento indica su primer byte de datos. Su número de acuse de recibo describe el sentido contrario: el siguiente byte que este emisor espera recibir.
Divide un flujo en segmentos
El SYN usa un número de secuencia inicial (ISN) de 3000. Por tanto, el primer byte de datos es el 3001. Un archivo de 10 000 bytes con un MSS de 1460 necesita seis segmentos de datos completos y uno más corto:
| Segmento | Primer byte | Bytes de datos |
|---|---|---|
| 1 | 3001 | 1460 |
| 2 | 4461 | 1460 |
| 3 | 5921 | 1460 |
| 4 | 7381 | 1460 |
| 5 | 8841 | 1460 |
| 6 | 10 301 | 1460 |
| 7 | 11 761 | 1240 |
Cada siguiente número de secuencia suma la longitud de datos del segmento anterior. El último byte es el 13 000, por lo que la recepción correcta de todo el archivo produce el ACK acumulativo 13 001.
Confirma un prefijo continuo
ACK confirma todos los bytes hasta inclusive. No confirma el byte . Si el receptor tiene los bytes hasta el 4460, espera el 4461. Un segmento que empieza en 5921 deja un hueco. Un receptor que almacena ese segmento en búfer sigue enviando ACK 4461 porque su prefijo continuo no ha aumentado.
Por eso el acuse de recibo no puede ser simplemente el mayor número de secuencia observado. Los bytes posteriores muestran que algo llegó más allá del hueco; no lo llenan. Cuando llega el rango que falta, un ACK acumulativo puede saltar los datos ya almacenados en búfer.
Sigue ambos sentidos de forma independiente
Supongamos que el siguiente byte de un cliente es el 1000 y el siguiente byte de un servidor es el 5000. El cliente envía 200 bytes de datos con secuencia 1000 y acuse de recibo 5000. La respuesta del servidor lleva 1200 bytes con secuencia 5000 y acuse de recibo 1200. El siguiente ACK sin datos del cliente tiene secuencia 1200 y acuse de recibo 6200.
El servidor no obtuvo su propio número de secuencia de la longitud de la solicitud. Cada sentido tiene su propia numeración. Llevar un ACK con datos salientes es un acuse de recibo incorporado a los datos. Un ACK sin datos no consume espacio de secuencia; SYN y FIN consumen cada uno un número incluso sin datos.
Gestiona los valores iniciales y el retorno cíclico
Los extremos eligen un ISN al abrir una conexión. Un reloj y una función seudoaleatoria con clave de las direcciones y puertos de la conexión ayudan a distinguir una conexión nueva de segmentos antiguos retrasados y dificultan que una persona externa adivine números válidos. Empezar todas las conexiones en cero debilitaría ambas protecciones.
Los campos tienen 32 bits, por lo que la numeración vuelve a empezar módulo , unos 4,3 mil millones de bytes. A 1 Gbit/s, recorrer ese espacio tarda unos 34 s; a 10 Gbit/s, unos 3,4 s. PAWS basado en marcas de tiempo proporciona una comprobación adicional de segmentos antiguos en trayectos rápidos.
Para la aritmética ordinaria lejos del retorno cíclico, el siguiente byte después de un segmento de datos es su número de secuencia más su longitud de datos. Cuando hay un SYN o FIN, incluye el número adicional que consume ese indicador de control. Aplica el cálculo por separado a cada sentido.
Puntos clave
- El número de secuencia de un segmento identifica su primer byte.
- ACK n confirma los bytes hasta n − 1 inclusive e indica el siguiente byte esperado.
- Un hueco mantiene fijo el ACK acumulativo incluso cuando se almacenan en búfer datos posteriores.
- Cada sentido tiene una numeración independiente.
- Los datos, SYN y FIN consumen espacio de secuencia; los ACK sin datos no.
- Los números de secuencia vuelven a empezar módulo 2^32.
4.3 Apertura, semicierre y liberación de una conexión
El establecimiento de TCP permite a ambos extremos anunciar un número de secuencia inicial y saber que el otro lo recibió. El cierre posterior libera cada sentido por separado. Estos intercambios de control usan el mismo espacio de secuencia que los datos.
Sigue el establecimiento de conexión en tres pasos
- El cliente crea el estado de conexión, envía SYN con ISN 7000 y entra en
SYN_SENT. - El servidor responde con SYN-ACK, secuencia 21 000 y acuse de recibo 7001. Permanece en
SYN_RCVDmientras espera la confirmación. - El cliente registra el número del servidor y envía ACK con secuencia 7001 y acuse de recibo 21 001. El cliente entra en
ESTABLISHED; el servidor hace lo mismo cuando llega ese ACK.
Cada SYN consume un número. El tercer segmento ya puede llevar datos de aplicación. El establecimiento ordinario cuesta un tiempo de ida y vuelta antes de que el cliente pueda enviar esos primeros datos. Un intercambio de dos mensajes no indicaría al servidor que el cliente recibió su ISN y podría hacer que aceptara un SYN antiguo retrasado como una solicitud nueva.
En la interfaz de sockets, connect inicia una apertura activa. Un servidor escucha las solicitudes y accept devuelve un nuevo socket de conexión después del establecimiento. El socket de escucha sigue disponible para otros clientes.
Cierra cada sentido
Un extremo envía FIN cuando no tiene más bytes que enviar. El otro extremo confirma ese FIN avanzando su ACK una unidad más allá de él. El otro extremo todavía puede enviar sus propios bytes pendientes: esto es un semicierre. Su FIN posterior cierra el otro sentido y también necesita un ACK. El cierre suele usar cuatro segmentos, aunque un FIN y un ACK pueden combinarse.
Para un cliente que cierra primero, la secuencia habitual de estados es ESTABLISHED → FIN_WAIT_1 después de enviar FIN → FIN_WAIT_2 una vez confirmado ese FIN → TIME_WAIT después de recibir y confirmar el FIN del otro extremo → CLOSED. El otro extremo pasa por CLOSE_WAIT mientras su aplicación termina, después por LAST_ACK tras enviar su propio FIN y, finalmente, por CLOSED al recibir el ACK.
Mantén recuperable el último ACK
En la secuencia habitual de cierre activo, TIME_WAIT dura el doble del tiempo de vida máximo de un segmento. Si desaparece el ACK final, el otro extremo puede reenviar su FIN y recibir otro ACK. La espera también da tiempo a que los segmentos antiguos caduquen antes de que se reutilice la cuádrupla de la conexión. El valor MSL de dos minutos del estándar da cuatro minutos; las implementaciones pueden usar duraciones diferentes y 60 segundos es un valor habitual en Linux.
Un RST es distinto de FIN: aborta la conexión o rechaza una solicitud. Un SYN a un puerto cerrado normalmente recibe RST. SYN-ACK indica que hay un socket de escucha; el silencio puede deberse a filtrado, pérdida o un destino no disponible.
Protege los intercambios de establecimiento incompletos
Una inundación de solicitudes SYN envía muchas solicitudes de apertura sin completarlas. Un servidor que reserva recursos para cada conexión semiabierta puede agotar el estado disponible. Las cookies SYN retrasan la reserva de ese estado por conexión. El servidor codifica información de conexión verificable en el ISN elegido mediante un secreto y un dato que depende del tiempo. Un ACK final válido devuelve la cookie mediante su número de acuse de recibo, lo que permite al servidor comprobarla y crear el estado. El servidor sigue teniendo un socket de escucha y recursos compartidos; evita almacenar una conexión individual incompleta por cada SYN.
Puntos clave
- El intercambio de establecimiento confirma ambos números de secuencia iniciales.
- SYN y FIN consumen cada uno un número de secuencia.
- Un FIN cierra un sentido; el otro extremo puede seguir enviando.
- TIME_WAIT permite recuperar el ACK final y que caduquen los segmentos antiguos.
- RST aborta o rechaza una conexión.
- Las cookies SYN reducen el estado por solicitud antes de que se complete el establecimiento.
5Recuperación de TCP y ritmo del receptor
Un ACK puede retrasarse, un segmento puede desaparecer y la aplicación receptora puede dejar de leer. TCP necesita respuestas distintas para estos eventos. Las estimaciones del RTT orientan cuánto tiempo esperar, los ACK duplicados pueden revelar un hueco antes de que venza el tiempo de espera y la ventana de recepción informa del espacio disponible en el búfer. Sigue los bytes pendientes del emisor junto con los bytes almacenados del receptor para ver por qué una conexión recuperada aún puede tener que esperar antes de enviar más datos.
5.1 Mide el RTT y elige un tiempo de espera de retransmisión
TCP necesita un tiempo de espera de retransmisión lo bastante largo para permitir los tiempos de ida y vuelta normales, pero lo bastante corto para recuperarse pronto de una pérdida. El RTT varía cuando cambian las colas y los trayectos, por lo que el tiempo de espera sigue tanto una estimación suavizada como el tamaño de las desviaciones recientes.
Toma una muestra inequívoca
SampleRTT mide el intervalo desde el envío de datos hasta la recepción de un ACK que los cubre. En una implementación básica, TCP mide un segmento apto a la vez. El algoritmo de Karn excluye los datos retransmitidos del muestreo ordinario del RTT: un ACK podría corresponder a la copia original o a la de reemplazo. Las marcas de tiempo negociadas pueden eliminar esta ambigüedad.
La primera muestra válida inicializa EstimatedRTT en y DevRTT en . Antes de que exista una muestra, el tiempo de espera inicial recomendado es 1 s.
Actualiza la variación antes que la media
Para una nueva muestra, usa el EstimatedRTT anterior para medir la desviación:
Después actualiza la media móvil ponderada exponencialmente:
Los pesos recomendados son y . Las muestras anteriores conservan menos influencia después de cada actualización. Actualizar primero la media cambiaría la desviación utilizada en la primera ecuación.
Resuelve una actualización
Empieza con EstimatedRTT = 100 ms y DevRTT = 10 ms; toma una muestra de 120 ms.
- Desviación absoluta: .
- Nuevo DevRTT: .
- Nuevo EstimatedRTT: .
- Tiempo de espera básico: .
La regla básica es
El estándar completo usa EstimatedRTT + max(G, 4 DevRTT), donde es la granularidad del reloj. Cuando el margen de cuatro desviaciones supera el intervalo del reloj, la regla básica da el mismo resultado.
El estándar recomienda elevar a 1 s un valor calculado inferior a 1 s. Las implementaciones reales pueden usar un mínimo menor; un mínimo habitual de Linux es 200 ms. Por tanto, los 152,5 ms calculados son una estimación sin ajustar, no necesariamente el tiempo que configura un sistema terminal. Un límite superior opcional debe ser de al menos 60 s.
Aumenta la espera tras un vencimiento
Cuando vence el temporizador, TCP reenvía los datos más antiguos sin acuse de recibo y duplica el tiempo de espera. Un valor actual de 0,75 s pasa a 1,5 s y después a 3 s tras otro vencimiento. Los reintentos inmediatos repetidos añadirían tráfico a un trayecto que ya está fallando al entregar respuestas.
Un ACK recién llegado no necesariamente reduce ese tiempo de espera aumentado. TCP necesita una nueva medición válida del RTT para volver a calcular la estimación. Sin marcas de tiempo, la ambigüedad de la retransmisión impide usar un ACK de los datos reenviados como esa nueva muestra. Una vez que se envían y confirman datos nuevos aptos, una muestra nueva puede reducir el tiempo de espera calculado.
Puntos clave
- El algoritmo de Karn evita muestras ambiguas de datos retransmitidos.
- Actualiza DevRTT con el EstimatedRTT anterior y después actualiza EstimatedRTT.
- El tiempo de espera incluye un margen de variación y límites de implementación.
- El vencimiento del tiempo de espera duplica el intervalo de retransmisión actual.
- Una nueva medición válida del RTT permite volver a calcular un tiempo de espera aumentado.
5.2 ACK acumulativos, temporizadores y retransmisión rápida
TCP combina una suma de comprobación, números de secuencia de bytes, ACK acumulativos y retransmisión para entregar un flujo fiable. El emisor debe distinguir un ACK que hace avanzar la entrega de uno que repite el límite actual.
Sigue los eventos del emisor
SendBase es el primer byte sin acuse de recibo; NextSeqNum es el siguiente número de byte no utilizado. Los datos nuevos de la aplicación se envían con secuencia NextSeqNum, que después avanza según la longitud de los datos. Si no hay ningún temporizador de retransmisión en marcha, el envío de datos pendientes lo inicia.
El algoritmo básico recomendado usa un temporizador de retransmisión para el segmento más antiguo sin acuse de recibo. El vencimiento del tiempo de espera retransmite ese segmento pendiente más antiguo, duplica el intervalo y reinicia el temporizador. Un ACK mayor que SendBase hace avanzar la base y reinicia el temporizador si quedan datos pendientes. Si todo está confirmado, el temporizador se detiene. Un ACK duplicado no hace avanzar la base.
Los ACK perdidos pueden dejar de ser un problema
A envía 500 bytes a partir del 501. B los recibe y envía ACK 1001, que se pierde. Si nada más confirma esos bytes, vence el tiempo de espera de A y este los reenvía. B reconoce el duplicado, no entrega datos adicionales y vuelve a enviar ACK 1001.
Supongamos ahora que A también había enviado los siguientes 500 bytes, a partir del 1001. Si ACK 1501 llega antes de que venza el tiempo de espera, confirma ambos segmentos. La pérdida de ACK 1001 no requiere ninguna retransmisión. Un ACK es acumulativo, por lo que el emisor no necesita que llegue un ACK independiente para cada segmento.
Ante un vencimiento prematuro del tiempo de espera, A reenvía solo el segmento más antiguo. Si después los ACK retrasados confirman ambos segmentos originales, A no necesita reenviar el segundo. Un vencimiento demuestra que la respuesta no llegó a tiempo, no que todos los segmentos pendientes hayan desaparecido.
Usa el momento de los ACK para informar de huecos
Para datos en orden sin ningún ACK pendiente, el receptor puede retardar brevemente un ACK, durante menos de 0,5 s, para combinar acuses de recibo. Debería confirmar al menos uno de cada dos segmentos de tamaño completo. Una segunda llegada en orden mientras hay un ACK pendiente desencadena un ACK acumulativo. Una llegada fuera de orden más allá de un hueco desencadena un ACK duplicado inmediato; llenar todo o parte de un hueco también desencadena un ACK inmediato.
Repara un hueco antes de que venza el tiempo de espera
Supongamos que A envía cinco segmentos de 1000 bytes que empiezan en 1001, 2001, 3001, 4001 y 5001. El segundo se pierde. El ACK de B después del primero es 2001. Cada una de las tres llegadas posteriores produce otro ACK 2001.
Después de tres ACK duplicados, A usa la retransmisión rápida para reenviar el segmento que empieza en 2001 sin esperar a que venza el tiempo de espera. Con los datos posteriores almacenados en búfer, llenar ese hueco permite a B confirmar 6001. El primer ACK 2001 es el ACK original; los tres siguientes son duplicados. Uno o dos duplicados pueden deberse a una reordenación ordinaria, lo que explica la espera de más pruebas.
TCP combina ideas de ambos protocolos de ventana. Sus ACK acumulativos y su temporizador único básico se parecen a GBN, pero su almacenamiento en búfer y su retransmisión dirigida se parecen a SR. La opción SACK negociada informa de los bloques de bytes que se tienen más allá del límite acumulativo para que el emisor pueda identificar varios huecos con mayor precisión. TCP no envía ningún NAK cuando falla una suma de comprobación; el hueco resultante se revela mediante ACK posteriores o el vencimiento del tiempo de espera.
Puntos clave
- Un ACK acumulativo puede cubrir un ACK anterior que se perdió.
- El temporizador básico de retransmisión protege los datos más antiguos sin acuse de recibo.
- El vencimiento del tiempo de espera no exige retransmitir todos los segmentos pendientes.
- Tres ACK duplicados desencadenan la retransmisión rápida en el algoritmo básico.
- SACK informa de los bloques recibidos más allá de un hueco sin cambiar el significado del ACK acumulativo.
5.3 Ventanas de recepción y espacio de búfer
El control de flujo impide que un emisor TCP desborde el búfer del receptor. Responde a la rapidez con que lee la aplicación receptora. El control de congestión responde a la carga de la red; ambos controles protegen recursos distintos.
Calcula el espacio disponible
Sean RcvBuffer la capacidad del búfer, LastByteRcvd el último byte almacenado en orden y LastByteRead el último byte leído por la aplicación. En este modelo de datos contiguos, el espacio ocupado es LastByteRcvd − LastByteRead. La ventana de recepción es
El receptor anuncia el espacio disponible en el campo de ventana de los segmentos que devuelve. El emisor mantiene su cantidad de bytes sin acuse de recibo dentro de ese límite:
Para RcvBuffer = 40 000 bytes, LastByteRcvd = 30 000 y LastByteRead = 18 000, la ocupación es de 12 000 y rwnd es de 28 000 bytes. ACK 30 001 con esta ventana permite bytes sin acuse de recibo hasta el 58 000. Si el emisor ya ha enviado hasta el 34 000, tiene 4000 bytes pendientes y puede enviar 24 000 más. La ventana es un límite para todos los bytes pendientes, no una cantidad adicional a ellos.
Reanuda el envío después de una ventana cero
Cuando no queda espacio, el receptor anuncia rwnd = 0 y el emisor detiene la transmisión normal de datos nuevos. Cuando la aplicación lee, el receptor anuncia el espacio recién disponible en una actualización de ventana.
Esa actualización puede ser un ACK sin datos, que no se entrega de forma fiable por sí solo. Si se pierde, el emisor podría seguir esperando aunque haya espacio. Las sondas de ventana cero, que suelen llevar un byte, provocan que el receptor devuelva su ventana actual. Las sondas se espacian a intervalos crecientes; no son un envío masivo normal a través de una ventana cerrada.
Relaciona la ventana con el rendimiento
Con una ventana y un RTT fijos, el rendimiento ideal limitado por la ventana satisface
Usa bytes y segundos para obtener bytes/s. Una ventana de 65 535 bytes con un RTT de 0,1 s permite unos 655 350 bytes/s, o 5,2 Mbit/s. Una tasa de enlace mayor no puede eliminar este límite de la ventana.
Para llenar un trayecto, la ventana debe cubrir su producto ancho de banda-retardo. A 1 Gbit/s y 0,1 s, los datos necesarios en vuelo son 100 millones de bits, o 12,5 MB. Este es un tamaño de ventana necesario para esa tasa ideal, no una garantía de alcanzarla.
Escala el campo y evita actualizaciones diminutas
El campo de 16 bits por sí solo no puede representar una ventana tan grande. Una opción de escalado de ventana negociada en los SYN multiplica los valores posteriores de ventana por , con . La escala más grande da algo menos de 1 GiB. Un desplazamiento de 7 permite como máximo 8 388 480 bytes; un desplazamiento de 8 permite 16 776 960, suficiente para el ejemplo de 12,5 MB. La escala permanece fija para su sentido, mientras que el espacio anunciado cambia. Los propios campos de ventana de los SYN no se escalan.
Anunciar cada pocos bytes recién liberados puede causar el síndrome de la ventana tonta: muchos segmentos diminutos con una gran sobrecarga de cabecera. Para evitarlo, el receptor espera a que haya una cantidad útil de espacio libre, normalmente un MSS o la mitad del búfer, la cantidad que sea menor. El algoritmo de Nagle aborda las escrituras pequeñas del emisor reteniéndolas mientras los datos anteriores siguen sin acuse de recibo, o hasta que haya suficientes datos para formar un segmento completo.
Puntos clave
- El control de flujo protege al receptor; el control de congestión protege la red.
- Resta los datos almacenados en búfer y aún no leídos de la capacidad para obtener rwnd.
- Resta los datos que ya están pendientes de rwnd antes de enviar más.
- Las sondas de ventana cero permiten recuperarse de la pérdida de una actualización que reabre la ventana.
- La ventana dividida por el RTT limita el rendimiento ideal sujeto a la ventana.
- El escalado de ventana fija el multiplicador durante el establecimiento mientras el espacio libre sigue cambiando.
- Las reglas de actualización del receptor y el algoritmo de Nagle abordan distintas causas de segmentos diminutos.
Ejemplos de Capa de transporte
1Sigue los datos de un socket a otro
9 pasos
- 1IntroducciónUn sistema terminal, varias conversaciones
Una computadora portátil puede navegar por una página mientras realiza una llamada. Ambas aplicaciones comparten la entrega IP, pero cada una necesita sus propios datos entrantes.
Sigue un mensaje desde un socket de aplicación hacia las capas inferiores, a través de la red y hacia las capas superiores hasta el socket de destino. Después compara cómo un servidor UDP gestiona varios orígenes con cómo un servidor TCP distingue las conexiones establecidas.
- 2ExplicaciónConstruye y desempaqueta un segmento
El protocolo de transporte emisor toma los datos de aplicación y añade su cabecera, formando un segmento. IP coloca ese segmento dentro de un datagrama IP.
En el destino, IP identifica el protocolo superior y le pasa el segmento. TCP o UDP interpreta la cabecera de transporte y selecciona un socket. La aplicación lee mediante ese socket; los encaminadores ordinarios solo reenvían los datagramas IP a lo largo del trayecto.
- 3AnalogíaUna dirección y un destinatario
La dirección de un edificio lleva una carta al edificio correcto. El nombre de la persona destinataria permite que alguien dentro la dirija a la persona correcta. Del mismo modo, las direcciones IP permiten la entrega al sistema terminal, mientras que los puertos de transporte ayudan a seleccionar un socket de aplicación.
La analogía separa dos tareas. Los protocolos de transporte reales también proporcionan servicios definidos: TCP puede recuperar los bytes que faltan, mientras que UDP deja la recuperación a los programas situados por encima.
- 4Desafío¿Puede TCP prometer un momento de llegada?
Una aplicación necesita que cada byte llegue intacto y también necesita garantizar su llegada en 25 ms. ¿Seleccionar TCP satisface ambos requisitos?
---reveal---
TCP proporciona una entrega de bytes fiable y en orden, pero no garantiza ese plazo de 25 ms. La recuperación puede añadir retardo y el trayecto IP de mejor esfuerzo no proporciona un tiempo máximo de espera fijo. Una garantía de entrega y una garantía de plazo son requisitos distintos.
- 5ExplicaciónSelecciona un socket receptor UDP
Un socket de servidor UDP básico sin conexión se selecciona mediante su dirección IP de destino y su puerto de destino. Los mensajes de distintos clientes pueden llegar todos a ese socket.
Supongamos que 203.0.113.20:7000 recibe mensajes de 192.0.2.5:55010 y 198.51.100.9:55010. El puerto de origen coincide, pero los orígenes son distintos. El servidor lee el extremo de origen con cada mensaje para dirigir la respuesta adecuada.
- 6EjemploReutiliza un puerto de servidor TCP
Un servidor TCP en 203.0.113.20:443 tiene dos clientes: 192.0.2.5:55010 y 198.51.100.9:55010.
Cada conexión establecida tiene una cuádrupla distinta. Ambas comparten la dirección y el puerto del servidor; sus direcciones de origen las distinguen. El socket de escucha acepta más clientes mientras los sockets de conexión transportan los flujos existentes. No se necesita un puerto de escucha adicional para cada cliente.
- 7DesafíoCuenta los sockets de conexión
Un servidor en 203.0.113.30:443 acepta conexiones de 192.0.2.7:56000, 192.0.2.7:56001 y 198.51.100.7:56000. ¿Cuántos sockets de conexión distinguen estos flujos?
---reveal---
Tres. Los dos primeros difieren en el puerto de origen; el primero y el tercero difieren en la dirección de origen. Su puerto de destino compartido no los fusiona. El socket de escucha es independiente y no es uno de estos tres sockets de conexión.
- 8DesafíoElige el transporte y el extremo receptor
Un servicio necesita mensajes independientes sin establecimiento de conexión. Dos clientes envían datos a su socket sin conexión en 203.0.113.40:8000. ¿Qué protocolo de transporte es adecuado y qué selecciona ese socket de servidor?
---reveal---
UDP es adecuado para el servicio de mensajes sin intercambio de establecimiento de transporte. La dirección de destino 203.0.113.40 y el puerto 8000 seleccionan el socket de servidor básico. Los extremos de origen identifican dónde van las respuestas; no requieren conexiones independientes al estilo de TCP.
- 9RepasoLee un seguimiento de entrega en orden
Para un seguimiento entrante, identifica primero el protocolo de transporte, después la información de sus extremos y luego el servicio que recibe la aplicación.
Un mensaje UDP y un flujo de bytes TCP pueden compartir el mismo número de puerto de servidor porque pertenecen a protocolos distintos. Dentro de TCP, ambas direcciones y ambos puertos distinguen una conexión. La fiabilidad, los tiempos y el cifrado deben comprobarse como necesidades independientes de la aplicación.
2Comprueba un mensaje UDP y elige su servicio
11 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónUna cabecera pequeña con una función concreta
- 2ExplicaciónCuenta los bytes de un segmento UDP
- 3ExplicaciónPrepara la entrada de la suma de comprobación
- 4EjemploIncorpora el acarreo antes de continuar
- 5EjemploComplementa y después verifica
- 6DesafíoGestiona otro acarreo
- 7ExplicaciónMantén la recuperación dentro del plazo
- 8Idea claveUna aplicación UDP puede añadir más
- 9Desafío¿Seguiría siendo útil una copia de reemplazo?
- 10DesafíoCombina el tamaño del mensaje y la elección del servicio
- 11RepasoComprueba qué proporciona cada capa
3Construye una transferencia fiable con ventana deslizante
20 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónHaz visibles los casos de fallo
- 2ExplicaciónRepresenta qué espera cada extremo
- 3AnalogíaDa la misma identidad a una copia de reemplazo
- 4DesafíoResponde a un duplicado sin repetir la entrega
- 5ExplicaciónDa una respuesta al silencio
- 6EjemploMide el envío y la espera por separado
- 7EjemploLlena ese intervalo de espera
- 8DesafíoDetermina una ventana de transmisión en cadena
- 9ExplicaciónLee la ventana de retroceso N
- 10EjemploPierde un paquete en retroceso N
- 11DesafíoRetransmite el rango pendiente
- 12Idea claveMantén un número sin usar fuera de la ventana GBN
- 13ExplicaciónLa repetición selectiva guarda las llegadas posteriores
- 14EjemploRecupérate de la misma pérdida con una copia de reemplazo
- 15DesafíoDesplaza la base SR tras un ACK tardío
- 16EjemploObserva el solapamiento de números antiguos y nuevos
- 17ConsejoSepara las ventanas antes de reutilizar números
- 18DesafíoElige entre diseños de ventana
- 19ConexiónGestiona las copias que sobreviven a un ciclo completo
- 20RepasoSigue el estado antes de elegir qué reenviar
4Sigue TCP desde SYN hasta FIN
16 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónMantén separados dos flujos de bytes
- 2ExplicaciónLee un flujo, no una serie de mensajes
- 3EjemploInterpreta el tamaño de la cabecera antes que el de la carga útil
- 4DesafíoTen en cuenta las cabeceras reales
- 5ExplicaciónIdentifica el primer byte de datos
- 6EjemploAvanza por segmentos de distintos tamaños
- 7EjemploIncorpora un acuse de recibo a los datos
- 8DesafíoMantén un ACK en un hueco
- 9EjemploConfirma ambos números iniciales
- 10DesafíoComprueba los campos del ACK final del establecimiento
- 11ExplicaciónCierra un sentido a la vez
- 12Idea claveEspera donde pueda repetirse el ACK final
- 13ConexiónRechaza o protege una solicitud de apertura
- 14DesafíoConfirma los datos y el cierre juntos
- 15ConsejoReconoce la reutilización de números
- 16RepasoCuenta cada número consumido
5Recupérate de una pérdida TCP sin desbordar al receptor
18 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónDecide qué impide avanzar
- 2ExplicaciónElige una medición de RTT utilizable
- 3EjemploActualiza primero la desviación
- 4EjemploActualiza la media y aplica los límites
- 5DesafíoContinúa con una segunda muestra
- 6ConsejoAumenta la espera sin inventar una muestra
- 7EjemploDeja que un ACK posterior cubra uno perdido
- 8ExplicaciónInforma de un hueco con ACK repetidos
- 9DesafíoLlena un hueco y avanza sobre los bytes almacenados
- 10Idea claveUsa el temporizador básico para el hueco más antiguo
- 11ExplicaciónCuenta primero los bytes no leídos
- 12EjemploResta los datos que ya están pendientes
- 13DesafíoCalcula cuánto más se puede enviar
- 14ConexiónRecupérate de una actualización de reapertura perdida
- 15EjemploCalcula el tamaño de una ventana para el trayecto
- 16ConsejoDistingue el escalado de las actualizaciones diminutas
- 17DesafíoRecupera los datos, pero espera espacio
- 18RepasoRelaciona cada respuesta con su prueba
Ejercicios de Capa de transporte
Set 1: Servicios de transporte y entrega de mensajes10 Preguntas de Práctica
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Set 2: Ventanas deslizantes y recuperación de pérdidas10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 3: Bytes TCP y estado de conexión10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 4: Tiempos de espera, huecos y espacio de recepción TCP10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 5: Diagnostica seguimientos completos de transporte10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
¿Te atascas con una pregunta tuya? Ayuda con Tareas
Términos Clave
A
Acarreo circular
ACK duplicado
ACK retardado
Acuse de recibo (ACK)
Acuse de recibo acumulativo
Acuse de recibo incorporado a los datos
Acuse de recibo individual
Acuse de recibo negativo (NAK)
Acuse de recibo selectivo (SACK)
Algoritmo de Karn
Algoritmo de Nagle
Almacenamiento de datos fuera de orden
B
Base de la ventana de envío
Bloqueo de cabecera de cola
C
Capa de transporte
Comunicación lógica
Conexión dúplex completo
Control de flujo
Cookie SYN
Cuádrupla
D
Demultiplexación
Desplazamiento de datos
Desviación del RTT (DevRTT)
E
Encapsulación
Entrega de mejor esfuerzo
Escalado de ventana
Espacio de números de secuencia
Espera exponencial
Establecimiento de conexión en tres pasos
F
Flujo de bytes
I
Inundación de solicitudes SYN
L
Límite de mensaje
M
Máquina de estados finitos
Muestra de RTT (SampleRTT)
Multiplexación
N
Número de acuse de recibo
Número de puerto
Número de secuencia
Número de secuencia inicial (ISN)
O
Opción TCP
P
Parada y espera
Plazo límite de reproducción
Principio de extremo a extremo
Producto ancho de banda-retardo
Protección contra la reutilización cíclica de números de secuencia (PAWS)
Protocolo de control de transmisión (TCP)
Protocolo de datagramas de usuario (UDP)
Protocolo del bit alternante
Pseudocabecera
Puerto efímero
Q
QUIC
R
Reinicio de conexión (RST)
Repetición selectiva
Retorno cíclico de los números de secuencia
Retransmisión rápida
Retroceso N
RTT estimado (EstimatedRTT)
S
Segmento
Semicierre
Síndrome de la ventana tonta
Socket
Solicitud de repetición automática (ARQ)
Sonda de ventana cero
Suma de comprobación de internet
T
Tamaño máximo de segmento (MSS)
Tiempo de espera de retransmisión
Tiempo de vida máximo de un segmento (MSL)
TIME_WAIT
Transferencia fiable de datos
Transmisión en cadena
U
Utilización del emisor
V
Vencimiento prematuro del tiempo de espera
Ventana de recepción
Ventana de recepción
Ventana deslizante
Sobre esta unidad
Crea tus propios Materiales de Estudio
Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.