Al capturar los datos enviado por nuestro cliente de echo UDP obteniamos la siguiente secuencia de bytes:
0x0000: 4500 0028 0000 4000 4011 3cc3 7f00 0001 E..(..@.@.<..... 0x0010: 7f00 0001 df38 22b8 0014 fe27 6865 6c6c .....8"....'hell 0x0020: 6f20 7365 7276 6572 o.server
Teniendo en cuenta que el encabezado de un paquete UDP es el siguiente:
(16 bits) | (16 bits) |
(16 bits) | (16 bits) |
(longitud variable). |
Tenemos que:
Puerto origen: df38 (2 bytes)
Puerto destino: 22b8 (2 bytes. 0x22b8 es 8888 en decimal)
Longitud total: 0014 (2 bytes. La longitud total es de 20 bytes, es decir 0x14 en hexadecimal)
Checksum: fe27 (2 bytes)
Datos enviados: 6865 6c6c 6f20 7365 7276 6572 (12 bytes)
Los datos anteriores corresponde al protocolo IP en el que va montada la trama UDP.
0x0000: 4500 0028 0000 4000 4011 3cc3 7f00 0001 E..(..@.@.<..... 0x0010: 7f00 0001
Y su significado es el siguiente:
Versión: 45 (4 bits 1/2 byte, 0100 significa que se está usando la versión IPV4)Longitud del encabezado: 00 (4 bits, 1/2 byte, 0101 es decir 5 en decimal)
Tipo de servicio: 00 (1 bytes)
Longitud total: 0028 (2 bytes, corresponde a una longitude de 40 bytes)
Identificación: 0000 (2 bytes)
Fragment offset: 4000 (2 bytes)
Tiempo de vida: 40 (1 byte)
Protocolo: 11 (1 byte, corresponde al protocolo UDP 17 en decimal)
Checksum de la cabecera: 3cc3 (2 bytes)
Dirección origen: 7f00 0001 (4 bytes, 127.0.0.1)
Dirección destino: 7f00 0001 (4 bytes, 127.0.0.1)
El formato de un paquete IP es el siguiente:
(4 bits) | (4 bits) | (8 bits) | (16 bits) | |
(16 bits) | (3 bits) | (13 bits) | ||
(8 bits) | (8 bits) | (16 bits) | ||
En los posteriores post intentaré analizar cuales son las diferencias al utilizar diferentes protocolos como TCP y diferentes puertos para el cliente de echo.
No hay comentarios:
Publicar un comentario