Subido por Ana Holgado

228693665 TALLER Redes de computadoras

Anuncio
TALLER LIBRO “REDES DE COMPUTADORAS UN ENFOQUE DESCENDENTE”
CAPITULOS 2 Y 3
YEISON SAMIR AGUIRRE QUINTERO
DANIEL HASSELL TORO FRANCO
REDES I
NESTOR ALZATE
UNIVERSIDAD CATOLICA DE PEREIRA
FACULTAD DE CIENCIAS BASICAS E INGENIERIA
PEREIRA
2014
Capítulo 2 Cuestiones de repaso
SECCIÓN 2.1
1. Enumere cinco aplicaciones de Internet no propietarias y los protocolos de la capa de aplicación
que utilizan.
R/.
 FTP: trasferencia de archivos
 HTTP: La web
 RCP: llamada remota
 SMTP: Correo electrónico
 P2P: Compartición de archivos
2. ¿Cuál es la diferencia entre la arquitectura de red y la arquitectura de aplicación?
R/.
La arquitectura de red se usa para la comunicación entre capas del modelo OSI, la arquitectura
de aplicación es creada por un desarrollador para el manejo de las aplicaciones en la capa
aplicación.
3. En una sesión de comunicación entre dos procesos, ¿qué proceso es el cliente y qué proceso es
el servidor?
R/.
Para este caso el proceso que inicia la petición se convierte en cliente a espera de la respuesta
del otro proceso que hace las veces de servidor, pero al momento de enviar la respuesta los
roles cambian variando del uno al otro en el proceso de cliente servidor.
4. En una aplicación de compartición de archivos P2P, ¿está de acuerdo con la siguiente
afirmación: “No existen los lados de cliente y de servidor en una sesión de comunicación”? ¿Por
qué?
R/.
La afirmación es falsa, como ya sabemos en un proceso de aplicación P2P, se utilizan dos host
uno que es el cliente y otro que hace el papel de servidor.
5. ¿Qué información utiliza un proceso que se ejecuta en un host para identificar a un proceso que
se ejecuta en otro host?
R/.
La dirección de destino IP y número de puerto de destino.
6. Suponga que desea realizar una transición desde un cliente remoto a un servidor lo más
rápidamente posible. ¿Qué utilizaría, UDP o TCP? ¿Por qué?
R/.
Utilizaría el UDP, ya que se podría hacer en un solo tiempo de ida y vuelta, porque no hace
rectificación de archivos ni reenvió de paquetes.
7. Utilizando la Figura 2.4, podemos ver que ninguna de las aplicaciones indicadas en dicha figura
presenta a la vez requisitos de temporización y de ausencia de pérdida de datos. ¿Puede concebir
una aplicación que requiera que no haya pérdida de datos y que también sea extremadamente
sensible al tiempo?
R/.
Hasta el momento no hay una aplicación que solucione o este exenta de la perdida de datos.
8. Enumere las cuatro clases principales de servicios que puede proporcionar un protocolo de
transporte. Para cada una de las clases de servicios, indique si UDP o TCP (o ambos) proporcionan
un servicio así.
R/.
 Seguridad
 La garantía de que los datos se entreguen en un periodo de tiempo especifico
 La garantía de que se mantendrá un cierto valor para el rendimiento.
 Transferencia de datos fiables por medio del protocolo TCP.
9. Recuerde que TCP puede mejorarse con SSL para proporcionar servicios de seguridad proceso a
proceso, incluyendo mecanismos de cifrado. ¿En qué capa opera SSL, en la capa de transporte o en
la capa de aplicación? Si el desarrollador de la aplicación desea mejorar TCP con SSL, ¿qué tendrá
que hacer?
R/.
Los SSL operan en la capa de Aplicación, y para mejorar la seguridad del TCP, solo debería incluir
el código de la aplicación SSL
SECCIONES 2.2 – 2.5
10. ¿Qué quiere decir el término protocolo de acuerdo?
R/.
Es cuando dos protocolos necesitan hacer un acuerdo al inicio de la comunicación, como es el
caso del mensaje instantáneo.
11. ¿Por qué HTTP, FTP, SMTP y POP3 se ejecutan sobre TCP en lugar de sobre UDP?
R/.
Las aplicaciones asociadas a los protocolos requieren que todos los datos de la aplicación deben
ser recibidos correctamente y sin lagunas. TCP proporciona este servicio mientras que UDP no
lo hace.
12. Un sitio de comercio electrónico desea mantener un registro de compras para cada uno de sus
clientes. Describa cómo se puede hacer esto utilizando cookies.
R/.
Cuando el usuario visita primero el sitio, el sitio devuelve un número de cookie. Este cookie o
número se almacena en el host del usuario y es administrado por el navegador. Durante cada
visita, el navegador envía el número de cookie de vuelta al sitio. Así, el sitio sabe cuando este
usuario (más precisamente, este navegador) está de visita en el sitio.
13. Describa cómo el almacenamiento en caché web puede reducir el retardo de recepción de un
objeto solicitado. ¿Reducirá este tipo de almacenamiento el retardo de todos los objetos
solicitados por el usuario o sólo el de algunos objetos? ¿Por qué?
R/.
El almacenamiento en caché Web puede traer el contenido deseado "más cerca" del usuario, tal
vez a la misma LAN al que está conectado el host del usuario. El almacenamiento en caché Web
puede reducir la velocidad de transferencia lo que retrasa la entrega de paquetes para todos los
objetos, incluso los objetos no tratan de almacenar en caché, ya que el almacenamiento en
caché reduce el tráfico en los enlaces.
14. Establezca una sesión Telnet en un servidor web y envíe un mensaje de solicitud de varias
líneas. Incluya en dicho mensaje la línea de cabecera If-modified-since: para forzar un mensaje de
respuesta con el código de estado 304 Not Modified.
15. ¿Por qué se dice que FTP envía la información de control “fuera de banda”?
R/.
FTP utiliza dos conexiones TCP paralelas, una conexión para enviar información de control (tal
como una solicitud para transferir un archivo) y otra conexión realmente para transferir el
archivo. Debido a que la información de control no se envía a través de la misma conexión, el
protocolo FTP envía información de control fuera de banda.
16. Suponga que Alicia, que dispone de una cuenta de correo electrónico web (como por ejemplo
Hotmail o gmail), envía un mensaje a Benito, que accede a su correo almacenado en su servidor de
correo utilizando POP3. Explique cómo se transmite el mensaje desde el host de Alicia hasta el de
Benito. Asegúrese de citar la serie de protocolos de la capa de aplicación que se utilizan para llevar
el mensaje de un host al otro.
R/.
El mensaje se envía desde un anfitrión HTTP en este caso el servidor de correo de Alice. El
servidor de correo de Alice envía el mensaje al servidor de correo de Bob a través de SMTP. Bob
y luego transfiere el mensaje de su servidor de correo a su anfitrión a través de POP3.
17. Imprima la cabecera de un mensaje de correo electrónico que haya recibido recientemente.
¿Cuántas líneas de cabecera Received: contiene? Analice cada una de las líneas de cabecera del
mensaje.
R/.
Delivered-To: hassell8720@gmail.com
Recibido: por 10.216.123.196 con SMTP Identificación v46csp242148weh;
Mar, 01 de abril 2014 18:26:16 -0700 (PDT)
-Recibido X: por 10.67.22.100 con SMTP Identificación hr4mr17703257pad.112.1396401976151;
Mar, 01 de abril 2014 18:26:16 -0700 (PDT)
Return-Path: <yesaagqu95@hotmail.com>
Recibido: de bay0-OMC2-s10.bay0.hotmail.com (. Bay0-OMC2-s10.bay0.hotmail.com
[65.54.190.85])
por mx.google.com con ESMTP Identificación wh4si171571pbc.477.2014.04.01.18.26.15
para <hassell8720@gmail.com>;
Mar, 01 de abril 2014 18:26:16 -0700 (PDT)
Recibido-SPF: pass (google.com: domain de yesaagqu95@hotmail.com designa 65.54.190.85
como remitente permitido) client-ip = 65.54.190.85;
Autenticación-Resultados: mx.google.com;
spf = pass (google.com: domain de yesaagqu95@hotmail.com designa 65.54.190.85 como
remitente permitido) smtp.mail = yesaagqu95@hotmail.com
Recibido: de BAY172-W29 ([65.54.190.123]) por bay0-OMC2-s10.bay0.hotmail.com con
Microsoft SMTPSVC (6.0.3790.4675);
Mar, 01 de abril 2014 18:26:15 -0700
X-RGT: [usXfrXnOO99SIurzMlIk0TWcJEp3YEmj]
X-Originating-Email: [yesaagqu95@hotmail.com]
Message-ID: <BAY172-W293ACC62CAE6E7010F35E8CF6D0@phx.gbl>
Return-Path: yesaagqu95@hotmail.com
Content-Type: multipart / alternative;
boundary = "_5aadb00a-be2e-4741-ADC6-7a38d3ee2602_"
De: Yeison Aguirre <yesaagqu95@hotmail.com>
A: Daniel Toro <hassell8720@gmail.com>
Asunto: Prueba
Fecha: Martes, 01 de abril 2014 20:26:15 -0500
Importancia: Normal
MIME-Version: 1.0
X-OriginalArrivalTime: 02 de abril 2014 01:26:15.0257 (UTC) FILETIME = [8A3B8C90: 01CF4E12]
- _5aadb00a-Be2e-4741-ADC6-7a38d3ee2602_
Content-Type: text / plain; charset = "iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hola =
- _5aadb00a-Be2e-4741-ADC6-7a38d3ee2602_
Content-Type: text / html; charset = "iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<style> <! . Hmmessage P
{
margen: 0px = 3B
padding: 0px
}
body.hmmessage
{
font-size: 12pt = 3B
font-family: Calibri
}
-> </ Style> </ head>
<body class=3D'hmmessage'> <div dir=3D'ltr'> de Hola </ div> </ body>
</ Html> =
- _5aadb00a-Be2e-4741-ADC6-7a38d3ee2602_ -
Se pueden observar 5 recibidos lo cual significa que el mensaje de correo electrónico pasó por 6
servidores antes de llegar a su destinatario.
Nos muestra la Ip del cliente servidor que en este caso es: 65.54.190.85.
Muestra el remitente y destinatario: <yesaagqu95@hotmail.com>, <hassell8720@gmail.com>.
Muestra el STMP Cliente mail: [yesaagqu95@hotmail.com].
La fecha de y hora exacta en que el remitente envía el mensaje: Martes, 01 de abril 2014
20:26:15 -0500.
18. Desde la perspectiva de un usuario, ¿cuál es la diferencia entre el modo “descargar y borrar” y
el modo “descargar y mantener” en POP3?
R/.
Con la descarga y borrar, después de que un usuario recupera sus mensajes de un servidor POP,
se eliminan los mensajes. Esto plantea un problema para el usuario nómada, que puede o desea
acceder a los mensajes desde muchas máquinas diferentes (la oficina de PC, PC de casa,
etc.) En la descarga y mantener la configuración de los mensajes no se eliminan después de que
el usuario recupera los mensajes. Esto puede resolver inconvenientes, ya que cada vez que el
usuario recupera los mensajes almacenados de una nueva máquina, todos los mensajes que no
son eliminados serán transferidos a la nueva máquina (incluyendo mensajes muy viejos).
19. ¿Pueden el servidor web y el servidor de correo electrónico de una organización tener
exactamente el mismo alias para un nombre de host (por ejemplo, foo.com)? ¿Cuál sería el tipo
especificado en el registro de recurso (RR) que contiene el nombre de host del servidor de correo?
R/.
Si, el servidor de correo de una organización y el servidor Web pueden tener el mismo alias para
un nombre de host. El registro MX se utiliza para asignar el nombre de host del servidor de
correo a su dirección I.P
SECCIÓN 2.6
20. En Bit Torrent, suponga que Alicia proporciona fragmentos a Benito a intervalos de 30
segundos. ¿Devolverá necesariamente Benito el favor y proporcionará fragmentos a Alicia en el
mismo intervalo de tiempo? ¿Por qué?
R/.
No es necesario que Bob también proporcionara fragmentos a Alice. Alice tiene que estar en los
4 primeros vecinos de Bob para que Bob envíe fragmentos de ella, que puede no ocurrir incluso
si ha Alice le proporciona fragmentos a Bob a lo largo de un intervalo de 30 segundos.
21. Suponga que un nuevo par Alicia se une a Bit Torrent sin tener en su posesión ningún
fragmento. Dado que no posee fragmentos, no puede convertirse en uno de los cuatro principales
suministradores de ninguno de los otros pares, ya que no tiene nada que suministrar. ¿Cómo
obtendrá entonces Alicia su primer fragmento?
R/.
Mercedes recibirá su primer fragmento, como resultado de ella siendo seleccionado por uno de
sus vecinos, como resultado de un "desenlace", para el envío de fragmentos de ella.
22. ¿Qué es una red solapada? ¿Contiene routers? ¿Cuáles son las fronteras en una red solapada?
¿Cómo se crea y se mantiene la red solapada que se encarga de distribuir las consultas?
R/.
La red superpuesta en un sistema de intercambio de archivos P2P consiste en los nodos que
participan en el sistema de intercambio de archivos y los vínculos lógicos entre los nodos. Hay
un enlace lógico (un "borde" en términos de teoría del gráfico ) del nodo A al nodo B si existe
una conexión TCP semipermanente entre A y B. Una red overlay no incluye routers. Con
Gnutella , cuando un nodo quiere unirse a la red Gnutella , primero descubre ( " fuera de banda"
) la dirección IP de uno o más que ya están en la red de nodos. A continuación, envía mensajes
para unirse a estos nodos . Cuando el nodo recibe confirmaciones, se convierte en un miembro
de la red Gnutella. Los nodos mantienen sus vínculos lógicos con mensajes de actualización
periódicos.
23. ¿En qué sentido la mensajería instantánea con un índice centralizado es un híbrido de las
arquitecturas cliente-servidor y P2P?
R/.
- Hay un componente centralizado (el índice) como en el caso de un sistema cliente-servidor.
- Otras funciones (excepto la indexación) las cuales no utilizan ningún tipo de servidor central.
Esto es similar a lo que existe en un sistema P2P.
24. Considere una DHT con una topología de red solapada en malla (es decir, cada par controla a
todos los demás pares del sistema). ¿Cuáles son las ventajas y desventajas de un diseño de este
tipo? ¿Cuáles son las ventajas y desventajas de una DHT circular (sin atajos)?
R/.
Malla DHT: La ventaja es que una ruta un mensaje a los pares más cercanos a la clave, sólo se
requiere un salto, la desventaja es que cada interlocutor debe realizar un seguimiento de todos
los demás compañeros en el DHT. DHT circular: la ventaja es que cada par tiene que realizar un
seguimiento de sólo unos pocos otros compañeros; la desventaja es que se necesitan O (n)
lúpulo para en rutar un mensaje a un compañero responsable de la tecla.
25. Skype utiliza técnicas P2P para dos funciones importantes. ¿Cuáles son dichas funciones?
R/.
- La ubicación de los usuarios.
- NAT transversal ya que permite el uso del direccionamiento privado en las redes, tanto de
empresas como domésticas.
26. Cite al menos cuatro aplicaciones distintas que se adapten de forma natural a las arquitecturas
P2P. (Sugerencia: la distribución de archivos y la mensajería instantánea son dos de ellas.)
R/.
- Distribución de archivos
- Mensajería instantánea
- Video Streaming
- Computación Distribuida
27. El servidor UDP descrito en la Sección 2.8 sólo necesitaba un socket, mientras que el servidor
TCP descrito en la Sección 2.7 necesitaba dos. ¿Por qué? Si el servidor TCP tuviera que soportar n
conexiones simultáneas, cada una procedente de un host cliente distinto, ¿cuántos sockets
necesitaría el servidor TCP?
R/.
Con el servidor TCP hay un socket que recibe, y cada vez que un cliente inicia una conexión con
el servidor, se crea un nuevo socket. Por lo tanto, para soportar n conexiones simultáneas, el
servidor tendría que utilizar n 1 sockets.
Con el servidor UDP, no hay ningún socket, y todos los datos de los diferentes clientes entran en
el servidor a través de este zócalo.
28. En la aplicación cliente-servidor sobre TCP descrita en la Sección 2.7, ¿por qué tiene que ser
ejecutado el programa servidor antes que el programa cliente? En la aplicación cliente-servidor
sobre UDP descrita en la Sección 2.8, ¿por qué el programa cliente puede ejecutarse antes que el
programa servidor?
R/.
Tan pronto como el cliente se ejecuta, que intenta iniciar una conexión TCP con el servidor. Si el
servidor TCP no se está ejecutando, el cliente no podrá establecer una conexión.
Para la aplicación UDP, el cliente no inicia conexiones (o el intento de comunicarse con el
servidor UDP) inmediatamente después de la ejecución.
Capítulo 2 Problemas
1. ¿Verdadero o falso?
a. Un usuario solicita una página web que consta de texto y tres imágenes. Para obtener esa
página, el cliente envía un mensaje de solicitud y recibe cuatro mensajes de respuesta.
R/.
Falsa
b. Dos páginas web diferentes (por ejemplo, www.mit.edu/research.htmly www.
mit.edu/students.html) se pueden enviar a través de la misma conexión persistente.
R/.
Verdadera
c. Con las conexiones no persistentes entre un navegador y un servidor de origen, un único
segmento TCP puede transportar dos mensajes de solicitud HTTP distintos.
R/.
Falsa
d. d. La línea de cabecera Date: del mensaje de respuesta HTTP indica cuándo el objeto fue
modificado por última vez.
R/.
Falsa
e.
Los mensajes de respuesta HTTP nunca incluyen un cuerpo de mensaje vacío.
R/.
Falsa
2. Lea el documento RFC 959 relativo a FTP. Enumere todos los comandos cliente que están
soportados por dicho documento.
R/.
Comandos de Control de Acceso:
USER, PASS, ACT, CWD, CDUP, SMNT, REIN, QUIT.
Comando de Parámetros de Transferencia:
PORT, PASV, TYPE STRU, MODE.
Comandos de Servicio:
RETR, STOR, STOU, APPE, ALLO, REST, RNFR, RNTO, ABOR, DELE,
RMD, MRD, PWD, LIST, NLST, SITE, SYST, STAT, HELP, NOOP.
P3. Un cliente HTTP desea recuperar un documento web que se encuentra en un URL dado.
Inicialmente, la dirección IP del servidor HTTP es desconocida. ¿Qué protocolos de la capa de
aplicación y de la capa de transporte además de HTTP son necesarios en este escenario?
R/.
Protocolos de capa de aplicación: DNS y HTTP
Protocolos de capa de transporte: UDP para DNS; TCP para HTTP
4. La siguiente cadena de caracteres ASCII ha sido capturada por Wireshark cuando el navegador
enviaba un mensaje GET HTTP (es decir, éste es el contenido real de un mensaje GET HTTP). Los
caracteres <cr><lf>representan el retorno de carro y el salto de línea (es decir, la cadena de
caracteres en cursiva <cr>del texto que sigue a este párrafo representa el carácter de retorno de
carro contenido en dicho punto de la cabecera HTTP). Responda a las siguientes cuestiones,
indicando en qué parte del siguiente mensaje GET HTTP se encuentra la respuesta.
GET /cs453/index.html HTTP/1.1<cr><lf>Host: gai
a.cs.umass.edu<cr><lf>User-Agent: Mozilla/5.0 (
Windows;U; Windows NT 5.1; en-US; rv:1.7.2) Gec
ko/20040804 Netscape/7.2 (ax) <cr><lf>Accept:ex
t/xml, application/xml, application/xhtml+xml, text
/html;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
<cr><lf>Accept-Language: en-us,en;q=0.5<cr><lf>Accept
Encoding: zip,deflate<cr><lf>Accept-Charset: ISO
-8859-1,utf-8;q=0.7,*;q=0.7<cr><lf>Keep-Alive: 300<cr>
<lf>Connection:keep-alive<cr><lf><cr><lf>
a. ¿Cuál es el URL del documento solicitado por el navegador?
R/.
http://gaia.cs.umass.edu/cs453/index.html. The Host : field
indicates the server's name and /cs453/index.html indicates the file name.
b. ¿Qué versión de HTTP se está ejecutando en el navegador?
R/.
HTTP versión 1.1
c. ¿Qué tipo de conexión solicita el navegador, persistente o no persistente?
R/.
El navegador solicita una conexión persistente, como se indica en la conexión:
keep-alive
.
d. ¿Cuál es la dirección IP del host en el que se está ejecutando el navegador?
R/.
Esa información no es suministrada en un mensaje HTTP
e. ¿Qué tipo de navegador inicia este mensaje? ¿Por qué es necesario indicar el tipo de
navegador en un mensaje de solicitud HTTP?
R/.
Mozilla/5.0. La información del tipo de navegador es necesario por el servidor, para
enviar diferentes versiones de un mismo objeto a diferentes tipos de navegadores.
5. El siguiente texto muestra la respuesta devuelta por el servidor al mensaje de solicitud GET
HTTP del problema anterior. Responda a las siguientes cuestiones, indicando en qué parte del
siguiente mensaje se encuentran las respuestas.
HTTP/1.1 200 OK<cr><lf>Date: Tue, 07 Mar 2008
12:39:45GMT<cr><lf>Server: Apache/2.0.52 (Fedora)
<cr><lf>Last-Modified: Sat, 10 Dec2005 18:27:46
GMT<cr><lf>ETag: “526c3-f22-a88a4c80”<cr><lf>
Accept-Ranges: bytes<cr><lf>Content-Length: 3874<cr><lf>
Keep-Alive: timeout=max=100<cr><lf>Connection:
Keep-Alive<cr><lf>Content-Type: text/html; charset=
ISO-8859-1<cr><lf><cr><lf><!doctype html public “//w3c//dtd html 4.0 transitional//en”><lf><html><lf>
<head><lf> <meta http-equiv=”Content-Type”
content=”text/html; charset=iso-8859-1”><lf>
<meta name=”GENERATOR” content=”Mozilla/4.79 *en+ (Windows NT
5.0; U) Netscape+”><lf> <title>CMPSCI 453 / 591 /
NTU-ST550A Spring 2005 homepage</title><lf></head><lf>
<aquí continúa el texto del documento (no mostrado)>
a. ¿Ha podido el servidor encontrar el documento? ¿En qué momento se suministró
respuesta con el documento?
R/.
El código de estado 200 indica que el camarero fue capaz de localizar el documento con éxito. La
respuesta fue enviada el Martes, 07 de marzo 2008 12:39:45.
b. ¿Cuándo fue modificado por última vez el documento?
R/.
El documento fue modificado por última vez el sábado 10 de diciembre 2005 18:27:46 GMT.
c. ¿Cuántos bytes contiene el documento devuelto?
R/.
Hay 3874 bytes en el documento que se devuelve.
d. ¿Cuáles son los primeros cinco bytes del documento que se está devolviendo? ¿Ha
acordado el servidor emplea una conexión persistente?
R/.
Los primeros cinco bytes del documento devuelto son: <!doc. El servidor emplea una conexión
persistente, como lo indica la conexión: Keep-Alive.
6. Utilice la especificación HTTP/1.1 (RFC 2616) para responder a las siguientes cuestiones:
a. Explique el mecanismo de señalización entre el cliente y el servidor para indicar que se
está cerrando una conexión persistente. ¿Quién puede señalizar el cierre de la conexión, el
cliente, el servidor o ambos?
R/.
El cliente o el servidor pueden indicar al otro que se va a cerrar la conexión persistente. Lo hacen
mediante la inclusión de la primitiva Connection -token "Close" en el campo ConnectionHeader del HTTP petición / respuesta.
b. ¿Qué servicios de cifrado proporciona HTTP?
R/.
HTTP no proporciona servicios de cifrado.
c. ¿Puede un cliente abrir tres o más conexiones simultáneas con un determinado
servidor?
R/.
"Los clientes que usan conexiones persistentes deben limitar el número de conexiones
simultáneas que mantienen a un servidor determinado. Un cliente no debe mantener más de 2
conexiones con cualquier servidor o proxy. "
d. Un servidor o un cliente pueden cerrar una conexión de transporte entre ellos si uno
detecta que la conexión ha estado inactiva durante un cierto tiempo. ¿Es posible que un
lado inicie el cierre de una conexión mientras que el otro lado está transmitiendo datos a
través de dicha conexión? Explique su respuesta.
R/.
Sí. Un cliente podría haber comenzado a enviar una nueva solicitud al mismo tiempo que el
servidor ha decidido cerrar la conexión “inactiva”. Desde el punto de vista del servidor, la
conexión se está cerrando mientras estaba en reposo, y del punto de vista del cliente, la
solicitud está en curso.
7. Suponga que en su navegador hace clic en un vínculo a una página web. La dirección
IP correspondiente al URL asociado no está almacenado en la caché de su host local, por lo que es
necesario realizar una búsqueda DNS para obtener la dirección IP. Suponga que antes de que su
host reciba la dirección IP de DNS se han visitado n servidores DNS y que los tiempos de ida y
vuelta (RTT) de las sucesivas visitas son RTT 1 , . . ., RTT n. Suponga además que la página web
asociada con el vínculo contiene exactamente un objeto, que consta de un pequeño fragmento de
texto HTML. Sea RTT 0 el tiempo RTT entre el host local y el servidor que contiene el objeto.
Suponiendo un tiempo de transmisión despreciable para el objeto, ¿cuánto tiempo transcurre
desde que el cliente hace clic en el vínculo hasta que recibe el objeto?
R/.
La cantidad total de tiempo para conseguir la dirección IP es:
RTT1 + RTT2 +…+ RTTn.
Una vez que se conoce la dirección IP, RTT0 que pasa a configurar la conexión TCP y otro pasa a
RTT0 solicitar y recibir un pequeño objeto. El tiempo de respuesta total es:
2RTT0 + RTT1 + RTT2 +…+ RTTn.
8. Continuando con el Problema P7, suponga que el archivo HTML hace referencia a ocho objetos
muy pequeños que se encuentran en el mismo servidor. Despreciando los tiempos de transmisión,
¿cuánto tiempo transcurre si se utiliza
a. HTTP no persistente sin conexiones TCP en paralelo?
R/.
RTT1 + … + RTTn + 2RTT0 + 8 * 2RTT0
=18RTT0 + RTT1 + … + RTTn
b. HTTP no persistente con el navegador configurado para 5 conexiones paralelo?
R/.
RTT1 + … + RTTn + 2RTT0 + 2 * 2RTT0
= 6RTT0 + RTT1 + … + RTTn
c. HTTP persistente?
R/.
RTT1 + … + RTTn + 2RTT0 + RTT0
= 3RTT0 + RTT1 + … + RTTn
9. En la red institucional conectada a Internet de la Figura 2.12, suponga que el tamaño medio de
objeto es de 850.000 bits y que la tasa media de solicitudes de los navegadores de la institución a
los servidores de origen es de 16 solicitudes por segundo. Suponga también que el tiempo que se
tarda desde que el router en el lado de Internet del enlace de acceso reenvía una solicitud HTTP
hasta que recibe la respuesta es, como media, de tres segundos (véase la Sección 2.2.5). Modele el
tiempo medio de respuesta total como la suma del retardo medio de acceso (es decir, el retardo
desde el router de Internet al router de la institución) y el retardo medio de Internet. Para el
retardo medio de acceso, utilice la expresión / (1 –), donde es el tiempo medio requerido para
enviar un objeto a través del enlace de acceso y es la tasa de llegada de los objetos al enlace de
acceso.
a. Calcule el tiempo medio de respuesta total.
R/.
El tiempo para transmitir un objeto de tamaño L sobre un enlace o tasa R es L/R. El promedio de
tiempo es el tamaño medio del objeto dividida por R:
Δ = (850.000 bits) / (15.000.000 bits / Seg ) = 0,0567 Seg
La intensidad de tráfico en el enlace viene dado por:
βΔ = ( 16 peticiones / seg ) ( 0.0567 seg / petición) = 0.907 .
Por lo tanto, el retardo de acceso promedio es (0,0567 seg ) / ( 1-0,907 ) ≈ 0,6 seg.
El total Por lo tanto, del tiempo de respuesta promedio es de 0.6 seg + 3 seg = 3,6 seg.
b. Ahora suponga que hay instalada una caché en la LAN institucional. Suponga que la tasa
de fallos es de 0,4. Calcule el tiempo de respuesta total
R/.
La intensidad del tráfico en el enlace de acceso se reduce en un 60 % desde el 60 % de las
peticiones que se cumplen dentro de la red institucional. Así, el retardo de acceso promedio es
(0,0567 seg) / [1 - (0,4) (0,907)] = 0,089 segundos. El tiempo de respuesta es de
aproximadamente cero si la petición se satisface con la memoria caché (lo que ocurre con
probabilidad 0.6), el tiempo medio de respuesta es de 0.089 sec + 3 seg = 3,089 seg para los
fallos de caché (que suceden el 40 % del tiempo). Así que el tiempo medio de respuesta es de
(0.6) (0 segundos) + (0.4) (3.089seg) = 1,24 segundos. Así, el tiempo medio de respuesta se
reduce de 3,6 a 1,24 seg.
10. Dispone de un enlace corto de 10 metros a través del cual un emisor puede transmitir a una
velocidad de 150 bits/segundo en ambos sentidos. Suponga que los paquetes de datos tienen una
longitud de 100.000 bits y los paquetes que contienen sólo comandos de control (por ejemplo,
ACK o de acuerdo) tienen una longitud de 200 bits. Suponga que hay N conexiones en paralelo y
que cada una utiliza 1/Ndel ancho de banda del enlace. Considere ahora el protocolo HTTP y
suponga que cada objeto descargado es de 100 kbytes de largo y que el objeto inicialmente
descargado contiene 10 objetos referenciados procedentes del mismo emisor. ¿Tiene sentido en
este caso realizar descargas en paralelo mediante instancias paralelas de HTTP no persistente?
Considere ahora HTTP persistente. ¿Cabe esperar alguna ventaja significativa respecto del caso no
persistente? Justifique y explique su respuesta.
R/.
Cada objeto puede ser completamente descargado pero en un paquete de datos. Con el Tp cabe
denotar el retardo de propagación de un solo sentido entre el cliente y el servidor.
Primero se consideran las descargas paralelas a través de conexiones no persistentes. La
descarga paralela permitiría 10 conexiones que comparten el ancho de banda de 150 bits/s, por
lo que cada uno recibe solo 15 bits/seg. Por lo tanto, el tiempo total necesario para recibir todos
los objetos está dado por:
(200/150 + TP + 200/150 + TP + 200/150 + TP + 100 000 / 150 + Tp) + ( 200 / ( 150/10 ) + TP + 200
/ ( 150/10 ) + TP + 200 / ( 150/10 ) + TP + 100000 / ( 150/10 ) + Tp )
= 7377 + 8 * Tp (segundos)
Entonces consideremos una conexión HTTP persistente. El tiempo total necesario es de:
(200/150 + TP + 200/150 + TP + 200/150 + TP + 100 000 / 150 + Tp)
+ 10 * (200/150 + TP + 100 000 / 150 + Tp)
= 7351 + 24 * Tp (segundos)
Supongamos que la velocidad de la luz es de 300 * 106 m/seg, a continuación,
Tp = 10 / (300 * 106) = 0,03 microsegundos.
Tp es insignificante en comparación con el retardo de transmisión.
Por lo tanto, vemos que el HTTP persistente no tiene ganancia significativa (menos de 1 por
ciento) sobre el caso no persistente con descarga paralela.
11. Continuando con el escenario del problema anterior, suponga que Benito comparte el enlace
con otros cuatro usuarios. Benito utiliza instancias paralelas de HTTP no persistente y los otros
cuatro usuarios utilizan HTTP no persistente sin descargas en paralelo.
a. ¿Le ayudan a Benito las conexiones en paralelo a obtener las páginas más rápidamente?
¿Por qué?
R/.
Sí, porque Benito tiene más conexiones, y así pueda obtener proporcionalmente más ancho de
banda de la cuota del ancho de banda total del enlace.
b. Si los cinco usuarios abren cinco instancias paralelas de HTTP no persistente, ¿seguirán
siendo beneficiosas las conexiones en paralelo de Benito? ¿Por qué?
R/.
Sí, Benito aún necesita realizar descargas en paralelo, de lo contrario va a recibir menos cuota
de ancho de banda que otros cuatro usuarios. De hecho, todos los usuarios podrían tender a
abrir más conexiones con el fin de ganar más cuota de ancho de banda.
12. Escriba un programa TCP simple para un servidor que acepte líneas de entrada procedentes de
un cliente y muestre dichas líneas en la salida estándar del servidor. (Puede realizar esta tarea
modificando el programa TCP Servidor. Java visto en el capítulo.)
Compile y ejecute su programa. En cualquier otra máquina que disponga de un navegador web,
configure el servidor proxy en el navegador para que apunte al host que está ejecutando su
programa servidor; configure también el número de puerto de la forma apropiada. Su navegador
deberá ahora enviar sus mensajes de solicitud GET a su servidor y el servidor tendrá que mostrar
dichos mensajes en su salida estándar. Utilice esta plataforma para determinar si su navegador
genera mensajes GET condicionales para los objetos almacenados localmente en la caché.
R/.
13. ¿Cuál es la diferencia entre MAIL FROM: en SMTP y Fromm: en el propio mensaje de correo?
R/.
La MAIL FROM: en SMTP es un mensaje desde el cliente SMTP que identifica al remitente del
mail a servidor SMTP. “El De:” en el mensaje de correo no es un mensajes SMTP, sino más bien
es sólo una línea en el cuerpo del mensaje de correo.
14. ¿Cómo marca SMTP el final del cuerpo de un mensaje? ¿Cómo lo hace HTTP? ¿Puede HTTP
utilizar el mismo método que SMTP para marcar el final del cuerpo de un mensaje? Explique su
respuesta.
R/.
SMTP utiliza una línea que contiene sólo un período para marcar el final de un cuerpo de
mensaje.
HTTP utiliza "campo de encabezado Content-Length" para indicar la longitud de un cuerpo del
mensaje.
No, HTTP no puede utilizar el método utilizado por SMTP, porque el mensaje HTTP podría ser
datos binarios, mientras que en SMTP, en el cuerpo del mensaje debe estar en formato ASCII de
7 bits.
15. Lea el documento RFC 5321 dedicado a SMTP. ¿Qué quiere decir MTA? Considere el siguiente
mensaje de correo basura recibido (modificado a partir de un correo basura real). Suponiendo que
únicamente el remitente de este mensaje de correo es malicioso y que los demás hosts son
honestos, identifique al host malicioso que ha generado este correo basura.
From - Fri Nov 07 13:41:30 2008
Return-Path: <tennis5@pp33head.com>
Received: from barmail.cs.umass.edu
(barmail.cs.umass.edu [128.119.240.3]) by cs.umass.edu
(8.13.1/8.12.6) for <hg@cs.umass.edu>; Fri, 7 Nov 2008
13:27:10 -0500
Received: from asusus-4b96 (localhost [127.0.0.1]) by
barmail.cs.umass.edu (Spam Firewall) for
<hg@cs.umass.edu>; Fri, 7 Nov 2008 13:27:07 -0500
(EST)
Received: from asusus-4b96 ([58.88.21.177]) by
barmail.cs.umass.edu for <hg@cs.umass.edu>; Fri,
07 Nov 2008 13:27:07 -0500 (EST)
Received: from [58.88.21.177] by
inbnd55.exchangeddd.com; Sat, 8 Nov 2008 01:27:07 +0700
From: "Jonny" <tennis5@pp33head.com>
To: <hg@cs.umass.edu>
Subject: Cómo asegurar sus ahorros
R/.
MTA es sinónimo de Agente de Transferencia de Correo. Un correo electrónico se envía por una
fuente a un MTA y entonces se sigue una secuencia de MTA para llegar al lector de correo del
receptor.
Vemos que este correo electrónico no deseado sigue una cadena de MTA. Un MTA honesto debe
informar donde recibe el mensaje. Nótese que en este correo electrónico, "asusus-4b96
([58.88.21.177]) "no informa de donde recibe el correo electrónico. Como se supone que sólo el
autor es errado, por lo que "asusus-4b96 ([58.88.21.177])" debe ser el originador.
16. Lea el documento RFC 1939 dedicado a POP3. ¿Cuál es el propósito del comando
UIDL POP3?
R/.
UIDL es abreviatura de "lista única-ID". Cuando un cliente POP3 emite el comando UIDL, el
servidor responde con el ID de mensaje único para todos los mensajes presentes en los usuarios
de buzones. Este comando es útil para "descargar y guardar". Al mantener un archivo que
enumera los mensajes recuperados en las sesiones anteriores, el cliente puede utilizar el
comando UIDL para determinan que ya se han visto los mensajes en el servidor.
17. Imagine que accede a su correo electrónico utilizando POP3.
a. Suponga que ha configurado su cliente de correo POP para operar en el modo
descargar y borrar. Complete la siguiente transacción:
C: list
S: 1 498
S: 2 912
S:.
C: retr 1
S: bla bla...
S: ..........blah
S:.
R/.
C:dele 1
C:retr 2
S:(blah blah …
S:………..blah)
S:.
C:dele 2
C:quit
S:+OK POP3 server signing off
b. Suponga que ha configurado su cliente de correo POP para operar en el modo
descargar y guardar. Complete la siguiente transacción:
C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S: bla bla ...
S: ..........bla
S: .
R/.
C:retr 2
S:blah blah …
S:………..blah
S:.
C:quit
S:+OK POP3 server signing off
c. Suponga que ha configurado su cliente de correo POP para operar en el modo
descargar y guardar. Utilizando su transcripción del apartado (b), suponga que
recupera los mensajes 1 y 2, sale de POP, y cinco minutos más tarde vuelve a acceder
otra vez a POP para recuperar un nuevo mensaje de correo. Suponga que en ese
intervalo de cinco minutos nadie le ha enviado un nuevo mensaje de correo.
Proporcione una transcripción de esta segunda sesión de POP.
R/.
C:list
S:1 498
S:2 912
S:.
C:retr 1
S:blah …..
S:….blah
S:.
C:retr 2
S:blah blah …
S:………..blah
S:.
C:quit
S:+OK POP3 server signing off
18.
a. ¿Qué es una base de datos whois?
R/.
Para una determinada entrada de nombre de dominio (como ccn.com), dirección IP o
red nombre del administrador, whoisdatabase se puede utilizar para localizar el registro
correspondiente, servidor whois, servidor DNS, y así sucesivamente.
d. Utilice varias bases de datos whois de Internet para obtener los nombres de dos
servidores DNS. Indique qué bases de datos whois ha utilizado.
R/.
NS4.YAHOO.COM de www.register.com; NS1.MSFT.NET de ww.register.com
e. Utilice el programa nslookup en su host local para enviar consultas DNS a tres
servidores DNS: su servidor DNS local y los dos servidores DNS que haya encontrado
en el apartado (b). Intente realizar consultas para obtener registros de recursos de tipo
A, NS y MX. Escriba un resumen de sus hallazgos.
R/.
Dominio local: www.mindspring.com
Servidores Web: www.mindspring.com
207.69.189.21, 207.69.189.22,
207.69.189.23, 207.69.189.24,
207.69.189.25, 207.69.189.26, 207.69.189.27,
207.69.189.28
Servidores de correo: mx1.mindspring.com (207.69.189.217)
mx2.mindspring.com (207.69.189.218)
mx3.mindspring.com (207.69.189.219)
mx4.mindspring.com (207.69.189.220)
Servidores de nombres: itchy.earthlink.net (207.69.188.196)
scratchy.earthlink.net (207.69.188.197)
www.yahoo.com
Servidores Web: www.yahoo.com (216.109.112.135, 66.94.234.13)
Servidores de correo : a.mx.mail.yahoo.com ( 209.191.118.103 )
b.mx.mail.yahoo.com ( 66.196.97.250 )
c.mx.mail.yahoo.com ( 68.142.237.182 , 216.39.53.3 )
d.mx.mail.yahoo.com ( 216.39.53.2 )
e.mx.mail.yahoo.com ( 216.39.53.1 )
f.mx.mail.yahoo.com ( 209.191.88.247 , 68.142.202.247 )
g.mx.mail.yahoo.com ( 209.191.88.239 , 206.190.53.191 )
Servidores de nombres : ns1.yahoo.com ( 66.218.71.63 )
ns2.yahoo.com ( 68.142.255.16 )
ns3.yahoo.com ( 217.12.4.104 )
ns4.yahoo.com ( 68.142.196.63 )
ns5.yahoo.com ( 216.109.116.17 )
ns8.yahoo.com ( 202.165.104.22 )
ns9.yahoo.com ( 202.160.176.146 )
www.hotmail.com
Servidores Web : www.hotmail.com ( 64.4.33.7 , 64.4.32.7 )
Servidores de correo : mx1.hotmail.com ( 65.54.245.8 , 65.54.244.8 , 65.54.244.136 )
mx2.hotmail.com ( 65.54.244.40 , 65.54.244.168 , 65.54.245.40 )
mx3.hotmail.com ( 65.54.244.72 , 65.54.244.200 , 65.54.245.72 )
mx4.hotmail.com ( 65.54.244.232 , 65.54.245.104 , 65.54.244.104 )
Servidores de nombres : ns1.msft.net ( 207.68.160.190 )
ns2.msft.net ( 65.54.240.126 )
ns3.msft.net ( 213.199.161.77 )
ns4.msft.net ( 207.46.66.126 )
ns5.msft.net ( 65.55.238.126 )
f.
Utilice el programa nslookup para localizar un servidor web que tenga varias
direcciones IP. ¿Tiene el servidor web de su institución (centro de estudios o empresa)
varias direcciones IP?
R/.
El servidor web yahoo tiene varias direcciones IP
www.yahoo.com (216.109.112.135, 66.94.234.13)
g. e. Utilice la base de datos whois ARIN para determinar el rango de direcciones IP
utilizado en su universidad.
R/.
El rango de direcciones de la Universidad Politécnica: 128.238.0.0 - 128.238.255.255
h. Describa cómo un atacante puede utilizar las bases de datos whois y la herramienta
nslookup para realizar labores de reconocimiento en una institución antes de lanzar un
ataque.
R/.
Un atacante puede utilizar la herramienta whoisdatabase y nslookup para determinar
Los rangos de dirección IP, direcciones de servidor DNS, etc, para la institución de
destino.
i. Explique por qué las bases de datos whois deben estar disponibles públicamente.
R/.
Mediante el análisis de la dirección de origen de los paquetes de ataque, la víctima
puede utilizar whois para obtener información acerca de dominio desde donde viene el
ataque y, posiblemente, informar a los administradores del dominio origen.
19. En este problema empleará la útil herramienta dig, disponible en los hosts Unix y Linux
para explorar la jerarquía de los servidores DNS. Como se muestra en la Figura 2.21, un
servidor DNS que se encuentra en un nivel superior de la jerarquía DNS delega una
consulta DNS en un servidor DNS que se encuentra en un nivel más bajo de la jerarquía,
devolviendo al cliente DNS el nombre de dicho servidor DNS del nivel más bajo. Lea
primero la página de manual dedicada a dig y, a continuación, responda a las siguientes
preguntas.
a. Comenzando por un servidor DNS raíz (uno de los servidores raíz [a-m].rootservers.net), inicie una secuencia de consultas para obtener la dirección IP del servidor
web de su departamento, utilizando la herramienta dig . Visualice la lista de nombres de
los servidores DNS incluidos en la cadena de delegación que ha obtenido como respuesta a
su consulta.
R/.
La siguiente cadena de delegación isused para gaia.cs.umass.edu
a.root-servers.net
E.GTLD-SERVERS.NET
ns1.umass.edu (autorizada)
En primer comando:
cavar + norecurse@a.root-servers.net cualquier gaia.cs.umass.edu
;; AUTORIDAD SECCIÓN:
edu. 172800 IN NS E.GTLD-SERVERS.NET.
edu. 172800 IN NS a.gtld-SERVERS.NET.
edu. 172800 IN NS G3.NSTLD.COM.
edu. 172800 IN NS D.GTLD-SERVERS.NET.
edu. 172800 IN NS H3.NSTLD.COM.
edu. 172800 IN NS L3.NSTLD.COM.
edu. 172800 IN NS M3.NSTLD.COM.
edu. 172800 IN NS C.GTLD-SERVERS.NET.
Entre todos los servidores DNS edu vueltos, enviaremos una consulta a la primera.
cavar + norecurse@E.GTLD-SERVERS.NET cualquier gaia.cs.umass.edu
umass.edu. 172800 IN NS ns1.umass.edu.
umass.edu. 172800 IN NS ns2.umass.edu.
umass.edu. 172800 IN NS ns3.umass.edu.
Entre los tres servidores DNS autorizados vueltos, enviaremos una consulta a la primera.
cavar + norecurse@ns1.umass.edu cualquier gaia.cs.umass.edu
gaia.cs.umass.edu. 21600 IN A 128.119.245.12
b. Repita el apartado (a) para varios sitios web populares, como por ejemplo
google.com, yahoo.com o amazon.com.
R/.
La respuesta para google.com podría ser:
a.root-servers.net
E.GTLD-SERVERS.NET
ns1.google.com (autorizada)
20. Suponga que puede acceder a las cachés de los servidores DNS locales de su departamento.
¿Puede proponer una forma de determinar de manera aproximada los servidores web (situados
fuera de su departamento) que son más populares entre los usuarios del departamento? Explique
su respuesta.
R/.
Podemos tomar periódicamente instantáneas de los cachés DNS en los servidores DNS
locales. El Servidor Web que aparece con más frecuencia en el cachés DNS es el servidor
más popular.
Esto es porque si más usuarios están interesados en un servidor Web, entonces DNS
solicita el servidor por el cual envían con mayor frecuencia los usuarios. De este modo,
aparecerá ese servidor Web en el DNS almacenado en caché con mayor frecuencia.
21. Suponga que su departamento tiene un servidor DNS local para todas las computadoras del
departamento. Usted es un usuario normal (es decir, no es un administrador de la red o del
sistema). ¿Puede determinar de alguna manera si desde alguna computadora de su departamento
se ha accedido hace unos pocos segundos a un determinado sitio web externo? Explique su
respuesta.
R/.
Sí, podemos utilizar excavación para consultar ese sitio Web en el servidor DNS local.
Por ejemplo, "cavar cnn.com" devolverá el tiempo de consulta para encontrar cnn.com.
Si es visitada apenas hace un par de segundos, una entrada para cnn.com se almacena
en caché en el DNS local caché, por lo que el tiempo de consulta es 0 ms. De lo
contrario, el tiempo de consulta es mayor.
22. Desea distribuir un archivo de F= 15 Gbits a N pares. El servidor tiene una velocidad de carga
de us = 30 Mbps, y cada par tiene una velocidad de descarga de di = 2 Mbps y una velocidad de
carga igual a u. Para N= 10, 100 y 1.000, y u= 300 kbps, 700 kbps y 2 Mbps, prepare una gráfica
que proporcione el tiempo mínimo de distribución para cada una de las combinaciones de N y u,
tanto para una distribución cliente-servidor como para una distribución P2P.
R/.
Para calcular el tiempo de distribución mínima para la distribución de cliente-servidor, se
utiliza la siguiente fórmula:
Del mismo modo, para el cálculo del tiempo de distribución mínima para la distribución
P2P, usamos la siguiente fórmula:
Cuando:
Nota: 300Kbps = 300/1024 Mbps.
Cliente Servidor
N
10
100
1000
300 Kbps
700 Kbps
2 Mbps
7680
7680
7680
51200 512000
51200 512000
51200 512000
Pir to Pir
N
10
100
300 Kbps
700 Kbps
2 Mbps
7680
7680
7680
25904 47559
15616 21525
7680 7680
1000
23. Desea distribuir un archivo de F bits a N pares utilizando una arquitectura cliente servidor.
Suponga un modelo flexible, en el que el servidor puede transmitir simultáneamente a varios
pares, transmitiendo a cada par a distintas velocidades, siempre y cuando la velocidad combinada
no sea mayor que us.
a. Suponga que us/N d mín. Especifique un esquema de distribución que tenga un tiempo de
distribución de NF/us.
R/.
Considere la posibilidad de un esquema de distribución en la que el servidor envía el
archivo a cada cliente, en Paralelamente, a razón de una tasa de nosotros / N. Tenga en
cuenta que esta tasa es menor que cada uno de los clientes de Descargar tasa, ya que
por supuesto es / N ≤ dmin. Así, cada cliente también puede recibir a una velocidad es /
N. Dado que cada cliente recibe a la tasa es / N, el tiempo para cada cliente reciba la
totalidad archivo es F / (us / N) = NF / us. Dado que todos los clientes reciban el archivo
en NF / nosotros, el general tiempo de distribución es también NF / us.
b. Suponga que us/N d mín. Especifique un esquema de distribución que tenga un tiempo de
distribución de F/d mín.
R/.
Considere la posibilidad de un esquema de distribución en la que el servidor envía el
archivo a cada cliente, en en paralelo, a una tasa de Dmin. Tenga en cuenta que la tasa
agregada, N dmin, está a menos de enlace del servidor tasa de nosotros, ya que por
supuesto es / N ≥ dmin. Dado que cada cliente recibe en dmin tasa, el tiempo de para
cada cliente para recibir el archivo completo es F / dmin. Dado que todos los clientes
reciban el archivo en este tiempo, el tiempo total de distribución es también F / dmin.
c. Demuestre que, en general, el tiempo mínimo de distribución está dado por máx. {NF/us,
F/d mín}.
R/.
{
Supongamos que
partir de (a) tenemos
}
. Luego de la Ecuación 1 tenemos
. Combinando estos dos da:
. Pero a
Podemos demostrar de manera similar que
La combinación de la Ecuación 2 y la Ecuación 3 da el resultado deseado.
24. Desea distribuir un archivo de Fbits a N pares utilizando una arquitectura P2P. Suponga un
modelo flexible. Con el fin de simplificar, suponga que d mín es muy grande, por lo que el ancho
de banda de descarga de los pares no es nunca un cuello de botella.
a. Suponga que us (us + u 1+... + u N)/N. Especifique un esquema de distribución que tenga un
tiempo de distribución de F/us.
R/.
us<= (us+ u)/N
Ecuación 1
Divida el archivo en N partes, con la i ª parte que tiene el tamaño (ui / u) F. Los transmite
servidor el i ª parte para mirar i en ri tasa = (ui / u) nosotros. Tenga en cuenta que R1 + R2 + .....
+ rN = nosotros, de modo que el tasa servidor agregada no exceda la tasa de enlace del servidor.
También tenemos cada par i enviar los bits que recibe a cada uno de los N-1 pares en ri tasa
. El agregado
Velocidad de reenvío por i pares es (N-1) ri
. tenemos
donde la última desigualdad sigue de la ecuación 1. Así, la tasa de transmisión agregada de
pares i es menor que su ui velocidad del enlace
.
En este esquema de distribución, asomo i recibe los bits a una tasa global de
b. Suponga que us (us + u 1 +... + u N)/N. Especifique un esquema de distribución que tenga un
tiempo de distribución de NF/ (us + u 1 +... +u N).
us>= (us+ u)/N
Ecuación 2
deja ri= ui/(N-1) y rN+1= (us– u/(N-1))/N
En este esquema de distribución, el archivo se divide en N partes 1. El servidor envía los bits de
la i ª parte a la i ª par (i = 1, ...., N) en ri tarifa. Cada par i reenvía los bits llegar a RI tasa a cada
uno de los otros N-1 pares. Además, el servidor envía los bits de la (N +1) parte a la tasa rN 1 a
cada uno de los pares N. Los compañeros no reenvían el bits de la (N +1) parte.
La tasa global de envío del servidor es r1+ …. + rN+ N rN+1= u/(N-1) + us– u/(N-1) = us
Por lo tanto, la tasa de envío del servidor no supera su tasa de enlace. La tasa de emisión total
de asomo i es (N-1)ri= ui
Por lo tanto, la tasa de envío de cada interlocutor, no supera su tasa de enlace.
En este esquema de distribución, asomo i recibe los bits a una tasa global de
Así, cada par recibe el archivo en NF / (us + U).
(Por simplicidad, hemos descuidado para especificar el tamaño del archivo de partfor i = 1, ...., N
1. Ahora dispondrá que aquí. Deje que Δ = (us + u) / N el tiempo de distribución. Para i = 1, ..., N,
el i ª parte del archivo es Fi = ri Δbits. La (N 1) er parte del archivo es FN +1 = RN 1 Δbits. Es
sencillo mostrar que la F1 + ..... + FN 1 = F.)
c.Demuestre que, en general, el tiempo mínimo de distribución está dado por máx. {F/us, NF/ (us +
u 1 +... + u N)}.
R/.
La solución a esta parte es similar a la de 17 (c). Sabemos de la sección 2.6 que Combinando esto
con (a) y (b) da el resultado deseado.
25. Considere una red solapada con N pares activos, disponiendo cada pareja de pares de una
conexión TCP activa. Suponga también que las conexiones TCP atraviesan un total de M routers.
¿Cuántos nodos y fronteras existen en la correspondiente red solapada?
R/.
Hay nodos en la red superpuesta. Hay n (n-1) / 2edges.
26. Suponga que Benito se une a un torrente Bit Torrent, pero no desea suministrar datos a otros
pares (lo que se denomina “ir por libre”).
R/.
Sí. Su primera afirmación es posible, siempre y cuando haya suficientes compañeros alojados en
el enjambre para un tiempo suficientemente largo. Bob siempre puede recibir datos a través de
otros compañeros sin congestionarse.
Su segunda afirmación también es cierta. Se puede ejecutar un cliente en cada máquina, y
permitir que cada cliente haga "Parasitismo", y combinar esos trozos recogidos de diferentes
máquinas en una sola presentar. Él puede incluso escribir un programa de planificación
pequeño para permitir que diferentes máquinas sólo pidiendo para diferentes fragmentos del
archivo. Esto es en realidad una especie de ataque Sybil en las redes P2P.
27. En este problema, el objetivo es determinar la eficiencia de un sistema de compartición de
archivos P2P como Bit Torrent. Considere los pares Benito y Alicia. Éstos se unen a un torrente en
el que, en total, hay M pares (incluyendo a Benito y Alicia) que están compartiendo un archivo que
consta de N fragmentos. Suponga que en un instante determinado t, los fragmentos que tiene un
par están seleccionados de forma aleatoria y uniforme de entre los N fragmentos y que ningún par
tiene todos los N fragmentos. Responda a las siguientes preguntas.
a. ¿Cuál es la probabilidad de que Benito tenga todos los fragmentos que tiene Alicia, si
expresamos el número de fragmentos que tiene cada uno como nb (Benito) y na (Alicia)?
R/.
Tenga en cuenta que se supone nb>=na.
Donde C (n, n) es la notación para la combinación, lo que significa que el
número de maneras de elegir nout de N.
b. Elimine algunas de las suposiciones del apartado (a) para calcular la probabilidad de que Benito
tenga todos los fragmentos que tiene Alicia, si ésta tiene n fragmentos?
R/.
b. Suponga que cada par de Bit Torrent tiene cinco vecinos. ¿Cuál es la probabilidad de que
Benito tenga datos que sean del interés de al menos uno de sus cinco vecinos?
R/.
28. En el ejemplo de la DHT circular de la Sección 2.6.2, suponga que el par 3 sabe que el par 5 ha
abandonado la red. ¿Cómo actualiza el par 3 la información de estado de su sucesor? ¿Qué par
será ahora su primer sucesor? ¿Y su segundo sucesor?
R/.
Par 3 se entera de que Par 5 acaba de salir del sistema, de modo que Par 3 pide un mayor
sucesor (par 4) para el identificador de su sucesor inmediato (pares 8). Luego los homólogos 3
harán que el 8 compañero como su segundo sucesor.
Tenga en cuenta que el 3 compañero sabe que el 5 compañero fue originalmente el primer
sucesor de par de 4, por lo que par 3 tiene que esperar hasta que par 4 terminen la actualización
de su primer sucesor.
29. En el ejemplo de la DHT circular de la Sección 2.6.2, suponga que un nuevo par 6 desea unirse
a la DHT y que inicialmente el par 6 sólo conoce la dirección IP del par 15. ¿Qué pasos tendrá que
dar?
R/.
Par 6 en primer lugar enviara un mensaje par 15, que dice "lo que va a ser pares predecesor de 6
y sucesor?” Este mensaje se reenvía a través de la DHT hasta que alcance entre pares 5, que se
da cuenta de que será el predecesor de 6 y que su actual sucesor, por pares 8, se convertirá en
El sucesor de 6. A continuación, los compañeros 5 envían esta información predecesor y sucesor
de nuevo a 6. Par 6 ahora pueden unirse a la DHT haciendo pares 8 de su sucesor y notificando a
los compañeros que 5 debe cambiar su inmediato sucesor a 6.
30. Sea una red DHT circular con nodos e identificadores de clave en el rango de [0, 63].
Suponga que hay ocho pares cuyos identificadores son 0, 8, 16, 24, 32, 40, 48 y 56.
a. Suponga que cada par puede tener un par de atajo. Para cada uno de los ocho pares,
determine su par de atajo, de manera que el número de mensajes enviados para
cualquier consulta (iniciada en cualquier par) sea mínimo.
R/.
Nuestra hipótesis acerca de las claves y consultas:
1. Todas las teclas son uniformemente distribuidos al azar en el rango de teclas, y los 8 pares
son responsable para el mismo número de consultas en promedio.
2. Las consultas generadas por un compañero son para llaves uniformemente al azar
distribuidos en el rango de teclas. Es decir, la consulta para cualquier clave se genera con la
misma probabilidad.
Debido a la homogeneidad de los compañeros y las consultas, sabemos que todos los
compañeros elegirán un compañero de acceso directo con el mismo número de saltos en
distancia de superposición.
También suponemos que, por defecto, un nodo del mismo nivel conocido sobre su inmediato
sucesor de pares y su nodo predecesor inmediato. (A diferencia del caso en el que un
compañero tiene que conocer su segundo sucesor inmediato con el fin de hacer frente a la
rotación de pares).
Más Suponemos que un compañero puede reenviar consultas a su predecesor.
Y si existen varias rutas de enrutamiento para una consulta, un compañero siempre elige el
camino más corto.
Tenga en cuenta el número de mensajes enviados para una consulta para una clave es igual al
número de enrutamiento de saltos necesarios desde el generador de consultas puerto el par es
decir manteniendo pulsada la tecla.
Tenga en cuenta que en nuestra descripción, un salto de enrutamiento es diferente de un salto
de superposición. Una superposición hop simplemente significa un salto lógico entre dos pares
adyacentes a lo largo del anillo de superposición DHT.
Pero un salto de enrutamiento puede abarcar múltiples saltos de superposición (o múltiples
pares adyacentes consecutivos) si se permite el acceso directo.
Por lo tanto, minimizar el número de mensajes enviados para cualquier consulta (a partir de
cualquier par) es equivalente a minimizar el número promedio o total de saltos de enrutamiento
atravesadas de una de igual a todos los demás compañeros.
Sin pérdida de generalidad, echemos un vistazo a los compañeros 0.
Para resolver este problema, nos fijamos en todas las posibilidades: un nodo accesos directos a
un compañero superpuestos en dos saltos de distancia, en el anillo de identificación DHT , o tres
superposición saltos de distancia, o cuatro superposición saltos de distancia, etc.
Podemos encontrar que la mejor configuración es para un par to elegir un compañero de acceso
directo con 4 superposiciones de lúpulo de distancia. "Mejor ", en el sentido de que el número
promedio de mensajes por consulta (o el número total de saltos de enrutamiento para todas las
consultas de todas las claves del espacio de claves) es minimizada. El cálculo se muestra en la
siguiente tabla. Cada columna (excepto la Última columna) muestra el número de mensajes que
se necesita para encaminar una consulta dentro de un rango.
Vemos que el número total de mensajes que se necesita es de 11 cuando cada atajos de pares
para otro compañero con 4 saltos de superposición (es decir, abarcan 4 pares adyacentes
consecutivos) de distancia.
Tenga en cuenta, si existen varias rutas de enrutamiento para una consulta, elegimos la longitud
del camino más corto que el número de mensajes que se necesita.
Así, por ejemplo, para el caso en que un compañero atajos a otro compañero 4 superposición
saltos de distancia, y si los compañeros de 0 consulta es para una clave en el rango (48,56],
entonces el camino más corto es 0Æ56, sólo un enrutamiento hop (es decir, un mensaje).
b. Repita el apartado (a) pero ahora permita que cada par tenga dos pares de atajo.
R/.
Podemos encontrar que la mejor configuración es para un compañero que elegir dos pares de
método abreviado con 3 y 6 de superposición saltos de distancia, o dos pares de método
abreviado con 5 y 6 de superposición saltos de distancia.
31.
Puesto
que
un
número
entero
perteneciente
al
intervalo
[0,
2
n
1] se puede expresar como un número binario de n bits en una
DHT, cada clave se puede expresar como k= (k 0, k1,. . ., kn–1) y cada identificador de un par
como p= (p0, p1,. . ., pn–1), definimos la distancia XOR entre una clave k y un par p como
Explique cómo se puede utilizar esta métrica para asignar parejas (clave, valor) a los pares. (Para
obtener más información sobre cómo crear una DHT eficiente utilizando esta métrica natural,
consulte [Maymounkov 2002] donde se describe la DHT Kademlia.)
R/.
Para cada clave, primero calculamos las distancias (según d (k, p)) entre sí mismo y de todos los
compañeros, y luego almacenar esta clave en el par que está cerrado a esta llave (con el menor
valor de la distancia).
Entonces, como en DHT circular descrita en el libro de texto, arreglamos los pares en un anillo.
En este anillo, hay muchos grupos de teclas, y cada grupo se centra en un par particular.
Cada clave en el grupo de pares es una más a este peer que a todos los demás compañeros.
Algunas de las teclas en este grupo puede ser más grande que la ID de este par. Tenga en cuenta
que un nivel es responsable de la llaves en su racimo, en lugar de ser el responsable de llaves
sólo que son anterior (es decir, teclas tienen un valor menor que el ID de este par) en el rango de
teclas.
Cada par mantiene una tabla de enrutamiento de n Listas de entradas. Cada entrada contiene la
información de otro par. Estas listas son las k -th (1 < = k < = n) lista dispuestas secuencialmente,
y contiene pares de identificadores que difieren del significado de este par en el bit -k pero
partido con todos los k- 1bits más significativos que k , incluyendo el bit más significativo , la
segunda el bit más significativo , así sucesivamente, hasta que el bit más significativo (k- 1 ) thmost . Nótese aquí que utilizamos mas larga en el prefijo. También tenga en cuenta que con
esta disposición, es posible que la mitad de los ID de la gama ID pueden ser puestos en la
primera lista.
Si i> j, a continuación, un par en i- thlist está más cerca de este nodo de un par en j- thlist.
La consulta de rutas se puede hacer de la siguiente manera. Un par primero intenta hacer
coincidir los bits de la clave con sus propios bits de identificaciones, y encuentra el "derecho"
Listín su tabla de enrutamiento, y luego reenvía el consultar a cualquier entrada en la lista. Una
lista "correcta" es una lista que tiene el prefijo más largo a juego con la tecla de destino. Una vez
que un compañero recibe la clave de destino, sino que también comprueba su tabla de
enrutamiento, y reenvía los pares de consulta de búsqueda en la lista de " derecha " , etc , etc ,
hasta que un par que es responsable de la clave se encuentra , o devuelve "no tan importante ",
si no el enrutamiento es posible .
32. Considere una versión generalizada del esquema descrito en el problema anterior. En lugar de
utilizar números binarios, ahora vamos a tratar las claves y los identificadores de los pares como
números en base b, donde b> 2, y luego utilizaremos la métrica del problema anterior para diseñar
una DHT (sustituyendo 2 por b). Compare esta DHT basada en números en base b con la DHT
basada en números binarios. En el caso peor, ¿qué DHT genera más mensajes por consulta? ¿Por
qué?
R/.
Se trata de una generalizada Kademlia DHT, y algo similar al prefijo de coincidencia de DHT de
pastry´s .
La DHT basado en números binarios genera más mensajes, log2N en el peor de los casos.
Esta nueva DHT genera logbN registros de mensajes en el peor de los casos.
33. Dado que las DHT son redes solapadas, no necesariamente se corresponden con las redes
físicas subyacentes en el sentido de que dos pares vecinos pueden estar físicamente muy alejados;
por ejemplo, un par podría encontrarse en Asia y su vecino estar en América del Norte. Si
asignamos identificadores de forma aleatoria y uniforme a los pares que acaban de unirse a la red,
¿podría este esquema de asignaciones hacer que se produjera esa no correspondencia? Explique
su respuesta. ¿Cómo podría esa no correspondencia afectar al rendimiento de la DHT?
R/.
Sí, ese esquema de asignación de claves de sus compañeros no tiene en cuenta la red
subyacente en absoluto, por lo que muy probablemente provoca falta de coincidencia.
El desajuste puede potencialmente degradar el rendimiento de la búsqueda. Por ejemplo,
considere:
P1 camino lógico (que consiste de solo dos enlaces lógicos): AÆBÆC, donde A y B son
compañeros vecinos, y B y C son vecinos compañeros. Supongamos que hay otro
p2 camino lógico de A a B (que consta de 3 enlaces lógicos): AÆDÆEÆC.
Podría ser el caso de que A y B podrían estar muy lejos físicamente, y B y C podrían estar muy
lejos físicamente. Pero A, D, E, y C están muy cerca físicamente. En otras palabras, un camino
lógico más corta corresponde a una ruta física más largo que hace un tiempo lógico camino.
34. Instale y compile los programas Java TCP Cliente y UDP Cliente en un host y los programas TCP
Servidor y UDP Servidor en otro host.
a. Suponga que ejecuta TCP Cliente antes que el programa TCP Servidor. ¿Qué ocurrirá? ¿Por qué?
R/.
Si ejecuta TCP Cliente primero, entonces el cliente intentará establecer una conexión TCP con
un proceso de servidor que no existe. No se hará una conexión TCP.
b. Suponga que ejecuta el programa UDP Cliente antes que UDP Servidor. ¿Qué ocurrirá? ¿Por
qué?
R/.
UDP Cliente no establece una conexión TCP con el servidor. Por lo tanto, todo lo debería
funcionar bien si se ejecuta por primera vez UDP Cliente, a continuación, ejecute UDP servidor y,
a continuación, escriba algún de entrada en el teclado.
c. ¿Qué ocurrirá si utiliza diferentes números de puerto para los lados de cliente y de servidor?
R/.
Si utiliza números de puerto diferentes, entonces el cliente intentará establecer una conexión
TCP conexión con el proceso incorrecto o un proceso inexistente. Se producirán errores.
35. Suponga que en el programa UDP Client .java sustituimos la línea
DatagramSocket socketCliente= new DatagramSocket ();
Por
DatagramSocket socketCliente= new DatagramSocket (5432);
¿Será necesario modificar el programa UDPServidor.java? ¿Cuáles son los números de puerto para
los sockets en UDP Client y UDP Servidor? ¿Cuáles eran antes de realizar este cambio?
R/.
Con la línea original, UDP Cliente hace específico un número de puerto cuando se crea el zócalo.
En este caso, el código permite que el sistema operativo subyacente elija un número de puerto.
Con la línea de remplazo, cuando se ejecuta UDP Cliente, un socket UDP se crea con número de
puerto 5432.
UDP Server necesita saber el número de puerto del cliente para que pueda enviar paquetes de
vuelta a la socket del cliente correcto. Echando un vistazo a UDP Server, vemos que el número
de puerto del cliente no es "Hard-wired" en el código del servidor, sino el UDP Server determina
el número de puerto del cliente por desentrañar, el datagrama que recibe del cliente (utilizando
el método. Consigue un puerto ()). Así el Servidor UDP funciona con cualquier número de
puerto del cliente, incluyendo 5432. El UDP servidor por lo tanto, no necesita ser modificado.
Antes:
El socket de cliente = x (elegido por el sistema operativo)
Socket Server = 9876
Después:
El socket de cliente = 5432
Capítulo 3 Cuestiones de repaso
SECCIONES 3.1–3.3
R1. Suponga que la capa de red proporciona el siguiente servicio: la capa de red del host de origen
acepta un segmento con un tamaño máximo de 1.200 bytes y una dirección de host de destino de
la capa de transporte. La capa de red garantiza la entrega del segmento a la capa de transporte en
el host de destino. Suponga que en el host de destino pueden ejecutarse muchos procesos de
aplicaciones de red.
a. Diseñe el protocolo de la capa de transporte más simple posible que entregue los datos de la
aplicación al proceso deseado en el host de destino. Suponga que el sistema operativo del host de
destino ha asignado un número de puerto de 4 bytes a cada proceso de aplicación en ejecución.
R/.
Llame a este protocolo de transporte (STP). En el lado emisor, STP acepta desde el proceso de
envío de un fragmento de datos que no exceda de 1.196 bytes, una dirección de host de destino
y un número de puerto de destino. STP agrega cuatro bytes de cabecera de cada fragmento y
pone el número de puerto del proceso de destino en este encabezado. STP entonces da la
dirección del host de destino y el segmento resultante para la capa de red. La capa de red
proporciona el segmento a STP en la host de destino. STP a continuación, examina el número de
puerto en el segmento, extrae los datos del segmento, y pasa los datos al proceso identificado
por el puerto número.
b. Modifique este protocolo de manera que proporcione una “dirección de retorno” al proceso de
destino.
R/.
El segmento tiene ahora dos campos de cabecera: un campo de puerto de origen y puerto de
campo de destino. En el lado del remitente, STP acepta un bloque de datos que no exceda de
1.192 bytes, una dirección de destino de acogida, un número de puerto de origen, y un número
de puerto de destino.
STP crea un segmento que contiene el número de datos de la aplicación, el puerto de origen y el
número de puerto de destino. Se da entonces el segmento y el host de destino frente a la capa
de red. Después de recibir el segmento, STP en el receptor huésped le da al proceso de solicitud
de los datos de las aplicaciones y el número de puerto de origen.
c. En sus protocolos, ¿la capa de transporte “tiene que hacer algo” en el núcleo de la red de
computadoras?
R/.
No, la capa de transporte no tiene que hacer nada en el núcleo, y el transporte capa "vive" en
los sistemas finales.
R2. Imagine una sociedad en la que todo el mundo perteneciera a una familia de seis miembros,
todas las familias vivieran en su propia casa, cada casa tuviera una dirección única y cada persona
de cada casa tuviera un nombre único. Imagine que esa sociedad dispone de un servicio de
correos que transporta las cartas desde una vivienda de origen hasta una vivienda de destino. El
servicio de correos requiere que (i) la carta se introduzca en un sobre y que (ii) la dirección de la
casa de destino (y nada más) esté claramente escrita en el sobre. Suponga también que en cada
familia hay un delegado que tiene asignada la tarea de recoger y distribuir las cartas a los
restantes miembros de la familia. Las cartas no necesariamente proporcionan una indicación
acerca de los destinatarios.
a. Partiendo de la solución del Problema R1, describa un protocolo que el delegado de la familia
pueda utilizar para entregar las cartas de un miembro de la familia emisora a un miembro de la
familia receptora.
R/.
Para el envío de una carta, el miembro de la familia tiene la obligación de dar el nombre del
delegado de la carta en sí, la dirección de la casa de destino, y el nombre del destinatario.
El delegado escribe claramente el nombre del destinatario en la parte superior de la carta. El
delegado luego pone la carta en un sobre y escribe la dirección de la casa de destino en el
mismo. El delegado luego le da la carta a los servicio de correo. En el lado receptor, el delegado
recibe la carta del servicio de correo, saca la carta del sobre y toma nota del nombre del
destinatario escrito en la parte superior de la carta. El delegado entrega la carta al miembro de
la familia con este nombre.
b. En su protocolo, ¿el servicio de correos tienen que abrir el sobre y examinar la carta para
proporcionar este servicio?
R/.
No, el servicio de correos no tiene que abrir el sobre, sino que sólo examina la dirección en el
sobre.
R3. Considere una conexión TCP entre el host A y el host B. Suponga que los segmentos TCP que
viajan del host A al host B tienen un número de puerto de origen xy un número de puerto de
destino y. ¿Cuáles son los números de puerto de origen y de destino para los segmentos que
viajan del host B al host A?
R/.
Número de puerto de origen y puerto de destino y el número X.
R4. Describa por qué un desarrollador de aplicaciones puede decidir ejecutar una aplicación sobre
UDP en lugar de sobre TCP.
R/.
Un desarrollador de aplicaciones no usa TCP por el control de congestión del TCP.
A menudo, los diseñadores de la telefonía IP y aplicaciones de videoconferencia IP eligen
ejecutar sus aplicaciones a través de UDP porque quieren evitar la congestión de TCP de control.
Además, algunas aplicaciones no necesitan la transferencia de datos fiable proporcionado por
TCP.
R5. ¿Por qué razón el tráfico de voz y de vídeo suele enviarse sobre TCP en lugar de sobre
UDP en la Internet de hoy día? (Sugerencia: la respuesta que estamos buscando no tiene nada que
ver con el mecanismo de control de congestión de TCP.)
R/.
Como la mayoría de los servidores de seguridad están configurados para bloquear el tráfico
UDP, utilizando TCP para vídeo, voz y permite que el tráfico de estos se establezca a pesar de la
acción de los firewalls.
R6. ¿Es posible que una aplicación disfrute de una transferencia de datos fiable incluso si se
ejecuta sobre UDP? En caso afirmativo, explique cómo.
R/.
Sí. El desarrollador de la aplicación puede poner la transferencia de datos fiable en la aplicación
y el protocolo de capa, sin embargo esto requeriría una cantidad significativa de trabajo y la
depuración.
R7. Sea un proceso del host C que tiene un socket UDP con el número de puerto 6789.
Suponga también que los hosts A y B envían cada uno de ellos un segmento UDP al host C con el
número de puerto de destino 6789. ¿Serán dirigidos ambos segmentos al mismo socket del host
C? En caso afirmativo, ¿cómo sabrá el proceso del host C que estos dos segmentos proceden de
dos hosts distintos?
R/.
Sí, ambos segmentos serán dirigidos a la misma toma. Para que cada uno reciba un segmento
en la interfaz de socket, el sistema operativo proporcionará el proceso con las direcciones IP
para determinar el origen de los segmentos individuales.
R8. Suponga que un servidor web se ejecuta en el puerto 80 del host C. Suponga también que este
servidor web utiliza conexiones persistentes y que actualmente está recibiendo solicitudes de dos
hosts diferentes, A y B. ¿Están siendo enviadas todas las solicitudes al mismo socket del host C? Si
están siendo pasadas a través de sockets diferentes, ¿utilizan ambos sockets el puerto 80?
Explique y justifique su respuesta.
R/.
Para cada conexión persistente, el servidor Web crea una conexión independiente " socket ".
Cada caja de conexión se identifica así en sus cuatro campos: (fuente IP dirección, número de
puerto de origen, la dirección IP de destino, número de puerto de destino).
Cuando el anfitrión C recibe datagramas IP, examina estos cuatro campos en el datagrama /
segmento para determinar a qué socket debe pasar la carga útil del segmento TCP. Por lo tanto,
las peticiones de A y B pasan a través de diferente toma.
El identificador para ambos de estos zócalos tiene 80 para el puerto de destino, sin embargo, los
identificadores para estos conectores tienen valores diferentes para direcciones IP de origen.
A diferencia de UDP, cuando la capa de transporte pasa la carga útil de un segmento TCP con el
proceso de solicitud, que no especifica la dirección IP de origen, ya que implícitamente esta
especificado por el identificador de socket.
R9. En los protocolos estudiados, ¿por qué necesitábamos introducir números de secuencia?
R/.
Los números de secuencia son necesarios para un receptor, así podra averiguar si llega un
paquete que contiene nuevos datos, eso seria una retransmisión.
R10. En los protocolos rdt estudiados, ¿por qué necesitábamos introducir temporizadores?
R/.
Para manejar las perdidas en el canal, ya que los ACK al no ser recibidos o los NACK en la
duración del temporizador estos serán retransmitidos.
R11. Suponga que el retardo de ida y vuelta entre el emisor y el receptor es constante y conocido
por el emisor. ¿Se necesitaría en este caso un temporizador en el protocolo rdt 3.0, suponiendo
que los paquetes pueden perderse? Explique su respuesta.
R/.
Sin importar que sea constante y conocido por el emisor, será necesario un temporizador en el
protocolo, ya que solo se garantizara la pérdida del paquete por el emisor.
R12. Visite el applet de Java Go-Back-Nen el sitio web del libro.
a. Haga que el emisor envíe cinco paquetes y luego detenga la animación antes de que cualquiera
de los cinco paquetes alcance su destino. A continuación, elimine el primer paquete y reanude la
animación. Describa lo que ocurre.
b. Repita el experimento, pero ahora deje que el primer paquete alcance su destino y elimine el
primer paquete de reconocimiento. Describa lo que ocurre.
d. Para terminar, pruebe a enviar seis paquetes. ¿Qué ocurre?
R13. Repita el problema R12, pero ahora utilizando el applet de Java con repetición selectiva (SR).
¿En qué se diferencian los protocolos SR y GBN?
SECCIÓN 3.5
R14. ¿Verdadero o falso?
a. El host A está enviando al host B un archivo de gran tamaño a través de una conexión TCP.
Suponga que el host B no tiene datos que enviar al host A. El host B no enviará paquetes de
reconocimiento al host A porque el host B no puede superponer esos reconocimientos sobre los
datos.
R/.
Falsa
b. El tamaño de la ventana de recepción de TCP nunca varía mientras dura la conexión.
R/.
Falsa
c. Suponga que el host A está enviando al host B un archivo de gran tamaño a través de una
conexión TCP. El número de bytes no reconocidos que A envía no puede exceder el tamaño del
buffer del receptor.
R/.
Verdadera
d. Suponga que el host A está enviando al host B un archivo de gran tamaño a través de una
conexión TCP. Si el número de secuencia de un segmento en esta conexión es m, entonces el
número de secuencia del siguiente segmento necesariamente tiene que ser m+ 1.
R/.
Falsa
e. El segmento TCP contiene un campo en su cabecera para Ventana Recepción.
R/.
Verdadera
f. Suponga que el último RTT Muestra en una conexión TCP es igual a 1 segundo. El valor actual del
Intervalo Fin De Temporización para la conexión será necesariamente 1 segundo.
R/.
Falsa
g. Suponga que el host A envía al host B un segmento con el número de secuencia 38 y 4 bytes de
datos a través de una conexión TCP. En este mismo segmento el número de reconocimiento
necesariamente tiene que ser 42.
R/.
Falsa
R15. Suponga que el host A envía dos segmentos TCP seguidos al host B a través de una conexión
TCP. El primer segmento tiene el número de secuencia 90 y el segundo tiene el número de
secuencia 110.
a. ¿Cuántos datos hay en el primer segmento?
R/.
20 bytes
b. Suponga que el primer segmento se pierde pero el segundo llega a B. En el paquete de
reconocimiento que el host B envía al host A, ¿cuál será el número de reconocimiento?
R/.
Numero ACK = 90
R16.Considere el ejemplo de la conexión Telnet de la Sección 3.5. Unos pocos segundos después
de que el usuario escriba la letra ‘C’, escribe la letra ‘R’. Después de escribir la letra ‘R’, ¿cuántos
segmentos se envían y qué valores se almacenan en los campos número de secuencia y número de
reconocimiento de los segmentos?
R/.
3 segmentos. Primer segmento: ss = 43, ACK = 80; Segundo segmento: ss = 80, ACK = 44; en
tercer segmento: ss = 44, ACK = 81
SECCIÓN 3.7
R17. Suponga que existen dos conexiones TCP en un cierto enlace de cuello de botella con una
velocidad de Rbps. Ambas conexiones tienen que enviar un archivo de gran tamaño (en la misma
dirección a través del enlace de cuello de botella). Las transmisiones de los archivos se inician en el
mismo instante. ¿Qué velocidad de transmisión podría proporcionar TCP a cada una de las
conexiones?
R/.
La mitad para ambos
R18. ¿Verdadero o falso? En el control de congestión de TCP, si el temporizador del emisor caduca,
el valor de umbral se hace igual a la mitad de su valor anterior.
R/.
Falso, se establece en la mitad del valor actual de la ventana de congestión.
Capítulo 3 Problemas
1. Suponga que el cliente A inicia una sesión Telnet con el servidor S. Aproximadamente en el
mismo instante, el cliente B también inicia una sesión Telnet con el servidor S. Proporcione los
posibles números de puerto de origen y de destino para:
a. Los segmentos enviados de A a S.
Puerto Origen
Puerto Destino
2555
50
b. Los segmentos enviados de B a S.
Puerto Origen
Puerto Destino
415
50
c. Los segmentos enviados de S a A.
Puerto Origen
Puerto Destino
50
2555
d. Los segmento enviados de S a B.
Puerto Origen
Puerto Destino
50
415
e. Si A y B son hosts diferentes, ¿es posible que el número de puerto de origen en los
segmentos que van de A a S sea el mismo que en los segmentos que van de B a S?
R/: Si
f. ¿Qué ocurre si A y B son el mismo host?
R/: No pueden ser el mismo host
2. Considere la Figura 3.5. ¿Cuáles son los valores de los puertos de origen y de destino en los
segmentos que fluyen desde el servidor de vuelta a los procesos cliente? ¿Cuáles son las
direcciones IP de los datagramas de la capa de red que transportan los segmentos de la capa de
transporte?
R/: Supongamos que las direcciones IP de los hosts A, B y C son a, b, c, (a, b, c son distintos.)
A: Puerto de origen es 80, la dirección IP de origen es b, puerto destino es 26145, dirección IP
destino es a
C proceso izquierdo: Puerto de origen es 80, la dirección IP de origen es b, puerto destino es
7532, la dirección IP destino es c
C, proceso derecho: Puerto de origen es 80, la dirección IP de origen es b, puerto destino es
26145, dirección IP destino es c
3. UDP y TCP utilizan el complemento a 1 para calcular sus sumas de comprobación.
Suponga que tiene los tres bytes de 8 bits siguientes: 01010011, 01010100, 01110100.
¿Cuál es el complemento a 1 de la suma de estos bytes? (Observe que aunque UDP y
TCP utilizan palabras de 16 bits para calcular la suma de comprobación, en este problema le
pedimos que considere sumas de 8 bits). Explique cómo funciona. ¿Por qué
UDP utiliza el complemento a 1 de la suma; es decir, por qué no simplemente emplea la suma?
Con el esquema del complemento a 1, ¿cómo detecta el receptor los errores? ¿Es posible que un
error de un solo bit no sea detectado? ¿Qué ocurre si hay 2 bits erróneos?
R/:
1 0 1 0 0 1 1
+ 1 0 1 0 1 0 0
1 0 1 0 0 1 1 1
1 0 1 0 0 1 1 1
+ 0 1 1 1 0 1 0 0
0 0 1 0 1 1 0 0
El complemento a 1 de la suma 00101100 es 11010011
Se suman los dos primeros bytes de 8 bits y el resultado de esta se suma con el tercer byte, pero
en esta se debe tener en cuenta el desbordamiento que va sobre el bit de menor peso, por lo
tanto este complemento a 1 se obtiene convirtiendo todos los 0 a 1 y viceversa.
La razón por la que UDP utiliza este complemento es porque no existe ninguna garantía de que
todos los enlaces existentes entre el origen y el destino proporcionen un mecanismo de
comprobación de errores; es decir, uno de los enlaces puede utilizar un protocolo de la capa de
enlace que no proporcione comprobación de errores.
En el receptor, los cuatro bytes de 8 bits se suman, incluyendo la suma de comprobación. Si no
se han introducido errores en el paquete, entonces la suma en el receptor tiene que ser
11111111. Si uno de los bits es un 0, entonces sabemos que el paquete contiene errores.
Todos los errores de un bit se detectarán, pero los errores de dos bits pueden ser detectados
(por ejemplo, si el último dígito de la primera palabra se convierte en un 0 y el último dígito de
la segunda palabra se convierte en un 1).
4.
a. Suponga que tiene los 2 bytes siguientes: 01011100 y 01010110. ¿Cuál es el complemento
a 1 de la suma de estos 2 bytes?
R/: Sumando los dos bytes da 10110010 Tomando el complemento a 1 le da 01001101
b. Suponga que tiene los 2 bytes siguientes: 11011010 y 00110110. ¿Cuál es el complemento
a 1 de la suma de estos 2 bytes?
R/: Sumando los dos bytes 100010000 Tomando el complemento a 1 le da 011101111
a. Para los bytes del apartado (a), proporcione un ejemplo en el que un bit cambie de valor
en cada uno de los 2 bytes y aun así el complemento a 1 no varíe.
R/: El primer byte 01011110 y el segundo byte 01010100 obteniendo así la suma de los bytes
10110010 y observando que no varía junto con el complemento 01001101.
5. Suponga que el receptor UDP calcula la suma de comprobación de Internet para el segmento
UDP recibido y comprueba que se corresponde con el valor almacenado en el campo de suma de
comprobación. ¿Puede el receptor estar completamente seguro de que no hay ningún bit
erróneo? Explique su respuesta.
R/: No, el receptor no puede estar seguro de que no se han producido errores de bit. Debido a la
forma en la que se calcula la suma de comprobación para el paquete. Ya que UDP tiene que
proporcionar un mecanismo de detección de errores en la capa de transporte, terminal a
terminal, debido a que los segmentos se transfieren correctamente a través del enlace pero es
posible que se introduzcan errores de bit cuando un segmento se almacena en la memoria de un
router. Dado que no están garantizadas ni la fiabilidad enlace a enlace, ni la detección de errores
durante el almacenamiento en memoria.
6. Recuerde el motivo de corregir el protocolo rdt2.1. Demuestre que el receptor mostrado en la
Figura 3.57 y el emisor mostrado en la Figura 3.11 pueden llegar a entrar en un estado de bloqueo
tal que cada uno de ellos esté esperando a que se produzca un suceso que no ocurrirá nunca.
R/: Supongamos que el remitente se encuentra en estado de "espera la llamada 1 desde arriba"
y el receptor se encuentra en estado "Espere 1 de abajo" El emisor envía un paquete con
número de secuencia 1, y las transiciones a "Esperar ACK o NAK 1," en espera de un ACK o NAK
Supongamos ahora que el receptor recibe el paquete con número de secuencia 1 correctamente,
envía un ACK, y las transiciones al estado "Espere a 0 desde abajo", a la espera de un paquete de
datos con el número de secuencia 0 Sin embargo, el ACK está dañado. Cuando el remitente
rdt2.1 recibe el ACK dañado, no vuelve a enviar el paquete con número de secuencia 1 Sin
embargo, el receptor está esperando un paquete con número de secuencia 0 y (como se muestra
en el problema del trabajo a domicilio) siempre envía una NAK cuando no recibe un paquete con
número de secuencia 0 Por lo tanto el remitente siempre estará enviando un paquete con
número de secuencia 1, y el receptor siempre NAK.
7. En el protocolo rdt3.0, los paquetes ACK que fluyen del receptor al emisor no tienen números
de secuencia (aunque tienen un campo ACK que contiene el número de secuencia del paquete que
están reconociendo). ¿Por qué estos paquetes ACK no requieren números de secuencia?
R/: En primer lugar Vimos que el remitente debe números de secuencia para que el receptor
puede determinar si un paquete de datos es un duplicado de un paquete de datos ya recibidos
En el caso de los ACK, el emisor no necesita esta información (es decir, un número de secuencia
de un ACK) para decirle detectar un ACK duplicado. Un ACK duplicado es obvio para el receptor
rdt3.0, y desde entonces ha recibido el ACK original, que la transición al siguiente estado, el ACK
duplicado no es el ACK de las necesidades del remitente y por lo tanto es ignorado por el
remitente rdt3.0
8. Dibuje la máquina de estados finitos correspondiente al lado receptor del protocolo
rdt3.0.
R/: La parte remitente de protocolo rdt3.0 difiere de la parte remitente de protocolo 2.2 en que
los tiempos de espera se han agregado. Hemos visto que la introducción de los tiempos de
espera se suma la posibilidad de paquetes duplicados en el flujo de datos entre el remitente y el
receptor. Sin embargo, el receptor en protocolo rdt.2.2 ya puede manejar paquetes duplicados
(Duplicados Receptor-secundarios en rdt 2.2 surgirían si el receptor envía un ACK que se había
perdido, y el remitente entonces retransmitido los datos antiguos) Por lo tanto el receptor en
protocolo rdt2.2 también funcionará como el receptor en protocolo rdt 3.0.
9. Dibuje un esquema que muestre la operación del protocolo rdt3.0 cuando los paquetes de
datos y los paquetes de reconocimiento están corrompidos. Utilice un esquema similar al
mostrado en la Figura 3.16.
10. Sea un canal que puede perder paquetes pero del que se conoce su retardo máximo.
Modifique el protocolo rdt2.1 para incluir los fines de temporización y las retransmisiones del
emisor. Argumente de manera informal por qué su protocolo puede comunicarse correctamente a
través de este canal.
11. El lado del emisor de rdt3.0 simplemente ignora (es decir, no realiza ninguna acción) todos los
paquetes recibidos que contienen un error o que presentan un valor erróneo en el campo número
de reconocimiento (acknum) de un paquete de reconocimiento. Suponga que, en tales
circunstancias, rdt3.0 simplemente retransmite el paquete de datos actual. ¿Funcionaría en estas
condiciones el protocolo? (Sugerencia: piense en lo que ocurriría si sólo hubiera errores de bit; no
se producen pérdidas de paquetes pero sí pueden ocurrir sucesos de fin prematuro de la
temporización. Considere cuántas veces se envía el paquete n, cuando n tiende a infinito.)
R/: El protocolo aún funciona, ya que una retransmisión sería lo que ocurriría si el paquete
recibido con errores de hecho se ha perdido (y desde el punto de vista del receptor, nunca sabe
cuál de estos eventos, si bien, ocurrirá)
Hay que tener en cuenta que se producen tiempos de espera prematuros. En este caso, si se ACK
de cada copia adicional del paquete y cada uno recibió ACK adicional provoca otra copia extra
del paquete actual para ser enviados, el número de veces que los n paquetes enviados
aumentará sin límite cuando tiende a infinito
12. Considere el protocolo rdt 3.0. Dibuje un diagrama que muestre que si la conexión de red
entre el emisor y el receptor puede reordenar los mensajes (es decir, que dos mensajes que se
propagan por el medio físico existente entre el emisor y el receptor pueden ser reordenados),
entonces el protocolo de bit alternante no funcionará correctamente (asegúrese de identificar
claramente el sentido en el que no funcionará correctamente). En el diagrama debe colocar el
emisor a la izquierda y el receptor a la derecha, con el eje de tiempos en la parte inferior de la
página y deberá mostrar el intercambio de los mensajes de datos (D) y de reconocimiento
(A). No olvide indicar el número de secuencia asociado con cualquier segmento de datos o de
reconocimiento.
13. Considere un protocolo de transferencia de datos fiable que sólo utiliza paquetes de
reconocimiento negativo. Imagine que el emisor envía datos con muy poca frecuencia. ¿Sería
preferible un protocolo con solo emplea paquetes NAK a uno que utilice paquetes ACK? ¿Por qué?
Suponga ahora que el emisor tiene muchos datos que transmitir y que la conexión terminal a
terminal experimenta muy pocas pérdidas. En este segundo caso, ¿sería preferible un protocolo
que sólo emplee paquetes NAK a otro que utilice paquetes ACK? ¿Por qué?
R/: En un único protocolo de NAK, la pérdida de paquetes x sólo es detectada por el receptor
cuando se recibe paquetes x 1 Es decir, los receptores recibe x-1 y entonces x 1, sólo cuando x 1
se recibe el receptor no darse cuenta de que x se perdió Si hay un gran retraso entre la
transmisión de x y la transmisión de x 1, entonces será un largo tiempo hasta que x puede ser
recuperado, en virtud de un único protocolo de NAK.
Por otro lado, si se está enviando datos a menudo, entonces la recuperación bajo un NAK-único
esquema podría suceder rápidamente. Por otra parte, si los errores son poco frecuentes, NAK se
envían sólo ocasionalmente (cuando sea necesario), y nunca se envían ACK - una reducción
significativa de retroalimentación en el NAK-único caso en el caso de sólo ACK
14. Considere el ejemplo mostrado en la Figura 3.17. ¿Cuál tiene que ser el tamaño de la ventana
para que la tasa de utilización del canal sea mayor del 95 por ciento? Suponga que el tamaño de
un paquete es de 1.500 bytes, incluyendo tanto los campos de cabecera como los datos.
R/: Están a 12 microsegundos (o 0.012 milisegundos) para enviar un paquete, como 1500 *
8/10^9 = 12 microsegundos. Para que el remitente pueda estar ocupado el 95 por ciento del
tiempo, debemos tener:
Útil=0.95=(0.012n)/30.012 o n aproximadamente 2.376 paquetes
15. Suponga que una aplicación utiliza el protocolo rdt 3.0 como su protocolo de la capa de
transporte. Como el protocolo de parada y espera tiene una tasa de utilización del canal muy baja
(como se ha demostrado en el ejemplo de conexión que atraviesa el país de costa a costa), los
diseñadores de esta aplicación permiten al receptor devolver una serie (más de dos) de ACK 0 y
ACK 1 alternantes incluso si los correspondientes datos no han llegado al receptor. ¿Debería este
diseño aumentar la tasa de utilización del canal? ¿Por qué? ¿Existe algún problema potencial con
esta técnica? Explique su respuesta.
R/: Sí, En realidad, esto hace que el remitente pueda enviar una serie de datos segmentados en
el canal.
Sí. Este es un problema potencial Si los segmentos de datos se pierden en el canal, entonces el
remitente del rdt 3.0 no va volver a enviar esos segmentos, a menos que haya algún mecanismo
adicional en la aplicación de recuperarse de la pérdida.
16. En el protocolo SR genérico que hemos estudiado en la Sección 3.4.4, el emisor transmite un
mensaje tan pronto como está disponible (si se encuentra dentro de la ventana) sin esperar a
recibir un paquete de reconocimiento. Suponga ahora que deseamos disponer de un protocolo SR
que envíe mensajes de dos en dos. Es decir, el emisor enviará una pareja de mensajes y enviará la
siguiente pareja de mensajes solo cuando sepa que los dos mensajes de la primera pareja se han
recibido correctamente.
Suponga que el canal puede perder mensajes pero no corromperlos ni tampoco reordenarlos.
Diseñe un protocolo de control de errores para un servicio de transferencia de mensajes fiable y
unidireccional. Proporcione una descripción de las máquinas de estados finitos del emisor y del
receptor. Describa el formato de los paquetes intercambiados por el emisor y el receptor. Si utiliza
alguna llamada a procedimiento distinta de las empleadas en la Sección 3.4 (por ejemplo,
udt_enviar(), iniciar_ temporizador(), rdt_recibir(), etc.), defina claramente las acciones que
realizan. Proporcione un ejemplo (una gráfica temporal del emisor y del receptor) que muestre
cómo este protocolo se recupera de la pérdida de paquetes.
17. Considere un escenario en el que el host A desea enviar simultáneamente paquetes a los hosts
B y C. El host A está conectado a B y C a través de un canal de multidifusión (broadcast) (un
paquete enviado por A es transportado por el canal tanto a B como a C). Suponga que el canal de
multidifusión que conecta A, B y C puede perder y corromper de manera independiente los
paquetes (es decir, puede ocurrir, por ejemplo, que un paquete enviado desde A llegue
correctamente a B, pero no a C). Diseñe un protocolo de control de errores similar a un protocolo
de parada y espera que permita transferir paquetes de forma fiable de A a B y C, de manera que A
no obtendrá nuevos datos de la capa superior hasta que separa que tanto B como C han recibido
correctamente el paquete actual. Proporcione las descripciones de las máquinas de estados finitos
de A y C. (Sugerencia: la FSM de B será prácticamente la misma que la de C.) Proporcione también
una descripción del formato o formatos de paquete utilizados.
18. Considere un escenario en el que el host A y el host B desean enviar mensajes al host C. Los
hosts A y C están conectados mediante un canal que puede perder y corromper (pero no
reordenar) los mensajes. Los hosts B y C están conectados a través de otro canal (independiente
del canal que conecta a A y C) que tiene las mismas propiedades. La capa de transporte del host C
tiene que alternar la entrega de los mensajes que A y B tienen que pasar a la capa superior (es
decir, primero entrega los datos de un paquete de A y luego los datos de un paquete de B, y así
sucesivamente). Diseñe un protocolo de control de errores de tipo parada y espera para transferir
de forma fiable los paquetes de A y B a C, con una entrega alternante en el host C, como hemos
descrito anteriormente. Proporcione las descripciones de las FSM de A y C. (Sugerencia: la FSM de
B será prácticamente la misma que la de A.) Proporcione también una descripción del formato o
formatos de paquete utilizados.
19. Sea un protocolo GBN con una ventana de emisor de 3 y un rango de números de secuencia de
1.024. Suponga que en el instante t el siguiente paquete en orden que el receptor está esperando
tiene el número de secuencia k. Suponga que el medio de transmisión no reordena los mensajes.
Responda a las siguientes cuestiones:
a. ¿Cuáles son los posibles conjuntos de números de secuencia que pueden estar dentro
de la ventana del emisor en el instante t? Justifique su respuesta.
R/: Aquí tenemos un tamaño de ventana de N = 3. Supongamos que el receptor ha recibido
paquete k-1, ACK y todos los demás paquetes precedentes. Si todos estos ACK de haber sido
recibidos por el remitente, entonces la ventana del remitente es [k, k + N-1]. Supongamos ahora
que ninguno de los ACK puedo haber sido recibido por el remitente, entonces la ventana del
emisor contiene K-1 y la N paquetes incluyendo K-1. La ventana del emisor es por lo tanto [k-n,
k-1]. Por estos argumentos, la ventana de remitentes es de tamaño 3 y comienza en algún lugar
en el rango [k N, k].
b. ¿Cuáles son todos los valores posibles del campo ACK en todos los posibles mensajes
que están actualmente propagándose de vuelta al emisor en el instante t? Justifique
su respuesta.
R/: Si el receptor está a la espera de paquete k, entonces se ha recibido (Ack) de paquete k-1 y
los paquetes de N-1 antes de eso. Si ninguno de aquellos N ACK se han recibido aún por el
remitente, los mensajes ACK con valores de [k N, k-1] aún se pueden ir propagando hacia atrás.
Debido a que el remitente ha enviado paquetes [k N, k-1], tiene que ser el caso de que el
remitente ya ha recibido un ACK para kN-1. Una vez que el receptor ha enviado un ACK para k N1 que nunca le enviará un ACK que es menos que k N-1. Así, la gama de valores de ACK en vuelo
puede variar desde k N-1 a k-1.
20. Suponga que tenemos dos entidades de red, A y B. B tiene que enviar a A un conjunto de
mensajes de datos, cumpliendo los siguientes convenios. Cuando A recibe una solicitud de la capa
superior para obtener el siguiente mensaje de datos (D) de B, A tiene que enviar un mensaje de
solicitud (R) a B a través del canal que va de A a B. Sólo cuando B recibe un mensaje R puede
devolver un mensaje de datos (D) a A a través del canal de B a A. A tiene que entregar
exactamente una copia de cada mensaje D a la capa superior. Los mensajes R se pueden perder
(pero no corromper) en el canal de A a B; los mensajes D, una vez enviados, siempre son
correctamente entregados. El retardo a lo largo de ambos canales es desconocido y variable.
Diseñe (proporcione una descripción de la FSM de) un protocolo que incorpore los mecanismos
apropiados para compensar las pérdidas del canal de A a B e implemente el paso de los mensajes a
la capa superior de la entidad A, como se ha explicado anteriormente. Utilice sólo aquellos
mecanismos que sean absolutamente necesarios.
R/: Debido a que el canal de A a B puede perder mensajes de petición, A necesitará tiempo de
espera y retransmitir sus mensajes de solicitud (para ser capaz de recuperarse de la pérdida).
Debido a que los retrasos de canal son variables y desconocidos, es posible que uno enviará
peticiones duplicadas (es decir, volver a enviar un mensaje de petición que ya ha sido recibido
por B). Para ser capaz de detectar mensajes de solicitud de duplicados, el protocolo utiliza
números de secuencia. Un número de secuencia de 1 bit será suficiente para un tipo parada y
espera del protocolo de solicitud / respuesta.
A (el solicitante) tiene 4 estados:
“Esperar la Solicitud de 0 desde arriba. " Aquí el solicitante está esperando una llamada de
arriba para solicitar una unidad de datos. Cuando se recibe una solicitud desde arriba, envía un
mensaje de solicitud, R0, a B, se inicia un temporizador y hace una transición al estado " Espere
a D0”. Cuando en el " Esperar a Solicitud 0 desde arriba " del Estado, ignora cualquier cosa que
recibe de B.
“Espere a D0 “. Aquí el solicitante está esperando un mensaje de datos D0 de B. Un
temporizador siempre se está ejecutando en este estado. Si el tiempo se agota, A envía otro
mensaje R0, se reinicia el temporizador y permanece en este estado. Si se recibe un mensaje D0
de B, A se para el tiempo y el tránsito al estado " Espere Solicitud 1 desde arriba”. Si A recibe un
mensaje de datos D1, mientras que en este estado, se ignora.
“Esperar a Solicitud 1 desde arriba. " Aquí el solicitante está de nuevo a la espera de una
llamada de arriba para solicitar una unidad de datos. Cuando se recibe una solicitud desde
arriba, envía un mensaje de solicitud, R1, a B, se inicia un temporizador y hace una transición al
estado " Espere D1”. Cuando en el Estado del " Esperar a Solicitud 1 desde arriba ", ignora
cualquier cosa que recibe de B.
“Espere a D1”. Aquí el solicitante está esperando un mensaje de datos D1 de B. Un temporizador
siempre se está ejecutando en este estado. Si el tiempo se agota, A envía otro mensaje de R1, se
reinicia el temporizador y permanece en este estado. Si se recibe un mensaje D1 de B, A se
detiene el temporizador y tránsitos para el estado " Espere Solicitar 0 desde arriba”. Si A recibe
un mensaje de datos D0 en este estado, se ignora.
El proveedor de datos (B) tiene sólo dos estados:
“Enviar D0. " En este estado, B sigue respondiendo a los mensajes recibidos por el envío de R0
D0, y luego permanece en este estado. Si B recibe un mensaje R1, luego se conoce su mensaje
D0 ha sido recibido correctamente. Por lo tanto, descarta estos datos D0 (ya que se ha recibido
en el otro lado) y, a continuación transita al estado " Enviar D1 “, donde se utilizará D1 a enviar
la siguiente pieza de datos solicitada.
“Enviar D1. " En este estado, B sigue respondiendo a los mensajes recibidos por el envío de R1
D1, y luego permanece en este estado. Si B recibe un mensaje R1, entonces se conoce su
mensaje D1 se ha recibido correctamente y por lo tanto transita al estado " Enviar D1"
21. Considere los protocolos GBN y SR. Suponga que el tamaño del espacio de números de
secuencia es k. ¿Cuál es la máxima ventana de emisor permitida que evitará la ocurrencia de
problemas como los indicados en la Figura 3.27 para cada uno de estos protocolos?
R/: Con el fin de evitar el escenario de la figura 3.27, queremos evitar que el borde delantero de
la ventana del receptor (es decir, el que tiene el número de secuencia " más alto ") envolverlo
alrededor, en el espacio de número de secuencia y se solapa con el borde de salida (el uno con el
número de secuencia "mínimo" en la ventana del emisor). Es decir, el espacio de números de
secuencia debe ser lo suficientemente grande como para ajustarse a la ventana del receptor
entero y toda la ventana del remitente, sin esta condición se superponen. Por lo tanto
necesitamos para determinar el tamaño del rango de números de secuencia y se puede cubrir en
un momento dado por las ventanas receptores y emisores.
Supongamos que el número más bajo de secuencia que el receptor está esperando es de
paquetes m. En este caso, la ventana es [m, m + w - 1] y ha recibido ( Ack) de paquetes m - 1 y
los paquetes W-1 antes, donde w es el tamaño de la ventana. Si ninguno de esos ACK w se han
recibido aún por el remitente, los mensajes ACK con valores de [m-w, m- 1] aún pueden ir
propagándose hacia atrás. Si no hay ACK con estos números que han sido recibidos por el
emisor, a continuación, la ventana del emisor sería [m-w, m- 1].
Por lo tanto, el borde inferior de la ventana del emisor es MW, y el borde delantero de la
ventana de receptores es m + W - 1. Para que el borde de ataque de la ventana del receptor no
pueda solaparse con el borde de salida de la ventana del emisor, el espacio de números de
secuencia por lo tanto debe ser lo suficientemente grande para dar cabida a 2w números de
secuencia. Es decir, el espacio de números de secuencia debe ser al menos dos veces tan grande
como el tamaño de la ventana, k ≥ 2w
22. Responda verdadero o falso a las siguientes preguntas y justifique brevemente sus respuestas:
a. Con el protocolo SR, el emisor puede recibir un ACK para un paquete que se encuentra
fuera de su ventana actual.
R/: Verdadero. Supongamos que el remitente tiene un tamaño de ventana de 3 y envía los
paquetes 1, 2, 3 en T0. En T1 (t1 > t0) el receptor ACK 1, 2, 3. En T2 (t2 > t1) los tiempos
remitente fuera y vuelve a enviar 1, 2, 3. En T3 el receptor recibe los duplicados y vuelve a
reconocer 1, 2, 3. En T4 el emisor recibe los ACK que el receptor envía al T1 y avanza en su
ventana de 4, 5, 6. En T5 el remitente recibe el ACK 1, 2, 3 el receptor enviado a T2. Estos ACK
son fuera de su ventana
b. Con GBN, el emisor puede recibir un ACK para un paquete que se encuentra fuera de
su ventana actual.
R/: Verdadero. Esencialmente por el mismo escenario que en a.
c. El protocolo de bit alternante es igual que el protocolo SR pero con un tamaño de
ventana en el emisor y en el receptor igual a 1.
R/: Verdadero
d. El protocolo de bit alternante es igual que el protocolo GBN pero con un tamaño de
ventana en el emisor y en el receptor igual a 1.
R/: Verdadero. Tenga en cuenta que con un tamaño de ventana de 1, SR, GBN, y el protocolo bit
alterno son funcionalmente equivalentes. El tamaño de la ventana de 1 excluye la posibilidad de
paquetes fuera de orden (dentro de la ventana). Un ACK acumulativo es sólo un ACK ordinario
en esta situación, ya que sólo puede referirse al solo paquete dentro de la ventana.
23. Hemos dicho que una aplicación puede elegir UDP como protocolo de transporte porque UDP
ofrece a la aplicación un mayor grado de control (que TCP) en lo relativo a qué datos se envían en
un segmento y cuándo.
a. ¿Por qué una aplicación tiene más control sobre qué datos se envían en un segmento?
R/: Considere la posibilidad de enviar un mensaje de aplicación durante un protocolo de
transporte. Con TCP, la aplicación escribe datos en la conexión de envío de búfer y TCP se agarra
bytes sin poner necesariamente un único mensaje en el segmento TCP; TCP puede poner más o
menos un solo mensaje en un segmento. UDP, por otro lado, encapsula en un segmento
cualquiera que sea la aplicación, de modo que, si la aplicación da UDP en un mensaje de
aplicación, este mensaje será la carga útil del segmento UDP. Así, con UDP, una aplicación tiene
más control de lo que los datos envían en un segmento.
b. ¿Por qué una aplicación tiene más control sobre cuándo se envía el segmento?
R/: Con TCP, debido al control de flujo y control de congestión, puede haber un retraso
significativo desde el momento cuando una aplicación escribe datos en su búfer de envío hasta
que cuando los datos se da a la capa de red. UDP no tiene retrasos debido al control de flujo y
control de congestión.
24. Se desea transferir un archivo de gran tamaño de L bytes del host A al host B. Suponga un MSS
de 536 bytes.
Hay 2^32= 4294967296 posibles números de secuencia.
a. ¿Cuál es el valor máximo de L tal que los números de secuencia de TCP no se agoten?
Recuerde que el campo número de secuencia de TCP tiene 4 bytes.
R/: El número de secuencia no se incrementa en 1 con cada segmento. Más bien, se incrementa
por el número de bytes de datos enviados. Así que el tamaño de la MSS es irrelevante, el
tamaño de archivo máximo que se puede enviar de A a B es simplemente el número de bytes
que puede representarse por 2^32 = 4.19 Gbytes
b. Para el valor de L que haya obtenido en el apartado (a), calcule el tiempo que tarda en
transmitirse el archivo. Suponga que a cada segmento se añade un total de 66 bytes para
la cabecera de la capa de transporte, de red y de enlace de datos antes de enviar el
paquete resultante a través de un enlace a 155 Mbps. Ignore el control de flujo y el control
de congestión de modo que A pueda bombear los segmentos seguidos y de forma
continuada.
R/: El número de segmentos es 2^32 / 536 = 8,012.998.687 * 66 bytes de cabecera, se añaden a
cada segmento con un total de 528857934 bytes de cabecera. El número total de bytes
transmitidos es 2^32 + 528857934 = 4823825230 bytes.
Por lo tanto se necesitarían 249 segundos para transmitir el archivo a través de un enlace de 155
Mbps
25. Los hosts A y B están comunicándose a través de una conexión TCP y el host B ya ha recibido
de A todos los bytes hasta el byte 126. Suponga que a continuación el host A envía dos segmentos
seguidos al host B. El primer y el segundo segmentos contienen, respectivamente, 70 y 50 bytes de
datos. En el primer segmento, el número de secuencia es 127, el número del puerto de origen es
302 y el número de puerto de destino es 80. El host B envía un paquete de reconocimiento cuando
recibe un segmento del host A.
a.
En el segundo segmento enviado del host A al B, ¿Cuáles son el número de secuencia, el
número del puerto de origen y el número del puerto de destino?
R/: En el segundo segmento del host A al B, el número de secuencia es 197, el número de puerto
de origen es 302 y el número de puerto de destino es 80.
b. Si el primer segmento llega antes que el segundo segmento, ¿cuál es el número de
reconocimiento, el número del puerto de origen y el número del puerto de destino en el
ACK correspondiente al primer segmento?
R/: Si el primer segmento llega antes de la segunda, en el acuse de recibo del primer segmento
es 197, el número de puerto de origen es 80 y el número de puerto de destino es 302.
c. Si el segundo segmento llega antes que el primero, ¿cuál es el número de reconocimiento
en el ACK correspondiente al primer segmento?
R/: Si el segundo segmento llega antes de que el primer segmento, en el acuse de recibo del
primer segmento de llegar, “el número de acuse de recibo es 127”, lo que indica que todavía
está esperando para los bytes 127 y en adelante.
d. Suponga que los dos segmentos enviados por A llegan en orden a B. El primer paquete de
reconocimiento se pierde y el segundo llega después de transcurrido el primer intervalo
de fin de temporización. Dibuje un diagrama de temporización que muestre estos
segmentos y todos los restantes segmentos y paquetes de reconocimiento enviados.
(Suponga que no se producen pérdidas de paquetes adicionales.) para cada uno de los
segmentos que incluya en su diagrama, especifique el número de secuencia y el número
de bytes de datos; para cada uno de los paquetes de reconocimiento que añada,
proporcione el número de reconocimiento.
R/.
26. Los hosts A y B están directamente conectados mediante un enlace a 100 Mbps. Existe una
conexión TCP entre los dos hosts y el host A está transfiriendo al host B una archivo de gran
tamaño a través de esta conexión. El host A puede enviar sus datos de la capa de aplicación a su
socket TCP a una velocidad tan alta como 120 Mbps pero el host B sólo puede leer los datos
almacenados en su buffer de recepción TCP a una velocidad máxima de 60 Mbps. Describa el
efecto del control de flujo de TCP.
R/: Dado que la capacidad de enlace se encuentra a 100 Mbps, por lo que la tasa de envío de
host A puede ser en la mayoría de 100Mbps. Aun así, el host A envía datos en el búfer de
recepción más rápido que el host B, por lo tanto puede eliminar datos de la memoria
intermedia. El búfer de recepción se llena a un ritmo de aproximadamente 40 Mbps. Cuando el
buffer está lleno, las señales Host B al Host A detienen el envío de datos estableciendo Rcv
Window = 0. Host A continuación, se detiene el envío hasta que reciba un segmento TCP con Rcv
Window> 0. Anfitrión A será de este modo detener y comenzar a enviar en función del Rcv
Window valores que recibe del anfitrión B. En promedio, la tasa de largo plazo en la que el host
A envía datos al host B como parte de esta relación no es más que 60Mbps repetidamente.
27. En la Sección 3.5.6 se han estudiado las cookies SYN.
a. ¿Por qué es necesario que el servidor utilice un número de secuencia inicial especial
en SYN ACK?
R/: El servidor utiliza el número de secuencia inicial especial (que se obtiene a partir del hash de
IP y puertos de origen y de destino) con el fin de defenderse contra ataques SYN Flood.
b. Suponga que un atacante sabe que un host objetivo utiliza cookies SYN. ¿Puede el
atacante crear conexiones semi - abiertas o completamente abiertas enviando
simplemente un paquete ACK al host objetivo? ¿Por qué?
R/: No, el atacante no puede crear conexiones medio abiertas o completamente abiertas,
simplemente enviando un ACK de paquetes a la meta. Las conexiones medio abiertas no son
posibles desde un servidor utilizando los cookies, no mantiene las variables de conexión y
tampoco para cualquier conexión antes de establecer conexiones completas. Para el
establecimiento de conexiones totalmente abiertas, un atacante debe conocer el número de
secuencia inicial especial correspondiente a la (falsa) de direcciones IP de origen del atacante.
Este número de secuencia requiere el número "secreto" que utiliza cada servidor. Dado que el
atacante no conoce este número secreto, ella no puede adivinar el número de secuencia inicial.
c. Suponga que un atacante recopila una gran cantidad de números de secuencia
iniciales enviados por el servidor. ¿Puede el atacante hacer que el servidor cree
muchas conexiones completamente abiertas enviando paquetes ACK con esos
números de secuencia iniciales? ¿Por qué?
R/: No, el servidor simplemente puede añadir un sello de tiempo en el cálculo de los números de
secuencia inicial y elegir un tiempo de vida de valor para los números de secuencia, y deseche
los números de secuencia iniciales caducadas incluso si el atacante quiere reproducirlos.
28. Considere la red mostrada en el escenario 2 de la Sección 3.6.1. Suponga que ambos hosts
emisores A y B tienen definidos valores de fin de temporización fijos.
a. Demuestre que aumentar el tamaño del buffer finito del router puede llegar a hacer
que se reduzca la tasa de transferencia (ƛ out).
R/: Si observamos los valores de tiempo de espera, entonces los remitentes pueden tener
tiempo de espera antes de tiempo. Por lo tanto, algunos paquetes se retransmiten incluso que
no se pierdan.
b. Suponga ahora que ambos hosts ajustan dinámicamente su valores de fin de
temporización (como lo hace TCP) basándose en el retardo del buffer del router.
¿Incrementar el tamaño del buffer ayudaría a incrementar la tasa de transferencia?
¿Por qué?
R/: Si los valores de tiempo de espera se estima (como lo hace TCP), a continuación, aumentar el
tamaño del búfer sin duda ayuda a aumentar el rendimiento de ese router. Pero puede haber un
problema potencial. Que un retraso podría ser muy grande, similar a lo que se muestra en el
escenario 1.
29. Considere el procedimiento de TCP para estimar RTT. Suponga que = 0,1. Sea RTT Muestra 1 la
muestra de RTT más reciente, RTT Muestra 2 la siguiente muestra de RTT más reciente, y así
sucesivamente.
a. Para una conexión TCP determinada, suponga que han sido devueltos cuatro paquetes
de reconocimiento con las correspondientes muestras de RTT, RTT Muestra 4, RTT
Muestra 3, RTT Muestra 2 y RTT Muestra 1. Exprese RTT Estimado en función de las cuatro
muestras de RTT.
b. Generalice la fórmula para n muestras de RTT.
c. En la fórmula del apartado (b), considere que n tiende a infinito. Explique por qué este
procedimiento de cálculo del promedio se conoce como media móvil exponencial.
30. En la Sección 3.5.3, se ha estudiado la estimación de RTT en TCP. ¿Por qué cree que
TCP evita medir RTT Muestra para los segmentos retransmitidos?
R/: Si TCP mide RTT Muestra para un segmento retransmitido. Supongamos que la fuente envía
paquetes P1, el temporizador expira para P1, y la fuente envía entonces P2, una nueva copia del
mismo paquete. Supongamos, además, las medidas de origen RTT Muestra para P2 (el paquete
retransmitido). Finalmente suponer que poco después de la transmisión de un acuse de recibo
para P2 P1 llega. La fuente erróneamente tendrá este reconocimiento como un reconocimiento
para P2 y calcular un valor incorrecto de RTT Muestra.
31. ¿Cuál es la relación entre la variable Enviar Base de la Sección 3.5.4 y la variable
Ultimo Byte Recibido de la Sección 3.5.5?
R/: En cualquier momento dado t, Enviar Base - 1 es el número de secuencia del último byte que
el remitente sabe que se ha recibido correctamente, en el receptor. El último byte recibido
realmente (correctamente y en orden) en el receptor en el momento t puede ser mayor si
existen reconocimientos en el camino. Así Enviar Base-1 ≤ Último Byte Recibido.
32. ¿Cuál es la relación entre la variable Ultimo Byte Recibido de la Sección 3.5.5 y la variable y de
la Sección 3.5.4?
R/: Cuando en el tiempo t, el remitente recibe un acuse de recibo con el valor de y, el remitente
sabe a ciencia cierta que el receptor ha recibido todo a través de y-1. El último byte real recibido
(correctamente y en orden) en el receptor en el momento t puede ser mayor si y ≤ Enviar Base o
si hay otros reconocimientos en el camino. Así y-1 ≤ Último Byte Recibido.
33. En la Sección 3.5.4 hemos visto que TCP espera hasta que ha recibido tres ACK duplicados
antes de realizar una retransmisión rápida. ¿Por qué cree que los diseñadores de
TCP han decidido no realizar una retransmisión rápida después de recibir el primer
ACK duplicado correspondiente a un segmento?
R/: Supongamos que tenemos paquetes n, n +1 y n +2 se envían y se reciben ese paquete n y
ACK. Si los paquetes n 1 y n 2 se reordenan a lo largo del trayecto de extremo a extremo (es
decir, son recibidos en el orden n 2, n 1), entonces la recepción de paquetes n 2 generará un
acuse de recibo por duplicado para n y daría lugar a una retransmisión en virtud de una política
de espera sólo para segundo ACK duplicado para la retransmisión. Esperando un ACK duplicado
de triple, tiene que ser el caso de que dos paquetes después de paquetes n están correctamente
recibidos, mientras que n + 1 no fue recibido. Los diseñadores del esquema ACK duplicado
triples probablemente sintieron que la espera de dos paquetes (en lugar de 1) era la disyuntiva
entre la derecha que provocó una retransmisión rápida cuando sea necesario, pero no
retransmitir prematuramente en la faz de la reordenación de paquetes.
34. Compare GBN, SR y TCP (sin paquetes ACK retardados). Suponga que los valores de fin de
temporización de los tres protocolos son los suficientemente grandes como para que 5 segmentos
de datos consecutivos y sus correspondientes ACK puedan ser recibidos (si no se producen
pérdidas en el canal) por el host receptor (host B) y el host emisor host (host A), respectivamente.
Suponga que el host A envía 5 segmentos de datos al host B y que el segundo segmento (enviado
desde A) se pierde. Al final, los 5 segmentos de datos han sido recibidos correctamente por el host
B.
a. ¿Cuántos segmentos ha enviado en total el host A y cuantos ACK ha enviado en total el
host B? ¿Cuáles son sus números de secuencia? Responda a esta pregunta para los
tres protocolos.
b. Si los valores de fin de temporización para los tres protocolos son mucho mayores que
5 RTT, ¿qué protocolo entregará correctamente los cinco segmentos de datos en el
menor intervalo de tiempo?
35. En la descripción de TCP de la Figura 3.53, el valor del umbral se define como umbral=Ventana
Congestión/2 en varios sitios y el valor de umbral se hace igual a la mitad del tamaño de la
ventana cuando se produce un suceso de pérdida. ¿Tiene que ser la velocidad a la que el emisor
está transmitiendo cuando se produce un suceso de pérdida aproximadamente igual a Ventana
Congestión segmentos por RTT? Explique su respuesta. Si su respuesta es no, ¿puede sugerir una
forma diferente en la que se podría fijar el valor de umbral?
R/: Sí, la velocidad de envío es siempre más o menos cwnd / RTT
36. Considere la Figura 3.46 (b). Si ƛ in aumenta por encima de R/2, ¿puede ƛ out incrementarse
por encima de R/3? Explique su respuesta. Considere ahora la Figura 3.46(c). Si
ƛ in aumenta por encima de R/2, ¿puede ƛ out aumentar por encima de R/4 suponiendo que un
paquete será reenviado dos veces como media desde el router al receptor?
Explique su respuesta.
R/: Si la tasa de llegada aumenta más allá de R / 2 en la Figura 3.46 (b), entonces la tasa total de
llegada a la cola excede la capacidad de la cola, lo que resulta en el aumento de la pérdida como
la tasa de llegada se incrementa. Cuando la tasa de llegada es igual a R / 2, 1 de cada tres
paquetes que deja la cola es una retransmisión. Con el aumento de la pérdida, incluso una
fracción más grande de los paquetes que salen de la cola será retransmisiones. Dado que la tasa
de salida máxima de la cola de una de las sesiones es de R / 2, y dado que un tercio o más habrá
transmisiones como la tasa de llegada aumenta, el rendimiento de entregar con éxito los datos
no pueden aumentar más allá λout. Siguiendo un razonamiento similar, si la mitad de los
paquetes que salen de la cola son retransmisiones, y el porcentaje máximo de paquetes de
salida por sesión es de R / 2, entonces el valor máximo de λout es (R / 2) / 2 o R / 4.
37. Considere la Figura 3.58.
Suponiendo que TCP Reno es el protocolo que presenta el comportamiento mostrado en la figura,
responda a las siguientes preguntas. En todos los casos, deberá proporcionar una breve
explicación que justifique su respuesta.
a. Identifique los intervalos de tiempo cuando TCP está operando en el modo de
arranque lento.
R/: Arranque lento TCP está funcionando en los intervalos [1,6] y [23,26]
b. Identifique los intervalos de tiempo cuando TCP está operando en el modo de
evitación de la congestión.
R/: Evitación de congestión TCP está funcionando en los intervalos [6,16] y [17,22]
c. Después del ciclo de transmisión 16, ¿se detecta la pérdida de segmento mediante
tres ACK duplicados o mediante un fin de temporización?
R/: Después de la ronda de transmisión a 16, la pérdida de paquetes es reconocido por un ACK
duplicado triples. Si había un tiempo de espera, el tamaño de la ventana de congestión se habría
reducido a 1.
d. Después del ciclo de transmisión 22, ¿se detecta la pérdida de segmento mediante
tres ACK duplicados o mediante un fin de temporización?
R/: Después de la ronda de transmisión a 22, pérdida del segmento se detecta debido a tiempo
de espera, y por lo tanto el tamaño de la ventana de congestión se establece en 1
e. ¿Cuál es el valor inicial de umbral en el primer ciclo de transmisión?
R/: El umbral es inicialmente 32, ya que es en este tamaño de la ventana que arranque lento
para y comienza evitación de la congestión.
f.
¿Cuál es el valor de umbral transcurridos 18 ciclos de transmisión?
R/: El umbral se fija a la mitad del valor de la ventana de congestión cuando se detecta la
pérdida de paquetes, la transmisión ronda 16, el tamaño de las ventanas de congestión es de 42.
De ahí que el umbral es 21 en la ronda de transmisión 18.
g. ¿Cuál es el valor de umbral transcurridos 24 ciclos de transmisión?
R/: El umbral se fija a la mitad del valor de la ventana de congestión cuando se detecta la
pérdida de paquetes. Cuando se detecta una pérdida durante la transmisión ronda 22, el
tamaño de las ventanas de congestión es 26. De ahí que el umbral es 13 en la ronda de
transmisión 24.
h. ¿Durante cuál ciclo de transmisión se envía el segmento 70?
R/: Durante la primera ronda de la transmisión, el paquete 1 es enviado ; paquetes 2-3 se envían
en la segunda ronda de la transmisión ; 4-7 paquetes se envían en la tercera, la transmisión de
todo el año; 8-15 paquetes se envían en el cuarta ronda de transmisión ; paquetes 16-31 son
enviados en la quinta ronda de la transmisión ; 32-63 paquetes se envían en el sexta ronda de
transmisión ; paquetes de 64 a 96 son enviados en la séptima ronda de transmisión . Así paquete
70 se envía en la séptima ronda de transmisión.
i.
Suponiendo que se detecta una pérdida de paquete después del ciclo de transmisión
26 causa de la recepción de un triple ACK duplicado, ¿cuáles serán los valores del
tamaño de la ventana de congestión y de umbral?
R/: La ventana de congestión y el umbral se establecerán en la mitad del valor actual de la
ventana de congestión (8) cuando se produjo la pérdida. Así, los nuevos valores de los umbrales
y ventanas serán 4.
j.
Suponga que se utiliza TCP Tahoe (en lugar de TCP Reno) y que se han recibido triples
ACK duplicados en el ciclo de transmisión 16. ¿Cuáles serán los valores del tamaño de
la ventana de congestión y de umbral en el ciclo de transmisión 19?
R/: El umbral es 21, y el tamaño de la ventana de congestión es 1
k. Suponga otra vez que se utiliza TCP Tahoe y que se produce un suceso de fin de
temporización en el ciclo de transmisión 22. ¿Cuántos paquetes han sido enviados
entre los ciclos de transmisión 17 a 22, ambos inclusive?
R/: Ronda 17, 1 paquete; ronda de 18, 2 paquetes; ronda 19, 4 paquetes; ronda 20, 8 paquetes;
ronda 21, 16 paquetes; ronda de 22, 21 paquetes. Así, el número total es 52
38. Utilice la Figura 3.56, que ilustra la convergencia del algoritmo AIMD de TCP.
Suponga que en lugar de un decrecimiento multiplicativo, TCP disminuye el tamaño de la ventana
en una cantidad constante. ¿Convergería el algoritmo AIAD resultante hacia un algoritmo de cuota
equitativa? Justifique su respuesta utilizando un diagrama similar al de la Figura 3.56.
39. En la Sección 3.5.4, hemos explicado que el intervalo de fin de temporización se duplica
después de un suceso de fin de temporización. Este mecanismo es una forma de control de
congestión. ¿Por qué TCP necesita un mecanismo de control de congestión basado en ventana
(como hemos estudiado en la Sección 3.7) además de un mecanismo de duplicación del intervalo
de fin de temporización?
R/: Si TCP fuera un protocolo de parada y espera, a continuación, la duplicación del tiempo de
intervalo sería suficiente como mecanismo de control de congestión. Sin embargo, TCP utiliza
revestimiento (y por lo tanto no es un protocolo de parada y espera), lo que permite al
remitente que tiene múltiples segmentos no reconocidos pendientes. La duplicación del tiempo
de desbordamiento no impide que un TCP remitente del envío de un gran número de paquetes
de primera, el tiempo de transmisión en la red, incluso cuando la ruta de extremo a extremo
está muy congestionada. Por lo tanto se necesita un mecanismo de control de congestión para
detener el flujo de "datos recibidos de la aplicación anterior" cuando hay signos de congestión
de la red.
40. El host A está enviando un archivo de gran tamaño al host B a través de una conexión
TCP. En esta conexión nunca se pierden paquetes y los temporizadores nunca caducan. La
velocidad de transmisión del enlace que conecta el host A con Internet es R bps. Suponga que el
proceso del host A es capaz de enviar datos a su socket TCP a una velocidad de S bps, donde S= 10
· R. Suponga también que el buffer de recepción de TCP es lo suficientemente grande como para
almacenar el archivo completo y que el buffer emisor sólo puede almacenar un porcentaje del
archivo. ¿Qué impide al proceso del host A pasar datos de forma continua a su socket TCP a una
velocidad de S bps? ¿El mecanismo de control de flujo de TCP, el mecanismo de control de
congestión de TCP o alguna otra cosa? Razone su respuesta.
R/: En este problema, no hay peligro de desborde del receptor desde el búfer de recepción del
receptor puede almacenar todo el archivo. También, porque no hay pérdida y acuses de recibo
se devuelven antes de que expiren los temporizadores, el control de congestión del TCP no
estrangula el remitente. Sin embargo, el proceso en el host A no va a pasar de forma continua
los datos a la toma de corriente porque el búfer de emisión, se agotará pronto. Una vez que el
buffer de envío se llena, el proceso va a pasar datos a una tasa promedio o R << S.
41. Se envía un archivo de gran tamaño de un host a otro a través de una conexión TCP sin
pérdidas.
a. Suponga que TCP utiliza el algoritmo AIMD para su control de congestión sin fase de
arranque lento. Suponiendo que Ventana Congestión aumenta 1 MSS cada vez que se
recibe un lote de paquetes ACK y suponiendo que los intervalos RTT son
aproximadamente constantes, ¿Cuánto tiempo tarda Ventana Congestión en
aumentar de 5 MSS a 11 MSS (si no se producen sucesos de pérdida de paquetes)?
R/.
Se tarda 1 RTT para aumentar CongWin a 6 MSS; 2 RTT para aumentar a 7
MSS; 3 RTT para aumentar a 8 MSS; 4 RTT para aumentar a 9 MSS; 5 RTT para
aumentar a 10 MSS, y 6 RTT para aumentar a 11 MSS.
b. ¿Cuál es la tasa de transferencia media (en función de MSS y RTT) para esta conexión
hasta llegar al periodo RTT número 6?
R/.
En el primer RTT 5 MSS fue enviado, en el segundo RTT 6 MSS fue enviado, en
el tercer RTT 7 MSS fue enviado, en el cuarto RTT 8 MSS fue enviado, en el
quinto RTT, 9 MSS fue enviada, y en el sexto RTT, 10 SMS fue enviado. Por lo
tanto, hasta el momento 6 RTT, 5 +6 +7 +8 +9 +10 = 45 MSS fueron enviados
(y reconocido). Por lo tanto, podemos decir que el rendimiento medio hasta
el momento 6 RTT fue (45 MSS) / (6 RTT) = 7,5 MSS / RTT.
42. Recuerde la descripción macroscópica de la tasa de transferencia de TCP. En el periodo de
tiempo que va desde que la velocidad de la conexión varía entre W/(2 · RTT) y W/RTT, sólo se
pierde un paquete (justo al final del periodo).
a. Demuestre que la tasa de pérdidas (fracción de paquetes perdidos) es igual a:
R/.
La tasa de pérdida, L, es la relación entre el número de paquetes perdidos
durante el número de paquetes enviados. En un ciclo, 1 paquete se pierde. El
número de paquetes enviados en un ciclo es
∑
(
)
(
)
∑
b. Utilice el resultado anterior para demostrar que si una conexión tiene una tasa de
pérdidas igual a L, entonces su tasa promedio es aproximadamente igual a
R/.
Para W largo
así
o
√
43. Considere una única conexión TCP (Reno) que emplea un enlace a 10Mbps que no almacena
en buffer ningún dato. Suponga que este enlace es el único enlace congestionado entre los hosts
emisor y receptor. Suponga también que el emisor TCP tiene que enviar al receptor un archivo de
gran tamaño y que el buffer de recepción del receptor es mucho más grande que la ventana de
congestión. Haremos además las siguientes suposiciones: el tamaño de segmento TCP es de 1.500
bytes, el retardo de propagación de ida y vuelta de esta conexión es igual a 100 milisegundos y
esta conexión TCP siempre se encuentra en la fase de evitación de la congestión, es decir,
ignoramos la fase de arranque lento.
a. ¿Cuál es el tamaño máximo de ventana (en segmentos) que esta conexión TCP puede
alcanzar?
R/.
Sea W denota el tamaño de ventana máximo medido en segmentos. Entonces, W
* MSS / RTT = 10 Mbps, como los paquetes serán descartados si el máximo
enviando tasa supera la capacidad del enlace. Por lo tanto, tenemos W * 1500 *
8/0.1 = 10 * 10 ^ 6, entonces W es aproximadamente 84 (techo de 83.3)
segmentos.
b. ¿Cuáles son el tamaño medio de ventana (en segmentos) y la tasa de transferencia media
(en bps) de esta conexión TCP?
R/.
Como tamaño de ventana de congestión varía de W / 2 a W, entonces el tamaño
medio de la ventana es 0.75W = 63 segmentos. El rendimiento promedio es de 63
* 1500 * 8/0.1 = 7.56Mbps.
c. ¿Cuánto tiempo tarda esta conexión TCP en alcanzar de nuevo su tamaño de ventana
máximo después de recuperarse de una pérdida de paquete?
R/.
84/2 * 0,1 = 4,2 segundos, como el número de RTT (que esta conexiones TCP
necesita con el fin de aumentar su tamaño de la ventana de W / 2 a W) está dada
por W / 2. Recordemos que el tamaño de la ventana se incrementa en uno por
cada RTT.
44. Continuando con el escenario descrito en el problema anterior, suponga que el enlace a
10Mbps puede almacenar en buffer un número finito de segmentos. Razone por qué para que el
enlace esté siempre ocupado enviando datos, deberíamos seleccionar un tamaño de buffer que
sea al menos igual al producto de la velocidad del enlace C y el retardo de propagación de ida y
vuelta entre el emisor y el receptor.
R/.
Sea W denotan máximo tamaño de la ventana. Sea S el tamaño del búfer. Para
simplificar, supongamos que el remitente TCP envía paquetes de datos en una ronda
round, con cada ronda que corresponde a un RTT. Si el tamaño de la ventana alcanza W,
entonces se produce una pérdida. A continuación, el emisor recortará su tamaño de la
ventana de congestión a la mitad, y espera a que los ACK para W / 2 paquetes
pendientes antes de que comience el envío de los segmentos de datos de nuevo. Con el
fin de asegurarse de que el vínculo siempre ocupándose de enviar datos, tenemos que
dejar que el enlace ocupado enviando los datos en el período W / (2 * C) (este es el
intervalo de tiempo en el que el emisor está esperando las confirmaciones para el W / 2
paquetes pendientes). Por lo tanto, S / C debe ser inferior a W / (2 * C), es decir, S> = W
/ 2.
Vamos Tp denotan el retardo de propagación de un solo sentido entre el emisor y el
receptor.
Cuando el tamaño de la ventana alcanza el mínimo W / 2 y el buffer se vacía, hay que
asegurarse de que el enlace está también ocupado enviando datos. Por lo tanto,
debemos tener W / 2 / (2TP)> = C, por lo tanto, W / 2> = C * 2TP.
Por lo tanto, s> = C * 2TP.
45. Repita el Problema 43, pero sustituyendo el enlace a 10 Mbps por un enlace a 10 Gbps.
Observe que en la respuesta al apartado (c) habrá demostrado que se tarda mucho tiempo en que
el tamaño de la ventana de congestión alcance su máximo después de recuperarse de una pérdida
de paquete. Diseñe una solución que resuelva este problema.
R/.
A)
Sea W denota el tamaño máximo de la ventana. Entonces, W * MSS / RTT = 10 Gbps, ya
que los paquetes se eliminará si la tasa máxima enviando alcanza la capacidad del
enlace. Por lo tanto, tenemos W * 1500 * 8/0.1 = 10 * 10 ^ 9, entonces W = 83,334
segmentos.
B)
Como tamaño de ventana de congestión varía de W / 2 a W, entonces el tamaño medio
de la ventana es 0.75W = 62.501 segmentos. El rendimiento promedio es de 62501 *
1500 * 8/0.1 = 7.5Gbps.
C)
83334/2 * 0,1 / 60 = 69 minutos. Con el fin de acelerar el proceso de aumento de la
ventana, podemos aumentar el tamaño de la ventana por un valor mucho más grande,
en lugar de aumentar el tamaño de ventana sólo por uno en cada RTT. Se proponen
algunos protocolos para resolver este problema, tales como TCP escalable o de alta TCP.
46. Sea T (medido en RTT) el intervalo de tiempo que una conexión TCP tarda en aumentar el
tamaño de su ventana de congestión de W/2 a W, donde W es el tamaño máximo de la ventana de
congestión. Demuestre que T es una función de la tasa de transferencia media de TCP.
R/.
Como promedio el rendimiento de TCP B está dada por
que,
así que sabemos
2
Dado que entre dos pérdidas de paquetes consecutivos, hay paquetes de 1 / L enviado
por el remitente TCP, por lo tanto
*MSS/B Por lo tanto, nos encontramos
con que
que es, T es una función de B.
47. Considere un algoritmo AIMD de TCP simplificado en el que el tamaño de la ventana de
congestión se mide en número de segmentos, no en bytes. En la fase de incremento aditivo, el
tamaño de la ventana de congestión se incrementa en un segmento cada RTT. En la fase de
decrecimiento multiplicativo, el tamaño de la ventana de congestión se reduce a la mitad (si el
resultado no es un entero, redondee al entero más próximo). Suponga que dos conexiones TCP,
C1 y C 2, comparten un enlace congestionado cuya velocidad es de 30 segmentos por segundo.
Suponemos que tanto C1 como C2 están en l fase de evitación de la congestión. El intervalo RTT de
la conexión C1 es igual a 100 milisegundos y el de la conexión C2 es igual a 200 milisegundos.
Suponemos que cuando la velocidad de los datos en el enlace excede la velocidad del enlace,
todas las conexiones TCP experimentan pérdidas de segmentos de datos.
a. Si en el instante t0 el tamaño de la ventana de congestión de ambas conexiones, C1 y C2,
es de 10 segmentos, ¿cuáles serán los tamaños de dichas ventanas de congestión después
de transcurridos 2200 milisegundos?
R/.
La diferencia clave entre C1 y C2 es que RTT de C1 es sólo la mitad de la de C2. Así
C1 ajusta su tamaño de la ventana después de 100 mlseg, pero C2 ajusta su
tamaño de la ventana después de 200 mlseg.
Supongamos que cada vez que un evento de pérdida ocurre, C1 recibe después
de 100 ms y C2 recibe después de 200 milisegundos.
Además tenemos el siguiente modelo simplificado de TCP.
Después de cada RTT, una conexión determina si se debe aumentar el tamaño de
la ventana o no. Para C1, calculamos la tasa media total de envío en el enlace en
los 100 ms previos. Si esa tasa supera la capacidad del enlace, entonces
suponemos que C1 detecta la pérdida y reduce su tamaño de la ventana. Pero
para C2, calculamos la tasa media total de enviar el enlace de la 200mseg
anterior. Si esa tasa superior a la capacidad de enlace, entonces suponemos que
C2 detecta la pérdida y reduce su tamaño de la ventana.
Tenga en cuenta que es posible que el promedio de tasa de envío de 100 mseg en
la última es mayor que la capacidad del enlace, pero el promedio de tasa de
envío en la última de 200 milisegundos es menor que o igual a la capacidad del
enlace, a continuación, en este caso, se supone que va a experimentar la pérdida
de C1 evento, pero C2 no.
En la siguiente tabla se describe la evolución de los tamaños de las ventanas y las
tasas de envío basados en los supuestos anteriores.
C1
C2
promedio de tasa de
Tamaño de ventana (num. De
envio de datos
Time (msec) segmentos enviados mayores a
(segmentos por
100msec)
segundo,
promedio de tasa de
Tamaño de ventana (num. De
segmentos enviados mayores a 200msec)
=ventana/0.2)
0
10
100 (en [0-100]msec]
envio de datos
(segmentos por
segundo,
=ventana/0.2)
10
50 (en [0-100]msec)
5
(disminuye el promedio del
100
tamaño de ventana. tasa de
envío total para el enlace
50 (en [100-
50 (en [100-
200]msec]
200]msec)
menor a 100 ms 150= 100+50)
2
5
(disminuye el promedio del
(disminuye el promedio del tamaño de
tamaño de ventana. Tasa de
200
envío total para el enlace
20
menor a 100msec is 100=
50+50)
ventana. tasa de envío total para el
enlace menor a 200msec is
125=(100+50)/2 + (50+50)/2)
25
1
(disminuye el promedio del
300
tamaño de ventana. Tasa de
envío total para el enlace
10
25
menor at 100msec is 45=
(20+25)
1
2
(disminuye el promedio del tamaño de
400
(no disminuye mas, el tamaño
de la ventana ya es 1)
10
500
2
20
600
3
30
700
1
10
800
2
20
900
3
30
ventana. Tasa de envío total para el
enlace menor a 200msec is 40=
10
(20+10)/2 + (25+25)/2)
1
10
3
15
15
1
5
5
2
(disminuye el promedio del
tamaño de ventana. Tasa de
1000
envío total para el enlace
menor a 100msec is 35=
(incrementa el promedio del tamaño de
10
(30+5)
ventana. Tasa de envío total para el
enlace menor a 200msec is 30=
10
(20+30)/2 + (5+5)/2)
1100
2
20
1200
3
30
1300
1
10
1400
2
20
1500
3
30
1600
1
10
1700
2
20
1800
3
30
1900
1
10
2000
2
20
2100
3
30
2200
1
10
10
3
15
15
1
5
2
10
5
10
3
15
15
1
5
2
10
5
b. ¿Obtendrán estas dos conexiones, a largo plazo, la misma cuota de ancho de banda del
enlace congestionado? Explique su respuesta.
48. Continúe con la red descrita en el problema anterior, pero ahora suponga que las dos
conexiones TCP, C1 y C2, tienen el mismo intervalo RTT de 100 milisegundos.
Suponga que en el instante t0, el tamaño de la ventana de congestión de C1 es de 15 segmentos
pero el tamaño de la ventana de congestión de C2 es igual a 10 segmentos.
a. ¿Cuáles serán los tamaños de las ventanas de congestión después de transcurridos
2200 milisegundos?
R/.
Del mismo modo que en el último problema, podemos calcular sus tamaños de ventana
en el tiempo en el siguiente tabla. Tanto C1 y C2 tienen el mismo tamaño de la ventana 2
después de 2200msec.
C1
C2
Tamaño de
Velocidad de
Tamaño de
Velocidad de
venta
datos enviados
ventana
datos enviados
(num. De
(num. De
Tiempo (msec) segmentos
segmentos
enviados
(segmentos
enviados
(segmentos
mayores a 100 por segundo = mayores a 100 por segundo =
msec)
ventana/0.1)
msec)
ventana/0.1)
150 (en [0100 (en [00
15
100lmsec]
10
1001 msec)
100
7
70
5
50
200
3
30
2
20
300
1
10
1
10
400
2
20
2
20
500
1
10
1
10
600
2
20
2
20
700
1
10
1
10
800
2
20
2
20
900
1
10
1
10
1000
2
20
2
20
1100
1
10
1
10
1200
2
20
2
20
1300
1
10
1
10
1400
2
20
2
20
1500
1
10
1
10
1600
2
20
2
20
1700
1
10
1
10
1800
2
20
2
20
1900
1
10
1
10
2000
2
20
2
20
2100
1
10
1
10
2200
2
20
2
20
b. . ¿Obtendrán estas dos conexiones, a largo plazo, la misma cuota de ancho de banda del
enlace congestionado?
R/.
Sí, esto se debe a que el algoritmo AIMD de TCP. Y que ambas conexiones tienen el
mismo RTT.
c.
Decimos que dos conexiones están sincronizadas si ambas conexiones alcanzan su
tamaño de ventana máximo al mismo tiempo y alcanzan su tamaño mínimo de ventana
también al mismo tiempo. ¿Terminarán con el tiempo sincronizándose estas dos
conexiones? En caso afirmativo, ¿cuáles son sus tamaños máximos de ventana?
R/.
Sí, esto se puede ver claramente a partir de la tabla anterior. Su tamaño máximo de la
ventana es 2.
d. ¿Ayudará esta sincronización a mejorar la tasa de utilización del enlace compartido? ¿Por
qué? Esboce alguna idea para evitar esta sincronización.
R/.
No, esta sincronización no va a ayudar a mejorar la utilización del enlace, ya que estas
dos conexiones actúan como un único oscilante conexión entre min y max tamaño de
ventana. Por lo tanto, el vínculo no se utiliza plenamente (recordemos que asumir este
enlace no tiene ningún buffer).
Una forma posible de romper la sincronización es añadir un tampón finito al enlace y
colocar aleatoriamente paquetes en el búfer antes del desbordamiento de búfer. Esto
causará diferentes conexiones para reducir sus tamaños de ventana en diferentes
momentos. Hay muchas técnicas para hacer eso como: AQM (Active Queue
Management), RED (Random Early Detect), PI (Proportional and Integral AQM), AVQ
(Adaptive Virtual Queue) y REM (Random exponential Marking), etc
49. Veamos una modificación del algoritmo de control de congestión de TCP. En lugar de utilizar
un incremento aditivo podemos emplear un incremento multiplicativo. Un emisor TCP incrementa
su tamaño de ventana según una constante pequeña positiva a (0 < a < 1) cuando recibe un ACK
válido. Halle la relación funcional existente entre la tasa de pérdidas L y el tamaño máximo de la
ventana de congestión W. Demuestre que para esta conexión TCP modificada,
independientemente de la tasa media de transferencia de TCP, una conexión TCP siempre invierte
la misma cantidad de tiempo en incrementar el tamaño de su ventana de congestión de W/2a W.
R/.
Tenga en cuenta que W representa el tamaño máximo de la ventana.
En primer lugar se encuentra el número total de segmentos enviados durante el intervalo en TCP
cambia su tamaño de la ventana de W / 2 hasta e incluir W. Esto viene dado por:
S = W / 2 + (W / 2) * (1 + α) + (W / 2) * (1 + α)2 + (W / 2) * (1 + α)3 +... + (W / 2) * (1 + α)k
Nos encontramos con k = log (1 + α)2, entonces S = W * (2α +1) / (2α).
Tasa de pérdida de L está dada por:
L = 1 / S = (2α) / (W * (2α 1)).
El tiempo que toma TCP para aumentar su tamaño de la ventana de W / 2 a W está dada por:
k* RTT = (log (1 + α) 2) * RTT, que es claramente independiente del rendimiento medio de TCP.
Tenga en cuenta, el rendimiento promedio de TCP está dado por:
B = MSS * S / ((k +1) * RTT) = MSS / (L * (k +1) * RTT).
Tenga en cuenta que esto es diferente de TCP que tiene rendimiento promedio:
B
, donde la raíz cuadrada de L aparece en el denominador.
50. En nuestra exposición sobre el futuro de TCP de la Sección 3.7 hemos destacado que para
alcanzar una tasa de transferencia de 10 Gbps, TCP sólo podría tolerar una probabilidad de
pérdida de segmentos de 2 · 10^-10 (o lo que es equivalente, un suceso de pérdida por cada
5.000.000.000 segmentos). Indique de dónde se obtienen los valores 2 · 10^-10 y 1 por cada
5.000.000 para los valores de RTT y MSS dados en la Sección 3.7. Si TCP tuviera que dar soporte a
una conexión a 100 Gbps, ¿qué tasa de pérdidas sería tolerable?
R/.
Supongamos que los paquetes de 1500 bytes y un tiempo de ida y vuelta de 100 ms. Desde el
rendimiento de TCP la ecuación es:
y tenemos
51. En nuestra exposición sobre el control de congestión de TCP de la Sección 3.7, implícitamente
hemos supuesto que el emisor TCP siempre tiene datos que enviar. Consideremos ahora el caso en
que el emisor TCP envía una gran cantidad de datos y luego en el instante t 1 se queda inactiva
(puesto que no tiene más datos que enviar). TCP permanece inactivo durante un periodo de
tiempo relativamente largo y en el instante t2 quiere enviar más datos. ¿Cuáles son las ventajas y
las desventajas de que TCP tengan que utilizar los valores de Ventana Congestión y umbral de t 1
cuando comienza a enviar datos en el instante t2? ¿Qué alternativa recomendaría? ¿Por qué?
R/.
Una ventaja de utilizar los valores anteriores de cwnd y ssthresh en el instante t2 es que TCP
haría un comienzo lento para no tener que ir a través de la congestión de la rampa hasta el
rendimiento del valor obtenido en el instante t1. Una desventaja del uso de estos valores es que
pueden ser poco exactos. En particular, si la ruta de acceso se ha vuelto congestionada entre t1
y t2, el remitente envía el valor del segmento en una gran ventana de un camino ya (más)
congestionado.
52. En este problema vamos a investigar si UDP o TCP proporcionan un cierto grado de
autenticación del punto terminal.
a. Considere un servidor que recibe una solicitud dentro de un paquete UDP y responde a la
misma dentro de un paquete UDP (por ejemplo, como en el caso de un servidor DNS). Si
un cliente con la dirección IP X suplanta su dirección con la dirección Y, ¿A dónde enviará
el servidor su respuesta?
R/.
El servidor enviará su respuesta a Y.
b. Suponga que un servidor recibe un SYN con la dirección IP de origen Y, y después de
responder con un SYNACK, recibe un ACK con la dirección IP de origen Y y con el número
de reconocimiento correcto. Suponiendo que el servidor elige un número de secuencia
inicial aleatorio y que no existe ningún atacante interpuesto (man-in-the-middle), ¿puede
el servidor estar seguro de que el cliente está en la dirección Y (y no en alguna otra
dirección X que esté intentando suplantar a Y)?
R/.
El servidor puede estar seguro de que el cliente es de hecho Y. Si fuera algún otro
domicilio erróneo Y, el SYNACK habría sido enviado a la dirección Y, y el TCP en ese
anfitrión no enviaría el segmento TCP ACK de vuelta. Incluso si el atacante enviara
debidamente un segmento TCP ACK, no sabría la secuencia correcta del número de
servidor (ya que el servidor utiliza números de secuencia iniciales aleatorias.)
53. En este problema, vamos a considerar el retardo introducido por la fase de arranque lento de
TCP. Se tiene un cliente y un servidor web directamente conectados mediante un enlace a
velocidad R. Suponga que el cliente desea extraer un objeto cuyo tamaño es exactamente igual a
15 S, donde S es el tamaño máximo de segmento (MSS). Sea RTT el tiempo de transmisión de ida y
vuelta entre el cliente y el servidor (suponemos que es constante). Ignorando las cabeceras del
protocolo, determine el tiempo necesario para recuperar el objeto (incluyendo el tiempo de
establecimiento de la conexión TCP) si:
a. 4 S/R > S/R + RTT > 2S/R
R/.
RTT RTT + + S / R + RTT + S / R + RTT + 12S / R = 4RTT + 14
b. S/R + RTT > 4 S/R
R/.
RTT + RTT RTT + S / R + S / R + RTT + S / R + + + RTT 8S / R = 5RTT +11 S/R
c. S/R > RTT.
R/.
RTT RTT + + S / R + RTT + 14 S / R = 3 RTT + 15 S / R
Descargar