[Red de ordenadores] detallada protocolo TCP

protocolo detallado TCP

Introducción:
La primera parte se centra en el protocolo UDP del blog, revisemos UDP programación procedimientos y precauciones
UDP programación:
servidor:
1. Crear un zócalo
2. El zócalo está obligado a información de la dirección
3. Recibir datos de la solicitud
4. Transporte después de la transmisión de datos
5. Cerrar el socket
cliente
1. Crear un zócalo
2. el zócalo para los enlaces de direcciones
3 envía la solicitud a los datos
4. Cuando el proceso del servidor, en respuesta a la solicitud
5. Cerrar la toma
AVISO que importa]
1. UDP de programación, primero debe iniciar el servidor, debido a las características del Protocolo de datagramas de usuario es una conexión fiable, si se inicia por primera vez el cliente puede causar la pérdida de datos durante la transmisión.
2. El cliente no se recomienda tomar la iniciativa a la dirección de la unión, pero cuando se envían datos para seleccionar la información de la dirección apropiada por el sistema operativo que se unen (en la mayor medida posible para evitar conflictos de puerto probabilidad de)
el servidor debe tomar la iniciativa de aprieto, debido a la necesidad de asegurar que la dirección Nunca cambie el cliente se puede encontrar

programación TCP

Características de transmisión: orientado a la conexión , la transmisión fiable, corriente orientada a byte
este blog se describe principalmente en detalle el contenido orientado a la conexión
para utilizar la conexión orientada clásica e importante y con frecuencia se le preguntó enlace de tres vías, de cuatro ondas proceso, entran en detalle más adelante.

Características de transmisión de protocolo TCP (detallado)

protocolo de capa de transporte TCP es una superficie de conexión para proporcionar una alta fiabilidad byte servicio de streaming, utilizado principalmente con un gran número de paquetes a intercambiar caja de transmisión.
Con el fin de mantener la fiabilidad de la transmisión, TCP aumentó el número de los gastos generales, tales como: la confirmación, control de flujo, temporizador y gestión de la conexión.

Poner fin a las comunicaciones : TCP proporciona una aplicación de interfaz orientado a la conexión. Poner fin a la conexión TCP cuando, en una aplicación de cliente, el servidor en el otro extremo.
Establecer una conexión fiable : requisitos de la aplicación cliente TCP antes de intercambiar datos con el servidor, conectar el servidor para asegurarse de establecimiento de la conexión fiable, se establece la conexión para probar la conectividad de red. Si se produce un fallo, lo que dificulta el paquete llega al sistema remoto, o el servidor no acepta conexiones, el intento de conexión falla, se le notificará al cliente.
entrega fiable: Una vez establecida la conexión, se enviará la orden de entrega cuando el TCP garantiza los datos, no se pierde, no hay repetición, si no debido a la imposibilidad de establecer una entrega fiable, se notifica al remitente.
Que tiene una transmisión de control de flujo: TCP control de la eficiencia velocidad de transmisión de datos de la velocidad de recepción de datos de transmisión para impedir rápida con el receptor, y por lo tanto se puede utilizar para los datos TCP desde un ordenador a una transmisión lenta equipo rápido.
La transferencia dúplex : En cualquier momento, una única conexión TCP permite la transmisión bidireccional simultánea de datos, pero no afectan entre sí, el cliente puede enviar una solicitud al servidor, y el servidor se puede conectar a través del mismo transpondedor.
Modo de flujo : el receptor TCP envía ningún mensaje límites de los sentidos de transmisión flujo de bytes.

TCP cabecera
de datos TCP se encapsula en un paquete IP! ! ! Como se muestra a continuación:
Aquí Insertar imagen Descripción
La siguiente figura muestra el formato de datos de la cabecera TCP, si el campo de opción no recuerda, por lo general son de 20 bytes.
Aquí Insertar imagen Descripción
TCP campo de cabecera significado que (controlar sustancialmente)
1. La fuente y puerto de destino números : Cada segmento TCP contiene un número de puerto número de puerto de origen y destino para el proceso de solicitud para encontrar el extremo de transmisión y extremo receptor.
2. El número y el número de acuse de recibo: desde el número de secuencia TCP indica que el lado de recepción de transmisión de bytes de datos de transmisión envía al TCP, pero indica el primer byte de datos en los campos del mensaje. Si se ve como un flujo de bytes entre los dos flujo unidireccional de la solicitud, el flujo de bytes TCP para cada número de secuencia contada. Número es un número sin signo de 32 bits. El número de acuse de recibo es enviado para confirmar el final del siguiente número de secuencia esperado a recibir. Por lo tanto, el número de acuse de recibo debe ser el último byte de datos ha sido recibido con éxito el número de serie más uno. Sólo la bandera ACK es 1, el campo de número de acuse de recibo es válido.
3. El encabezado de longitud: cabecera de longitud de la cabecera da el número de palabras de 32 bits. Esta opción requiere sólo debido a la longitud del campo es variable. Este campo representó el 4, por lo que un máximo de cabecera TCP de 60 bytes. Si no hay un campo de opción, la longitud normal de 20 bytes.
4. Bandera : Hay seis banderas en la cabecera TCP. Más de ellos puede ser establecido de forma simultánea a 1, lo que significa son como sigue:
Aquí Insertar imagen Descripción
5. Tamaño de ventana: de control de flujo TCP es proporcionado por cada extremo de la conexión a través del tamaño de la ventana de la declaración. Tamaño de la ventana para el número especificado de bytes a partir del valor del campo de número de secuencia de acuse de recibo, este valor es correcto deseado recibir el número de bytes recibidos. Tamaño de la ventana es un campo de 16 bits, y por lo tanto el tamaño máximo de la ventana es 65535 bytes.
6. Inspección y: Inspección y que cubre la totalidad del segmento TCP que contiene cabecera TCP, TCP pseudo-cabecera y los datos TCP. Este es un campo obligatorio, debe ser calculado y almacenado por el remitente, la verificación por el extremo de recepción.
7. El puntero de urgencia: sólo cuando la bandera es URG, puntero de urgencia es válido. puntero de urgencia es un valor de desplazamiento positivo se añade al campo de número de secuencia indica el último byte del número de datos urgentes. Esta es una forma de transmisión de emergencia extremo de transmisión de datos hasta el otro extremo.
8. Opción: Opciones TCP sección de encabezado TCP es para adaptarse al entorno de red compleja y mejor sección de opciones de diseño de capa de aplicación de servicio de hasta 40 bytes. El campo más común opción es el tamaño máximo de segmento (MaximumSegment, MSS). (Ese segmento indicador SYN está fijado para establecer una conexión) de cada parte conectada normalmente se informó en el primer segmento de la comunicación se especifica en esta opción. Se indica el final de la presente segmento de la longitud máxima aceptable.
9. Datos: sección de segmento de datos TCP es opcional. Por ejemplo, cuando se establece la conexión y se termina la conexión, las dos partes intercambiaron única cabecera de segmento TCP. Incluso si una parte no tiene datos para enviar, sino también utilizar los datos sin ningún tipo de datos de cabecera a confirmar la recepción de. En muchos casos, el proceso de tiempo de espera también transmite sin ningún segmento de datos.

cliente TCP y el protocolo de comunicación del servidor

proceso de comunicación global

proceso del servidor:
Toma de llamada, crear un descriptor de archivo,
llamada bind, el descriptor de archivo actual y el puerto IP (dirección IP y puerto) están unidos entre sí, y si este puerto ya está ocupada por otro proceso, se unirá fracaso,
llamada escuchar, esta declaración del descriptor de archivo descriptor de archivo actual como un servidor, hacer un trabajo de buena preparación para la posterior aceptar;
accecpt llamada, y el bloqueo , y otros clientes conectarse a través de;
llamada de envío / envío recv y recibir datos de
llamadas cerrar cerrar el socket
del cliente proceso:
toma de llamadas, crear un descriptor de archivo,
llamada [aprieto], la empatía no toma la iniciativa de los enlaces de direcciones, asignado por el sistema operativo
llamadas se conectan, la conexión se ha establecido correctamente
ENVIO / recv y recibir llamadas de datos
llamadas de socket cerrar cerrar

flujo de comunicación

El cliente y el servidor para establecer un proceso de conexión, "de tres vías" (obligatoria énfasis)
| señal | efecto |
URG puntero de urgencia es válida
número de acuse de recibo ACK es válida
PSH solicita inmediatamente la solicitud receptor lee datos de la TCP buffer para ir
RST otra preguntamos a volver a establecer la conexión; llevamos RST identificador llamado un paquete de restablecimiento
solicitudes SYN para establecer una conexión; llevamos SYN identificador de llamada segmento de sincronización
aviso fIN al otro, al final se cierre, que llamamos identidad está llevando fIN segmento final

Versión detallada:
1. El cliente envía un segmento SYN especificado en el cliente desea conectarse al número de puerto del servidor, y el número de secuencia inicial (la SequenceNumber la inicial, ISN), SYN solicita una conexión después de la transmisión, el cliente entra en el estado SYN_SENT la espera de la solicitud de conexión.
2. En primer lugar, después de comenzar el servidor entra en el listening estado, cuando recibe el SYN enviado a la solicitud del cliente, introduzca SYN_RCV recibe un estado de la petición , el segmento SYN posterior contiene el número de secuencia inicial del servidor como respuesta, al tiempo que reconoce la necesidad de establecer el número de secuencia inicial se incrementa en uno cliente, confirmación segmento SYN del cliente. Un SYN se llevará un número.
3. Después de que el cliente recibe un paquete de confirmación entra en el estado del servidor ESTABLECIDO (establecido), indica que la conexión partido ha sido establecido con éxito, el número de secuencia de acuse de recibo conjunto a la ISN servidor de cliente más 1, el segmento SYN al servidor para confirmar, cuando después de que el servidor recibe el mensaje de confirmación, también entró (establecido) estado estableció
proceso de construcción (Lite) conexión:
toma de llamada, crear un descriptor de archivo,
llamada de conexión, envía una solicitud de conexión al servidor;
connect enviará un segmento SYN y el bloqueo de espera respuesta del servidor; (primera)
servidor recibe de un cliente SYN, SYN-ACK responderán a un segmento que "acordó establecer la conexión"; (segundo)
será () de regresar de la conexión después de que el cliente recibe el SYN-ACK, mientras un segmento ACK de respuesta; (tercera vez)
el procedimiento de establecimiento de conexión, comúnmente referido como enlace de tres vías;
Aquí Insertar imagen Descripción
transmisión de datos de proceso
Una vez establecida la conexión, el protocolo TCP proporciona servicio de comunicaciones full-duplex; la llamada media full-duplex, en la misma conexión, al mismo tiempo, partes que se comunican
puede escribir datos al mismo tiempo; concepto relativo llama half-duplex, con una conexión al mismo tiempo, sólo puede ser escrito por uno de los datos;
el servidor de la llamada accept () para leer inmediatamente después de retorno (), toma de lectura es como la lectura de la misma tubería, si no hay datos llegan en el bloque de espera;
a continuación, el cliente llama a la escritura () envía una solicitud al servidor, el servidor recibe retornos () de lectura, por solicitud del cliente se procesa, en este período
entre el cliente llama al bloque de lectura () a la espera de respuesta del servidor;
llamadas al servidor de escribir () se ocupará de los resultados de vuelta al cliente, leer de nuevo la llamada () bloque y espera para la siguiente petición,
el cliente recibe () regresa de lectura, enviar una petición a la siguiente, por lo que el ciclo continúa,
los procedimientos de desconexión (cuatro) de onda (el subrayado es obligatorio) :
Si el cliente no más peticiones, y llama a la close () cierra la conexión, el cliente envía un segmento FIN al servidor (primero);
después de lo cual el servidor recibe FIN, una respuesta a la ACK, al mismo tiempo que una lectura devolverá 0 (un segundo veces);
Después de que los rendimientos de lectura, el servidor sabe que el cliente cierra la conexión, llama también la estrecha conexión se cierra, esta vez el servidor envía un FIN al cliente; (tercera vez)
el cliente recibe FIN, a continuación, devuelve un ACK al servidor; (la primera cuatro)
este proceso de desconexión, comúnmente conocida como "de cuatro ondas"
Aquí Insertar imagen Descripción
¿por qué estado de intervalo de espera es?
1.TIME_WAIT prorrogó el estado de la información de mantenimiento de conexión TCP actual para el proceso de cierre normal manejar correctamente conectado reconocimiento pérdida de Wen es necesario.
Estado 2.TIME_WAIT para asegurar que los segmentos de la vieja conexión no se pueden volver a utilizar antes de desaparecer en la red , a fin de evitar perturbar la nueva conexión.
el blog de referencia:
https://blog.csdn.net/L19002S/article/details/103667549

Publicado 35 artículos originales · ganado elogios 107 · Vistas 8721

Supongo que te gusta

Origin blog.csdn.net/qq_43676757/article/details/105340617
Recomendado
Clasificación