RFC 768 J. Postel ISI 28 de Agosto de 1980 PROTOCOLO DE DATAGRAMAS DE USUARIO (Traducción al castellano: Diciembre de 1999) (Por Domingo Sánchez Ruiz ) Introducción Este Protocolo de Datagramas de Usuario (UDP: User Datagram Protocol) se define con la intención de disponer de un tipo de datagramas para la comunicación por intercambio de paquetes entre ordenadores en el entorno de un conjunto interconectado de redes de computadoras. Este protocolo asume que el Protocolo de Internet (IP: Internet Protocol) [1] se utiliza como protocolo en el nivel inferior. Este protocolo aporta un procedimiento para que los programas de aplicación puedan enviar mensajes a otros programas con un mínimo de mecanismo de protocolo. El protocolo se orienta a transacciones, y tanto el envío como la protección ante duplicados no se garantizan. Las aplicaciones que requieran un envío fiable y ordenado de secuencias de datos deberían utilizar el Protocolo de Control de Transmisión (TCP: Transmission Control Protocol). [2] Formato 0 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | Puerto de | Puerto de | | Origen | Destino | +--------+--------+--------+--------+ | | Suma de Control | | Longitud | de Cabecera | +--------+--------+--------+--------+ | | octetos de datos ... +---------------- ... Formato de la Cabecera del Datagrama de Usuario (UDP) J. Postel [Pág. 1] RFC 768 Protocolo de Datagramas de Usuario 28 de Agosto de 1980 Campos El campo Puerto de Origen es opcional, cuando tenga sentido, pues indica el puerto del proceso que envía el mensaje, y puede que se asuma que ése sea el puerto al cual la respuesta debería ser dirigida en ausencia de otra información. Si no se utiliza, se inserta un valor cero. El campo Puerto de Destino tiene significado dentro del contexto de una dirección particular del entorno internet. El campo Longitud representa la longitud en octetos de este datagrama de usuario, incluyendo la cabecera y los datos. (Esto implica que el valor mínimo del campo Longitud es ocho.) El campo Suma de Control de Cabecera (Checksum) es el complemento a uno de 16 bits de la suma de los complementos a uno de las palabras de una pseudo-cabecera de información obtenida a partir de la cabecera IP, la cabecera UDP y los datos, y rellenada con octetos de valor cero en la parte final (si es necesario) hasta tener un múltiplo de dos octetos. La pseudo-cabecera que imaginariamente antecede a la cabecera UDP contiene la dirección de origen, la dirección de destino, el protocolo y la longitud UDP. Esta información proporciona protección contra datagramas mal enrutados. Este procedimiento de comprobación es el mismo que el utilizado en TCP. 0 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | dirección de origen | +--------+--------+--------+--------+ | dirección de destino | +--------+--------+--------+--------+ | cero |protocol| longitud UDP | +--------+--------+--------+--------+ Si la suma de control de cabecera calculada es cero, se transmite como formada por todo unos (el equivalente en la aritmética del complemento a uno). Un valor de la suma de control trasmitido como todo ceros significa que el el emisor no generó la suma de control (útil para depuración o para protocolos de más alto nivel que esto les sea indiferente). Interfaz de Usuario Un interfaz de usuario debería permitir J. Postel [Pág. 2] RFC 768 Protocolo de Datagramas de Usuario 28 de Agosto de 1980 la creación de nuevos puertos de recepción, recibir operaciones en los puertos de recepción que devuelvan los octetos de datos y una indicación de la dirección de origen y de la dirección de destino, y una operación que permita enviar un datagrama, especificando los datos y los puertos y direcciones de origen y de destino a enviar. Interfaz IP El módulo UDP debe ser capaz de determinar las direcciones de origen y destino en el entorno Internet así como el campo de protocolo de la cabecera del protocolo Internet. Un posible interfaz UDP/IP devolvería el datagrama de Internet completo, incluyendo toda la cabecera, en respuesta a una operación de recepción. Una interfaz de este tipo permitiría también al módulo UDP pasar un datagrama de internet completo con cabecera al módulo IP para ser enviado. IP verificaría ciertos campos por consistencia y calcularía la suma de control de la cabecera del protocolo internet. Aplicación del Protocolo Los usos principales de este protocolo son el Servidor de Nombres de Internet [3] y la Transfernencia Trivial de Ficheros (Trivial File Transfer Protocol) [4]. Número del protocolo Este es el protocolo 17 (21 en octal) cuando se utilice en el Protocolo de Internet. Otros números de protocolos se listan en [5]. Referencias [1] Postel, J., "Internet Protocol," RFC 760, USC/Information Sciences Institute, Enero de 1980. [2] Postel, J., "Transmission Control Protocol," RFC 761, USC/Information Sciences Institute, Enero de 1980. [3] Postel, J., "Internet Name Server," USC/Information Sciences Institute, IEN 116, Agosto de 1979. J. Postel [Pág. 3] RFC 768 Protocolo de Datagramas de Usuario 28 de Agosto de 1980 [4] Sollins, K., "The TFTP Protocol," Massachusetts Institute of Technology, IEN 133, Enero de 1980. [5] Postel, J., "Assigned Numbers," USC/Information Sciences Institute, RFC 762, Enero de 1980. J. Postel [Pág. 4]