Tcp

Herramienta de captura: Wireshark (detallado con análisis de datos de protocolo de enlace de tres vías de TCP)

Capture Tool Wireshark

Introducción detallada del uso de funciones
wirehark (sitio oficial de descarga: Http://www.wireshark.org/) se utiliza para obtener paquetes de datos de red, que pueden interceptar varios paquetes de red y mostrar información detallada de los paquetes de red, incluidos http, TCP, UDP y otros paquetes de protocolos de red. Nota: Wireshark solo puede ver el paquete, no el contenido del paquete, o enviar el paquete.

Primero, inicie la interfaz
Inicie la interfaz, como se muestra en la Figura 1:



Figura 1 (interfaz de inicio de Wireshark)



Haga clic en Caputre-> Interfaces, aparece el cuadro de diálogo que se muestra en la Figura 2, seleccione la tarjeta de red que necesita capturar el paquete de red, haga clic en el botón de inicio para comenzar a capturar paquetes.



Nota: Si hace clic en las interfaces, aparecerá el mensaje de la siguiente manera: 'No hay interfaces en las que se pueda realizar una captura'. -> Solución: ejecutar como administrador

Figura 2 (interfaces de captura)

En segundo lugar, la introducción de la interfaz de ventana.
Como se muestra en la Figura 3, es la interfaz de la ventana después de capturar el paquete y la descripción de la interfaz agregada por sí misma:
imagen



Figura 3 (ventana de Wireshark)

1, filtro (introducción a las reglas de filtrado)
Es muy importante utilizar el filtrado. Hay mucha información redundante en los datos capturados, por lo que la función de filtrado nos ayudará a filtrar los paquetes que no cumplen y mejorar la eficiencia de nuestro análisis.

Hay dos tipos de filtros:

1) El filtro de visualización, que es el Filtro de la Figura 3, se utiliza para filtrar los registros necesarios que se encuentran en los registros capturados. Después de filtrar, puede hacer clic en el botón Guardar y luego agregar un botón de datos recién guardado en la barra de filtros.

tal como:

Tcp-> solo muestra los registros del protocolo TCP

Http-> solo mira el registro del protocolo HTTP

Ip.src == 192.168.1.102 -> muestra el registro con la dirección de origen 192.168.1.102

Ip.dst == 192.168.1.102 -> el registro cuya dirección de destino es 192.168.1.10

Ip.addr == 42.121.252.58 -> solo muestra la comunicación con un host

Tcp.port == 80-> el puerto es 80

Tcp.srcport == 80 -> solo muestra que el puerto de origen del protocolo TCP es 80

Http.request.method == 'GET' -> solo muestra el método HTTP GET

Eth.type == 0x806-> Mostrar solo paquetes ARP. El valor de este campo indica que es un paquete ARP. Si es un paquete ip, el valor es 0x8000.

Nota: Si no se puede recordar el valor después de Tipo, puede seleccionarlo en Expresión, como se muestra en la Figura 4:

Figura 4 (configuración de expresión)

2) Captura -> Filtros de captura, que se utilizan para filtrar los paquetes capturados para evitar capturar demasiados registros.

2, la lista de paquetes (Panel de lista de paquetes)
El panel de la lista de paquetes muestra el número, la marca de tiempo, la dirección de origen, la dirección de destino, el protocolo, la longitud y la información del paquete. Puede ver que los diferentes protocolos se muestran en diferentes colores. Por supuesto, también puede modificar las reglas para mostrar colores en Ver -> Reglas de coloración.

3, detalles del paquete (Panel de detalles del paquete)
Ésta es la información más importante que se utiliza para ver cada campo del protocolo. El modelo OSI de siete capas es: capa física, capa de enlace de datos, capa de red, capa de transporte, capa de sesión, capa de presentación y capa de aplicación.

En la información del paquete, el significado correspondiente de cada línea y la relación correspondiente en el modelo OSI son los siguientes:

Marco: descripción general del marco de datos de la capa física -> Correspondiente a la [capa física] en el modelo de siete capas OSI

Ethernet II: información del encabezado de la trama de la capa de enlace de datos -> correspondiente a la [capa de enlace de datos] en el modelo de siete capas OSI

Protocolo de Internet versión 4: información del encabezado del paquete IP de la capa de Internet -> Modelo OSI de siete capas correspondiente [capa de red]

Protocolo de control de transmisión: la información del encabezado del segmento de datos de la capa de transporte T, aquí está la [capa de transporte] en el TCP-> correspondiente modelo OSI de siete capas.

Protocolo de transferencia de hipertexto: información de la capa de aplicación, aquí está el protocolo HTTP -> correspondiente a la [capa de aplicación] en el modelo de siete capas OSI

El significado detallado de cada capa del paquete es el siguiente:

El siguiente análisis de paquetes de datos proviene del blog: https://my.oschina.net/u/1585857/blog/479306

(1) Descripción general del marco de datos de la capa física

Trama 5: 268 bytes en el cable (2144 bits), 268 bytes capturados (2144 bits) en la interfaz 0 # 5 trama, línea 268 bytes, en realidad captura 268 bytes

|_+_|

[Cadena de reglas para colorear: http || tcp.port == 80] #Cadena de visualización de la regla de coloración

(2) Información del encabezado de la trama Ethernet de la capa de enlace de datos

Ethernet II, Src: Giga-Byt_c8: 4c: 89 (1c: 6f: 65: c8: 4c: 89), Dst: Tp-LinkT_f9: 3c: c0 (6c: e8: 73: f9: 3c: c0)

Destino: Tp-LinkT_f9: 3c: c0 (6c: e8: 73: f9: 3c: c0) # Dirección MAC de destino

|_+_|

(3) Información del encabezado del paquete IP de la capa de Internet

Protocolo de Internet versión 4, Src: 192.168.0.104 (192.168.0.104), Dst: 61.182.140.146 (61.182.140.146)

Versión: 4 # Protocolo de Internet IPv4

|_+_|

(4) Información del encabezado del segmento de datos TCP de la capa de transporte

Protocolo de control de transmisión, Puerto Src: 51833 (51833), Puerto Dst: http (80), Seq: 1, Ack: 1, Len: 214

Puerto de origen: 51833 (51833) #

|_+_|

Combinación de datos de captura de paquetes para analizar el proceso de protocolo de enlace de tres vías de TCP
1. Primero, debe conocer el proceso de protocolo de enlace de tres vías de TCP, como se muestra en la Figura 5:

imagen

Figura 5 (proceso de protocolo de enlace de tres vías de TCP)

La Enciclopedia Baidu explica el proceso de protocolo de enlace de tres vías de TCP de la siguiente manera:

Primer protocolo de enlace: al establecer una conexión, el cliente envía un paquete de sincronización (syn = j) al servidor y entra en el estado SYN SENT, esperando que el servidor confirme SYN: es la sincronización de números de secuencia

El segundo apretón de manos: el servidor recibe el paquete syn, debe confirmar el SYN del cliente (ack = j + 1), y también envía un paquete SYN (syn = k), es decir, el paquete SYN + ACK, y el servidor entra en el estado SYN RECV.

El tercer protocolo de enlace: el cliente recibe el paquete SYN + ACK del servidor y envía un paquete de reconocimiento ACK (ack = k + 1) al servidor. Después de que se envía el paquete, el cliente y el servidor ingresan al estado ESTABLECIDO y lo completan tres veces. Apretón de manos.

2. Sea claro que el contenido específico del paquete TCP se muestra en la Figura 6: (El contenido específico del paquete TCP es del blog: http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html)
imagen
Figura 6 (contenido específico del paquete TCP)

3, el siguiente ejemplo utiliza el proceso de protocolo de enlace de tres vías tcp en wirehark:

1) Después de abrir Wireshark, ingrese la dirección de acceso en el navegador: http://www.cnblogs.com/Chilam007/, Wireshark captura automáticamente el paquete de datos y luego filtra los datos que deben analizarse. Aquí está el registro que filtra la comunicación con el anfitrión.

La regla de filtrado es: ip.addr == 116.211.169.93, y los datos filtrados se muestran en la Figura 7.
imagen

Figura 7 (visualización de paquetes filtrados, Nota: no sé por qué el paquete está duplicado aquí)

574 tramas son el cliente envía una solicitud TCP al servidor para establecer una conexión. El identificador es SYN.

La trama 619 es un proceso en el que el servidor responde al cliente con un paquete de confirmación después de recibir la solicitud. El identificador es SYN, ACK.
620 tramas son el proceso por el cual el cliente responde al servidor enviando un paquete de reconocimiento y establecerá una conexión en el servidor. El identificador es ACK.

663 marcos son el proceso mediante el cual el cliente envía el contenido de la solicitud HTTP al servidor. La identificación es GET.

La trama 667 es el proceso mediante el cual el servidor responde a la solicitud del cliente y recibe la solicitud. El identificador es ACK.

El marco 674 es el proceso mediante el cual el servidor responde al cliente.

2) Análisis de protocolo de enlace de tres vías de TCP:

El primer paquete de reconocimiento, el cliente envía un TCP, la bandera es SYN, el número de serie es 0, en nombre de la solicitud del cliente para establecer una conexión, como se muestra en la Figura 8.
imagen

Figura 8 (primer apretón de manos)

Para el segundo protocolo de enlace, el servidor devuelve el paquete de reconocimiento con el bit de bandera SYN, ACK. Establezca el Número de reconocimiento en el I S N del cliente más 1 en 0 + 1, como se muestra en la Figura 9.
imagen

Figura 9 (segundo apretón de manos)

El paquete de datos del tercer protocolo de enlace, el cliente envía de nuevo un paquete de reconocimiento (ACK). El bit de bandera SYN es 0, el bit de bandera ACK es 1. y el campo de número de secuencia +1 enviado por el servidor se coloca en el campo de determinación y se envía a la otra parte. Y coloque el +1 del ISN en el segmento de datos, como se muestra en la Figura 10.

imagen

Figura 10 (tercer apretón de manos)

Lo anterior es el proceso de protocolo de enlace de tres vías tcp en wirehark.

Reimpreso de https://www.cnblogs.com/Chilam007/p/6973990.html