Tarjeta de red informática

Red informática

1. La estructura y función de cada capa de OSI y TCP / IP, qué protocolos hay

Arquitectura de protocolo de cinco capas

Cuando aprendemos redes de computadoras, generalmente adoptamos un método de compromiso, es decir, neutralizar las ventajas de OSI y TCP / IP, y adoptar una arquitectura con solo cinco capas de protocolos, para que sea conciso y claro.

En combinación con la situación de Internet, de arriba a abajo, una breve introducción al papel de cada capa.

  • 1 capa de aplicación

La tarea de la capa de aplicación es completar una aplicación de red específica a través de la interacción entre los procesos de la aplicación. El protocolo de capa de aplicación define las reglas de comunicación e interacción entre los procesos de aplicación (procesos: ejecutar programas en el host). Se requieren diferentes protocolos de capa de aplicación para diferentes aplicaciones de red. En Internet, hay muchos protocolos de capa de aplicación, como DNS, DNS, protocolo HTTP que admite aplicaciones de la World Wide Web, protocolo SMTP que admite correo electrónico, etc. Nos referimos a las unidades de datos interactuadas por la capa de aplicación como mensajes.

Sistema de nombres de dominio

El Sistema de nombres de dominio (DNS) es un servicio central de Internet. Como una base de datos distribuida que puede asignar nombres de dominio y direcciones IP entre sí, puede facilitar que las personas accedan a Internet. No es necesario recordar cadenas de IP que la máquina pueda leer directamente. (Enciclopedia Baidu) Por ejemplo: el sitio web de una empresa puede considerarse como su portal en línea, y el nombre de dominio es equivalente a su domicilio, generalmente el nombre de dominio utiliza el nombre o la abreviatura de la empresa. Por ejemplo, el nombre de dominio de Microsoft mencionado anteriormente es similar: el nombre de dominio de IBM es www.ibm.com, el nombre de dominio de Oracle es www.oracle.com, el nombre de dominio de Cisco es www.cisco.com, etc.

Protocolo HTTP

El Protocolo de transferencia de hipertexto (HTTP, Protocolo de transferencia de hipertexto) es el protocolo de red más utilizado en Internet. Todos los documentos WWW deben cumplir con esta norma. El propósito original de diseñar HTTP era proporcionar un método para publicar y recibir páginas HTML. (Enciclopedia Baidu)

  • 2 capa de transporte

La tarea principal de la capa de transporte es proporcionar servicios generales de transmisión de datos para la comunicación entre dos procesos host. El proceso de solicitud utiliza este servicio para transmitir mensajes de capa de aplicación. "Universal" significa que no está dirigido a una aplicación de red específica, pero múltiples aplicaciones pueden usar el mismo servicio de capa de transporte. Dado que un host puede ejecutar múltiples subprocesos al mismo tiempo, la capa de transporte tiene funciones de multiplexación y demultiplexación. La llamada multiplexación se refiere a que los procesos de múltiples capas de aplicación pueden usar los servicios de la capa de transporte inferior al mismo tiempo.A diferencia de la demultiplexación y multiplexación, la capa de transporte entrega la información recibida a los procesos correspondientes en la capa de aplicación superior.

La capa de transporte utiliza principalmente los siguientes dos protocolos.

Protocolo de control de transmisión TCP (Protocolo de control de transmisión): proporciona servicios de transmisión de datos confiables y orientados a la conexión.

Protocolo de datos de usuario UDP (Protocolo de datagramas de usuario): proporciona servicios de transmisión de datos sin conexión y con el mejor esfuerzo (no garantiza la fiabilidad de la transmisión de datos).

Características principales de UDP

UDP no tiene conexión;

UDP utiliza la entrega de mejor esfuerzo, es decir, no se garantiza una entrega confiable, por lo que el host no necesita mantener un estado de enlace complejo (hay muchos parámetros);

UDP está orientado a paquetes;

UDP no tiene control de congestión, por lo que la congestión de la red no reducirá la velocidad de envío del host de origen (útil para aplicaciones en tiempo real, como teléfonos IP, videoconferencia en tiempo real, etc.);

UDP admite comunicación interactiva uno a uno, uno a muchos, muchos a uno y muchos a muchos;

La sobrecarga del encabezado UDP es pequeña, solo 8 bytes, que es más corta que el encabezado de 20 bytes de TCP.

Las principales características de TCP

TCP está orientado a la conexión. (Al igual que al hacer una llamada telefónica, debe marcar para establecer la conexión antes de la llamada y colgar para liberar la conexión después de la llamada);

Cada conexión TCP solo puede tener dos puntos finales, y cada conexión TCP solo puede ser punto a punto (uno a uno);

TCP proporciona servicios de entrega confiables. Los datos transmitidos a través de la conexión TCP están libres de errores, no se pierden, no se repiten y llegan en orden;

TCP proporciona comunicación full-duplex. TCP permite que los procesos de aplicación en ambos lados de la comunicación envíen datos en cualquier momento. Ambos extremos de la conexión TCP están equipados con buffers de envío y recepción, que se utilizan para almacenar temporalmente los datos comunicados por ambas partes;

Orientado a bytes. El "flujo" en TCP se refiere a la secuencia de bytes que fluyen dentro o fuera de un proceso. El significado de "flujo orientado a bytes" es: Aunque la interacción entre la aplicación y TCP es un bloque de datos (diferentes tamaños) a la vez, TCP trata los datos entregados por la aplicación como una serie de flujos de bytes no estructurados.

  • 3 capa de red

La capa de red es responsable de proporcionar servicios de comunicación a diferentes hosts en la red de paquetes conmutados. Al enviar datos, la capa de red encapsula paquetes o datagramas de usuario generados por la capa de transporte en paquetes y paquetes. En la arquitectura TCP / IP, debido a que la capa de red usa el protocolo IP, el paquete también se denomina datagrama IP o datagrama para abreviar.

Nota aquí: No confunda el "datagrama de usuario UDP" en la capa de transporte con el "datagrama de IP" en la capa de red. Además, no importa qué capa de unidad de datos, generalmente se puede expresar mediante "agrupación".

Otra tarea de la capa de red es seleccionar la ruta apropiada para que la rama transmitida desde la capa de transporte del host de origen pueda encontrar el host de destino a través del enrutador en la capa de red.

Aquí se enfatiza que la palabra "red" en la capa de red no es la red específica de la que generalmente hablamos, sino el nombre de la tercera capa en el modelo de arquitectura de red informática.

Internet está interconectado por una gran cantidad de redes heterogéneas a través de enrutadores. El protocolo de capa de red utilizado por Internet es el protocolo de Internet sin conexión (Intert Prococol) y muchos protocolos de enrutamiento, por lo que la capa de red de Internet también se denomina capa de Internet o capa de IP.

  • 4 capa de enlace de datos

La capa de enlace de datos (capa de enlace de datos) generalmente se conoce simplemente como la capa de enlace. La transmisión de datos entre los dos hosts siempre se transmite en una sección del enlace, lo que requiere el uso de un protocolo especial de capa de enlace. Cuando se transmiten datos entre dos nodos vecinos, la capa de enlace de datos ensambla datagramas IP entregados desde la capa de red en tramas de proceso, y transmite las tramas en el enlace entre los dos nodos vecinos. Cada trama incluye datos e información de control necesaria (como información de sincronización, información de dirección, control de errores, etc.).

Al recibir datos, la información de control permite al extremo receptor saber desde qué bit comienza una trama y en qué bit. De esta manera, después de recibir una trama, la capa de enlace de datos puede extraer los datos de ella y entregarla a la capa de red. La información de control también permite que el extremo receptor detecte errores en la trama recibida. Si se encuentra un error, la capa de enlace de datos simplemente descarta la trama errónea para evitar desperdiciar más recursos de red en la red. Si necesita corregir errores que ocurren cuando los datos se transmiten en la capa de enlace (es decir, la capa de enlace de datos no solo debe detectar y corregir errores), entonces debe usar un protocolo de transmisión confiable para corregir los errores. Este método hace que el protocolo de capa de enlace sea más complicado.

  • 5 capa física

La unidad de datos transmitida en la capa física es bits. El papel de la capa física es realizar la transmisión transparente del flujo de bits entre nodos de computadora adyacentes, protegiendo la diferencia entre el medio de transmisión específico y el dispositivo físico tanto como sea posible. La capa de enlace de datos que se encuentra arriba no tiene que considerar cuál es el medio de transmisión específico de la red. "Flujo de bits de transmisión transparente" significa que el flujo de bits transmitido a través del circuito real no ha cambiado. Para el flujo de bits transmitido, este circuito parece ser invisible.

Entre los diversos protocolos utilizados en Internet, los más importantes y conocidos son los dos protocolos TCP / IP. Ahora, las personas a menudo mencionan que TCP / IP no necesariamente se refiere a los dos protocolos específicos de TCP e IP, sino que a menudo se refiere a toda la familia de protocolos TCP / IP utilizada por Internet.

Arriba tenemos una comprensión preliminar de la arquitectura de cinco capas de la red informática. A continuación se muestra un resumen de la arquitectura de siete capas.

6ffd1a27.png

2. Apretón de manos de tres vías TCP y cuatro manos de onda (entrevistadores habituales)

Para enviar los datos al objetivo con precisión, el protocolo TCP utiliza una estrategia de protocolo de enlace de tres vías.

Ilustración cómica:

33f468ff.png
Diagrama simple:
8146a211.png
cliente-envía un paquete con SYN logo-a handshake-server

Servidor-Enviar paquete de datos con SYN / ACK flag-Second handshake-Client

El cliente envía un paquete con ACK sign-three-way handshake-server

¿Por qué deberíamos estrechar la mano tres veces?

El propósito del apretón de manos de tres vías es establecer un canal de comunicación confiable. Cuando se trata de comunicación, en términos simples, es el envío y la recepción de datos. El propósito principal del apretón de manos de tres vías es que ambas partes confirmen que su envío y recepción son normales.

El primer apretón de manos: el cliente no puede confirmar nada; el servidor confirma que la otra parte envía normalmente

El segundo apretón de manos: el cliente confirma: el envío y la recepción de sí mismo es normal, y el envío y recepción de la otra parte es normal; el servidor confirma: la recepción de sí mismo es normal y la otra parte envía normalmente

El tercer apretón de manos: el cliente confirma: se transmite y recibe normalmente, la otra parte envía y recibe normalmente; El servidor confirma: se transmite y recibe normalmente, la otra parte envía y recibe normalmente

Por lo tanto, el protocolo de enlace de tres vías puede confirmar que las funciones duales de envío y recepción son normales e indispensables.

¿Por qué deberías devolver syn

El SYN enviado por el extremo receptor al extremo emisor es decirle al extremo emisor que la información que recibí es realmente la señal que usted envió.

SYN, por qué ACK

La comunicación entre las dos partes debe ser correcta si ambas partes se envían mensajes sin error. Pasar el SYN demuestra que no hay ningún problema con el canal del remitente al receptor, pero el canal del receptor al remitente también requiere una señal ACK para la verificación.

Desconectar una conexión TCP requiere "cuatro ondas":

Cliente: envíe un FIN para cerrar la transferencia de datos del cliente al servidor

Al recibir este FIN, el servidor envía un ACK confirmando que el número de secuencia es 1 más el número de secuencia recibido. Al igual que SYN, un FIN ocupará un número de serie.

Servidor: cierre la conexión con el cliente y envíe un FIN al cliente

El cliente envía un mensaje ACK para confirmar y establece el número de secuencia de confirmación al número de secuencia recibido más 1

¿Por qué agitar cuatro veces?

Cualquiera de las partes puede emitir una notificación de liberación de la conexión después de que se complete la transferencia de datos e ingresar al estado semicerrado después de que la otra parte confirme. Cuando la otra parte no tiene datos para enviar nuevamente, se emite una notificación de liberación de la conexión y la conexión TCP se cierra por completo después de que la otra parte lo confirma.

Por ejemplo: A y B están llamando, y después de que la llamada está a punto de finalizar, A dice "No tengo nada que decir", B responde "Lo sé", pero B aún puede tener algo que decir, A no puede pedirle a B que lo siga. Al finalizar la llamada a su propio ritmo, B puede volver a hablar con Barabara y finalmente B dice "Ya terminé" y A responde "Lo sé", para que la llamada finalice.

Lo anterior es más general, recomiendo un artículo más detallado: https://blog.csdn.net/qzcsu/article/details/72861891

Tercero, la diferencia entre los protocolos TCP y UDP

UDP no necesita establecer una conexión antes de transmitir datos, y el host remoto no necesita dar ninguna confirmación después de recibir el mensaje UDP. Aunque UDP no proporciona una entrega confiable, en algunos casos UDP es de hecho la forma más efectiva de trabajar (generalmente utilizada para la mensajería instantánea), como: QQ voz QQ video, transmisión en vivo, etc.

TCP proporciona servicios orientados a la conexión. La conexión debe establecerse antes de transferir datos, y la conexión debe liberarse después de que se complete la transferencia de datos. TCP no proporciona servicios de difusión o multidifusión. Debido a que TCP necesita proporcionar un servicio de transporte confiable y orientado a la conexión (la confiabilidad de TCP se refleja en TCP antes de transferir datos, habrá tres apretones de manos para establecer una conexión, y en la transmisión de datos, hay un mecanismo de control de congestión, ventana, retransmisión y congestión Después de que se transmiten los datos, la conexión se desconectará para ahorrar recursos del sistema), lo que inevitablemente agrega muchos gastos generales, como la confirmación, el control de flujo, los temporizadores y la administración de la conexión. Esto no solo hace que el encabezado de la unidad de datos del protocolo sea mucho más grande, sino que también consume muchos recursos del procesador. TCP generalmente se usa en escenarios como la transmisión de archivos, el envío y la recepción de correos electrónicos y el inicio de sesión remoto.

4. Cómo garantizar una transmisión confiable del protocolo TCP

  • Los datos de la aplicación se dividen en bloques de datos que TCP considera los más adecuados para enviar.

  • Retransmisión de horas extras: cuando TCP envía un segmento, inicia un temporizador y espera a que el destino confirme la recepción del segmento. Si no se puede recibir una confirmación a tiempo, el segmento se reenviará.

  • TCP numera cada paquete enviado, y el receptor clasifica los paquetes de datos y envía los datos ordenados a la capa de aplicación.

  • Suma de verificación: TCP mantendrá la suma de verificación de su encabezado y datos. Esta es una suma de verificación de extremo a extremo, el propósito es detectar cualquier cambio en el proceso de transmisión de datos. Si la suma de verificación del segmento recibido es errónea, TCP descartará el segmento y no acusará recibo del segmento.

  • El extremo receptor de TCP descartará los datos duplicados.

  • Control de flujo: cada lado de la conexión TCP tiene un tamaño fijo de espacio en el búfer. El extremo receptor TCP solo permite que el extremo emisor envíe los datos que el búfer extremo receptor puede aceptar. Cuando el receptor no tiene tiempo para procesar los datos del remitente, se le puede solicitar que reduzca la velocidad de envío para evitar la pérdida de paquetes. El protocolo de control de flujo utilizado por TCP es un protocolo de ventana deslizante de tamaño variable. (TCP utiliza ventanas deslizantes para el control de flujo)

  • Control de congestión: cuando la red está congestionada, se reduce la transmisión de datos.

  • El protocolo ARQ detener y esperar (detener y esperar) también es para lograr una transmisión confiable. Su principio básico es dejar de enviar después de que se envíe cada paquete, esperando que la otra parte confirme. Envíe el siguiente paquete después de recibir la confirmación.

Retransmisión de tiempo de espera

La retransmisión de parada y espera en el protocolo significa que, siempre que el acuse de recibo no se reciba después de un cierto período de tiempo, el paquete enviado anteriormente se retransmite (el paquete que se acaba de enviar se considera perdido). Por lo tanto, cada vez que se envía un paquete, se debe establecer un temporizador de tiempo de espera y el tiempo de retransmisión debe ser mayor que el tiempo promedio de ida y vuelta de la transmisión de datos en el paquete. Este método de retransmisión automática a menudo se denomina solicitud de retransmisión automática ARQ. Además, si se recibe un paquete repetido en el protocolo de detención y espera, el paquete se descarta, pero al mismo tiempo, también se envía un acuse de recibo. El protocolo ARQ continuo puede mejorar la utilización del canal. El envío mantiene una ventana de envío, y todos los paquetes en la ventana de envío se pueden enviar continuamente sin esperar que la otra parte confirme. El receptor generalmente usa el acuse de recibo acumulativo para enviar un acuse de recibo al último paquete que llega en secuencia, lo que indica que todos los paquetes a esta ubicación de paquetes se han recibido correctamente.

Deja de esperar un acuerdo

El protocolo stop-wait es para una transmisión confiable. Su principio básico es dejar de enviar cada paquete después de ser enviado, esperando que la otra parte confirme. Envíe el siguiente paquete después de recibir la confirmación.

Para mejorar la eficiencia de la transmisión, el emisor puede usar la transmisión de la tubería en lugar del ineficiente protocolo de parada y espera. La transmisión por canalización significa que el remitente puede enviar varios paquetes seguidos, sin tener que detenerse cada vez que se envía un paquete y esperar a que la otra parte confirme. De esta manera, los datos pueden transmitirse continuamente en el canal. Este método de transmisión puede mejorar significativamente la utilización del canal.

Ventana corredera

TCP utiliza una ventana deslizante para implementar un mecanismo de control de flujo.

El número de serie en la ventana de envío indica el número de serie que se permite enviar. La parte posterior del borde posterior de la ventana de envío indica que se ha enviado y se ha recibido la confirmación, mientras que la parte frontal del borde frontal de la ventana de envío indica que no es halo ni enviado. Hay dos posibilidades para el cambio del borde posterior de la ventana de envío, a saber, la inmovilidad (no se recibió una nueva confirmación) y el movimiento hacia adelante (se recibió una nueva confirmación). El borde de ataque de la ventana de envío suele avanzar constantemente. En general, siempre queremos que los datos se transfieran más rápido. Pero si el remitente envía los datos demasiado rápido, el receptor puede llegar demasiado tarde para recibirlos, lo que provocará la pérdida de datos. El llamado control de flujo es hacer que la velocidad de envío del remitente no sea demasiado rápida, pero permitir que el receptor la reciba.

Control de flujo

El control de flujo es controlar la velocidad de envío del remitente y garantizar que el receptor tenga tiempo para recibirlo.

El campo de ventana en el mensaje de confirmación enviado por el receptor se puede usar para controlar el tamaño de la ventana del remitente, lo que afecta la velocidad de envío del remitente. Si el campo de la ventana se establece en 0, el remitente no puede enviar datos.

Control de la congestión

Durante un cierto período de tiempo, si la demanda de un recurso en la red excede la parte disponible que el recurso puede proporcionar, el rendimiento de la red se deteriorará. Esta situación se llama congestión. El control de congestión es para evitar que se inyecten datos excesivos en la red, de modo que los enrutadores o enlaces en la red no se sobrecarguen. Hay un requisito previo para el control de congestión, es decir, la red puede soportar la carga de red existente. El control de congestión es un proceso global que involucra a todos los hosts, todos los enrutadores y todos los factores relacionados con la reducción del rendimiento de la transmisión de red. En contraste, el control de flujo es a menudo el control del tráfico de punto a punto y es un problema de extremo a extremo. Todo lo que tiene que hacer el control de flujo es suprimir la velocidad a la que el extremo emisor envía datos para que el extremo receptor tenga tiempo de recibirlos.

Para realizar el control de congestión, el emisor TCP mantiene una variable de estado de ventana de congestión (cwnd). El tamaño de la ventana de control de congestión depende del grado de congestión de la red y cambia dinámicamente. El emisor hace que su ventana de envío sea la ventana de congestión más pequeña y la ventana de recepción del receptor.

El control de congestión de TCP utiliza cuatro algoritmos, a saber, inicio lento, prevención de congestión, retransmisión rápida y recuperación rápida. En la capa de red, los enrutadores también pueden usar estrategias apropiadas de caída de paquetes (como la gestión activa de colas AQM) para reducir la congestión de la red.

  • Comience lentamente:

La idea del algoritmo de inicio lento es que cuando el host comienza a enviar datos, si una gran cantidad de bytes de datos se inyectan inmediatamente en la red, puede causar congestión de red, porque aún no se conoce el cumplimiento de la red. La experiencia ha demostrado que un mejor método es detectar primero, es decir, aumentar gradualmente la ventana de transmisión de pequeña a grande, es decir, aumentar gradualmente el valor de la ventana de congestión de pequeño a grande. El valor inicial de cwnd es 1, y cwnd se duplica después de cada ronda de propagación.
3f1697c2.png

  • Evitar la congestión:

La idea del algoritmo para evitar la congestión es hacer que la ventana de congestión cwnd aumente lentamente, es decir, cada vez que pasa un tiempo de ida y vuelta RTT, el cwnd enviado aumenta en 1.

  • Retransmisión rápida y recuperación rápida:

En TCP / IP, la retransmisión y recuperación rápida (FRR) es un algoritmo de control de congestión que puede recuperar rápidamente los paquetes de datos perdidos. Sin FRR, si se pierde un paquete, TCP usará un temporizador para solicitar una pausa de transmisión. Durante este período de suspensión, no se envían paquetes de datos nuevos o duplicados. Con FRR, si el receptor recibe un segmento de datos fuera de secuencia, enviará inmediatamente un acuse de recibo repetido al transmisor. Si el transmisor recibe tres confirmaciones repetidas, asumirá que falta el segmento de datos indicado por la confirmación e inmediatamente retransmitirá estos segmentos de datos faltantes. Con FRR, no habrá demoras debido a la suspensión solicitada durante la retransmisión. Cuando se pierde un solo paquete de datos, la retransmisión y recuperación rápidas (FRR) pueden funcionar de manera más efectiva. Cuando se pierden múltiples paquetes de datos en un corto período de tiempo, no puede funcionar de manera muy eficiente.
24025020.png

5. Ingrese la dirección URL en el navegador - >> el proceso de visualización de la página de inicio (entrevista a clientes habituales)

Parece que a Baidu le gusta más hacer esta pregunta.

Abra una página web, qué protocolos se utilizarán durante todo el proceso.

7ef6ce9e.png

Seis, código de estado

686aebca.png

Siete, la relación entre varios protocolos y el protocolo HTTP

El entrevistador general examinará su comprensión del sistema de conocimiento de la red informática a través de tales preguntas.
6dd76568.png

Ocho, conexión larga HTTP, conexión corta

Las conexiones cortas se utilizan por defecto en HTTP / 1.0. En otras palabras, cada vez que el cliente y el servidor realizan una operación HTTP, se establece una conexión y la conexión finaliza cuando finaliza la tarea. Cuando un HTML u otro tipo de página web a la que accede el navegador del cliente contiene otros recursos web (como archivos JavaScript, archivos de imagen, archivos CSS, etc.), el navegador se restablecerá cada vez que se encuentre dicho recurso web Una sesión HTTP.

Desde HTTP / 1.1, las conexiones largas se utilizan de forma predeterminada para mantener las características de conexión. Usando el protocolo HTTP para conexiones largas, esta línea de código se agregará al encabezado de respuesta:

Conexión
: mantener vivo

En el caso de usar una conexión larga, cuando se abre una página web, la conexión TCP entre el cliente y el servidor para transmitir datos HTTP no se cerrará, y el cliente continuará usando esta conexión establecida cuando acceda nuevamente al servidor . Keep-Alive no mantiene la conexión para siempre, tiene un tiempo de espera, que se puede configurar en diferentes software de servidor (como Apache). Lograr conexiones largas requiere que tanto el cliente como el servidor admitan conexiones largas.

  • Las conexiones largas y cortas del protocolo HTTP son esencialmente las conexiones largas y cortas del protocolo TCP.

Escribe al final

Revisión de problemas comunes en la
red informática: protocolo de enlace tripartito TCP y cuatro manos agitadas,

②Introduzca la dirección URL en el navegador - >> el proceso de visualización de la página de inicio

③La diferencia entre HTTP y HTTPS

④La diferencia entre los protocolos TCP y UDP

⑤ Códigos de estado comunes.

Supongo que te gusta

Origin www.cnblogs.com/pttt/p/12690947.html
Recomendado
Clasificación