Protocolo TCP de análisis de captura de paquetes

El protocolo TCP es un protocolo de comunicación de la capa de transporte basado en flujo de bytes, confiable y orientado a la conexión en la capa de transporte.

Preparación ambiental

Las herramientas de prueba de interfaz se pueden clasificar en las siguientes categorías:

Herramientas de rastreo de redes: tcpdump, wireshark
Herramientas de proxy: fiddler, charles, anyproxyburpsuite, mitmproxy
Herramientas de análisis: curl, postman, chrome Devtool

Captura de paquetes y análisis del protocolo TCP.

tcpdump
tcpdump es una herramienta que intercepta completamente el "encabezado" de los paquetes de datos transmitidos en la red y proporciona análisis. Admite el filtrado por capa de red, protocolo, host, red o puerto, y proporciona declaraciones lógicas como y, o, para no eliminar información inútil.

Deje que tcpdump escuche el puerto 443 todo el tiempo e introdúzcalo en el archivo de registro si hay alguna anomalía.

sudo tcpdump port 443 -v -w /tmp/tcp.log

Con este comando, el informe obtenido se colocará  /tmp/tcp.log en el directorio.

Parámetros comunes significado
puerto 443 Escuche en el puerto 443
-v generar información más detallada
-w escribir datos para iniciar sesión

Wireshark
Wireshark también es una herramienta de rastreo de red. Además de la función tcpdump, también tiene funciones más extendidas, como herramientas de análisis. Sin embargo, en la prueba de interfaz, el proceso de captura de paquetes a menudo se lleva a cabo en el servidor, y el servidor generalmente no proporciona una interfaz UI, por lo tanto, Wireshark no puede funcionar en el servidor y solo puede usar tcpdump para capturar paquetes para generar registros y luego importar los registros a Wireshark para analizarlos en el cliente con la interfaz UI.

Protocolo TCP de análisis de captura de paquetes

Obtenga una solicitud de obtención http:

Busque mp3 en Baidu http://www.baidu.com/s?wd=mp3
Utilice tcpdump para interceptar esta solicitud de obtención y genere un registro
Abra el registro generado por tcpdump con wireshark

Utilice Wirehark para ver el registro:

Los primeros datos del registro son el protocolo de enlace de tres vías. Debido a que el canal no es confiable, es necesario asegurarse de que el canal sea estable antes de enviar datos, y el protocolo de enlace de tres vías es como las siguientes operaciones:

El primer apretón de manos: cuando se establece la conexión, el cliente envía un paquete de sincronización (syn = j) al servidor y ingresa al estado SYN_SENT, esperando que el servidor confirme.
El segundo protocolo de enlace: el servidor recibe el paquete syn, debe confirmar el SYN del cliente (ack = j + 1) y al mismo tiempo enviar un paquete SYN (seq = k), es decir, el paquete SYN + ACK, y el El servidor ingresa al estado SYN_RECV en este momento;
El tercer protocolo de enlace: el cliente recibe el paquete SYN + ACK del servidor y envía un paquete de confirmación ACK (ack = k + 1) al servidor. Después de enviar el paquete, el cliente y El servidor ingresa al estado ESTABLECIDO (conexión TCP exitosa) y se da la mano tres veces.

Después de un protocolo de enlace de tres vías, es posible una mayor comunicación, de la siguiente manera:

Al final del intercambio, también se requieren cuatro movimientos de manos:

La primera ola: el cliente envía un FIN al servidor, solicitando cerrar la transmisión de datos.
Segunda ola: el servidor recibe el FIN del cliente y envía un ACK al cliente, donde el valor del reconocimiento es igual a FIN + SEQ.
Tercera ola: el servidor envía un FIN al cliente, indicándole a la aplicación cliente que se cierre.
La cuarta ola: el cliente recibe el FIN del servidor y responde un ACK al servidor. El valor de ack es igual a FIN+SEQ.
Nota: Una solicitud se puede dividir en varios paquetes, al igual que un dato, por lo que verá muchos paquetes en Wirehark.

Finalmente me gustaría agradecer a todos los que han leído atentamente mi artículo, la reciprocidad siempre es necesaria, aunque no es algo muy valioso, si puedes usarlo, puedes quitártelo directamente: [Recoger al final del artículo ]


     [El siguiente es el diagrama del sistema de arquitectura de conocimiento de aprendizaje de ingenieros de pruebas de software más completo + conjunto completo de materiales que compilé en 2023]


1. Desde el inicio hasta el dominio de la programación en Python

2. Proyecto de automatización de interfaz de combate real. 

3. Combate real del proyecto de automatización web


4. Combate real del proyecto de automatización de aplicaciones 

5. Currículum de los fabricantes de primer nivel.


6. Probar y desarrollar el sistema DevOps 

7. Herramientas de prueba automatizadas de uso común

Ocho, prueba de rendimiento de JMeter 

9. Resumen (pequeña sorpresa al final)

La vida es larga, así que añade aceite. Todo esfuerzo no será defraudado, mientras perseveres, al final habrá recompensas. Aprecia tu tiempo y persigue tus sueños. No olvides la intención original, sigue adelante. ¡Tu futuro está en tus manos!

La vida es corta, el tiempo es precioso, no podemos predecir lo que sucederá en el futuro, pero podemos captar el momento presente. Aprecia cada día y trabaja duro para hacerte más fuerte y mejor. ¡Creencia firme, búsqueda persistente y el éxito eventualmente te pertenecerá!

Sólo desafiándote constantemente a ti mismo podrás superarte constantemente. Persiste en perseguir tus sueños y avanza con valentía, y descubrirás que el proceso de lucha es muy hermoso y valioso. Cree en ti mismo, ¡tú puedes hacerlo!  

Supongo que te gusta

Origin blog.csdn.net/nhb687095/article/details/132297781
Recomendado
Clasificación