TCP protocolo de enlace de 3 vías de la cuarta ola

proceso de enlace de tres vías

1. El cliente envía una solicitud de "abrir la puerta Ahora, quiero entrar" al servidor

2. El servidor envía una "Adelante, voy a conseguir que abra la puerta" al cliente

3. El cliente ha enviado un muy educado "Gracias, voy a entrar" al servidor

Cuatro Proceso agitando

1. El cliente envía "la hora es tarde, me voy" al servidor, como servidor y mandarle

2. Servidor de oír, envío "Yo sé, yo os envío fuera de él" al cliente, como de Clientes

3. Después de que el servidor se cierra la puerta, envío "Cerré" al cliente, y luego esperar a que el cliente vaya a (~ Nima ah hipócrita)

4. El cliente envía una "Ya sé, ya me haya ido", después de que su propia izquierda

formato de paquete TCP


La figura anterior destaca la necesidad de varios campos:
  (1) Referencia: número Seq , lo que representa 32 bits, que se utiliza para identificar la fuente TCP para el destino de la transmisión corriente de bytes , esta vez para marcar el emisor envía datos.
  (2) el número de acuse de recibo: número Ack, que representan el 32, sólo el bit de bandera ACK es 1, el campo de número de acuse de recibo es válido, el Ack + 1 = Seq .
  (3) Banderas: un total de seis, es decir, URG, ACK, PSH, RST, SYN, FIN , y significados específicos son los siguientes:
  (A) la URG: Urgente Pointer (puntero urgente) eficaz.

  (B) ACK: número de acuse de recibo es válido.
  (C) PSH: destinatario debe ser el mensaje a la capa de aplicación tan pronto como sea posible.
  (D) RST: restablecer la conexión.
  (E) SYN: iniciar una nueva conexión.
  (F) FIN: la liberación de una conexión.

diagrama de flujo específico sigue:

De tres vías proceso de enlace (cliente utilizamos la A, del lado del servidor está representado por B)

Premisa: Una iniciativa de cierre abierto, B pasiva

TCP de tres vías 
(1) El primer apretón de manos: bandera Client mordió SYN se fija a 1 , un valor generado aleatoriamente SEC = J , y el paquete se envía al servidor, el cliente entra SYN_SENT estado, a la espera para el servidor de reconocimiento. 
(2) El segundo protocolo de enlace: Servidor recibe los datos del paquete de la bandera de bits solicitudes SYN = 1 know cliente para establecer una conexión, las banderas de servidor . SYN y ACK se fijan a 1, ACK = + J. 1 , un valor generado aleatoriamente ss = K , y transmite el paquete de datos para reconocer una solicitud de conexión para el cliente, servidor entra SYN_RCVD estado. 
(3) tercera apretón de manos: El cliente recibe acuse de recibo, la comprobación ack si J + 1, ACK es 1 , entonces la bandera correctamente si ACK se establece en 1, ack = K + 1 , y el paquete de datos al servidor, servidor de comprobar un caso de CK es K + 1, si el ACK es 1 , si es correcta, se establece la conexión, el cliente y el servidor entra establecidos estado, completar el enlace de tres vías, a continuación, puede empezar a transferir datos entre el cliente y el servidor.

SYN ataque: 
el proceso de enlace de tres vías, servidor después de enviar el SYN-ACK, antes de recibir la conexión TCP ACK se llama el medio de conexión de cliente, el estado del servidor SYN_RCVD (entreabierta de conexión) en este momento, cuando se recibe el ACK, Servidor en el estado ESTABLECIDO. Cliente SYN ataque es un gran número de dirección IP forjado no existe en un corto período de tiempo, y continuar enviando paquetes de servidor SYN , la respuesta del servidor para el paquete de confirmación, y espera la confirmación del cliente, ya que no existe la dirección de origen, por lo tanto, el servidor requiere un peso constante pelo hasta que el tiempo de espera, el paquete SYN forjado tomará el tiempo de producción no es cola de conexiones, lo que lleva a las solicitudes SYN normales porque la cola está llena se descartan, lo que causa la congestión de red o fallo del sistema incluso. SYN ataque un DDoS típicos atacan detección de ataques SYN es muy simple, es decir, cuando el servidor Hay un gran número de estado semi-conectado y la dirección IP de origen es al azar , se puede concluir que el ataque era un SYN, utilice el siguiente comando permite que el actual: 
#netstat -nap | grep SYN_RECV 

Cuatro de romper el proceso (usamos el cliente A, el lado del servidor está representado por B)

Premisa: Un proactiva cerrada, pasiva cerca B

TCP de cuatro ondas 
debido a la conexión TCP es full-duplex, por lo tanto, cada dirección se tiene que parar por separado, este principio es que cuando una tarea se termina el envío de datos, enviando un FIN para terminar la conexión en esta dirección, recibió una aleta simplemente significa que no hay datos sobre la dirección del flujo, y que ya no es recibir datos, pero aún así ser capaz de enviar datos a través de la conexión TCP hasta esta dirección también se envía un FIN. Para cerrar una de la primera cerca activo, mientras que los otros realiza una pasiva cerrados, la descripción es el caso de la figura. 
(1) Primera Onda: El cliente envía un FIN = 1, la transferencia de datos para el cierre del cliente al servidor, un valor ss generado aleatoriamente = u, cliente entra FIN_WAIT_1 estado. 
(2) En segundo lugar onda: Server recibe el FIN, ACK = 1 para enviar un cliente, el número de acuse de recibo para el número de recibo ACK = u + 1 (el mismo SYN, FIN un ocupan un número de secuencia), para generar un valor SEC azar = v, CLOSE_WAIT Server en el estado. 
(3) Tercera Ola: Server envía un FIN = 1, para desactivar la transferencia de datos de cliente Server, ACK = 1, SEC = w , ack = u + 1; servidor entra en estado de LAST_ACK. 
(4) Cuarto de onda: el cliente recibe el FIN, cliente entra en estado TIME_WAIT, ACK = 1 entonces transmite un servidor, la recepción del número de acuse de recibo para el número + 1, ack = w + 1 , SEC = u + 1; Servidor pasa al estado CLOSED, completó cuatro veces y lo agitó. 
Lo anterior es una parte que tome la iniciativa de cerrar, el otro caso pasiva está cerrada, aparecerá en la situación actual, al mismo tiempo puso en marcha la iniciativa de cerrar

(2) ¿Por qué es un enlace de tres vías para establecer una conexión, y cerca de la conexión es cuatro veces más que lo agita? 
Esto se debe a que el servidor en el estado de escucha, recibida después de establecer un paquete SYN solicitud de conexión, el SYN ACK y se coloca en un paquete enviado al cliente . La conexión se cierra, tras la recepción del mensaje FIN del otro eso sólo significa que la otra parte ya no envía datos, sino también recibir datos, puede no poseer todos los datos se envían entre sí, por lo que la propia puede cerrar de inmediato, también se puede enviar a algunos datos (ACK) a la otra parte y luego enviar un paquete FIN a la otra parte a un acuerdo para cerrar la conexión ahora, por lo tanto, la propia y FIN ACK transmitido generalmente por separado.

Publicados 407 artículos originales · ganado elogios 150 · vistas 380 000 +

Supongo que te gusta

Origin blog.csdn.net/ds1130071727/article/details/102802458
Recomendado
Clasificación