Member of The Internet Defense League Últimos cambios
Últimos Cambios
Blog personal: El hilo del laberinto Geocaching

Desarrollo de una Herramienta Software para el Acceso a Redes TCP/IP a través de la Red Telefónica Conmutada

Última Actualización: 30 de Junio de 1.996 - Domingo

Capítulo 9:
El Módulo ECHO

Este módulo [RFC862] se sitúa por encima de los niveles TCP y UDP, y su objetivo consiste en retornar de vuelta de cualquier dato que le envíe un proceso remoto. La utilidad de una aplicación así viene determinada por su capacidad para chequear el funcionamiento de las capas inferiores (TCP, UDP, IP, ICMP, etc.) y servir de diagnóstico ante errores.

En síntesis este módulo devuelve cualquier datagrama UDP que se le dirija (puerto siete) y, en cuanto a TCP, acepta cualquier conexión que se le ofrezca (puerto siete, también), retransmite cualquier dato que se le envíe a través de ella y cierra la conexión cuando lo haga la máquina remota. Cuando se establece una conexión TCP se crea un nuevo puerto "LISTEN" para poder aceptar otras conexiones.


Interfaz

La interfaz de este módulo está constituida por un único proceso encargado de toda la inicialización y gestión de eventos.


PROC_ECHO_BC

Los mensajes que este proceso espera recibir son:

  • MSG_INIT

    Este debería ser el primer mensaje. Inicializa el módulo y da de alta el servicio en las capas UDP y TCP. Por tanto este mensaje debería recibirse tras inicializar aquellas.

  • MSG_QUIT

    Este debería ser el último mensaje.

  • MSG_MBUF

    Este mensaje es enviado por las capas UDP o TCP cuando se reciben datos dirigidos a este módulo. Para distinguir si los datos provienen de la capa UDP o de la capa TCP se emplea el campo de remitente (debe ser PROC_UDP_INF o PROC_TCP_INF). Se realizan las gestiones apropiadas según la fuente y se reenvía hacia su origen.

  • MSG_TCP_OPEN

    Este mensaje se recibe cuando un proceso remoto intenta una conexión TCP. EL formato se ha descrito en un capítulo anterior. El proceso simplemente acepta la conexión y abre otro puerto "LISTEN" para aceptar cualquier otra que pudiese llegar.

  • MSG_TCP_CLOSE

    La máquina remota cierra la conexión TCP. Nosotros también la cerramos, dando por concluido el enlace. No es necesario crear un puerto "LISTEN" porque ya se hizo cuando se aceptó la conexión.

  • MSG_TCP_TIMEOUT

    Sencillamente se ignora. La conexión se ha cerrado de forma automática y habíamos creado un "LISTEN" cuando la aceptamos.

  • MSG_ICMP_DEST_UNREACHABLE

    Se puede recibir este mensaje cuando reenviamos un datagrama UDP que habíamos recibido, pero ahora la fuente original no es alcanzable. En ese caso todo lo que hacemos es ignorarlo.


Bibliografía


[RFC768]    RFC768: "User Datagram Protocol"
            Jon Postel
            Agosto 1.981

[RFC793]    RFC793: "Transport Control Protocol"
            Jon Postel
            Septiembre 1.981

[RFC862]    RFC863: "Echo Protocol"
            Jon Postel
            Mayo 1.983



Python Zope ©1996 jcea@jcea.es

Más información sobre los OpenBadges

Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS