Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROCEDIMIENTO En esta prctica se estudiar el protocolo de transporte UDP. Debido a que UDP es simple y no requiere de mucha informacin en su estructura; la prctica es sencilla. En esta prctica, se emplear Wireshark. TAREA A REALIZAR Empiece la captura de paquetes en Wireshark y realice una tarea en la cual el computador local enve y reciba varios paquetes UDP. Por ejemplo, el uso del comando nslookup generar trfico UDP.
Si no tiene posibilidad de generar trfico UDP, se puede utilizar el archivo de trazas de paquetes UDP disponible como resultado de una captura de trfico UDP generado por actividad de DNS en un computador local. 1 Luego de generar el trfico UDP, detenga el proceso de captura en Wireshark, fije el filtro de modo que se muestren solamente paquetes UDP enviados y recibidos por el computador local. Seale uno de estos paquetes UDP y expanda los campos UDP en la ventana de detalles.
Para emplear el archivo generado previamente, emplear en Wireshark la opcin File -> Open y seleccione el archivo udp-wireshark-trace.
Cuando sea necesario, al responder una pregunta se debera tener para referencia un reporte del paquete o paquetes dentro de la traza que se emplea para responder las preguntas. Incluya el reporte para explicar de mejor forma su respuesta.
Para generar un reporte de un paquete emplee File -> Print, luego seleccione Selected packets only, y a continuacin escoger Packet summary line, y seleccione la cantidad mnima de detalles de los paquetes para responder las preguntas: 1. Seleccione un paquete. De este paquete, determine cuntos campos existen en la cabecera UDP. Liste estos campos. Capture una pantalla que muestre estos campos.
Del paquete escogido se puede ver que la cabecera UDP tiene los siguientes campos: 2. Source port Destination port Length Checksum Desde el campo de contenido de un paquete, determine la longitud (en bytes) de cada uno de los campos de la cabecera UDP.
Del paquete escogido se puede presentar la siguiente tabla que muestra la informacin requerida. Campo Source port Destination port Length Checksum Hexadecim al C058 8181 006f 661D Decimal 49240 33153 111 26141 Binario 1100000001011000 1000000110000001 0000000001101111 0110011000011101 2 2 2 2 Tamao (bytes)
3. Qu longitud representa el valor en el campo Length? Verifique su respuesta con un paquete UDP capturado en el computador local. Este campo incluye tanto el encabezado como los datos. (1) De la pregunta dos vemos que el encabezado del paquete capturado para la prctica es de 8 bytes (Source port, Destination port, Length, Checksum) y de la captura de imagen de la pregunta uno vemos que los datos son igual a 103 bytes, sumando nos da 111 bytes que es lo que nos indica el campo Length.
4. Cul es el nmero mximo de bytes que pueden ser incluidos en un payload de UDP? En teora el mximo tamao del payload de UDP sera 65507 bytes. En la prctica esto est limitado por la implementacin del socket en el sistema operativo. Tampoco est claro que sucede cuando se supera este lmite. (2) 5. Cul es el nmero de puerto origen ms grande posible? Ya que el nmero de puerto de origen es un campo de 16 bits el nmero ms grande sera cuando todos los bits estn a uno es decir el nmero sera 11111111111111112=6553510=FFFF16 6. Cul es el nmero de protocolo de UDP? Dar su respuesta tanto en notacin hexadecimal como en decimal. Para responder esta pregunta, probablemente requiera examinar la cabecera IP. Examinando la cabecera del paquete que se muestra en la imagen siguiente se puede identificar que el nmero de protocolo de UDP es: 1116=1710.
7. Busque UDP en Google y determine los campos sobre los cuales se calcula el checksum de UDP. La idea en la que se basa la suma de chequeo de Internet es muy sencilla: se suman todas las palabras de 16 bits que conforman el mensaje y se transmite, junto con el mensaje, el resultado de dicha suma (checksum). Al llegar el mensaje a su destino, el receptor realiza el mismo clculo sobre los datos recibidos y compara el resultado con el checksum recibido. Si cualquiera de los datos transmitidos, incluyendo el mismo checksum, est corrupto, el resultado no concordar y el receptor sabr que ha ocurrido un error.
El checksum se realiza de la siguiente manera: los datos que sern procesados (el mensaje) son acomodados como una secuencias de enteros de 16 bits. Estos enteros se suman utilizando aritmtica complemento a uno para 16 bits y, para generar el checksum, se toma el complemento a uno para 16 bits del resultado. El uso del algoritmo de checksum de Internet en los headers de los protocolos se puede resumir en tres pasos simples. 1. Los octetos adyacentes que se deben verificar con la suma de chequeo deben ser acomodados para formar enteros de 16 bits, luego se calcula la suma complemento a uno de estos enteros (de 16 bits) 2. Para generar el checksum, el campo de checksum del header del PDU que ser transmitido es puesto en cero, luego la suma complemento a uno es calculada sobre los octetos correspondientes y el complemento a uno de esta suma se coloca en el campo de checksum. 3. Para revisar el checksum, la suma es calculada sobre los mismos octetos, incluyendo el campo de checksum. Si el resultado es 16 bits con valor 1 (-0 en aritmtica complemento a uno), el chequeo es correcto. Como un ejemplo sencillo del clculo del checksum supongamos que tenemos tres "palabras" de 16 bits 0110011001100110 0101010101010101 0000111100001111 La suma de las dos primeras palabras sera: 0110011001100110 0101010101010101 1011101110111011 Adicionando ahora la tercera "palabra" al resultado anterior tenemos 1011101110111011 0000111100001111 1100101011001010 La suma complemento a uno se obtiene convirtiendo todos los ceros en unos y todos los unos en ceros. De esta forma la suma complemento a uno de 1100101011001010 sera 0011010100110101. Que vendra a ser el checksum. Al llegar al receptor las cuatro palabras de 16 bits, incluyendo el checksum son sumados y el resultado debe ser 1111111111111111. Si uno de los bits es cero, un error ha sido detectado. (3) 8. Examine un par de paquetes UDP en el cual el primer paquete se enve desde el computador local y el segundo paquete sea una respuesta al primer paquete. Describa la relacin entre los nmeros de puertos en los dos paquetes. A continuacin se muestra la captura de dos paquetes UDP
Los dos puertos sirven para lo mismo que en el TCP: para identificar los puntos terminales de las mquinas origen y destino (4). Para este caso en particular se tiene entonces que se recibe un paquete de la mquina con direccin IP 90.209.84.33 desde el puerto 53849 hacia la mquina local con direccin IP 172.31.13.75 en el puerto 49240, para la respuesta de la mquina local hacia la otra se usan los mismo puertos pero en este caso el puerto de destino se convierte en puerto de envi y viceversa. 9. Capture un paquete UDP. Verifique manualmente el checksum de este paquete. Muestre todos los pasos de este proceso. A continuacin se muestra la captura de pantalla del paquete que se va a analizar (checksum=0xa0e3):
El checksum para UDP se calcula sobre los octetos que componen un seudo-header, el header de UDP y los datos (que se deben completar con ceros al final si es necesario). Se debe recordar tambin los formatos del frame Ethernet, el header IPv4 y el header de UDP: Formato del frame Ethernet (el tamao de los campos est en bytes)
Ahora debemos separar nuestro frame en su componentes: header Ethernet, Header IPv4, Header UDP y Datos Header del frame Ethernet
00 16 44 6a 36 34 00 1e f7 52 67 cc 08 00
Header IPv4
45 00 00 83 4c db 00 00 6d 11 98 32 5a d1 54 21 ac 1f 0d 4b
Header UDP
d2 59 c0 58 00 6f a0 e3
Datos
64 31 3a 61 64 32..
0011 0033
===> Direccin IP origen ===> Direccin IP destino ===> cero + nmero de protocolo + longitud UDP
A continuacin se suma, con aritmtica complemento a uno, el seudo-header + el header UDP + los datos UDP, como palabras de 16 bits
En la aritmtica complemento a uno, cuando una operacin genera un acarreo (carry) en el bit ms significativo, se debe incrementar el resultado
[55EF] [55F0] 0101010111101111 1 0101010111110000
Suma con aritmtica complemento a uno de los datos transportados por UDP
[Hex] Binario [39 f9] 0011100111111001 [01 00] 0000000100000000 [00 01] 0000000000000001 [00 00] 0000000000000000 [00 00] 0000000000000000 [00 00] 0000000000000000 [02 35] 0000001000110101 [30 01] 0011000000000001 [31 03] 0011000100000011 [31 37] 0011000100110111 [36 03] 0011011000000011 [105 6D] 10000010101101101 0000010101101110 [56E] [31 36] 0011000100110110 [38 07] 0011100000000111 [69 6e] 0110100101101110 [2d 61] 0010110101100001 [100 0C] 10000000000001100 0000000000001101 [D] [64 64] 0110010001100100 [72 04] 0111001000000100 [61 72] 0110000101110010 [137 DA] 10011011111011010 0011011111011011 [37DB]
--> 0000010101101101 + 1 =
--> 0000000000001100 + 1 =
--> 0011011111011010 + 1 =
Para calcular el checksum se deben hacer dos cosas ahora, sumar los resultados obtenidos con el seudo-header, el header UDP y los datos y, finalmente, calcular el complemento a uno. 1. Suma de los resultados obtenidos con el seudo-header, el header UDP y los datos
[55 F0] 0101010111110000 [E5 DB] 1110010111011011 [BA B7] 1011101010110111 [1F6 82] 11111011010000010 1111011010000011 [F683]
--> 1111011010000010 + 1 =
El complemento a uno se obtiene convirtiendo todos los ceros en unos y todos los unos en cero. De esta forma, el complemento a uno de 1111011010000011 es 0000100101111100. Que vendra a ser el checksum: el hexadecimal a0 e3
Citas bibliogrficas 1. UDP Protocolo de datagrama de usuario. [En lnea] [Citado el: 13 de Mayo de 2009.] http://mi.ubp.edu.ar/archivosmiubp/MaterialDeEstudio/13/R-II/1497/UDP.pdf. 2. Orlandi, Guido, Tassara, Veira y Agustn, Alejandro. www.fiuba6662.com.ar. [En lnea] 2005. [Citado el: 13 de Mayo de 2009.] http://www.fiuba6662.com.ar/6648/presentaciones/2005/G2/G2_TP2.pdf. 3. Algoritmo de checksum de Internet. [En lnea] [Citado el: 13 de Mayo de 2009.] http://www.arcesio.net/checksum/checksuminternet.html. 4. El protocolo UDP. Herramientas WEB para enseanza de protocolos de comunicacin. [En lnea] [Citado el: 14 de Mayo de 2009.] http://neo.lcc.uma.es/evirtual/cdd/tutorial/transporte/udp.html.
5. Agudelo, Oscar. Clculo del campo de checksum en el header de UDP. arcesio.net. [En lnea] 2003. [Citado el: 14 de Mayo de 2009.] http://www.arcesio.net/checksum/checksumUDP.html.