Se repasará el uso de herramientas de línea de comandos de GNU/linux que pueden resultar útiles para experimentar y/o depurar aplicaciones cliente-servidor, especialmente las desarrolladas directamente sobre el interfaz de SOCKETS.
netcat(nc) es un comando que permite acceder a puertos TCP o UDP de la propia máquina o de otras máquinas remotas. También permite quedar a la escucha en un puerto dado (TCP o UDP) de la máquina local.
$ nc maquina_destino puerto_destino
$ nc -l -p puerto_escucha
Opciones interesantes:
Más información:
netstat es un comando que ofrece información (uso, estado, etc) sobre las conexiones de la máquina propia, tanto entrantes como salientes, además de otras informaciones sobre la red.
Informa tanto de conexiones del dominio de Internet (locales y remota) como de conexiones del dominio UNIX (entre procesos locales).
La información típica que muestra para cada conexión de red es:
Opciones interesante:
Más información sobre el protocolo HTTP (incluido formato de los mensajes).
Cada petición HTTP recibida por el servidor es independiente de las anteriores.
Comprobar el diálogo HTTP desde el punto de vista de un cliente.
$ nc ccia.ei.uvigo.es 80
GET /docencia/SCS/index.html HTTP/1.1 Host: ccia.ei.uvigo.es |
GET /docencia/SCS/index.html HTTP/1.1 |
Comprobar el diálogo HTTP desde el punto de vista del servidor.
$ nc -l -p 8080
HTTP/1.1 200 OK Content-Type: text/html Content-Length: 56 <html><body> hola <img src="imagen.gif"> </body> </html> |
HTTP/1.1 200 OK Content-Type: text/html Content-Length: 70 <html><body> hola <a href="principal.html"> enlace </a> </body> </html> |
Típicamente, el comportamiento de este tipo de servicios con estadoestará gobernado por una máquina de estados (o un mecanismo equivalente) exclusiva para cada cliente. Esa información permite que el servidor pueda llevar traza de las peticiones recibidas y del estado en el que se encuentra el diálogo con el cliente.
Más información sobre el protocolo SMTP.
Más información sobre el protocolo POP3.
Elegir un servidor SMTP donde el alumno tenga acceso y simular el diálogo de un cliente SMTP a la hora de enviar un e-mail.
$ nc aaa.aaa.com 25
Escribir el siguiente mensaje en la sesión nc:
HELO <nombre o IP del cliente>
Escribir los siguientes mensajes en la sesión nc:
MAIL FROM: login@aaa.aaa.com RCPT TO:login@aaa.aaa.com DATA Subject: asunto del mensaje mensaje a enviar mensaje a enviar .
Escribir el siguiente mensaje en la sesión nc:
QUIT
Elegir un servidor POP3 donde el alumno tenga acceso y simular el diálogo de un cliente POP3 a la hora de descargar los mensajes del buzón del usuario.
$ nc aaa.aaa.com 110
Escribir los siguientes 2 mensajes en la sesión nc (envío del nombre de usuario + envío de la clave)
USER miusuario PASS mipassword
Aviso: el tráfico irá en claro y el login y el password serán visibles para cualquiera que escuche en ese enlace
Escribir la siguiente secuencia de mensajes en la sesión nc (ver estado del buzón, obtener la lista de mensajes pendientes de descargar, descargar el primer mensaje, cerrar la conexión POP3)
STAT LIST RETR 1 QUIT
Descripción breve de las pruebas realizadas (comandos ejecutados, parámetros utilizados, etc) en las dos secciones anteriores (herramientas de red y servicios con y sin estado).
Explicar los resultados obtenidos en cada una de las pruebas realizadas.
(Límite: 2-3 páginas)