martes, 27 de abril de 2010

Ejercicio de Comunicación TCP/IP

Sea la siguiente comunicación telnet:

javier@200.0.0.1:~$ telnet 100.0.0.1 2222
Trying 100.0.0.1...
Connected to 100.0.0.1.
Escape character is ’^]’.
Bienvenido.
salir
Adios.
Connection closed by foreign host.
javier@200.0.0.1:~$

Contesta a las siguientes preguntas:

¿Cuál es la IP del cliente? ¿y, el puerto que emplea?.
IP: 200.0.0.1

El puerto no lo especifica el enunciado del problema.

¿Cuál es la Ip del servidor? ¿y, el puerto que emplea?.
IP: 100.0.0.1
PUERTO: 2222

Analiza a "nivel de aplicación", en seis pasos, como se desarrolla la comunicación.
A "nivel de transporte" la comunicación puede verse plasmada en el siguiente figura:








1. El cliente se conecta al servidor
2. El servidor envía el mensaje "Bienvenido"
3. El cliente envía el comando "Salir"
4. El servidor responde con el mensaje "Adios"
5. El servidor cierra la conexión
6. El cliente cierra la conexión


Describe, en doce pasos, la comunicación a "nivel de transporte".

1. El cliente envía un SYN al servidor, con número de secuencia x_0.

2. El servidor responde con paquete SYN, con número de secuencia y_0 y un ACK con valor
x_(o)+1 (-x_1)

3. El cliente envía un paquete ACK del SYN que acaba de recibir, con valor y_0+1 (y_1).

A partir de este momento la conexión se encuentra establecida y puede comenzar el intercambio

de datos entre las aplicaciones.

4. El servidor envía un paquete PSH conteniendo la cadena "Bienvenido.\" (12 bytes), con
número de secuencia y_1.

5. El cliente envía un ACK, con número de secuencia y_1+12 ( =y_2).

6. El cliente envía un paquete PSH conteniendo la cadena "salir\r\n" (7 bytes), Con número
de secuencia x_1.

7. El servidor envía un ACK, con número de secuencia x_1+7 (=x_2).

8. El servidor envía la cadena "Adios. \n" (7 bytes), con número de secuencia y_2.

9. El cliente envía un ACK, con número de secuencia y_2+7(=y_3).

En este momento, el servidor decide cerrar la conexión.




10. El servidor envía un paquete FIN, con número de secuencia y_3.




11. El cliente envía un paquete FIN, con número de secuencia x_2, y un ACK con número de secuencia y_+1.

5. Si suponemos que tenemos la siguiente topología:


A "nivel de red" indica:

-El ruteo, en este caso concreto.
Un paquete que partiera del host de Javier, de IP 200.0.0.1, para salir de la red en la que él se encuentra debería de pasar por el encaminador de su red, de IP 200.0.0.21. Posteriormente,
sería encaminado por diferentes routers simbolizados por la nube de Internet.
Finalmente, accede al encaminador de IP 100.0.0.35 que lo dirige directamente al servidor
Telnet, IP 100.0.0.1.

-¿Cuál es el TTL que, generalmente, tiene un paquete que se produce en uno de los extremos de la comunicación telnet?.
64

-¿Cómo varía el TTL durante ruteo?.
Por cada encaminador que pasa el TTL, disminuye en una ciudad.

-¿Qué medida se lleva ha efecto para evitar que un paquete quede indefinidamente "dando vueltas" por la red?.
El encaminador que recibe un paquete de TTL o tiene como misión enviar un paquete ICMP al
emisor del paquete.

-La causa que provoca la fragmentación de paquetes.
La MTU (Unidad Máxima de Transferencia) de la red.

-Los elementos fragmentadores y reensambladores.
Los encaminadores (Routers, gateways...)

6. A "nivel de enlace", explica los frames necesarios, unicamente en la primera red ethernet, para mandar un paquete IP correspondiente a la comunicación telnet.

Caso no planteado:

Supongamos que el host 200.0.0.1 quiere enviar un paquete IP al host 200.0.0.33.

Como ambos están en la misma red local (los primeros 24 bits de sus direcciones coinciden), lo único que debe hacer es averiguar cual es la dirección Ethernet de este último. Para ello,
se utiliza el protocolo ARP (" Address Resolution Protocol").

1º) El host 200.0.0.1 envía un paquete (en terminología de Ethernet se denomina "frame") a la dirección ff:ff:ff:ff:ff:ff (las direcciones Ethernet se denotan con seis bytes
en hexadecimal separados por dos puntos), que es la dirección de broadcast (que llega a todos
los host de la red) preguntando quién tiene la dirección IP 200.0.0.33. Dicha solicitud ARP tiene como origen la dirección Ethernet del emisor (supongamos, 00:22:33:44:55:66).

2º) El poseedor de esa dirección IP le responderá con otro frame con su dirección Ethernet como origen (supongamos, 00:11:22:33:44:55). De ahora en adelante, cada vez que el host 200.0.0.1 quiera enviar un paquete IP al host 200.0.0.33, enviará un frame Ethernet proveniente de la dirección 00:11:22:33:44:55 a la dirección 00:22:33:44:55:66, conteniendo el paquete original.
(La información sobre las direcciones ARP se almacenan en cada host en una tabla que tiene una duración de algunos minutos).

Caso planteado: el host donde se ejecuta la aplicación cliente (200.0.0.1) debe enviar paquetes
IP al host en donde se ejecuta el servidor (100.0.0.1).

1º) Para ello, usando el protocolo ARP averigua la dirección Ethernet del gateway (cuya
dirección IP, recordemos, es 200.0.0.21), que supondremos es 00:12:23:34:45:56.
Una vez hecho esto, envía un frame Ethernet ( con origen 00:11:22:33:44:55 y destino
00:12:23:34:45:56), conteniendo el paquete IP cuyo origen es 200.0.0.1 y con destino a
100.0.0.1.

2º) El gateway recibirá el frame (puesto que la dirección Ethernet de destino es la suya) y dentro de él encontrará un paquete IP dirigido a 100.0.0.1 Decrementará el campo TTL y, en base a las
reglas definidas en su "tabla de enrutamiento" (o "tabla de ruteo"), lo reenviará hacia el gateway correspondiente.


7. La siguiente figura ilustra una simplificación del camino que sigue la información a traves de los distintos niveles. Describe lo qué apota cada uno de los distintos estadios.

1. Nivel de aplicación: la aplicación (en este caso, el programa cliente), escribe la cadena "salir\n".

2. Nivel de transporte: En la capa TCP forma un paquete agregando el número de secuencia (20), puerto de origen (4781) y puerto de destino (2222).

3. Nivel de red: En la capa IP se forma un paquete (datagrama) añadiendo la dirección IP origen (200.0.0.1), destino (100.0.0.1), el TTL (64) y un valor que identifica el protocolo del paquete encapsulado (0x06, valor hexadecimal que representa al protocolo TCP).

4. Nivel de enlace: En la capa Ethernet de origen (00:30:b8:80:dd:11) y destino (00:01:02:ed:41:61, la dirección del gateway, cuya IP es 200.0.0.21). Se añade además el identificador del tipo de protocolo del paquete contenido (el valor 0x800 corresponde al protocolo IP).

5. Nivel físico: El frame formado es enviado a través del medio físico que vincula los hosts de la red local (típicamente, cable de par trenzado).

No hay comentarios:

Publicar un comentario