Red: protocolo TCP protocolo de enlace de tres vías y onda de cuatro vías

1. Comprender los paquetes TCP

Formato de paquete TCP_Qué contenido contiene un paquete TCP:

El número de puerto de origen y el número de puerto de destino en el encabezado TCP son los mismos que la IP de origen y la IP de destino en el datagrama IP para determinar de manera única una conexión TCP.
TCP debe establecer una conexión entre sí antes de enviar datos.La conexión aquí significa: ambas partes necesitan guardar la información de cada uno (por ejemplo: IP, Puerto...)

Explicación de los principales campos del mensaje
Secuencia de números  número de serie Representa el flujo de bytes de datos enviados, asegurando que la transmisión TCP esté en orden y numerando cada byte.
El número de secuencia inicial es aleatorio.
Confirmar número Confirmar número de serie El remitente espera recibir el siguiente número de serie, y el número de serie del byte de datos después de la recepción exitosa se incrementa en 1.
Sólo válido cuando ACK=1.
Reconocimiento ACK Indicador de número de secuencia de confirmación
ACK=1 indica que el número de confirmación es válido
ACK=0 indica que el mensaje no contiene información sobre el número de secuencia de confirmación
sincrónico SYN Bandera de número de secuencia de solicitud de conexión, utilizada para establecer una conexión
SYN=1 indica una solicitud de conexión
finalizar ALETA Bandera de finalización, utilizada para liberar la conexión, si es 1, significa cerrar el flujo de datos local
empujar PSH enviar
reiniciar PRIMERA reiniciar
urgente URG urgente
ESCUCHAR Espere las solicitudes de conexión de cualquier puerto y TCP remoto.
FIN_WAIT_1 Espere una solicitud de terminación de conexión del TCP remoto o un reconocimiento de una solicitud de terminación de conexión enviada anteriormente.
FIN_ESPERA_2

Espere la solicitud de finalización de la conexión del TCP remoto.

CLOSE_WAIT Esperando una solicitud de terminación de conexión de un usuario local
CLAUSURA Espere la confirmación de la solicitud de finalización de la conexión del TCP remoto
LAST_ACK Esperando el reconocimiento de la solicitud de terminación de conexión enviada previamente al TCP remoto (incluyendo el reconocimiento de su solicitud de terminación de conexión de bytes)
TIEMPO DE ESPERA Espere a que transcurra el tiempo suficiente para asegurarse de que el TCP remoto reciba el reconocimiento de su solicitud de finalización de la conexión.
CERRADO Ya no está conectado.

Análisis del proceso de protocolo de enlace de dos vías TCP

tres apretón de manos cliente enviar mensaje Servidor
primer apretón de manos

El cliente envía la información de la solicitud al servidor


1. El cliente no sabe si su capacidad para enviar y recibir es normal
2. El cliente no sabe si la capacidad del servidor para enviar y recibir es normal.

SYN=1
sec=x

El servidor recibe la información enviada por el cliente.


1. El servidor sabe que el cliente está enviando normalmente, pero no sabe si la capacidad de recepción del cliente es normal
2. El servidor sabe que está recibiendo normalmente, pero no sabe si su capacidad de envío es normal.

segundo apretón de manos

El cliente recibe información del servidor.

1. El cliente sabe que está enviando y recibiendo con normalidad
2. El cliente sabe que el servidor está recibiendo y enviando con normalidad.

el cliente lo sabe todo

ACK=1
reconocimiento=x+1
SYN=1
secuencia=y
El servidor envía información al cliente
tercer apretón de manos cliente a servidor seq=x+1
ACK=1
ACK=y+1

El servidor recibe la información enviada por el cliente.

1. El servidor sabe que el cliente envía y recibe normalmente
2. El servidor sabe que envía y recibe normalmente
El servidor sabe todo

Del proceso de análisis anterior, se puede ver que dos apretones de manos no pueden llegar a la conclusión de que ambas partes saben que sus propias capacidades de recepción y envío y las de la otra parte son normales.
A partir de esto, sabemos que el propósito del protocolo de enlace de tres vías es permitir que tanto el cliente como el servidor sepan que ellos y la otra parte tienen capacidades normales de recepción y envío.
Por lo tanto, el protocolo de enlace de tres vías no puede ser menos y se desperdician más recursos de red.

Tres, análisis TCP de cuatro ondas

saludó cuatro veces cliente enviar mensaje Servidor
primera ola El cliente envía la solicitud
FIN-WAIT-1 estado
1
FIN=1
seg=u
 

 
Segunda ola ACK=1
acuse=u+1
secuencia=v
服务端收到请求
服务端发送请求
CLOSE-WAIT状态
2
第三次挥手 客户端收到服务器确认结果后进入FIN-WAIT-2状态
客户端发送
3
FIN=1
ACK=1
ack=u+1
seq=w
服务端发送信息
LAST-ACK状态
4
第四次挥手 客户端收到回复
客户端发送
TIME-WAIT状态
客户端经过2个最长报文段寿命后,客户端CLOSE
5
ACK=1
ack=w+1
seq=u+1
服务端确认
服务端立刻进入CLOSE状态
6
四次挥手需要考虑服务端是否有正在发送的数据
所以客户端发起结束请求,服务端不能立即响应结束。
简单理解:
客户端发起结束请求
服务端收到请求,同时告诉客户端自己收到请求
服务端确认没有正在发送的数据,告诉客户端
客户端收到服务端的确认后结束,服务端结束

La primera ola: el cliente envía la liberación FIN=1, su propio número de serie seq=u, y entra en el estado FIN-WAIT-1 La segunda ola: después de recibir el mensaje del cliente, el servidor envía un indicador de confirmación ACK=1
y el número de confirmación del cliente ack=u+1, propio número de serie seq=v, ingresa al estado CLOSE-WAIT
Tercera ola: Después de que el cliente recibe el resultado de confirmación del servidor, ingresa al estado FIN-WAIT-2. En este momento, el servidor envía la señal de liberación FIN=1, la bandera de confirmación ACK=1, el número de secuencia de confirmación ack=u+1, su propio número de secuencia seq=w, el servidor ingresa en LAST-ACK (estado de confirmación final ) ondeado por cuarta vez: el cliente recibe la
respuesta Después de eso, envía la confirmación ACK=1, ack=w+1, own seq=u+1, y el cliente ingresa TIME-WAIT (tiempo de espera). Después de que el cliente haya pasado las 2 vidas más largas del segmento de mensaje, el cliente se CERRA; después de que el servidor recibe la confirmación, ingresa inmediatamente al estado CERRADO.

4. Precisamente debido al protocolo de enlace de tres vías y el protocolo de enlace de cuatro vías del protocolo TCP, TCP es una conexión segura, que es diferente del protocolo UDP.

Cinco, la relación entre HTTP y TCP

TCP es un protocolo de capa de transporte, mientras que HTTP es un protocolo de capa de aplicación.
HTTP se basa en la conexión TCP, por lo que algunas personas dicen que el protocolo de enlace de tres vías es HTTP y algunos dicen que es TCP, que es exactamente TCP.
TCP simplemente establece una conexión, no involucra ningún dato real que necesitemos solicitar y simplemente se transmite.
HTTP se utiliza para enviar y recibir datos.

6. Bienvenido a intercambiar y corregir, sígueme y aprendamos juntos.

Link de referencia

Protocolo Http-Apretón de manos de tres vías TCP, apretón de manos de cuatro vías_http y apretón de manos de tres vías tcp_El blog al pie del blog de la ciudad imperial-CSDN

Breve descripción del protocolo de enlace de tres vías TCP y onda de cuatro vías

Supongo que te gusta

Origin blog.csdn.net/snowball_li/article/details/127123046
Recomendado
Clasificación