- ¿Por qué necesitas el protocolo TCP? ¿En qué nivel trabajas?
- Es necesario garantizar la entrega confiable, ordenada y completa del paquete, por lo que existe el protocolo TCP
- La capa IP no es confiable, por lo que en la capa de transporte
- ¿Qué es una conexión TCP?
- Orientado a la conexión (uno a uno), confiable, flujo de bytes (sin bordes, ordenado)
- Cómo determinar de forma exclusiva una conexión TCP
- Dirección de origen + puerto, dirección de destino + puerto determinan una conexión única
- Diferencias y escenarios de aplicación de TCP UDP
- Desde el punto de vista de la conexión, TCP primero establece una conexión antes de transmitir, y UDP transmite directamente
- Desde la perspectiva del objeto, transmisión TCP uno a uno, UDP uno a muchos (uno a uno, muchos a muchos)
- Desde un punto de vista confiable, TCP se entrega de manera confiable, y la entrega UDP no está garantizada
- Desde la perspectiva de la congestión y el control de flujo, TCP tiene control de congestión y control de flujo, UDP no
- Desde la perspectiva de la sobrecarga del encabezado, TCP es largo y variable, y UDP se fija en ocho bytes
- Escenarios de aplicación: TCP (FTP, HTTP, etc.) UDP (video, audio, comunicación de difusión)
- Apretón de manos
- El cliente envía (inicia una conexión al servidor)
- Recibido por el servidor y enviado de vuelta una "respuesta de confirmación"
- El cliente lo envía al estado establecido y el lado del servidor se convierte en el estado establecido después de recibirlo (esta vez solo se pueden enviar datos, no las primeras dos veces porque está establecido)
- ¿Por qué tres apretón de manos?
- Evite las conexiones históricas (suponiendo que un mensaje antiguo llegue al servidor antes del nuevo mensaje, el servidor regresa y se puede encontrar que el mensaje antiguo recibido por el cliente es un mensaje caducado, y luego envíe RST para terminar la conexión, y si es así Dos veces, se establece esta conexión, es ridículo)
- Número de serie inicial sincrónico
- Para evitar el desperdicio de recursos (los paquetes SYN nuevos y viejos llegan uno tras otro, si el segundo apretón de manos hará que se establezcan múltiples conexiones)
- ¿Cuál es la cuarta ola?
- El cliente tiene la intención de cerrar, enviar el mensaje FIN_WAIT_1 cerrado
- El servidor envía un mensaje de respuesta ACK y entra en el estado CLOSED_WAIT
- El cliente ingresa al estado FIN_WAIT2 después de recibir
- Después de que el servidor procesa los datos, envía FIN al cliente
- Después de que el cliente recibe, devuelva ACK
- Después de que el servidor lo recibió, se cerró
- Finalmente, después de que el cliente espera 2MSL, también se cierra
- ¿Por qué necesitas saludar cuatro veces?
- Al cerrar la conexión, el cliente no envía, sino que recibe datos
- Después de que el servidor devuelve el ACK, puede haber datos para enviar y procesar. Después de enviar los datos, envíe FIN
- La razón por la cual TIME_WAIT es 2MSL
- 1MSL es el tiempo de supervivencia máximo de un mensaje
- Pero puede haber un mensaje del remitente en Wanluo, y el receptor debe responder y devolver, 2MSL
- Motivo de la existencia de TIME_WAIT
- Evite el paquete de datos de la conexión anterior (los datos de la conexión anterior, porque el tiempo TIME_WAIT es demasiado corto, comienza la segunda conexión, fue recibido, ridículo)
- Asegure el cierre correcto de la conexión (espere el tiempo suficiente para asegurarse de que el último ACK pueda ser recibido por la parte de cierre pasivo para ayudarlo a cerrar normalmente)
- Para continuar