Protocolos de capa de transporte: TCP, UDP

Tabla de contenido

1. Protocolo UDP (Protocolo de datagramas de usuario)

Funciones del protocolo

Formato del encabezado del mensaje

2. Protocolo TCP (Protocolo de control de transmisión)

Funciones del protocolo

Formato del encabezado del mensaje

Apretón de manos de tres vías al establecer una conexión TCP

Las cuatro ondas de TCP derribando una conexión

Control de flujo TCP

Control de congestión TCP

3. Número de puerto de la capa de transporte

Número de puerto tipo III

Algunos números de puerto conocidos


tipo de acuerdo ¿Está orientado a la conexión? ¿Es confiable? Eficiencia de transmisión gastos generales forma de comunicacion
UDP No No alto Pequeño Punto único/multipunto a punto único/multipunto
tcp Bajo grande punto a punto

1. Protocolo UDP (Protocolo de datagramas de usuario)

Funciones del protocolo

  • sin conexión
  • Orientado a mensajes
  • Pequeña sobrecarga de encabezado (8 bytes)
  • Entrega con el mejor esfuerzo, sin garantías de confiabilidad, sin control de congestión
  • Admite comunicación de uno o muchos a uno o muchos

Formato del encabezado del mensaje

2. Protocolo TCP (Protocolo de control de transmisión)

Funciones del protocolo

  • Orientado al flujo de bytes (procesar los datos entregados por la capa de aplicación como bytes y numerarlos en consecuencia)
  • orientado a la conexión
  • Cada conexión TCP tiene solo dos puntos finales (conexión uno a uno)
  • Entrega confiable garantizada
  • Posibilidad de comunicación full duplex

Formato del encabezado del mensaje

El puerto de origen y el puerto de destino varían de 0 a 65535;

El número de secuencia (seq) representa el número de secuencia del primer byte de datos en este segmento y el valor es 0 ~ 2^{32}- 1;

El número de confirmación (ack) indica el número de secuencia del primer byte de datos que se espera recibir del siguiente segmento de mensaje de la otra parte, y el valor es 0 ~ - 2^{32}1;

El desplazamiento de datos representa la longitud del encabezado TCP, que puede identificar fácilmente la posición inicial del segmento de datos. La longitud mínima es 5 (0101) y la unidad es bytes. La longitud mínima del encabezado es 20 bytes;

Puntero urgente Cuando el bit URG es 1, este campo es válido e indicará los datos que deben enviarse con urgencia;

El campo de relleno tiene una longitud variable y se utiliza para garantizar que la longitud del encabezado del mensaje TCP sea un múltiplo entero de 4 bytes;

Campo Marcador de posición ilustrar
campo de control URG (1bit) Bit de emergencia ; cuando es 1, significa que hay datos para enviar urgentemente
ACK (1 bit) Bit de confirmación ; aquí está en mayúscula para distinguirlo del número de confirmación (ack en minúscula); cuando es 1, el campo de confirmación es válido, lo que indica una respuesta positiva
PSH (1 bit) Bit de inserción ; cuando se establece en 1, los paquetes TCP se envían inmediatamente
Primero (1 bit) Bit de reinicio ; cuando se establece en 1, indica que hay un error grave en la conexión TCP y es necesario restablecer la conexión; también se puede utilizar para rechazar una conexión
SYN (1 bit) Bit de sincronización ; cuando se establece en 1, indica que se está estableciendo una conexión TCP
FIN (1 bit) Bit de terminación ; cuando se establece en 1, indica que se está liberando una conexión TCP
ventana 16 bits Recibe el valor de la ventana inactiva para el control de flujo TCP

Apretón de manos de tres vías al establecer una conexión TCP

La función del protocolo de enlace de tres vías es evitar conexiones incorrectas

        El host A envía SYN al servidor B para solicitar el establecimiento de una conexión TCP. Incluso si no hay datos, consumirá una secuencia. En este momento, el host A está en el estado SYN-SENT hasta que no recibe la primera respuesta del servidor de destino.

        El servidor B está en el estado de escucha de LISTEN antes de recibir una solicitud de conexión TCP.

        El servidor responde al host A con SYN, lo que indica que también solicita al host A que establezca una conexión. ACK = 1 indica que ha aceptado la solicitud de conexión del host A. El servidor B también consume una secuencia, seq = y, ack = x + 1, que indica confirmación, reciba el contenido de los datos que acaba de enviar el host y presente la expectativa de que la secuencia cuando el host A envíe un mensaje al servidor B la próxima vez sea x + 1. En este momento, el servidor B necesita esperar la respuesta del host A y también cambia al estado SYN-SENT.

        El host A recibe la respuesta del servidor B y luego responde al servidor B. ACK = 1 indica que ha confirmado la solicitud de establecimiento de TCP del servidor B y responde a las expectativas del servicio B. Incluso si no hay datos, envía una secuencia, secuencia = x + 1. Al mismo tiempo, ack = y + 1 también es una confirmación del contenido que acaba de enviar el servidor B. También genera expectativas de que la secuencia de la próxima vez que el tipo de servicio envíe un mensaje sea y + 1. Al mismo tiempo, el estado se establece en ESTABLECIDO, lo que indica que se ha establecido la conexión.

        El servidor B recibe la respuesta del host A y establece el estado en ESTABLECIDO después de confirmar que es correcto, lo que indica que la conexión TCP se estableció correctamente.

        En este momento, el host A y el servidor B han establecido una conexión TCP y ambas partes pueden transmitir datos normalmente.

estado ilustrar
SINCRONIZADO Se envía una solicitud SYN, solicitando el primer paso para establecer una conexión TCP.
ESCUCHAR Monitorear el estado de los mensajes SYN
SYN-RCVD Estado después de recibir el mensaje de solicitud SYN
ESTABLECIDO Conexión TCP establecida con éxito

Las cuatro ondas de TCP derribando una conexión

        Cuando el host A envía el indicador FIN = 1 (desconexión), ingresará al estado FIN-WAIT-1 y esperará a que la otra parte confirme el apagado. Cuando el host recibe el indicador ACK = 1 (confirmación) de la otra parte, el host A ingresará al estado FIN-WAIT-2. En este momento, el host A ha desconectado la conexión con la otra parte, pero no ha desconectado completamente la conexión TCP y todavía está esperando que la otra parte envíe un indicador FIN para confirmar el cierre de la otra parte.

        Solo después de que el host A reciba el indicador FIN de la otra parte y envíe un indicador ACK para confirmar, ingresará al estado TIEMPO DE ESPERA. En este momento, el host realmente cierra la conexión TCP.

estado ilustrar
FIN-ESPERAR-1 Envió la primera solicitud FIN, esperando la confirmación de la otra parte
FIN-ESPERAR-2 Esperando la solicitud FIN de la otra parte
ESPERAR CERCA Espere a que el propio proceso emita un comando de desconexión
ÚLTIMO ACK Espere la última confirmación de la otra parte
TIEMPO DE ESPERA Espere el tiempo suficiente para asegurarse de que la otra parte reciba la confirmación.
CERRADO Desactivado

Control de flujo TCP

        El control de flujo es para la comunicación entre dos extremos . Lo que se considera es la diferencia entre la tasa de transferencia de datos entre el remitente y el receptor.

        El control de flujo TCP se implementa mediante un mecanismo de ventana deslizante de tamaño variable . Es decir, la velocidad de transmisión del extremo emisor de datos no debe ser demasiado rápida, para que el extremo receptor de datos pueda recibirlos a tiempo.
    

        Ambas partes acuerdan la ventana de transferencia de datos cuando se establece la conexión. Sin embargo, durante el proceso de comunicación, el extremo receptor de datos puede ajustar dinámicamente el tamaño de la ventana de transmisión de la otra parte en cualquier momento de acuerdo con sus propias condiciones de recursos. (Después de la negociación anterior, el tamaño de la ventana es 3)

        El extremo receptor coloca este valor de ventana en el campo de ventana en el encabezado del mensaje TCP y lo transmite al extremo emisor.

        El receptor generalmente envía un mensaje ACK inmediatamente después de recibir los datos para confirmar la recepción de los datos y notificar al remitente el tamaño de la ventana en este momento. Si el búfer del receptor está lleno, establece el tamaño de la ventana en 0 y el remitente deja de enviar datos. Cuando el receptor termine de procesar los datos, establecerá el tamaño de la ventana en un valor mayor que 0 y enviará un mensaje ACK para notificar al remitente para que pueda continuar enviando datos.

Control de congestión TCP

        El control de congestión es para la comunicación de toda la red, considera la utilización de recursos de cada enrutador y línea de la red para evitar la congestión de la red causada por un tráfico de datos excesivo.

        Cuatro métodos comunes de control de la congestión:

  • comienzo lento
  • evitación de congestión
  • Retransmisión rápida
  • Rápida recuperación

Ventana de congestión (cwnd) : es una variable de estado mantenida por el remitente, su tamaño depende del grado de congestión de la red y cambiará dinámicamente;

Umbral de inicio lento (ssthresh) : un umbral establecido para evitar que la ventana de congestión cwnd crezca demasiado y cause congestión en la red;

cwnd < ssthresh Realizar algoritmo de inicio lento
cwnd = ssthresh Puede utilizar el algoritmo de inicio lento o el algoritmo para evitar la congestión.
cwnd > ssthresh Utilice un algoritmo para evitar la congestión

Inicio lento : después de cada ronda de transmisión, el valor de cwnd se duplicará , aumentando cwnd de pequeño a grande;

Evitar la congestión : Después de cada ronda de transmisión, el valor de cwnd aumentará en 1 y cwnd aumentará lentamente de pequeño a grande;

Retransmisión rápida : el receptor enviará inmediatamente un ACK de acuse de recibo duplicado después de recibir un segmento fuera de secuencia. Si el remitente recibe tres acuses de recibo duplicados seguidos , retransmitirá inmediatamente el segmento que la otra parte aún no ha recibido . Por lo tanto, los mensajes no reconocidos se pueden retransmitir lo antes posible en lugar de esperar el tiempo de espera;

Recuperación rápida : cuando el remitente recibe tres ACK de confirmación de retransmisión consecutiva , realiza un algoritmo de reducción multiplicativa , reduce a la mitad el valor umbral (la mitad del valor cwnd actual) y establece el valor cwnd en el valor umbral reducido a la mitad y realiza el algoritmo para evitar la congestión. ;

Reducción multiplicativa : cuando se agota el tiempo de espera (posiblemente durante la congestión), ssthresh se reduce a la mitad (la mitad del valor cwnd actual) y el algoritmo de inicio lento se ejecuta al mismo tiempo;

Aumento aditivo : ejecute un algoritmo para evitar la congestión para aumentar cwnd;

 

        Como se muestra en la figura anterior, el umbral inicial de inicio lento es 16 y cwnd comienza desde 1. Siempre que el remitente reciba un mensaje de confirmación ACK, cwnd aumentará (el algoritmo de inicio lento se usa para aumentar antes de alcanzar el umbral).

        [① ~ ②] Cuando se alcanza el valor umbral, se utiliza el algoritmo para evitar la congestión para aumentar lentamente cwnd;

        [② ~ ③] Si ocurre un tiempo de espera cuando cwnd = 24, el umbral se reduce a la mitad, es decir, ssthresh = 12. Luego, la próxima vez que se reciba un mensaje de confirmación ACK, cwnd comienza desde 1 y aumenta usando el algoritmo de inicio lento;

        [③ ~ ④] Cuando cwnd = 12, cuando se alcanza el umbral, se utiliza el algoritmo para evitar la congestión para aumentar lentamente;

        [④ ~ ⑤] Cuando ④ llega a ④, cwnd = 16 y el remitente recibe tres confirmaciones duplicadas seguidas, el umbral se reduce a la mitad del cwnd actual, es decir, ssthresh = 8, y cwnd se vuelve consistente con el umbral. valor;

        [⑤ ~] Dado que cwnd = ssthresh, comience a usar el algoritmo para evitar la congestión para aumentar;

3. Número de puerto de la capa de transporte

Número de puerto tipo III

  • Puertos conocidos 0 ~ 1023
  • Registrar puerto 1024 ~ 49151
  • Número de puerto del cliente 49152 ~ 65535

Algunos números de puerto conocidos

El número de puerto Tipo de servicio
TCP 20 Protocolo de transferencia de archivos (datos)
TCP 21 Protocolo de transferencia de archivos (control)
TCP 23 Protocolo de emulación de terminal Telnet
TCP 25 Protocolo de correo simple SMTP
TCP 80 Protocolo de transferencia de hipertexto (HTTP)
TCP 110 Servidor POP3 (servidor de recepción de buzones)
TCP 443 Protocolo seguro de transferencia de hipertexto (HTTPS)

 

El número de puerto Tipo de servicio
UDP 53 Servidor de nombres de dominio (DNS)
UDP 67 Servidor DHCP)
UDP 68 DHCP (cliente)
UDP 69 Protocolo simple de transferencia de hipertexto (TFTP)
UDP 161 SNMP (sondeo)
UDP 162 SNMP (trampa)
UDP 520 Protocolo de enrutamiento RIP

Supongo que te gusta

Origin blog.csdn.net/hao_13/article/details/133522962
Recomendado
Clasificación