Computer Networks 5th Douglas Comer (418 620) .En - Es
Computer Networks 5th Douglas Comer (418 620) .En - Es
Lo algoritmo hace uso de software para traducir una dirección de protocolo de alto nivel en una dirección que
entiende el hardware? La respuesta depende del protocolo y esquemas de direccionamiento por hardware. En
Internet, sólo nos interesa con la resolución de direcciones IP. Además, dado que la mayoría del hardware ha
adoptado la Ethernet de 48 bits esquema de direccionamiento, uno de los enfoques para la resolución de direcciones
domina. Es la técnica que fue diseñado originalmente para su uso con Ethernet: la Address Resolution Protocol
(ARP).
La idea de ARP es sencillo. Supongamos que el ordenador segundo tiene que resolver la dirección IP del ordenador DO.
Computadora segundo difunde una petición que dice: “Estoy buscando la dirección MAC de un equipo que tiene la dirección
IP do ”. La única emisión viaja a través de una red. Cuando se recibe una copia de la solicitud, ordenador do envía una
respuesta dirigida de nuevo a segundo que dice: “Soy el equipo con la dirección IP DO, y mi dirección MAC es METRO ”. La
figura 23.2 ilustra el intercambio de mensajes.
UN segundo do re UN segundo do re
(un) (un)
Figura 23.2 Ilustración del intercambio de mensajes ARP cuando el ordenador segundo
La figura muestra que a pesar de un mensaje de petición ARP llega a todos los equipos de una red, una respuesta no
lo hace. Veremos que la información de los suministros de remitente en la solicitud de difusión que reciben todos los
ordenadores cuando se procesa la solicitud.
384 Protocolos y tecnologías de apoyo Cap. 23
En vez de restringir ARP para IP y Ethernet, los diseñadores crearon ARP para ser general. Por lo tanto, en lugar de
especificar un formato de mensaje fijo, el estándar describe una forma general para mensajes ARP, y especifica cómo el
formato está adaptado para cada tipo de dirección de protocolo y cada tipo de hardware de red. La motivación para la
adaptación de los mensajes ARP al hardware se debe a que los diseñadores se dieron cuenta de que no podían elegir un
tamaño fijo para una dirección de hardware porque las nuevas tecnologías de red podrían ser inventado que tienen direcciones
más grandes que el tamaño elegido. En consecuencia, los diseñadores incluyen un campo de tamaño fijo al inicio de un
mensaje de ARP para especificar el tamaño de las direcciones de hardware que se utiliza. Por ejemplo, cuando ARP se utiliza
con un Ethernet, la longitud de la dirección hardware está configurado a 6 octetos debido a una dirección Ethernet es de 48 bits
de longitud. Para aumentar la generalidad de ARP, los diseñadores también incluyen un campo de longitud de dirección para
las direcciones de protocolo, así como para las direcciones de hardware.
El punto es que ARP no se limita a las direcciones IP o direcciones de hardware específico - en teoría, el protocolo se
puede utilizar para unir una dirección de alto nivel arbitrario a una dirección de hardware arbitraria. En la práctica, la
generalidad de ARP se utiliza raramente: la mayoría de las implementaciones de ARP se utilizan para enlazar las direcciones
IP a las direcciones Ethernet. Podemos resumir:
Aunque el formato de mensaje de ARP es suficientemente general para permitir que las direcciones de
protocolo de hardware y arbitrarias, ARP casi siempre se utiliza para enlazar una dirección IP a una
dirección Ethernet de 48 bits.
La figura 23.3 ilustra el formato de un mensaje de ARP cuando el protocolo se usa con una dirección IP
versión 4 (4 octetos) y la dirección hardware Ethernet (6 octetos). Cada línea de la figura corresponde a 32 bits de
un mensaje de ARP. Los párrafos siguientes describen cada uno de los campos.
0 8 dieciséis 24 31
HARDWARE tipo de dirección PROTOCOLO DE TIPO DIRECCIÓN
Figura 23.3 El formato de un mensaje de ARP cuando se une a una dirección IPv4
una dirección Ethernet.
Segundo. 23.4 Formato de mensaje ARP 385
HARDWARE tipo de dirección. Un campo de 16 bits que especifica el tipo de dirección de hardware que se utiliza;
el valor es 1 para Ethernet.
PROTOCOLO tipo de dirección. Un campo de 16 bits que especifica el tipo de dirección de protocolo se está usando;
el valor es 0x0800 para IPv4.
HADDR LEN. Un número entero de 8 bits que especifica el tamaño de una dirección de hardware en bytes.
PADDR LEN. Un número entero de 8 bits que especifica el tamaño de una dirección de protocolo en bytes.
OPERACIÓN. Un campo de 16 bits que especifica si el mensaje es una petición (el campo contiene 1) o una
respuesta (el el campo contiene 2).
HADDR remitente. Un campo que se extiende por HADDR LEN bytes y contiene la dirección de hardware del
remitente.
PADDR remitente. Un campo que se extiende por PADDR LEN bytes y contiene la dirección de protocolo del
remitente.
OBJETIVO HADDR. Un campo que se extiende por HADDR LEN bytes y contiene la dirección de hardware del
objetivo.
OBJETIVO PADDR. Un campo que se extiende por PADDR LEN bytes y contiene la dirección de protocolo del objetivo.
Como muestra la figura, un mensaje de ARP contiene campos para dos enlaces de direcciones. Uno
corresponde vinculantes al remitente, y el otro corresponde a su destinatario, que llama a la ARP objetivo. Cuando
se envía una solicitud, el remitente no sabe la dirección de hardware del objetivo (que es la información que se
solicita). Por lo tanto, el campo
OBJETIVO HADDR en una solicitud ARP puede ser llenado con ceros ya que los contenidos no son utilizados. En una
respuesta, la unión a la diana se refiere al ordenador inicial que envió la solicitud. Por lo tanto, el par de dirección de destino en
una respuesta no sirve para nada; la inclusión de los campos de destino ha sobrevivido a partir de una primera versión del
protocolo.
Cuando se viaja a través de una red física, un mensaje de ARP se encapsula en una trama de hardware. Al
igual que con IP, un mensaje de ARP se trata como datos que son transportados - la red subyacente no analiza el
mensaje ARP o interpretar los campos. La figura 23.4 ilustra ARP encapsulación en una trama de Ethernet.
386 Protocolos y tecnologías de apoyo Cap. 23
MENSAJE ARP
CABECERA
marco de carga útil CRC
MARCO
los campo de tipo de en el encabezado de la trama especifica que la trama contiene un mensaje de ARP. Un
remitente debe asignar el valor correspondiente al campo cuyo tipo antes de transmitir la trama, y un receptor debe
examinar el campo de tipo en cada trama entrante. Ethernet utiliza campo de tipo de 0x806 para denotar un mensaje de
ARP. El mismo tipo de valor se utiliza para ambas peticiones y respuestas ARP. Por lo tanto, el tipo de trama no
distingue entre tipos de mensajes ARP - un receptor debe examinar la OPERACIÓN campo en el mensaje para
determinar si un mensaje entrante es una petición o una respuesta.
Aunque ARP se utiliza para enlazar direcciones, enviando una solicitud ARP para cada datagrama es ineficiente
- tres marcos atraviesan la red para cada datagrama (una petición ARP, respuesta ARP, y el datagrama). Más
importante, porque la mayoría de comunicación informática implica una secuencia de paquetes, un remitente es
probable que repita el intercambio muchas veces.
Para reducir el tráfico de red, extractos de software ARP y guarda la información de una respuesta por lo que se puede
utilizar para los paquetes subsiguientes. El software no guarda la información de forma indefinida. En su lugar, ARP mantiene
una pequeña mesa de consolidaciones en la memoria. ARP gestiona la tabla como una cache - una entrada se reemplaza
cuando llega una respuesta, y la entrada más antigua se quita cuando la tabla se queda sin espacio o después de una entrada
no se ha actualizado durante un largo periodo de tiempo (por ejemplo, 20 minutos). Cuando se van a unir una dirección, ARP
se inicia mediante la búsqueda en la memoria caché. Si la unión está presente en la memoria caché, ARP utiliza la unión sin
transmitir una solicitud. Si la unión no está presente en la memoria caché, ARP difunde una solicitud, espera una respuesta,
actualiza la memoria caché, y luego procede a utilizar la unión.
Tenga en cuenta que a diferencia de la mayoría de los sistemas de almacenamiento en caché, una memoria caché ARP no se
actualiza cuando se produce una búsqueda (es decir, cuando se hace referencia a una entrada). En su lugar, la memoria caché sólo se
actualiza cuando un mensaje ARP llega a través de la red (ya sea una solicitud o una respuesta). Algoritmo
algoritmo 23.1
Dado:
Un mensaje de ARP de entrada (ya sea una solicitud o una respuesta) Realizar:
Que señale el algoritmo, ARP realiza dos pasos básicos para procesar un mensaje. En primer lugar, el receptor
extrae la dirección del remitente vinculante y actualiza la memoria caché si el caché ya contiene una entrada para el
remitente. La actualización de la memoria caché maneja el caso en que la dirección de hardware del remitente ha
cambiado. En el segundo paso, el receptor examina la OPERACIÓN campo del mensaje para determinar si el mensaje
es una petición o una respuesta. Si el mensaje es una respuesta, el receptor debe haber emitido anteriormente una
solicitud, y está esperando para la unión (es decir, la memoria caché contiene una entrada para el remitente, que
estaba llena en durante la primera etapa). Si el mensaje es una solicitud, el receptor compara el campo OBJETIVO
PADDR con la dirección de protocolo local. Si los dos son idénticos, el equipo es el destino de la solicitud, y debe enviar
una respuesta ARP. Para formar la respuesta, ARP se inicia con el mensaje entrante, invierte fijaciones del objetivo del
remitente y, inserta su dirección de hardware en el campo HADDR remitente, y cambia el OPERACIÓN campo para 2, que
indica una respuesta.
ARP contiene una optimización adicional: cuando se encuentra con una petición a la que debe responder, un
ordenador extrae la dirección del remitente vinculante de la solicitud y añade la unión a su caché para su uso
posterior. Para entender la optimización, es necesario conocer dos hechos:
388 Protocolos y tecnologías de apoyo Cap. 23
La mayoría comunicación informática implica dos vías de tráfico - si un mensaje viaja desde UN a SEGUNDO,
Debido a que cada unión de dirección requiere memoria, un ordenador no puede almacenar un número
El primer hecho explica por qué la extracción de la dirección del remitente unión optimiza el rendimiento del ARP. Computadora UN
sólo se envía una petición ARP para la meta segundo cuando UN tiene un paquete para entregar a SEGUNDO. Así, cuando segundo se
encuentra un objetivo de una solicitud de UN, es probable que después de que llegue el paquete, un paquete será enviado desde segundo
UN 'S vinculante de la solicitud ARP entrante elimina la necesidad de una petición ARP después de segundo a A.
El segundo hecho explica por qué una nueva entrada en la caché sólo se agrega a la caché ARP de un equipo
que es objeto de una solicitud ARP y no por otros equipos que reciban la solicitud: si todos los ordenadores insertan
la información, sus cachés llenaría rápidamente, aunque la mayoría de ellos nunca se comunicará con muchos de los
equipos de la red. Por lo tanto, ARP registra sólo los enlaces de direcciones que son susceptibles de ser necesario.
Recuerde del capítulo 1 que TCP / IP utiliza un modelo de referencia de cinco capas. resolución de direcciones es un
ejemplo de una función asociada con la capa de interfaz de red, (es decir, capa 2). ARP proporciona un importante límite
conceptual entre las direcciones MAC y direcciones IP: ARP oculta los detalles de direccionamiento por hardware, y permite
que las capas superiores de software para utilizar direcciones IP. Por lo tanto, hay un límite conceptual importante impuesta
entre la capa de interfaz de red y todas las capas superiores: aplicaciones, así como capas superiores de software de
protocolo están construidos para utilizar direcciones de protocolo. La figura 23.5 ilustra el límite de direccionamiento.
Segundo. 23.7 La Dirección del límite conceptual 389
Solicitud
Direcciones IP
Transporte
usado
límite
Internet conceptual
dirección física
resolución de la
ARP forma un límite conceptual en la pila de protocolos - capas por encima de ARP utilizan
direcciones IP, y las capas por debajo ARP utilizar direcciones MAC.
Hemos dicho que IP define un servicio de comunicación de mejor esfuerzo en el que los datagramas pueden perderse,
duplicado, con retraso, o entregados fuera de orden. Puede parecer que un servicio bestEffort no necesita la detección de
errores. Es importante tener en cuenta, sin embargo, que un servicio de mejor esfuerzo no es descuidado - IP intenta evitar
errores y para informar de problemas cuando se producen. De hecho, ya hemos visto un ejemplo de la detección de errores en
IP: una cabecera de comprobación que se utiliza para detectar errores de transmisión. Cuando un host crea un datagrama IP, el
host incluye una suma de comprobación que cubre toda la cabecera. Cada vez que se recibe un datagrama, la suma de
comprobación se verifica para garantizar que la cabecera llegó intacta. Del mismo modo, la cabecera IP contiene una TIEMPO
PARA VIVIR campo utiliza para prevenir un datagrama de circular siempre si las tablas de reenvío en los routers de forma
incorrecta introducen una trayectoria circular.
390 Protocolos y tecnologías de apoyo Cap. 23
La acción tomada en respuesta a un error de suma de control es sencillo: el datagrama debe ser desechado
inmediatamente sin procesamiento adicional. El receptor no puede confiar en los campos de la cabecera del datagrama ya
que el receptor no puede saber qué bits se altera. En particular, el receptor no puede enviar un mensaje de error de vuelta
al equipo que envió el datagrama debido a que el receptor no puede confiar en la dirección de origen en el encabezado.
De este modo, el receptor no tiene más remedio que descartar el datagrama dañado.
Para los problemas que son menos graves que los errores de suma de comprobación, IP incluye un protocolo compañero,
el Protocolo de Internet de mensajes de control (ICMP), que se utiliza para informar de errores de vuelta a la fuente original (es
decir, el equipo que envía el datagrama). Curiosamente, IP e ICMP son codependientes - IP depende de ICMP para informar de
errores, e ICMP utiliza IP para transportar mensajes de error.
Aunque se han definido más de veinte mensajes ICMP, se utilizan sólo unos pocos. Figura 23.6 enumera los
mensajes clave ICMP y el propósito de cada uno.
Como ilustra la figura, ICMP contiene dos tipos de mensajes: mensajes utilizados para informar de errores y
mensajes utilizados para obtener información. Por ejemplo, el Tiempo excedido
y Destino inalcanzable Mensajes cada informe de un error cuando un datagrama no se puede entregar con éxito. Una
dirección de destino es inalcanzable si existe ninguna ruta a la dirección; unos tiempos de datagramas si bien el recuento de
TTL en la cabecera expira o fragmentos del datagrama no llegan antes de que expire el temporizador de reensamblado. En
contraste, el Echo Request y Echo Responder los mensajes no se corresponden con un error. En su lugar, ellos son utilizados
por el silbido aplicación para probar la conectividad - cuando recibe una solicitud de eco mensaje, el software ICMP en un host
o router envía una respuesta de eco que lleva los mismos datos que la petición. Por lo tanto, una aplicación de ping envía una
solicitud a un host remoto, espera una respuesta, y, o bien declara que el anfitrión es accesible, o después de un tiempo de
espera adecuado, declara que el anfitrión es inalcanzable.
Segundo. 23.9 Formato de mensaje ICMP y la encapsulación 391
ICMP utiliza IP para el transporte de cada mensaje de error: cuando un router tiene un mensaje ICMP a
enviar, se crea un datagrama IP y encapsula el mensaje ICMP en el datagrama. Es decir, el mensaje ICMP se
coloca en el área de carga útil del datagrama IP. El datagrama se envía entonces como es habitual, con el
datagrama completo se encapsula en una trama para la transmisión. La figura 23.7 ilustra los dos niveles de
encapsulación.
Datagramas que transportan los mensajes ICMP no tienen una prioridad especial - de que los presente como
cualquier otro datagrama, con una pequeña excepción. Si un datagrama llevar un mensaje de error ICMP causa un
error, no se envía ningún mensaje de error. La razón debe ser claro: los diseñadores querían evitar que Internet se
convierta congestionadas llevar mensajes de error sobre mensajes de error. Podemos resumir:
El Protocolo de mensajes de control de Internet incluye tanto los mensajes sobre errores y
mensajes informativos. ICMP encapsula mensajes en IP para la transmisión, e IP utiliza ICMP
para informar de problemas.
Nuestra discusión de protocolos de Internet ha descrito su funcionamiento una vez al host o router se ha
encendido, el sistema operativo ha comenzado, y el software de protocolo se ha inicializado. Surge la pregunta: ¿cómo
el software de protocolo en un host o router comenzará a funcionar? Para un router, la respuesta es mundano: un
gerente debe especificar valores iniciales para artículos tales como la dirección IP para cada conexión de red, el software
de protocolo para funcionar, y los valores iniciales para una tabla de reenvío. La configuración se guarda en el disco, y
un router carga los valores durante el arranque.
configuración Host es más complejo, y por lo general utiliza un proceso de dos etapas conocido como
bootstrapping †. El primer paso se produce cuando un equipo se inicia. El sistema operativo se llena en un conjunto básico de
parámetros de configuración que permiten que el software de protocolo para com-
municar a través de una red local. En el segundo paso, el software de protocolo llena en información adicional, como la
dirección del ordenador IP, la máscara de dirección, y la dirección de un servidor DNS local. En esencia, el software de
protocolo consiste en una imagen binaria que es
parametrizada, y la inicialización se llena en un conjunto de parámetros. Por lo tanto, la misma imagen binaria se puede
utilizar en muchos equipos, y una imagen no tiene que cambiar si cambia la conexión a la red de un ordenador.
Decimos que el software de protocolo puede ser configurado para una situación particular. Para resumir:
software de protocolo está parametrizada para permitir una imagen binaria compilada para
ejecutarse en varios ordenadores en una variedad de entornos de red sin cambios. Cuando se
inicia una copia del software en un equipo determinado, se debe configurar mediante el
establecimiento de un conjunto de parámetros que proporcionan información sobre el ordenador
y la red (s) a la que se une.
Varios mecanismos se han creado para permitir que un equipo host para obtener parámetros. Un mecanismo
temprano conocido como el Protocolo de Resolución de Direcciones Inverso (RARP)
permitió una computadora para obtener una dirección IP de un servidor. ICMP, descrito anteriormente, incluye Solicitud de
Direcciones Máscara y Router Discovery mensajes que pueden obtener la máscara de dirección utilizado en una determinada
red y la dirección de un router. Cada uno de los primeros mecanismos se utilizó de forma independiente, se transmitieron las
solicitudes y una serie configurado normalmente capas de menor a mayor.
En la evolución de los protocolos de Internet, un único protocolo se inventó para permitir que un host para obtener
múltiples parámetros con una sola solicitud. Conocido como el Protocolo Bootstrap (BOOTP), El mecanismo previsto dirección IP
de la computadora, la máscara de dirección de usar, y la dirección de un router por defecto. Por lo tanto, en un solo paso, un
anfitrión podría obtener la mayor parte de la información necesaria para configurar una pila IP de trabajo.
Al igual que otros protocolos de configuración, BOOTP dispuesto para un anfitrión para transmitir una petición. A diferencia
de otros protocolos de configuración, sin embargo, BOOTP utiliza IP para comunicarse con un servidor - se envió una solicitud a
todos los de-1 Dirección de destino, y se utiliza la dirección del todo0 como Dirección de la fuente. Un servidor BOOTP utiliza la
dirección MAC en una trama entrante para enviar una respuesta a través de unicast. Por lo tanto, un anfitrión que no conoce su
dirección IP podría comunicarse con un servidor BOOTP.
La versión inicial de BOOTP usa una asignación de dirección fija en la que un servidor tenía una base de datos de la
dirección IP asignada a cada host. Una petición desde el host incluye un identificador único (por lo general la dirección MAC
del host) y el servidor utiliza el ID de encontrar la dirección IP de la máquina. El punto es que BOOTP requiere la
administración manual - antes de que un ordenador puede utilizar BOOTP para obtener una dirección, un administrador de
red tiene que configurar un servidor BOOTP para conocer la dirección IP del ordenador.
Segundo. 23.11 Protocolo de configuración dinámica de host (DHCP) 393
Aunque funciona cuando un conjunto de equipos permanece fijo, la especificación manual no es suficiente
si un conjunto de equipos cambia rápidamente. Por ejemplo, considere un punto de acceso Wi-Fi en una cafetería
que ofrece acceso a los clientes arbitrarias. Para tratar estos casos, el IETF extendió BOOTP y cambió el nombre
a la Protocolo de configuración dinámica de host (DHCP).
DHCP proporciona un mecanismo que permite a un ordenador arbitraria para unirse a una nueva red y
obtener una dirección IP automáticamente. El concepto se ha denominado plug-andplay redes. El punto se puede
resumir:
DHCP permite a un ordenador para pasar a una nueva red y obtener información de
configuración sin necesidad de un administrador para realizar cambios manuales a una base de
datos.
De hecho, DHCP sigue de cerca el mismo enfoque que BOOTP. Cuando se inicia un equipo, el equipo emite una Solicitud
de DHCP a la que el servidor envía una DHCP Responder †. Un administrador puede configurar un servidor DHCP para
suministrar dos tipos de direcciones: direcciones asignadas de forma permanente a lo dispuesto por BOOTP o un conjunto de
direcciones dinámicas que se asignará a la carta. Típicamente, una dirección permanente se asigna a un servidor, y una
dirección dinámica se asigna a un host arbitrario. De hecho, las direcciones asignadas en la demanda no se les da a cabo
durante un periodo de tiempo arbitrario. En su lugar, DHCP emite una arrendamiento
en la dirección de un período ‡ finito. El uso de contratos de arrendamiento permite a un servidor DHCP para recuperar las direcciones,
si es necesario. Cuando expira el contrato de arrendamiento, el servidor devuelve la dirección del grupo de direcciones disponibles, lo
que permite a la dirección que se asignará a otro equipo. El leasing es esencial para el funcionamiento continuo de un servidor, ya que
permite a un servidor para controlar los recursos y recuperar las direcciones, incluso si un host que está sosteniendo un accidentes de
dirección.
Cuando un contrato de arrendamiento expira, un host puede optar por renunciar a la dirección o renegociar con DHCP para
extender el contrato de arrendamiento. Negociación se produce concurrente con otra actividad. Normalmente, DHCP aprueba cada
extensión de contrato de arrendamiento, y el ordenador sigue funcionando sin ninguna interrupción a la ejecución de programas de
aplicación o la comunicación de red en curso. Sin embargo, un servidor puede ser configurado para denegar extensión de contrato de
arrendamiento por razones administrativas o técnicas. Por ejemplo, considere una red en un aula universitaria. En tales casos, un
servidor puede ser configurado de manera que todas las concesiones expiran al final del período de clase (para permitir que el
conjunto de direcciones para ser reasignados a la siguiente clase). DHCP otorga el control absoluto de arrendamiento a un servidor - si
un servidor deniega una solicitud de prórroga, el anfitrión debe dejar de usar la dirección.
† DHCP utiliza el término oferta para denotar el mensaje envía un servidor, y podemos decir que el servidor está ofrecimiento una dirección para el cliente.
‡ Un administrador especifica el tiempo de concesión para cada dirección cuando se establece un conjunto de direcciones.
394 Protocolos y tecnologías de apoyo Cap. 23
Aunque el protocolo es sencillo, DHCP incluye varios detalles importantes que optimizan el
rendimiento. Los tres más importantes son:
El primer elemento significa DHCP está diseñado para asegurar que faltan o están duplicadas paquetes no dan lugar a una
mala configuración - si no se recibe respuesta, una serie retransmite su solicitud, y si llega una respuesta duplicado, una serie ignora la
copia extra. El segundo elemento significa que una vez que un host utiliza una DHCP Discover mensaje a encontrar un servidor DHCP,
el anfitrión almacena en caché la dirección del servidor. Por lo tanto, la renovación de arrendamiento es eficiente.
El tercer punto significa que DCHP toma medidas para evitar que las solicitudes sincronizados. Por ejemplo, las
solicitudes sincronizados se podrían producir si todos los ordenadores de una red de forma simultánea reinicio después de un
apagón. Para evitar que todos los hosts de una inundación de red del servidor DHCP con peticiones simultáneas, DHCP
requiere que cada host para demorar un tiempo aleatorio antes de transmitir (o retransmisión) una solicitud.
Debido a que fue diseñado como una extensión de BOOTP, DHCP adoptó una versión ligeramente
modificada del formato del mensaje BOOTP. La figura 23.8 ilustra el formato de mensaje DHCP.
Excepto por OPCIONES, cada campo en un mensaje DHCP tiene un tamaño fijo. Los primeros siete campos
contienen información utilizada para procesar el mensaje. los OP campo especifica si el mensaje es una Solicitud o
una Respuesta. Para distinguir entre los diferentes mensajes que utiliza un cliente para detectar servidores o solicitar
una dirección o que un servidor utiliza para reconocer o denegar una solicitud, DHCP incluye una OPCIÓN para una
específica Tipo de mensaje. Eso es el OP campo indica si el mensaje se desplaza desde el cliente al servidor o el
servidor al cliente, y una de las OPCIONES da el tipo exacto del mensaje.
los HTYPE y HLEN campos especifican el tipo de hardware de red y la longitud de una dirección de hardware. Un
cliente utiliza el BANDERAS campo para especificar si puede recibir la emisión o respuestas dirigidas. los HOPS campo
especifica el número de servidores reenvían la solicitud y la identificador de transacción campo proporciona un valor que
un cliente puede utilizar para determinar si una respuesta entrante coincide con su solicitud. los Segundos transcurridos campo
especifica el número de segundos transcurridos desde el anfitrión comenzó a arrancar. Por último, si se conoce su
dirección IP (por ejemplo, se obtuvo la dirección a través de otro mecanismo en lugar de a través de DHCP), un host
rellena el Dirección IP del cliente campo en una solicitud.
Segundo. 23.13 Formato de mensaje DHCP 395
0 8 dieciséis 24 31
OP HTYPE HLEN HOPS
identificador de transacción
Segundos transcurridos BANDERAS
campos posteriores en el mensaje se utilizan en una respuesta para transportar información de vuelta al servidor que
envió la petición. Si un anfitrión no conoce su dirección IP, el servidor usa el campo
Su dirección IP para suministrar el valor. Además, el servidor utiliza campos DIRECCIÓN IP DEL SERVIDOR y NOMBRE DE
SERVIDOR HOST para dar la información de la máquina sobre la ubicación de un servidor. Campo Dirección IP del router contiene
la dirección IP de un router por defecto.
Además de la configuración del protocolo, DHCP permite a un ordenador para negociar para encontrar una imagen de
arranque. Para ello, el anfitrión se llena en el campo BOOT NOMBRE DE ARCHIVO con una petición (por ejemplo, el anfitrión puede
solicitar que el sistema operativo LINUX). El servidor DHCP no envía una imagen. En su lugar, el servidor determina qué archivo
contiene la imagen solicitada, y usa el campo BOOT NOMBRE DE ARCHIVO para devolver el nombre del archivo. Una vez que llega
una respuesta DHCP, un host debe usar un protocolo separado (por ejemplo, TFTP) descargar la imagen.
Aunque se difunde en la red local para encontrar un servidor DHCP no requiere que cada red individual de
tener un servidor. En cambio, una agente de retransmisión DHCP reenvía las solicitudes y respuestas entre un cliente
y el servidor. Al menos un agente de retransmisión debe estar presente en cada red, y el agente de relé debe estar
configurado con la dirección del servidor DHCP apropiado. Cuando el servidor responde, el agente de retransmisión
envía la respuesta al cliente.
396 Protocolos y tecnologías de apoyo Cap. 23
Puede parecer que el uso de múltiples agentes de retransmisión no es mejor que el uso de múltiples servidores DHCP. Sin
embargo, los administradores de red prefieren administrar varios agentes de retransmisión por dos razones. En primer lugar, en una
red con un servidor DHCP y múltiples agentes de retransmisión, la administración de direcciones se centraliza en un único
dispositivo. Por lo tanto, un administrador de red no necesita interactuar con múltiples dispositivos para cambiar la política de
arrendamiento o determinar el estado actual. En segundo lugar, muchos routers comerciales contienen un mecanismo que
proporciona servicio de retransmisión DHCP en todas las redes a las que se conecta el router. Además, las instalaciones agente de
retransmisión en un router son generalmente fáciles de configurar (la configuración consiste en que permite el reenvío y
especificando la dirección de un servidor de DHCP), y la configuración es poco probable que cambie.
A medida que Internet creció y llegó a ser escaso direcciones, sin clases de subred y direccionamiento (CIDR) se
introdujeron para ayudar a conservar las direcciones †. Un tercer mecanismo fue inventado que permite a múltiples ordenadores
en un sitio para compartir una sola dirección IP, globalmente válida. Conocido como La traducción de direcciones de red (NAT), la
tecnología ofrece transparente
la comunicación en el sentido de que un huésped en el sitio parece tener una conexión normal a Internet, y un anfitrión de
Internet siempre aparece para recibir comunicaciones desde un solo ordenador en lugar de uno de los muchos equipos en
el sitio. Es decir, los anfitriones en el lugar de ejecutar el software y las aplicaciones TCP / IP convencional, y se comunican
a través de Internet como de costumbre.
NAT se ejecuta como un servicio en línea, lo que significa que NAT debe ser colocado en la conexión entre
Internet y un sitio. Aunque NAT es conceptualmente separados de otras instalaciones y servicios, la mayoría de las
implementaciones NAT incrustar en otro dispositivo, como un punto de acceso Wi-Fi o un router de Internet. La
figura 23.9 ilustra una disposición típica de un sitio que utiliza NAT.
dispositivo NAT
Internet
a través de Internet, el
sitio parece ser un
único host
† Una descripción de subred y direccionamiento sin clase se puede encontrar en el capítulo 21.
Segundo. 23.15 La traducción de direcciones de red (NAT) 397
El objetivo de la NAT es proporcionar una ilusión. Cuando se ve a través de Internet, el sitio parece consistir
en un único ordenador central que se ha asignado una dirección IP válida - todos los datagramas enviados desde el
sitio parecen originarse desde un host, y todos los datagramas enviados al sitio parece ser enviado a un host.
Cuando se ve desde un host en el sitio, la Internet parece aceptar y direcciones privadas de ruta.
Por supuesto, una única dirección IP no se puede asignar a varios equipos - Si dos o más equipos utilizan la
misma dirección, los conflictos surgen porque varios equipos responderán a una solicitud ARP. Por lo tanto, para
garantizar la exactitud, cada ordenador de una red dada se debe asignar una dirección IP única. NAT resuelve el
problema mediante el uso de dos tipos de direcciones. El dispositivo NAT en sí se le asigna una única dirección IP
globalmente válida como si el dispositivo NAT fuera un host en Internet. Cada equipo en el sitio se le asigna un único dirección
privada, también conocido como una dirección no direccionable. Figura 23.10 listas de direcciones de bloques que el IETF
ha designado como privado.
Bloquear Descripción
Figura 23.10 Bloques de direcciones privadas (no direccionable) utilizados por NAT.
A modo de ejemplo, supongamos que un dispositivo NAT en particular está utilizando el bloque de direcciones 192.168.0.0 para
asignar direcciones privadas a los hosts dentro del sitio. Para asegurar que cada dirección dentro del sitio es único (es decir, para evitar
Por desgracia, las direcciones privadas no son válidos en la Internet global, y los routers de Internet están
configurados para rechazar los datagramas que especifican direcciones no direccionable. Por lo tanto, abordar privada sólo
se utiliza dentro de un sitio - antes de que un datagrama desde el sitio se puede permitir en Internet, NAT debe traducir la
dirección IP privada en una dirección IP válida a nivel mundial. Del mismo modo, NAT debe traducir la dirección IP
globalmente válido en un paquete entrante a una dirección privada antes de transferir un datagrama a un huésped en el
sitio.
La forma más básica de NAT traduce la dirección de origen como un datagrama pasa desde el sitio de
Internet y la dirección de destino como un datagrama pasa a través de Internet al sitio. Por ejemplo,
supongamos que un dispositivo NAT ha asignado un glo-
398 Protocolos y tecnologías de apoyo Cap. 23
Bally dirección IP válida de 128.210.24.6, y considerar las traducciones que se producen si un host con dirección 192.168.0.1
privada envía un datagrama a un host a través de Internet con la dirección
198.133.219.25 y recibe una respuesta. Figura 23.11 ilustra las traducciones que se producen en cada dirección.
Figura 23.11 Ilustración de traducción NAT básica que cambia la fuente de ad-
vestido de un datagrama saliente y la dirección de destino de un datagrama
entrante.
Para resumir:
La forma más básica de NAT sustituye la dirección IP de origen de los datagramas que
pasan desde el sitio de Internet, y sustituye la dirección IP de destino de los datagramas
que pasan a través de Internet al sitio.
La mayoría de las implementaciones de NAT utilizan una tabla de traducción para almacenar la información necesaria para
reescribir direcciones. Por ejemplo, la figura 23.12 muestra una tabla de traducción que corresponde a la asignación de direcciones en
la figura 23.11.
Figura 23.12 tabla de traducción NAT Ejemplo para el mapeo en la figura 23.11.
¿Cómo se colocan los valores en una tabla de traducción? Aunque los valores pueden ser configurados manualmente por un
administrador del sistema, la mayoría de los sistemas NAT operan automáticamente. Es decir, NAT coloca una entrada en la tabla de
a la Internet. Por ejemplo, cuando 192.168.0.1 equipo primero envía un datagrama a 198.133.219.25 destino, NAT
agrega una entrada en su tabla. Más tarde, cuando se recibe una respuesta de 198.133.219.25, NAT encuentra la
entrada de la tabla, y traduce la dirección de destino de 192.168.0.1.
La versión básica de NAT descrito anteriormente sólo se ocupa de las situaciones en las que cada host en un
sitio se comunica con un servidor único en Internet. Si dos anfitriones en el intento sitio para comunicarse con el
servidor remoto, X, la tabla de traducción contendrá varias entradas para X, y NAT no será capaz de enrutar los
datagramas entrantes. NAT básica también falla en situaciones en las que dos o más aplicaciones que se ejecutan en
un host determinado en un intento de comunicación simultánea sitio con diferentes destinos en Internet.
La variación más ampliamente utilizada de la NAT se ocupa de ambos problemas: se permite que un sitio tiene un
número arbitrario de aplicaciones que se ejecutan en los hosts arbitrarios, toda la comunicación simultánea con destinos
arbitrarios a través de Internet. A pesar de que se conoce técnicamente como Dirección de red y traducción de puertos
(NAPT), el mecanismo es tan popular que la mayoría de los profesionales de redes asumen el término NAT medio NAPT.
La clave para entender NAPT es recordar que las aplicaciones utilizan números de puerto del protocolo para
distinguir entre servicios. En particular, los capítulos 25 y 26 describen los protocolos de transporte TCP y UDP de cada
uso números de puerto. Además de mantener una tabla de direcciones de origen y destino, NAPT utiliza números de
puerto para asociar cada datagrama con un puerto TCP o UDP flujo. Es decir, en lugar de detenerse en la capa IP, NAPT
opera en las cabeceras de la capa de transporte. Como consecuencia, las entradas en la tabla de traducción utilizada por
NAPT contienen un conjunto de 4 IP de origen y destino de direcciones y números de puerto de protocolo.
Por ejemplo, considere la tabla de traducción que podrían resultar si un navegador en 192.168.0.1 ordenador y un
navegador en el ordenador 192.168.0.2 cada uso 30000 puerto local, y cada uno forma una conexión TCP con un servidor
web en el puerto 80 a través de un dispositivo de NAPT que utiliza la dirección 128.10.24.6. Para evitar un conflicto, NAPT
debe elegir un puerto TCP de origen alternativo para las conexiones. Figura 23.13 muestra una posibilidad.
Figura 23.13 Un ejemplo de tabla de traducción NAPT para dos conexiones TCP
el mismo servidor web.
400 Protocolos y tecnologías de apoyo Cap. 23
En la figura, las aplicaciones en ambos equipos locales están utilizando puerto local 3000. Debido a que un ciclos
del sistema operativo a través de números de puerto, que tiene dos números de puerto idénticos es poco probable. Sin
embargo, NAPT maneja tales casos extremos sin confusión. En el ejemplo, NAPT elige 40001 puerto para una
conexión y 40.002 para el otro.
Hemos dicho que un sistema NAT construye una tabla de traducción automática observando el tráfico saliente y el
establecimiento de una nueva asignación siempre que una aplicación en el sitio inicia la comunicación. Por desgracia, la
construcción automática de tablas no funciona bien para la comunicación iniciada a través de Internet al sitio. Por ejemplo,
si varios ordenadores en un sitio cada ejecutar un servidor web, el dispositivo NAT no puede saber qué equipo debe recibir
una conexión a Internet entrante. Una variante de NAT llamado Dos veces NAT ha sido creado para permitir que un sitio
para ejecutar varios servidores. Dos veces NAT se encarga del sistema de NAT para interactuar con el servidor de
nombres de dominio de sistema del sitio. Cuando una aplicación en Internet busca el nombre de dominio de un ordenador
en el sitio, el servidor DNS en el sitio devuelve la dirección IP válida que se ha asignado al dispositivo NAT, y también crea
una nueva entrada en la tabla de traducción NAT. Por lo tanto, la tabla de traducción se inicia antes de que llegue el
primer paquete. Aunque no es elegante, NAT doble funciona para la mayoría de los casos. Dos veces NAT falla, sin
embargo, si una aplicación de cliente utiliza la dirección IP directamente sin realizar un nombre de dominio de búsqueda o
si el cliente utiliza un proxy DNS para resolver nombres de dominio.
NAT es especialmente útil en una residencia o pequeña empresa que tiene una conexión de banda ancha, ya que
permite un conjunto de equipos para compartir la conexión sin necesidad de que el cliente compre direcciones IP
adicionales del ISP. Además de software que permite a un PC para actuar como un dispositivo NAT para PCs
adicionales, sistemas de hardware NAT dedicados están disponibles a bajo costo. Tales sistemas son generalmente
llamados enrutadores inalámbricos †. Por ejemplo, Linksys vende un sistema dedicado que proporciona NAT entre los
cuatro conexiones inalámbricas con cable Ethernet y Wi-Fi. Figura 23.14 ilustra cómo se conecta un router tal.
conexión a Internet
Router inalámbrico
† La terminología es un poco engañoso porque dichos enrutadores también ofrecen conexiones con cable para equipos host.
Segundo. 23.19 NAT software y sistemas para uso en el hogar 401
23.20 Resumen
IP utiliza el protocolo de resolución de direcciones, ARP, para enlazar una dirección IP del siguiente salto a una
dirección MAC equivalente. ARP define el formato de los mensajes que los ordenadores de cambio para resolver una
dirección, la encapsulación, y las reglas para el manejo de mensajes ARP. Debido a que el hardware abordar difiere entre las
redes, ARP sólo especifica un patrón general para el formato de mensaje y permite que los datos que serán determinadas por
el esquema de direccionamiento MAC. ARP especifica que un equipo debe transmitir un mensaje de solicitud, pero que la
respuesta debe ser dirigido. Además, ARP utiliza almacenamiento en caché para evitar el envío de una solicitud para cada
paquete.
El Protocolo de Internet incluye un mecanismo de informe de errores compañero conocido como el Protocolo de
mensajes de control de Internet (ICMP). Los routers usan ICMP cuando un datagrama llega con valores incorrectos en los
campos de cabecera o cuando un datagrama no se puede entregar. Los mensajes ICMP se envían siempre de nuevo a la
fuente original de un datagrama, no a los routers intermedios. Además de los mensajes que informan de errores, ICMP
incluye mensajes informativos tales como la solicitud de eco de eco y respuesta de mensajes utilizados por la aplicación de
ping. Cada tipo de mensaje ICMP tiene un formato único; un campo de tipo en la cabecera permite un receptor para dividir
un mensaje dado en los campos apropiados. Un mensaje de ICMP se encapsula en un datagrama IP para su transmisión.
Originalmente, protocolos separados se utilizaron para obtener cada uno de los parámetros de configuración necesarios en el
inicio. El Dynamic Host Configuration Protocol (DHCP), la cual se extiende el Protocolo Bootstrapping (BOOTP), permite que un
anfitrión para obtener toda la información necesaria con una sola solicitud. Una respuesta DHCP puede proporcionar una dirección IP,
la dirección de un router por defecto, y la dirección de un servidor de nombres. Cuando se asigna una dirección IP automáticamente,
DCHP ofrece el anfitrión un contrato de arrendamiento en el que la dirección se puede utilizar. Una vez que un contrato de
arrendamiento expira, el anfitrión debe extender el contrato de arrendamiento, o dejar de usar la dirección.
El mecanismo NAT permite que un sitio tiene varios ordenadores a través de Internet a través de una única
dirección IP. NAT reescribe campos de cabecera en cada datagrama que pasa a la Internet o en el sitio. Para
aplicaciones de cliente, traducciones NAT se pueden establecer de forma automática cuando el dispositivo NAT
busca el primer paquete saliente de la comunicación. Existen varias variaciones de NAT. La forma más popular,
NAPT, opera sobre cabeceras de la capa de transporte, y traduce los números de puerto de protocolo, así como
direcciones IP. NAPT permite un número arbitrario de aplicaciones que se ejecutan en los ordenadores arbitrarias
dentro de un sitio para comunicarse con destinos arbitrarios en Internet al mismo tiempo.
Para más detalles sobre NAPT se refieren a la RFC 2663 y RFC 2766.
402 Protocolos y tecnologías de apoyo Cap. 23
CEREMONIAS
23.1 Cuando un router utiliza una tabla de reenvío para buscar una dirección del siguiente salto, el resultado es una IP
23.2 ¿Qué término se utiliza para describir la correspondencia entre una dirección de protocolo de hardware y una
¿dirección?
23.3 ARP puede ser utilizado en una red que no proporciona emisión? ¿Por qué o por qué no?
23.4 ¿Cuántas respuestas sí espera un ordenador para recibir cuando se emite una petición ARP? Explique.
23.5 Cuántos octetos no ocupan un mensaje de ARP cuando se utiliza con las direcciones IP y Ethernet?
23.6 ¿Cómo sabe un ordenador ya sea un marco llegando contiene un datagrama IP o un mensaje de ARP?
23.7 Supongamos que un equipo recibe dos respuestas ARP para una sola petición. La primera respuesta afirma que la dirección
MAC es METRO 1, y la segunda respuesta afirma que la dirección MAC es
METRO 2. ¿Cómo maneja las respuestas ARP?
23.8 ARP sólo permite la resolución de direcciones que se produzca en una sola red. ¿Tiene sentido para enviar una petición ARP
a un servidor remoto en un datagrama IP? ¿Por qué o por qué no?
23.9 ¿Cuándo Algoritmo 23.1 crear una nueva entrada en una caché ARP?
23.11 Si un datagrama tiene un valor incorrecto en uno de los campos de cabecera, que el mensaje de error ICMP será recibido?
23.12 Si existe un bucle de enrutamiento, que el mensaje de error ICMP será enviado? Explicar el proceso.
23.13 Supongamos que un usuario especifique una dirección de difusión dirigida como un destino para el ping. Qué
23.14 Algunas versiones de la traceroute programa de enviar mensajes ICMP y otros envían UDP
mensajes. Experimento con la versión en el equipo para determinar que envía.
23.15 Dada una trama Ethernet, lo que lo hace una necesidad campos de acogida para examinar para determinar si
23.19 DHCP permite a un servidor que se encuentra en una red remota. ¿Cómo puede enviar el equipo
mensajes DHCP a un servidor en otra red?
23.20 Como alternativa a DHCP, idear un algoritmo distribuido que implementa una licitación
esquema. Supongamos que una copia del algoritmo se ejecutará en cada equipo, y tienen el algoritmo asigna a
cada equipo una dirección de host único.
Ceremonias 403
23.22 Muchos dispositivos NAT elija el bloque de direcciones 10.0.0.0 / 8 de la figura 23.10 porque
proporciona la mayor generalidad. Explicar por qué.
23.23 En la figura 23.11, el ISP le ha asignado una dirección IP al sitio. Que es la dirección asignada?
23.24 Expandir la figura 23.13 para mostrar las asignaciones que se usarán si tercera aplicación también
los intentos de alcanzar el mismo servidor web.
23.25 Crear una tabla de traducción NAPT para un caso en tres ordenadores en un sitio tienen TCP
conexiones a tres servidores web separados en Internet.
23.26 ¿Qué información crucial utilizado por NAPT no está disponible en la mayoría de los fragmentos IP?
23.27 Para optimizar el montaje, algunas versiones del sistema operativo Linux enviar la última fragmentación
ción de un datagrama IP, y luego envían los fragmentos restantes en orden. Explicar por qué enviar el último
fragmento de primera no funciona bien con NAPT.
23.28 Cuando se utiliza un router inalámbrico, ¿cuáles son las posibles direcciones IP que pueden ser asignadas a
¿Hospedadores?
Contenido del capítulo
El Futuro IP (IPv6)
24.1 Introducción
En capítulos anteriores se discuten la versión actual del protocolo de Internet, IPv4. Los capítulos describen un
datagrama IP como una cabecera seguida de los datos. La cabecera contiene información tal como una dirección de destino
que el software IP utiliza para entregar el datagrama; Cada campo de encabezado tiene un tamaño fijo para hacer el
procesamiento eficiente. Capítulo 22 describe cómo un datagrama IP se encapsula en una trama de red a medida que viaja a
través de una red física.
Este capítulo se centra en el futuro del Protocolo de Internet. Se inicia mediante la evaluación de las
fortalezas y limitaciones de la versión actual de IP, y luego se considera una nueva versión de IP que el IETF ha
desarrollado. El capítulo se explican las características de la nueva versión, y muestra cómo superar algunas de
las limitaciones de la versión actual.
24.2 el éxito de IP
La versión actual de IP ha tenido un gran éxito. IP ha hecho posible que el Internet para manejar redes
heterogéneas, cambios dramáticos en la tecnología de hardware, y los aumentos excesivos en escala. protocolos de
Internet proporcionan un conjunto de abstracciones que permiten que las aplicaciones se comuniquen sin el
conocimiento de la arquitectura de Internet o hardware subyacente. Para acomodar el hardware heterogéneo, IP define
un esquema de direccionamiento independiente de la red, el formato de datagramas, encapsulados, y una estrategia
de fragmentación.
405
406 El Futuro IP (IPv6) Cap. 24
La versatilidad y escalabilidad de IP quedarán evidentes de las aplicaciones que utilizan IP y del tamaño de la
Internet global. Más importante, IP ha dado cabida a cambios drásticos en el hardware. A pesar de que se definió
antes de tecnologías de red de área local se hizo popular, el diseño de protocolo original ha seguido trabajando bien
a través de varias generaciones de tecnologías. Además de mayores velocidades de datos, IP ha acomodado
aumentos en el tamaño de los marcos.
Para resumir:
Si IP funciona tan bien, ¿por qué cambiar? Cuando se definió IP, existían sólo unas pocas redes de ordenadores. Los
diseñadores decidieron utilizar 32 bits de una dirección IP, ya que al hacerlo, permitió a la Internet para incluir más de un
millón redes. Sin embargo, la Internet global está creciendo exponencialmente, con la duplicación del tamaño en menos de un
año. Al ritmo actual de crecimiento, cada una de las posibles prefijos de red con el tiempo se le asignará, y no más allá de
crecimiento será posible. Por lo tanto, la principal motivación para la definición de una nueva versión de IP surgió de la
limitación de espacio de direcciones - direcciones más grandes son necesarios para acomodar el crecimiento continuado de
Internet.
motivaciones secundarias para los cambios en IP han surgido a partir de la percepción de que se necesitan instalaciones
especiales para algunas aplicaciones. En consecuencia, varios grupos argumentan que cuando se sustituye IP, la nueva versión
debería tener más funciones. Por ejemplo, considere las aplicaciones que envían audio en tiempo real y video. Estas aplicaciones
proporcionan datos a intervalos regulares, y necesitan una garantía de baja fluctuación. Por desgracia, un cambio en las rutas suele
cambiar latencia de extremo a extremo, lo que significa un aumento de la fluctuación. Aunque el encabezado del datagrama IP
actual incluye un campo que se puede utilizar para solicitar un tipo de servicio, el protocolo no define un servicio en tiempo real. De
este modo, se ha argumentado que una nueva versión de IP debe proporcionar un mecanismo que permite a los datagramas que
transportan tráfico en tiempo real para evitar los cambios de ruta.
Otro grupo sostiene que una nueva versión de IP debe acomodar más complejas capacidades de direccionamiento y
encaminamiento. En particular, debe ser posible configurar el direccionamiento IP y de enrutamiento para manejar los
servicios replicados. Por ejemplo, Google mantiene muchos centros de datos en todo el mundo. Cuando un usuario introduce google.com
en un navegador, los grupos argumentan, sería beneficioso si pasa datagramas IP a la más cercana centro de datos de
Google. Además, muchas aplicaciones actuales permiten un conjunto de usuarios colaborar. Para hacer una colaboración
eficiente, Internet necesita un mecanismo que permite a los grupos que se crean o se modifican y una manera de enviar una
copia de un paquete a cada participante en un grupo dado.
Segundo. 24.4 El modelo de reloj de arena y la dificultad de Cambio 407
A pesar de la aparente escasez de direcciones restantes se consideró crucial cuando se comenzó a trabajar en una
nueva versión de IP en 1993, no se produjo ninguna emergencia, e IP no se ha cambiado. Para entender por qué, piense
en la importancia de la PI y el costo de cambiar. En términos de importancia, IP se encuentra en el centro de la
comunicación por Internet - todas las aplicaciones utilizan IP y IP se ejecuta sobre todas las tecnologías de red
subyacentes. los profesionales de redes de comunicación de Internet dicen que sigue una modelo de reloj de arena, IP y que
se encuentra en la posición donde el reloj de arena es fina. La figura 24.1 ilustra el concepto.
IP
Debido a que IP es fundamental para todas las comunicaciones de Internet, el cambio de IP requiere un
cambio en la totalidad de Internet.
408 El Futuro IP (IPv6) Cap. 24
Cuando los investigadores comenzaron a trabajar en una nueva versión de IP, que necesitaban un nombre para el proyecto.
Tomando prestado de un popular programa de televisión, que seleccionaron IP - La generación siguiente, y los primeros informes a
que se refiere el nuevo protocolo como IPng. Por desgracia, se hicieron muchas propuestas que compiten por IPng, y el nombre se
convirtió ambigua.
Cuando se define un protocolo específico, los diseñadores necesitan para distinguir el protocolo de todas las
otras propuestas. Se decidió utilizar un número oficial de la versión en la cabecera del protocolo estandarizado final.
El número de versión que se seleccionó fue una sorpresa. Debido a que el número actual de IP versión es 4, la
comunidad de la red espera que la próxima versión oficial para ser 5. Sin embargo, la versión 5 había sido asignado a
un protocolo experimental conocido como S T. En consecuencia, la nueva versión de IP recibido 6 como su número de
versión oficial, y el protocolo que se conoce como IPv6. Para distinguirlo de IPv6, la versión actual de IP se hizo
conocido como IPv4.
IPv6 conserva muchas de las características de diseño que han hecho IPv4 tanto éxito. Al igual que IPv4, IPv6 es sin
conexión - cada datagrama contiene una dirección de destino, y cada datagrama se encamina de forma independiente. Al igual que
IPv4, la cabecera de un datagrama contiene un número máximo de saltos que el datagrama puede tomar antes de ser desechado.
Más importante, IPv6 conserva la mayor parte de las instalaciones generales proporcionadas por las opciones de IPv4.
A pesar de la retención de los conceptos básicos de la versión actual, IPv6 cambia todos los detalles. Por ejemplo, IPv6
utiliza direcciones de mayor tamaño y un formato de cabecera de datagramas completamente nuevo. Además, IPv6 divide la
información de cabecera en una serie de cabeceras de longitud fija. Por lo tanto, a diferencia de IPv4, lo que sitúa la información
clave en los campos fijos de la cabecera y sólo añade opciones de longitud variable para la información menos importante, la
cabecera IPv6 es siempre un tamaño variable.
Tamaño de direcciones. En lugar de 32 bits, cada dirección IPv6 contiene 128 bits. El espacio de
direcciones resultante es lo suficientemente grande como para acomodar el crecimiento continuo de la
Cabeceras de extensión. A diferencia de IPv4, que utiliza un formato de cabecera única para todos
los datagramas, IPv6 codifica la información en las cabeceras separadas. Un datagrama se
compone de encabezado IPv6 base seguido de cero o más cabeceras de extensión, seguido de
datos.
Segundo. 24.6 Características IPv6 409
Soporte para el tráfico en tiempo real. IPv6 incluye un mecanismo que permite a un emisor y
un receptor para establecer una ruta de alta calidad a través de la red subyacente y para
asociar los datagramas con ese camino. Aunque el mecanismo está diseñado para su uso
con aplicaciones de audio y vídeo que requieren garantías de alto rendimiento, el mecanismo
también se puede utilizar para asociar los datagramas con rutas de bajo coste.
Protocolo extensible. A diferencia de IPv4, IPv6 no especifica todas las posibles características del
protocolo. En lugar de ello, los diseñadores han proporcionado una
Las siguientes secciones explican cómo las nuevas características se implementan al mostrar la organización de un datagrama
IPv6 y la estructura de direccionamiento.
Un datagrama IPv6 contiene una serie de cabeceras. Como muestra la Figura 24.2 ilustra, cada datagrama comienza
con una cabecera base, que es seguido por cero o más cabeceras de extensión
seguido de la carga útil.
Opcional
Aunque la figura ilustra la estructura general, los campos no están dibujados a escala. En particular, algunas cabeceras
de extensión son más grandes que el encabezado de base, y otros son más pequeños. En muchos datagramas, el tamaño de
la carga útil es mucho mayor que el tamaño de las cabeceras.
410 El Futuro IP (IPv6) Cap. 24
Aunque es dos veces tan grande como una cabecera IPv4, la cabecera de base IPv6 contiene menos información. La
figura 24.3 ilustra el formato.
0 4 12 dieciséis 24 31
DIRECCIÓN DE LA FUENTE
DIRECCIÓN DE DESTINO
Como muestra la figura, la mayor parte del espacio en la cabecera está dedicado a la DIRECCIÓN DE LA FUENTE y DIRECCIÓN
DE DESTINO campos, cada uno de los cuales ocupa dieciséis octetos, cuatro veces más que una dirección IPv4. Al igual
que en IPv4, una dirección de origen identifica la fuente original, y la dirección de destino identifica al destinatario final.
Además de las direcciones de origen y de destino, el encabezado de base contiene seis campos. los VERS campo
identifica el protocolo como versión 6. los Clase de tráfico campo especifica el clase de tráfico utilizando una definición de tipos
de tráfico conocido como servicios diferenciados para especificar las características generales que el datagrama necesita. Por
ejemplo, para enviar el tráfico interactivo (por ejemplo, las pulsaciones del teclado y movimientos del ratón), se podría especificar
una clase que tiene una baja latencia. Para enviar audio en tiempo real a través de Internet, sin embargo, un emisor puede
solicitar una ruta de baja fluctuación. los longitud de carga útil campo corresponde al campo de longitud de datagramas de IPv4.
A diferencia de IPv4, la longitud de carga útil especifica sólo se lleva el tamaño de los datos (es decir, la carga útil); Se excluye el
tamaño de la cabecera. los
Límite de saltos corresponde a la IPv4 TIEMPO PARA VIVIR campo. Interpreta el IPv6 Límite de saltos estrictamente - el
datagrama será descartada si el Límite de saltos cuenta regresiva a cero antes de que el datagrama llega a su destino.
Campo Etiqueta de Flujo fue pensado originalmente para asociar un datagrama con un camino particular de red
subyacente. Desde que se define IPv6, el uso de etiquetas de flujo de extremo a extremo ha caído en desuso, y la Etiqueta
de Flujo ha perdido importancia.
Segundo. 24.8 Formato de cabecera IPv6 Base 411
los CABECERA SIGUIENTE campo se utiliza para especificar el tipo de información que sigue a la cabecera
actual. Por ejemplo, si el datagrama incluye una cabecera de extensión, el
CABECERA SIGUIENTE campo especifica el tipo de la cabecera de extensión. Si no existe una cabecera de extensión, la CABECERA
SIGUIENTE campo especifica el tipo de datos que se lleva en la carga útil. La figura 24.4 ilustra la CABECERA SIGUIENTE campo.
Base siguiente
Los datos TCP
cabecera TCP =
(un)
(segundo)
Figura 24.4 El campo siguiente cabecera en (a) un datagrama IPv6 que tiene una
cabecera de base y de carga útil TCP, y (b) un datagrama con un encabezado de base, cabecera
Debido a que la norma especifica un valor único para cada posible tipo de encabezado, nunca hay ambigüedad sobre la
interpretación de la CABECERA SIGUIENTE campo. Un receptor procesa las cabeceras secuencialmente, utilizando el CABECERA
SIGUIENTE campo en cada cabecera para determinar lo que sigue.
Algunos tipos de cabecera tienen un tamaño fijo. Por ejemplo, una cabecera de base tiene un tamaño fijo de
exactamente cuarenta octetos. Para pasar a la siguiente elemento base de una cabecera, el software IPv6 se limita a añadir 40 a
la dirección de la cabecera de base. Algunas cabeceras de extensión no tienen un tamaño fijo. En tales casos, la cabecera
debe contener suficiente información para permitir IPv6 para determinar dónde termina la cabecera. Por ejemplo, la figura 24.5
ilustra la forma general de una IPv6 cabecera de opciones que lleva la información similares a las opciones en un datagrama
IPv4.
0 8 dieciséis 31
CABECERA SIGUIENTE CABECERA LEN
Aunque IPv6 la fragmentación se asemeja a la fragmentación IPv4, los detalles difieren. Como IPv4, un prefijo de
la datagrama original se copia en cada fragmento, y la longitud de carga útil se modifica para ser la longitud del
fragmento. A diferencia de IPv4, sin embargo, IPv6 no incluye campos de información de fragmentación en la cabecera
de la base. En lugar de ello, IPv6 coloca la información fragmento en una cabecera de extensión fragmento separado; la
presencia de la cabecera identifica el datagrama como un fragmento. La figura 24.6 ilustra IPv6 fragmentación.
(un)
Unfragmentable Frag. 1
PAG 1
Parte Cabecera
(segundo)
Unfragmentable Frag. 2
PAG 2
Parte Cabecera
(do)
Unfragmentable Frag. 3
PAG 3
Parte Cabecera
(re)
En la figura, la Parte Unfragmentable denota el encabezado de base más cabeceras que de control de encaminamiento. Para
asegurar que todos los fragmentos se encaminan de forma idéntica, la parte unfragmentable se replica en cada fragmento.
Al igual que con IPv4, el tamaño del fragmento se elige para ser la unidad de transmisión máxima (MTU) de la
red subyacente sobre el cual deben enviarse los fragmentos. Por lo tanto, el fragmento final puede ser más pequeño
que los otros, ya que contiene el resto después de piezas MTU de tamaño han sido extraída del datagrama original.
fragmentación. Es decir, se espera que los anfitriones para elegir un tamaño de datagrama que no requerirá la
fragmentación; un router a lo largo del camino que recibe un datagrama que es más grande que la MTU de la red enviará un
mensaje de error y desechar el datagrama.
¿Cómo puede un anfitrión elegir un tamaño de datagrama que no dará lugar a la fragmentación? El anfitrión debe
aprender la MTU de cada red lo largo de la ruta hacia el destino, y debe elegir un tamaño de datagrama para adaptarse a los
más pequeños. La MTU mínimo a lo largo de un camino desde un origen a un destino se conoce como el MTU de ruta, y el
proceso de aprendizaje de la ruta MTU es conocido como camino descubrimiento MTU. En general, la ruta MTU
descubrimiento es un procedimiento iterativo. Un host envía una secuencia de datagramas de varios tamaños en el destino
para ver si llegan sin error. Si se requiere la fragmentación, el host emisor recibirá un mensaje de error ICMP †. Una vez que
un datagrama es lo suficientemente pequeño para pasar a través sin fragmentación, el anfitrión elige un tamaño de
datagrama igual a la ruta MTU.
Para resumir:
¿Por qué utiliza cabeceras de extensión IPv6 separados? Hay dos razones:
extensibilidad
economía
La economía es más fácil de entender: la partición de la funcionalidad de datagramas en las cabeceras separadas es
económico, ya que ahorra espacio. Aunque IPv6 incluye muchas características, los diseñadores esperan que un datagrama dado a
usar sólo un pequeño subconjunto. Tener encabezados separados hace posible definir un gran conjunto de características sin
necesidad de cada cabecera de datagrama de tener al menos un campo para cada función. Por ejemplo, aunque muchos datagramas
IPv4 no están fragmentados, la cabecera IPv4 tiene campos que se utilizan para almacenar la información de fragmentación. Por el
contrario, IPv6 no desperdicia espacio en los campos de la fragmentación a menos que se fragmenta el datagrama. Debido a que la
mayoría de los datagramas sólo necesitan unas cuantas cabeceras, evitando campos de cabecera innecesarios puede ahorrar un
espacio considerable. datagramas más pequeños también tienen menos tiempo para transmitir. Por lo tanto, la reducción del tamaño
de datagrama también reduce el ancho de banda consumido.
Para entender la extensibilidad, considerar la adición de una nueva característica a un protocolo. Un protocolo IPv4 como el que
utiliza un formato de cabecera fijo requiere un cambio completo - la cabecera debe ser rediseñado para dar cabida a los campos
necesarios para apoyar la nueva característica. En IPv6, sin embargo, cabeceras de protocolos existentes pueden permanecer sin
cambios. Un nuevo CABECERA SIGUIENTE tipo se define así como un nuevo formato de cabecera.
Otra ventaja de la colocación de la nueva funcionalidad de una nueva cabecera reside en la capacidad para
experimentar con una nueva característica antes de cambiar todos los equipos de Internet. Por ejemplo, supongamos que los
propietarios de los dos equipos quieren probar una nueva técnica de cifrado de datagramas. Los dos deben ponerse de
acuerdo sobre los detalles de una cabecera de cifrado experimental. El remitente añade la nueva cabecera de un datagrama, y
el receptor interpreta la cabecera de datagramas entrantes. Mientras aparece la nueva cabecera después de las cabeceras
utilizadas para el encaminamiento, los routers de Internet entre el emisor y el receptor pueden transmitir el datagrama sin
entender la cabecera † experimental. Una vez que una característica experimental resulta útil, se puede incorporar en la
norma.
Al igual que IPv4, IPv6 asigna una dirección única para cada conexión entre un ordenador y una red física.
Por lo tanto, si un ordenador (por ejemplo, un enrutador) se conecta a tres redes físicas, el ordenador se le asigna
tres direcciones IPv6. También como IPv4, IPv6 separa cada una de tales direcciones en un prefijo que identifica la
red y un sufijo que identifica a un equipo en particular en la red.
A pesar de la adopción del mismo enfoque para la asignación de direcciones de los equipos, el direccionamiento IPv6 se
diferencia de las direcciones IPv4 de manera significativa. En primer lugar, detalles de la dirección son completamente diferentes. Al
igual que las direcciones CIDR, la división entre el prefijo y el sufijo puede ocurrir en un límite arbitrario. A diferencia de IPv4, IPv6
incluye direcciones con una jerarquía de niveles múltiples. Aunque las asignaciones de direcciones no son fijos, se puede suponer
que el nivel más alto corresponde a un ISP, el siguiente nivel corresponde a una organización (por ejemplo, una empresa), el
siguiente en un sitio, y así sucesivamente. En segundo lugar, IPv6 define un conjunto de direcciones especiales que difieren de las
direcciones IPv4 especiales. En particular, el IPv6 no incluye una dirección especial para la radiodifusión en una red remota dada.
En lugar de ello, cada dirección IPv6 es uno de los tres tipos básicos enumerados en la Figura 24.7.
Como muestra la figura, IPv6 conserva unidifusión y multidifusión de direccionamiento. difusión dirigida fue
eliminado porque plantea un problema de seguridad. Para manejar difusión limitada (transmitido por la red local),
IPv6 define un grupo multicast especial que corresponde a todos los hosts y enrutadores de la red local.
fue originalmente conocido como Anycast abordar racimo direccionamiento. La motivación para hacer frente a
tales surge de un deseo de permitir la replicación de los servicios. Por ejemplo, una empresa que ofrece un servicio a
través de la red asigna una dirección anycast a varios equipos que prestan el servicio. Cuando un usuario envía un
datagrama a la dirección anycast, rutas IPv6 el datagrama a uno de los ordenadores en el conjunto (es decir, en el
clúster). Si un usuario desde otro lugar envía un datagrama a la dirección anycast, IPv6 puede elegir dirigir el
datagrama a un miembro diferente del conjunto, permitiendo que ambos equipos para procesar solicitudes al mismo
tiempo.
† Si una cabecera experimental se coloca incorrectamente antes de encabezados de enrutamiento, un router descartará el datagrama.
Segundo. 24.12 las direcciones IPv6 415
Tipo Propósito
Dado que una dirección IPv6 de 128 bits ocupa, escribir estos datos puede ser difícil de manejar. Por ejemplo, considere
un número de 128 bits escritos en la notación decimal con puntos que utiliza IPv4:
105.220.136.100.255.255.255.255.0.0.18.128.140.10.255.255
Para ayudar a reducir el número de caracteres que se utilizan para escribir una dirección, los diseñadores de IPv6 eligieron una forma
sintáctica más compacto conocido como de colon notación hexadecimal, generalmente abreviado hex colon, en el que cada grupo de
16 bits está escrito en hexadecimal con dos puntos grupos de separación. Por ejemplo, cuando el número anterior está escrito en
hexadecimal de colon, se convierte en:
Como ilustra el ejemplo, la notación hexadecimal de colon requiere un menor número de caracteres para expresar una dirección. Una
optimización adicional conocido como compresión de cero reduce aún más el tamaño. Zero compresión sustituyendo secuencias de
ceros con dos signos de dos puntos. Por ejemplo, la dirección de:
FF0C: 0: 0: 0: 0: 0: 0: B1
FF0C :: B1
416 El Futuro IP (IPv6) Cap. 24
El gran espacio de direcciones IPv6 y el esquema de asignación de direcciones propuesto hacen cero de compresión
especialmente importante debido a que los diseñadores esperan muchas direcciones IPv6 a contener cadenas de ceros. En
particular, para ayudar a facilitar la transición al nuevo protocolo, los diseñadores asignan direcciones IPv4 existentes en el
espacio de direcciones IPv6. Cualquier dirección IPv6 que comienza con 96 cero bits contiene una dirección IPv4 en la
loworder 32 Bits.
24.14 Resumen
Aunque la versión actual de IP ha funcionado bien durante muchos años, el crecimiento exponencial de Internet
significa que el espacio de direcciones de 32 bits con el tiempo se agota. El IETF ha diseñado una nueva versión de IP
que utiliza 128 bits para representar cada dirección. Para distinguir la nueva versión de IP de la versión actual, los dos
protocolos se denominan utilizando su número de versión. La versión actual de IP es IPv4, y la nueva versión es
compatible con IPv6.
IPv6 conserva muchos de los conceptos de IPv4, pero cambia todos los detalles. Por ejemplo, como IPv4, IPv6
ofrece un servicio de conexión en el que dos equipos intercambian mensajes cortos llamados datagramas. Sin
embargo, a diferencia de un datagrama IPv4 en el que el encabezado contiene campos para cada función, IPv6
define cabeceras separadas para cada función. Cada datagrama IPv6 consta de una cabecera base seguido de cero
o más cabeceras de extensión, seguido de datos.
Al igual que IPv4, IPv6 define una dirección para cada conexión de red. Así, como en IPv4, un equipo que se
conecta a múltiples redes físicas (por ejemplo, un router) tiene varias direcciones. Sin embargo, las direcciones especiales
se redefinen en IPv6. En lugar de noción de difusión de la red de IPv4, IPv6 define direcciones multicast y anycast
(cluster), los cuales corresponden a un conjunto de equipos. Una dirección de multidifusión se corresponde con un
conjunto de equipos en múltiples sitios que se tratan como una sola entidad - cada equipo en el conjunto recibirá una copia
de cualquier datagrama enviado al conjunto. Un anycast permite la replicación de los servicios de dirección - un datagrama
enviado a una dirección anycast será entregado a exactamente un miembro del grupo (por ejemplo, el miembro que está
más cerca del remitente).
Para hacer que las direcciones IPv6 más fácil para las personas a utilizar, los diseñadores crearon notación hexadecimal
de colon. notación hexadecimal de colon expresa grupos de dieciséis bits en hexadecimal, con dos puntos grupos de separación.
Cero de compresión elimina las carreras largas de ceros. La notación resultante es más compacto que la forma decimal con
puntos usado en IPv4.
Segundo. 24.14 Resumen 417
CEREMONIAS
24.3 Enumerar las principales características de IPv6, y dar una breve descripción de cada uno.
24.4 ¿Qué tan grande es el encabezado del datagrama IPv6 más pequeño?
24.5 Lo que hace el CABECERA SIGUIENTE campo especifica en un encabezado del datagrama IPv6?
24.7 ¿Por qué utiliza cabeceras de extensión IPv6 separadas en lugar de campos en una sola cabecera, fijo?
24.8 Enumerar los tres tipos de direcciones IPv6, y dar una breve explicación de cada uno.
24.9 Escribir un programa informático que lee un número binario de 128 bits e imprime el número de
de colon notación hexadecimal.
25.1 Introducción
Los capítulos anteriores describen el servicio de entrega de paquetes sin conexión proporcionada por IP y el
protocolo compañera utilizado para informar de errores. En este capítulo se considera UDP, uno de los dos principales
protocolos de la capa de transporte utilizados en el Internet y el único servicio de transporte sin conexión. El capítulo analiza
el formato de paquetes UDP y las formas UDP se puede utilizar. Veremos que aunque UDP es eficiente y flexible, que tiene
la propiedad sorprendente del uso de la semántica de entrega de mejor esfuerzo. Además de discutir UDP, el capítulo
abarca el importante concepto de números de puerto de protocolo.
El siguiente capítulo continúa la discusión, centrándose en el otro protocolo de capa de transporte principal, TCP.
En capítulos posteriores se discuten enrutamiento de Internet y gestión de la red, donde cada protocolos de transporte
de uso.
Como capítulos anteriores muestran, el Protocolo de Internet ofrece un servicio de entrega de paquetes que se extiende por
Internet (es decir, un datagrama puede pasar desde el host de envío, a través de una o más redes físicas, a la recepción de
acogida). A pesar de su habilidad para pasar el tráfico a través de Internet, IP carece de una característica esencial: IP no puede
distinguir entre varios programas de aplicación se ejecutan en un equipo dado. Si un usuario ejecuta una aplicación de correo
electrónico y un navegador web, al mismo tiempo o se ejecuta varias copias de una aplicación dada, deben ser capaces de
comunicarse de forma independiente.
419
420 UDP: Servicio de transporte de Datagrama Cap. 25
IP es incapaz de soportar múltiples aplicaciones debido a campos en el encabezado del datagrama sólo identifican las
computadoras. Es decir, desde el punto de vista del IP, los campos de origen y destino en un datagrama identificar un
ordenador central; una dirección IP no contiene bits adicionales para identificar un programa de aplicación en el host. Decimos
que IP trata a un equipo como punto final de comunicación. Por el contrario, los protocolos de capa de transporte son
conocidos como protocolos de extremo a extremo porque un protocolo de transporte permite que un programa de aplicación
individual a ser un punto final de la comunicación. En lugar de añadir características adicionales a IP para identificar las
aplicaciones, los diseñadores de los protocolos TCP / IP colocan protocolos de extremo a extremo en una capa separada,
Capa 4.
Como veremos, el conjunto de protocolos TCP / IP contiene dos protocolos de transporte, las User Datagram
Protocol (UDP) y el Protocolo de Control de Transmisión (TCP), que difieren dramáticamente en el servicio que ofrecen
a las aplicaciones. UDP es menos complejo y más fácil de entender. La simplicidad y facilidad de comprensión vienen
con un costo - UDP no proporciona el tipo de servicio de una aplicación típica de espera.
De extremo a extremo. UDP es un protocolo de transporte que puede distinguir entre varios programas
de aplicación que se ejecutan en un equipo determinado.
Sin conexión. La interfaz que los suministros UDP para aplicaciones sigue un
paradigma sin conexión.
Orientado a mensajes. Una aplicación que utiliza UDP envía y recibe mensajes
individuales.
Mejor esfuerzo. UDP ofrece aplicaciones de la misma semántica de entrega de mejor esfuerzo como IP.
La característica más importante de la UDP, su semántica de mejor esfuerzo, se debe a que utiliza UDP IP para su
transmisión. De hecho, UDP es a veces caracterizada como una Delgado capa de protocolo que proporciona aplicaciones
con la capacidad de enviar y recibir datagramas IP. Podemos resumir:
Segundo. 25.3 El User Datagram Protocol 421
UDP proporciona un servicio de extremo a extremo que permite que un programa de aplicación
para enviar y recibir mensajes individuales, cada uno de los cuales se desplaza en un datagrama
separada. Una aplicación puede optar por restringir la comunicación a otro programa de
aplicación o comunicarse con múltiples aplicaciones.
UDP utiliza una sin conexión paradigma de la comunicación, lo que significa que una aplicación que utiliza UDP no
necesita preestablecer la comunicación antes de enviar datos, ni tampoco necesita la aplicación para informar a la red
cuando haya terminado. En su lugar, una aplicación puede generar y enviar datos en cualquier momento. Por otra parte,
UDP permite que una aplicación para retrasar un tiempo arbitrariamente largo entre la transmisión de dos mensajes.
UDP no mantiene estado, y no utiliza mensajes de control; la comunicación se compone sólo de los mensajes de datos
propios. En particular, si un par de aplicaciones detener el envío de datos, no hay otros paquetes se intercambian. Como
resultado, UDP tiene muy bajo costo operativo. Para resumir:
UDP es sin conexión, lo que significa que una aplicación puede enviar datos en cualquier momento
y UDP no transmite ningún paquete distintos de los paquetes que transportan datos de usuario.
UDP ofrece programas de aplicación de una mensaje orientado interfaz. Cada vez que una aplicación
solicita la UDP envía un bloque de datos, UDP coloca los datos en un solo mensaje para su transmisión. UDP
no divide un mensaje en múltiples paquetes, y no se combina mensajes para entrega - cada mensaje que una
aplicación envía es transportado a través de Internet y se entrega al receptor.
La interfaz orientado a mensajes tiene varias consecuencias importantes para los programadores. En el lado
positivo, las aplicaciones que utilizan UDP puede depender del protocolo para preservar límites de datos - cada mensaje
UDP entrega a una aplicación de recepción será exactamente la misma que fue transmitida por el emisor. En el lado
negativo, cada mensaje UDP debe caber en un solo datagrama IP. Así, el tamaño de datagrama IP se forma un límite
absoluto en el tamaño de un mensaje UDP. Más importante, el tamaño del mensaje UDP puede conducir a un uso
ineficiente de la red subyacente. Si una aplicación envía mensajes muy pequeños, los datagramas resultantes tendrán
una gran proporción de octetos de cabecera de octetos de datos. Si una aplicación envía mensajes extremadamente
grandes, los datagramas resultantes pueden ser más grandes que la red de MTU, y serán fragmentado por IP.
422 UDP: Servicio de transporte de Datagrama Cap. 25
Permitiendo que los mensajes UDP que ser grande produce una anomalía interesante. Normalmente, un programador de
aplicaciones puede lograr una mayor eficiencia mediante el uso de grandes transferencias. Por ejemplo, se anima a los
programadores para declarar tampones O grande de E /, y para especificar las transferencias que coinciden con el tamaño del
búfer. Con UDP, sin embargo, el envío de mensajes de gran tamaño conduce a una menor eficiencia debido a que grandes
mensajes provocan la fragmentación. Aún más sorprendente, la fragmentación puede ocurrir en el ordenador emisor - una
aplicación envía un mensaje grande, UDP coloca el mensaje completo en un datagrama de usuario y encapsula el datagrama de
usuario en un datagrama de internet, e IP debe realizar la fragmentación antes de que el datagrama se puede enviar . La cuestión
es:
Como consecuencia, muchos programadores que usan UDP elegido el tamaño que produce datagramas que caben en una
MTU estándar. En particular, porque la mayoría de las partes de la Internet ahora son compatibles con una MTU de 1500 octetos,
los programadores suelen elegir un tamaño del mensaje de 1400 o 1450 de dejar suficiente espacio para las cabeceras IP y UDP.
UDP utiliza IP para toda la entrega. Por otra parte, UDP proporciona aplicaciones con exactamente la misma semántica de
entrega de mejor esfuerzo como IP, lo que significa que los mensajes pueden ser:
Perdido
duplican
retardada
dañado
Por supuesto, UDP no introduce a propósito problemas de entrega. En su lugar, simplemente UDP utiliza IP para
enviar mensajes, y no detecta o problemas de entrega correctos. la semántica de entrega de mejor esfuerzo de UDP
tienen consecuencias importantes para las aplicaciones. Una aplicación o bien debe ser inmune a los problemas o el
programador debe tomar medidas adicionales para detectar y corregir problemas. Como ejemplo de una aplicación que
puede tolerar errores de paquetes, considere una transmisión de audio. Si el remitente coloca una pequeña cantidad de
audio en cada mensaje, la pérdida de un solo paquete produce una pequeña brecha en la reproducción, que se escucha
como un emergente o haga clic. Aunque no es deseable, el ruido es simplemente molesto. En el extremo opuesto,
considere una aplicación de compras en línea. Estas aplicaciones no se escriben en utilizar UDP debido a errores de
paquetes pueden tener
Segundo. 25.6 UDP semántica de la comunicación 423
consecuencias graves (por ejemplo, la duplicación de un mensaje que lleva un orden de catálogo puede dar lugar a dos órdenes, con
cargas dobles que se realizan para la tarjeta de crédito del comprador).
Podemos resumir:
Debido UDP ofrece la misma semántica de entrega de mejor esfuerzo como IP, un mensaje UDP puede
perderse, duplicarse, retrasado, entregado fuera de orden o trozos pueden ser dañados durante el
transporte. UDP es suficiente a aplicaciones tales como voz o vídeo que pueden tolerar los errores de
entrega.
-1-a-1 1-a-muchos,
muchos-a-1
muchos-a-muchos
Es decir, una aplicación que utiliza UDP tiene una opción. Una aplicación puede elegir una interacción 1-a-1 en el que
los intercambia mensajes de aplicación con exactamente una otra aplicación, una interacción de 1 a varios en los que
la aplicación envía un mensaje a varios destinatarios, o una interacción de muchos-a-1 en que la aplicación recibe los
mensajes de varios remitentes. Por último, un conjunto de aplicaciones puede establecer una interacción de muchos a
muchos en los que se intercambian mensajes entre sí.
Aunque una interacción-1-a-muchos se puede conseguir mediante la disposición de enviar una copia individual de
un mensaje a cada destinatario previsto, UDP permite el intercambio sea eficiente. En lugar de requerir una aplicación
para enviar repetidamente un mensaje a varios destinatarios, UDP permite que una aplicación para transmitir el mensaje
a través de IP multicast o broadcast. Para ello, el emisor utiliza una dirección de difusión IP como la dirección IP de
destino. Por ejemplo, difusión local se puede especificar utilizando la dirección IP de difusión limitada,
255.255.255.255. Del mismo modo, UDP permite que una aplicación de mensajes de multidifusión. La entrega a través de
difusión o multidifusión es especialmente útil para redes Ethernet ya que el hardware subyacente es compatible con ambos tipos
de manera eficiente.
424 UDP: Servicio de transporte de Datagrama Cap. 25
Exactamente cómo debe UDP identificar un programa de aplicación como criterio de valoración? Podría parecer que
UDP podría utilizar el mismo mecanismo que utiliza el sistema operativo. Por desgracia, debido a que UDP debe abarcar
ordenadores heterogéneos, no existe un mecanismo común. Por ejemplo, algunos sistemas operativos utilizan identificadores
de proceso, otros usan nombres de los trabajos, y otros utilizan identificadores de tareas. Por lo tanto, un identificador que es
significativa en un sistema puede no ser significativa en otro.
Para evitar la ambigüedad, UDP define un conjunto abstracto de identificadores de llamada números de puerto del
protocolo que son independientes del sistema operativo subyacente. Cada equipo que UDP implementa debe proporcionar una
asignación entre los números de puerto del protocolo y los identificadores de programa que utiliza el sistema operativo. Por
ejemplo, el estándar UDP define el número de puerto del protocolo siete como el puerto para una eco servicio y un puerto el
número treinta y siete como el puerto para una contemporizador Servicio. Todos los equipos que ejecutan UDP reconocen los
números de puerto del protocolo estándar, independientemente del sistema operativo subyacente. Por lo tanto, cuando un
mensaje llega UDP para el puerto siete, software de protocolo UDP debe saber qué programa en el equipo local implementa el
servicio de eco y debe pasar el mensaje de entrada al programa.
El modo de comunicación se determina por la forma en que una aplicación se llena en los números de puerto del
protocolo direcciones y para un socket. Para participar en 1-a-1 de comunicación, por ejemplo, una aplicación especifica el
número local puerto, la dirección IP remota y el número de puerto del protocolo remoto; UDP sólo deja pasar los mensajes de
aplicación que llegan desde el remitente especificado. Para participar en la comunicación de muchos a 1, la aplicación
especifica el número de puerto local, pero informa UDP que el punto extremo remoto puede ser cualquier sistema. UDP pasa
entonces a la aplicación todos los mensajes que llegan para el † puerto especificado.
Cada mensaje UDP se llama datagrama de usuario y consta de dos partes: un breve encabezado que especifica los
programas de aplicación de envío y recepción y una carga útil que transporta los datos que se envían. La figura 25.1 ilustra
el formato de datagrama de usuario.
0 dieciséis 31
UDP Puerto de origen UDP puerto de destino
. . .
Figura 25.1 El formato de un datagrama de usuario UDP con una cabecera de 8 octetos.
† Sólo una aplicación puede solicitar todos los mensajes para un puerto determinado.
Segundo. 25.9 Formato de datagramas de UDP 425
Los dos primeros campos de la cabecera UDP contienen números de puerto del protocolo de 16 bits. Campo
A pesar de la cabecera UDP contiene un campo de dieciséis bits llamado suma de comprobación UDP la suma de control es
opcional. Un remitente puede elegir para calcular una suma de comprobación o ajustar todos los bits del campo de suma de
comprobación a cero. Cuando un mensaje llega a su destino, el software UDP examina la comprobación sobre el terreno, y sólo verifica
Tenga en cuenta que la cabecera UDP no contiene ninguna identificación del remitente o receptor distinto de los
números de puerto del protocolo. En particular, UDP asume que el origen y destino direcciones IP están contenidas en
el datagrama IP que transporta UDP. Por lo tanto, las direcciones IP no se realizan en la cabecera UDP.
La omisión de las direcciones IP de origen y de destino UDP hace más pequeño y más eficiente, sino que introduce
la posibilidad de error. En particular, si el mal funcionamiento de IP y entrega un mensaje UDP a un destino incorrecto, UDP
no puede utilizar los campos de cabecera para determinar que se ha producido un error.
Para permitir UDP para verificar que los mensajes lleguen al destino correcto, sin incurrir en los gastos generales de los
campos de cabecera adicionales, UDP se extiende la suma de comprobación. Cuando se calcula la suma de comprobación, el
software incluye una UDP la pseudo cabecera que contiene el origen, destino, y el tipo (es decir, PROTO) campos de la
datagrama IP y una longitud de datagramas UDP. Es decir, el emisor calcula una suma de comprobación como si la cabecera
UDP contenía campos extra. Del mismo modo, para verificar una suma de comprobación, un receptor debe obtener la longitud
UDP, y la fuente, el destino y los campos de tipo del datagrama IP; el receptor de los añade al mensaje UDP antes de la
verificación de la suma de comprobación. La figura 25.2 ilustra campos en la cabecera de pseudo.
0 dieciséis 31
Dirección IP de origen
dirección IP de destino
† Al igual IP, UDP utiliza una suma de verificación de complemento a los; Si la suma de comprobación calculada tiene un valor de cero, un remitente usa la forma
Como ICMP, cada datagrama UDP se encapsula en un datagrama IP para su transmisión a través de
Internet. La figura 25.3 ilustra la encapsulación.
25.12 Resumen
El Protocolo de datagramas de usuario proporciona transporte de mensajes de extremo a extremo desde una aplicación
que se ejecuta en un ordenador a una aplicación que se ejecuta en otro equipo. UDP ofrece la misma semántica de entrega de
mejor esfuerzo como IP, lo que significa que los mensajes pueden perderse, duplicarse, o entregados fuera de orden. Una de
las ventajas de un enfoque de conexión surge de la capacidad de tener 1-a-1, 1-a-muchos, y las interacciones de muchos a-1
entre aplicaciones.
Para seguir siendo independiente de los sistemas operativos subyacentes, UDP utiliza un pequeño número de puerto del
protocolo enteros para distinguir entre los programas de aplicación. el software del protocolo en un equipo determinado debe asignar
cada número de puerto del protocolo para el mecanismo apropiado (por ejemplo, ID de proceso) que se utiliza en el equipo.
La suma de comprobación UDP es opcional - si un remitente llena la comprobación sobre el terreno con el cero, el receptor
no verifica la suma de comprobación. Para verificar que el datagrama UDP llegó a la ubicación correcta, una suma de comprobación
UDP se calcula sobre el datagrama más una pseudo cabecera
UDP requiere dos niveles de encapsulación. Cada mensaje UDP se encapsula en un datagrama IP para su
transmisión a través de Internet. El datagrama se encapsula en un marco para la transmisión a través de una red
individual.
Segundo. 25.12 Resumen 427
CEREMONIAS
25.3 Hacen aplicaciones necesitan intercambiar mensajes de control UDP antes de intercambiar datos? Explique.
25.4 Calcular el tamaño del mensaje UDP más grande posible. (Pista: todo el mensaje UDP debe caber en un
datagrama IP).
25.5 ¿Qué ocurre si un mensaje UDP que contiene una carga útil de 1.500 bytes de datos se envía a través
una red Ethernet?
25.6 Si una aplicación utiliza UDP para enviar un mensaje de bytes 8K a través de una red Ethernet, el número de fotogramas
atravesará la red?
25.8 ¿Qué valores de punto final debe ser especificado por una aplicación que se dedica a 1-a-1 com-
municación? En 1-a-muchos? En muchos-a-1?
25.10 Dada una trama Ethernet, qué campos deben ser examinados para determinar si la trama
lleva un mensaje UDP?
Contenido del capítulo
26.1 Introducción
Los capítulos anteriores describen el servicio de entrega de paquetes sin conexión proporcionada por IP y el Protocolo de
datagramas de usuario que se ejecuta a través de IP. En este capítulo se considera protocolos de transporte en general, y
examina TCP, el protocolo de transporte principal utilizado en Internet. El capítulo se explica cómo el protocolo TCP proporciona
una entrega fiable.
TCP alcanza una tarea que parece imposible: utiliza el servicio de datagramas no fiable ofrecido por IP al
enviar a través de Internet, pero ofrece un servicio de entrega de datos fiable a los programas de aplicación.
TCP debe compensar la pérdida, retraso, la duplicación, y la entrega fuera de orden, y debe hacerlo sin
sobrecargar las redes y routers subyacentes. Después de revisar el servicio que proporciona a las aplicaciones
TCP, el capítulo examina el TCP utiliza técnicas para lograr fiabilidad.
Los programadores están entrenados para pensar que la fiabilidad es fundamental en un sistema informático. Por
ejemplo, al escribir una aplicación que envía datos a un dispositivo de I / O, tales como una impresora, un programador
asume los datos llegarán correctamente o el sistema operativo informará a la aplicación que se ha producido un error. Es
decir, un programador asume el sistema subyacente garantiza que los datos serán entregados de forma fiable.
429
430 TCP: servicio de transporte confiable Cap. 26
Para permitir a los programadores siguen las técnicas convencionales en la creación de aplicaciones que se
comunican a través de Internet, software de protocolo debe proporcionar la misma semántica que un sistema informático
convencional: el software debe garantizar una comunicación rápida y fiable. Los datos deben ser entregados en el mismo
orden en que fue enviado, y no debe haber ninguna pérdida o duplicación.
En el conjunto de protocolos TCP / IP, el Protocolo de Control de Transmisión (TCP) ofrece un servicio de transporte
fiable. TCP es notable porque resuelve así un problema difícil - si bien se han creado otros protocolos, ningún protocolo de
transporte de uso general ha demostrado funcionar mejor. En consecuencia, la mayoría de las aplicaciones de Internet están
diseñados para utilizar TCP.
Para resumir:
Punto-a-Punto de Comunicación. Cada conexión TCP tiene exactamente dos puntos finales.
Fiabilidad completa. TCP garantiza que los datos enviados a través de una conexión se
entregarán exactamente como enviado, completa y en orden.
Comunicación Full Duplex. Una conexión TCP permite que los datos fluyen en una u otra dirección, y
permite que cualquiera de los programas de aplicación para enviar datos en cualquier momento.
Interfaz de corriente. TCP proporciona una interfaz de corriente en el que una aplicación
envía una secuencia continua de octetos a través de una conexión. TCP no agrupar los
datos en registros o mensajes, y no garantiza a proporcionar datos en los trozos del
mismo tamaño que fueron transferidos por la aplicación de envío.
Conexión fiable de inicio. TCP permite que dos aplicaciones para iniciar de manera fiable la
comunicación.
Apagado Conexión elegante. Antes de cerrar una conexión, TCP asegura que todos
los datos han sido entregados y que ambas partes han acordado que cerrar la
conexión.
Segundo. 26.3 El TCP servicio proporciona a las aplicaciones 431
Para resumir:
Al igual que UDP, TCP se clasifica como una de extremo a extremo protocolo, ya que proporciona la
comunicación entre una aplicación en un ordenador a una aplicación en otro equipo. Es orientado a la conexión ya que
las aplicaciones deben solicitar que TCP forman una conexión antes de que puedan transferir datos, y deben cerrar la
conexión cuando finalice la transferencia.
Las conexiones proporcionadas por TCP se llaman conexiones virtuales ya que se consiguen en el software.
De hecho, Internet subyacente no proporciona soporte de hardware o software para las conexiones. En su lugar, los
módulos de software de TCP en dos mensajes de cambio de máquinas para lograr la ilusión de una conexión.
Cada mensaje TCP se encapsula en un datagrama IP y se envía a través de Internet. Cuando el datagrama
llega al host de destino, IP pasa el contenido a TCP. Tenga en cuenta que, aunque utiliza TCP IP para transportar
mensajes, IP no leer o interpretar los mensajes. De hecho, IP trata a cada mensaje TCP como los datos sean
transferidos. A la inversa, TCP trata IP como un sistema de comunicación por paquetes que proporciona
comunicación entre los módulos TCP en cada extremo de una conexión. La figura 26.1 ilustra cómo ve TCP de
Internet subyacente.
TCP TCP
IP enrutador IP
iface de la red.
neta 1 2 netos
Como muestra la figura, se necesita el software TCP en cada extremo de una conexión virtual, pero no en los
routers intermedios. Desde el punto de vista del TCP, la totalidad de Internet es un sistema de comunicación que puede
aceptar y entregar mensajes sin cambiar o interpretar sus contenidos.
Un protocolo de transporte de extremo a extremo debe diseñarse cuidadosamente para lograr una transferencia eficiente y
Terminar el reinicio del sistema. En cualquier momento durante la comunicación, cualquiera de los dos
sistemas finales caiga, y reiniciar el sistema. No debe haber ninguna confusión entre sesiones; algunos
sistemas embebidos pueden reiniciar en menos tiempo del que se tarda un paquete para cruzar la
Internet.
End Systems heterogéneos. Un potente emisor puede generar datos tan rápido que
desborda un receptor lento.
congestionada.
Ya hemos visto ejemplos de comunicaciones básicas técnicas de datos de los sistemas de uso de superar algunos de los
problemas. Por ejemplo, para compensar los bits que son modificados durante la transmisión, un protocolo podría incluir bits de
paridad, un suma de comprobación, o una comprobación de redundancia cíclica (CRC). Los protocolos de transporte hacen más
que detectar errores - que emplean técnicas que pueden reparar o evitar problemas. En particular, los protocolos de transporte
utilizan una variedad de herramientas para manejar algunos de los problemas de comunicación más complicados. Las siguientes
secciones discuten los mecanismos básicos.
Para manejar paquetes duplicados y las entregas fuera de orden, los protocolos de transporte utilizan
secuenciación. El lado de envío adjunta un número de secuencia a cada paquete. Las tiendas de lado de recepción tanto el
número de secuencia del último paquete recibido con el fin así como una lista de los paquetes adicionales que llegaron fuera
de orden. Cuando llega un paquete, el receptor examina el número de secuencia para determinar la forma en que el paquete
debe ser manejado. Si el paquete es el siguiente esperado (es decir, ha llegado en orden), el software de protocolo de
entrega el paquete a la siguiente capa más alta, y comprueba su lista para ver si los paquetes adicionales también pueden ser
entregados. Si el paquete ha llegado fuera de servicio, el software de protocolo agrega el paquete a la lista. Secuenciación
también resuelve el problema de la duplicación - un receptor de cheques por duplicados cuando se examina el número de
secuencia de un paquete que llega. Si
Segundo. 26.5 Las técnicas que utilizan protocolos de transporte 433
el paquete ya ha sido entregado o el número de secuencia coincide con uno de los paquetes en espera en la
lista, el software descarta la nueva copia.
Para hacer frente a la pérdida de paquetes, los protocolos de transporte utilizan acuse de recibo positivo con
retransmisión. Cada vez que llega una trama intacta, el software de protocolo de recepción envía una pequeña acuse de recibo
(ACK) mensaje que informa de la recepción exitosa. El emisor asume la responsabilidad de asegurar que cada paquete es
transferido con éxito. Cada vez que se envía un paquete, el software de protocolo de envío de lado inicia un temporizador. Si
llega un reconocimiento antes de que expire el temporizador, el software cancela el temporizador; Si el temporizador expira
antes de que llegue un acuse de recibo, el software envía otra copia del paquete y comienza de nuevo el temporizador. La
acción de enviar una segunda copia se conoce como retransmitir,
Por supuesto, la retransmisión no puede tener éxito si un fallo de hardware se ha desconectado de forma
permanente la red o si el equipo receptor se ha estrellado. Por lo tanto, los protocolos que retransmiten los mensajes
por lo general obligados el número máximo de retransmisiones. Cuando el límite se ha alcanzado, el protocolo se
detiene retransmitir y declara que la comunicación es imposible.
Tenga en cuenta que si se retrasan paquetes, retransmisión puede introducir paquetes duplicados. Por lo tanto, los protocolos
de transporte que incorporan retransmisión generalmente están diseñados para manejar el problema de paquetes duplicados.
Extraordinariamente largas demoras pueden dar lugar a errores de respuesta en el que un paquete retrasado afecta la
comunicación posterior. Por ejemplo, considere la siguiente secuencia de eventos.
A menos que un protocolo de transporte está diseñado con cuidado para evitar este tipo de problemas, un paquete desde una
conversación anterior podría ser aceptada en una conversación posterior y el paquete correcto desechado como un duplicado.
434 TCP: servicio de transporte confiable Cap. 26
Replay también puede ocurrir con los paquetes de control (es decir, los paquetes que lleven o terminan de
comunicación). Para entender el alcance del problema, considere una situación en la que dos programas de
aplicación forman una conexión TCP, se comunican, cierran la conexión, y luego formar una nueva conexión. El
mensaje que especifica el cierre de la conexión puede ser duplicado y una copia se puede retrasar el tiempo
suficiente para que se establezca la segunda conexión. Un protocolo debe ser diseñado de modo que el mensaje
duplicado no hará que la segunda conexión se cierre.
Para evitar la repetición, protocolos marcan cada sesión con un identificador único (por ejemplo, el momento en que se
establece la sesión), y requiere que el ID único de estar presente en cada paquete. El software de protocolo descarta cualquier paquete
que llega que contiene un ID incorrecto. Para evitar la repetición, un ID no debe ser reutilizado hasta que haya pasado un tiempo
razonable (por ejemplo, horas).
Varias técnicas están disponibles para prevenir un equipo rápido de enviar tantos datos que los excesos de un
receptor lento. Usamos el término control de flujo para referirse a las técnicas que manejan el problema. La forma más
simple de control de flujo es una detente y sigue sistema en el que un remitente espera después de la transmisión de cada
paquete. Cuando el receptor está listo para otro paquete, el receptor envía un mensaje de control, por lo general una forma
de acuse de recibo.
A pesar de stop-and-go protocolos impiden rebasamiento, que dan lugar a muy bajo rendimiento. Para
comprender por qué, considere lo que sucede en una red que tiene un tamaño de paquete de 1000 octetos, una
capacidad de caudal de 2 Mbps, y una demora de 50 milisegundos. El hardware de red puede transportar 2 Mbps de un
ordenador a otro. Sin embargo, después de transmitir un paquete, el remitente debe esperar 100 ms antes de enviar
otro paquete (es decir, 50 ms para el paquete en llegar al receptor y 50 ms para un reconocimiento para viajar de
regreso). Por lo tanto, la velocidad máxima a la que los datos se pueden enviar utilizando stopand-go es un paquete
cada 100 milisegundos. Cuando se expresa como una tasa de bits, la velocidad máxima que parar-y-va puede alcanzar
es de 80.000 bps, lo cual es sólo el 4% de la capacidad del hardware.
Para obtener altas tasas de rendimiento, los protocolos de transporte utilizan una técnica de control de flujo
conocido como ventana deslizante. El emisor y el receptor están programados para utilizar un fijo tamaño de ventana, que
es la cantidad máxima de datos que puede ser enviada antes de que llegue un acuse de recibo. Por ejemplo, el emisor y el
receptor pueden acordar un tamaño de ventana de cuatro paquetes. El emisor comienza con los datos a ser enviados,
extrae datos para llenar cuatro paquetes (es decir, la primera ventana), y transmite una copia de cada paquete. En la
mayoría de los protocolos de transporte, el remitente es necesaria conserva una copia en caso de retransmisión. El
receptor debe tener espacio de búfer preasignado para toda la ventana. Si un paquete llega en secuencia, el receptor pasa
el paquete a la aplicación receptora y transmite un acuse de recibo al remitente. Cuando llega un acuse de recibo, el
remitente descarta su copia del paquete de acuse de recibo y transmite el siguiente paquete. La figura 26.2 ilustra por qué
el mecanismo se conoce como una ventana deslizante.
Segundo. 26.5 Las técnicas que utilizan protocolos de transporte 435
ventana
2 3 4 5 6 7 8 9 10 11 12 1
(un)
ventana
2 3 4 5 6 7 8 9 10 11 12 1
(segundo)
la ventana se mueve a medida
que llegan los reconocimientos
ventana
2 3 4 5 6 7 8 9 10 11 12 1
(do)
Figura 26.2 Una ilustración de una ventana deslizante en (a) inicial, (b) intermedio,
y (c) las posiciones finales.
ventana deslizante puede aumentar el rendimiento de forma espectacular. Para entender por qué, comparar la secuencia
de transmisiones con un esquema de stop-and-go y un esquema de ventana deslizante. Figura 26.3 contiene una comparación
para una transmisión de 4-paquete.
enviar
ACK
hecho
(un) (segundo)
Figura 26.3 Comparación de la transmisión utilizando (a) de parada y ir, y (b) slid-
ventana ing.
436 TCP: servicio de transporte confiable Cap. 26
En la figura 26.3a, un emisor transmite cuatro paquetes, sino que espera un acuse de recibo antes de enviar cada paquete
sucesivo. Si el retraso necesario para enviar un solo paquete en un viaje a través de la red es NORTE, el tiempo total requerido
para enviar cuatro paquetes es 8N. En la figura 26.3b, un emisor transmite todos los paquetes en la ventana antes de que
espera. La figura muestra un pequeño retraso entre transmisiones de paquetes sucesivos ya que la transmisión no es
instantánea - un corto período de tiempo (por lo general unos pocos microsegundos) que se requiere para el hardware para
completar la transmisión de un paquete y empezar a transmitir el siguiente paquete. Por lo tanto, el tiempo total requerido para
enviar cuatro paquetes se 2N + ε, dónde ε denota el pequeño retraso.
Para entender el significado de la ventana deslizante, imaginar una comunicación extendida que involucra muchos
paquetes. En tales casos, el tiempo total requerido para la transmisión es tan grande que ε puede ser ignorada. Para este
tipo de redes, un protocolo de ventana deslizante puede aumentar el rendimiento sustancialmente. La mejora potencial
es:
T w = T gramo × W (26.1)
dónde T w es el rendimiento que se puede lograr con un protocolo de ventana deslizante, T gramo es el rendimiento que se
puede lograr con un protocolo de parada-y-go, y W es el tamaño de la ventana. La ecuación explica por qué el protocolo de
ventana deslizante se ilustra en la Figura 26.3b tiene aproximadamente cuatro veces el rendimiento del protocolo de
parada-and-Go en la figura
26.3a. Por supuesto, el rendimiento no se puede aumentar arbitrariamente simplemente aumentando el tamaño de la ventana.
El ancho de banda de la red subyacente impone un límite superior - los bits no se pueden enviar más rápido que el hardware
puede llevar a ellos. Por lo tanto, la ecuación se puede reescribir:
Para entender la facilidad con que se puede producir congestión, considerar cuatro hosts conectados por dos interruptores
el interruptor 1 interruptor 2
Asumir cada conexión en la figura opera a 1 Gbps, y considerar lo que ocurre si los dos ordenadores conectados a
cambiar 1 intento de enviar datos a un ordenador conectado a cambiar 2. Interruptor 1 recibe datos a una tasa global de 2
Gbps, pero sólo puede avanzar 1 Gbps para cambiar 2. La situación se conoce como congestión. Incluso si un interruptor
almacena temporalmente los paquetes en la memoria, resultados de congestión en una mayor demora. Si persiste la
congestión, el interruptor se quede sin memoria y comenzar a desechar paquetes. Aunque la retransmisión se puede
utilizar para recuperar la pérdida de paquetes, retransmisión envía más paquetes en la red. Por lo tanto, si la situación
persiste, una red completa puede quedar inutilizable; la afección se conoce como Congestión colapso. En Internet, la
congestión ocurre generalmente en los routers. Los protocolos de transporte tratan de evitar el colapso de congestión
mediante el control de la red y reaccionar rápidamente una vez que comienza la congestión. Hay dos enfoques básicos:
Arreglos para sistemas intermedios (es decir, routers) para informar a un remitente cuando se produce
la congestión
Utilizar una mayor demora o pérdida de paquetes como una estimación de la congestión
El esquema anterior se realizará, ya sea por tener routers envían un mensaje especial al origen de los
paquetes cuando se produce la congestión o por tener routers establecen un poco en la cabecera de cada paquete
que tiene un retraso causado por la congestión. Cuando se utiliza el segundo método, el equipo que recibe el
paquete incluye información en el reconocimiento de informar al remitente original †.
hardware de red moderna funciona bien; la mayoría de retardo y la pérdida de los resultados de la
congestión, no un fallo de hardware.
Aunque las técnicas necesarias para resolver problemas específicos son bien conocido, el diseño del protocolo es no trivial por
dos razones. En primer lugar, para que la comunicación eficiente, los detalles deben ser elegidos cuidadosamente - pequeños errores
de diseño pueden provocar un funcionamiento incorrecto, paquetes innecesarios o retrasos. Por ejemplo, si se utilizan los números de
secuencia, cada paquete debe contener un número de secuencia en la cabecera del paquete. El campo debe ser lo suficientemente
grande como para que los números de secuencia no se vuelven a utilizar con frecuencia, pero lo suficientemente pequeño como para
no desperdiciar ancho de banda innecesario. En segundo lugar, mecanismos de protocolo pueden interactuar de maneras inesperadas.
Por ejemplo, considere la interacción entre el control de flujo y de los mecanismos de control de congestión. Un esquema de ventana
deslizante utiliza con más ahínco el ancho de banda de red subyacente para mejorar el rendimiento. Un mecanismo de control de
† Un largo retraso puede ocurrir entre produce la congestión tiempo y se informa al remitente original.
438 TCP: servicio de transporte confiable Cap. 26
siendo insertado Posite reduciendo el número de paquetes para evitar que la red se colapse; el equilibrio entre la
ventana deslizante y control de la congestión puede ser complicado, y un diseño que hace tanto bien es difícil. Es
decir, el control de flujo agresivos pueden causar congestión y control de congestión conservadora puede disminuir el
rendimiento de más de lo necesario. Diseños que intentan cambiar de comportamiento agresivo a conservador
cuando se produce congestión tienden a oscilan - que poco a poco aumentar su uso de ancho de banda hasta que la
red comienza a experimentar congestión, disminuir el uso de la red hasta que se estabiliza, y luego comienzan a
aumentar de nuevo.
reinicio del sistema del ordenador plantea otro serio desafío para transportar el diseño del protocolo. Imagine una
situación en la que dos programas de aplicación establecen una conexión, comenzará a enviar los datos, y luego se reinicia
el equipo receptor de datos. Aunque el software de protocolo en el equipo reiniciado no tiene conocimiento de una
conexión, el software del protocolo del equipo remitente considera que la conexión válida. Si un protocolo no está diseñado
con cuidado, un paquete duplicado puede causar una computadora para crear una conexión incorrecta y comenzar a recibir
datos a mitad de camino.
¿Cuál de las técnicas antes mencionadas sí utiliza TCP para lograr la transferencia fiable? La respuesta es compleja
porque TCP utiliza una variedad de esquemas que se combinan en formas novedosas. Como se usa TCP esperados retransmisión
para compensar la pérdida de paquetes. Debido TCP proporciona un flujo de datos en ambas direcciones, ambos lados de
una comunicación participan en la retransmisión. Cuando TCP recibe datos, envía una reconocimiento de vuelta al
remitente. Siempre que envía datos, TCP inicia un temporizador, y retransmite los datos si el temporizador expira. De este
modo, la retransmisión de base TCP opera como figura 26.5 ilustra.
enviar mensajes 1
recibir el mensaje ACK 1 1
Enviar
recibir acuse de
recibo de mensajes de envío 1 2
recibir el mensaje 2 2
Enviar ACK
recibir acuse de
recibo de mensajes de envío 2 3
TCP se enfrenta a un reto más difícil de distinguir entre los destinos locales y remotos: ráfagas de datagramas
pueden causar congestión, lo que provoca retrasos en la transmisión a lo largo de una trayectoria dada a cambiar
rápidamente. De hecho, el tiempo total requerido para enviar un mensaje y recibir un acuse de recibo puede aumentar o
disminuir en un orden de magnitud en unos pocos milisegundos. Para resumir:
El retardo requerido para los datos para llegar a un destino y un reconocimiento para volver
depende del tráfico en Internet, así como la distancia al destino. Porque TCP permite
múltiples programas de aplicación para comunicarse con varios destinos al mismo tiempo y
las condiciones del tráfico afecta demora, TCP debe manejar una variedad de retrasos que
pueden cambiar rápidamente.
Antes de TCP fue inventado, los protocolos de transporte utilizados para un valor fijo de retardo de retransmisión - el
diseñador del protocolo o gestor de la red eligieron un valor que era lo suficientemente grande para el retraso esperado.
Diseñadores que trabajan en TCP dieron cuenta de que un tiempo de espera fijo no funcionaría bien para Internet. Por lo tanto, se
optó por realizar la retransmisión de TCP adaptado. Es decir, TCP monitoriza de retardo actual en cada conexión, y se adapta (es
decir, cambios) el temporizador de retransmisión para dar cabida a las condiciones cambiantes.
¿Cómo pueden TCP retrasos monitor de Internet? De hecho, el TCP no puede conocer los retrasos exactas de
todas las partes de Internet en todo momento. En su lugar, estima TCP retardo de ida y vuelta para cada conexión activa
midiendo el tiempo necesario para recibir una respuesta. Cada vez que se envía un mensaje a los que espera una
respuesta, TCP registra la hora a la que se envió el mensaje. Cuando llega una respuesta, TCP resta el momento en que
el mensaje fue enviado desde la hora actual para producir una nueva estimación del retardo de ida y vuelta para esa
conexión. Ya que envía paquetes de datos y recibe reconocimientos, TCP genera una secuencia de estimaciones de ida y
vuelta y utiliza una función estadística para producir un promedio ponderado. Además de una media ponderada, TCP
mantiene una estimación de la varianza, y
440 TCP: servicio de transporte confiable Cap. 26
utiliza una combinación lineal de la media y la varianza estimada cuando se calcula el tiempo en el que es necesaria la
retransmisión.
La experiencia ha demostrado que la retransmisión de TCP adaptativa funciona bien. El uso de la varianza ayuda TCP
reaccionar rápidamente cuando aumenta el retardo tras una ráfaga de paquetes. El uso de un promedio ponderado ayuda TCP
restablece el temporizador de retransmisión si el retraso regresa a un valor inferior después de una explosión temporal. Cuando
el retraso se mantiene constante, TCP ajusta el tiempo de retransmisión a un valor que es ligeramente más largo que el
promedio de demora de ida y vuelta. Cuando retrasos comienzan a variar, TCP ajusta el tiempo de retransmisión a un valor
mayor que la media para soportar picos.
Para entender cómo adaptativo retransmisión ayuda a maximizar el rendimiento de TCP en cada conexión,
considere un caso de pérdida de paquetes en dos conexiones que tienen diferentes retardos de ida y vuelta. Por ejemplo,
la figura 26.6 ilustra el tráfico en dos de tales conexiones.
est 1
.
.
.
est 1
est 2
est 2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
se acabó el tiempo
paquete perdido
. . . . . . . . . . . . . . . .
se acabó el tiempo
paquete perdido
. . . . . . . . . . . . . . . .
Figura 26.6 Tiempo de espera y la retransmisión en dos conexiones TCP que tengan
diferentes retardos de ida y vuelta.
Como muestra la figura, TCP establece el tiempo de retransmisión a ser ligeramente más largo que el promedio de demora
de ida y vuelta. Si el retraso es grande, TCP utiliza un gran tiempo de retransmisión; si el retraso es pequeño, TCP utiliza un
pequeño tiempo de espera. El objetivo es esperar el tiempo suficiente para determinar que un paquete se pierde, sin tener que
esperar más tiempo del necesario.
Segundo. 26.11 Tampones, control de flujo y de Windows 441
TCP utiliza una ventana mecanismo para controlar el flujo de datos. A diferencia del esquema de ventana basada en
paquetes simplista descrito anteriormente, una ventana de TCP se mide en bytes. Cuando se establece una conexión, cada
extremo de la conexión asigna un búfer para almacenar los datos entrantes y envía el tamaño de la memoria intermedia en el
otro extremo. A medida que llega de datos, el TCP receptor envía acuses de recibo, que especifican el tamaño del búfer restante.
TCP utiliza el término ventana para referirse a la cantidad de espacio de memoria intermedia disponible en cualquier momento;
una notificación que especifica el tamaño de la ventana se conoce como una ventana de publicidad. Un receptor envía una
ventana cada anuncio con acuse de recibo.
Si la aplicación receptora puede leer los datos tan pronto como llega, un receptor enviará una ventana anuncio
positivo junto con cada uno de acuse de recibo. Sin embargo, si el lado emisor actúa más rápidamente que el lado de
recepción (por ejemplo, debido a que la CPU es más rápido), los datos de entrada con el tiempo se llene la memoria
intermedia del receptor, haciendo que el receptor para anunciar una cero ventana. Un emisor que recibe una ventana de cero
publicidad debe dejar de enviar de nuevo hasta que el receptor anuncia una ventana positiva. La figura 26.7 ilustra anuncios
de ventana.
Figura 26.7 Una secuencia de mensajes que ilustra el flujo TCP para un máximo
tamaño de segmento de 1000 bytes.
442 TCP: servicio de transporte confiable Cap. 26
En la figura, el remitente utiliza un tamaño máximo de segmento de 1000 bytes. Transferencia comienza cuando el
receptor anuncia un tamaño de la ventana inicial de 2500 bytes. El emisor transmite inmediatamente tres segmentos, dos
que contienen 1000 bytes de datos y uno que contiene 500 bytes. A medida que llegan los segmentos, el receptor genera
un acuse de recibo con el tamaño de la ventana reducida por la cantidad de datos que ha llegado.
En el ejemplo, los tres primeros segmentos llenan el búfer del receptor más rápido que la aplicación receptora
puede consumir datos. Por lo tanto, el tamaño de ventana anunciada llega a cero, y el remitente no puede transmitir datos
adicionales. Después de que los consume aplicación receptora 2000 bytes de datos, el TCP receptor envía un acuse de
recibo adicional que anuncia un tamaño de ventana de 2000 bytes. El tamaño de la ventana se mide siempre más allá de
los datos que están siendo reconocido, por lo que el receptor es la publicidad que puede aceptar 2000 bytes más allá de
la 2500 que ya ha recibido. El remitente responde transmitiendo dos segmentos adicionales. Como llega cada segmento,
el receptor envía un acuse de recibo con el tamaño de la ventana reducida por 1000 bytes (es decir, la cantidad de datos
que ha llegado).
Una vez más, el tamaño de ventana llega a cero, haciendo que el remitente para detener la transmisión. Con el
tiempo, la aplicación receptora consume algunos de los datos, y el TCP receptor transmite un acuse de recibo con un
tamaño de ventana positivo. Si el remitente tenía más datos esperando a ser enviados, el remitente podría proceder para
transmitir otro segmento.
Para garantizar que las conexiones están establecidas o terminadas de forma fiable, TCP utiliza una
3-way handshake en el que se intercambian tres mensajes. Durante el 3-way handshake para iniciar una conexión, cada lado
envía un mensaje de control que especifica un tamaño de búfer inicial (para control de flujo) y un número de secuencia. Los
científicos han demostrado que el intercambio de 3 vías de TCP es necesaria y suficiente para asegurar un acuerdo inequívoco
a pesar de la pérdida de paquetes, la duplicación, la demora y reproducir eventos †. Por otra parte, el apretón de manos TCP
asegura que no va a abrir o cerrar una conexión hasta que ambos extremos han acordado.
TCP utiliza el término segmento de sincronización (segmento SYN) para describir los mensajes de control usados en un
apretón de manos de 3 vías para crear una conexión, y el término segmento FIN
(corto para segmento de acabado) para describir mensajes de control usados en un apretón de manos de 3 vías para cerrar una
conexión. La figura 26.8 ilustra el 3-way handshake utilizado para crear una conexión.
Un aspecto clave de la 3-way handshake utilizado para crear una conexión implica la selección de números de
secuencia. TCP requiere cada extremo para generar un número aleatorio de secuencia de 32 bits que se convierte en la
secuencia inicial para los datos enviados. Si una aplicación intenta establecer una nueva conexión TCP después de
reiniciar su PC, TCP elige un nuevo número aleatorio. Debido a que la probabilidad de seleccionar un valor aleatorio que
coincide con la secuencia utilizada en una conexión anterior es baja, TCP evita los problemas de repetición. Es decir, si un
par de programas de aplicación utiliza TCP para comunicarse, cierra la conexión, y luego establece una nueva conexión,
los números de secuencia en la nueva conexión se diferencian de los números de secuencia utilizados en la antigua
conexión, permitiendo TCP para rechazar cualquier retrasa paquetes que llegan.
† Al igual que otros paquetes TCP, los mensajes utilizados para un apretón de manos de 3 vías pueden ser retransmitidos.
Segundo. 26.12 TCP de tres vías del apretón de manos 443
enviar SYN
recibir ACK
Figura 26.8 El 3-way handshake utiliza para crear una conexión TCP.
El 3-way handshake utiliza para cerrar un usos de conexión ALETA segmentos. Se envía una confirmación en
cada dirección a lo largo de una aleta para garantizar que todos los datos han llegado antes que se termine la
conexión. La figura 26.9 ilustra el intercambio.
recibir ACK
Uno de los aspectos más interesantes del TCP es un mecanismo para control de la congestión.
Recordemos que en el Internet, retraso o pérdida de paquetes es más probable que sea causada por la congestión de un fallo de
hardware, y que la retransmisión puede exacerbar el problema de la congestión mediante la inyección de copias adicionales de un
paquete. Para evitar el colapso de congestión, TCP utiliza los cambios en el retardo de como una medida de la congestión, y
responde a la congestión mediante la reducción de la velocidad a la que retransmite datos.
Aunque pensamos en la reducción de la tasa de transmisión, TCP no calcula una velocidad de datos. En cambio, la
transmisión TCP basa en el tamaño del búfer. Es decir, el receptor se anuncia un tamaño de la ventana, y el emisor puede
transmitir datos para llenar la ventana del receptor antes de que se reciba un ACK. Para controlar la velocidad de datos,
TCP impone una restricción a la
444 TCP: servicio de transporte confiable Cap. 26
tamaño de la ventana - al reducir temporalmente el tamaño de la ventana, el TCP emisor reduce la velocidad de datos.
El concepto importante es:
TCP utiliza un mecanismo especial de control de congestión cuando se inicia una nueva conexión o cuando se pierde
un mensaje. En lugar de transmitir datos suficientes para llenar el buffer del receptor (es decir, el tamaño de la ventana del
receptor), el TCP se inicia mediante el envío de un único mensaje que contiene los datos. Si llega un reconocimiento sin
pérdida adicional, TCP duplica la cantidad de datos que se envían y envía dos mensajes adicionales. Si llegan ambos
reconocimientos, TCP envía cuatro mensajes, y así sucesivamente. El aumento exponencial continúa hasta que TCP es el
envío de la mitad de la ventana anunciada el receptor. Cuando se alcanza la mitad del tamaño de la ventana original, TCP
ralentiza el ritmo de aumento, y aumenta el tamaño de la ventana de forma lineal, siempre y cuando no se produce la
congestión. El enfoque es conocido como comienzo lento.
mecanismos de control de congestión de TCP responden bien a los aumentos en el tráfico. Retrocediendo
rápidamente, TCP es capaz de aliviar la congestión. En esencia, el TCP evita la adición de retransmisiones cuando Internet
se congestiona. Más importante, si todos siguen el estándar TCP, el esquema de control de congestión significa que todos
los emisores marcha atrás cuando se produce la congestión y se evita la congestión del colapso.
TCP utiliza un formato único para todos los mensajes, incluidos los mensajes que transportan datos, los que llevan
los acuses de recibo, y los mensajes que forman parte de la 3-way handshake usado para crearlo o terminar una conexión
(SYN y FIN). TCP utiliza el término segmento para referirse a un mensaje. Figura 26.10 ilustra el formato de segmento
TCP.
Para entender el formato del segmento, es necesario recordar que una conexión TCP contiene dos flujos de datos, uno
que fluye en cada dirección. Si las aplicaciones en cada extremo están enviando datos al mismo tiempo, TCP puede enviar un
único segmento que transporta datos salientes, el reconocimiento de los datos de entrada, y una ventana de publicidad que
especifica la cantidad de espacio de amortiguación adicional disponible para los datos entrantes. Por lo tanto, algunos de los
campos en el segmento se refieren a la secuencia de datos que viaja en la dirección de avance, mientras que otros campos
se refieren a la secuencia de datos que viaja en la dirección inversa.
Segundo. 26.14 Formato del segmento TCP 445
0 4 10 dieciséis 24 31
PUERTO DE ORIGEN PUERTO DE DESTINO
El número de orden
RECONOCIMIENTO
comienzo de DATOS
..
.
Figura 26.10 El formato del segmento TCP utilizado para datos y control de men-
sabios.
CHECKSUM campo contiene una suma de comprobación que cubre el encabezado del segmento TCP y los datos.
26.15 Resumen
TCP en un ordenador se comunica con TCP en otro equipo mediante el intercambio de mensajes. Todos los
mensajes de una a otra TCP utilizan el formato del segmento TCP, incluidos los mensajes que transportan datos,
acuses de recibo, y los anuncios de las ventanas, así como los mensajes utilizados para establecer y terminar una
conexión. Cada segmento TCP viaja en un datagrama IP.
En general, los protocolos de transporte utilizan una variedad de mecanismos para asegurar un servicio fiable. TCP
tiene una combinación particularmente compleja de técnicas que han demostrado ser un gran éxito. Además de una suma de
comprobación en cada segmento, TCP retransmite cualquier mensaje que se ha perdido. Para ser útil en Internet donde los
retrasos varían con el tiempo, tiempo de retransmisión de TCP es adaptable - TCP mide el retardo de ida y vuelta actual por
separado para cada conexión, y utiliza un promedio ponderado del tiempo de ida y vuelta para elegir un tiempo de espera
para la retransmisión.
CEREMONIAS
26.1 Asumen que los mensajes enviados entre dos programas se pueden perder, duplicado, con retraso, o entregados fuera de orden.
Diseñar un protocolo que permite de forma fiable los dos programas se pongan de acuerdo para comunicarse. Dar a su diseño a
alguien, y ver si se puede encontrar una secuencia de la pérdida, duplicación, y el retraso que hace que falle el protocolo.
26.4 ¿Cuáles son los principales problemas de un protocolo de transporte debe resolver para lograr la transferencia fiable?
26.6 Cuando se utiliza una ventana deslizante de tamaño N, cuántos paquetes se pueden enviar sin requir-
ing un único ACK para ser recibido?
26.7 ¿Por qué un protocolo de parada-and-Go tiene todo bajo rendimiento durante un satélite GEO
canal que opera en dos megabits por segundo?
26.8 Extender los diagramas de la Figura 26.3 para mostrar la transmisión de dieciséis paquetes sucesivos.
26.11 ¿Qué ocurre con throughput si un protocolo de espera demasiado tiempo para retransmitir? Si un protocolo
no esperar el tiempo suficiente para retransmitir?
26.15 Supongamos que dos programas utilizan TCP para establecer una conexión, comunicar, dar por terminado el
conexión y, a continuación, abra una nueva conexión. Además supongamos que una ALETA mensaje enviado a cerrar la
primera conexión se duplica y se retrasa hasta que se haya establecido la segunda conexión. Si una copia de la antigua ALETA
se entrega, se TCP terminar la nueva conexión? ¿Por qué o por qué no?
26.16 ¿Qué problema en una red, TCP reducir su tamaño de la ventana temporal?
26.17 Escribir un programa informático para extraer y campos de impresión en un encabezado de segmento TCP.
26.18 Es la suma de comprobación TCP es necesario, o puede TCP dependerá de la suma de comprobación IP para asegurar la integridad?
Explique.
Contenido del capítulo
Internet de enrutamiento y
protocolos de enrutamiento
27.1 Introducción
Los capítulos anteriores describen el concepto fundamental de reenvío de datagramas, y explicar cómo IP utiliza una
tabla de reenvío para seleccionar un salto siguiente para cada datagrama. En este capítulo se explora un aspecto importante de
la tecnología de conexión en red: la propagación de información de enrutamiento que se utiliza para crear y actualizar tablas de
reenvío. El capítulo trata sobre cómo se construyen las tablas de reenvío, y explica cómo el software de enrutamiento actualiza
las tablas, según sea necesario.
El enrutamiento estático
El enrutamiento dinámico
El termino enrutamiento estatico que caracteriza a un enfoque que crea una tabla de reenvío cuando el sistema se inicia y
no cambia las entradas menos que un administrador los altera de forma manual. En contraste, el término enrutamiento
dinámico caracteriza un enfoque en el cual ruta
449
450 Internet de enrutamiento y protocolos de enrutamiento Cap. 27
software de propagación se ejecuta en el sistema y actualiza continuamente la tabla de reenvío para asegurar que cada
datagrama sigue una ruta óptima. Es decir, el software se comunica con otros sistemas para aprender rutas óptimas para
cada destino, y continuamente verifica las fallas de red que causan rutas para cambiar. Irónicamente, el enrutamiento
dinámico comienza exactamente igual que el enrutamiento estático mediante la carga de un conjunto inicial de rutas en una
tabla de reenvío cuando el sistema arranca.
Cuando se utiliza el enrutamiento estático? La mayoría de servidores utilizar el enrutamiento estático, especialmente
en los casos en que el host tiene una conexión de red y un único router se conecta a la red que el resto de Internet. Por
ejemplo, considere la arquitectura que La figura 27.1 ilustra. Cuatro anfitriones están unidos a una red Ethernet, que
conecta con el resto de Internet a través del router R 1.
Ethernet 128.10.0.0 / 16
R enrutador 1
(segundo)
Como muestra la figura, una tabla de reenvío estático con dos entradas es suficiente para un anfitrión típico. Una
entrada especifica la dirección de la red conectada directamente, y la otra entrada especifica que enrutador R 1 provee un Ruta
por defecto para todos los demás destinos. Cuando una aplicación genera un datagrama para un ordenador de la red local
(por ejemplo, un local de
Segundo. 27.3 En enrutamiento estático anfitriones y una ruta por defecto 451
impresora), la primera entrada en la tabla de reenvío IP dirige para entregar el datagrama directamente a su destino.
Cuando un datagrama está destinado a cualquier otro destino en Internet, la segunda entrada en la tabla dirige IP
para enviar el datagrama al router, R 1.
La cuestión es:
La mayoría de los servidores de Internet que utilizan el enrutamiento estático. tabla de reenvío del host
contiene dos entradas: una para la red a la que el anfitrión se une y una defecto entrada que dirige el
resto del tráfico a un router específico.
¿Puede un router en Internet utilizar el enrutamiento estático de la misma manera una gran cantidad hace? Aunque existen
casos en los que un router utiliza el enrutamiento estático, la mayoría de los routers que utilizan el enrutamiento dinámico. Para
entender un caso excepcional en el enrutamiento estático no es suficiente para un router, observe la figura 27.1 de nuevo. Podemos
imaginar que la cifra corresponde a una pequeña organización que es un cliente de un proveedor de Internet. Todo el tráfico que sale
A pesar de algunas excepciones, enrutamiento y rutas estáticas por defecto no son suficientes para la mayoría de los routers; el
uso se limita a las configuraciones especiales tales como la de arriba. Cuando dos proveedores de servicios de interconexión, tanto
necesitan intercambiar información de enrutamiento de forma dinámica. Para ver por qué, consideremos tres redes interconectadas
la red 3
R1 R2
la red 1 red 2
Cada router sabe acerca de las redes conectadas directamente. Por lo tanto, el router R 1 sabe acerca de las
fallas en la red de comodato y la congestión en Internet. En consecuencia, para asegurar que todos los routers obtener
información sobre cómo llegar a cada destino posible, cada router ejecuta el software que utiliza un protocolo de
propagación ruta para intercambiar información con otros routers. Cuando se aprende acerca de cambios en las rutas, el
software de enrutamiento actualiza la tabla de reenvío local. Además, dado que los routers intercambian información
periódicamente, la tabla de reenvío locales se actualiza continuamente.
En la figura 27.2, por ejemplo, enrutadores R 1 y R 2 intercambiarán información de enrutamiento a través de la red
3. Como resultado, el software de enrutamiento en I 2 se instalará una ruta a la red 1 y el software que se ejecuta en I 1 se
instalará una ruta a la red 2. Si el router R 2 accidentes, el software de la propagación de ruta en R 1 detectará que la red
2 ya no es accesible, y eliminará la ruta desde su tabla de reenvío. Más tarde, cuando R 2 viene de nuevo en línea, el
software de enrutamiento en I 1 determinará que la red 2 es accesible de nuevo, y se vuelva a instalar la ruta.
Para resumir:
Cada router ejecuta el software que aprende acerca de los destinos de otros routers pueden llegar
enrutamiento, e informa a otros routers acerca de los destinos que se puede alcanzar. El software de
enrutamiento utiliza la información entrante para actualizar la tabla de reenvío local de forma continua.
Hasta ahora, hemos descrito enrutamiento para la conectividad más trivial (es decir, situaciones que involucran sólo unos
pocos routers). Esta sección trata de un tema más amplio: el encaminamiento en la Internet global. La sección considera los
principios generales; secciones posteriores explican los protocolos específicos de propagación ruta.
Hemos dicho que un protocolo de propagación ruta permite un router para intercambiar información de enrutamiento
con otro. Sin embargo, este esquema no puede escalar a la totalidad de Internet - si un enrutador en Internet trató de
intercambiar información de enrutamiento con todos los demás routers, el tráfico resultante sería saturar el núcleo de la
Internet. Para limitar el tráfico de enrutamiento, Internet utiliza una jerarquía de enrutamiento. Routers y redes en Internet se
dividen en grupos. Todos los routers dentro de un grupo de intercambio de información de enrutamiento. Entonces, al menos
un encaminador (posiblemente más) en cada grupo se resume la información antes de pasarla a otros grupos.
¿Qué tan grande es un grupo? ¿Qué protocolo usan los routers dentro de un grupo? ¿Cómo se representa la información de
enrutamiento? ¿Qué protocolo usan los routers entre los grupos? Los diseñadores del sistema de enrutamiento de Internet no
dictaron un tamaño exacto ni tampoco especifican una representación de datos exacta o protocolo. En lugar de ello, los diseñadores
a propósito mantienen la arquitectura lo suficientemente flexible como para manejar una amplia variedad de organizaciones. Por
ejemplo, para dar cabida a las organizaciones de varios tamaños, los diseñadores evitarse especificando un tamaño mínimo o
máximo para un grupo. Para dar cabida a los protocolos de enrutamiento arbitrarias, los diseñadores decidieron permitir que cada
organización para elegir un protocolo de enrutamiento de forma independiente.
Segundo. 27.6 Concepto de Sistema Autónomo 453
La elección del tamaño de sistema autónomo se puede hacer por razones económicas, técnicas o administrativas. Por
ejemplo, considere una corporación multinacional. Puede ser menos costoso para la empresa para dividir en múltiples
sistemas autónomos, cada uno de los cuales tiene una conexión a un proveedor de Internet en un país determinado de tener
que actuar como un único sistema autónomo con una conexión con el resto de Internet. Otra razón para un tamaño específico
surge del protocolo de enrutamiento para ser utilizado - un protocolo puede generar tráfico de enrutamiento excesiva cuando
se utiliza en muchos routers (es decir, el tráfico de encaminamiento puede crecer como el cuadrado del número de routers).
Para resumir:
Ahora que entendemos el concepto de sistema autónomo, el enrutamiento en Internet se puede definir con mayor precisión.
Todos los protocolos de enrutamiento de Internet caen en una de dos categorías:
Después de definir las dos categorías, vamos a examinar un conjunto de ejemplos de los protocolos de enrutamiento que ilustran cada
categoría.
Los routers dentro de un sistema autónomo utilizan una Interior Gateway Protocol (IGP)
para intercambiar información de enrutamiento. Varios IGP están disponibles; cada sistema autónomo es libre de elegir su
propio IGP. Por lo general, un IGP es fácil de instalar y operar, pero un IGP puede limitar el tamaño o encaminamiento
complejidad de un sistema autónomo.
454 Internet de enrutamiento y protocolos de enrutamiento Cap. 27
Un router en un sistema autónomo utiliza una Exterior Gateway Protocol (EGP) para intercambiar información de
enrutamiento con un router en otro sistema autónomo. EGPs son generalmente más complejos de instalar y de operar que
IGP, pero EGPs ofrecen más flexibilidad y los gastos generales inferior (es decir, menos tráfico). Para guardar el tráfico,
un EGP resume la información de enrutamiento de un sistema autónomo antes de pasarlo a otro sistema autónomo. Más
importante, un aperos EGP limitaciones de la política que permiten a un administrador de sistema para determinar
exactamente qué información se libera fuera de la organización.
La figura 27.3 ilustra la jerarquía de enrutamiento de dos niveles utilizado en la Internet, mostrando dos routers en
dos sistemas autónomos.
R2 R5
EGP utilizado
... .
... .. ...
... ...
... ..
... ...
. . . R1 R4
...
.. .. .. .
IGP 1 usado
. . ... . ... IGP 2 usado
.. .. ...
.. ... ...
...
...
R3 . . . R6
... ..
Sistema Sistema
Autónomo 1 Autónomo 2
Figura 27.3 Ilustración de enrutamiento de Internet con un IGP utilizado en cada auto
sistema nomous y un EGP utilizado entre sistemas autónomos.
En la figura, 1 Sistema Autónomo (AS 1) ha elegido IGP 1 utilizar internamente y Autónoma Sistema 2 (AS 2) ha
elegido IGP 2. Todos los routers de AS 1 comunicarse mediante IGP 1, y todos los routers de AS 2 comunicarse
mediante IGP 2. R routers 1 y R 4 utilizar un EGP para la comunicación entre los dos sistemas autónomos. Es
decir, R 1 debe resumir la información de su sistema autónomo y enviar el resumen a R 4. Además, R 1 acepta un
resumen de R 4, y utiliza IGP 1 para propagar la información a los routers en el AS 1.
Puede parecer que en lugar de simplemente descubrir una ruta a cada destino, el software de enrutamiento debe
encontrar todos los caminos posibles y luego elegir uno que sea óptima. Aunque la Internet por lo general tiene varias
rutas entre cualquier origen y el destino, no hay un acuerdo universal sobre qué camino es óptima. Para entender por
qué, tenga en cuenta los requisitos de diversas aplicaciones. Para una aplicación de escritorio remoto, un camino con
menos retraso es óptima. Para un navegador descarga de un archivo gráfico grande, un camino con el máximo
rendimiento es óptimo. Para una aplicación de transmisión de audio que recibe audio en tiempo real, un camino con
menos fluctuación es óptima.
Usamos el término métrica de enrutamiento para referirse a una medida del camino que el software de enrutamiento
utiliza la hora de elegir una ruta. Aunque es posible utilizar el rendimiento, retardo, fluctuación o como una métrica de
enrutamiento, la mayoría del software de enrutamiento de Internet no lo hace. En su lugar, el enrutamiento de Internet típico
utiliza una combinación de dos parámetros: costo administrativo y número de saltos. En el enrutamiento en Internet, un salto
corresponde a una red intermedia (o router). Por lo tanto, el número de saltos para un destino da el número de redes
intermedias en el camino hacia el destino. Los costos administrativos se asignan manualmente, a menudo para controlar el
tráfico que puede utilizar caminos. Por ejemplo, supongamos que en una corporación dos caminos conectan el departamento
de contabilidad al departamento de nómina: un camino de 2-hop que incluye una red designada para ser utilizado para el tráfico
de clientes y una ruta de 3-hop que incluye redes para el tráfico interno de la empresa. Es decir, el camino más corto viola la
política de la empresa por la que atraviesa una red designada para atender a los clientes. En tales casos, un administrador de
red puede anular el coste real de la trayectoria de 2-hop mediante la asignación de la ruta de un coste administrativo de cuatro
saltos (es decir, el gestor reemplaza el coste real con un valor administrativa para lograr el efecto deseado). Enrutamiento de
software elegirá la ruta con el costo más bajo (es decir, la ruta con una métrica de tres saltos). Por lo tanto, el tráfico seguirá la
política de la empresa. La cuestión es:
Aunque la mayoría de los protocolos de enrutamiento de Internet están diseñados para utilizar una métrica
hopCount, es posible que un administrador de red para anular la métrica para hacer cumplir una política.
IGP y EGP difieren de manera importante con respecto a la métrica de enrutamiento: IGP utilizan métricas de
enrutamiento, pero EGPs no lo hacen. Es decir, cada sistema autónomo elige una métrica de enrutamiento y se encarga de
software de enrutamiento interno para enviar la métrica con cada ruta para recibir el software puede utilizar la métrica de
elegir las rutas óptimas. Fuera de un sistema autónomo, sin embargo, un EGP no trata de elegir un camino óptimo. En
cambio, el EGP se limita a señalar un camino. La razón es simple: porque cada sistema autónomo es libre de elegir una
métrica de enrutamiento, un EGP no puede hacer comparaciones significativas. Por ejemplo, supongamos que un sistema
autónomo informa del número de saltos a lo largo de una ruta hasta el destino
re y otro sistema autónomo informa el rendimiento a lo largo de un camino diferente para RE.
Un EGP que recibe los dos informes no puede elegir cuál de los dos caminos tiene menos
456 Internet de enrutamiento y protocolos de enrutamiento Cap. 27
costar porque no hay manera de convertir de lúpulo a la producción. Por lo tanto, un EGP sólo puede informar de la
existencia de un camino y no su coste. Podemos resumir:
Dentro de un sistema autónomo, el software IGP utiliza una métrica de enrutamiento para elegir un
camino óptimo para cada destino. software de EGP encuentra una ruta a cada destino, pero no
puede encontrar una ruta óptima, ya que no se puede comparar métricas de enrutamiento de
múltiples sistemas autónomos.
Un aforismo en redes sugiere que la respuesta a un anuncio es el enrutamiento de datos. El concepto es sencillo:
el tráfico de datos para un determinado destino fluye en la dirección exactamente opuesta de enrutamiento del tráfico. Por
ejemplo, supongamos que un sistema autónomo propiedad de ISP 1 contiene la red NORTE. Antes de tráfico puede llegar
con destino a N, ISP 1
debe anunciar una ruta a NORTE. Es decir, cuando el encaminamiento advertisement fluye hacia fuera, los datos empiezan a
fluir en. La figura 27.4 ilustra el flujo de datos en respuesta a anuncios de enrutamiento.
Un protocolo particular se ha convertido en el Exterior Gateway Protocol más utilizado en Internet. Conocido
como el Border Gateway Protocol (BGP), el protocolo ha sobrevivido a tres revisiones importantes. La versión 4 es el
estándar actual, y se abrevia oficialmente BGP-4. En la práctica, el número de versión se ha mantenido sin cambios
durante tanto tiempo que los profesionales de redes utilizan el término BGP para referirse a la versión 4.
Segundo. 27.9 El Border Gateway Protocol (BGP) 457
Enrutamiento entre sistemas autónomos. Debido a que está destinado a ser utilizado como
un Exterior Gateway Protocol, BGP proporciona información de enrutamiento a nivel de
sistema autónomo. Es decir, todas las rutas se dan como un camino de sistemas
autónomos. Por ejemplo, la ruta a un destino dado puede consistir en sistemas autónomos 17,
2, 56,
y 12. No hay uso de la métrica de enrutamiento, y no hay manera de BGP para proporcionar detalles
acerca de los routers dentro de cada sistema autónomo en el camino.
Provisión para las políticas. BGP permite que el emisor y el receptor para hacer cumplir las
políticas. En particular, un administrador puede configurar BGP para restringir qué rutas BGP
notifica a los de fuera.
Instalaciones para el tránsito de enrutamiento. BGP clasifica cada sistema autónomo como una tránsito
sistema si está de acuerdo para pasar el tráfico a través de otro sistema autónomo, o como una
talón sistema si no lo hace. Del mismo modo, el tráfico que pasa a través de camino a otro AS
se clasifica como el tráfico de tránsito. La clasificación permite BGP para distinguir entre los ISP
y otros sistemas autónomos. Más importante, BGP permite a una empresa para clasificar a sí
mismo como un talón, incluso si se trata de multitarjeta ( es decir, una corporación con múltiples
conexiones externas puede negarse a aceptar el tráfico de tránsito).
Transporte fiable. BGP utiliza TCP para todas las comunicaciones. Es decir, un programa
de BGP en un router en un sistema autónomo forma una conexión TCP a un programa
de BGP en un router en otro sistema autónomo y, a continuación, envía los datos a
través de la conexión. TCP garantiza que los datos llegan en el orden correcto y que no
faltan datos.
BGP proporciona el pegamento que mantiene juntos enrutamiento de Internet - en el centro de la Internet, Tier-1 ISP
utilizan BGP para intercambiar información de enrutamiento y aprender acerca de los otros clientes. Para resumir:
El Border Gateway Protocol (BGP) es el Exterior Gateway Protocol que los ISPs Tier-1
utilizan para el intercambio de información entre los sistemas autónomos en el centro de
Internet de enrutamiento; la versión actual es BGP-4.
458 Internet de enrutamiento y protocolos de enrutamiento Cap. 27
los Protocolo de información de enrutamiento (RIP) fue uno de los primeros protocolos de pasarela interior utilizados en
Internet. RIP tiene las siguientes características:
Enrutamiento dentro de un sistema autónomo. RIP está diseñado como un protocolo de pasarela
interior utilizado para pasar información entre los routers dentro de un sistema autónomo.
Hop medición de cuentas. RIP medidas de distancia en la red saltos, donde cada red entre
el origen y el destino cuenta como un solo salto; RIP cuenta una red conectada
directamente como un salto de distancia.
Transporte no fiable. RIP utiliza UDP para transferir mensajes entre enrutadores.
Entrega de difusión o multidifusión. RIP está diseñado para su uso sobre tecnologías de red de
área local que soportan la difusión o multidifusión (por ejemplo, Ethernet). La versión 1 de los
mensajes broadcast RIP; versión 2 permite la entrega a través de multidifusión.
Para el apoyo CIDR Y en subredes. RIP versión 2 incluye una máscara de dirección con
cada dirección de destino.
Para el apoyo Ruta por defecto de propagación. Además de especificar destinos explícitos,
RIP permite un router para anunciar una Ruta por defecto.
Distancia algoritmo vectorial. RIP utiliza el vector de distancia enfoque de enrutamiento se define
en el algoritmo 18,3 †.
Versión pasiva para los hosts. Aunque sólo un router puede propagar la información de
enrutamiento, RIP permite que un anfitrión para escuchar pasivamente y actualizar su tabla de
reenvío. RIP pasiva es útil en redes en una gran cantidad selecciona entre múltiples routers.
Para entender cómo se propaga rutas RIP, recuerdan cómo funciona el enrutamiento de vector de distancia.
Cada mensaje de salida contiene un anuncio que muestra las redes que el emisor puede llegar a lo largo con una
distancia a cada uno. Cuando se recibe un anuncio, el software RIP utiliza la lista de destinos para actualizar la tabla
de reenvío local. Cada entrada en un RIP anuncio consiste en un par:
dónde distancia es el número de saltos al destino. Cuando llega un mensaje, si el receptor no tiene una ruta
a un destino o si se anuncia una distancia anunciada es más corta que la distancia de la ruta actual, el
receptor reemplaza su recorrido con una ruta al remitente.
La principal ventaja de RIP es la simplicidad. RIP requiere poca configuración - un administrador simplemente
comienza RIP que se ejecuta en cada router en la organización y permite a los routers para transmitir mensajes entre sí.
Después de un breve periodo de tiempo, todos los routers de la organización tendrán rutas hacia todos los destinos.
RIP también se ocupa de la propagación de una ruta por defecto. La organización sólo tiene que configurar uno
de sus routers para tener un defecto (normalmente, una organización elige un router que se conecta a un proveedor de
Internet). RIP propaga la ruta por defecto a todos los demás routers de la organización, lo que significa que cualquier
datagrama enviado a un destino fuera de la organización será remitida al ISP.
El formato del mensaje RIP ayuda a explicar cómo funciona un protocolo de enrutamiento vector distancia. La figura 27.5
ilustra un mensaje de actualización de RIP.
0 8 dieciséis 24 31
COMANDO (1-5) VERSIÓN 2) Debe ser cero
DIRECCIÓN DE RED 1
Distancia al NET 1
DIRECCIÓN DE RED 2
DISTANCIA A NET 2
. . .
Como muestra la figura, cada entrada contiene la dirección IP de un destino y una distancia a ese destino. Además, para
permitir RIP para ser utilizado con CIDR o subred de direccionamiento, una entrada contiene una máscara de dirección de 32 bits.
Cada entrada tiene también una dirección del siguiente salto, y dos campos de 16 bits que identifican la entrada como una
dirección IP y proporcionan una etiqueta utilizada para agrupar las entradas juntos. En total, cada entrada contiene veinte octetos.
Podemos resumir:
460 Internet de enrutamiento y protocolos de enrutamiento Cap. 27
RIP es un protocolo de pasarela interior que utiliza un algoritmo de vector de distancia para propagar la
información de enrutamiento.
El formato del mensaje RIP ilustra una desventaja de los protocolos de vector de distancia: el tamaño de un
mensaje es proporcional al número de redes que se puede alcanzar. El envío de mensajes RIP introduce un retardo, y los
mensajes de procesamiento RIP consume muchos ciclos de CPU. El retraso significa que los cambios de ruta se
propagan lentamente, un router a la vez. Por lo tanto, aunque RIP funciona bien entre algunos routers, que no escala
bien.
Para satisfacer la demanda de un protocolo de enrutamiento que puede escalar a grandes organizaciones, la IETF
ideó un IGP conocido como el Open Shortest Path First Protocolo (OSPF). El nombre se deriva de la utilización de
algoritmo SPF de Dijkstra que calcula los caminos más cortos. OSPF tiene las siguientes características:
Soporte CIDR. Para acomodar CIDR direccionamiento, OSPF incluye una máscara de dirección de
32 bits con cada dirección.
Rutas importadas. OSPF permite a un router para introducir rutas aprendidas de otro medio (por
ejemplo, desde BGP).
Soporte para las métricas. OSPF permite a un administrador para asignar un costo a cada ruta.
Para resumir:
OSPF es un protocolo de pasarela interior que utiliza un algoritmo de estado de enlace para propagar la
información de enrutamiento. Los routers usan algoritmo SPF de Dijkstra para calcular trayectorias más
cortas.
Segundo. 27.12 El Open Shortest Path Primer Protocolo (OSPF) 461
Recuerde del Capítulo 18 que el enrutamiento de estado de enlace utiliza una abstracción gráfico-teórico.
Aunque OSPF permite una relación compleja entre las redes y un gráfico, un ejemplo sencillo ayudará a explicar el
concepto básico †. Considere la red y el gráfico asociado ilustra en la figura 27.6.
R1 R2
R1 R2
R3 R3
R4
R4
R5 R6 R5 R6
(un) (segundo)
La figura muestra una gráfica típica OSPF en el que cada nodo corresponde a un router. Un borde en el gráfico
corresponde a una conexión entre un par de routers (es decir, una red). Para seguir un algoritmo de estado de enlace,
cada par de routers conectados por una red sonda periódicamente entre sí y después transmitir un mensaje de estado de
enlace a otros routers. Todos los routers reciben el mensaje de difusión; cada uno utiliza el mensaje para actualizar su
copia local de la gráfica, y se vuelve a calcular los caminos más cortos cuando cambia el estado.
Una característica particular que lo hace OSPF más complejo que otros protocolos de enrutamiento también hace
que sea más potente: el enrutamiento jerárquico. Para lograr una jerarquía, OSPF permite un sistema autónomo que se
repartió con fines de enrutamiento. Es decir, un administrador puede dividir routers y redes en un sistema autónomo en
subconjuntos que OSPF llamadas
áreas. Cada router está configurado para saber el límite del área (es decir, exactamente lo que otros routers están en su área).
Cuando se ejecuta OSPF, routers dentro de un determinado intercambio de mensajes linkstate área periódicamente.
Además de intercambiar información dentro de un área, OSPF permite la comunicación entre las zonas. Un router
en cada área está configurado para comunicarse con un router en una o más otra área (s). Los dos routers resumen la
información de enrutamiento que han aprendido de otros routers dentro de sus respectivas áreas, y luego intercambian el
resumen. Así, en lugar de la radiodifusión a todos los routers del sistema autónomo, OSPF limita las emisiones de estado
de enlace a los routers dentro de un área. Como resultado de la jerarquía, OSPF puede escalar para manejar sistemas
autónomos mucho más grandes que otros protocolos de enrutamiento.
La cuestión es:
Originalmente diseñado por Digital Equipment Corporation para formar parte de DECNET V, el IS-IS (Sistema
Intermedio a Sistema Intermedio †) es un IGP. IS-IS fue creado alrededor del mismo tiempo que OSPF, y los dos
protocolos son similares en muchos aspectos. Ambos usan el enfoque de estado de enlace y emplean el algoritmo de
Dijkstra para calcular trayectorias más cortas. Además, ambos protocolos requieren dos routers adyacentes para probar
periódicamente el enlace entre ellos y transmitir un mensaje de estado.
Las principales diferencias entre OSPF y el original IS-IS se pueden resumir en:
IS-IS era de propiedad (propiedad de Digital) y OSPF se creó como una abierto estándar, disponible
para todos los proveedores.
OSPF se diseñó para funcionar sobre IP; IS-IS fue diseñado para funcionar sobre CLNS (parte de
la pila de protocolos OSI nefasto).
Con el tiempo, OSPF ganó muchas características. Como resultado, IS-IS ahora tiene menos
sobrecarga.
Cuando los protocolos fueron inventados inicialmente, la apertura y la dedicación de OSPF para IP hacen que sea
mucho más popular que el IS-IS. De hecho, IS-IS fue casi completamente olvidado. Con el paso de los años, la
popularidad de OSPF alentó a la IETF para añadir características adicionales. Irónicamente, en la década de 2000, diez
años después de los protocolos fueron diseñados, varias cosas cambiaron para dar IS-IS una segunda oportunidad.
Digital Equipment Corporation se había disuelto, y IS-IS ya no se consideraba valiosa propiedad patentada. UN
† La nomenclatura sigue la terminología de digital en la que un router se llama una Sistema intermedio y un anfitrión se llama una Sistema de
terminar.
Segundo. 27.15 Sistema Intermedio - Sistema Intermedio (IS-IS) 463
nueva versión de IS-IS se definió para integrarlo con IP e Internet. Debido a que OSPF se construyó para IPv4, una versión
completamente nueva tuvo que ser desarrollado para manejar las direcciones IPv6 más grandes. Los mayores proveedores
de Internet han crecido a un tamaño donde el exceso de carga en OSPF hace IS-IS más atractivo. Como resultado, IS-IS ha
comenzado a hacer una reaparición.
Hasta ahora, hemos hablado de enrutamiento unicast. Es decir, hemos tenido en cuenta los protocolos de enrutamiento que
se propagan información sobre destinos que cada uno tiene una dirección estática y una ubicación que no cambia. Uno de los
objetivos de diseño para la propagación de ruta de unidifusión es estabilidad - cambios continuos en rutas no son deseables porque
conducen a una mayor inestabilidad y los datagramas llegan fuera de orden. Así, una vez un protocolo de enrutamiento unicast
encuentra un camino más corto, por lo general conserva la ruta hasta un fracaso hace que el camino inutilizable.
Un grupo de multidifusión IP es anónimo de dos maneras. En primer lugar, ni un remitente ni el receptor sabe (ni
pueden averiguar) la identidad o el número de miembros del grupo. En segundo lugar, los routers y los host no saben qué
aplicaciones enviar un datagrama a un grupo debido a una aplicación arbitraria puede enviar un datagrama a cualquier grupo
de multidifusión en cualquier momento. Es decir, la pertenencia a un grupo de multidifusión sólo se define un conjunto de
receptores - un remitente no necesita unirse a un grupo de multidifusión antes de enviar un mensaje al grupo.
464 Internet de enrutamiento y protocolos de enrutamiento Cap. 27
Para resumir:
27.16.2 IGMP
Cómo se incorpora un host o dejar un grupo de multidifusión? Existe un protocolo estándar que permite a un
receptor informen a un router cercano cada vez que el huésped necesita para unirse o abandonar un grupo de
multidifusión particular. Conocido como el Protocolo Internet Group Multicast (IGMP), el protocolo sólo se utiliza en la red
entre un host y un router. Además, el protocolo define el anfitrión, no de la aplicación, para ser un miembro del grupo, y
especifica nada acerca de las aplicaciones. Si hay varias aplicaciones en un equipo dado unen a un grupo de
multidifusión, el anfitrión debe hacer copias de cada datagrama se recibe para aplicaciones locales. Cuando la última
aplicación de un nodo deja un grupo, el anfitrión utiliza IGMP para informar al router local que ya no es un miembro del
grupo.
Cuando un router se entera de que un anfitrión en una de sus redes se ha unido a un grupo de multidifusión, el router debe
establecer una ruta de acceso al grupo y propagar los datagramas que recibe para el grupo al host. Por lo tanto, los routers, no
anfitriones, son responsables de la propagación de la información de enrutamiento de multidifusión.
pertenencia a un grupo dinámico y apoyo a los remitentes anónimos hace enrutamiento multicast generalpurpose
extremadamente difícil. Además, el tamaño y la topología de los grupos varían considerablemente entre aplicaciones. Por
ejemplo, las teleconferencias a menudo crea grupos pequeños (por ejemplo, entre dos y cinco miembros) que pueden
estar dispersos geográficamente o en la misma organización. Una aplicación de transmisión potencialmente puede crear
un grupo con millones de miembros que abarcan todo el mundo.
Para dar cabida a la pertenencia dinámica, los protocolos de enrutamiento de multidifusión deben ser capaces de cambiar las
rutas de forma rápida y continuamente. Por ejemplo, si un usuario en Francia se une a un grupo de multidifusión que tiene miembros
en los EE.UU. y Japón, software de enrutamiento de multidifusión primero debe encontrar otros miembros del grupo, y luego crear
una estructura óptima de reenvío. Más importante, porque un usuario arbitrario puede enviar un datagrama al grupo, la información
acerca de las rutas debe extenderse más allá de los miembros del grupo. En la práctica, los protocolos de multidifusión han seguido
tres enfoques diferentes para el reenvío de datagramas:
inundaciones de la pasa
Configuración-Y-Tunneling
Segundo. 27.16 enrutamiento multicast 465
Flood-Y-ciruela pasa. Inundaciones y ciruela es ideal en una situación en la que el grupo es pequeño y todos los
miembros se unen a redes de área local contiguos (por ejemplo, un grupo dentro de una corporación). Inicialmente, los
enrutadores cada datagrama a todas las redes. Es decir, cuando llega un datagrama de multidifusión, un router transmite el
datagrama en todas las LAN conectadas directamente a través de multidifusión de hardware. Para evitar bucles de
enrutamiento, protocolos de inundación-and-ciruela utilizan una técnica conocida como Reverse Path Radiodifusión (RPB) que
rompe los ciclos. Mientras que la etapa de inundación producto, los routers intercambian información sobre la pertenencia al
grupo. Si un router aprende que no hay hosts en una red dada son miembros del grupo, el router deja de reenvío de
multidifusión a la red (es decir, “poda” de la red desde el conjunto).
Core-Based Discovery. Aunque inundación-and-ciruela pasa y configuración-y-túnel cada manejan bien casos
extremos, se necesita una técnica que permite multidifusión a escala con elegancia de un pequeño grupo en un área para un
grupo grande con miembros en ubicaciones arbitrarias. Proporcionar crecimiento suave, algunos protocolos de enrutamiento
de multidifusión designan una núcleo
dirección unicast para cada grupo de multidifusión. Cada vez que un router R 1 recibe un datagrama de multidifusión que debe
ser transmitida a un grupo, R 1 encapsula el datagrama de multidifusión en un datagrama unicast y reenvía el datagrama
unicast a la dirección unicast núcleo del grupo. A medida que el datagrama unicast viaja a través de Internet, cada router
examina el contenido. Cuando el datagrama llega a un router R 2 que participa en el grupo, R 2 elimina y procesa el mensaje de
multidifusión. R 2 utiliza el enrutamiento de multidifusión para enviar el datagrama a los miembros del grupo. Solicitudes para
unirse al grupo sigue el mismo patrón - si se recibe una solicitud para unirse a un grupo, R 2 agrega una nueva ruta a su tabla de
reenvío de multidifusión y comienza a enviar una copia de cada uno de datagramas de multidifusión a R 1. Por lo tanto, el
conjunto de routers de recibir un grupo de multidifusión particular, crece desde el núcleo hacia el exterior. En términos de
teoría de grafos, forman los routers una árbol.
Aunque se han propuesto muchos protocolos de enrutamiento de multidifusión; Actualmente no existe un enrutamiento multicast
Vector Distancia Protocolo de enrutamiento multicast (DVMRP). Un protocolo utilizado por el programa UNIX mrouted
y la Internet Backbone de multidifusión (MBONE), DVMRP realiza multidifusión local, y utiliza IP-en-IP
encapsulación para enviar datagramas de multidifusión de un sitio en Internet a otro. Más información sobre el
MBONE se puede encontrar en:
Árboles sobre la base del Núcleo (CBT). Un protocolo particular en la que los routers construir un árbol de entrega desde un
punto central para cada grupo. TCC se basa en enrutamiento unicast para llegar a un punto central.
Protocolo Independiente Multicast - Sparse Mode (PIM-SM). Un protocolo que utiliza el mismo enfoque que la TCC para
formar un árbol de encaminamiento de multidifusión. Los diseñadores eligieron el término protocolo independiente hacer hincapié
en que aunque se utilizan datagramas unicast a destinos remotos en contacto con la hora de establecer el reenvío de
multidifusión, PIM-SM no depende de ningún protocolo de enrutamiento unicast particular.
Protocolo Multicast Independiente - Modo Denso (PIM-DM). Un protocolo diseñado para su uso dentro de una organización.
Routers que utilizan emisión PIM-DM (es decir inundación) paquetes de multidifusión a todos los lugares dentro de la organización.
Cada router que no tiene ningún miembro de un grupo en particular envía de vuelta un mensaje a ciruela pasa el árbol de enrutamiento
de multidifusión (es decir, una solicitud para detener el flujo de paquetes). El esquema funciona bien para las sesiones de corta
duración de multidifusión (por ejemplo, unos pocos minutos), ya que no requiere de instalación antes de que comience la transmisión.
Extensiones de multidifusión al camino libre más corta Primer Protocolo (MOSPF). En lugar de un protocolo de enrutamiento de
multidifusión de propósito general, MOSPF está diseñado para pasar rutas de multidifusión entre los routers dentro de una
organización. Por lo tanto, en lugar de un enfoque de multidifusión de propósito general, MOSPF se basa en OSPF y utiliza las
instalaciones de LSR.
Protocolo Tipo
PIM-DM-Flood-Y de ciruela
A pesar de veinte años de investigación y muchos experimentos, de propósito general de multidifusión de Internet no ha
tenido éxito. Incluso las aplicaciones de colaboración no han proporcionado un incentivo suficiente. Podemos resumir los
resultados de la siguiente manera:
Segundo. 27.16 enrutamiento multicast 467
27.17 Resumen
La mayoría de servidores utilizan el enrutamiento estático en el que la tabla de reenvío se inicializa en el arranque del sistema;
enrutadores utilizan enrutamiento dinámico en el que el software de la propagación de ruta se actualiza la tabla de reenvío de forma
continua. En términos de enrutamiento, la Internet se divide en una serie de sistemas autónomos. Protocolos utilizados para pasar
rutas entre sistemas autónomos son conocidos como Exterior Gateway Protocols (EGP); protocolos utilizados para pasar información
de encaminamiento dentro de un sistema autónomo son conocidos como protocolos de puerta de enlace interior (IGP).
El Border Gateway Protocol (BGP) es el EGP primaria en Internet; ISPs Tier-1 utilizan BGP para
informarse mutuamente sobre sus clientes. IGP incluye RIP, OSPF e IS-IS.
Debido multidifusión de Internet permite pertenencia a un grupo dinámico y una fuente arbitraria puede enviar a un
grupo de multidifusión sin ser miembro, el problema de la propagación de ruta multidifusión es difícil. Aunque se han
propuesto varios protocolos de enrutamiento de multidifusión, no existe una tecnología de multidifusión en toda la Internet.
CEREMONIAS
27.1 Enumerar las dos grandes categorías de enrutamiento de Internet, y explicar cada uno.
27.2 ¿Qué dos entradas son necesarios en la tabla de reenvío de un huésped típico?
27.3 Supongamos que todos los routers de Internet contienen una ruta predeterminada; muestran que debe existir un bucle de enrutamiento.
27.6 Supongamos que un enrutador en una organización utiliza un protocolo de enrutamiento para declarar que un determinado destino es
diez saltos de distancia cuando el destino es de sólo tres saltos de distancia. Es la declaración necesariamente un error? Explique.
27.7 ¿Cuál es la consecuencia esperada cuando un router anuncia rutas a un destino determinado?
27.10 ¿Qué tipo de algoritmo de encaminamiento sí emplea RIP, y donde se utiliza RIP?
27.12 Cuando un router recibe un mensaje RIP, ¿cómo el router dividir cada dirección IP en una
¿prefijo y sufijo?
468 Internet de enrutamiento y protocolos de enrutamiento Cap. 27
27.13 Escribir un programa informático que lee un mensaje de actualización RIP e imprime el contenido del
cada campo.
27.14 límites RIP valores de distancia a un máximo de 16 saltos. Idear un ejemplo in- corporativa
Extranet que tiene más de 16 routers y más de 16 redes, pero todavía puede utilizar RIP.
27.18 ¿Qué protocolo tiene menos gastos generales, OSPF o IS-IS? ¿Cuál tiene más características?
27.20 ¿Cuáles son los tres métodos principales utilizados para enviar datagramas de multidifusión?
27.21 Supongamos que usted y dos amigos en los colegios distantes quieren participar en una de 3 vías
teleconferencia usando multidifusión IP. ¿Qué protocolos de enrutamiento de multidifusión que funcionaría mejor? ¿Por qué?
27.22 Aunque cada grupo de multidifusión IP necesita una dirección de multidifusión IP única, utilizando un centro
servidor para asignar direcciones únicas crea un cuello de botella central. Idear un esquema que permita un conjunto de
equipos para elegir una dirección de multidifusión al azar y resolver un conflicto, caso de que surgiese.
27.23 El tráfico generado por las inundaciones y ciruela limita el tamaño de la región de red a través
que se puede utilizar. Estimar el tráfico total en una red si los grupos de multidifusión G, cada uno generan tráfico
a una velocidad de P paquetes por segundo, cada paquete contiene B bits, N redes constituyen la intranet, y cada
red contiene al menos un oyente para cada grupo.
27.25 ¿Qué protocolos de multidifusión permiten un mensaje de multidifusión a ser enviado antes de que el protocolo tiene
rutas establecidas?
PARTE V Otros
aspectos de Redes
capítulos
28.1 Introducción
Los primeros capítulos consideran las propiedades fundamentales de los sistemas de comunicaciones de datos, y
discuten las relaciones entre las señales, las frecuencias, ancho de banda, la codificación de canal, y la transmisión de datos.
El capítulo explica las medidas de los sistemas de transmisión de datos subyacentes, discutir tamaño de la red de datos, y
explique que cada tecnología de red se clasifica como una PAN, LAN, MAN, WAN o.
En este capítulo se continúa la discusión considerando el tema del rendimiento de la red. El capítulo trata sobre
las medidas cuantitativas de las redes, y explica cómo los protocolos y tecnologías de reenvío de paquetes se pueden
implementar mecanismos que proporcionan prioridad para un cierto tráfico.
De manera informal, se utiliza el término velocidad para describir el rendimiento de la red, y se refieren a
baja velocidad o alta velocidad redes. Sin embargo, estas definiciones son inadecuadas porque las tecnologías de red cambian
tan rápidamente que una red clasificada como de “alta velocidad” puede llegar a ser la velocidad media o baja en tan sólo tres o
cuatro años. Por lo tanto, en lugar de descripciones cualitativas, los científicos y los ingenieros utilizan, las medidas cuantitativas
formales para especificar con precisión el rendimiento de red. Después de revisar las medidas básicas, vamos a explicar la forma
en que se utilizan para implementar los servicios por niveles. Aunque los principiantes a menudo prefieren descripciones
informales, las medidas cuantitativas son importantes porque hacen posible la comparación de las características exactas de dos
redes y construir mecanismos que proporcionan mayor
471
472 Rendimiento de la red (QoS) y DiffServ Cap. 28
prioridad para un cierto tráfico. Figura 28.1 se enumeran las principales medidas de rendimiento de la red, y las sucesivas secciones
explican cada uno.
Medida Descripción
Latencia (retraso) El tiempo requerido para transferir datos a través de una red
Rendimiento (capacidad) La cantidad de datos que puede ser transferida por unidad de
tiempo
La primera propiedad de las redes que se puede medir cuantitativamente es estado latente o retrasar. Latencia
especifica cuánto tiempo se necesita para que los datos viajan a través de una red de un ordenador a otro; que se mide en
fracciones de segundo. Los retrasos a través de Internet dependen de la infraestructura subyacente, así como la ubicación
del par específico de los ordenadores que se comunican. Aunque los usuarios se preocupan por el retraso total de una red,
los ingenieros necesitan mediciones más precisas. Por lo tanto, los ingenieros generalmente informan tanto los retardos
máximo y promedio, y dividen un retraso en varias partes constituyentes. Figura
Tipo Explicación
Retardo de propagación El tiempo requerido para que una señal de viajar a través
un medio de transmisión
Retraso del servidor El tiempo requerido para que un servidor responda a una solicitud y
enviar una respuesta
Retardo de propagación. Cierto retraso en una red surge porque una señal requiere una pequeña cantidad de tiempo
para viajar a través de un medio de transmisión. En general, los retardos de propagación son proporcionales a la distancia
abarcó. Incluso con cables largos, una LAN típica utilizada dentro de un mismo edificio tiene un retardo de propagación
bajo un milisegundo. A pesar de estos retrasos parecen irrelevantes para un ser humano, una computadora moderna
puede ejecutar más de cien mil instrucciones en un milisegundo. Por lo tanto, un retraso de milisegundos es significativo
cuando un conjunto de equipos necesidad de coordinar (por ejemplo, en la industria financiera, en el momento exacto en
un orden común llega determina si una orden es aceptada). Una red que utiliza un satélite GEO tiene mucho mayor retraso
- incluso a la velocidad de la luz, se necesitan cientos de milisegundos para un poco de viajar al satélite y de vuelta a la
tierra.
Retardo de acceso. Muchas redes utilizan medios compartidos. El conjunto de equipos que comparten un medio debe
competir por el acceso. Por ejemplo, una red inalámbrica Wi-Fi utiliza un / CA método CSMA de acceso al medio. Tales retrasos
son conocidos como retrasos en el acceso. retrasos en el acceso dependen del número de estaciones que compiten por el acceso
y la cantidad de tráfico de cada estación envía. retrasos en el acceso siguen siendo pequeños y fijos a menos que el medio está
sobrecargado.
Retardo de conexión. Un dispositivo electrónico en una red (por ejemplo, un conmutador de capa 2 o router) debe calcular
un siguiente salto para cada paquete antes de transmitir el paquete a través de una interfaz de salida. El cálculo a menudo
implica la búsqueda en la tabla, lo que significa acceso a la memoria. En algunos dispositivos, se necesita tiempo adicional para
enviar el paquete a través de un mecanismo de comunicación interna tal como un bus o tela. El tiempo requerido para calcular un
siguiente salto y comenzar la transmisión se conoce como una conmutación de demora. CPU rápido y hardware de propósito
especial han hecho retrasos de conmutación entre los menos significativos retrasos en una red de ordenadores.
Retraso del servidor. Aunque no forma parte de una red en sí, los servidores son esenciales para la mayoría de la
comunicación. El tiempo requerido para que un servidor para examinar una solicitud y calcular y enviar una respuesta constituye una
parte significativa de retardo global. Servidores de colas las solicitudes de entrada, lo que significa que el retraso del servidor es
variable y depende de la carga actual. En muchos casos, la percepción de un usuario de Internet retraso surge de retraso en el
servidor en lugar de retrasos en la red.
474 Rendimiento de la red (QoS) y DiffServ Cap. 28
Una segunda propiedad fundamental de las redes que se puede medir cuantitativamente es el capacidad de una red,
que se expresa a menudo como el máximo rendimiento que la red puede sostener. El rendimiento es una medida de la
velocidad a la que los datos pueden ser enviados a través de la red, se especifica en bits por segundo (bps). La mayoría de las
redes de comunicación de datos ofrecen una velocidad de producción de más de 1 Mbps, y las redes de alta velocidad
funcionan más rápido que 1 Gbps. Como hemos visto, sin embargo, surgen casos especiales en los que el rendimiento de
una red con menos de 1 Kbps.
Debido a que el rendimiento se puede medir de varias maneras, hay que tener cuidado de especificar exactamente
lo que se ha medido. Hay varias posibilidades:
Los vendedores anuncian a menudo la capacidad teórica de sus equipos y el rendimiento logrado en
condiciones óptimas. La capacidad de hardware es a menudo citado como una aproximación del rendimiento
potencial debido a la capacidad da un límite superior en el rendimiento - es imposible para un usuario enviar datos
más rápido que la velocidad a la que el hardware puede transferir bits.
Los usuarios no se preocupan por la capacidad del hardware subyacente - que sólo están interesados en la velocidad a la
que los datos pueden ser transferidos. Normalmente, los usuarios evaluar la velocidad de datos efectiva que una aplicación logra
mediante la medición de la cantidad de datos transferidos por unidad de tiempo; el termino goodput se utiliza a veces para describir
la medida. La tasa de transferencia útil es menor que la capacidad del hardware porque protocolos imponen cabeza - un poco de
capacidad de red no está disponible para los datos del usuario ya que los protocolos:
La desventaja de usar goodput como medida surge porque la cantidad de sobrecarga depende de la pila de
protocolo que se utiliza. Además del transporte, Internet, y 2 protocolos de la capa, goodput depende del protocolo
de aplicación. Por ejemplo, considere el uso de la Protocolo de transferencia de archivos (FTP) para medir goodput
través de una red Ethernet. FTP utiliza TCP, que utiliza IP. Además, FTP no comprime los datos antes de la
transmisión. En lugar de ello, FTP coloca datos de usuario en segmentos TCP, TCP encapsula cada segmento en
un datagrama IP, e IP encapsula cada datagrama en una trama de Ethernet.
Segundo. 28.4 Rendimiento, capacidad y Goodput 475
Por lo tanto, cada cuadro tiene una cabecera de Ethernet y el campo CRC, una cabecera de datagramas IP, y una cabecera TCP. Si un
usuario elige una aplicación de transferencia de archivos alternativos o se utiliza una pila de protocolo alternativo, el goodput puede
Aunque proporciona una medida de la velocidad efectiva a la que los datos pueden ser
transferidos a través de una red, el goodput depende de la aplicación.
En la práctica, la terminología que utilizan los profesionales de redes para describir rendimiento de la red o de la
capacidad de la red puede ser confuso. Por ejemplo, los capítulos sobre las comunicaciones de datos definen el ancho de
banda de un canal, y explicar la relación entre el ancho de banda de hardware y la velocidad de datos máxima. Por desgracia,
los profesionales de redes suelen utilizar los términos ancho de banda y velocidad como sinónimos de rendimiento. Por lo
tanto, uno podría escuchar a alguien decir que una red en particular tiene una “velocidad de 1 Gbps.” Por otra parte, algunos
anuncios utilizan la frase “ancho de banda de 1 Gbps.” En un intento de distinguir entre los dos usos del ancho de banda, reserva
de ingenieros ancho de banda significar ancho de banda analógico, y utilizar el término ancho de banda digital como sinónimo
de el rendimiento. A pesar de estas declaraciones son comunes, pueden ser confuso porque el rendimiento, retardo y ancho de
banda son propiedades independientes.
De hecho, el rendimiento es una medida de la capacidad, no la velocidad. Para entender la relación, imaginar una red
a ser un camino entre dos ubicaciones y los paquetes que viajan por la red a ser coches que circulan por la carretera. El
caudal determina el número de coches pueden entrar en el camino de cada segundo, y el retardo de propagación determina
el tiempo que tarda un solo coche para recorrer el camino de una ciudad a otra. Por ejemplo, un camino que puede aceptar
un coche cada cinco segundos tiene un rendimiento de 0.2 coches por segundo. Si un automóvil requiere 30 segundos para
atravesar toda la carretera, la carretera tiene un retardo de propagación de 30
segundos. Ahora considere lo que sucede si se abre un segundo carril de la carretera (es decir, la capacidad se duplica).
Será posible que los dos coches para entrar en cada cinco segundos, por lo que el rendimiento se ha duplicado a 0.4 coches
por segundo. Por supuesto, la 30 segundo retraso se mantendrá sin cambios, ya que cada coche todavía tiene que recorrer
toda la distancia. Por lo tanto, cuando se piensa en medidas de redes, recuerda que:
El retardo de propagación especifica el tiempo de un solo bit permanece en tránsito en una red.
Rendimiento, que especifica cuántos bits pueden entrar en la red por unidad de tiempo, mide la
capacidad de red.
Siempre se puede comprar más rendimiento, pero no se puede comprar retraso inferior.
476 Rendimiento de la red (QoS) y DiffServ Cap. 28
La analogía con un camino ayuda a explicar el aforismo: la adición de más carriles a una carretera aumentará el
número de vehículos que pueden entrar en la carretera por unidad de tiempo, pero no va a disminuir el tiempo total
necesario para recorrer el camino. Redes siguen el mismo patrón: la adición de más vías de transmisión paralelas
aumentará el rendimiento de la red, pero el retardo de propagación, que depende de la distancia abarcado, no
disminuirán.
28.6 Jitter
Una tercera medida de las redes está adquiriendo importancia como las redes se utilizan para la transmisión de
voz en tiempo real y video. La medida, que se conoce como una red de
estar nervioso, evalúa la variación en demora. Dos redes pueden tener el mismo retraso medio, pero diferentes valores de
fluctuación. En particular, si todos los paquetes que atraviesan una red dada tienen exactamente el mismo retardo, RE, la red no tiene
ninguna fluctuación. Sin embargo, si los paquetes se alternan entre un retraso de D + ε y RE- ε, La red tiene el mismo retardo
promedio, pero tiene una fluctuación distinto de cero.
Para entender por qué es importante la fluctuación, considerar el envío de voz sobre una red. En el lado emisor,
la señal analógica es muestreada y digitalizada y un valor digital de ocho bits se emite cada 125 μ segundos. Las
muestras se recogen en paquetes, que son transferidos a continuación, toda la red. En el lado receptor, los valores
digitales se extraen y se convierten de nuevo a la salida analógica. Si la red tiene cero jitter (es decir, cada paquete tiene
exactamente el mismo tiempo de tránsito de la red), la salida de audio va a coincidir exactamente con la entrada original;
de lo contrario, será defectuoso la salida. Hay dos enfoques generales para el manejo de la fluctuación de fase:
Un sistema de telefonía tradicional utiliza el primer método: el sistema telefónico implementa una red isócrona que garantiza
el retraso a lo largo de todos los caminos es el mismo. Por lo tanto, si los datos digitalizados de una llamada telefónica se transmiten
a través de dos caminos, el hardware está configurado de manera que ambas rutas tienen exactamente el mismo retardo.
La transmisión de voz o vídeo a través de Internet se lleva el segundo enfoque: aunque la red subyacente puede
tener fluctuación sustancial, las aplicaciones de voz y vídeo se basan en protocolos en tiempo real † para compensar las
fluctuaciones. Debido a que el uso de protocolos en tiempo real es mucho menos costoso que la construcción de una red
isócrona, las compañías telefónicas están relajando los requisitos estrictos para isocronía. Por supuesto, un protocolo no
puede compensar la fluctuación arbitraria - si la varianza en el retardo es excesiva, se verá afectada la producción. Por lo
tanto, incluso cuando se utiliza el segundo método, los proveedores de servicios intentan minimizar la fluctuación en sus
redes.
En teoría, la demora y el rendimiento de una red son independientes. En la práctica, sin embargo, pueden estar
relacionados. Para entender por qué, pensar en la analogía de carreteras se discutió anteriormente. Si los coches
entran en la carretera a intervalos iguales de tiempo, los coches que viajan a lo largo de la carretera a una velocidad
uniforme están espaciados a intervalos uniformes. Si un coche se ralentiza por cualquier motivo (por ejemplo, en una
intersección), otros detrás de él se ralentizará también, causando congestión de tráfico temporal. Los coches que entran
en el camino cuando la congestión se produce experimentará demoras más largas que los coches que viajan en una
carretera congestionada. Una situación similar se produce en las redes. Si un router tiene una cola de paquetes que
esperan cuando llega un nuevo paquete, el nuevo paquete será colocado en la cola de la cola, y habrá que esperar a
que el router reenvía los paquetes anteriores. Si se produce la congestión,
Científicos de la computación han estudiado la relación entre el retraso y la congestión, y han encontrado
que, en muchos casos, el retraso esperado puede ser estimada a partir del porcentaje actual de la capacidad de
red que se utiliza. Si re 0 denota el retraso cuando una red está inactiva, y T es un valor entre 0 y 1 que denota la
corriente utilización,
el retardo efectivo, RE, está dada por una fórmula simple:
D = ( 1 - U) D 0 (28.1)
Cuando una red es completamente inactivo, T es cero, y el retardo efectivo es re 0. Cuando una red funciona a 1/2
de su capacidad, el retardo efectivo se duplica. Dado que el tráfico se aproxima a la capacidad de la red (es decir, como T se
convierte en cerca 1), el retardo se aproxima al infinito. Aunque la fórmula sólo proporciona una estimación de retardo
efectivo, podemos concluir:
El rendimiento y la demora no son completamente independientes. Dado que el tráfico en una red de
ordenadores aumenta, aumentan los retrasos; una red que opera a cerca del 100% de sus experiencias de
capacidad de rendimiento de retardo severo.
En la práctica, los administradores de red entienden que extremadamente alta utilización puede producir retraso
desastrosa. Por lo tanto, la mayoría de los gerentes trabajan para mantener baja utilización, y medir el tráfico en cada red
constantemente. Cuando el promedio de utilización o de pico comienza a subir por encima de un umbral preestablecido, el
gestor aumenta la capacidad de la red. Por ejemplo, si la utilización se convierte en lo alto de una Ethernet de 100 Mbps, el
gerente podría optar por reemplazarlo por un Gigabit Ethernet. Como alternativa, el gerente puede elegir para dividir una red
en dos, colocando la mitad de los hosts en una red y la mitad de las máquinas de la otra (tal división es extremadamente
fácil con un interruptor de VLAN).
478 Rendimiento de la red (QoS) y DiffServ Cap. 28
¿Qué tan alto debe ser el umbral de utilización? No hay una respuesta sencilla; muchos administradores eligen un valor
conservador. Por ejemplo, uno de los principales ISP que dirige una red troncal gran mantiene utilización en todos sus circuitos
digitales por debajo del 50%. Otros establecen umbrales a 80% para ahorrar dinero. En cualquier caso, los administradores de
acuerdo en que una red no debe ser operado por encima de 90% de la capacidad.
Una vez que se conocen retardo y caudal de una red, es posible calcular otra cantidad interesante, el producto de
retardo-throughput †. Para comprender el significado del producto retraso rendimiento, pensar en la analogía de ruta: cuando los
coches están entrando en una carretera a una velocidad fija de T coches por segundo y que se necesita un coche re segundos para
atravesar la carretera, a continuación, T × re coches adicionales entrarán en el camino cuando el primer coche ha hecho un viaje
completo. Por lo tanto, un total de T × re los coches pueden estar en el camino. En términos de redes, el número de bits que viajan
a través de una red en cualquier momento viene dado por:
dónde re es el retraso medido en segundos, y T es el rendimiento medido en bits por segundo. Para resumir:
El producto de medidas de retardo y el rendimiento del volumen de datos que puede estar presente
en la red. Una red con un rendimiento T y el retraso re puede tener un total de T × re bits en tránsito
en cualquier momento.
El producto retraso rendimiento es importante para cualquier red, con especial retardo largo o grande rendimiento, ya
que afecta a la transmisión - una aplicación emisora puede transmitir un gran volumen de datos antes de que el
destino recibe el primer bit.
Las técnicas utilizadas para medir el rendimiento y la fluctuación de fase son relativamente sencillos. Para evaluar el
rendimiento, un remitente transfiere un gran volumen de datos. Un receptor registra el tiempo desde el inicio de los datos que
llegan hasta que haya llegado todos los datos y calcula el rendimiento como la cantidad de datos enviados por unidad de
tiempo. La técnica para medir la fluctuación de fase es conocida como una tren de paquetes: un emisor emite una serie de
paquetes con un pequeño retraso, fijo entre paquetes. Típicamente, los paquetes en el tren son enviados de regreso a la
espalda. Un receptor registra la hora a la que llega cada paquete, y utiliza la secuencia de veces para calcular las diferencias en
el retardo.
A diferencia de las mediciones de rendimiento o de fluctuación de fase, una medición precisa de la demora en un camino desde
el host UN para albergar B requiere que los dos anfitriones tienen relojes sincronizados.
† Cuando se utiliza como una medida del hardware subyacente, el producto de retardo rendimiento se llama a menudo el
Demora producto de ancho de banda.
Segundo. 28.8 Medición de retardo, rendimiento y Jitter 479
Además, para medir la demora en una distancia corta (por ejemplo, una LAN), los relojes debe ser extremadamente precisa.
En vez de usar los relojes sincronizados, muchas herramientas de medición de la red eligen un enfoque más sencillo: medir
el tiempo de ida y vuelta y dividir por dos. Por ejemplo, silbido puede ser usado.
Medir el rendimiento de la red puede ser sorprendentemente difícil por cuatro razones:
rendimiento es a ráfagas
El primer punto explica por qué puede que no sea posible utilizar los tiempos de ida y vuelta a la demora aproximada. significa
puede diferir sustancialmente de la demora a lo largo de un camino desde UN a B. Por lo tanto, la mitad del tiempo de ida y vuelta
no puede dar una medida exacta.
El segundo punto explica por qué una medida precisa del rendimiento de la red puede ser difícil de obtener: las
condiciones cambian rápidamente. Por ejemplo, considere una red compartida. Si sólo un host está enviando datos, el
huésped disfrutará de bajo retardo, de alto rendimiento y baja fluctuación. Como otros anfitriones comienzan a utilizar la red,
aumenta la utilización, lo que aumentará retardo y jitter y disminuir el rendimiento. Además, debido a las condiciones
cambian rápidamente, los retrasos pueden variar ampliamente en tan poco como un segundo. Por lo tanto, incluso si las
mediciones se toman cada diez segundos, una medida puede faltar un cambio importante en el rendimiento.
El tercer punto sugiere que el envío de tráfico de prueba para medir una red puede afectar al rendimiento de la red. En
el banco de pruebas de la investigación PlanetLab, por ejemplo, por lo que muchos investigadores utilizaron ping para medir el
desempeño que el tráfico de ping dominó por completo el resto del tráfico. La situación llegó a ser tan severa que los
administradores establecer una política de desalentar el uso de ping.
El cuarto punto es fundamental: las redes de datos de exposiciones en ráfagas comportamiento, lo que significa que el tráfico
es irregular. Si tenemos en cuenta el tráfico enviado por un ordenador host dado, el patrón de explosividad es evidente: la mayoría de
los ejércitos permanecen en silencio hasta que un usuario ejecuta una aplicación que se comunica a través de Internet. Cuando un
usuario introduce una URL en un navegador web, el navegador va a buscar todas las partes de la página, y luego deja de comunicarse
hasta que el usuario pide otra página. Del mismo modo, si un usuario descarga de correo electrónico, el ordenador central se comunica
con un sistema de correo electrónico, descarga una copia del buzón del usuario y, a continuación, espera para el usuario.
Curiosamente, el tráfico de datos agregada también es a ráfagas. Se podría esperar que la explosividad es un
fenómeno local y cuando se combina el tráfico de millones de usuarios de Internet, el resultado será un patrón suave de uso.
Después de todo, los usuarios no leen todas correo electrónico exactamente al mismo tiempo; Así, mientras un usuario está
descargando, otro usuario podría ser la lectura de correo electrónico que se ha descargado previamente. De hecho, las
mediciones de la voz
480 Rendimiento de la red (QoS) y DiffServ Cap. 28
red telefónica muestran que el tráfico telefónico de millones de usuarios en los resultados de un agregado suave. Cuando
se combina el tráfico de un millón de usuarios de Internet, sin embargo, el resultado no es un agregado suave. En su lugar,
el agregado es a ráfagas en el sentido de que el tráfico total tiene picos y puntos bajos. De hecho, los estadísticos dicen
que el tráfico de datos es auto similares, lo que significa que el tráfico es análogo a una fractal, donde el mismo perfil de
estadísticas es evidente en cualquier granularidad. Por lo tanto, si una empresa examina una LAN, el tráfico de las
máquinas locales aparecerá en ráfagas. Si un tráfico medidas ISP intermedio de un millar de usuarios o un gran tráfico de
medidas ISP de diez millones de usuarios, el tráfico tendrá grandes cantidades absolutas, sino que exhiben el mismo
patrón estadístico global ya que el tráfico en una red LAN.
Podemos resumir:
A diferencia del tráfico de telefonía de voz, tráfico de datos es a ráfagas. El tráfico de datos se dice que es
auto-similar ya que los agregados de exposición de tráfico de datos el mismo patrón de explosividad.
Los administradores de red que miden las redes distinguen dos formas de medición:
Activo
pasivo
Hemos discutido la desventaja de activo técnicas de medición: mediante la inyección de tráfico en una red, el
tráfico de medición pueden cambiar el rendimiento de la red. La alternativa es pasivo medición que monitoriza una
red y cuenta los paquetes, pero no inyectar tráfico adicional. Por ejemplo, un ISP puede contar los bytes que se
transfieren a través de un enlace en una determinada cantidad de tiempo para producir una estimación de la
utilización del enlace. Es decir, el ISP organiza una estación de monitor pasivo que observa una red durante un
intervalo de tiempo y acumula un total de los bytes en todos los paquetes.
Curiosamente, un ISP puede elegir para medir el número de paquetes enviados, así como el número de bytes
de datos. Para comprender por qué, observe que debido a la utilización del enlace se mide como un porcentaje de la
capacidad y la capacidad se mide en bits por segundo, un ISP necesita medir los bits de datos totales enviados por
unidad de tiempo. Sin embargo, la capacidad de los conmutadores y enrutadores se mide en paquetes por segundo.
Esto es, porque un router o switch realiza envío al siguiente salto, una vez por paquete, el esfuerzo computacional
gastado es proporcional al número de paquetes procesados en lugar del número de bits en un paquete. Si un flujo de
datos llega a 1 Gbps, un switch o router realiza menos trabajo si el flujo se divide en unos pocos paquetes grandes de
lo que hace, si la corriente se divide en muchos paquetes pequeños. Proveedores de equipos de red a entender el
concepto, y algunos
Segundo. 28.9 La medición pasiva, pequeños paquetes, y NetFlow 481
proveedores hacen demandas de rendimiento sobre la velocidad de datos en lugar de la tasa de paquetes (es decir, que miden el
rendimiento de sus productos utilizando paquetes grandes).
Podemos resumir:
Para evaluar la utilización del enlace, un medidas ISP el total de datos transferidos sobre un enlace por
unidad de tiempo; para evaluar el impacto en un router o un conmutador, un ISP mide el número de
paquetes transferidos por unidad de tiempo.
Una de las técnicas de medición pasivas más ampliamente utilizados fue originalmente creado por Cisco y ahora
es un estándar IETF: NetFlow. Un router que implementa NetFlow muestras estadísticamente paquetes de acuerdo con
los parámetros establecidos por el administrador de la red (por ejemplo, muestras de uno de cada uno mil paquetes). La
información se extrae de la cabecera de cada paquete de la muestra, se resume la información, y el resumen se envía a
un sistema de gestión de la red donde se procesa (a menudo, los datos se guardan en el disco para su posterior
análisis). Típicamente, NetFlow extrae IP de origen y destino direcciones, el tipo de datagrama, y números de puerto del
protocolo. Para asegurar que es pasiva, un router que ejecuta NetFlow debe enviar los resúmenes de NetFlow en un
puerto de administración especial en lugar de ellos ruta a través de una de las redes que maneja los datos del usuario.
La contrapartida de medición de la red es aprovisionamiento de red: el diseño de una red para proporcionar un nivel
específico de servicio. El resto del capítulo se consideran los mecanismos que se pueden utilizar para implementar las
garantías de servicio. En términos generales, el tema es conocido como Calidad de Servicio (QoS).
Para entender QoS, considere el contrato entre un proveedor de servicios y un cliente. Los contratos más
simples definen un servicio especificando el tipo de datos que las garantías de los proveedores. Por ejemplo, un
proveedor que ofrece una conexión DSL a Internet puede garantizar una velocidad de datos de 2,2 Mbps. contratos
más complejos definen servicios por niveles, donde el nivel de servicio recibido depende de la cantidad pagada. Por
ejemplo, un proveedor puede optar por una prioridad enfoque que garantiza paquetes de un cliente que se suscribe
al nivel de platino de servicio tendrán prioridad sobre los paquetes de clientes que se suscriben a un nivel de plata
de servicio.
Los grandes clientes corporativos a menudo demandan más estrictas garantías de servicio. La industria financiera normalmente
crea contratos de servicio con los límites en el tiempo transcurrido entre lugares específicos. Por ejemplo, una empresa de corretaje
puede ser que necesite un contrato de servicio que especifica los paquetes deben ser transferidos desde la oficina principal de la
compañía a la Bolsa de Nueva York en menos de 10 milisegundos; una empresa que realiza una copia de seguridad de todo el centro
de datos cada noche puede ser que necesite un contrato de servicio que garantiza un rendimiento no menor de 1 Gbps en las
conexiones TCP utilizados para la copia de seguridad.
482 Rendimiento de la red (QoS) y DiffServ Cap. 28
¿Cómo puede especificar un proveedor de garantías de QoS, y qué tecnologías hace un uso proveedor de calidad de
servicio para hacer cumplir? Figura 28.3 listas de los dos enfoques generales que se han propuesto para la especificación
de servicio. Como indica la figura, los enfoques difieren en su granularidad y si un proveedor o un cliente selecciona
parámetros.
Enfoque Descripción
Gran parte de los primeros trabajos sobre calidad de servicio surgió de las compañías telefónicas. Los diseñadores
asumieron una red de datos orientada a la conexión siguiendo el modelo del sistema telefónico: cuando un cliente necesita
para comunicarse con un sitio remoto (por ejemplo, un servidor web), los clientes podrían crear una conexión. Además, los
diseñadores asumieron un cliente emitiría requisitos de QoS para cada conexión, y un proveedor serían calcular un cargo
de acuerdo con la distancia distribuidos y utilizados QoS.
Las compañías telefónicas incorporadas muchas características de QoS en el diseño de Modo de transmisión
asíncrona (ATM). Aunque ATM no sobrevivió y los proveedores no cobran por lo general para cada conexión, algunos de los
términos que ATM creado para QoS de grano fino todavía persiste con modificaciones menores. En lugar de especificar la
calidad de servicio en una conexión, que ahora utilizamos el término fluir. Un flujo se refiere generalmente a la capa de
transporte de comunicación tal como una conexión TCP, un conjunto de paquetes UDP que viajan entre un par de
aplicaciones, o una llamada telefónica VoIP. Figura 28.4 listas cuatro categorías principales de servicio que estaban
presentes en ATM, y explica cómo se relacionan con los flujos.
Segundo. 28.11 De grano fino y de grano grueso QoS 483
en una variable
VBR Velocidad de bits variable tasa dentro de los límites estadísticos
especificados
dado
Como indica la figura, servicio de CBR es apropiado para un flujo que transfiere datos a una tasa fija, siendo la
voz digitalizada el ejemplo canónico. servicio de VBR es apropiado para un flujo que utiliza una codificación de tasa
variable. Por ejemplo, algunos códecs de vídeo envían codificaciones diferenciales, donde la cantidad de datos
enviados por un marco es proporcional a la diferencia entre el cuadro anterior y el cuadro actual. En tales casos, un
cliente puede especificar la tasa media de datos que se espera, así como una velocidad de datos máxima y la longitud
de tiempo se producirá la tasa máxima. VBR pide a los usuarios especificar:
servicio ABR implica compartir: un cliente está dispuesto a pagar por cualquier cantidad de servicio que está
disponible. Si otros clientes envían datos, la cantidad disponible será menor (y, presumiblemente, el proveedor cobrará
menos). Por último, el servicio UBR significa que el cliente no quiere pagar tarifas más altas y está satisfecho con el
servicio de mejor esfuerzo.
Cuando Internet QoS se consideró en primer lugar, las empresas de telefonía argumentaron que los servicios de grano fino
serían necesarias antes de la calidad de las llamadas telefónicas de voz a través de una red de paquetes sería aceptable. En
consecuencia, además de los trabajos de cajero automático, la comunidad de investigación comenzó a explorar QoS de grano fino
en Internet. La investigación fue conocido como Servicios Integrados (IntServ).
484 Rendimiento de la red (QoS) y DiffServ Cap. 28
La alternativa a la de grano fino de calidad de servicio es un enfoque de grano grueso en el que el tráfico se divide en clases
y los parámetros de calidad de servicio se asignan a la clase en lugar de los flujos individuales. Para entender la motivación
para el enfoque de grano grueso, es necesario tener en cuenta una implementación de QoS en un router de núcleo. Las
conexiones a los routers pueden cada funcionar a 10 Gbps, lo que significa los paquetes llegan a una velocidad
extremadamente alta; Se necesita hardware especial para realizar el reenvío de los procesadores convencionales porque son
demasiado lentos. Por otra parte, debido a que lleva el tráfico entre los principales proveedores de Internet, un router de
núcleo puede manejar millones de flujos simultáneos. QoS requiere muchos recursos adicionales. El router debe mantener el
estado para millones de flujos, y debe llevar a cabo un cálculo complejo para cada paquete. Accesos a memoria ralentizar el
proceso. Además, un router debe asignar recursos cuando se inicia un flujo, y desasignar ellos cuando termina un flujo.
Después de muchos años de investigación en los servicios integrados y la creación de varios protocolos, la comunidad
científica y el IETF llegaron a la conclusión de que un enfoque de grano fino fue en general poco práctico e innecesario. Por un
lado, un usuario medio no tendrá suficiente comprensión de QoS para elegir parámetros. Después de todo, ¿qué requisitos de
rendimiento sería uno especificar para una conexión a un sitio web típico? Por otro lado, los routers de núcleo tienen una
potencia de procesamiento insuficiente para implementar QoS por flujo. Por lo tanto, la mayoría del trabajo en la calidad de
servicio se centra en la definición de unas pocas grandes clases de servicio en lugar de tratar de proporcionar calidad de servicio
extremo a extremo para cada flujo individual. Podemos resumir:
A pesar de muchos años de investigación y trabajo de las normas, el enfoque de grano fino a la QoS
ha sido relegada a unos pocos casos especiales.
La figura 28.5 ilustra los cuatro pasos de un interruptor o router utiliza para implementar QoS.
los los
paquetes llegan paquetes salen
enrutador implementación de QoS
Figura 28.5 Los cuatro pasos claves utilizadas para implementar QoS.
Segundo. 28.12 Implementación de QoS 485
Clasificación y Vigilancia. Cuando llega un paquete, un router clasifica el paquete asignando el paquete un
identificador de flujo. Para un sistema de grano fino, el identificador especifica una conexión individual; para un sistema de
grano grueso, el identificador especifica una clase de tráfico. Una vez que se ha asignado un identificador, el router realiza policial,
lo que significa que el router verifica que el paquete no viola parámetros para el flujo. En particular, si un cliente envía datos
más rápido que la velocidad máxima para la que el cliente está pagando, un controlador de políticas comienza a descartar
los paquetes. Una técnica usada para la vigilancia es Random Early Discard (RED) en el que los paquetes en un flujo
determinado se dejan caer probabilísticamente. Una cola se establece para el flujo, y el tamaño actual de la cola se utiliza
para determinar la probabilidad de caída. Cuando la cola es menor que medio lleno, la probabilidad se establece en cero.
Cuando la cola está completamente llena, la probabilidad se establece en uno. , En la cola de tamaños en entre la
probabilidad es linealmente proporcional al número de paquetes en la cola. Usando rojo ayuda a evitar un problema cíclico
causado por caída de la cola en la que todos los paquetes entrantes se desechan una vez a la cola llena, muchas sesiones
TCP cada uno de marcha atrás y comenzar comienzo lento, aumenta el tráfico hasta que la cola se llena de nuevo, y el ciclo
se repite.
Reenvío de Computación. Cuando se calcula un siguiente salto, un router o un conmutador pueden utilizar el identificador de
flujo. En algunos casos, el identificador de flujo determina el camino a seguir (por ejemplo, todo el tráfico de voz se envía puerto de
salida 54 a un conmutador de voz). En otros casos, el identificador de flujo se ignora y la dirección de destino de cada paquete se
utiliza para seleccionar un siguiente salto. Los detalles exactos de expedición dependen del propósito de una política de calidad de
servicio del gestor determinado conmutador o router y.
Hacer cola de salida. La mayoría de las implementaciones de calidad de servicio crean un conjunto de colas para cada
puerto de salida. Una vez que el cálculo de reenvío selecciona un puerto de salida para el paquete, la salida de cola mecanismo
utiliza el identificador de flujo para colocar el paquete en una de las colas asociadas con el puerto. Un sistema de grano grueso
normalmente utiliza una cola por clase. Por lo tanto, si un gerente establece ocho clases de calidad de servicio, cada puerto de
salida tendrá ocho colas. Un sistema de grano fino a menudo tiene una cola por conexión, con colas dispuestas en una jerarquía.
Por ejemplo, un chip de procesador de red proporciona 256.000 colas dispuestos en una jerarquía de niveles múltiples.
Programación de tráfico. UN planificador de tráfico implementa las políticas de calidad de servicio mediante la selección de un
paquete para enviar cada vez que un puerto está inactivo. Por ejemplo, un administrador puede especificar que tres clientes reciben
cada uno el 25% de la capacidad y todos los demás clientes comparten la capacidad restante. Para poner en práctica una política de
round-robin acercarse para seleccionar paquetes. Por lo tanto, si todos los clientes están enviando los datos, los tres clientes
designados recibirán cada uno un cuarto de la capacidad, tal como se especifica.
Más sofisticados algoritmos de selección de paquetes se pueden utilizar para implementar la distribución proporcional de
complejo. La complejidad surge porque un planificador de tráfico debe mantener políticas a largo plazo a pesar de que los paquetes
llegan en ráfagas. Por lo tanto, un programador de tráfico debe adaptarse a situaciones en las que una cola dada excede
temporalmente su velocidad de datos asignada siempre que el promedio a largo plazo cumple con los límites especificados. Del
mismo modo, un planificador de tráfico debe adaptarse a una situación en la que una o más colas está temporalmente vacío
dividiendo la capacidad no utilizada entre otras colas.
486 Rendimiento de la red (QoS) y DiffServ Cap. 28
Muchos algoritmos de planificación del tráfico se han propuesto y analizado. No es posible crear un
algoritmo práctico que alcanza la perfección; cada uno es un compromiso entre la equidad y la sobrecarga
computacional. Figura 28.6 enumera los algoritmos de gestión de tráfico que se han propuesto y estudiado.
Algoritmo Descripción
Cubo agujereado Permite una cola para enviar paquetes a una tasa fija por
incrementando un contador de paquetes periódicamente y utilizando el contador
para controlar la transmisión
Token Bucket Permite una cola para enviar datos a una tasa fija por
incrementando un contador de bytes periódicamente y utilizando el contador para
controlar la transmisión
El IETF ha diseñado una serie de tecnologías y protocolos relacionados con la calidad de servicio. Tres esfuerzos
significativos son:
RSVP y DiffServ
COPS MPLS
RSVP y COPS. Como se exploró IntServ, la IETF ha desarrollado dos protocolos para proporcionar calidad de servicio:
la Protocolo de reserva de recursos (RSVP) y el Común de Servicios Abiertos Política (COPS) protocolo. RSVP es una versión
de grano fino de calidad de servicio. Por lo tanto, se requiere confirmación de asistencia a cada sesión de TCP o UDP. Para
utilizar RSVP, una aplicación envía una solicitud que especifica la QoS deseada. Cada router a lo largo de la ruta desde el
origen al destino reserva los recursos solicitados y pasa la petición al siguiente enrutador. Con el tiempo, el host de destino
debe estar de acuerdo a la solicitud. Cuando cada salto a lo largo del camino ha acordado aceptar la solicitud, se genera y
devuelve un identificador de flujo. El tráfico puede
Segundo. 28.13 Tecnologías de Internet QoS 487
a continuación, ser enviados a lo largo del camino reservado. COPS es un protocolo compañero para RSVP se utiliza para
especificar y aplicar políticas. Un router que implementa la policía utiliza COPS para comunicarse con un servidor de políticas y
obtener información sobre los parámetros de flujo. Debido a que está diseñado para proporcionar QoS de grano fino, por flujo, RSVP
se utiliza raramente.
DiffServ. Una vez que abandonó IntServ y de grano fino de calidad de servicio, el IETF creó Servicios
Diferenciados (DiffServ) para definir un mecanismo de QoS de grano grueso. El esfuerzo DiffServ produjo una definición
de cómo se pueden especificar las clases y cómo el TIPO DE SERVICIO campo en una cabecera IPv4 o IPv6 se puede
utilizar para especificar la clase de un datagrama. Aunque varios proveedores de Internet han experimentado con
DiffServ, la tecnología no goza de amplia aceptación.
MPLS. Capítulo 19 describe Multiprotocol Label Switching (MPLS) como un mecanismo de comunicación orientada a la
conexión construido encima de IP. Para utilizar MPLS, un administrador configura caminos de desvío a través de un conjunto
de routers MPLS con capacidad. En un extremo de un camino, cada datagrama se encapsula en una cabecera de MPLS y se
inyecta en la ruta de MPLS; en el otro extremo, se extrae cada datagrama, se elimina la cabecera de MPLS, y el datagrama se
reenvía a su destino. En muchos casos, una política de planificación de tráfico se asigna a una ruta de MPLS, lo que significa
que cuando se inserta un datagrama en un camino en particular, los parámetros de QoS se establecen para el datagrama. Por
lo tanto, un ISP puede configurar una ruta de MPLS para datos de voz que está separado de la trayectoria de MPLS utilizado
para otros datos.
28.14 Resumen
Las dos medidas principales de rendimiento de la red son de retardo, el tiempo necesario para enviar un poco de
un ordenador a otro, y el rendimiento, el número de bits por segundo que se pueden transmitir a través de la red.
Aunque el rendimiento que comúnmente se llama la velocidad, el rendimiento es una medida de la capacidad de la red.
El producto retraso rendimiento mide la cantidad de datos que pueden estar en tránsito en un instante dado. Retardo y
caudal no son independientes - que en el rendimiento se aproxima al 100% de capacidad, retrasos aumentan
rápidamente.
Jitter, una medida de la varianza en el retardo, está adquiriendo importancia en las redes de datos. Inquietud baja
se puede lograr con una red isócrona o con un protocolo que se encarga de la transmisión de audio en tiempo real y de
vídeo; Internet utiliza el enfoque de protocolo.
Medir el rendimiento de la red puede ser difícil. rutas asimétricas significan se necesitan relojes sincronizados
para medir demora; tráfico a ráfagas significa rendimiento puede cambiar rápidamente. Dado que el tráfico adicional
de medición puede alterar las condiciones de la red, muchos administradores prefieren tecnologías de medición de
pasivos, como NetFlow.
Tanto de grano fino y de grano grueso de calidad de servicio han sido estudiados; los esfuerzos de grano fino en general,
han sido abandonados. ATM definido categorías de servicio, y los acrónimos todavía se utilizan: Constante, variable, disponible,
y no especificado de velocidad de bits (CBR, VBR, ABR y UBR).
488 Rendimiento de la red (QoS) y DiffServ Cap. 28
Para implementar QoS, un conmutador o enrutador clasifica y políticas de datos entrantes, hacia delante y coloca cada
paquete en una cola de salida, y utiliza un programador de tráfico para seleccionar un paquete para enviar cuando un puerto
de salida quede libre. Se han propuesto y analizado algoritmos de planificación Varios de tráfico; cada uno es un compromiso
entre la equidad óptima y sobrecarga computacional.
El RSVP de IETF y definido COPS como parte del esfuerzo IntServ; cuando énfasis cambió lejos de QoS de
grano fino, el IETF define DiffServ. El IETF también define MPLS como tecnología de ingeniería de tráfico.
parámetros de QoS se pueden asociar con cada túnel MPLS, lo que significa que una vez que un datagrama se ha
clasificado, su asociación MPLS define sus parámetros de QoS.
CEREMONIAS
28.2 Dar cinco tipos de retardo, junto con una explicación de cada uno.
28.3 ¿Es de esperar retrasos de acceso sean más largos en una LAN o WAN en una? Haciendo cola retrasos?
¿Por qué?
28.5 ¿Qué nombre se utiliza para la forma de rendimiento que es el más significativo para un usuario?
28.6 Dar ejemplos de procesamiento que hacen goodput menos de la capacidad del canal.
28.7 Proporcionar una explicación de retardo y el rendimiento en términos de bits que se transmite.
28.9 Utilizar silbido para medir la latencia de red a los sitios locales y distantes. ¿Cuál es la demora mínima y máxima Internet
se pueden encontrar?
28.11 Descargar una copia del programa ttcp y lo utilizan para medir el rendimiento en un éter-locales
red. ¿Cuál es el goodput? Estimar la utilización del enlace alcanzado.
28.12 Compara el rendimiento de una red de 100 Mbps y una red de 1 Gbps.
28.13 ¿Cuál es la fluctuación, y cuáles son los dos métodos utilizados para superar la fluctuación de fase?
28.14 Profesionales a veces se refieren a un “codo” en la curva de retardo. Para entender lo que
significar, trazar el retardo efectivo para valores de utilización entre 0 y 0.95. Se puede encontrar un valor de utilización para
los que la curva parece aumentar drásticamente?
28.15 La cantidad de datos pueden ser “en vuelo” entre una estación emisora de tierra, un satélite, y una re-
Estación ceiving? Para averiguarlo, calcular el producto de retardo rendimiento para una red de satélites GEO que funciona a
3 Mbps. Supongamos que las órbitas de los satélites a 20,000 millas sobre la tierra, y que las transmisiones de radio se
propagan a la velocidad de la luz.
28.18 Explicar por qué ISP cuentan el número de paquetes recibidos por unidad de tiempo en lugar de meramente
28.20 Estimar la potencia de cálculo necesaria para implementar QoS de grano fino en el núcleo de la
Internet: asume un enlace de 10 Gbps entrega de paquetes 1000 byte y operaciones aritméticas N por paquetes, y
calcular el número de operaciones de un procesador necesita realizar por segundo.
28.21 Una lista de las cuatro categorías principales de QoS que se derivaron de ATM, y dar el significado
de cada.
28.22 Considere un navegador web. ¿Qué tipo de calidad de servicio que sería apropiado para un flujo típico
donde el navegador descarga de una página web? ¿Por qué?
28.23 Si dos usuarios crean una sesión de chat a través de Internet, qué categoría de calidad de servicio van a estar usando?
28.26 Si su ISP utiliza cubo agujereado para programar la transmisión de paquetes, será su rendimiento será mayor con paquetes
grandes o pequeños paquetes? Explique.
Multimedia y
telefonía IP (VoIP)
29.1 Introducción
Capítulos de esta parte del texto consideran una variedad de tecnologías de redes y usos. En el capítulo anterior se
analiza el rendimiento y la calidad de servicio de la red. El capítulo señala las dos formas básicas que las redes pueden ser
diseñados para proporcionar un servicio que se utiliza para aplicaciones en tiempo real tales como voz: una infraestructura
isócrona o el uso de protocolos que compensar las fluctuaciones.
En este capítulo se continúa la discusión mediante el examen de la transferencia de multimedia a través de Internet. El
capítulo examina cómo multimedia pueden ser enviados a través de un mecanismo de comunicación de mejor esfuerzo, describe un
protocolo de propósito general para el tráfico en tiempo real, y considera que la transmisión de llamadas telefónicas de voz en detalle.
Usamos el término multimedia para hacer referencia a los datos que contiene audio o vídeo, y puede incluir texto. La
frase Multimedia en tiempo real se refiere a datos multimedia que debe ser reproducida exactamente a la misma velocidad que
fue capturado (por ejemplo, un programa de noticias de televisión que incluye audio y video de un evento real).
Surge una pregunta, ¿cómo puede ser utilizado Internet para la transmisión de multimedia en tiempo real? Para entender la
dificultad, hay que recordar que el Internet ofrece un servicio de entrega de mejor esfuerzo. Por lo tanto, los paquetes pueden
perderse, con retraso, o entregados fuera de orden - si el audio o
491
492 Multimedia y telefonía IP (VoIP) Cap. 29
de vídeo se digitaliza, enviado a través de Internet sin ningún tratamiento especial, y luego aparece exactamente como se
llega, la salida resultante será inaceptable. Los primeros sistemas multimedia resuelven el problema mediante la creación
de redes de comunicación específicamente diseñados para manejar audio o vídeo. La red telefónica analógica utiliza una
red isócrona para proporcionar una reproducción de alta calidad de audio y sistemas de televisión por cable analógico
están diseñados para ofrecer múltiples canales de transmisión de video sin interrupciones o pérdida.
En lugar de requerir las redes subyacentes para manejar la transmisión en tiempo real, el apoyo de Internet utiliza el
protocolo adicional. Curiosamente, el problema más importante que ser manejado es la fluctuación, no la pérdida de paquetes.
Para ver por qué, consideremos una transmisión en vivo. Si un protocolo utiliza el tiempo de espera-y-retransmisión de volver a
enviar el paquete, el paquete retransmitido llegará demasiado tarde para ser útil - el receptor habrá jugado el video y el audio de
paquetes sucesivos, y que no tiene sentido para insertar un fragmento de la transmisión por Internet que se ha perdido antes.
A diferencia de los protocolos de transporte convencionales, un protocolo que transfiere datos en tiempo
real sólo se ocupa del problema de la fluctuación, y no retransmite los paquetes perdidos.
Para superar la fluctuación de fase y lograr una reproducción suave de los datos en tiempo real, se emplean dos técnicas
principales:
Las marcas de tiempo. Un remitente proporciona una marca de tiempo para cada pieza de datos. Un
receptor utiliza las marcas de tiempo para manejar paquetes fuera de orden y para mostrar los datos en
Jitter Buffer. Para acomodar la fluctuación de fase (es decir, pequeñas variaciones en el retardo), una
reproducción tampones receptor de datos y retrasos.
La aplicación de un búfer de fluctuación es sencillo. Un receptor mantiene una lista de elementos de datos, y utiliza marcas de
tiempo para ordenar la lista. Antes de que comience la reproducción, un receptor para retrasos re unidades de tiempo, lo que significa
que los datos sean jugados es re unidades de tiempo detrás de los datos que está llegando. Por lo tanto, si un paquete dado se retrasa
menos de re, el contenido del paquete se colocará en la memoria intermedia antes de que se necesita para la reproducción. En otras
palabras, los elementos se insertan en una memoria intermedia de fluctuación con alguna variación en la tasa, pero el proceso de
reproducción extrae datos de una memoria intermedia de fluctuación a una tasa fija. La figura 29.1 ilustra la organización de un sistema
búfer de fluctuación
proceso de la monitor
re
reproducción
conexión a
internet
En el conjunto de protocolos de Internet, el Protocolo de transporte en tiempo real (RTP) proporciona el mecanismo utilizado
para transmitir datos en tiempo real a través de Internet. El termino Transporte es un nombre inapropiado porque RTP se sienta encima
de la capa de transporte. Por lo tanto, a pesar del nombre, se debe pensar en RTP como protocolo de transferencia.
RTP no garantiza la entrega oportuna de los datos, y no incluye un búfer de fluctuación o mecanismo de reproducción. En
cambio, proporciona tres artículos en cada paquete que permite que un receptor para implementar un búfer de fluctuación:
UN secuencia de números que permite a un receptor para colocar los paquetes entrantes en el orden
correcto y para detectar los paquetes que faltan Un fecha y hora que permite a un receptor para
reproducir los datos en el paquete en el momento correcto en el multimedia transmitir una serie de identificadores
de origen que permiten a un receptor para saber la fuente (s) de los datos
La figura 29.2 ilustra cómo aparecen el número de secuencia, marca de tiempo, y la fuente campos identificadores en un
013 8 dieciséis 31
TIMESTAMP
Figura 29.2 El encabezado básico que aparece al comienzo de cada paquete RTP.
494 Multimedia y telefonía IP (VoIP) Cap. 29
Campo VER da el número de versión de RTP, que es actualmente 2. Campo PAG especifica si la carga útil es rellenado
con ceros (algunas codificaciones requieren un tamaño de bloque fijo). Campo
X especifica si una extensión de encabezamiento está presente, y CC da un recuento de las fuentes que se han combinado para
producir la corriente como se describe a continuación. METRO es un marcador poco que se puede utilizar para marcar algunos
marcos. En particular, algunas codificaciones de video enviar una trama completa seguida por una serie de cambios graduales; el METRO
bit sólo se establece si un paquete RTP lleva un cuadro completo. los PAYTYPE campo especifica el tipo de carga útil; un receptor
utiliza el valor PAYTYPE para interpretar el resto del paquete.
Cada paquete incluye una SECUENCIA DE NÚMEROS; la secuencia se incrementa en uno para cada paquete. Al igual que
con TCP, un remitente elige una secuencia de partida aleatorio para ayudar a evitar problemas de repetición. UN TIMESTAMP campo
que es independiente de la secuencia proporciona un receptor con información sobre temporización de reproducción. Mantener la
marca de tiempo independiente de la secuencia es importante en los casos donde el tiempo no está linealmente relacionada con la
secuencia de paquetes (por ejemplo, una codificación de vídeo de tamaño variable que envía menos paquetes cuando la imagen no
cambia rápidamente).
un RTP TIMESTAMP no codifica una fecha y hora. En su lugar, RTP elige una marca de tiempo inicial aleatorio, y
luego hace que cada marca de tiempo sucesivos en relación con el valor inicial. Además, RTP no especifica si el tiempo
se mide en segundos, milisegundos, u otras unidades - el tipo de carga útil determina la granularidad de la marca de
tiempo. No importa lo que la granularidad de tiempo se utiliza, un remitente debe incrementar el tiempo de forma continua,
incluso cuando se están enviando no hay paquetes (por ejemplo, si un códec suprime la transmisión durante periodos de
silencio de un flujo de audio).
Los dos campos IDENTIFICADOR DE SINCRONIZACIÓN FUENTE y CONTRIBUIR identificador de origen identificar
las fuentes de los datos. La razón se debe identificar una fuente surge del mecanismo de entrega de multidifusión:
un host puede recibir datos de múltiples fuentes y puede recibir múltiples copias de un paquete dado. La razón se
identifican múltiples fuentes surge de una técnica conocida como mezclando en el que un sistema intermedio
combina datos de múltiples flujos en tiempo real para producir un nuevo flujo. Por ejemplo, un mezclador puede
combinar secuencias de vídeo y audio por separado de una película, y luego la corriente combinada multidifusión.
RTP utiliza UDP para el transporte de mensajes. Así, cada mensaje RTP se encapsula en un datagrama UDP
para la transmisión a través de Internet. La figura 29.3 ilustra los tres niveles de encapsulación que se utilizan
cuando un mensaje RTP se transfiere sobre una única red.
Debido RTP utiliza encapsulación UDP, los mensajes resultantes pueden enviarse a través de difusión o
multidifusión. Multicast es especialmente útil para la entrega de programas de entretenimiento que atrae a una gran
audiencia. Por ejemplo, si un proveedor de cable ofrece un programa de televisión o un evento deportivo, varios
clientes pueden ver simultáneamente. En tales casos, en lugar de enviar una copia de un mensaje a cada suscriptor,
RTP permite una
Segundo. 29.5 La encapsulación de RTP 495
proveedor para llegar a los clientes mediante la multidifusión de una copia de un mensaje RTP a través de cada subred lógica. Si
un multidifusión dado alcanza un promedio de norte clientes, la cantidad de tráfico se reducirá en un factor de NORTE.
29.6 Telefonía IP
El termino telefonía IP † o Voz sobre IP (VoIP) se usa para describir una de las aplicaciones multimedia más extendidos.
Las compañías telefónicas de todo el mundo están reemplazando a los conmutadores telefónicos tradicionales con los routers
IP. La motivación es económica: los routers cuestan mucho menos que los conmutadores telefónicos tradicionales. Las
empresas también han comenzado a utilizar telehones IP por razones económicas: el envío de los datos y de voz en
datagramas IP reduce el costo debido a que la infraestructura de red subyacente es compartida - un único conjunto de equipos,
el cableado y las conexiones de red es suficiente para todas las comunicaciones, incluidas las llamadas telefónicas.
La idea básica detrás de la telefonía IP es sencilla: de forma permanente de muestreo de audio, convertir cada muestra de
forma digital, enviar el flujo digitalizado resultante a través de una red IP en paquetes, y convertir la corriente de retorno a analógica
para su reproducción. Sin embargo, muchos detalles complican la tarea. Un remitente no puede esperar para llenar un paquete grande,
ya que hacerlo retrasa la transmisión por varios segundos. El sistema debe manejar el establecimiento de llamada: cuando una
persona que llama marca, el sistema debe traducir el número de teléfono a una dirección IP, y localizar a la parte especificada. Cuando
se inicia una llamada, el abonado llamado debe aceptar y contestar la llamada. Del mismo modo, cuando se termina una llamada, las
dos partes deben ponerse de acuerdo sobre cómo poner fin a la comunicación.
surgen las complicaciones más importantes se deben a la telefonía IP se esfuerza por ser compatible con el vigente Red
Telefónica Pública Conmutada (PSTN). Es decir, en lugar de restringir las llamadas a teléfonos IP, mecanismos permiten a una
persona que llama o el destinatario de la llamada a utilizar un teléfono en cualquier lugar de la red PSTN, incluyendo una ubicación
internacional o una conexión celular. Por lo tanto, un sistema de telefonía IP debe estar preparado para manejar las llamadas que se
originan
†Pronunciado IP te-lef'-oh-nee.
496 Multimedia y telefonía IP (VoIP) Cap. 29
en la PSTN y terminan en un teléfono IP, o viceversa. Los usuarios esperan de un sistema de telefonía IP para proporcionar
servicios telefónicos existentes, tales como desvío de llamadas, llamada en espera, mensaje de voz, llamadas de conferencia, y identificador
de llamadas. Además, las empresas operan actualmente que una Private Branch eXchange (PBX) puede requerir un sistema de
telefonía IP para ofrecer servicios equivalentes a un PBX.
Dos grupos han creado normas para telefonía IP: la Unión Internacional de Telecomunicaciones (UIT), que
controla los estándares de telefonía, y la Internet Engineering Task Force (IETF), que controla los estándares
TCP / IP. Después de considerar los componentes conceptuales de un sistema de telefonía IP, vamos a revisar
los protocolos que cada grupo haya elegido.
Afortunadamente, ambos grupos están de acuerdo en lo básico para la codificación y transmisión de audio:
La principal complejidad de la telefonía IP (y la razón por la que se han propuesto múltiples estándares) radica en el
establecimiento de llamada y gestión de llamadas. En la terminología de teléfono, el proceso de establecer y terminar una
llamada se conoce como señalización, e incluye la asignación de un número de teléfono a un lugar, la búsqueda de una ruta a la
parte llamada, y gastos de otros detalles, como el desvío de llamadas. El mecanismo utilizado en el sistema telefónico
tradicional para manejar la gestión de llamadas se conoce como Sistema de Señalización 7 (SS7).
Una de las cuestiones fundamentales sobre los centros de telefonía IP sobre el enfoque que deben adoptar para la
señalización - si el sistema de señalización estar centralizado como el sistema telefónico actual, o debe ser distribuido al igual que
la asignación actual de los nombres de dominio a direcciones IP? Los defensores de un enfoque distribuido argumentan que
debería ser posible para los dos teléfonos IP, en puntos arbitrarios en Internet, para encontrar unos a otros y comunicar
exactamente igual que las aplicaciones de Internet actual (es decir, un teléfono IP de actúa como un servidor para aceptar
llamadas entrantes, y como un cliente para realizar llamadas salientes). En un enfoque distribuido, no se necesita más allá de la
infraestructura de DNS y los servicios de transporte de IP que están actualmente disponibles para comunicaciones de datos. El
enfoque distribuido es especialmente pertinente para un sistema de telefonía IP local (por ejemplo, un sistema que permite
realizar llamadas entre dos teléfonos IP dentro de una misma empresa). Los defensores de un enfoque centralizado argumentan
que un modelo de teléfono convencional que funciona mejor, ya que dan las compañías telefónicas de control de establecimiento
de llamada les permite ofrecer garantías de servicio.
Para ser compatible con los teléfonos existentes, nuevos protocolos deben ser capaces de interactuar con SS7, tanto
para realizar llamadas salientes y aceptar llamadas entrantes. A medida que el debate sobre el enfoque básico procedido, se
propusieron cuatro conjuntos de protocolos de señalización para su uso con la telefonía IP: el IETF propuso la Protocolo de
Iniciación de Sesión (SIP) y el
Segundo. 29.7 Señalización y normas de señalización VoIP 497
MGCP (MGCP), la UIT ha propuesto un gran conjunto, integral de protocolos en el marco general de H.323,
y los dos grupos propusieron conjuntamente Megaco (H.248). La cuestión es:
Figura 29.4 listas de los cuatro componentes principales de un sistema de telefonía IP, y la Figura
29.5 ilustra la forma en que se utilizan para interconectar redes.
Componente Descripción
coordinación entre
Media Gateway Controller Los teléfonos IP para servicios tales como el establecimiento de llamada,
que pasa una llamada entre los conecta a dos redes que utilizan
diferentes
Pasarela de señalización mecanismos de señalización, y traduce las peticiones de
gestión de llamadas y respuestas
Figura 29.4 Los cuatro principales bloques de construcción de un sistema de telefonía IP.
Un teléfono IP se conecta a una red, utiliza IP para todas las comunicaciones, y ofrece una interfaz telefónica
tradicional que permite al usuario realizar o recibir llamadas telefónicas. Un teléfono IP puede ser una unidad de
hardware independiente (es decir, un teléfono convencional), o puede consistir en un ordenador con un micrófono, el
altavoz y el software de telefonía IP. La conexión entre un teléfono IP y el resto del mundo puede consistir en una red
cableada o inalámbrica (por ejemplo, Ethernet o 802.11b).
UN Medios Gateway Controller, que también se conoce como una Portero o Conmutación por software,
proporciona un control global y la coordinación entre un par de teléfonos IP, permitiendo a una persona que llama para localizar un
UN Media gateway proporciona traducción de audio como una llamada pasa a través del límite entre
una red IP y la PSTN o la frontera entre dos redes IP que utilizan diferentes codificaciones. Por ejemplo, una
pasarela de medios en el límite entre la PSTN e Internet mueve audio digitalizada entre la codificación TDM
utilizado en un circuito de voz convencional y la codificación de paquetes utilizado en Internet.
UN Pasarela de señalización También se extiende el límite entre un par de redes dispares, y proporciona traducción de
operaciones de señalización, lo que permite a cada lado para iniciar una llamada (por ejemplo, para permitir que un teléfono IP en
Internet para realizar una llamada a un teléfono en la red PSTN). Un controlador de pasarela de medios coordina el funcionamiento
de los medios de comunicación y las puertas de enlace de señalización. La figura 29.5 ilustra cómo se usan los componentes para
interconectar Internet y la PSTN.
INTERNET PSTN
.
.
.
.
Figura 29.5 Las conexiones entre los componentes del teléfono IP.
Los conceptos y terminología definida anteriormente presentan una visión clara y un tanto
simplificada de telefonía IP que se deriva del trabajo en la IETF y la UIT en el Megaco y MGCP (MGCP). Las
implementaciones prácticas de servicio de telefonía IP son más complejas. Las siguientes secciones
proporcionan ejemplos.
los Protocolo de Iniciación de Sesión (SIP) minimiza la necesidad de protocolos adicionales mediante el uso de protocolos
existentes siempre que sea posible. Por ejemplo, SIP utiliza el sistema de nombres de dominio para asignar un número de teléfono
a una dirección IP. Como resultado, SIP define tres nuevos elementos que constituyen un sistema de señalización:
Agente de usuario de
servidor de ubicación
Agente de usuario. SIP documentos se refieren a un dispositivo que hace o termina las llamadas telefónicas como una agente
de usuario. Un agente de usuario SIP puede ser implementado en un teléfono IP, un ordenador portátil, o una puerta de enlace RTC
que permite a un teléfono IP para realizar llamadas a la PSTN.
Segundo. 29.8 Componentes de un sistema telefónico IP 499
Un agente de usuario consta de dos partes: una Cliente de Agente de Usuario que coloca las llamadas salientes, y una
Ubicación del servidor. Un servidor de ubicación de SIP gestiona una base de datos de información sobre cada usuario, como
un conjunto de direcciones IP, servicios a los que se suscribe el usuario y las preferencias del usuario. El servidor de localización se
pone en contacto durante el establecimiento de llamada para obtener información sobre la ubicación o ubicaciones que acepte una
llamada determinada.
Servidor proxy. SIP incluye el concepto de un proxy que puede reenviar las peticiones de los agentes de usuario a otro lugar.
Proxies manejan el encaminamiento óptimo, y hacen cumplir las políticas (por ejemplo, asegúrese de que la persona que llama está
Servidor de redirección. SIP utiliza un servidor de redirección para manejar tareas tales como la transferencia de llamadas y
conexiones de 800 números. El servidor de redireccionamiento recibe una petición de un agente de usuario, y devuelve una ubicación
Servidor de registro. SIP utiliza un servidor de registro para recibir las solicitudes de registro y actualizar la base de datos
que consultan a los servidores de localización. Un registrador es responsable de autenticar las peticiones de registro y asegurar
que la base de datos subyacente se mantiene constante.
El estándar H.323 de la ITU, que define la terminología alternativa y conceptos adicionales, se centra en la
interacción PSTN. Aunque es extremadamente amplio y abarca muchos detalles, H.323 se puede resumir de la
siguiente manera:
Terminal. Un terminal H.323 proporciona la función de telefonía IP, que puede incluir también instalaciones para la
transmisión de vídeo y datos.
Puerta. H.323 utiliza una única puerta de enlace para interconectar el sistema de telefonía IP
con la PSTN; la puerta de entrada se encarga tanto de señalización y medios traducción.
Unidad de control multipunto (MCU). Una MCU ofrece servicios tales como conferencia multipunto.
Debido a que la UIT y IETF generaron varias variaciones de terminología y conceptos, los vendedores formaron
la Consorcio Softswitch Internacional (ISC) para crear un modelo funcional uniforme e integral que incorpora todos los
modelos de la telefonía IP en un solo marco. Para ello, el ISC define la funcionalidad que pueda ser necesaria,
incluyendo la señalización entre diversos tipos de sistemas, traducción de codificaciones, soporte para servicios tales
como el desvío de llamadas, y las funciones de gestión tales como la contabilidad y facturación. El CAI define
entonces una lista de funciones que es suficiente para todas las situaciones:
Medios Función controlador de pasarela (MGC-F). El MGC-F mantiene información de estado en los puntos finales; que
proporciona la lógica de llamada y control de llamada.
500 Multimedia y telefonía IP (VoIP) Cap. 29
Función llamada de agente (CA-F). El CA-F es un subconjunto del MGC-F que mantiene estado de la llamada.
Ejemplos de CA-F son SIP, H.323, y Q.931.
Función de enrutamiento y Función de Contabilidad (RF / AF). El RF maneja el enrutamiento de llamadas para el
MGC-F, y el AF recoge la información que se utiliza para la contabilidad y facturación.
Señalización Función Gateway (SG-F). La SG-F maneja la señalización entre una red IP y la
PSTN.
Función de Access Gateway de Señalización (AGS-F). El AGS-F maneja la señalización entre una red IP y
una red de acceso de conmutación de circuitos como la PSTN.
Función de servidor de aplicaciones (AS-F). El AS-F maneja un conjunto de servicios de aplicaciones tales como correo de
voz.
Función de Control de Servicio (SC-F). El SC-F se llama cuando un AS-F debe controlar (es decir, el cambio) de la lógica de
un servicio (por ejemplo, instalar un nuevo mapeo).
Medios Función Gateway (MG-F). La MG-F administra la conversión de audio digitalizado entre dos formas, y también
puede incluir la detección de eventos tales como si un teléfono está descolgado y el reconocimiento de Multifrecuencia de
doble tono (DTMF) señales, el estándar de señalización de audio que se conoce como marcación por tonos codificación.
Función Media Server (MS-F). La MS-F manipula un tren de paquetes de medios de comunicación en nombre de una
aplicación AS-F.
Debido a que múltiples grupos han propuesto protocolos para la telefonía IP, existen protocolos que compiten en la mayoría
de las capas de la pila de protocolos. La figura 29.6 se enumeran algunos de los protocolos propuestos junto con su posición en el
modelo de referencia 5-capa de Internet.
4
TCP UDP TCP TCP SCTP
UDP UDP
† SIGTRAN permite la transferencia de señales de PSTN (por ejemplo, SS7, DTMF) a través de una red IP; multiplexa SCTP de entrada múltiples flujos en
En lugar de un solo protocolo, el H.323 estándar, creado por la UIT, se compone de un conjunto de protocolos que trabajan
juntos para manejar todos los aspectos de la comunicación telefónica. Los aspectos más destacados de H.323 son:
Envía mensajes binarios que se definen por ASN.1 y codificado utilizando Reglas de
codificación básica (BER)
Incorpora protocolos de seguridad utiliza una unidad de hardware especial conocido como Unidad de
Control Multipunto
para soportar llamadas de conferencia
Define servidores para gestionar tareas como la resolución de direcciones ( es decir, mapear el
número de teléfono de la parte llamada en una dirección IP), autorización de autenticación ( es
decir, determinar si se permite a un usuario acceder a un servicio dado), contabilidad, y caracteristicas,
tales como el desvío de llamadas
protocolos H.323 utilizan TCP y UDP para el transporte - audio puede viajar más
UDP, mientras que una transferencia de datos procede a través de TCP. La figura 29.7 ilustra la disposición en capas de base en el
estándar H.323.
RTP, RTCP
Abarca todos los aspectos de señalización, incluyendo la ubicación de una parte llamada, la notificación
Permite que los dos lados para negociar capacidades y elegir los medios de comunicación y
parámetros a utilizar †
Un SIP URI contiene un nombre de usuario y un nombre de dominio en el que el usuario puede encontrar. Por
ejemplo, un usuario llamado Herrero que trabaja en Somecompany, Inc. podría ser asignado el SIP URI:
sip: [email protected]
SIP define seis tipos de mensajes básicos y siete extensiones. Los tipos de mensajes básicos se conocen como métodos.
Figura 29.8 lista los métodos básicos SIP.
Método Propósito
Registrarse Registro de la ubicación del usuario (es decir, una dirección URL a la que
el usuario puede llegar a)
† SIP utiliza el Session Description Protocol (SDP) para describir las capacidades y parámetros.
Segundo. 29.13 Una sesión de SIP Ejemplo 503
Un ejemplo de los mensajes enviados durante una sesión SIP aclarará algunos de los detalles y ayudar a explicar la
idea general detrás de la mayoría de telefonía IP. Figura 29.9 listas de una secuencia de mensajes enviados cuando un agente
de usuario, UN, contacto con un servidor DNS, y luego comunica con un servidor proxy, que invoca una † servidor de
localización. Una vez que se ha establecido la llamada, los dos teléfonos IP se comunican directamente. Por último, el SIP se
utiliza para terminar la llamada.
consulta DNS
respuesta DNS
INVITACIÓN
tratando (100)
Consulta
Respuesta
INVITACIÓN
De llamada (180)
De llamada (180)
Aceptar (200)
Aceptar (200)
ACK (200)
ACK (200)
sesión de medios
ADIÓS
ADIÓS
Aceptar (200)
Aceptar (200)
Figura 29.9 Un ejemplo de los mensajes intercambiados por SIP para administrar una tele-
llamada telefónica.
† En la práctica, soportes SIP llamar a bifurcar, que permite a un servidor de ubicación para volver varias ubicaciones para un usuario (por ejemplo, el hogar y la
Típicamente, un agente de usuario está configurado con la dirección de IP de uno o más servidores DNS (usados para asignar
el nombre de dominio en un URI SIP a una dirección IP) y uno o más servidores proxy. Del mismo modo, cada servidor proxy está
configurado con la dirección de uno o más servidores de localización. Por lo tanto, si un determinado servidor no está disponible, SIP
puede encontrar una alternativa rápida.
¿Cómo deben los usuarios de telefonía IP se nombran y se encuentran? La PSTN sigue E.164 estándar para
los números de teléfono y direcciones IP SIP utiliza. El problema de la localización de los usuarios se complica
debido a múltiples tipos de redes pueden estar involucrados. Por ejemplo, considere una red integrada que se
compone de dos redes PSTN interconectados por una red IP. Diseñadores definen dos subproblemas: localizar un
usuario en la red integrada, y encontrar una ruta eficiente para el usuario. El IETF ha propuesto dos protocolos que
corresponden a las asignaciones necesarias para los dos subproblemas:
ENUM. El protocolo IETF ENUM ( corto para Números E.164) resuelve el problema de la conversión de un número de
teléfono E.164 en una Identificador uniforme de recursos (URI). En esencia, ENUM utiliza el sistema de nombres de dominio
para almacenar la cartografía. Un número de teléfono se convierte en un nombre de dominio especial en el dominio:
e164.arpa
La conversión consiste en tratar el número de teléfono como una cadena, la inversión de la cadena, y la escritura
dígitos individuales como segmentos de un nombre de dominio. Por ejemplo, el número de teléfono 1-800-555-1234
produce el nombre de dominio:
4.3.2.1.5.5.5.0.0.8.1.e164.arpa
Un mapeo ENUM puede ser 1-a-1 como un esquema de numeración telefónica convencional, o puede ser 1-a-muchos, lo que
significa que el teléfono de escritorio de un usuario y el teléfono móvil se puede asignar el mismo número de teléfono. Cuando un
número corresponde a múltiples hosts, un servidor de DNS devuelve una lista de los anfitriones, junto con el protocolo utilizado para
llegar a cada una; un agente de usuario procede a ponerse en contacto con los anfitriones en la lista hasta que un host responde.
VIAJE. El protocolo IETF Enrutamiento Teléfono sobre IP (TRIP) resuelve el problema de encontrar un usuario en una red
integrada. Un servidor de localización u otro elemento de red pueden utilizar para hacer publicidad TRIP rutas. Por lo tanto, dos
servidores de localización utilizan viaje a informarse mutuamente sobre las rutas externas que cada uno de ellos conocen. Debido a
que es independiente del protocolo de señalización, TRIP se puede utilizar con SIP u otros mecanismos de señalización.
Segundo. 29.14 Teléfono Mapping número y enrutamiento 505
29.15 Resumen
El Protocolo de transporte en tiempo real tiene capacidad para la transferencia de multimedia en tiempo real a través de
Internet. Un mensaje RTP incluye un número de secuencia y una marca de tiempo separada, así como una identificación de la
fuente (s) de datos. Un receptor utiliza la marca de tiempo para colocar datos en un búfer de fluctuación antes de la
reproducción. RTP se encapsula en UDP para la transmisión, que permite la multidifusión y difusión. Sin retransmisión se utiliza
porque los paquetes recibidos más allá de la ventana de reproducción no se pueden reproducir.
La telefonía IP y VoIP términos se refieren a llamadas telefónicas de voz digitalizados transmitidos a través de Internet. Uno
de los mayores desafíos en la construcción de un sistema de telefonía IP surge de la compatibilidad hacia atrás - pasarelas deben
ser inventados que conectar un sistema de telefonía IP a la PSTN tradicional. Puertas de enlace deben proporcionar tanto la
traducción de medios (es decir, la traducción entre las codificaciones de voz digitales) y la señalización (es decir, la traducción de
establecimiento de llamada).
La UIT y el IETF tienen cada estándares creados para telefonía IP. estándar ITU
H.323 incluye muchos protocolos que proporcionan establecimiento de llamada y gestión, autorización y contabilidad, y servicios al
usuario, tales como el desvío de llamadas, así como la transmisión de voz, video y datos a través de una llamada telefónica. IETF
estándar SIP proporciona una capacidad que incluye la ubicación de un usuario, establecimiento de llamada de señalización, y
permite a cada lado para especificar las capacidades. SIP utiliza un conjunto de servidores que manejan diferentes aspectos de la
señalización: un servidor de nombres de dominio, servidores proxy y servidores de localización. El Softswitch Consorcio de Internet
(ISC) ha definido un marco adicional que se pretende abarcar todos los modelos de telefonía IP.
Dos protocolos de IETF adicionales proporcionan funciones de apoyo. ENUM utiliza el sistema de nombres de dominio para
asignar un número de teléfono E.164 en un identificador uniforme de recursos (por lo general un SIP URI). TRIP proporciona
enrutamiento entre dominios administrativos de telefonía IP; un servidor de ubicación de SIP puede usar TRIP para informar a otros
servidores de localización sobre las puertas de enlace que forman los puntos de salida de la red.
RFC 3216 define SIP; RFC 2916 considera los números E.164 y DNS; y RFC 3219 define TRIP. RTP y RTCP
relacionada al protocolo de control están documentados en RFC 1889. Los conceptos y protocolos relacionados
también se pueden encontrar en RFC 2915, 2871,
3015, 3435 y 3475.
506 Multimedia y telefonía IP (VoIP) Cap. 29
CEREMONIAS
29.1 Definir datos multimedia. ¿Cuáles son las dos técnicas utilizadas para superar la fluctuación de fase?
29.2 Explicar cómo un búfer de fluctuación permite la reproducción de un flujo de audio incluso si el Internet presenta fluctuaciones.
29.3 Si un mensaje de RTP es interceptada a medida que viaja a través de Internet, se puede interpretar el campo de marca de tiempo? ¿Si
29.4 Debido a que viaja en UDP, un mensaje de RTP puede ser duplicada. ¿Un receptor necesita para mantener una copia de todos
los mensajes recibidos anteriormente para determinar si un mensaje entrante es un duplicado? ¿Por qué o por qué no?
29.5 RTP contiene un protocolo compañero conocido como el Protocolo de Control en Tiempo Real (RTCP)
que permite a un receptor para informar de la calidad de los mensajes recibidos de un remitente. ¿Cómo se puede usar la codificación
29.6 Si la voz es convertida a forma digital mediante PCM, cuántos bits de datos se producirá en la mitad segundo?
29.7 Extender el ejercicio anterior. Estimar el tamaño (en octetos) de un datagrama IP que transporta un cuarto de un
segundo de audio codificada en PCM, colocado en un paquete RTP, y encapsulado en UDP. Pista: RFC 1889 define el
tamaño de una cabecera RTP.
29.9 Cuando H.323 se utiliza para enviar datos junto con el audio o el video, que es el protocolo de transporte
¿usado?
29.10 ¿Cuáles son los seis métodos básicos utilizados con SIP?
29.11 Lea la RFC sobre SIP, y modificar la figura 29.9 para mostrar los mensajes intercambiados cuando
el desvío de llamadas se produce. Un consejo: mirar a SIP redirección mensajes.
Seguridad de la red
30.1 Introducción
Los capítulos anteriores describen los sistemas de hardware y software que constituyen Internet y explican cómo las
aplicaciones de cliente y servidor utilizan las líneas subyacentes para comunicarse. En este capítulo se considera el
aspecto importante de la seguridad de la red. El capítulo se describen los tipos de delitos que han sido cometidos a través
de Internet, analiza los aspectos clave de la seguridad, y explica las tecnologías utilizadas para aumentar la seguridad de la
red.
Cada vez que aparece una nueva tecnología, los delincuentes preguntan cómo pueden utilizar la tecnología para cometer
delitos. Internet no es una excepción - como la mayoría de los usuarios son conscientes, Internet ha sido utilizado para actividades
delictivas como se informa en la prensa. A pesar de que los delitos en Internet, tales como fraudes y robo de identidad, pueden
afectar a las personas, los delitos más importantes representan una amenaza para las empresas. Además de robo directo de
bienes o servicios, las empresas se refieren especialmente a las amenazas a la viabilidad a largo plazo de la empresa. Por lo tanto,
el daño a la reputación, la pérdida de la confianza del cliente, la propiedad intelectual robada, y la prevención de acceso de los
clientes son muy importantes para un negocio.
¿Cuáles son los principales problemas de seguridad en Internet y las amenazas? ¿Qué
aspectos técnicos de los protocolos no explotan los delincuentes? ¿Cuáles son los
509
510 Seguridad de la red Cap. 30
La figura 30.1 resume algunos de los principales problemas de seguridad que existen en Internet.
Problema Descripción
Suplantación de identidad Haciéndose pasar por un sitio conocido como un banco para obtener
Nuestra discusión se centrará en maneras que los delincuentes se aprovechan de la tecnología y las tecnologías
que se han creado para hacer el crimen más difícil o costoso. Figura 30.2 listas técnicas específicas que utilizan
atacantes.
Segundo. 30.2 Los exploits y ataques criminales 511
Técnica Descripción
Intervención a la línea telefónicaHacer una copia de los paquetes a medida que atraviesan una red
Repetición Enviando paquetes capturados de una sesión anterior (por ejemplo, un paquete
de contraseña de un inicio de sesión anterior)
desbordamiento de búfer El envío de más datos que un receptor espera con el fin de almacenar los
valores de las variables más allá del búfer
DoS y DDoS Inundar un sitio con paquetes para impedir el sitio de llevar a
cabo con éxito actividades normales
inundaciones SYN El envío de una corriente de segmentos SYN TCP aleatorio de agotamiento de
conjunto de conexiones TCP de un receptor
escaneo de puertos Si intenta conectarse a cada posible puerto de protocolo en un host para
encontrar una vulnerabilidad
Intervención a la línea telefónica y la relacionada repetición técnicas son evidentes. Curiosamente, desbordamiento de
búfer es una de las debilidades más explotados de un sistema informático. Es un síntoma de mala ingeniería: un programador no
comprueba el tamaño del búfer cuando se realiza una operación de entrada. Un ataque típico o bien envía un paquete jumbo
(más grande que los permisos estándar) o envía una secuencia de paquetes de regreso a la espalda que desbordan el búfer de
entrada.
spoofing ataques se utilizan para suplantar a un host de confianza. La forma más simple de la falsificación de direcciones
utiliza ARP: un atacante emite una respuesta ARP que se une a una dirección IP arbitraria, UN, a la dirección MAC del atacante.
Cuando cualquier host en la red envía un paquete a UN, el paquete será enviado al atacante en su lugar. Otras formas de
suplantación de identidad involucran el uso de un protocolo de enrutamiento para enviar rutas incorrectas, enviando un mensaje
de DNS que almacena una incorrecta vinculante en un servidor DNS, y el uso de una ligera falta de ortografía de un nombre de
dominio conocido para dar al usuario la impresión de que han alcanzado un sitio web de confianza.
512 Seguridad de la red Cap. 30
UN Denegación de Servicio (DoS) ataque inunda un host (por lo general un servidor web) con un flujo de paquetes. A
pesar de que el servidor sigue funcionando, el ataque consume efectivamente todos los recursos, lo que significa que otros
usuarios experimentar largos retrasos o tienen sus conexiones rechazadas. Debido a que un administrador puede detectar y
desactivar un flujo de paquetes de una sola fuente, una Denegación de Servicio Distribuida (DDoS) ataque se encarga de un gran
conjunto de hosts a través de Internet a cada enviar un flujo de paquetes, como la figura 30.3 ilustra. Por lo general, un atacante
commandeers primera hosts de Internet, se carga el software en los ordenadores, y luego utiliza los ejércitos para atacar a un
servidor. Por lo tanto, ninguno de los paquetes enviados por un DDoS vienen directamente desde el ordenador del atacante.
Internet
inundaciones SYN es una técnica específica utilizada para denegar el servicio a TCP - cada paquete entrante contiene
una conexión TCP SYN mensaje que solicita una nueva conexión TCP. Un receptor asigna un bloque de control TCP para la
conexión, envía una SYN + ACK, y espera una respuesta. Con el tiempo, todos los bloques de control se asignan, y no hay
más conexiones se pueden abrir.
interceptación de paquetes hace que sea posible lanzar hombre en el medio ataques en los que un intermediario
puede modificar los paquetes a medida que pasan desde la fuente al destino. A pesar de que es uno de los ataques más
difíciles de diseñar, paquete de interceptación tiene el mayor potencial para el daño, como la figura 30.4 ilustra.
¿Qué es una red segura? Aunque el concepto de una red segura es atractivo para la mayoría
de los usuarios, las redes no se pueden clasificar simplemente como segura o no segura, porque el
término no es absoluta - cada organización define el nivel de acceso que se permite o se deniega.
Por ejemplo, una organización que mantiene secretos comerciales valiosos puede ser necesario para
evitar que extraños accedan a los ordenadores de la organización. Una organización que tiene un
sitio web que hace que la información disponible puede definir una red segura como aquella que
permite el acceso a los datos arbitraria, sino que incluye mecanismos que impiden que los extranjeros
cambien los datos. Otras organizaciones se centran en mantener la comunicación confidencial:
definen una red segura como uno en el que nadie que no sea el remitente o el destinatario puede
interceptar y leer un mensaje. Finalmente,
Debido a que no existe una definición absoluta de red segura existe, el primer paso de una organización debe tomar para
lograr un sistema seguro es definir la organización de politica de seguridad.
La política no especifica cómo lograr protección. En su lugar, se establece claramente y sin ambigüedad los
artículos que se van a proteger.
Las políticas de seguridad son complejas porque implican el comportamiento humano, así como instalaciones
informáticas y de red (por ejemplo, un visitante que transporta una ROM flash de una organización, una red inalámbrica que
puede ser detectado fuera de un edificio, o los empleados que trabajan en casa). La evaluación de los costos y beneficios de
las diversas políticas de seguridad también añade complejidad. En particular, una política de seguridad no se puede definir a
menos que una organización entiende el valor de su información. En muchos casos, el valor de la información es difícil de
evaluar. Consideremos, por ejemplo, una base de datos de nómina simple que contiene un registro para cada uno de los
empleados, las horas que el empleado trabajó, y la tarifa de pago. Si fueron capaces de acceder a la información, algunos
empleados podrían convertirse en molesto y, o bien exigen salarios más altos o amenazan con irse. Si los competidores
obtienen la información, que podrían utilizarlo para alejarlo empleados. Más importante, un competidor podría ser capaz de
utilizar la información de forma inesperada (por ejemplo, para evaluar el esfuerzo dedicado a un proyecto en particular).
Para resumir:
La elaboración de una política de seguridad de la red puede ser complejo debido a una política racional
requiere una organización para relacionar la red y la seguridad informática con el comportamiento humano y
para evaluar el valor de la información.
La definición de una política de seguridad también es complicado porque cada organización debe decidir qué
aspectos de la protección son los más importantes, ya menudo debe comprometer entre la seguridad y facilidad de uso. Por
ejemplo, una organización puede considerar:
514 Seguridad de la red Cap. 30
Integridad de los datos. La integridad se refiere a la protección contra el cambio: son los datos que
llega a un receptor idéntico a los datos que se envió?
Además de los puntos anteriores, una organización debe especificar exactamente cómo se asigna o controlada
responsabilidad por la información. La cuestión de la responsabilidad por la información tiene dos aspectos:
acceso y cambie?
las políticas de autorización no tienen sentido sin un mecanismo de autenticación que puede
verificar de forma inequívoca la identidad de un solicitante.
Segundo. 30.5 Tecnologías de seguridad 515
Muchos productos de seguridad existen, que realizan una variedad de funciones para ambos equipos individuales y un
conjunto de equipos de una organización. Figura 30.5 resume las técnicas de dichos productos utilizan. Las siguientes
secciones explican cada una de las tecnologías.
Técnica Propósito
encriptación Intimidad
Figura 30.5 principales técnicas utilizadas para hacer cumplir las políticas de seguridad.
En capítulos anteriores se discuten técnicas como bits de paridad, suma de comprobación, y verificación por redundancia cíclica
(CRC) utilizado para proteger los datos contra daños accidentales. Tales técnicas no proporcionan integridad de los datos por dos
razones. En primer lugar, un mal funcionamiento puede cambiar una suma de comprobación, así como un valor de datos, lo que
significa la suma de comprobación alterada puede ser válido para los datos alterados. En segundo lugar, si los cambios de datos son el
resultado de un ataque planeado, el atacante puede crear una suma de comprobación de validez de los datos alterados. Por lo tanto,
se han creado mecanismos adicionales para garantizar la integridad de los mensajes contra el cambio intencional.
Un método suministra una código de autenticación de mensajes (MAC) que un atacante no puede romper o
falsificar. Típica uso esquemas de codificación hash criptográfica mecanismos. Un esquema de dispersión se basa
en una llave secreta conocida sólo por el emisor y el receptor. El remitente toma un mensaje como entrada, utiliza la
clave para calcular un hash, H, y transmite H junto con el mensaje. H es una cadena corta de bits, y la longitud de H
es independiente del tamaño del mensaje. El receptor utiliza la clave para calcular un hash del mensaje, y compara
el hash a H. Si los dos coinciden, el mensaje ha llegado intacto. Un atacante, que no tiene la clave secreta, no será
capaz de modificar el mensaje sin introducir un error. Por lo tanto, H proporciona autenticación de mensajes debido
a un receptor sabe que un mensaje que llega con un hash válido es auténtico.
516 Seguridad de la red Cap. 30
Un control de acceso mandos del mecanismo de los usuarios o programas de aplicación pueden acceder a los datos. Por
ejemplo, algunos sistemas operativos implementan una lista de control de acceso (ACL)
para cada objeto que especifica quién está autorizado a acceder al objeto. En otros sistemas, se asigna a cada usuario una contraseña
para cada recurso protegido. Cuando un usuario necesita acceder a un recurso protegido, se le pide al usuario que introduzca
la contraseña.
Al extender las listas de control de acceso y contraseñas a través de una red, se deben tomar medidas para evitar la
divulgación no intencional. Por ejemplo, si un usuario en una ubicación envía una contraseña no cifrada a través de una red a un
equipo en otro lugar, cualquiera que escuchas telefónicas de la red puede obtener una copia de la contraseña. Escuchas
telefónicas es especialmente fácil cuando los paquetes viajan a través de una LAN inalámbrica, ya no se requiere una conexión
física - cualquiera dentro del alcance de la transmisión puede capturar una copia de cada paquete. Además, se deben tomar
medidas para asegurar que las contraseñas no son fáciles de adivinar debido a una red permite a un atacante para automatizar
intentos de romper una contraseña. Por lo tanto, los administradores de cumplir las reglas para las contraseñas que eligen como
una longitud mínima y la prohibición de la utilización de palabras comunes (es decir, palabras encontradas en un diccionario).
Texto plano - un mensaje original antes de que haya sido cifrado texto cifrado - un mensaje
después de que haya sido cifrado Clave de cifrado - una cadena de bits corta utilizada para
cifrar una clave de mensaje descifrado - una cadena de bits corta utilizada para descifrar un
mensaje
Como veremos más adelante, en algunas tecnologías, la clave de cifrado y la clave de descifrado son idénticos; en otros, se
diferencian.
Matemáticamente, pensamos en el cifrado como una función, cifrar, que toma dos argumentos: una clave, K 1, y
un mensaje de texto claro a cifrar, METRO. La función produce una versión encriptada del mensaje, texto cifrado DO:
C = cifrar (K 1, METRO)
Segundo. 30.8 Encriptación: Una Técnica Fundamental de Seguridad 517
M = decrypt (K 2, C)
Existen muchas tecnologías de cifrado, y que se pueden dividir en dos grandes categorías que se definen
por la forma en que utilizan claves:
Clave Privada de
clave pública
en un llave privada sistema, cada par de entidades comunicantes compartir una única clave que sirve tanto como una Clave
de encriptación y una clave de descifrado. El nombre se debe a que la clave debe mantenerse en secreto - si un tercero
obtiene una copia de la llave, el tercero será capaz de descifrar los mensajes que pasan entre el par. sistemas de claves
privadas son simétrico
en el sentido de que cada parte puede enviar o recibir mensajes. Para enviar un mensaje, la clave se utiliza para producir
texto cifrado, que se envía a través de una red. Cuando llega un mensaje, el lado receptor utiliza la clave secreta para
descifrar el texto cifrado y extraer el mensaje original (texto plano). Por lo tanto, en un sistema de clave privada, un emisor
y receptor de cada utilizan la misma clave, K, Lo que significa que:
El jefe alternativa al cifrado de clave privada es conocida como cifrado de clave pública.
Un sistema de clave pública asigna a cada entidad un par de claves. A los efectos de la discusión, vamos a suponer que cada
entidad es un solo usuario. Una de las claves del usuario, la llamada llave privada, se mantiene en secreto, mientras que el
otro, llamado el Llave pública, se publica junto con el nombre del usuario, por lo que todo el mundo conoce el valor de la clave.
La función de cifrado tiene la propiedad matemática de que un mensaje de texto sin formato cifrado con la clave pública no
puede ser descifrado, excepto con la clave privada, y un mensaje de texto sin formato cifrado con la clave privada no puede
ser descifrado, excepto con la clave pública.
La relación entre el cifrado y descifrado con las dos teclas se puede expresar matemáticamente. Dejar METRO
denotar un mensaje de texto claro, public_u1 denotar usuario 1 's
clave pública, y private_u1 denotar usuario 1 Clave privada. Las funciones de cifrado se pueden expresar como:
La figura 30.6 ilustra por qué un sistema de clave pública se clasifica como asimétrico mostrando las claves utilizadas
para cifrar los mensajes enviados en cada dirección.
desencriptar cifrar
Internet
cifrar desencriptar
Revelando una clave pública es seguro porque las funciones que se utilizan para el cifrado y el descifrado
tienen una una propiedad manera. Es decir, decirle a alguien la clave pública no permite a la persona a forjar un
mensaje cifrado con la clave privada.
cifrado de clave pública se puede utilizar para garantizar la confidencialidad. El expedidor que desea la
comunicación permanezca confidencial utiliza la clave pública del destinatario para cifrar el mensaje. La obtención de una
copia del texto cifrado a medida que pasa a través de la red no permite que alguien que lea el contenido descifrado,
porque requiere la clave privada del receptor. Por lo tanto, el esquema asegura que los datos se mantengan
confidenciales ya que sólo el receptor puede descifrar el mensaje.
Un mecanismo de cifrado también se puede usar para autenticar el remitente de un mensaje. La técnica es
conocida como una firma digital. Para firmar un mensaje, el remitente cifra el mensaje utilizando una clave que sólo
conoce el remitente †. El destinatario utiliza la función inversa para descifrar el mensaje. El destinatario sepa quién
envió el mensaje porque sólo el remitente tiene la clave necesaria para realizar el cifrado. Para asegurar que en-
† Si no se requiere confidencialidad, el mensaje no necesita ser encriptada. En su lugar, una forma más eficiente de la firma digital se
puede utilizar en los que se encripta un hash del mensaje.
Segundo. 30.11 La autenticación de firmas digitales 519
mensajes encriptados no se copian y se resienten más tarde, el mensaje original puede contener la hora y fecha en la
que se creó el mensaje.
Tenga en cuenta cómo un sistema de clave pública se puede utilizar para proporcionar una firma digital. Para
firmar un mensaje, el remitente cifra el mensaje utilizando su clave privada. Para verificar la firma, el destinatario obtiene
la clave pública del remitente y lo utiliza para descifrar el mensaje. Debido a que sólo el emisor conoce la clave privada,
sólo el remitente puede cifrar un mensaje que puede decodificarse con la clave pública.
Curiosamente, un mensaje se puede cifrar dos veces para garantizar la autenticación y la confidencialidad. En primer
lugar, el mensaje se firma mediante la clave privada del remitente para cifrarlo. En segundo lugar, el mensaje cifrado es
cifrada utilizando de nuevo la clave pública del destinatario. Matemáticamente, las dos etapas de codificación se pueden
expresar como:
dónde METRO indica un mensaje de texto simple para ser enviado, X denota la cadena de texto cifrado que resulta de la
doble encriptación, private_u1 denota la clave privada del remitente y
public_u2 denota la clave pública del destinatario.
En el extremo receptor, el proceso de descifrado es el inverso del proceso de cifrado. En primer lugar, el
destinatario usa su clave privada para descifrar el mensaje. El descifrado elimina un nivel de cifrado, pero deja el
mensaje firmado digitalmente. En segundo lugar, el destinatario utiliza la clave pública del remitente para descifrar el
mensaje de nuevo. El proceso se puede expresar como:
dónde X denota el texto cifrado que se transfiere a través de la red, METRO denota el mensaje de texto normal, private_u2
denota la clave privada del destinatario y public_u1
denota la clave pública del remitente.
Si un mensaje significativo resulta de los dos pasos, debe ser cierto que el mensaje era confidencial y
auténtico. El mensaje debe de haber llegado a su destinatario, porque sólo el destinatario tiene la clave
privada correcta necesaria para eliminar el cifrado externa. El mensaje debe de haber sido auténtica, ya que
sólo el remitente tiene la clave privada necesaria para cifrar el mensaje para la clave pública del remitente
correctamente descifrarlo.
Una de las cuestiones fundamentales que rodean la tecnología de clave pública surge de la forma en que se
obtiene una clave pública. Aunque es posible utilizar una publicación convencional (análogo a una guía telefónica),
hacerlo es engorroso y propenso a errores porque los seres humanos tendrían que introducir las claves en sus
ordenadores de forma manual. Surge la pregunta: ¿puede un sistema automatizado se ideó para distribuir claves
públicas? Por supuesto,
520 Seguridad de la red Cap. 30
el sistema de distribución debe ser seguro - si la clave pública dada a un usuario es incorrecta, la seguridad está roto, y no
más allá de cifrado se puede confiar. El problema se conoce como el problema de distribución de claves, y la formación de un
sistema de distribución de claves viable ha sido un obstáculo para la adopción generalizada de sistemas de clave pública.
Se han propuesto varios mecanismos de distribución de claves, incluyendo uno que utiliza el sistema de nombres
de dominio. En cada caso, un simple principio subyace en el esquema: conociendo una clave - la clave pública de una
autoridad fundamental - es posible obtener otras claves públicas de una manera segura. Por lo tanto, un administrador
sólo tiene que configurar una clave pública. La figura 30.7 ilustra el intercambio de mensajes cuando un usuario decide
interactuar con un nuevo sitio web, W.
la autoridad la autoridad
clave de Autoridad
1 mensaje
cifrar cifrar
Usuario
el mensaje 2
desencriptar descifrar
Sitio Web W
3 mensajes
cifrar cifrar
mensaje 4
desencriptar descifrar
la clave la clave
Figura 30.7 Ilustración de la utilización de una autoridad clave para obtener una clave pública.
En la figura, un sitio necesita para llevar a cabo una transacción segura con un sitio web, W. Cada uno de los
cuatro mensajes es confidencial. Mensaje 1 sólo puede ser leído por la autoridad clave, ya que se ha cifrado con la
clave pública conocida de la autoridad llave. Mensaje 2 debe haber sido generado por la autoridad clave, ya que sólo la
autoridad tecla tiene la clave privada que coincide con la clave pública. Una vez que el usuario ha obtenido la clave
pública para el sitio W, el usuario puede enviar una solicitud confidencial y saber que sólo el sitio web especificada
puede generar una respuesta (ya que sólo el sitio tiene la clave privada).
Aunque la tecnología de encriptación ayuda a resolver muchos problemas de seguridad, se necesita una segunda
tecnología. Conocido como un firewall de Internet †, la tecnología ayuda a proteger los ordenadores y redes de una organización de
tráfico de Internet no deseado. Al igual que un servidor de seguridad convencional, un firewall de Internet está diseñado para evitar
que los problemas en el Internet se propague a los ordenadores de una organización.
Un servidor de seguridad se coloca entre una organización y el resto de la Internet, y todos los paquetes que
entran o salen del pase organización a través del firewall. La figura 30.8 ilustra la arquitectura.
servidor de seguridad
utilizado para proteger organización
Si una organización tiene múltiples conexiones a Internet, un servidor de seguridad debe ser colocado en cada uno, y todos
los servidores de seguridad de la organización debe estar configurado para aplicar la política de seguridad de la organización.
Además, el propio servidor de seguridad debe ser seguro contra la manipulación. Para resumir:
Todo el tráfico que entra la organización pasa a través del servidor de seguridad de todo el tráfico que
Los cortafuegos son la herramienta de seguridad más importante usado para manejar la conexión entre dos
organizaciones que no confían entre sí. Mediante la colocación de un servidor de seguridad en cada conexión de red externa,
una organización puede definir una perímetro de seguridad que impide que los extranjeros de interferir con los ordenadores de la
organización. En particular, un firewall puede impedir que personas ajenas ordenadores que descubren en una organización, las
inundaciones
† El término se deriva del límite físico a prueba de fuego colocada entre dos partes de una estructura para evitar el fuego de
movimiento entre ellos.
522 Seguridad de la red Cap. 30
las redes de la organización con el tráfico no deseado, o atacar a un ordenador mediante el envío de una secuencia de datagramas IP
que se sabe que causan la computadora con el mal comportamiento (por ejemplo, al chocar). Por otra parte, un firewall puede impedir
la exportación de datos no deseados (por ejemplo, un usuario de la organización Las importaciones de inadvertidamente un virus que
Un servidor de seguridad tiene una ventaja clave sobre otros regímenes de seguridad: se centraliza el control, y por lo tanto
mejora la seguridad de forma espectacular. Para proporcionar seguridad sin un firewall, una organización debe hacer cada uno de sus
ordenadores segura. Además, cada equipo debe aplicar las mismas políticas. El coste de la contratación de personal para administrar
varios ordenadores es alta, y una organización no puede depender de los usuarios individuales para configurar sus equipos
correctamente. Con un servidor de seguridad, un administrador puede restringir todo el tráfico de Internet a una pequeña serie de
computadoras, y utilizar el personal para configurar y supervisar el conjunto. En el caso extremo, todo el acceso externo puede ser
restringido a un solo ordenador. Por lo tanto, un servidor de seguridad permite a una organización para ahorrar dinero y lograr una
mayor seguridad.
Aunque un firewall puede consistir en un dispositivo autónomo, la mayoría de los servidores de seguridad están integrados en
un switch o router. En cualquier caso, el mecanismo subyacente utilizado para construir un servidor de seguridad se conoce como
una filtro de paquetes. Un filtro consiste en un mecanismo configurable que examina los campos en cada cabecera de paquete y
decide si permite que el paquete pase a través del enrutador o para descartar el paquete. Un gestor configura el filtro de paquetes
mediante la especificación de qué paquetes pueden pasar en cada dirección. (Es más seguro para especificar el conjunto de
paquetes que se permiten en lugar de especificar el conjunto de paquetes que se les niega.)
Para TCP / IP, una especificación de filtro de paquetes por lo general incluye un tipo de trama de 0800 (por IP), un IP Dirección
de la fuente o dirección de destino ( o ambos), un tipo de datagramas, y un número de puerto del protocolo. Por ejemplo, para
permitir que personas ajenas a alcanzar el servidor web de la organización, un filtro de paquetes podría permitir una trama
entrante que contiene un datagrama IP lleva TCP desde una dirección arbitraria IP de origen y puerto de origen al puerto de
destino 80 y una dirección IP de destino igual a la web la dirección IP del servidor.
Ya que permite a un administrador para especificar combinaciones de direcciones de origen y de destino y servicios, el filtro de
paquetes en un servidor de seguridad permite a un administrador para controlar el acceso a los servicios específicos en equipos
específicos. Por ejemplo, un administrador puede optar por permitir el tráfico de entrada para acceder a un servidor web en un
ordenador, un servidor de correo electrónico en otro, y un servidor DNS en un tercio. Por supuesto, un administrador también debe
instalar reglas de firewall que permiten los paquetes de respuesta a fluir hacia fuera del sitio. La figura 30.9 ilustra una configuración de
La capacidad de permitir selectivamente paquetes para un servicio particular significa que un administrador puede controlar
cuidadosamente los servicios que son visibles desde el exterior. Por lo tanto, incluso si un usuario sin darse cuenta (o
intencionalmente) se inicia un servidor de correo electrónico en su ordenador, los extranjeros no podrán ponerse en contacto con el
servidor.
Segundo. 30.14 La aplicación firewall con un filtro de paquetes 523
Sever web
(192.5.48.1)
Internet
sever DNS
(192.5.48.3)
dir Tipo de marco IP Src IP Dest Tipo IP Src Dst Puerto Puerto
Figura 30.9 configuración del cortafuegos Ejemplo para un sitio con tres servidores, con
un asterisco utiliza para denotar una entrada de comodín que coincide con cualquier valor.
Podemos resumir:
Un Sistema de detección de intrusiones (IDS) supervisa todos los paquetes que lleguen a un sitio y notifica al administrador del
sitio si se detecta una violación de seguridad. Un IDS ofrece una capa adicional de conciencia de seguridad - incluso si un servidor de
seguridad impide un ataque, un IDS puede notificar al administrador del sitio que se está produciendo un problema.
La mayoría de los IDS se pueden configurar para mirar para determinados tipos de ataques. Por ejemplo, un IDS
puede ser configurado para detectar una escaneo de puertos ataque en el que un atacante o bien envía datagramas UDP a
sucesivas puertos de protocolo UDP o intenta abrir una conexión TCP en sucesivas puertos de protocolo TCP. Del mismo
modo, un IDS puede ser configurado para detectar un posible ataque de inundación SYN al observar repetidas SYN desde
una fuente dada. En algunos casos, un IDS y firewall están interconectados para proporcionar filtrado automático: en lugar de
limitarse a notificar a un administrador del sitio acerca de un problema, el IDS crea una regla de firewall que bloquea los
paquetes que están causando el problema. Por ejemplo, si un IDS detecta una inundación SYN procedentes de una fuente
dada, el IDS puede instalar una regla de firewall que bloquea los paquetes de la fuente. La razón de utilizar un enfoque
automatizado es la velocidad
- se tarda unos humanos muchos segundos en responder después de haber sido notificado de un problema y en una red gigabit,
más de 50.000 paquetes pueden llegar por segundo. Por lo tanto, se necesita una respuesta rápida para evitar que un problema se
convierta en abrumadora.
A pesar de que puede manejar muchos problemas de seguridad, un servidor de seguridad tiene una limitación severa: sólo
examina los campos de una cabecera del paquete. Es decir, un cortafuegos no puede probar la carga útil de un paquete. Para ver por
qué el contenido de los paquetes pueden ser importantes, considere los virus informáticos. Una de las formas más comunes de un
virus se introduce en una organización es a través de un archivo adjunto de correo electrónico - un atacante envía un mensaje de
correo electrónico con un programa de ordenador como un archivo adjunto. Si un usuario desprevenido abre el archivo adjunto, el
programa se puede instalar el software arbitrario en el ordenador del usuario, incluyendo el malware † tal como un virus.
¿Cómo puede un sitio de prevenir problemas tales como la instalación de un virus? La respuesta está en análisis de
contenido. Hay dos tipos de análisis de contenido:
La exploración de archivos
†Software malicioso.
Segundo. 30.16 Y la exploración del contenido inspección profunda de paquetes 525
Digitalización de archivos. El enfoque más directo para analizar el contenido funciona con archivos completos. La exploración
de archivos es una técnica muy conocida y utilizada por el software de seguridad instalado en un PC típico. En esencia, un escáner
de archivos se realiza un archivo como entrada y busca patrones de bytes que indican un problema. Por ejemplo, muchos
programas antivirus buscan cadenas de bytes conocidos como huella dactilar. Es decir, una empresa que vende un escáner de virus
recoge copias de virus, coloca cada una en un archivo, encuentra secuencias de bytes que no son comunes, y crea una lista de
todas las secuencias. Cuando un usuario ejecuta el software antivirus, el software busca en los archivos en el disco del usuario para
ver si algún archivo contiene secuencias de bytes que responden a elementos de la lista. La exploración de archivos funciona bien
para detectar los problemas comunes. Por supuesto, la exploración de archivos puede producir una falso positivo Si un archivo
normal pasa a contener una cadena en la lista, y puede producir una falso negativo si existe un nuevo virus que no contiene
ninguna de las cuerdas de la lista.
Inspección profunda de paquetes (DPI). La segunda forma de análisis de contenido opera en los paquetes en lugar de
archivos. Es decir, en lugar de meramente examinar las cabeceras en paquetes que pasan en el sitio, un mecanismo DPI
también examina los datos de la carga útil del paquete. Tenga en cuenta que el Departamento no excluye el examen de cabecera
- en muchos casos, el contenido de una carga útil no pueden interpretarse sin examinar campos en la cabecera del paquete.
Como ejemplo de DPI, considere un ataque en el que se utiliza una ligera falta de ortografía de un nombre de dominio para
engañar a un usuario para que confíe en un sitio. Una organización que quiere evitar este tipo de ataques puede lista negra un conjunto
de direcciones URL que se sabe que es un riesgo para la seguridad. El enfoque proxy requiere cada usuario en el sitio de configurar su
navegador para utilizar una proxy web ( es decir, un sistema de banda intermedia que comprueba una URL antes de ir a buscar la
página solicitada). Como alternativa, un filtro de inspección profunda de paquetes se puede configurar para inspeccionar cada paquete
saliente y el reloj para una solicitud HTTP a cualquiera de los sitios en la lista negra.
La principal desventaja de DPI surge de sobrecarga computacional. Debido a que una carga útil del paquete en una trama
Ethernet puede ser más de veinte veces más grande que un encabezamiento de paquete, DPI puede requerir veinte veces más
capacidad de procesamiento de la inspección de cabecera. Además, la carga útil no se divide en campos fijos, lo que significa que
los mecanismos DPI deben analizar los contenidos durante una inspección. Como resultado:
Porque examinan las cargas útiles de paquetes que son mucho más grandes que las cabeceras de
paquetes y no organizados en campos fijos, los mecanismos de inspección profunda de paquetes se
limitan a las redes de baja velocidad.
Una de las tecnologías más importantes y ampliamente utilizados-Security utiliza el cifrado para proporcionar un acceso
seguro a la intranet de una organización desde sitios remotos. Conocido como
Red Privada Virtual (VPN), la tecnología fue diseñada originalmente para proporcionar una interconexión de bajo
costo entre múltiples sitios geográficos de una organización. Para undersand la motivación, considere las
alternativas de interconexión:
526 Seguridad de la red Cap. 30
Conexiones de red privada. Una organización arrienda circuitos de datos para conectarse a
sus sitios. Cada conexión arrendada se extiende desde un router en uno de los sitios de la
organización a un router en otro sitio; datos pasa directamente de un router en un sitio a un
router en otro sitio.
Las conexiones a Internet. Cada sitio tiene un contrato con un ISP local para el servicio de
Internet. Los datos enviados desde un sitio corporativo a otro pasa a través de Internet.
Figura 30.10 ilustra dos posibilidades para una organización con tres sitios.
R 1 R 2 R 1 R 2
circuitos arrendados
Internet
acceso a Internet
R 3 R 3
el sitio 3 el sitio 3
(un) (segundo)
Figura 30.10 Sitios conectados por (a) los circuitos arrendados y (b) de Internet.
La principal ventaja de la utilización de los circuitos arrendados para interconectar sitios se debe a que la red resultante
es completamente privada ( es decir, confidencial). Ninguna otra organización tiene acceso a un circuito arrendado, por lo que
ninguna otra organización puede leer los datos que pasan de un sitio a otro. La principal ventaja de la utilización de las
conexiones a Internet es de bajo costo - en lugar de pagar por líneas para conectar los sitios, la organización sólo tiene que
pagar por el servicio de Internet en cada sitio. Por desgracia, Internet no puede garantizar la confidencialidad. A medida que
viaja desde el origen al destino, un datagrama pasa a través de redes intermedias que pueden ser compartidos. Como
consecuencia, los extranjeros pueden ser capaces de obtener copias de los datagramas y examinar el contenido.
Una VPN combina lo mejor de ambos enfoques a través de Internet para transferir datos entre los sitios y tomar
medidas adicionales para asegurar que los datos no pueden ser accedidos por personas ajenas. Es decir, en lugar de
una conexión arrendada caro, una VPN utiliza el cifrado
- todos los paquetes enviados entre los sitios de una organización son encriptados antes de ser enviado.
Segundo. 30.17 Redes privadas virtuales (VPN) 527
Para hacer una VPN aún más impermeable a los ataques, una organización puede dedicarse routers dedicados
a la función VPN y utilizar un firewall para prohibir los routers VPN de aceptar cualquier paquete no autorizadas. Por
ejemplo, asumir cada uno de los routers de la figura
30.10b una empresa dedicada a la función de VPN (es decir, asumir que el sitio tiene routers adicionales que manejan el tráfico normal
hacia y desde Internet). Un servidor de seguridad protegiendo el router VPN en el sitio 1 puede restringir todos los paquetes entrantes
para tener una dirección IP de origen del enrutador VPN en el sitio 2 o el router VPN en el sitio 3. Del mismo modo, un servidor de
seguridad en cada uno de los otros dos sitios restringe los paquetes entrantes en ese sitio. Las restricciones ayudan a hacer que el
sistema resultante sea más inmune a tratar los ataques de suplantación y de denegación de servicio.
Aunque originalmente diseñado para interconectar sitios, la tecnología VPN se ha vuelto extremadamente
popular entre los empleados que teletrabajo ( es decir, el trabajo desde un lugar remoto). Hay dos formas de VPN:
independiente
Software VPN. Aunque un dispositivo autónomo que funciona bien para un empleado que trabaja en casa o
en una oficina remota, tales dispositivos son engorrosos para los empleados que viajan. Para tratar estos casos,
una organización usa software de VPN que se ejecuta en el ordenador personal del usuario. Un usuario se
conecta a Internet, y luego inicia la aplicación VPN. Cuando se inicia, la aplicación VPN interviene en sí en la
conexión a Internet. Es decir, el software VPN arregla para capturar todos los paquetes entrantes y salientes. Se
encripta cada paquete saliente y envía el paquete cifrada al servidor VPN corporativa, y descifra cada paquete
entrante.
528 Seguridad de la red Cap. 30
La discusión anterior de las VPN plantea una pregunta interesante: ¿cómo deben ser encriptados para la
transmisión de datos a través de Internet? Hay tres opciones principales:
El cifrado de carga útil. Para mantener el contenido de un datagrama confidencial, el cifrado de carga útil enfoque cifra el
área de carga útil de un datagrama, pero deja intacto el encabezado. Debido a que los campos de cabecera no están cifrados,
los extranjeros podrán aprender las direcciones de origen y de destino que se están utilizando, así como números de puerto de
protocolo. Por ejemplo, supongamos que el director financiero (CFO) es en un sitio y el presidente de la compañía está en otra.
Además supongamos que el director financiero envía un mensaje de correo electrónico corto al presidente cada vez que las
noticias financieras es buena, pero una larga explicación cada vez que las noticias financieras no es bueno. Un intruso puede
ser capaz de observar que poco después de un mensaje corto fluye entre dos equipos específicos, los aumentos de precios de
acciones.
IP-en-IP de túnel. Algunos VPN utilizan una IP-en-IP de túnel enfoque que mantiene oculta la información de
cabecera como datagramas pasan a través de Internet de un sitio a otro. Cuando encuentra un datagrama saliente,
el software VPN encripta el envío de todo el datagrama, incluyendo la cabecera, y coloca el resultado dentro de otro
para la transmisión de datagramas. Por ejemplo, considere las conexiones en la figura 30.10 se muestra en la página
526. Supongamos que un ordenador X en el sitio 1 crea un datagrama para un ordenador Y en el sitio 2. El datagrama
se reenvía a través del sitio 1 al enrutador R 1 ( es decir, el enrutador que conecta sitio 1 a la Internet). La instalación de
VPN en R 1 encripta el datagrama original y lo encapsula en un nuevo datagrama para la transmisión al router R 2, el
router en el sitio 2. Cuando llega el datagrama encapsulado, el software VPN en R 2 descifra la carga útil de extraer el
datagrama original y, a continuación, lo reenvía al destino Y. Figura 30.11 ilustra la encapsulación.
En la figura, (a) muestra el datagrama original, (b) muestra el texto cifrado que resulta de la encriptación, y (c) muestra
el datagrama exterior que se envía desde R 1 a R 2. Tenga en cuenta que las direcciones internas están ocultos porque todos
los datagramas que viaja a través de Internet entre los sitios 1 y 2 se enumeran los routers R 1 y R 2 como direcciones de origen
y de destino.
Para resumir:
Cuando una VPN utiliza encapsulación IP en IP, todos los campos del datagrama original se
cifran, incluyendo la cabecera original.
Segundo. 30.19 Cifrado de paquetes vs. tunneling 529
src = X =
Original (no cifrado) de carga útil (un)
Y dst
cifrar
src = R 1
Encriptado de datagramas de encapsulado para la transmisión (do)
dst = R 2
IP-en-túnel TCP. La tercera alternativa posible utilizado para mantener los datos confidenciales implica el uso de
un túnel TCP. Es decir, dos partes establecen una conexión TCP, y luego usar la conexión para enviar datagramas
cifrados. Cuando un datagrama debe ser enviado, todo el datagrama está cifrada, se añade una pequeña cabecera
para marcar el límite entre los datagramas, y el resultado se envía a través de la conexión TCP. Típicamente, la
cabecera consiste en un número entero de dos bytes que especifica la longitud del datagrama. En el otro extremo de la
conexión TCP, el software VPN receptor lee el encabezado y, a continuación, lee el número especificado de bytes
adicionales para obtener el datagrama. Una vez que se haya recibido la totalidad del texto cifrado para un datagrama, el
receptor decodifica y procesa el datagrama original.
La principal ventaja de la utilización de IP-en-TCP en vez de IP-en-IP surge de una entrega fiable: TCP asegura que
todos los datagramas enviados entre dos sitios llegan de manera fiable y en orden. La principal desventaja de la utilización de
IP-en-TCP es el bloqueo de cabeza de línea: porque todos los datagramas deben ser entregados en orden, si un segmento TCP
se pierde o se retrasa, el TCP no puede entregar los datos de segmentos sucesivos, incluso si han llegado correctamente . Si
pensamos en una VPN como la transferencia de una cola de paquetes, toda la cola permanece bloqueado hasta que el primer
datagrama ha sido entregado.
Una última cuestión se plantea con respecto a un túnel VPN: el rendimiento. Hay tres aspectos:
El rendimiento de
latencia
Estado latente. Para entender el problema de la latencia, considere una organización en la costa oeste de
los Estados Unidos, y asumir un empleado viaja a la costa este, aproximadamente 3.000 millas de distancia.
Recuerde que el software VPN simplemente transfiere datagramas de nuevo a la organización de origen - una
vez que alcanza la organización, un datagrama debe ser enviado a su destino. Por ejemplo, si el empleado
examina una página Web, cada solicitud debe viajar desde la ubicación actual del empleado al servidor VPN de la
organización, y de allí al servidor web. La respuesta debe viajar de vuelta al servidor VPN de la organización, y
finalmente al empleado en la ubicación remota. La latencia necesaria para acceder a un recurso cerca del
empleado es especialmente alto porque datagramas deben viajar desde el empleado a través de la VPN a la
organización en la costa oeste y de vuelta al recurso en la Costa Este. Como resultado, la ida y vuelta requiere un
datagrama para hacer cuatro recorridos del continente.
El rendimiento. Otro problema con una VPN convencional surge del rendimiento disponible en Internet. El problema
puede ser importante cuando se utilizan aplicaciones que han sido diseñadas para una LAN de alta velocidad. En algunas
organizaciones, por ejemplo, las páginas web que utilizan los empleados para el negocio interno de la compañía contienen
gráficos extensos. Una LAN en el sitio ofrece un rendimiento suficiente para realizar la descarga de páginas web rápida.
Para un usuario remoto conectado a través de VPN, de bajo rendimiento puede hacer que la espera de una página web
frustrante.
Gastos generales y la fragmentación. Un tercer aspecto de rendimiento surge porque túnel implica una sobrecarga
para un datagrama. Para entender el problema, supongamos que un sitio utiliza Ethernet y una aplicación ha creado un
datagrama que es de 1500 bytes de longitud (es decir, el datagrama es exactamente tan grande como la red MTU).
Cuando un router VPN encapsula el datagrama encriptado en otro datagrama IP, se añaden al menos veinte bytes
adicionales para la cabecera del datagrama exterior. El datagrama resultante excede la red de MTU, y será fragmentado
antes de la transmisión. Debido a que ambos fragmentos deben llegar antes de que el datagrama se pueden procesar, la
probabilidad de retraso o la pérdida es mayor.
Una variedad de tecnologías de seguridad se han inventado para su uso en Internet. Cabe destacar:
PGP (Pretty Good Privacy). Un sistema criptográfico que las aplicaciones pueden utilizar para
cifrar los datos antes de la transmisión. PGP fue desarrollado en el MIT, y es especialmente
popular entre los científicos de la computación.
SSH (Secure Shell). Un protocolo de capa de aplicación para el acceso remoto que garantiza la
confidencialidad mediante el cifrado de los datos antes de la transmisión a través de Internet.
SSL (Secure Socket Layer). Una tecnología diseñada originalmente por Netscape
Communications que utiliza el cifrado para proporcionar autenti-
Segundo. 30.20 Tecnologías de seguridad 531
catión y confidencialidad. software SSL encaja entre una aplicación y la API de socket, y encripta
los datos antes de la transmisión a través de Internet. SSL se utiliza en una conexión a Internet
para permitir a los usuarios realizar transacciones financieras de forma segura (por ejemplo, enviar
un número de tarjeta de crédito a un servidor web).
TLS (Transport Layer Security). Diseñado por el IETF a finales de 1990 como
sucesor de SSL, TLS se basa en la versión 3 de SSL. SSL y TLS están disponibles
para su uso con HTTPS.
HTTPS (HTTP seguridad). No es realmente una tecnología separada, HTTPS combina HTTP,
ya sea con SSL o TLS y un mecanismo de certificado de proporcionar a los usuarios
autenticados de comunicación, confidencial a través de la Web. HTTPS utiliza el puerto TCP
443 en lugar del puerto 80.
IPsec (seguridad IP). Un estándar de seguridad se utiliza con datagramas IP. IPsec utiliza
técnicas criptográficas, y permite al remitente para elegir autenticación (es decir, validar
remitente y el destinatario del datagrama) o confidencialidad (es decir, cifrar la carga útil del
datagrama).
RADIUS (acceso telefónico de autenticación remota de usuario Service). Un protocolo utiliza para
proporcionar autenticación centralizada, autorización y contabilidad. RADIUS es popular entre los ISP
que tienen usuarios de acceso telefónico y VPN con los sistemas que proporcionan acceso a los
usuarios remotos.
WEP (Wired Equivalent Privacy). Originalmente parte del estándar Wi-Fi inalámbrica LAN † utiliza
para mantener las transmisiones confidenciales. Investigadores de la Universidad de California en
Berkeley han demostrado que WEP tiene varios puntos débiles. Por lo tanto, un reemplazo se ha
desarrollado llamado WPA
( Wi-Fi Protected Access).
30.21 Resumen
Las redes de ordenadores e Internet pueden ser utilizados para actividades delictivas; principales amenazas son la suplantación
de identidad, falsedad, estafa, denegación de servicio, pérdida de control, y la pérdida de datos. Las técnicas utilizadas en ataques
incluyen: escuchas telefónicas, reproducir, desbordamiento de búfer, la dirección y el nombre de la suplantación de identidad, DoS con
el paquete y las inundaciones SYN, rotura de claves, escaneo de puertos, y la interceptación de paquetes.
Cada organización tiene que definir una política de seguridad que especifica los aspectos de la integridad de los datos
(protección contra el cambio), la disponibilidad de datos (protección contra la interrupción del servicio), y la confidencialidad o
privacidad de datos (protección contra el espionaje y el descubrimiento). Además, una organización debe considerar la rendición de
cuentas (es decir, cómo se mantiene un registro de auditoría) y autorización (es decir, cómo se pasa la responsabilidad de la
información de una persona a otra).
El conjunto de tecnologías que se han creado para proporcionar diversos aspectos de la seguridad incluyen:
cifrado, firmas digitales y certificados, cortafuegos, sistemas de detección de intrusos, inspección profunda de
paquetes, escaneo de contenido y redes privadas virtuales. El cifrado es una de las tecnologías más fundamentales
que se utiliza en muchos mecanismos de seguridad.
cifrado de clave privada utiliza una única clave para cifrar y descifrar mensajes; el emisor y el receptor deben mantener
en secreto la clave. Los sistemas de cifrado de clave pública utiliza un par de claves; una clave se mantiene en secreto y la
otra (la clave pública) se anuncia ampliamente. Las firmas digitales utilizan el cifrado para autenticar los mensajes. Una
autoridad llave puede emitir certificados para validar las claves públicas.
Un servidor de seguridad protege contra el ataque de un sitio mediante la limitación de los paquetes que pueden entrar o salir.
Para configurar un servidor de seguridad, un administrador diseña un conjunto de reglas que dan valores específicos para los campos
de la cabecera del paquete. Sistemas de detección de intrusiones que mantienen información de estado puede identificar ataques
Redes privadas virtuales (VPNs) proporcionan los beneficios de confidencialidad y de bajo coste. La tecnología VPN
permite a un empleado trabajar a distancia. Para mantener la información confidencial, un remitente puede cifrar la carga
útil, el uso de túneles IP-en-IP, o el uso de túneles IP-en-TCP. Tunneling tiene la ventaja de la encriptación de cabeceras de
los paquetes así como la carga útil. Algunas aplicaciones no funcionan bien a través de una VPN, ya que una VPN tiene
retraso mayor, menor rendimiento y una mayor sobrecarga de una conexión directa.
Existen muchas tecnologías de seguridad. Los ejemplos incluyen: PGP, SSH, SSL, TLS, HTTPS, IPsec,
RADIUS, y WEP.
CEREMONIAS
30.1 Enumerar los principales problemas de seguridad en Internet, y dar una breve descripción de cada uno.
30.3 Supongamos que un atacante encuentra una manera de almacenar una unión en su servidor DNS local arbitraria. ¿Cómo puede utilizar
30.4 Ataques DoS menudo enviar segmentos TCP SYN. ¿Puede un atacante también crear un ataque de denegación de servicio mediante el
30.5 Si una contraseña contiene ocho letras y dígitos superiores y minúsculas, el número de contraseñas posible que un atacante
podría necesitar intentar obtener acceso?
30.7 Supongamos que una empresa diseña una política de seguridad que especifica que están autorizados únicamente a personal de
recursos humanos para ver los archivos de nómina. ¿Qué tipo de mecanismo se necesita para implementar la política? Explique.
30.9 ¿Qué es una lista de control de acceso (ACL), y cómo se utiliza una ACL?
30.12 Suponga que su amigo tiene una clave pública y privada para el uso con el cifrado de clave pública.
Puede su amigo que enviar un mensaje confidencial (es decir, un mensaje que sólo se puede leer)? ¿Por qué o por qué
no?
30.13 Si usted y un amigo tienen cada uno un par de claves pública y privada para un sistema de cifrado de clave pública, ¿cómo
puede usted y su amigo realizar la comunicación diaria sin ser engañado por un ataque de repetición?
30.14 ¿Cómo pueden dos partes utilizar el cifrado de clave pública para firmar un contrato que se envía a un
¿tercero?
30.15 ¿Qué es un certificado digital?
30.17 Muchos productos de firewall comerciales permiten a un administrador para especificar los paquetes de negar también
como paquetes a aceptar. ¿Cuál es la desventaja de una configuración que permite la negación?
30.18 Vuelva a escribir la configuración del cortafuegos en la figura 30.9 para permitir que una persona ajena a ping a cada una de las
tres servidores.
30.19 Vuelva a escribir la configuración del cortafuegos en la figura 30.9 para mover el servidor de correo electrónico a la com-
30.20 Lea acerca de los sistemas IDS comerciales, y hacer una lista de los ataques de los sistemas pueden detectar.
30.21 Considere un sistema de DPI que busca una cadena de bytes K en cada paquete. Si un paquete
contiene 1486 bytes de carga útil, ¿cuál es el número de caso peor de las comparaciones que se deben hacer para
examinar el paquete asumiendo un algoritmo de coincidencia directa?
30.22 ¿Por qué no inspección profunda de paquetes utilizado en las redes de alta velocidad?
30.24 ¿Cuáles son las tres formas en que una VPN puede transferir datos a través de Internet?
30.25 Cuando una VPN utiliza un túnel IP en IP, lo que impide que un atacante de la lectura de la cabecera
del datagrama original?
30.26 En algunos sistemas VPN, un remitente agrega un número aleatorio de bits cero a un datagrama antes de cifrar, y el
receptor descarta los bits adicionales después de que el datagrama ha sido descifrado. Por lo tanto, el único efecto del
relleno aleatorio es hacer que la longitud del datagrama cifrado independiente de la longitud de la versión sin cifrar.
¿Por qué es importante la longitud?
30.27 Lista ocho tecnologías de seguridad utilizadas en Internet, y describen el propósito de cada uno.
30.28 Lea acerca de vulnerabilidades en el protocolo WEP. ¿Cómo evita el protocolo WPA del
¿problemas?
Contenido del capítulo
Administración de redes
(SNMP)
31.1 Introducción
capítulos anteriores describen una variedad de aplicaciones convencionales que utilizan Internet. En este
capítulo se expande nuestro estudio de las aplicaciones de red, considerando la gestión de redes. El capítulo
presenta un modelo conceptual utilizado en la industria, y utiliza el modelo para explicar el alcance de las
actividades de gestión. Después de explicar por qué la gestión de la red es a la vez importante y difícil, el capítulo
se describen las tecnologías de gestión de red. En él se examinan las herramientas que están disponibles,
incluyendo software de aplicación que los gerentes utilizan para medir o controlar los conmutadores, routers y
otros dispositivos que constituyen una intranet. El capítulo explica el paradigma general utilizado por los sistemas
de gestión, y describe la funcionalidad que proporcionan dichos sistemas. Por último, el capítulo considera un
ejemplo específico de un protocolo de gestión de red,
UN gerente de Redes, a veces llamada administrador de red, es una persona responsable de la planificación,
instalación, operación, monitoreo y control de los sistemas de hardware y software que constituyen una red de
ordenadores o de una intranet. Un gerente planea una red que cumple con los requisitos de rendimiento, supervisa las
operaciones, detecta y corrige los problemas que hacen que la comunicación ineficaz o imposible, y trabaja para evitar
condiciones que producirán un problema nuevo. Debido a que ya sea hardware o fallos de software pueden causar
problemas, un administrador de red debe controlar tanto.
535
536 Administración de redes (SNMP) Cap. 31
gestión de la red puede ser difícil por tres razones. En primer lugar, en la mayoría de las organizaciones, la intranet es
heterogénea - la intranet contiene componentes de hardware y de software fabricados por varias compañías. En segundo lugar, la
tecnología cambia constantemente, lo que significa que los nuevos terminales y nuevos servicios aparecen constantemente. En
tercer lugar, la mayoría de las intranets son grandes, lo que significa que algunas partes de la intranet están alejados de los
demás. La detección de la causa de un problema de comunicación en un dispositivo remoto puede ser especialmente difícil.
gestión de la red también es difícil porque muchos mecanismos de red están diseñados para superar los problemas de
forma automática. Los protocolos de enrutamiento evitan fallos y pérdida de paquetes intermitente puede pasar desapercibida
porque TCP retransmite automáticamente. Por desgracia, la recuperación automática de errores tiene consecuencias.
retransmisión de paquetes utiliza un ancho de banda de red que podría ser utilizado para enviar los nuevos datos. Del mismo
modo, un fallo de hardware no detectado puede llegar a ser crítica si una ruta de respaldo también falla.
Para resumir:
utiliza la industria de las redes del modelo FCAPS para caracterizar el alcance de la gestión de red.
El acrónimo se deriva de recomendación M.3400 publicado por la Unión Internacional de
Telecomunicaciones (UIT) †. FCAPS se expandió a una lista de cinco aspectos de la gestión. Figura 31.1
resume el modelo.
Abreviatura Sentido
Contabilidad y facturación P
† M.3400 es parte de una serie de normas que especifican cómo una Red de Gestión de Telecomunicaciones
( RGT) debe ser configurado y operado.
Segundo. 31.3 FCAPS: El Modelo Estándar de la Industria 537
Detección de fallos y corrección. Fallo cuentas de detección para una parte importante del aspecto operacional de
gestión de red. Un gerente supervisa los equipos de red para detectar problemas y toma las medidas adecuadas para
corregir el problema. Los posibles fallos incluyen fallos de software (por ejemplo, un fallo del sistema operativo en un
servidor), fallos de enlace (por ejemplo, alguien corta accidentalmente una fibra óptica), y fallos del equipo (por ejemplo, la
fuente de alimentación falla en un router).
A menudo, los usuarios informan de fallos por citar un síntoma de alto nivel tales como “acabo de perder el acceso a un disco
compartido.” Un gerente debe investigar para determinar si el problema radica en el software, la seguridad (por ejemplo, una nueva
contraseña), un servidor, o un enlace. Se dice que un gerente lleva a cabo análisis de las causas. A menudo, un administrador puede
determinar la causa mediante la correlación de muchos informes. Por ejemplo, si muchos usuarios en un sitio de repente comienzan a
quejarse de que una variedad de servicios no están disponibles, un administrador podría sospechar que el problema radica en una
Configuración y funcionamiento. Puede parecer que la configuración es un aspecto trivial de gestión de red, ya que la
configuración sólo necesita ser realizado una vez - después de haber sido creada, una configuración se puede guardar por lo que un
dispositivo se instala de forma automática la configuración durante un reinicio. De hecho, la configuración es compleja por tres
razones. En primer lugar, una red contiene muchos dispositivos y servicios, y las configuraciones debe ser consistente a través de
todos los dispositivos. En segundo lugar, a medida que se añaden nuevos equipos y servicios o cambiar las políticas, un administrador
de red debe tener en cuenta todas las configuraciones para asegurar toda la red implementa los cambios correctamente. En tercer
lugar, las herramientas actuales permiten a un administrador para configurar los dispositivos individuales y protocolos individuales; no
hay una manera fácil de configurar un conjunto de dispositivos heterogéneos.
Contabilidad y facturación. En muchas intranets corporativas, contabilidad y facturación es trivial. La empresa cobra
el costo de funcionamiento de una red a una cuenta central, al igual que el costo de la energía eléctrica o el servicio
telefónico. En las redes ISP, sin embargo, contabilidad y facturación pueden consumir más de tiempo de un gerente que
cualquier otro aspecto de la gestión. Por ejemplo, si un ISP ofrece el servicio niveles con los límites en el tráfico que se
pueden enviar, un sistema debe tener en cuenta el tráfico de cada cliente por separado. A menudo, los acuerdos de
servicios especifican que la cuota de un cliente paga depende de una medida como el total de bytes que un cliente envía
por día. Por lo tanto, es importante medir todo el tráfico de un cliente y mantener registros detallados que pueden utilizarse
para generar un proyecto de ley.
Evaluación de rendimiento y optimización. Un gestor realiza dos tipos de evaluación del desempeño: evaluación
de diagnóstico para detectar problemas e ineficiencias y
evaluación de la tendencia que permite a un administrador para anticipar la necesidad de aumentar la capacidad.
Diagnóstico busca la manera de maximizar la utilización de una red existente. Por ejemplo, si un administrador encuentra
un camino con baja utilización, el gerente puede buscar formas de transferencia de tráfico en el camino. evaluación de la
tendencia busca la manera de aumentar el rendimiento de la red para satisfacer las necesidades futuras. Por ejemplo, la
mayoría de los gerentes miran utilización en el enlace entre su organización e Internet, y hacer planes para aumentar la
capacidad del enlace cuando el promedio de utilización sube por encima de 50%.
Garantía de seguridad y protección. Ya que atraviesa las capas de la pila de protocolo y se extiende por varios
dispositivos, la seguridad es uno de los aspectos más difíciles de la red
538 Administración de redes (SNMP) Cap. 31
administración. En particular, la seguridad sigue la analogía más débil-link: toda la seguridad de un sitio puede verse comprometida
si la configuración es incorrecta en un solo dispositivo. Por otra parte, porque los atacantes continuamente idear nuevas formas de
romper la seguridad, una red que es seguro en un momento dado puede verse comprometida más adelante a menos que un
administrador realiza cambios.
sistemas de gestión de red utilizan el término genérico elemento de red para referirse a cualquier dispositivo de
red, sistema o mecanismo que puede ser gestionado. Aunque muchos elementos de red constan de un dispositivo
físico, la definición abarca servicios tales como DNS. Figura 31.2 enumera ejemplo elementos de red.
Servidor DNS
La industria utiliza el término gestión de elementos para referirse a la configuración y el funcionamiento de un elemento de
red individual. Por desgracia, la mayoría de las herramientas disponibles sólo proporcionan gestión de elementos. Por lo tanto, para
crear un servicio de extremo a extremo, un gerente debe configurar cada elemento de red a lo largo del camino. Por ejemplo, para
crear un túnel MPLS a través de múltiples routers, un gerente debe configurar cada router de forma independiente. Del mismo modo,
para poner en práctica una política a través de toda una red, un administrador debe configurar cada elemento.
Por supuesto, es fácil para un ser humano a cometer un error al configurar muchos dispositivos, lo que hace de
gestión de elementos susceptibles a la mala configuración. Más importante aún, para diagnosticar un error, un gerente
debe examinar un sistema a la vez. La cuestión es:
Debido a que sólo permite a un administrador para configurar, supervisar o controlar un elemento
de red a la vez, un sistema de gestión de elementos es un trabajo intensivo y propenso a errores.
Segundo. 31.4 Ejemplo elementos de red 539
herramientas de gestión de red se pueden clasificar en doce categorías que caracterizan su uso
general:
Flujo de Monitoreo
tráfico
pruebas de capa física incluye pruebas de sensor portador encontrado en muchas tarjetas de interfaz de LAN y medidores de
intensidad inalámbricos utilizados para medir la potencia de la señal RF. Silbido proporciona el mejor ejemplo de una herramienta de
analizador de paquetes, también llamado analizador de protocolo, captura y exhibe los paquetes o estadísticas sobre los paquetes; el Etéreo
analizador está disponible para su descarga.
Una herramienta de descubrimiento de red produce un mapa de la red mediante dispositivos de sondeo. A menudo, un gestor
utiliza un mapa para encontrar tales los elementos de una red, y luego utiliza una herramienta de interrogación del dispositivo para
- Típicamente, un administrador configura un dispositivo para enviar una alerta cuando se cruzan ciertos umbrales (por ejemplo, la
utilización de un enlace alcanza el 80%), y una herramienta de monitorización muestra una alerta en la estación de trabajo de un
gerente. Rendimiento rendimiento herramientas de monitorización gráfica en el tiempo para ayudar a descubrir las nuevas tendencias
gerente.
Fluya herramientas de análisis, como por ejemplo un analizador de NetFlow, también ayudará a detectar tendencias gerente.
En lugar de limitarse a informar sobre el tráfico en general, un analizador de flujo pueden ayudar a un administrador de cambios
Enrutamiento, ingeniería de tráfico, y herramientas de configuración están relacionados. Cada uno ayuda a un gestor de
elementos de control. las herramientas de trazado controlan la configuración y el seguimiento de los protocolos de enrutamiento de
actualización y las tablas de reenvío que resultan de los cambios de itinerario. herramientas de ingeniería de tráfico se centran en la
configuración y monitoreo de túneles MPLS y los parámetros de calidad de servicio relacionados. herramientas de configuración de uso
general permiten a un administrador para instalar o cambiar la configuración de los elementos. En particular, algunas herramientas de
configuración automatizar la tarea repetitiva de hacer un cambio en un conjunto de elementos (normalmente idénticas).
540 Administración de redes (SNMP) Cap. 31
Por ejemplo, si un servidor de seguridad cambios de reglas y un sitio tiene múltiples servidores de seguridad, una herramienta de
configuración automatizada (a menudo un script Perl) puede instalar el mismo cambio en cada uno.
Existen muchas herramientas de seguridad, y controlar una variedad de elementos de seguridad. Algunas herramientas de
seguridad permiten a un administrador para especificar una política, y la herramienta o bien intenta configurar dispositivos para hacer
cumplir la política o los intentos de medir dispositivos para asegurar que la política está en vigor. Un administrador puede utilizar otras
herramientas de seguridad para poner a prueba la seguridad - la herramienta intenta atacar dispositivos o servicios, y los informes al
Planificación de la red es compleja, y herramientas de planificación se encuentran entre los más sofisticados. Por ejemplo,
existen herramientas que los algoritmos de programación lineal de ejecución para ayudar a una arquitectura de red gestor de optimizar
la gestión del tráfico o sobre plano. También existen herramientas que ayudan a un gestor de evaluar los puntos débiles (por ejemplo,
identificar lugares en la red donde dos o más fallos de hardware van a desconectar a los usuarios a través de Internet).
Para resumir:
Una amplia variedad de herramientas que ayudan existe un gestor de configuración, medir, diagnosticar y
analizar las redes.
La mayoría de las herramientas descritas anteriormente operar sobre una red. Es decir, un gestor mantiene en un solo
lugar y utiliza la tecnología de red para comunicarse con un elemento de red determinado. Sorprendentemente, gestión de la
red no se define como una parte integral de protocolos de bajo capa. En su lugar, los protocolos utilizados para monitorear y
dispositivos de red de control operan a nivel de aplicación. Cuando un gerente tiene que interactuar con un dispositivo de
hardware específico, el administrador ejecuta un programa de aplicación que actúa como un cliente y un programa de
aplicación en el dispositivo de red actúa como un servidor. El cliente y el servidor usan protocolos de transporte
convencionales, tales como UDP o TCP para interactuar. Por otra parte, en lugar de construir una red separada, la mayoría de
los gerentes envían el tráfico de administración través de la red de producción.
Para evitar la confusión entre los programas de aplicación que invocan los usuarios y aplicaciones que están
reservadas para los administradores de red, sistemas de gestión de redes evitan los términos cliente y servidor. En su
lugar, la aplicación cliente que se ejecuta en el equipo del jefe se llama gerente, y un servidor que se ejecuta en un
dispositivo de red se denomina
agente †.
El uso de protocolos de transporte convencionales para transportar el tráfico de administración puede parecer ineficaz debido a
fallos en cualquiera de los protocolos o hardware subyacente pueden prevenir los paquetes de viajar hacia o desde un dispositivo, por
lo que es imposible controlar un dispositivo mientras que las fallas se están produciendo. Algunos operadores de red instalar hardware
separado para manejar la gestión de dispositivos altamente críticos (por ejemplo, un módem de acceso telefónico está conectado
directamente a un router de alta velocidad como una copia de seguridad para un administrador para utilizar en caso de que la red
principal es intransitable). En la práctica, rara vez se necesitan este tipo de sistemas. El uso de un protocolo de aplicación para la
gestión de la red funciona bien por dos razones. En primer lugar, en los casos en que un hardware
† A pesar de que vamos a seguir la convención de usar gerente y agente, El lector debe tener en cuenta que ellos operan como cualquier
cliente y el servidor.
Segundo. 31.6 Aplicaciones de Gestión de Red 541
fracaso impide la comunicación, un gerente puede comunicarse con los dispositivos que permanecen funcionales y el uso éxito o el
fracaso para ayudar a localizar el problema. En segundo lugar, utilizando protocolos de transporte convencionales significa
paquetes de un gerente estarán sujetos a las mismas condiciones que el tráfico normal. Por lo tanto, si los retrasos son altos, un
gerente se enterará de inmediato.
El protocolo estándar utilizado para la gestión de la red se conoce como el Simple Network Management
Protocol (SNMP); el estándar actual es la versión 3, escrito SNMPv3.
El protocolo SNMP define exactamente cómo un administrador se comunica con un agente. Por ejemplo, SNMP define el
formato de las solicitudes que un administrador envía a un agente y el formato de las respuestas que devuelve un agente.
Además, SNMP define el significado exacto de cada posible petición y respuesta. En particular, SNMP especifica que un
mensaje de SNMP se codifica usando un estándar conocido como Resumen de sintaxis Notation.1 (ASN.1) †.
Aunque los detalles completos de codificación ASN.1 están más allá del alcance de este texto, un ejemplo sencillo
ayudará a explicar la codificación: considerar el envío de un número entero entre un agente y un director. Para dar cabida a
valores grandes sin desperdiciar espacio en cada transferencia, ASN.1 utiliza una combinación de duración y el valor para cada
objeto que se transfiere. Por ejemplo, un número entero entre 0 y 255 pueden ser transferidos en un solo octeto. Enteros en el
rango 256 mediante 65535 requerir dos octetos, mientras que los números enteros más grandes requieren tres o más octetos.
Para codificar un número entero, ASN.1 envía un par de valores: una longitud, L, seguido por L octetos que contienen el número
entero. Para permitir la codificación de arbitrariamente grandes números enteros, ASN.1 también permite que la longitud para
ocupar más de un octeto; longitudes extendidas normalmente no son necesarias para los enteros utilizados con SNMP. La
figura 31.3 ilustra la codificación.
27 1B 01 1B
792 318 02 03 18
24567 5FF7 02 5F F7
190345 2E789 03 02 E7 89
† El nombre se pronuncia sintaxis abstracta uno notación de puntos, y la abreviatura se pronuncia por la lectura de los caracteres, ASN dot
uno.
542 Administración de redes (SNMP) Cap. 31
El protocolo SNMP no define un gran conjunto de comandos. En cambio, el protocolo utiliza una fetch-tienda de paradigma en el
que hay dos operaciones básicas: ha podido recuperar, utilizado para obtener un valor de un dispositivo, y almacenar, se utiliza para
establecer un valor en un dispositivo. Cada objeto que se pueden recuperar o almacenada se le da un nombre exclusivo; un comando
que especifica una operación de extracción o tienda debe especificar el nombre del objeto.
Debería ser obvio cómo las operaciones de obtención se puede utilizar para controlar un dispositivo u obtener su estado: un
conjunto de objetos de estado debe ser definido y dado nombres. Para obtener información de estado, un gerente obtiene el valor
asociado a un objeto dado. Por ejemplo, un objeto puede ser definido que cuenta el número de tramas de un dispositivo descarta
porque la suma de comprobación de trama es incorrecta. El dispositivo debe estar diseñado para incrementar el contador cada vez
que se detecta un error de suma de comprobación. Un administrador puede utilizar SNMP a buscar el valor asociado con el contador
para determinar si los errores de suma de comprobación se están produciendo.
Utilizando el paradigma de búsqueda hacia tienda para controlar un dispositivo puede no parecer obvio; operaciones de
control se definen como el efecto secundario de almacenar en un objeto. Por ejemplo, SNMP no incluye comandos separados a Reiniciar
un contador de error de suma de comprobación o para reiniciar un dispositivo. En el caso del contador de error de suma de control, el
almacenamiento de un cero en el objeto es intuitivo debido a que restablece un contador a cero. Para operaciones como iniciar el
sistema, sin embargo, un agente SNMP debe ser programado para interpretar una almacenar solicitar y para ejecutar la secuencia
correcta de operaciones para lograr el efecto deseado. Por lo tanto, el software SNMP podría definir un objeto de reinicio, y
especificar que el almacenamiento de cero en el objeto hará que el sistema se reinicie. Por supuesto, los objetos SNMP son virtuales
en el sentido de que el dispositivo subyacente no implementa directamente. En su lugar, un agente recibe las solicitudes y realiza
acciones que corresponden a cada ha podido recuperar o almacenar operación. Para resumir:
SNMP utiliza el paradigma de búsqueda hacia la tienda para la interacción entre un gestor y un agente.
Un gestor obtiene los valores para determinar el estado del dispositivo; las operaciones que controlan
el dispositivo se definen como los efectos secundarios de almacenar en objetos.
Cada objeto al que tiene acceso SNMP debe estar definido y dado un nombre único. Además, tanto los programas de
gestión y agente deben ponerse de acuerdo sobre los nombres y los significados de traer y almacenar operaciones. En
conjunto, el conjunto de todos los objetos SNMP puede acceder se conoce como una Base de Información de Gestión (MIB).
De hecho, la definición de una MIB no está directamente relacionado con SNMP. En su lugar, el estándar SNMP sólo
especifica el formato del mensaje y describe cómo se codifican los mensajes; una norma separada especifica variables MIB
junto con el significado de traer y almacenar las operaciones en cada variable. De hecho, las normas separadas
documentos especifican variables MIB para cada tipo de dispositivo.
Segundo. 31.9 El MIB SNMP y nombres de objetos 543
Los objetos de una MIB se definen con la estructura de nombres ASN.1, que asigna a cada objeto un prefijo
largo que garantiza el nombre será único. Por ejemplo, un número entero que cuenta el número de datagramas IP un
dispositivo ha recibido se denomina:
Además, cuando el nombre del objeto se representa en un mensaje SNMP, cada parte del nombre se le asigna un
número entero. Por lo tanto, en un mensaje SNMP, el nombre de ipInReceives
es:
1.3.6.1.2.1.4.3
Debido a que SNMP no especifica un conjunto de variables MIB, el diseño es flexible. Nuevas variables MIB pueden
ser definidos y estandarizados, según sea necesario, sin necesidad de cambiar el protocolo básico. Más importante, la
separación del protocolo de comunicación de la definición de objetos permite a cualquier grupo que defina variables MIB,
según sea necesario. Por ejemplo, cuando un nuevo protocolo está diseñado, el grupo que crea el protocolo puede definir
variables MIB que se utilizan para supervisar y controlar el software de protocolo. Del mismo modo, cuando un grupo crea un
nuevo dispositivo de hardware, el grupo puede especificar variables MIB que se usa para monitorear y controlar el
dispositivo.
A medida que los diseñadores originales previstos, se han creado muchos conjuntos de variables MIB. Por
ejemplo, hay variables MIB que corresponden a protocolos como UDP, TCP, IP y ARP, así como variables MIB de
hardware de red, como Ethernet. Además, los grupos han definido MIB para los dispositivos de hardware tales como
routers, interruptores, módems, e impresoras †.
Además de las variables simples, tales como números enteros que corresponden a los contadores, una MIB puede
incluir variables que corresponden a las tablas o matrices. Tales definiciones son útiles porque corresponden a la aplicación
de información en un sistema informático. Por ejemplo, considere una tabla de reenvío IP. En la mayoría de las
implementaciones, la tabla de reenvío puede ser visto como un conjunto de entradas, donde cada entrada contiene una
dirección de destino y un siguiente salto utilizado para llegar a esa dirección.
A diferencia de un lenguaje de programación convencional, ASN.1 no incluye una operación de índice. En cambio,
las referencias indexadas están implícitos - el remitente debe saber que el objeto que se hace referencia es una mesa, y
debe agregar la información de indexación en el nombre del objeto. Por ejemplo, la variable MIB:
† Además de las variables MIB genéricos que funcionan con un dispositivo arbitraria, muchos vendedores definen variables MIB específicas para su
hardware o software.
544 Administración de redes (SNMP) Cap. 31
corresponde a una tabla † reenvío de IP, cada entrada de los cuales contiene varios campos. Conceptualmente, la tabla
está indexada por la dirección IP de destino. Para obtener el valor de un campo determinado en una entrada, un
administrador especifica un nombre de la forma:
dónde campo corresponde a uno de los campos válidos de una entrada, y IPdestaddr es una dirección IP 4octet que
se utiliza como un índice. Por ejemplo, el campo ipRouteNextHop
corresponde a la siguiente salto en una entrada. Cuando se convierte en la representación entera, la solicitud de un siguiente salto
se convierte en:
1.3.6.1.2.1.4.21.1.7. destino
31.12 Resumen
Un administrador de red es una persona que vigila y controla los sistemas de hardware y software que constituyen una
intranet. El modelo FCAPS define los cinco aspectos básicos de la gestión de red para ser la detección de fallos, configuración,
contabilidad, análisis de rendimiento, y la seguridad. Existe una variedad de herramientas para ayudar a un administrador en el
desempeño de las funciones de gestión. Debido a que la mayoría de las herramientas de gestión de elementos sólo proporcionan,
un gerente debe manejar las tareas que atraviesan los dispositivos manualmente.
Dado que el software de gestión de red utiliza el modelo cliente-servidor, el software requiere de dos componentes.
El componente que se ejecuta en el ordenador de un gerente y actúa como un cliente se le llama gerente; el componente
que se ejecuta en un dispositivo en la red y actúa como un servidor se llama agente.
los Simple Network Management Protocol (SNMP) es el protocolo de gestión de red estándar utilizado en Internet.
SNMP define el formato y el significado de los mensajes que un cambio de gestor y el agente. En lugar de definir
muchas operaciones, SNMP utiliza el paradigma de búsqueda hacia la tienda en la que un administrador envía
solicitudes para acarrear los valores
† Recordemos que una tabla de reenvío se conocía originalmente como una tabla de ruteo; el cambio en la terminología se produjo en la década de 2000.
Segundo. 31.12 Resumen 545
o de almacenar valores en variables. Todas las operaciones se definen como los efectos secundarios de operaciones de la tienda.
SNMP no define el conjunto de variables que se pueden utilizar. En lugar de ello, las variables y sus significados se
definen en las normas separadas, por lo que es posible que los grupos para definir un conjunto diferente de variables MIB
para cada dispositivo de hardware o protocolo. Los nombres de variables MIB se nombran usando el estándar ASN.1;
todas las variables MIB tienen, nombres ASN.1 jerárquicos largas, que se traducen a una representación numérica más
compacto para su transmisión. ASN.1 no incluye los tipos de datos agregados, tales como tablas o matrices, ni tampoco
incluye un operador de subíndice. En su lugar, para hacer una variable MIB emular una tabla o una matriz, ASN.1 se
extiende el nombre variable añadiendo la información del índice.
CEREMONIAS
31.2 Si un usuario se queja de que no pueden acceder a un servicio dado, que los aspectos de la queja FCAPS podría
potencialmente implicar?
31.3 Si un mal funcionamiento del cortafuegos, que los aspectos de FCAPS cae la situación bajo? ¿Por qué?
31.4 Encuentra dos ejemplos de elementos manejables distintos de los enumerados en la figura 31.2.
31.7 Lo que hace términos de gestión de red en lugar de usar software cliente y ¿servidor?
31.8 ASN.1 define el formato exacto de un número entero. ¿Por qué la norma ASN.1 se limitan a indicar que cada entero es
un valor de 32 bits?
31.9 Se ha argumentado que no se debe utilizar una red para depurar un problema en la red. ¿Por qué utiliza la
misma red SNMP que está depurando?
31.10 Escribir un programa que lea un número entero arbitrariamente grande en decimal, codifica el número entero
31.11 ¿Cuáles son las dos operaciones básicas que utiliza SNMP?
31.12 Descargar software de gestión SNMP libre, y tratará de comunicarse con un dispositivo tal como una
impresora.
31.13 Cómo define SNMP un nombre para cada variable MIB posible? Explique.
31.14 ¿Cuál es la principal ventaja de añadir información de índice a un nombre en lugar de utilizar una
array convencional que está indexado por números enteros?
31.15 Lea acerca de cómo ASN.1 codifica nombres y valores. Escribir un programa informático para ES-
código y decodificación de ASN.1 nombres como el nombre asignado a ipInReceives.
Contenido del capítulo
Tendencias en tecnologías
de redes y usos
32.1 Introducción
Uno de los aspectos más intrigantes de Internet surge de la incorporación constante de nuevas
aplicaciones y tecnologías de redes. Las aplicaciones que dan cuenta de la mayoría de los paquetes de
Internet se han inventado en la década pasada. Estas aplicaciones no eran factibles cuando Internet se
inventó porque se basan en las nuevas tecnologías y la infraestructura subyacente.
En este capítulo se resumen algunas de las tendencias en las tecnologías de redes, aplicaciones y servicios. El
capítulo considera los desarrollos recientes, así como la investigación a más largo plazo.
En un sentido estricto, el modelo cliente-servidor de la comunicación significa que una aplicación (un servidor)
comienza primero y espera el contacto de otra aplicación (un cliente). En un sentido más amplio, la industria de redes utiliza
el término Servidor de cliente para caracterizar una arquitectura en la que muchos clientes potenciales se conectan a un
servidor único, centralizado. Por ejemplo, una empresa que se ejecuta un servidor web puede esperar de contactos de los
usuarios arbitrarios. La desventaja de un servidor centralizado surge de la actuación resultante: como el número de clientes
se incrementa, el servidor (o la red de acceso que conduce al servidor) se convierten rápidamente en un cuello de botella,
sobre todo si cada cliente descarga muchos bytes de contenido.
547
548 Tendencias en tecnologías de redes y usos Cap. 32
El problema de cuello de botella servidor se considera una de las limitaciones más importantes de servicios de
Internet. En consecuencia, tanto la comunidad de investigación en red y la industria de redes han investigado formas de
proporcionar arquitecturas y tecnologías que permiten a los servicios de Internet a escala e incorporan las nuevas
tendencias; se están utilizando una variedad de enfoques. Las siguientes secciones describen varios. Para resumir:
Una variedad de tecnologías se han ideado para permitir que los servicios de Internet a escala; Aunque
los enfoques difieren ampliamente, cada uno es útil en algunos casos.
Una de las primeras tecnologías de escala se centró en el almacenamiento en caché de contenido web. Por ejemplo, los ISP a
menudo tienen una caché que guarda una copia de cada página web estática (es decir, una página en la que el contenido no cambia
rápidamente). Si norte de los usuarios del ISP traen la misma página, una sola solicitud debe ser enviada a la servidor de origen; N- 1 las
solicitudes pueden satisfacerse de la caché.
Empresas como Akamai han extendido la idea de almacenamiento en caché, ofreciendo un servicio de almacenamiento en
caché distribuido. Akamai tiene un conjunto de servidores ubicados en todo el Internet, y una organización puede contratar con Akamai
para precargar los cachés de Akamai con el contenido. Para asegurar que los cachés siguen siendo actuales, un cliente de la
organización puede actualizar el Akamai almacena en caché periódicamente. Los visitantes de la página web de la organización
obtienen gran parte del contenido de una memoria caché de Akamai cerca del lugar de hacerlo desde el servidor central de la
Debido a que la utilización es alta y muchos negocios minoristas dependen de la Web para las ventas directas a los
clientes, la optimización del servidor web ha recibido mucha atención. Uno de los mecanismos interesantes utilizados para
construir un sitio Web grande que se conoce como una equilibrador de carga. Un equilibrador de carga permite que un sitio
tiene múltiples computadoras cada uno ejecuta un servidor Web idéntica, y distribuye las solicitudes entrantes entre los
servidores físicos. La figura 32.1 ilustra la arquitectura.
Un equilibrador de carga examina cada petición HTTP entrante y envía la solicitud a uno de los servidores. El
equilibrador de carga recuerda peticiones recientes, y dirige todas las peticiones de una fuente dada al mismo servidor físico.
Para asegurar que todos los servidores devuelven la misma respuesta a una solicitud, los servidores utilizan un sistema de
base de datos común, compartido. Por lo tanto, si un cliente hace un pedido, todas las copias del servidor web podrán
acceder a la orden.
Segundo. 32.4 Web equilibradores de carga 549
severs físicos
base de
datos compartida
conexión a
Internet
..
.
equilibrador de carga
Figura 32.1 Ilustración de un equilibrador de carga usado para los sitios web a gran escala.
Otro giro en la escalabilidad surge de virtualización de servidores. La motivación comienza con una observación: muchos sitios
se ejecuta varios servidores (por ejemplo, un servidor de correo electrónico, servidor web y un servidor de base de datos). En una
arquitectura convencional, cada servidor debe ser colocado en un equipo físico. Un problema de rendimiento puede ocurrir debido a
que los servidores que se ejecutan en el ordenador UN están todos ocupados, pero los servidores que se ejecutan en el ordenador segundo
están ociosos.
En la década de 1990, varios grupos experimentaron con una técnica general para aumentar la velocidad de descarga de
archivos. En lugar de ir a buscar un archivo completo de un servidor central, un cliente recupera las piezas individuales de un
archivo. Por otra parte, las piezas del archivo se colocan en los servidores a través de Internet. Cada vez que un cliente necesita un
pedazo de un archivo, el cliente elige a buscar una copia de un servidor que se encuentra cerca. Para aumentar el número de
lugares en los que una pieza se puede encontrar, cada cliente que se obtiene una pieza del fichero se compromete a actuar como
un servidor que permite a otros clientes para obtener la pieza. El enfoque es conocido como un
Algunos de los sistemas P2P más ampliamente conocidos se han creado para permitir el intercambio de archivos de
música. Por ejemplo, Napster y Kazaa tanto siguen el enfoque p2p, y cada uno ha sido popular entre los adolescentes. Por
supuesto, un usuario típico no se preocupa por la tecnología subyacente - que sólo se preocupan de que el sistema les
permite obtener copias de los archivos de música. Muchos usuarios no son conscientes de que cuando utilizan un sistema
p2p, su ordenador está de acuerdo para propagar archivos a otros.
A pesar de que las memorias caché de contenido de carga, balanceadores de carga, la virtualización de servidores y
arquitecturas P2P pueden cada una escalabilidad aumento servidor, algunos sitios tienen tanto tráfico que se necesita otra solución: la
réplica de un sitio completo. Usamos el término centros de datos distribuidos para caracterizar el enfoque.
Como ejemplo, considere el motor de búsqueda Google. Google recibe mil millones de contactos al día. Para
manejar la carga, Google ha creado varios centros de datos, colocados en diferentes ubicaciones geográficas. Cuando un
usuario introduce el nombre de dominio www.google.com,
el usuario se dirige al centro de datos más cercano Google; el enfoque puede ser considerado una forma de equilibrio de carga entre
los sitios. Por supuesto, para proporcionar un servicio consistente, Google debe asegurar que un centro de datos dada vuelve
exactamente los mismos resultados de búsqueda como sus otros centros de datos.
Una de las tendencias más interesantes en redes surge de la adopción generalizada de la Extensible Markup
Language (XML). Inicialmente, XML fue diseñado para incorporar la estructura en documentos web por lo que el documento
podría ser entendido por múltiples aplicaciones. En lugar de las etiquetas de fijación, XML permite a un programador para
elegir las etiquetas arbitrarias, por lo que es posible dar a cada campo un nombre intuitivo. Por ejemplo, se puede suponer
un documento que contiene etiquetas < nombre>, <calle>, <ciudad>, <país>, <postal_code> incluye un registro de dirección
de una persona. Una de las ideas clave detrás de XML es su capacidad para codificar documentos auto-describen. Es
decir, el documento incluye una hoja de estilo que especifica la estructura del documento legítimo.
XML se ha convertido en un estándar de facto para la representación, y está siendo utilizado en una variedad de
nuevas formas que eran no anticipado en los primeros diseños. Por ejemplo, XML se utiliza en la interfaz entre un servidor
web y una base de datos, y algunos equilibradores de carga se han creado que puede analizar XML. Además, XML se utiliza
para controlar las descargas en dispositivos móviles y para representar las especificaciones utilizadas por los sistemas de
gestión de red.
Segundo. 32.9 Redes sociales 551
En la década de 2000, el uso de Internet pasó de un modelo de consumo a uno de interacción social entre pares.
Inicialmente, la mayoría de información en Internet fue suministrada por productores, organizaciones tales como compañías de
medios de comunicación. Un usuario individual consume información, pero no lo producen. Por la década de 2000, los sitios
como Facebook, Myspace y YouTube surgieron que permiten a cualquier usuario crear contenido, lo que significa que un usuario
típico es subir más datos.
El cambio en la interacción es más notable entre los usuarios más jóvenes. Muchos adolescentes han creado un
blog o suscrito a uno de los sitios mencionados anteriormente. En los EE.UU., un porcentaje no trivial de las parejas
recién casadas conoció a su pareja a través de un servicio en línea. Además, el uso del chat en línea y otras formas de
comunicación de persona a persona han aumentado.
La comunicación móvil es una de las tendencias más significativas, y los usuarios esperan ser conectado a Internet de forma
continua. La mayoría de los hoteles ofrecen conexiones a Internet a sus clientes, y las aerolíneas están ofreciendo servicios de
Internet en los aviones. El autor recientemente tomó un crucero, y estaba encantado de encontrar que la conexión a Internet a
bordo del barco funcionó tan bien que podría ser utilizado para las llamadas telefónicas de VoIP.
Irónicamente, mientras que la industria celular ha adoptado IP como una estrategia a largo plazo, la tecnología
conocida como IP móvil no ha sido adoptado por la industria de redes. En cambio, la mayoría de los usuarios móviles se
basan en Wi-Fi como tecnología de acceso local y utilizan el software VPN para conectar con sus negocios.
Los proveedores de cable están sustituyendo a las instalaciones de transmisión analógica con digital, y pronto serán la entrega
de contenido en formato digital sobre redes de paquetes. De hecho, muchos proveedores están utilizando IP como el protocolo de
El uso de IP para video crea oportunidades interesantes. En primer lugar, la televisión e Internet convergen, por lo que es fácil
de ver programas de televisión en un ordenador o utilizar un televisor digital como una pantalla de ordenador. Por otra parte, IP hace
que sea más fácil de implementar Bajo demanda vídeo, en el que un usuario puede acceder al contenido cuando se desee, para
controlar la reproducción de pausa y rebobinado funciones, y capturar el contenido en vivo para su posterior visualización.
552 Tendencias en tecnologías de redes y usos Cap. 32
A pesar de que la multidifusión en todo el Internet no ha gozado de mucho éxito, el paso a la IPTV ha estimulado el interés
en multidifusión. La motivación surge de un deseo de optimizar la entrega. A pesar de que un proveedor puede ofrecer cientos de
canales de contenido, un abonado dado por lo general sólo tiene unos pocos televisores que muestran contenido de en un
momento dado. Por otra parte, algunos canales usualmente atraen la mayor parte de los espectadores.
multidifusión IP permite a un abonado para registrar interés en un programa uniéndose a un grupo de multidifusión
para el programa. Los suscriptores en un barrio conectan a un segmento LAN lógica. Una vez que un suscriptor se une a un
grupo, el proveedor de cable comienza la multidifusión una copia del programa en el segmento de LAN. La multidifusión
continúa siempre que cualquiera de los suscriptores en el segmento están viendo el programa. La cuestión es:
Con la multidifusión IP, sólo una copia de un programa de televisión tiene que ser enviado a través
de un segmento de LAN lógica; multidifusión de un programa cesa una vez que no hay más
suscriptores están viendo el programa.
En el borde de las tecnologías de acceso a Internet, como DSL y cable módems proporcionar velocidades de datos de
múltiples megabits por segundo, dos órdenes de magnitud mayor rendimiento que una conexión telefónica doméstica. En
algunas áreas de los EE.UU., los proveedores de servicios están ofreciendo fibra hasta el hogar (FTTH), lo que aumenta la
velocidad de datos potencial de gigabits por segundo, tres órdenes de magnitud más allá de los módems DSL y de cable.
Los conmutadores Ethernet utilizados en centros de datos empresariales proporcionan 1 Gbps en el escritorio. enlaces de
mayor capacidad operan a 10 Gbps, y parece probable que las velocidades se incrementarán a 40 Gbps. Tales velocidades de datos
En el núcleo de la Internet, la gran pregunta es: ¿cómo podemos combinar las tecnologías ópticas y electrónicas? dispositivos
ópticos permiten a un proveedor para crear una trayectoria de la luz de extremo a extremo que opera a 10 Gbps, a menudo llamada lambda.
Aunque la mayoría de las tecnologías actuales requieren tiempos largos (varios segundos) para establecer una única trayectoria de la
luz, las nuevas tecnologías ópticas prometen reducir el tiempo. Como resultado, puede ser posible establecer una trayectoria de la luz
en menos de una milésima de segundo.
Si un paso de luz se puede establecer de forma rápida, ¿cómo debe usarse? En caso de que un ISP caminos uso de luz para
conectar los routers y luego utilizar las tecnologías de paquetes para el acceso? En caso de que un ISP establecer una trayectoria de la
luz cada vez que un usuario establece una conexión TCP? Las preguntas son la base de una importante área de investigación; la
mayoría de los grandes proveedores de Internet están convencidos de que la conmutación óptica será cada vez más importante.
Segundo. 32.15 En uso de las redes de negocios 553
La mayoría de las grandes empresas confían en las redes de ordenadores para todos los aspectos del negocio. Sin
embargo, las redes están cambiando los negocios de tres maneras. En primer lugar, la disponibilidad de la tecnología RFID está
cambiando la producción, el transporte, y el inventario. En segundo lugar, la disponibilidad de Capa 2 interruptores de alta
velocidad y tecnologías de paquetes de voz y de vídeo están haciendo posible la sustitución de viaje con sistemas de
teleconferencia de vídeo de alta calidad. En tercer lugar, muchas empresas se están alejando de una estricta cultura de mando y
control a un estilo más colaborativo de gestión en el que un equipo trabaja en conjunto para tomar decisiones. La disponibilidad
de herramientas y la infraestructura de red que soporta la interacción del grupo, tales como wikis, está haciendo posible para
colaborar en una red.
Bajo costo cableado y redes inalámbricas y dispositivos sensores de baja potencia han hecho posible la construcción de
grandes redes de sensores y conectar dichas redes para Internet. Los sensores se utilizan para medir el medio ambiente (por
ejemplo, controlar la calidad del aire y el agua o reunir información sobre el clima), seguir los movimientos de los animales salvajes,
ayudan a los agricultores monitorear los cultivos, controlar a las personas en edificios de oficinas, y evaluar el tráfico en las
carreteras.
Un uso particularmente interesante de sensores implica su uso en edificios residenciales. Ya es posible instalar
sensores que miden la temperatura y la humedad, o monitorear un hogar para peligros tales como el humo y
monóxido de carbono. Una red de sensores en casa puede ser conectado a Internet, lo que permite un propietario
para supervisar su hogar mientras viaja †. Pronto será posible obtener dispositivos de sensores de bajo coste, tal
como un sensor en cada bombilla de luz o un sensor en cada aparato.
Desde los primeros días de la creación de redes de paquetes, el Ejército de Estados Unidos ha financiado la investigación sobre
redes ad hoc que son auto-organización. Es decir, un conjunto de estaciones inalámbricas encontrar vecinos, elegir una topología, y
establecer enrutamiento que permite a cualquier estación para llegar a cualquier otra. La motivación del militar surge de una operación
imaginado donde los soldados llevan cada uno una estación de red inalámbrica, y las estaciones de formar un sistema de
comunicación de forma automática.
Ad hoc de redes está adquiriendo importancia en el mundo civil y, sobre todo en las zonas rurales y los países en
desarrollo. En los EE.UU., los agricultores están utilizando la tecnología ad hoc para conectar las granjas rurales a Internet. Cada
agricultor se instale una estación inalámbrica (por lo general en un edificio alto, como un silo), y las estaciones de acuerdo para
enviar paquetes, según sea necesario. En los países en desarrollo, las redes ad hoc se utilizan como una forma económica de
proporcionar acceso a Internet a todo un pueblo.
Las altas tasas de datos plantean un problema para los fabricantes de equipos de red: cómo construir sistemas que
pueden procesar paquetes rápidamente. enrutadores superiores deben manejar los paquetes que llegan a través de una interfaz
a 10 Gbps. los chips de propósito específico (ASIC) se pueden utilizar, pero estos chips son caros y llevan muchos meses para
diseñar o revisar. procesadores convencionales son suficientes para dispositivos de red de gama baja, como un router
inalámbrico utilizado en una casa, pero no tienen la potencia suficiente para velocidades de datos más altas.
los proveedores de chips ofrecen dos soluciones. En primer lugar, los proveedores de chips ofrecen las CPU de varios núcleos
que contienen cada una varios procesadores. Un enfoque distribuye los paquetes entrantes entre la
norte núcleos, lo que significa que un núcleo sólo manijas 1 / N de los paquetes. En segundo lugar, los proveedores de chips ofrecen procesadores
de red. Podemos pensar en un procesador de red como una CPU rápida que incluye múltiples núcleos y las instrucciones especiales
para manejar las tareas de procesamiento de paquetes comunes a gran velocidad. El punto es que los proveedores de equipos están
32.19 IPv6
No hay una lista de las tendencias de redes estaría completa sin una mención de IPv6. La obra original se inició en
1993, y el diseño ha estado en vigor durante muchos años. Originalmente, los autores afirmaron que era necesario porque
IPv6 IPv4 no podía manejar audio o vídeo, no era segura, y se quedaría sin direcciones. Cada año, desde la creación de
IPv6, varios grupos académicos e industriales haber predicho el destino de IPv4 y el surgimiento de IPv6. Mientras tanto, se
ha adaptado IPv4, se ejecuta aplicaciones multimedia, y tiene tanta seguridad como IPv6. NAT y CIDR direccionamiento
han extendido las capacidades de direccionamiento IPv4. IPv4 continúa como el protocolo fundamental de Internet. Algunos
operadores de telefonía celular, especialmente en Asia, consulte IPv6 como una manera de permitir el direccionamiento IP
en teléfonos celulares, pero los operadores también tienen la opción de diseñar un esquema de direccionamiento de capa
2.
En este momento, no hay ninguna razón técnica para adoptar IPv6. De hecho, ya que el procesamiento de paquetes IPv6
incurre en más gastos generales, moviéndose a IPv6 puede limitar las velocidades con que los paquetes pueden ser enviadas.
Por lo tanto, la motivación para IPv6 se convierte en una desventaja económica: es posible eliminar NAT a través de Internet y
tienen de extremo a extremo de direccionamiento, pero al hacerlo significará la sustitución de todos los equipos de red y
software. Es difícil decir cuando los clientes decidirán que el alto costo justifica un cambio.
32.20 Resumen
Internet sigue evolucionando. Nuevas aplicaciones y tecnologías se inventan constantemente. Las tendencias
actuales incluyen tecnologías para una mayor velocidad, mayor movilidad y capacidad de ampliación. En cuanto a las
aplicaciones de Internet, la tendencia ha sido hacia las redes sociales. Además, las nuevas tecnologías han permitido a los
usuarios medios para producir contenido.
Segundo. 32.20 Resumen 555
Las empresas están utilizando las herramientas que apoyan la gestión de colaboración, y están utilizando sistemas de teleconferencia
CEREMONIAS
32.3 Un sitio web con norte servidores físicos pueden no ser capaces de procesar norte veces el número de solicitudes por segundo, porque
los recursos compartidos pueden imponer un cuello de botella. Nombre dos recursos que son compartidos.
32.4 Además de permitir la ampliación, la virtualización de servidores puede permitir también un sitio para ahorrar energía durante los tiempos
32.6 ¿Tiene un centro de datos enfoque tiene sentido distribuido para que una empresa en la que cada solicitud web requiere el acceso a una
32.10 Cuando la fibra óptica se utiliza para entregar datos a una casa o negocio, cuánto más rápido posible
Se enviará los datos que con DSL o un módem por cable?
32.14 Nombre dos tecnologías utilizadas para aumentar la velocidad de routers y switches.
32.15 ¿Por qué los proveedores de telefonía celular especial interés en IPv6?
Esta página se ha dejado intencionadamente en blanco
Apéndice 1
Introducción
El capítulo 3 describe la API de socket que los programadores utilizan para construir los clientes y
servidores. Este apéndice presenta una alternativa: un API simplificada que permite a un programador para la
construcción de aplicaciones de red sin dominar los detalles de la interfaz de socket. El apéndice es autónomo, y
no requiere una comprensión de Internet o TCP / IP. Por lo tanto, el apéndice puede ser leído y comprendido antes
que el resto del texto se ha estudiado.
Para hacer el punto, se introduce un pequeño conjunto de funciones de biblioteca que se encargan de la
comunicación, y muestran cómo las funciones de la biblioteca se pueden utilizar para escribir aplicaciones de red. El código
de ejemplo del capítulo está disponible en el sitio web, y se anima a los lectores a modificar los ejemplos o escribir
aplicaciones adicionales.
557
558 Una API simplificado Apéndice 1
Toda la transferencia a Internet se realiza mediante programas de aplicación. Cuando las aplicaciones utilizan Internet,
lo hacen en parejas. Por ejemplo, cuando un usuario navega por una página web, una aplicación que se ejecuta en el
navegador contactos informáticos del usuario una aplicación de servidor web que se ejecuta en un equipo remoto. El navegador
envía una solicitud a la que responde el servidor web. Sólo las dos aplicaciones a entender el formato del mensaje y significado.
El modelo cliente-servidor
Para comunicarse a través de Internet, un par de aplicaciones utilizan un mecanismo sencillo: una aplicación se
inicia primero y espera a que la otra aplicación para comunicarse con ella. La segunda aplicación debe conocer la
ubicación en la primera aplicación está esperando. La disposición es conocida como Servidor de cliente Interacción. El
programa que espera a que el contacto es una servidor, y el programa que inicia el contacto es una cliente. Para iniciar el
contacto, el cliente debe saber cómo comunicarse con el servidor. En Internet, la ubicación de un servidor es dada por un
par de identificadores:
(aplicación de computadora)
paradigma de comunicación
La mayoría de las aplicaciones de Internet siguen el mismo paradigma básico cuando se comunican. Dos aplicaciones
establecen la comunicación, los mensajes de cambio de ida y vuelta, y luego terminar la comunicación. Los pasos son los
siguientes:
La aplicación de servidor inicia por primera vez, y espera a que el contacto de un cliente.
El cliente especifica la ubicación del servidor y solicita que se establezca una conexión.
Una vez que una conexión está en su lugar, el cliente y el servidor utilizan la conexión para el
intercambio de mensajes.
Hasta ahora, hemos hablado de la interacción entre dos aplicaciones a nivel conceptual. Ahora
consideraremos una implementación detallada. Los informáticos definen una
Interfaz de programación de aplicaciones (API) a ser un conjunto de operaciones disponibles a un programador de
aplicaciones. El API especifica un conjunto de funciones, argumentos para cada función, y la semántica de una invocación de
función.
Para demostrar la programación de redes, hemos ideado un API sencillo para la comunicación de red.
Después de describir la API, consideraremos las aplicaciones que lo utilizan. Figura A1.1 enumera las siete
funciones que una aplicación puede llamar.
Operación Sentido
Figura A1.1 Una API ejemplo consiste en siete funciones suficientes para
la mayoría de las aplicaciones de red †.
Nota: nuestro código de ejemplo también se utilizará una octava función, recvln. Sin embargo, recvln
no aparece como una función separada, ya que simplemente consiste en un bucle que llama recv
hasta que se ha encontrado con una línea de fin de.
† Funciones enviar y recv son suministrados directamente por el sistema operativo; otras funciones de la API consisten en rutinas de biblioteca que
hemos escrito.
560 Una API simplificado Apéndice 1
Un servidor comienza llamando await_contact esperar a que el contacto de un cliente. El cliente comienza
llamando hacer contacto para establecer contacto. Una vez que el cliente ha contactado con el servidor, los dos pueden
intercambiar mensajes con enviar y recv. Las dos aplicaciones deben ser programados para saber si enviar o recibir - si
ambas partes intentan recibir sin enviar, que bloquearán siempre.
Después de que termina el envío de datos, una aplicación llama send_eof para enviar la condición de fin de archivo. Por
otro lado, recv devuelve un valor de cero para indicar que el archivo final de que se ha alcanzado. Por ejemplo, si las llamadas del
cliente send_eof, el servidor se encuentra un valor de retorno a cero de su llamada a recv. Una vez que ambas partes han invocado
send_eof, la comunicación se termina.
Un ejemplo trivial ayudará a explicar la API de ejemplo. Considere una aplicación en la que el cliente
contacta con un servidor, envía una única solicitud, y recibe una única respuesta. Figura A1.2 ilustra la secuencia
de llamadas a la API que el cliente y el servidor para hacer tal interacción.
Servidor Cliente
recv enviar
enviar recv
sendeof sendeof
Figura A1.2 Ilustración de las llamadas a la API utiliza cuando un cliente envía una solicitud
Definición de la API
Además de los tipos de datos estándar C, definimos tres tipos que se utilizan en el código; utilizando tipos mantiene
nuestra API independiente de cualquier sistema operativo en particular y software de red. Figura A1.3 se enumeran los
nombres de tipo y sus significados.
Definición de la API 561
Figura A1.3 Los tres nombres de los tipos utilizados en nuestro ejemplo de la API.
El uso de los tres nombres de tipo en la Figura A1.3 podemos definir con precisión el API ejemplo. Para cada función,
las declaraciones de C-como por debajo de la lista el tipo de cada argumento, así como el tipo de la función devuelve.
La función Await_Contact
La función Make_Contact
Un cliente llama a la función hacer contacto para establecer contacto con un servidor.
La llamada toma dos argumentos que identifican a un equipo en el que se está ejecutando el servidor y el número de la
solicitud de que el servidor está utilizando en ese equipo. El cliente utiliza el valor de retorno, que es del tipo conexión, para
transferir datos.
562 Una API simplificado Apéndice 1
La función Appname_To_Appnum
La llamada toma un argumento de tipo cadena (C utiliza la declaración char * para denotar una cadena) y devuelve un
valor binario equivalente de tipo appnum.
La función Cname_To_Comp
Los clientes llaman cname_to_comp convertir de un nombre de equipo legible al valor binario
interno.
La llamada toma un argumento de tipo cadena ( char *), y devuelve un valor binario equivalente de tipo computadora.
La función de envío
Ambos clientes y servidores de uso enviar para transferir datos a través de la red.
int envío (con la conexión, tampón char *, int longitud, int banderas)
La llamada tiene cuatro argumentos. El primer argumento especifica una conexión establecida con anterioridad await_contact o hacer
contacto, la segunda es la dirección de un tampón que contiene datos para enviar, el tercer argumento da la longitud de los
datos en bytes (octetos), y el cuarto argumento es cero para la transferencia normal. Enviar devuelve el número de bytes
transferidos, o un valor negativo si se produjo un error. Ver también send_eof, que se utiliza para enviar fin del documento después
de que todos los datos han sido enviados.
Definición de la API 563
Ambos clientes y servidores de uso recv acceder a los datos que llegan a través de la red.
int recv (con conexión, tampón char *, longitud int, int flags)
La llamada tiene cuatro argumentos. El primer argumento especifica una conexión establecida con anterioridad await_contact
o hacer contacto, la segunda es la dirección de un tampón en el que se deben colocar los datos, el tercer argumento da el
tamaño de la memoria intermedia en bytes (octetos), y el cuarto argumento es cero para la transferencia normal. recv devuelve
el número de bytes que fueron colocados en el búfer, cero para indicar que fin del documento se ha alcanzado, o un valor
negativo para indicar que se ha producido un error. El código de ejemplo también utiliza una función de biblioteca recvln que
pide de nuevo recv hasta que se haya recibido una línea completa de texto. La definición de recvln es:
La función Send_Eof
Tanto el cliente como el servidor deben utilizar send_eof después de enviar los datos a informar a la otra parte que
no se producirá ninguna transmisión adicional. Por otro lado, la recv la función devuelve cero cuando recibe el EOF.
La llamada tiene un argumento que especifica una conexión establecida con anterioridad
await_contact o hacer contacto. La función devuelve un valor negativo para indicar que ocurrió un error, y un valor
no negativo de otra manera.
Figura A1.4 resume los argumentos utilizados para cada función en el ejemplo de API. La tabla muestra el tipo
de cada argumento, así como el tipo de retorno de la función. La última columna de la figura especifica el tipo de
argumentos más allá de los dos primeros. A pesar de que enviar y recv cada uno tiene cuatro argumentos, la función de
biblioteca recvln Sólo hay tres.
564 Una API simplificado Apéndice 1
send_eof En t conexión - -
Figura A1.4 Un resumen de los argumentos y valores de retorno para el ejemplo de la API.
Las siguientes secciones contienen ejemplos de programas de aplicación que ilustran cómo el cliente y el software de
servidor utilizan nuestra API para comunicarse. Para reducir el tamaño y hacer que el código sea más fácil de leer, los
programas de este capítulo argumentos de línea de comandos sin comprobar su validez. Un ejercicio sugiere volver a escribir
los programas para comprobar los argumentos e informar de cualquier error al usuario.
La primera aplicación vamos a considerar es trivial: un cliente envía los datos y el servidor se limita a recoger la
espalda todos los datos que recibe. Es decir, la aplicación cliente pide repetidamente al usuario una línea de entrada, envía
la línea con el servidor y, a continuación muestra lo que el servidor envía de vuelta. A pesar de que no son útiles para un
usuario típico, solicitudes de eco se utilizan a menudo para probar la conectividad de red.
Al igual que todas las aplicaciones descritas en este apéndice, la solicitud de eco utiliza protocolos estándar de
Internet. Es decir, los programas cliente y servidor pueden ejecutarse en equipos arbitrarias conectados a Internet como
ilustra la Figura A1.5.
Código para una aplicación Echo 565
Internet
Para invocar el servidor, un usuario debe elegir un número de solicitud entre 1 y 32767 que no está siendo
utilizado por otras aplicaciones, y especificar el número como argumento de línea de comandos.
Por ejemplo, Supongamos que alguien que usa el ordenador
arthur.cs.purdue.edu elige 20.000 como el número de solicitud. El servidor es invocado por el comando:
echoserver 20000
Si alguna otra aplicación está utilizando el número 20000, el servidor emite un mensaje de error apropiado y
salidas; el usuario debe elegir otro número.
Una vez que el servidor ha sido invocada, el cliente se invoca especificando el nombre del equipo en el que se está
ejecutando el servidor y el número de aplicaciones que utiliza el servidor. Por ejemplo, para contactar con el servidor se ha
descrito anteriormente, un usuario en un equipo arbitrario en el Internet puede entrar en el comando:
Archivo echoserver.c contiene el código para el servidor de eco. Sorprendentemente, incluso con comentarios y líneas en
blanco adicionales insertados para facilitar la lectura, el programa entero cabe en una sola página del texto. De hecho, tras el
programa comprueba para asegurarse de que se ha invocado correctamente, el cuerpo principal del programa consiste en siete
líneas de código:
566 Una API simplificado Apéndice 1
/ * * Echoserver.c /
# incluir <stdlib.h>
# incluir <stdio.h>
# incluir <cnaiapi.h>
/ * ------------------------------------------------ -----------------------
*
* Programa: echoserver
* Propósito: esperar una conexión desde un echoclient y datos de eco
* Uso: echoserver <appnum>
*
*-----------------------------------------------------------------------
*/
En
t
main (int argc, char * argv []) {
conexión conn;
En t len;
carbonizarse buff [BUFFSIZE];
si (argc! = 2) {
(Void) fprintf (stderr, "uso:% s <appnum> \ n", argv [0]); de salida (1); }
de salida (1);
/ * Iterate, haciéndose eco de todos los datos recibidos hasta el final del archivo * /
Como hemos visto, el servidor toma un solo argumento de línea de comandos que especifica el número de solicitud a
utilizar. En C, los argumentos de línea de comandos se pasan al programa como una matriz de cadenas, argv junto con un
recuento de número entero de argumentos, argc. El código extrae el argumento de línea de comando desde argv [1], y llama a
la función estándar de C atoi para convertir el valor de una cadena ASCII a binario. A continuación, pasa el resultado como
un argumento para await_contact. Una vez que la llamada a await_contact devoluciones, el servidor llama repetidamente recv para
recibir datos desde el cliente y enviar transmitir los mismos datos de nuevo. La iteración termina cuando recv encuentra un
fin-de-fichero y devuelve cero. En ese momento, el servidor envía un EOF y salidas.
Archivo echoclient.c contiene el código de una aplicación cliente de eco. Aunque no es tan corto como el servidor de
eco, el cliente ocupa sólo unas pocas líneas de código.
/ * * Echoclient.c /
# incluir <stdlib.h>
# incluir <stdio.h>
# incluir <cnaiapi.h>
/ * ------------------------------------------------ -----------------------
*
* Programa: echoclient
* Propósito: El contacto echoserver, envía la entrada del usuario y la respuesta del servidor de impresión
* Uso: echoclient <CompName> [appnum]
* Nota: Appnum es opcional. Si no se especifica el nivel de eco appnum
* (7) se utiliza.
*
*-----------------------------------------------------------------------
*/
En
t
main (int argc, char * argv []) {
computadora un borrador;
appnum aplicación;
conexión conn;
568 Una API simplificado Apéndice 1
si (== argc 3)
aplicación = (appnum) atoi (argv [2]); más
de salida (1);
esperar = len;
Ejemplo de código de cliente Echo 569
El programa cliente toma una o dos argumentos. El primer argumento especifica el nombre de un equipo en el
que se ejecuta el servidor. Si está presente, el segundo argumento especifica el número de aplicaciones que utiliza el
servidor. Si el segundo argumento es que falta, el cliente llama a appname_to-appnum con el argumento eco.
Varios detalles complican el código para el cliente de eco. En primer lugar, el cliente llama a una función, readln, para leer una
línea de entrada. En segundo lugar, el cliente comprueba el valor de retorno de cada llamada a la función, y sale cuando el valor
indica que se produjo un error. En tercer lugar, las llamadas del cliente fflush para asegurar que la salida se muestra inmediatamente
en lugar de ser acumulada en una memoria intermedia. En cuarto lugar, y más importante, el cliente no se limita a emitir una llamada
a recv cada vez que recibe datos desde el servidor. En su lugar, el cliente entra en un bucle que llama repetidamente recv hasta que
haya recibido el mayor número de bytes que fueron enviados.
570 Una API simplificado Apéndice 1
El uso de múltiples llamadas a recv lleva a un punto clave sobre nuestra API:
Un receptor no puede asumir que los datos llegarán a las mismas piezas de tamaño que fue enviado; una
llamada a recv puede devolver menos datos que fue enviado en una llamada a enviar.
El texto explica por qué recv se comporta como lo hace: los datos se divide en pequeños paquetes para la transmisión.
Por lo tanto, una aplicación puede recibir los datos de un paquete a la vez. Sorprendentemente, lo contrario también es cierto:
incluso si un remitente llamadas enviar en repetidas ocasiones, el software de red puede recibir datos de muchos paquetes antes
de la aplicación llama recv.
En esos casos, recv devolverá todos los datos a la vez.
La segunda aplicación vamos a considerar es una forma simplificada de la charla instalaciones. programas de chat de
Internet permiten a un grupo de usuarios para comunicarse mediante la introducción de mensajes de texto que se muestran en las
pantallas de los demás. Nuestro software ofrece una versión simplificada de la charla que funciona entre un único par de usuarios -
cuando un usuario introduce texto, se muestra el texto en la pantalla del otro usuario, y viceversa. Por otra parte, al igual que la
aplicación de eco descrito anteriormente, nuestro software de chat se puede utilizar entre todos los ordenadores conectados a
Internet. Un usuario comienza por la elección de un número de solicitud y se ejecuta el servidor. Por ejemplo, supongamos que un
usuario en el ordenador guenevere.cs.purdue.edu ejecuta el servidor:
Chatserver 25000
Un usuario en otro equipo puede invocar el cliente, que contacta con el servidor:
Para mantener el código lo más pequeño posible, hemos elegido un esquema que requiere que los usuarios se turnan para
introducir texto. Tanto la edición cliente y el servidor una solicitud cuando se espera que el usuario de ese lado para entrar en una línea
de texto. El usuario del lado del cliente se le solicita la entrada en primer lugar. Cuando se ha recibido una línea de texto, el cliente
envía la línea con el servidor y los papeles inversa. Los usuarios se alternan para la introducción de texto hasta que uno de ellos envía
un offile-fin.
El código en sí es sencillo. El servidor comienza por la espera de contacto del cliente. A continuación, entra en
un bucle en el que se obtiene y muestra una línea de texto desde el cliente, le pide al usuario local, lee una línea de
entrada desde el teclado, y envía la línea para el lado del cliente. Por lo tanto, hasta que recibe un archivo de fin de, se
repite el servidor entre mostrando la salida desde el cliente y el envío de entrada de teclado para el cliente.
Ejemplo de código de servidor de chat 571
El cliente comienza poniéndose en contacto con el servidor. Una vez establecida la comunicación, el cliente
también entra en un bucle. Durante cada iteración, el cliente solicita al usuario local para entrar en una línea de texto,
lee una línea desde el teclado, envía la línea al servidor, y luego recibe y muestra una línea de texto desde el servidor.
De este modo, el cliente continúa alternando entre el envío de una línea de texto que el usuario introduce y mostrar una
línea de texto desde el servidor.
/ * * Chatserver.c /
# incluir <stdlib.h>
# incluir <stdio.h>
# incluir <cnaiapi.h>
/ * ------------------------------------------------ -----------------------
*
* Programa: Chatserver
* Propósito: esperan a que una conexión desde un chatclient y permiten a los usuarios chatear
* Uso: Chatserver <appnum>
*
*-----------------------------------------------------------------------
*/
En
t
main (int argc, char * argv []) {
conexión conn;
En t len;
carbonizarse buff [BUFFSIZE];
si (argc! = 2) {
(Void) fprintf (stderr, "uso:% s <appnum> \ n", argv [0]); de salida (1); }
de salida (1);
funciones, recvln y readln, simplificar el código - que consisten cada uno en un bucle que se encuentran itera
hasta toda una línea o de fin de archivo. Recvln llamadas recv recibir de una conexión de red, y readln llamadas leer para
leer caracteres desde un teclado.
La estructura general del servidor de chat es similar al servidor de eco se analizó anteriormente. Al igual que el
servidor de eco, el servidor de chat espera un argumento de línea de comandos que es el número de solicitud a
utilizar. Una vez que llega el contacto de un cliente, el servidor de chat imprime un mensaje para el usuario local, y
entra en un bucle. En cada iteración, el servidor recibe una línea de texto de la conexión de red, imprime la línea en la
pantalla del usuario, lee una línea de entrada desde el teclado, y envía la línea través de la red. Cuando se detecta un
archivo de fin de, el servidor envía un EOF y salidas.
Ejemplo de código de cliente de chat 573
Archivo chatclient.c contiene el código para el cliente de chat. Como era de esperar el cliente es ligeramente más grande que el
servidor.
/ * * Chatclient.c /
# incluir <stdlib.h>
# incluir <stdio.h>
# incluir <cnaiapi.h>
/ * ------------------------------------------------ -----------------------
*
* Programa: chatclient
* Propósito: ponerse en contacto con un Chatserver y permiten a los usuarios chatear
computadora un borrador;
conexión conn;
carbonizarse buff [BUFFSIZE];
En t len;
si (argc! = 3) {
(Void) fprintf (stderr, "uso:% s <CompName> <appnum> \ n",
argv [0]);
de salida (1); }
de salida (1);
(Void) printf ( "\ nChat Conexión cerrada. \ N"); (Void) send_eof (conn);
de salida (0); }
El cliente comienza poniéndose en contacto con un servidor. Una vez se ha establecido la comunicación, el
cliente entra en un bucle que lee desde el teclado, envía los datos al servidor, recibe una línea desde el servidor, y
muestra la línea en la pantalla del usuario. La iteración continúa hasta que el cliente recibe una condición de offile
extremo del servidor o un-offile fin desde el teclado (un valor de retorno de cero). En ese momento, el cliente envía
un archivo endof y salidas.
Una aplicación Web 575
La aplicación último ejemplo vamos a considerar consiste en la interacción cliente-servidor para la World Wide
Web. Para ejecutar el servidor, un usuario elige un número de solicitud e invoca el programa servidor. Por ejemplo, si
un usuario en el ordenador netbook.cs.purdue.edu
por mejor el número de solicitud 27000, el servidor se puede activar con el comando:
Como era de esperar, el cliente especifica un ordenador, un nombre de ruta, y un número de solicitud:
Aunque es extremadamente pequeña, nuestro servidor web sigue los protocolos estándar. Así, es posible utilizar una
(es decir, comercialmente disponible) navegador web convencional para acceder al servidor. Por ejemplo, para utilizar un
navegador comercial en lugar de nuestro cliente web en el ejemplo anterior, se entra en la URL:
http://netbook.cs.purdue.edu:27000/index.html
Para mantener nuestro código lo más corto posible, hacemos unos supuestos simplificadores. Por ejemplo, el
servidor sólo suministra tres páginas web, y ninguna de las páginas contiene nada más que el texto. Además, cada
página está cableada en el código; la página sólo se puede cambiar por volver a compilar el servidor (ejercicios sugieren
extender el código de servidor para superar algunas de las limitaciones).
La limitación más importante de nuestra aplicación web reside en el cliente. A diferencia de un navegador web
convencional, nuestro código de cliente no entiende cómo dar formato y mostrar páginas web. En su lugar, el cliente
simplemente imprime la fuente de la página. A pesar de la limitación, el cliente hace interactuar con un servidor web
comercial - que puede ser usada para imprimir la fuente de cualquier página disponible en la Web.
/ * * Webclient.c /
# incluir <stdlib.h>
# incluir <stdio.h>
# incluir <cnaiapi.h>
/ * ------------------------------------------------ -----------------------
*
* Programa: webclient
* Objetivo: recuperar la página del servidor web y volcado a la salida estándar con encabezados
* Uso: webclient <CompName> <ruta> [appnum]
* Nota: Appnum es opcional. Si no se especifica la norma appnum www
* (80) se utiliza.
*
*-----------------------------------------------------------------------
*/
En
t
main (int argc, char * argv []) {
computadora un borrador;
appnum aplicación;
conexión conn;
carbonizarse buff [BUFFSIZE];
En t len;
si (== argc 4)
aplicación = (appnum) atoi (argv [3]); más
de salida (1);
de salida (1);
len = sprintf (piel de ante, "GET% s HTTP / 1.0 \ r \ n \ r \ n", argv [2]); (Void) enviar
(conn, piel de ante, len, 0);
return 0; }
El código de cliente es extremadamente simple - después de establecer la comunicación con el servidor web,
envía una solicitud, que debe tener la forma:
dónde camino denota el nombre de un elemento, como index.html, y CRLF denota los dos caracteres de retorno de carro
y avance de línea. Después de enviar la solicitud, el cliente recibe e imprime la salida desde el servidor.
Archivo webserver.c contiene el código de un (miniatura) servidor web. El programa contiene tres páginas web más el
código necesario para responder a una solicitud:
578 Una API simplificado Apéndice 1
/ * * Webserver.c /
# incluir <stdio.h>
# incluir <stdlib.h>
# incluir <time.h>
# incluir <cnaiapi.h>
# definir ERROR_400 "<Html> <head> </ head> <body> <h1> Error 400 </ h1> <p> Th \
servidor de correo no podía entender su solicitud. </ body> </ html> \ n"
# definir ERROR_404 "<Html> <head> </ head> <body> <h1> Error 404 </ h1> <p> Do \
cumento no encontrado. </ body> </ html> \ n"
# definir Home_Page "<Html> <head> </ head> <body> <h1> Bienvenido a la CNAI \
Demostración del servidor </ h1> <p> ¿Por qué no visitar: <ul> <li> <a href=\"http://netbook.cs.pu\ rdue.edu\">
Netbook página inicial </a> <li > <a href = \ "http: //www.comerbooks.com \" \
> Comer Libros Página principal </a> </ ul> </ body> </ html> \ n"
# definir TIME_PAGE "<Html> <head> </ head> <body> <h1> La fecha actual es \
:% S </ h1> </ body> </ html> \ n"
/ * ------------------------------------------------ -----------------------
*
* Programa: servidor web
* Propósito: servir páginas web codificadas de forma rígida a los clientes Web
* Uso: servidor web <appnum>
*
*-----------------------------------------------------------------------
*/
En
t
main (int argc, char * argv []) {
conexión conn;
En t norte;
Ejemplo de código de servidor Web 579
# terminara si
si (argc! = 2) {
(Void) fprintf (stderr, "uso:% s <appnum> \ n", argv [0]); de salida (1); }
while (1) {
de salida (1);
si (n <1) {
(Void) send_eof (conn); continuar;
}
/ * ------------------------------------------------ -----------------------
* send_head - enviar una cabecera HTTP 1.0 con el estado dado y contenido-len
*-----------------------------------------------------------------------
*/
Void
descanso;
caso 400:
statstr = "Bad Request"; descanso;
caso 404:
statstr = "Desconocido";
descanso; }
/*
* enviar un / 1,0 de respuesta HTTP con el servidor, Content-Length,
* y las cabeceras Content-Type.
*/
(Void) sprintf (piel de ante, "HTTP / 1.0% d% s \ r \ n", stat, statstr); (Void) enviar (conn, piel
de ante, strlen (buff), 0);
(Void) sprintf (piel de ante, "Content-Length:% d \ r \ n", len); (Void) enviar (conn,
piel de ante, strlen (buff), 0);
(Void) sprintf (piel de ante, "Content-Type: text / html \ r \ n"); (Void) enviar (conn,
piel de ante, strlen (buff), 0);
Aunque el servidor web puede parecer más compleja que los ejemplos anteriores, la mayor parte de la
complejidad resulta de datos web en lugar de datos de red. Además de leer y analizar una solicitud, el servidor debe
enviar tanto una “cabecera” y los datos en la respuesta. La cabecera se compone de varias líneas de texto que se
terminan por el retorno de carro y avance de línea caracteres. Las líneas de cabecera son de la forma:
582 Una API simplificado Apéndice 1
dónde tamaño de datos denota el tamaño de los datos que siguen mide en bytes.
El código también se complica por la gestión de errores - los mensajes de error deben ser enviados en una forma que un
navegador pueda entender. Si la solicitud se forma incorrecta, nuestro servidor genera una 400 mensaje de error; si el elemento
especificado en la solicitud no se puede encontrar (es decir, el
camino es incorrecta), el servidor genera una 404 mensaje.
Nuestro servidor web se diferencia de los ejemplos anteriores de una manera significativa: el programa servidor no sale
después de satisfacer una petición. En su lugar, el servidor permanece en funcionamiento, listo para aceptar solicitudes adicionales.
Es decir, el programa de servidor consiste en un bucle infinito que llama await_contact esperar a que el contacto de un cliente.
Cuando llega el contacto, las llamadas al servidor recvln recibir una petición y llamadas enviar para enviar una respuesta. Después,
el servidor vuelve al principio del bucle para esperar el siguiente contacto. Por lo tanto, una vez que se inicia, el servidor se queda
para siempre, al igual que un servidor web comercial.
Aunque nuestro ejemplo API es compatible con la interacción 1-a-1 entre un cliente y un servidor, la API no admite
1-a-muchos interacción. Para ver por qué, considerar múltiples conexiones. Para crear este tipo de conexiones, un solo
programa de aplicación debe llamar hacer contacto
varias veces, especificando una computadora y appnum para cada llamada. Una vez que se han establecido las conexiones, sin
embargo, la aplicación puede no saber cuál de ellos recibirá un mensaje en primer lugar. La aplicación no puede utilizar recv debido
a que la llamada se bloqueará hasta que llegue datos.
Muchos sistemas operativos incluyen una función llamada seleccionar que resuelve el problema de la gestión de múltiples
conexiones. Conceptualmente, el seleccionar llamar a los controles de un conjunto de conexiones. La llamada se bloquea hasta que al
menos una de las conexiones especificadas ha recibido datos. La llamada entonces devuelve un valor que indica en cuál de las
conexiones se han recibido datos (es decir, las conexiones para las cuales recv no bloqueará).
La gestión de múltiples conexiones con la función de selección 583
Como ejemplo, considere una aplicación que debe recibir las solicitudes y enviar las respuestas de más
de dos conexiones. Tal aplicación puede tener la siguiente forma general:
Resumen
Es posible que un programador crear aplicaciones de red que operan a través de Internet sin entender
cómo operan las redes o cómo las tecnologías subyacentes llevan los datos entre ordenadores. El
programador debe darse un conjunto de funciones de alto nivel que forman una interfaz de programación de
aplicaciones (API). Este apéndice presenta una API de red que contiene sólo siete primitivas, y revisa
aplicaciones de ejemplo que muestran la API es suficiente para construir un software que interactúa
correctamente con el software comercial.
CEREMONIAS
A1.1 Los ejemplos de código en el apéndice no revisan sus argumentos de línea de comandos con cuidado.
Modificar el código para agregar la comprobación de errores.
A1.2 los eco servicio es un servicio estándar disponible a través de Internet. Ha sido como-
número de solicitud firmado 7. Descarga, compila, y utilizar el cliente de eco para determinar si equipos de la
organización ejecutar un servidor de eco estándar.
584 Una API simplificado Apéndice 1
A1.3 Modificar el servidor de eco de manera que en lugar de salir después de que se encarga de un cliente, el servidor
A1.4 Descargar, compilar y probar el software de chat ejemplo ejecutándolo en dos ordenadores.
A1.5 Nuestro software de chat requiere que los usuarios se turnan para introducir texto. Reescribir el software para
permitir ya sea usuario escriba un número arbitrario de líneas en cualquier momento. hilos de uso: pista.
A1.6 Modificar el cliente de chat para enviar un nombre de usuario con cada mensaje, y modificar el servidor para
identificar a un usuario cuando se muestra una línea de salida.
A1.7 Extender el ejercicio anterior para que en lugar de enviar el nombre de usuario con cada mensaje, el
chatear nombres de usuario de cambio cliente y el servidor la primera vez que se ponen en contacto, recuerde el nombre, y muestran
el nombre con cada línea de salida.
A1.8 ¿Por qué el código de ejemplo en el apéndice utilizar una mezcla de llamadas a escribir Y varios
formas de printf? Pista: ¿zócalos de Windows a tratar, archivos y tubos de forma idéntica?
A1.9 Diseñar un software que permite una n-way sesión de chat que permite a los usuarios unirse y salir de la
sesión en cualquier momento.
A1.10 Utilizar telnet para comunicarse con un servidor web, enviar una OBTENER solicitar y recibir una respuesta.
A1.11 Pruebe el programa cliente Web con un servidor web en Internet. Para ello, escriba el nombre del servidor,
un camino de index.html o index.htm, y número de solicitud 80.
A1.17 ( avanzado) Extender el servidor web para que pueda manejar múltiples conexiones al mismo tiempo.
Sugerencia: el uso tenedor o pthread_create.
A1.18 ( avanzado) Construir un cliente que contacta con un servidor de correo electrónico SMTP y envía un mensaje de correo electrónico.
Índice