DICT
De Wikipedia, la enciclopedia libre
Nivel de aplicación | DNS, FTP, HTTP, IMAP, IRC, NFS, NNTP, NTP, POP3, SMB/CIFS, SMTP, SNMP, SSH, Telnet, SIP, ver más |
Nivel de presentación | ASN.1, MIME, SSL/TLS, XML, ver más |
Nivel de sesión | NetBIOS, ver más |
Nivel de transporte | SCTP, SPX, TCP, UDP, ver más |
Nivel de red | AppleTalk, IP, IPX, NetBEUI, X.25, ver más |
Nivel de enlace | ATM, Ethernet, Frame Relay, HDLC, PPP, Token Ring, Wi-Fi, STP, ver más |
Nivel físico | Cable coaxial, Cable de fibra óptica, Cable de par trenzado, Microondas, Radio, RS-232, ver más |
* según el Modelo OSI |
DICTionary Network Protocol
El "Dictionary Server Protocol" (DICT) es una transacción TCP basada en petición/respuesta que permite a un cliente acceder a definiciones de diccionario, por medio de bases de datos de lenguajes naturales.
Tabla de contenidos |
[editar] Introducción
El Protocolo DICT fue creado por el DICT Development Group, y está descrito en el RFC 2229 (Request For Comments). Su meta es sobrepasar el protocolo Webster y permitir a los clientes acceder a más diccionarios al mismo tiempo. Habitualmente escucha en el puerto 2628.
[editar] Tokens Utilizados
Los Comandos y las Respuestas están compuestos por caracteres del UCS ISO 10646 utilizando la codificación UTF-8 RFC 2044. Más concretamente, usando las convenciones gramaticales de RFC 822:
(Extraido del RFC 2229)
; ( Octal, Decimal.) CHAR = <any UTF-8 character (1 to 6 octets)> CTL = <any ASCII control ; ( 0- 37, 0.- 31.) character and DEL> ; ( 177, 127.) CR = <ASCII CR, carriage return> ; ( 15, 13.) LF = <ASCII LF, linefeed> ; ( 12, 10.) SPACE = <ASCII SP, space> ; ( 40, 32.) HTAB = <ASCII HT, horizontal-tab> ; ( 11, 9.) <"> = <ASCII quote mark> ; ( 42, 34.) <'> = <ASCII single quote mark> ; ( 47, 39.) CRLF = CR LF WS = 1*(SPACE / HTAB) dqstring = <"> *(dqtext/quoted-pair) <"> dqtext = <any CHAR except <">, "\", and CTLs> sqstring = <'> *(dqtext/quoted-pair) <'> sqtext = <any CHAR except <'>, "\", and CTLs> quoted-pair = "\" CHAR atom = 1*<any CHAR except SPACE, CTLs, <'>, <">, and "\"> string = *<dqstring / sqstring / quoted-pair> word = *<atom / string> description = *<word / WS> text = *<word / WS>
[editar] Comandos
La forma de ejecutar los comandos es la siguiente:
- Se utiliza una Palabra Comando, seguida de cero o más parámetros.
- Los comandos con parámetros deben separar los parámetros entre sí y con el propio comando mediante espacios o caracteres TAB.
- Las lineas de comando deben estar completas con todos los parámetros requeridos, y solamente puede haber un comando en cada linea.
- Cada linea de comando debe terminar con CRLF.
La gramática para los comandos es la siguiente:
command = cmd-word *<WS cmd-param> cmd-word = atom cmd-param = database / strategy / word database = atom strategy = atom
- No hay diferenciación entre mayúsculas y minúsculas.
- Las lineas de comandos no pueden exceder los 1024 caracteres, incluyendo espacios, separadores, caracteres de puntuación y el CRLF.
[editar] Respuestas
Hay 2 tipos de respuesta a los comandos anteriores: de Estado, y de Texto.
- Estado:
Las respuestas de estado indica la réplica del servidor al último comando recibido del cliente. Las lineas de respuesta de estado comienzan con 3 elementos de código alfanumérico, el cual es suficiente para distinguir todas las respuestas. El primer digito de la respuesta indica el éxito, fracaso o proceso del anterior comando (basado generalmente en RFC 640,RFC 821).
1yz - Positive Preliminary reply 2yz - Positive Completion reply 3yz - Positive Intermediate reply 4yz - Transient Negative Completion reply 5yz - Permanent Negative Completion reply
El siguiente digito en el código indica la categoría de la respuesta:
x0z - Syntax x1z - Information (e.g., help) x2z - Connections x3z - Authentication x4z - Unspecified as yet x5z - DICT System (These replies indicate the status of the receiver DICT system vis-a-vis the requested transfer or other DICT system action.) x8z - Nonstandard (private implementation) extensions
La respuesta esperada por cada comando está detallada en la propia especificación del comando. Algunas repsuestas de estado pueden contener parámetros como números o cadenas de caracteres
- Texto:
Antes que el texto, se envía una línea de respuesta de estado, usando un código 1yz, para indicar que el texto vendrá a continuación. El texto se envía como una serie de sucesivas lineas de texto, cada una terminada por CRLF. Para indicar el final del texto, se envía una línea con el código decimal 46 ó ("."). Después de una respuesta de texto, se envía otra respuesta de estado de código 2yz. Las líneas siguen sin poder esceder los 1024 caracteres, contando espacios, separadores, etc. como se apuntó anteriormente.
[editar] Ejemplo de un Cliente DICT
Buscando la palabra widget.
[editar] Más información
Consultando el RFC 2229 (inglés).
[editar] Enlaces externos
Web del DICT Development Group
Bases de datos de diccionarios: