1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
11 \paperpackage widemarginsa4
15 \use_numerical_citations 0
16 \paperorientation portrait
19 \paragraph_separation indent
21 \quotes_language english
29 Introducción a los Sistemas Distribuídos (74.43)
47 El protocolo PPP es muy utilizado para establecer una comunicación entre
48 2 redes (routers), ya sea entre LANs o entre una LAN y WAN u otras redes
50 Incluso es útil para comunicar un sólo host a una red distante (donde no
51 sería viable tender un cable o utilizar un medio inalámbrico).
52 Al poder ser montado sobre líneas telefónicas conmutadas, este protocolo
53 fue (y es) muy utilizado para proveer acceso a internet.
60 \begin_inset Float figure
67 \begin_inset LatexCommand \label{cap:Diagrama-de-estados-ppp}
71 Diagrama de estados de una conexión PPP
84 Lo primero que debe hacer el protocolo es establecer una conexión física
85 entre las dos puntas de la comunicación, para esto debe discar el número
86 si se utiliza sobre una línea telefónica conmutada, para establecer el
88 Una vez establecido el canal, empieza a actuar el LCP (Link Control Protocol)
89 que negocia, enviando frames PPP, los parámetros de la conexión.
90 Una vez acordados estos parámetros, puede realizarse una etapa de autenticación
91 , para verificar la identidad de las puntas y así permitir o no que la comunicac
93 Finalmente, si todo resultó bien, se envía una serie de paquetes NCP (Network
94 Control Protocol) para configurar la capa de red (como la dirección IP,
95 si se quisiera utilizar el protocolo TCP/IP en dicha capa).
98 En este momento las dos puntas de la conexión están comunicadas y pueden
99 realizar todas sus tareas como si estuvieran conectadas en una LAN.
102 Un vez finalizado, se procede prácticamente de forma inversa a como se estableci
103 ó la conexión para liberarla.
104 Primero se libera la IP a través del procotocolo NCP, luego se libera el
105 enlace cerrando la conexión de la capa LCP y finalmente se cierra la conexión
106 física (se corta el módem), si fuera necesario.
109 Se puede ver un diagrama de estados de este proceso en la figura
110 \begin_inset LatexCommand \vref{cap:Diagrama-de-estados-ppp}
120 Entre las cosas que se pueden configurar (negociando a través del protocolo
121 LCP) está el tamaño de la cabecera del frame (ya que los campos
129 generalmente son fijos y pueden evitarse, el campo
133 puede ser de 1 o 2 bytes y el
137 de 2 o 4) y el máximo tamaño del
142 Estos parámetros se establecen con valores por omisión para poder ser negociado
143 s luego con el protocolo LCP.
146 El protocolo NCP es muy específico sobre qué protocolo de red se quiera
147 negociar, por lo que es muy difícil hablar en términos generales de él.
148 Para el caso más común, donde se configura una capa de red IP, se utiliza
149 el protocolo IPCP (IP Control Protocol) cuya tarea se limita prácticamente
150 a la asignación de la IP (aunque puede negociar compresión de cabeceras
152 Hay también extensiones, como la extensión para configurar servidores de
153 nombre (definido en la RFC 1877
154 \begin_inset Quotes eld
157 PPP Internet Protocol Control Protocol Extensions for Name Server Addresses
158 \begin_inset Quotes erd
164 Configuración de los routes sobre línea dedicada
165 \layout Subsubsection
170 Lo primero que hay que hacer si utilizamos un modem sobre una línea telefónica
171 conmutada, es establecer el canal de la capa física.
172 Esto significa que una de las puntas debe discar el número de la otra y
173 establecer el canal utilizando algún programa de comunicación que permita
182 , con el que podemos hacerlo utilizando la combinación de teclas
189 Con el canal establecido, ejecutamos en ambas puntas el comando:
192 pppd -detach <IP local>:<IP remota> /dev/ttyS<N> <baudios> &
199 es la IP que se usará en la punta donde se ejectuta el comando,
207 el número de puerto serie (empezando de 0, que equivaldría al puerto más
208 conocido como COM1) y
212 la velocidad en baudios del puerto serie.
213 Recordemos que estamos usando como NCP al protocolo IPCP, para establecer
217 Esta es una forma muy precaria y no autenticada de establecer la conexión
219 La forma correcta sería dejando que una de las puntas actúe como
227 Técnicamente no es un servidor, ya que no existe tal cosa en el protocolo
228 PPP (en el que ambas puntas son pares), pero suele utilizarse este término
229 para la punta que recibe las llamadas, las atiende y asigna IPs.
234 PPP, encargándose de atender a la llamada entrante automáticamente, autenticand
235 o y asignando la IP a la otra punta, pero esta configuración es bastante
236 más compleja y poco realizable en el laboratorio.
237 \layout Subsubsection
239 Sin modems (null modems)
242 En ambas puntas de la conexión via null modem hay que ejecutar el siguiente
246 pppd -detach crtscts lock <IP local>:<IP remota> /dev/ttyS<N> <baudios>
254 es la IP que se usará en la punta donde se ejectuta el comando,
262 el número de puerto serie (empezando de 0, que equivaldría al puerto más
263 conocido como COM1) y
267 la velocidad en baudios del puerto serie.
268 Recordemos que estamos usando como NCP al protocolo IPCP, para establecer
272 Esto no establece ninguna tabla de ruteo, por lo que hay que cargarlas a
273 mano en caso de ser un router o de querer especificar un
277 en alguna de las puntas.
278 También es probable que haya que configurar los parámetros del puerto serie
283 , de manera tal que ambas puntas tenga los mismos parámetros (como paridad,
290 Tablas de ruteo (simulación)
293 Análisis de la captura HTTP
296 Registro de un nuevo usuario
297 \layout Subsubsection
302 Requirió para cargar el
306 16 mensajes HTTP, 8 GET y 7 respuestas 200 (OK) y 1 404 (NOT FOUND), correspond
307 ientes a dichos mensajes.
308 Los 8 GET fueron para pedir los siguientes archivos:
340 (que devolvió NOT FOUND).
341 Para la página específica de registro de un usuario (el formulario) solo
342 requirió 2 mensajes HTTP (GET y su respuesta) ya que las imágenes ya las
343 tenía en el cache el navegador.
344 Una vez presionado el botón de ENVIAR se observan 4 mensajes más HTTP,
345 primero un POST para enviar los datos del formulario al servidor, luego
346 su correspondiente respuesta 200 (OK).
347 Finalmente se vuelve a cargar el
351 para lo que se utilizan 2 mensajes más (GET y su respuesta 200).
352 Nuevamente observamos que como las imágenes están en el cache, no se vuelven
354 \layout Subsubsection
359 Lo primero que se observa son 3 segmentos para establecer la conexión (SYN
360 y ACK), luego por cada mensaje HTTP se observa al menos 2 segmentos TCP,
361 el que lleva el mensaje HTTP y el ACK que confirma la recepción de dicho
363 Además, si el mensaje HTTP es mayor a algo menos de 1500 bytes (tamaño
364 del MTU de ethernet), se observa la fragmentación y por cada fragmento
365 se generan 2 nuevos segmentos TCP (nuevamente uno que lleva el fragmento
366 de mensaje HTTP y el ACK correspondiente).
367 Finalmente se observan 4 segmentos TCP para la desconexión (FIN y ACK).
370 Para obtener el index.php y sus imágenes se observa que se hace todo en la
371 misma conexión, pero al estar ociosa durante un tiempo el servidor http
372 pide la desconexión y cuando se va a cargar la siguiente página vuelve
373 a iniciar una nueva conexión.
376 En total se observaron 4 conexiones:
379 index.php+imagenes: 53 segmentos (incluyendo 3 segmentos de conexión y 4
383 index.php?NuevoUsuario: 27 segmentos (incluyendo 3 segmentos de conexión
387 index.php?GuardarUsuario+index.php: 97 segmentos (incluyendo 3 segmentos de
388 conexión y 4 de desconexión)
392 \layout Subsubsection
397 Al ser el protocolo IP el transporte de los segmentos TCP, se observa que
398 para cada segmento, hay un paquete IP que lo transporta (incluyendo los
399 segmentos de control, como SYN y ACK).
400 No hay otro tipo de paquete IP que no este asociado a un segmento TCP.
403 Cantidad de paquetes IP: 177
404 \layout Subsubsection
409 Al ser el protocolo ethernet el transporte de los paquetes IP, se observa
410 que para cada paquete, hay un frame ethernet que lo transporta.
411 En esta actividad no se aprecia otro tipo de frame ethernet que no este
412 asociado a un paquete IP.
415 Cantidad de frames ethernet: 177
418 Nueva pregunta de la FAQ
421 A partir de ahora sólo enumeraremos la cantidad de
425 y mencionaremos si hay alguna diferencia con la actividad anterior, ya
426 que la mecánica es muy similar.
427 \layout Subsubsection
432 12 mensajes en total:
435 GET /~luca/foro/index.php?module=faqs&accion=AgregarPregunta HTTP/1.1
438 HTTP/1.1 200 OK (text/html)
441 GET /favicon.ico HTTP/1.1
444 HTTP/1.1 404 Not Found (text/html)
447 POST /~luca/foro/index.php?module=faqs&accion=guardarpregunta HTTP/1.1
450 HTTP/1.1 200 OK (text/html)
453 GET /~luca/foro/index.php?module=faqs HTTP/1.1
456 HTTP/1.1 200 OK (text/html)
459 GET /~luca/foro/avatars/phpQe1MqS HTTP/1.1
462 HTTP/1.1 304 Not Modified
465 GET /favicon.ico HTTP/1.1
468 HTTP/1.1 404 Not Found (text/html)
469 \layout Subsubsection
476 index.php?module=faqs&accion=AgregarPregunta
478 se reutiliza una conexión previa así que no hay SYN y se utilizan 10 segmentos
479 TCP (incluyendo los 4 de la desconexión).
484 se reutilizó otra conexión diferente, por lo cual tampoco se presentan
485 los segmentos de conexión.
486 En ésta se utilizan 8 segmentos TCP (incluyendo la desconexión).
487 Finalmente el envío de los datos se realiza todo en una nueva conexión
488 que se compone de 88 segmentos TCP (incluyendo conexión y desconexión).
489 \layout Subsubsection
494 En total se utilizan 106 paquetes IP.
495 \layout Subsubsection
500 En total se utilizan 106 frames ethernet.
504 \layout Subsubsection
509 GET /~luca/foro/index.php?module=faqs&accion=NuevaRespuesta&idpreg=1 HTTP/1.1
512 HTTP/1.1 200 OK (text/html)
515 GET /favicon.ico HTTP/1.1
518 HTTP/1.1 404 Not Found (text/html)
521 POST /~luca/foro/index.php?module=faqs&accion=guardarrespuesta HTTP/1.1
524 HTTP/1.1 200 OK (text/html)
527 GET /~luca/foro/index.php?module=faqs&accion=Mostrarrespuestas&idpreg=1 HTTP/1.1
530 HTTP/1.1 200 OK (text/html)
533 GET /~luca/foro/avatars/phpQe1MqS HTTP/1.1
536 HTTP/1.1 304 Not Modified
539 GET /~luca/foro/avatars/phpGifOBK HTTP/1.1
542 HTTP/1.1 304 Not Modified
545 GET /favicon.ico HTTP/1.1
548 HTTP/1.1 404 Not Found (text/html)
551 Total: 14 mensajes HTTP
552 \layout Subsubsection
559 index.php?module=faqs&accion=NuevaRespuesta&idpreg=1
561 : 10 (reutiliza conexión, incluye desconexión)
568 : 7 (reutiliza conexión, incluye desconexión)
571 Resto: 31 (incluye conexión y desconexión)
572 \layout Subsubsection
577 Total: 48 paquetes IP.
578 \layout Subsubsection
583 Total: 48 frames ethernet.
586 Análisis de la captura FTP
592 La captura fue realizada transfiriendo un archivo binario de 1.9 Mb, llamado
593 db4o-4.5-mono.tar.gz.
594 Para la transferencia se han intercambiado 16 mensajes FTP 8 response y
598 Lo primero que se recibe es el response del server dando su identificacion
600 Luego un request del comando USER y la respuesta del servidor diciendo
601 que se necesita password para dicho usuario.
602 El siguiente comando es PASS con el que se envia el password y recibimos
603 la respuesta de que estamos loggeados.
606 El cliente envía un SYST para saber el tipo de sistema que hay del otro
607 lado, a lo que el server responde UNIX Type: L8.
608 Luego se cambia el tipo de modo de transferencia con TYPE y a continuación
609 se hace un PORT para establecer un canal de comunicación.
612 Como último comando se envía RETR para traer un archivo, luego recibimos
613 una respuesta de que se estableció un canal binario y por último un response
614 cuando se completo la transferencia.
617 También se registraron 1346 paquetes FTP-DATA intercambiados durante la
618 transferencia del archivo.
619 Once de dichos paquetes correspondieron a paquetes de control conteniendo
620 TCP Previous segment lost.
621 El resto corresponden a envío de 1448 bytes de datos transferidos.
627 Lo primero que se observa son 3 segmentos para establecer la conexión (SYN
628 y ACK) entre un puerto alto (35631) y el puerto FTP del server.
629 Luego 2 paquetes para la autenticación de usuario y a continuación está
630 la negociación del puerto y el comando RETR usando 34 segmentos.
633 Sigue a continuación la transferencia del archivo entre el puerto ftp-data
634 del servidor y el puerto local 32985.
637 La transferencia consume 1466 paquetes, de los cuales tenemos algunos de
639 Hay 112 ACK, 5 paquetes TCP ACKed lost segment y 3 de TCP Window Update.
642 La comunicación termina con 11 segmentos TCP.
648 En total se utilizan 1516 paquetes IP.
654 En total se utilizan 1516 frames ethernet.
657 Análisis de la captura Telnet
660 Se realizó la captura al inicio de una conexión mediante telnet al servidor
661 donde se encontraba el archivo RFC792 al cual se le modificaron 5 líneas
662 (una en cada hoja) se lo guardó y luego se desconecto del servidor cerrando
669 Se contaron en total 717 mensajes telnet, donde en su mayoría contenían
670 cada uno de ellos, un caracter correspondiente a una tecla presionada y
671 en algunas ocasiones líneas completas transmitidas por el servidor hacia
673 Tambíen se puede notar que los primeros mensajes pertenecen a la negociación
674 del protocolo e intercambio de parámetros.
680 Como en los protocolos anteriores se puede observar que se utilizan 3 segmentos
681 para establecer la conexión (SYN, ACK), y que todos los mensajes telnet
682 van montados en un segmento TCP.
683 Por lo tanto tendremos tantos segmentos TCP como mensajes de telnet haya
684 sumando además los segmentos TCP de control, en total 1005 segmentos fueron
692 Cada segmento TCP va acompañado por un paquete IP, en total 1005 paquetes
699 Analogamente al caso anterior, podemos observar 1005 frames ethernet.