transporte puertos protocolo modelo capa aplicacion tcp client-server tcpserver handshake handshaking

tcp - puertos - protocolo udp



El protocolo de enlace TCP falla: ¿qué ocurre con la respuesta del servidor? (1)

Usé text2pcap para cargar tu captura en wireshark.

Si habilita la validación de suma de comprobación de TCP y los números de secuencia absoluta, verá una suma de comprobación TCP incorrecta en el paquete SYN-ACK de su chip.

Además, el chip que comienza en la secuencia absoluta número 0 es muy débil.

Estoy construyendo un servidor con el chip ENC28J60 y un PIC18F4620 . El chip está conectado a mi PC a través de ethernet. Actualmente, estoy tratando de configurar la conexión TCP sobre la cual construiré una conexión HTTP más adelante. Nunca he trabajado con TCP antes.

Estoy implementando TCP en el dispositivo integrado solamente, no en la PC.

Después de que se envían las solicitudes ARP necesarias y las respuestas, abro mi navegador, escribo la dirección IP del chip y presiono enter. En wireshark, veo una solicitud TCP 1 con el indicador SYN. Creo que la bandera SYN indica una nueva iniciación del apretón de manos, así que está bien, ¿no?

La respuesta de mi chip 1 tiene habilitada la bandera SYN y ACK. Por lo que entendí , esa es la forma correcta de responder a una solicitud con marca SYN. El número de acuse de recibo que envía el chip es correcto. Ahora, el chip debería recibir una respuesta con el indicador de ACK habilitado, de acuerdo con la misma referencia.

Sin embargo, el proceso parece comenzar de nuevo: la PC envía exactamente el mismo paquete 1 que su primer paquete, solo la ''identificación'' ha cambiado. Programé mi chip para que dejara de responder cuando sigue recibiendo solicitudes SYN en el mismo socket, así que este es el final de la transmisión, en el navegador que leí no se puede llegar al servidor.

Esta conexión se realiza en cuatro tomas al mismo tiempo, todas con el mismo resultado.

Como solo estoy usando mi PC como cliente (y no hay nada de malo en mi puerto / controlador de ethernet), el problema debe ser algo con el servidor y, por lo tanto, con el segundo paquete.

¿Qué pasa con el segundo paquete? Wireshark no marca nada como incorrecto, pero el cliente no envía un ACK.

1: Aquí están los paquetes que handshark recoge:

Client: 3085 > 80 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=8 TSval=0 TSecr=0 SACK_PERM=1 0000 00 13 d4 c6 53 16 00 1a a0 03 c7 21 08 00 45 00 ....S... ...!..E. 0010 00 40 de 48 40 00 80 06 9a e1 c0 a8 00 01 c0 a8 [email protected]@... ........ 0020 00 3c 0c 0d 00 50 88 ab 7e 18 00 00 00 00 b0 02 .<...P.. ~....... 0030 ff ff a1 4f 00 00 02 04 05 b4 01 03 03 03 01 01 ...O.... ........ 0040 08 0a 00 00 00 00 00 00 00 00 01 01 04 02 ........ ...... Server: 80 > 3085 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=8 0000 00 1a a0 03 c7 21 00 13 d4 c6 53 16 08 00 45 00 .....!.. ..S...E. 0010 00 30 88 10 40 00 7f 06 f2 29 c0 a8 00 3c c0 a8 .0..@... .)...<.. 0020 00 01 00 50 0c 0d 00 00 00 01 88 ab 7e 19 70 12 ...P.... ....~.p. 0030 ff ff ef 77 00 00 02 04 05 b4 01 03 03 03 ...w.... ...... Client: 3085 > 80 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=8 TSval=0 TSecr=0 SACK_PERM=1 0000 00 13 d4 c6 53 16 00 1a a0 03 c7 21 08 00 45 00 ....S... ...!..E. 0010 00 40 de 6f 40 00 80 06 9a ba c0 a8 00 01 c0 a8 [email protected]@... ........ 0020 00 3c 0c 0d 00 50 88 ab 7e 18 00 00 00 00 b0 02 .<...P.. ~....... 0030 ff ff a1 4f 00 00 02 04 05 b4 01 03 03 03 01 01 ...O.... ........ 0040 08 0a 00 00 00 00 00 00 00 00 01 01 04 02 ........ ......

Todo esto sucede de manera similar con otros tres puertos de origen del cliente.

A modo de comparación, hice una solicitud a google.com y aquí está la transmisión TCP:

Client: 49562 > 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1 0000 00 1a a0 03 c7 21 08 9e 01 30 ee 69 08 00 45 00 .....!.. .0.i..E. 0010 00 34 32 3f 40 00 80 06 38 ab c0 a8 00 3c 4a 7d .42?@... 8....<J} 0020 84 78 c1 9a 00 50 74 b8 31 9c 00 00 00 00 80 02 .x...Pt. 1....... 0030 20 00 56 f7 00 00 02 04 05 b4 01 03 03 08 01 01 .V..... ........ 0040 04 02 .. Server: 80 > 49562 [SYN, ACK] Seq=0 Ack=1 Win=62920 Len=0 MSS=1430 SACK_PERM=1 WS=64 0000 08 9e 01 30 ee 69 00 1a a0 03 c7 21 08 00 45 00 ...0.i.. ...!..E. 0010 00 34 9e e3 00 00 2e 06 5e 07 4a 7d 84 78 c0 a8 .4...... ^.J}.x.. 0020 00 3c 00 50 c1 9a f4 5e 12 bc 74 b8 31 9d 80 12 .<.P...^ ..t.1... 0030 f5 c8 7a 22 00 00 02 04 05 96 01 01 04 02 01 03 ..z".... ........ 0040 03 06 .. Client: 49562 > 80 [ACK] Seq=1 Ack=1 Win=65536 Len=0 0000 00 1a a0 03 c7 21 08 9e 01 30 ee 69 08 00 45 00 .....!.. .0.i..E. 0010 00 28 32 49 40 00 80 06 38 ad c0 a8 00 3c 4a 7d .(2I@... 8....<J} 0020 84 78 c1 9a 00 50 74 b8 31 9d f4 5e 12 bd 50 10 .x...Pt. 1..^..P. 0030 01 00 af 9e 00 00 00 00 00 00 00 00 ........ ....