Charla divertida sobre los protocolos de red-Lección 1 | ¿Por qué aprender los protocolos de red?

Esta serie de blog relacionado, de referencia frikis tiempo - Algo sobre protocolo de red

Charla divertida sobre los protocolos de red-Lección 1 | ¿Por qué aprender los protocolos de red?

Hay una historia de la Torre del Cielo en la Biblia, que dice más o menos que para evitar que la humanidad se una, Dios hizo que los humanos hablaran diferentes idiomas. Los seres humanos no pueden comunicarse y no pueden llegar a un "acuerdo", y el plan de la Torre Tongtian falla.

Pero milenios después, hay una especie llamada "programa simio", que toca un lenguaje común a este grupo, conecta a todas las personas del mundo y crea una torre celestial de este mundo de Internet. El mundo de hoy solo está conectado por Internet.

Cuando se imprime "Hello World!" Desde el monitor, ¿recuerdas tu emoción?

public class HelloWorld {
	public static void main(String[] args){
		System.out.println("Hello World!");
	}
}

Si es programador, debe comprender el texto anterior. Así es como cada programador dice "hola, mundo" al mundo de las computadoras. Sin embargo, no necesariamente sabe que este texto es también un protocolo. Es un protocolo para que los humanos y las computadoras se comuniquen. Solo a través de este protocolo la computadora puede saber lo que queremos que haga.

Tres elementos del acuerdo.

Por supuesto, este protocolo está aún más cerca del lenguaje humano. La máquina no puede entenderlo directamente, y necesita ser traducido. La traducción se enseña al compilador, que es lo que los programadores suelen decir. Este proceso es relativamente complicado, y el principio de compilación es muy complicado, no lo explicaré aquí.
Inserte la descripción de la imagen aquí
Pero se puede ver que el lenguaje informático, como un protocolo para que los programadores controlen el trabajo de una computadora, tiene tres elementos del protocolo.

  • La gramática significa que esta sección de contenido debe cumplir con ciertas reglas y formatos. Por ejemplo, los paréntesis deben emparejarse y los puntos y comas deben usarse al final.
  • La semántica significa que este contenido debe representar un cierto significado. Por ejemplo, los números menos los números tienen sentido, pero los números menos el texto generalmente no tienen sentido.
  • El orden es qué hacer primero y luego qué hacer. Por ejemplo, puede agregar un cierto valor y luego restar un cierto valor.

Conociendo el lenguaje de la computadora, puede enseñarle a una computadora a completar su trabajo. ¡Felicitaciones, comience!

Sin embargo, para construir una torre en el mundo de Internet, no es suficiente enseñarle a una máquina qué hacer, sino que debe aprender a enseñarle a un gran grupo de máquinas qué hacer. Esto requiere un protocolo de red. Solo a través de un protocolo de red puede un gran grupo de máquinas colaborar entre sí y lograr una cosa juntos.

En este momento, puede preguntar, ¿cómo se ve el protocolo de red, tan mágico, qué puede hacer? Déjame tomar un ejemplo simple para que lo pruebes y luego hablar sobre algo importante.

Cuando desea comprar un producto, la forma normal es abrir el navegador e ingresar la dirección del sitio web de compras. El navegador te mostrará una página colorida.

¿Alguna vez has pensado profundamente en cómo los navegadores hacen esto? La razón por la que puede mostrar páginas coloridas es porque recibió un "algo" del protocolo HTTP. Utilizo NetEase Koala como ejemplo, el formato es el siguiente:

HTTP/1.1 200 OK
Date: Tue, 27 Mar 2018 16:50:26 GMT
Content-Type: text/html;charset=UTF-8
Content-Language: zh-CN
<!DOCTYPE html>
<html>
<head>
<base href="https://pages.kaola.com/" />
<meta charset="utf-8"/> <title> 网易考拉 3 周年主会场 </title>

¿Cumple esto con los tres elementos del acuerdo? Déjame mostrarte.

  • Primero, se ajusta a la gramática, es decir, el navegador solo lo reconoce en el formato anterior. Por ejemplo, arriba es estado, luego encabezado, luego contenido.
  • En segundo lugar, está de acuerdo con el significado de la semántica, es decir, de acuerdo con el significado acordado. Por ejemplo, el estado 200 significa que la página web vuelve con éxito. Si no tiene éxito, es nuestro "404" común.
  • Tercero, en orden, su navegador envía una solicitud HTTP, y luego está la cadena de HTTP devuelta anteriormente.

El navegador obviamente hizo lo acordado en el acuerdo, y la última página colorida apareció frente a usted.

Doble once historia

¿Cuáles son nuestros protocolos de red de uso común?

A continuación, revele la gran cosa que quiero decir, "Double Eleven". ¿Qué tiene esto que ver con el protocolo de red del que vamos a hablar?

En el campo de la economía, hay una "Pencil Story" de Leonard E. Read. Esta historia cuenta la compleja teoría económica a través del proceso de nacimiento de un lápiz. Aquí, también utilizo un proceso de hacer pedidos para ver qué protocolos de red se utilizan durante el funcionamiento del mundo de Internet.

Primero https://www.kaola.comlo ingresas en el navegador , esta es una URL. El navegador solo sabe que el nombre es " www.kaola.com", pero no conoce la ubicación específica, por lo que no sabe cómo acceder a ella. Entonces, abre la libreta de direcciones para buscar. Puede usar el protocolo general de la libreta de direcciones DNSpara buscar, también puede usar otro protocolo de búsqueda de libreta de direcciones más preciso HTTPDNS.

No importa qué método use para buscar, eventualmente obtendrá esta dirección: 106.114.138.24. Esta es una dirección IP y el "número de casa" del mundo de Internet.

Conociendo la dirección de destino, el navegador comienza a empaquetar su solicitud. Para las solicitudes de navegación ordinarias, a menudo se usa el protocolo HTTP; pero para las solicitudes de compra, a menudo se requiere la transmisión encriptada, por lo que se usa el protocolo HTTPS. No importa qué tipo de acuerdo diga "qué quiere comprar y cuánto comprar".
Inserte la descripción de la imagen aquí
Se llaman las capas donde residen DNS, HTTP y HTTPS 应用层. Después de ser encapsulado por la capa de aplicación, el navegador entregará el paquete de la capa de aplicación a la siguiente capa para completar, a través de la programación del socket. La siguiente capa es la capa de transporte. La capa de transporte tiene dos protocolos, uno es el protocolo UDP sin conexión y el otro es el protocolo TCP orientado a la conexión. Para el pago, a menudo se usa el protocolo TCP. El llamado TCP orientado a la conexión asegurará que este paquete pueda llegar al destino. Si no se puede alcanzar, se reenviará hasta que llegue.

Habrá dos puertos en el protocolo TCP, uno es el puerto donde escucha el navegador y el otro es el puerto donde escucha el servidor de comercio electrónico. El sistema operativo a menudo usa el puerto para determinar para qué proceso debe recibir el paquete.
Inserte la descripción de la imagen aquí
Después de encapsular la capa de transporte, el navegador entrega el paquete a la capa de red del sistema operativo. El protocolo en la capa de red es el protocolo IP. En el protocolo IP, habrá una dirección IP de origen (es decir, la dirección IP de la máquina donde se encuentra el navegador) y una dirección IP de destino (es decir, la dirección IP del servidor donde se encuentra el sitio web de comercio electrónico).
Inserte la descripción de la imagen aquí
Ahora que el sistema operativo conoce la dirección IP de destino, comienza a pensar en cómo encontrar la máquina de destino en función de este número de casa. El sistema operativo a menudo juzga si la dirección IP de destino es local o extranjera. Si es un local, se puede ver desde el número de la casa, pero obviamente el sitio web de comercio electrónico no es local, sino en un lugar remoto.

El sistema operativo sabe que debe abandonar el área local y llegar lejos. Aunque no sé dónde estoy en la distancia, puedo hacer una analogía: si quieres ir a la aduana, tienes que ir a la puerta de enlace. Cuando se inicia el sistema operativo, la dirección IP se configura mediante el protocolo DHCP y la dirección IP de la puerta de enlace predeterminada es 192.168.1.1.

¿Cómo envía el sistema operativo la dirección IP a la puerta de enlace? La comunicación local se basa básicamente en el rugido, por lo que el sistema operativo ruge, ¿quién es 192.168.1.1? La puerta de entrada responderá, y estoy, mi dirección local está en el este del pueblo. Esta dirección local es la dirección MAC, y el rugido es el protocolo ARP.
Inserte la descripción de la imagen aquí
Entonces, el sistema operativo entrega el paquete IP a la siguiente capa, que es la capa MAC. La tarjeta de red vuelve a enviar el paquete. Debido a que este paquete tiene una dirección MAC, puede llegar a la puerta de enlace.

Después de recibir el paquete, la puerta de enlace juzgará su próximo paso en función de su propio conocimiento. La puerta de enlace suele ser un enrutador, y la forma de llegar a una dirección IP se denomina tabla de enrutamiento.

El enrutador es un poco como las puertas de la ciudad de los países que Xuan Zang pasa al oeste. Cada puerta de la ciudad está conectada a dos países. Cada país es equivalente a una red de área local. Dentro de cada país, puede usar la dirección local MAC para la comunicación.

Una vez que cruzas la puerta de la ciudad, debes sacar el encabezado IP, que dice que el monje pobre es de la dinastía Tang Oriental (es decir, la dirección IP de origen), y quiere ir al oeste para adorar al Buda (refiriéndose a la dirección IP objetivo). Al pasar la tierra del tesoro, pasar la noche, a partir de mañana, ¿puedo preguntar cómo ir después?
Inserte la descripción de la imagen aquí
La puerta de la ciudad a menudo conoce este "conocimiento", porque la puerta de la ciudad y la puerta de la ciudad vecina también se comunican con frecuencia. A dónde ir y cómo ir, este protocolo de comunicación se llama protocolo de enrutamiento, y OSPF y BGP se usan comúnmente.
Inserte la descripción de la imagen aquí
Hay un país entre la puerta de la ciudad y la puerta de la ciudad. Cuando el paquete de red sabe a qué puerta de la ciudad ir después, todavía necesita usar la dirección MAC dentro del país. Encuentre la próxima puerta de la ciudad a través de la dirección MAC de la siguiente puerta de la ciudad, y luego pregunte la siguiente carretera. Ve hasta que salgas de la última puerta de la ciudad.

La última puerta de la ciudad sabe a dónde va este paquete de red. Entonces, gritando a este país, ¿quién es el IP objetivo? El servidor de destino responderá con una dirección MAC. Una vez que se borra el paquete de red, se puede encontrar el servidor de destino a través de esta dirección MAC.

El servidor de destino encuentra que la dirección MAC coincide, elimina el encabezado MAC y lo envía a la capa de red del sistema operativo. Cuando la IP coincide, se elimina el encabezado de IP. El encabezado IP escribirá una capa de protocolo TCP encapsulado, y luego se lo dará a la capa de transporte, es decir, la capa TCP.

En este nivel, para cada paquete recibido, habrá un paquete de respuesta que indica el recibo. Este paquete de respuesta no es el resultado de esta solicitud de pedido, como si la compra fue exitosa y cuánto dinero se dedujo, etc., pero es solo una explicación de la capa TCP, es decir, la respuesta después de la recepción. Por supuesto, esta respuesta volverá en la dirección que acaba de llegar e informará una caja fuerte.

Porque una vez fuera del país, el camino hacia el oeste está en peligro. Si en el proceso, el paquete de red se pierde, por ejemplo, en el desierto, ¿o qué hacer si los ladrones lo roban y lo matan? Entonces es hora de reportar la paz.

Si no llega después de un período de tiempo, la capa TCP en el extremo de envío reenviará el paquete o el proceso anterior, hasta que un día llegue una respuesta de forma segura. Este reintento no implica que su navegador vuelva a solicitar la acción de realizar un pedido. Para el navegador, se envió una solicitud de pedido y la capa TCP siguió intentando volver a intentarlo. A menos que haya un problema con la capa TCP, como una conexión interrumpida, es la capa de aplicación del navegador la que reenvía la solicitud de pedido.

Después de que el paquete de red llega a la capa TCP de manera segura, hay un número de puerto de destino en el encabezado TCP. A través de este número de puerto, puede encontrar que el proceso del sitio web de comercio electrónico está escuchando en este número de puerto. Suponga que un Tomcat envía este paquete al sitio web de comercio electrónico.
Inserte la descripción de la imagen aquí
El proceso del sitio web de comercio electrónico obtiene el contenido de la solicitud HTTP y sabe qué comprar y cuánto comprar. A menudo, el Tomcat que inicialmente recibe una solicitud de un sitio web de comercio electrónico es solo una recepcionista responsable de coordinar y procesar esta solicitud, en lugar de hacer todo por sí mismo. Por ejemplo, la recepcionista debe indicar el proceso de gestión de pedidos, registrarse para comprar un determinado producto, cuánto comprar, indicar el proceso de gestión de inventario, cuánto debe reducirse el inventario, indicar el proceso de pago, cuánto debe pagarse, etc.

¿Qué pasa si le cuenta el proceso relevante? A menudo se implementa a través de llamadas RPC, es decir, llamadas a procedimientos remotos. La llamada a procedimiento remoto es cuando se le informa al proceso de gestión de pedidos, la recepcionista no necesita preocuparse por los problemas de interconexión de red intermedia y será manejada por el marco RPC. Existen muchos tipos de marcos RPC, algunos se basan en el protocolo HTTP y se colocan en paquetes HTTP, y otros se encapsulan directamente en paquetes TCP.

Cuando la recepcionista encuentra que los departamentos correspondientes han finalizado el procesamiento, responde con un paquete HTTPS para informar el pedido exitoso. Este paquete HTTPS llegará a su computadora personal después de todo tipo de dificultades y peligros como lo hizo cuando llegó, y finalmente ingresará al navegador, mostrando que el pago fue exitoso.

Resumen

Como puede ver, un simple proceso de pedido involucraba tantos acuerdos. Y administrar un gran conjunto de máquinas es un asunto particularmente técnico. Además, las tecnologías como la computación en la nube, los contenedores y los microservicios, que son más populares recientemente, también requieren varios acuerdos para lograr la cooperación entre máquinas a gran escala.

Enumeraré los protocolos de red de los que hablaré más adelante, y luego hablaré sobre ellos de abajo hacia arriba.
Inserte la descripción de la imagen aquí
La historia de "Double Eleven" anterior es solo para darle un marco general. Hay algunos acuerdos en ella, que ya he mencionado en la historia, y algunos aún no se han mencionado. En el último capítulo de este curso, cuando se hayan contado todos los acuerdos, volveré a contar la historia y comprenderán más detalles cuando llegue el momento.

Finalmente, después de terminar esta sección, te dejo una pregunta.

Cuando el paquete de red llega a una puerta de la ciudad, puede obtener la dirección IP de la siguiente puerta de la ciudad a través de la tabla de enrutamiento, y puede encontrarla directamente por la dirección IP. ¿Por qué necesita pasar la dirección MAC local?

Publicado 40 artículos originales · ganado elogios 1 · vistas 4977

Supongo que te gusta

Origin blog.csdn.net/aha_jasper/article/details/105525960
Recomendado
Clasificación