Una breve discusión sobre protocolos relacionados con la red
El modelo de referencia TCP/IP es el modelo de referencia utilizado por ARPANET, el abuelo de las redes informáticas, y su sucesor, Internet. ARPANET es una red de investigación patrocinada por el Departamento de Defensa de EE. UU. (DoD). Poco a poco, conectó cientos de universidades y departamentos gubernamentales a través de líneas telefónicas alquiladas. Cuando surgieron las redes inalámbricas y los satélites, los protocolos existentes tuvieron problemas para conectarse a ellos, por lo que se necesitaba una nueva arquitectura de referencia. Esta arquitectura se denominó modelo de referencia TCP/IP después de la aparición de sus dos protocolos principales. --Cita de una explicación de la Enciclopedia Baidu.
1. ¿Capa de aplicación, (protocolo http)?
2. Capa de transporte (TCP)
3. Capa de red (ip)
4. Capa de enlace (cable de red, etc.)
?A: 3g 4g 5g ---corresponde a----capa de enlace gt
1. El marco es utilizado Representa la unidad de paquetes en la capa de enlace de datos
2. El segmento es la unidad de datos en IP
3. El segmento representa la información en el flujo de datos Tcp p>
4. El mensaje se refiere a la unidad de datos en el protocolo de aplicación
(Proceso)
El usuario A envía un dato como por ejemplo soy Android: p>
Lo entrega al paquete de la capa Tcp (capa de transporte), agregando el encabezado del paquete Tcp. ?Soy Android (encabezado TCP)
Déjelo en manos de la capa IP (capa de red) para el empaquetado. Adjunte el encabezado del paquete IP. Soy Android (encabezado TCP) (encabezado IP)
Entréguelo a la capa de enlace de datos y agregue el encabezado del paquete Ethernet. Soy Android (encabezado TCP) (encabezado IP) (encabezado Ethernet)
Luego se entrega a la capa física para la transmisión relacionada:
El usuario b recibe el mensaje: p>
Desentrañar capa por capa:
La capa de enlace de datos abre el encabezado Ethernet:?Soy Android (encabezado Tcp) (encabezado ip)
La capa ip (red capa) soy Android (encabezado Tcp)
¿Capa Tcp (capa de transporte)? ¿soy Android?
La capa superior recibe. ?Soy Android.
El propósito de este diseño es seguir el principio de responsabilidad única
TCP es un protocolo confiable orientado a la conexión. Se debe establecer una conexión confiable con la otra parte antes de enviar y recibir. datos. Los 3 pasos para establecer una conexión. 4 apretones de manos y 4 ondas para desconectar. UDP es un protocolo de comunicación sin conexión. Antes de la transmisión de datos, el origen y el terminal no establecen una conexión. El extremo emisor envía los datos a la red lo más rápido posible y el extremo receptor lee los segmentos de mensajes de la cola de mensajes.
La función de la dirección IP es principalmente de direccionamiento. (Dirección IP (capa de red): asigne una dirección lógica a la red o al host y distinga la dirección mac. Cámbiela a voluntad. La dirección mac (enlace de datos) no se puede cambiar)
Por ejemplo:
¿La empresa tiene dos edificios?
Edificio A: Hay una subred de comunicación
Edificio B, hay una subred de comunicación
Hay dos enrutadores. Conecte A (subred de comunicación) y B (subred de comunicación) a la red de área local
A tiene su propia subred compuesta por varias computadoras.
?B también es su propia subred compuesta por múltiples computadoras
Ahora hay una máquina a en el edificio A (dirección IP: 192.168.1.2)
Hay una máquina b en el edificio B (dirección IP: 192.168.1.2)
dirección: 192.167.1.2)
A envía datos a la máquina B:
El paquete de datos llega al enrutador. El paquete de datos actual no es de mi subred, así que lo busco. La subred es 192.167.-----》Envíalo al router correspondiente
¿Cómo sabe que lo está enviando a 192.167.1.2?
En nuestra subred, cada computadora debe guardarse en el enrutador para decirle a otras máquinas cuál es mi dirección IP y mi dirección mac. Luego envíalo al ordenador correspondiente. El enrutador envía una copia a cada computadora, pero cuando la tarjeta de red recibe el paquete de datos, determina si la dirección mac del paquete de datos es la misma que la dirección mac de la máquina. Si no es la misma, se descarta. directamente.
Así que aquí viene un ataque de rastreo de red:
En la misma subred. No permita que la tarjeta de red reciba datos y capture todos los datos adquiridos con anticipación.
Números de puerto estándar establecidos: 0~1023?1024~49151
El programa del servidor establece el número de puerto.
Cliente. El sistema operativo le asignará un rango de 49152-65535.
Así podemos identificar una comunicación a través de los cinco elementos de una dirección IP de origen, dirección IP de destino, número de protocolo, número de puerto de origen y número de puerto de destino.
Aquí nos centramos en TCP:
Características:
Orientado a la conexión,
Fiabilidad,
RTT (Tiempo de ida y vuelta) y RTO (Tiempo de espera de retransmisión)
Clasificación de datos
Control de flujo
Full dúplex
¿Asumimos que? La capa de aplicación tiene una serie de mensajes que se enviarán a través de la red y circularán (capa de transporte, capa de red, etc.). ¿Cómo asegurar que los datos enviados por los usuarios no se pierdan? Aquí necesitamos dividir estos datos grandes. La capa IP los dividirá en partes. En términos generales, Ethernet puede recibir 1046 bytes y luego se dividirá en partes según 1046 bytes. Originalmente era una gran cantidad de datos. Ahora se envía y se corta en muchos pedazos. Si se pierden algunos pedazos en el medio, ¿cómo puedo asegurar que los datos lleguen al extremo opuesto después de eso? Luego, TCP propone mecanismos de tiempo de espera de retransmisión y confirmación de respuesta para garantizar la integridad de los datos. Si el par no ha recibido el mensaje de la otra parte, no esperará para siempre, sino que lo retransmitirá después de un período de tiempo. ¿Cómo determinar este tiempo? El sistema operativo introducirá un mecanismo RTT al diseñar, que es el de ida y vuelta. mecanismo de retardo. Se envía un paquete de datos desde mi extremo al otro extremo y luego se recibe una respuesta del otro extremo. Este tiempo se utiliza como retraso de ida y vuelta. El sistema operativo recalculará su propio RTO interno para el último retraso de ida y vuelta. Este tiempo de espera de retransmisión no está fijo.
Clasificación de datos: después de dividirlos en partes, la otra parte necesita conocer el orden antes de formar un paquete de datos completo, por lo que el protocolo de red lo clasificará en este extremo. para facilitar el montaje completo en el extremo opuesto.
Control de flujo (ventana deslizante): mi par de comunicación tiene diferentes capacidades de procesamiento de datos. El remitente solo envía, pero es posible que el par necesite realizar algún procesamiento después de recibir, por lo que los datos recibidos pueden no ser tan capaces como los de mi interlocutor. El tuyo. El remitente envía rápidamente, por lo que existe un mecanismo. El mensaje de respuesta o el mensaje de envío le dirán al otro extremo cuántos datos puedo recibir a la vez.
Full dúplex: entre los dos pares de comunicación, el receptor y el servidor pueden enviar y recibir datos del par al mismo tiempo.
Cliente (conectar):
1. Primero envíe un mensaje SYN al servidor (SYN = 1 seq = 23412). Estado del cliente: SYN_SENT
2. Después de recibir el mensaje, el servidor responde en consecuencia al cliente (SYN = 1. ACK = 1, ack?= 23413 seq = 6478) Estado del servidor: SYN_RCVD
3. Después de recibir el mensaje, el cliente verifica: ¿El ACK es 1? ¿El ACK es 23413? El cliente confirma que el servidor ha recibido mi mensaje SYN = 1 seq = 23412. Responder al servidor
4. El cliente responde al servidor ACK = 1, ack =6479, ?Estado del cliente: ESTABLECIDO
5. El servidor recibe el mensaje del cliente. Estado del servidor: ESTABLECIDO
TCP está orientado a la conexión, por lo que ambas partes deben confirmar el establecimiento de la conexión (mantener el número de secuencia).
Ataque de inundación SYN: una gran cantidad de mensajes de ataque con direcciones originales falsificadas se envían a través del puerto donde se encuentra la red, lo que provoca que la cola de conexión medio abierta en el servidor se llene, impidiendo así que otros usuarios de acceder.
Principio: el cliente atacante utiliza una dirección IP falsificada para enviar una solicitud al servidor (el primer apretón de manos y el mensaje de respuesta del servidor nunca se enviarán al cliente real, y el servidor está esperando el client El servidor consume recursos mientras espera esta conexión medio abierta. Si hay decenas de miles de conexiones de este tipo, los recursos del host se agotarán, logrando así un ataque,
Solución:
1. Versión de monitoreo de conexión no válida
2. Retraso en el método de asignación de TCB
3. Firewall
La primera vez que el cliente envía una solicitud de cierre. , FIN = 1 seq = 98745-----gt; cliente: Fin_wait_1
El cliente responde: ACK = 1 ack= 98756 ---CLOSE_WAIT?
El cliente recibe la solicitud del servidor ------》Cliente?Fin_wait_2
El servidor envía el mensaje FIN = 1 seq = 76432 ------》CLOSE
El el cliente recibe la solicitud del servidor--------》TIME_WAITING respuesta ACK = 1 ?ack = 76433 ?
Servidor--------CERRADO
¿El TIME_WAITING del cliente dura un tiempo?: 2 * MSL------gt; Cliente CERRADO
Porque Tcp es full-duplex (el cliente y el servidor pueden enviar y recibir solicitudes de cada uno otro), por lo que ambas partes deben confirmar el cierre y la conexión.
MSL: la vida máxima del segmento (el tiempo máximo de supervivencia está definido por RFC 2 minutos (sistema TIME_WAITING real 1-). 4min
El servidor envía el mensaje--->El cliente necesita responder. La red se pierde y el servidor reenvía
Conflicto:
. A: ¿Puerto 8080?
B: Puerto 8080
Si A se cierra inmediatamente, se recibe la solicitud de B pero el servidor aún la envía, pero B no la recibe.
Wireshark ?tcpdump.