0% encontró este documento útil (0 votos)
21 vistas24 páginas

Protocolos TCPIP

Protocolos_TCPIP

Cargado por

anasser
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas24 páginas

Protocolos TCPIP

Protocolos_TCPIP

Cargado por

anasser
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

LOS PROTOCOLOS TCP/IP

en Redes de Computadoras
por Andrew S. Tanenbaum
Prentice-Hall, 1996

Introducción TCP/IP (Transmission Control Protocol/Internet Protocol).


representa una familia de protocolos de comunicación entre
Las redes actuales se diseñan de una forma estructurada y los
redes de datos y fue desarrollado inicialmente por DARPA
protocolos de comunicación se organizan una serie de capas o
(Defense Advanced Research Projects Agency) de los Estados
niveles con funciones propias que prestan servicio a las otras
Unidos a finales de los años 70, para ser usado como soporte de
capas pero de una forma autónoma e independiente. De esta
la red de investigación Arpanet, la cual a su vez posteriormente
forma se reduce la complejidad de diseño y se permite que una
se convirtió en Internet, que actualmente contiene la más grande
capa se modifique o se adapte a cambios sin alterar el modelo
colección de redes en el mundo. En la figura 1 se ilustra la
total, ya que lo que cambia es la forma de como dicha capa va a
estructura del stack de protocolos TCP/IP.
prestar los mismos servicios a las capas superiores.

Figura 1. Algunos protocolos del conjunto TCP/IP

Varios protocolos de la familia TCP/IP suministran los Por debajo de IP se pueden utilizar distintos protocolos a
servicios de bajo nivel, correspondientes a las tres capas nivel de enlace. Por ejemplo HDLC, el ya viejo SLIP (Serial
inferiores del stack; estos incluyen TCP, UDP, ICMP e IP. Los Line Interface Protocol) o el reciente PPP (Point to Point
otros protocolos de la familia TCP/IP están orientados a las Protocol) para redes con conexiones punto a punto, Ethernet
capas superiores, de aplicación y presentación, y están dirigidos para LANs y X.25 para WANs.
a tareas o servicios específicos como correo electrónico A continuación se hace una descripción de los distintos
(SMTP), transferencia de archivos (FTP), acceso remoto protocolos utilizados en ambiente TCP/IP, haciendo hincapié en
(Telnet) y acceso al Web (HTTP). el formato de las tramas y paquetes, así como en las funciones
El protocolo de red (IP, Internet Protocol) es del tipo sin de los distintos campos. La mayor parte de la información ha
conexión y fue diseñado para manejar la interconexión del vasto sido adaptada de la conocida obra de Andrew Tanebaum: Redes
número de redes que formaban Arpanet. IP suministra un de Computadoras, Prentice-Hall, 1996.
servicio de tipo sin conexión no confiable, esto es, algunos
paquetes puede que nunca lleguen a su destino o si llegan puede La capa de control de enlace de datos (DLC) y Ethernet.
que estén fuera de secuencia. Es función de TCP (Transmission Actualmente el método más popular para redes locales (LAN) es
Control Protocol) el asegurar la entrega confiable de los datos, o el acceso múltiple por escucha de portadora con detección de
sea que TCP suministra una forma confiable de intercambio de colisiones (CSMA/CD: Carrier Sense Multiple Access/
datos entre procesos en diferentes computadores. TCP asegura Collision Detection). La versión más extendida de este método
que los datos sean entregados sin errores, en secuencia, sin es el sistema Ethernet, el cual fue desarrollado en parte
pérdidas o duplicaciones. basándose en los conceptos del sistema Aloha. Fue Xerox
Corporation quien se ocupó de investigar a fondo en el tema de
-2-
CSMA/CD y quien puso en el mercado el primer producto físicos. A menudo se utiliza el nombre Ethernet, en un sentido
comercial. En 1980, Xerox, Intel Corporation y Digital genérico, para referirse a todos los protocolos CSMA/CD, aún
Equipment Corporation (DEC) públicaron de manera conjunta cuando éste sólo se refiere a un producto específico que
una especificación para redes locales (Ethernet II), que sería desarrolla 802.3.
más tarde introducida en los estudios de los comités IEEE 802 La estructura de las tramas utilizadas en Ethernet y en 802.3
y, con ciertas modificaciones, públicada como el estándar IEEE se muestra en la figura 2. Cada trama comienza un preámbulo
802.3. El nombre Ethernet fue en honor del éter luminífero, a de 7 octetos cada uno con el siguiente patrón de bits: 10101010.
través del cual se pensó alguna vez que se propagaban las ondas La codificación Manchester de este patrón genera una onda
electromagnéticas. cuadrada de 10 MHz, durante 5.6 µs, con objeto de permitir que
La norma que se publicó como la 802.3 difiere de la el reloj del receptor se sincronice con el del transmisor.
especificación correspondiente a la Ethernet en el sentido de que Después, viene el delimitador que contiene el patrón 10101011
describe una familia completa de sistemas CSMA/CD, operando y que denota el inicio efectivo de la trama.
a velocidades que van desde 1 a 10000 Mbit/s, en varios medios

Figura 2. La trama Ethernet y 802.3

Una trama contiene dos direcciones, una de ellas es para el estación, con sólo proporcionar el número de 48 bits correcto.
destinatario y la otra para la fuente. La norma permite tener Dependerá de la capa de red, por consiguiente, cómo encontrar
direcciones de 2 a 6 octetos, pero los parámetros definidos para el destino correspondiente.
la norma correspondiente a la banda base de 10 Mbit/s, El campo de longitud indica cuántos octetos presentes en el
solamente utilizan direcciones de 6 octetos (IP utiliza campo de datos, desde un mínimo de 0 hasta un máximo de
direcciones de 4 octetos, a nivel de la capa 3). El bit de mayor 1500. Aunque un campo de datos de 0 octetos es legal, origina
orden en la dirección del destinatario, corresponde a un 0, en las un problema. Por ejemplo, cuando un transmisor-receptor
direcciones ordinarias, y un 1 para las direcciones de grupo. Las detecta una colisión, trunca la trama que se está transmitiendo,
direcciones de grupo autorizan a múltiples estaciones para por lo cual quiere decir que, en el cable aparecerán pedazos de
escuchar en una sola dirección. Cuando se envía una trama a tramas y bits parásitos. Para simplificar la distinción entre las
una dirección grupal, todas las estaciones del grupo la reciben. tramas que son válidas deberán tener por lo menos una longitud
La transmisión a un grupo de estaciones se denomina difusión de 64 octetos, desde la dirección destinataria hasta el código de
restringida (multicast). Las direcciones que tienen todos los bits redundancia. Si la parte de datos correspondiente a una trama es
a 1 están reservadas para difusión general (broadcast). Una menor de 46 octetos, el campo de relleno se utilizará para llenar
trama que tiene únicamente valores de 1 en su campo la trama al tamaño mínimo requerido. Otra de las razones para
destinatario, se envía a todas las estaciones de la red y se atener una trama de longitud mínima es con objeto de evitar que
propaga por todos los puentes. Otra característica interesante del una estación complete la transmisión de una trama corta, antes
direccionamiento es el empleo del bit número 46 (es decir, de que el primer bit haya alcanzado el extremo final del cable,
adyacente al bit de mayor orden), para distinguir las direcciones donde podría sufrir una colisión con alguna otra trama. Es
locales de las de naturaleza global. Las direcciones locales son oportuno hacer notar que usualmente las tramas que se utilizan
asignadas para cada uno de los administradores de red y no con TCP/IP son Ethernet y no 802.3. La diferencia principal es
tienen ningún significado fuera del ámbito de la red local; a que en Ethernet el campo de longitud no se usa para tal fin, sino
diferencia de esto, las direcciones globales son asignadas por la para identificar el tipo de trama (por ejemplo IP).
IEEE, para asegurar que no haya en el mundo ningún par de El campo final corresponde al código de redundancia. Es
estaciones que tengan la misma dirección global. Con la efectivamente un código de 32 bits, que representa el conjunto
disponibilidad de 48 - 2 = 46 bits, se tiene aproximadamente un de datos. Si algunos bits de datos se recibieran erróneamente
total de 71013 direcciones globales. La idea es que cualquier (debido al ruido del cable), es casi seguro que el código de
estación sea capaz de dirigirse, en forma única, a cualquier otra redundancia será incorrecto y, por lo tanto, el error será
-3-
detectado. El algoritmo del código es una verificación por camino. Cuando todas las piezas llegan finalmente a la máquina
redundancia cíclica. de destino, son reensambladas por la capa de red, dejando el
datagrama original. Este datagrama entonces es entregado a la
La capa de red capa de transporte, que lo introduce en el flujo de entrada del
Actualmente TCP/IP es la familia de protocolos más utilizados y proceso receptor.
en la capa de capa de red se utiliza IP (Internet Protocol,
protocolo Internet). Una buena manera de visualizar la capa de El protocolo IP
red es la siguiente. Su trabajo es proporcionar un medio de
Un lugar adecuado para comenzar nuestro estudio de la capa de
mejor esfuerzo para el transporte de datagramas del origen al
red de lnternet es el formato de los datagramas de IP mismos.
destino, sin importar si estas máquinas están en la misma red, o
Un datagrama IP consiste en una parte de cabecera y una parte
si hay otras redes entre ellas.
de texto. La cabecera tiene una parte fija de 20 bytes y una parte
La comunicación en Internet funciona como sigue. La capa
opcional de longitud variable. El formato de la cabecera se
de transporte toma el flujo de datos y lo divide en datagramas.
muestra en la figura [Link] transmite en orden big endian: de
En teoría, los datagramas pueden ser de hasta 64 Kbytes cada
izquierda a derecha, comenzando por el bit de orden mayor del
uno, pero en la práctica por lo general son de menos de 1500
campo de versión. (SPARC es big endian; Pentium es little
bytes. Cada datagrama se transmite a través de Internet,
endian.) En las máquinas little endian se requiere conversión por
posiblemente fragmentándose en unidades más pequeñas en el
software, tanto para la transmisión como para la recepción.

Figura 3. La cabecera de IP

El campo de versión lleva el registro de la versión del El campo mismo contiene (de izquierda a derecha) un campo
protocolo al que pertenece el datagrama. A1 incluir la versión en de precedencia; tres indicadores, D, T y R; y dos bits no usados.
cada datagrama, es posible hacer que la transición entre El campo de precedencia es una prioridad, de 0 (normal) a 7
versiones se lleve meses, o inclusive años, ejecutando algunas (paquete de control de red). Los tres bits indicadores permiten al
máquinas la versión vieja y otras la versión nueva. host especificar lo que le interesa más del grupo {retardo
Dado que la longitud de la cabecera no es constante, se (delay), rendimiento (throughput), confiabilidad (reliability)}.
incluye un campo en la cabecera, IHL, para indicar la longitud En teoría, estos campos permiten a los enrutadores tomar
en palabras de 32 bits. El valor mínimo es de 5, cifra que aplica decisiones entre, por ejemplo, un enlace satelital de alto
cuando no hay opciones. El valor máximo de este campo de 4 rendimiento y alto retardo o una línea arrendada con bajo
bits es de 15, lo que limita la cabecera a 60 bytes y, por tanto, el rendimiento y poco retardo. En la práctica, los enrutadores
campo de opciones a 40 bytes. Para algunas opciones, por actuales ignoran por completo el campo de tipo de servicio.
ejemplo para una que registre la ruta que ha seguido un paquete, La longitud total incluye todo el datagrama: tanto la
40 bytes es muy poco, lo que hace inútil esta opción. cabecera como los datos. La longitud máxima es de 65,535
El campo de tipo de servicio permite al host indicar a la bytes. Actualmente este límite es aceptable, pero con las redes
subred el tipo de servicio que quiere. Son posibles varias futuras de gigabits se requerirán datagramas más grandes.
combinaciones de confiabilidad y velocidad. Para voz El campo de identificación es necesario para que el host de
digitalizada, la entrega rápida le gana a la entrega precisa. Para destino determine a qué datagrama pertenece un fragmento
la transferencia de archivos, es más importante la transmisión recién llegado. Todos los fragmentos de un datagrama contienen
libre de errores que la transmisión rápida. el mismo valor de identificación.
-4-
A continuación viene un bit sin uso y luego dos campos de 1 información pocas veces necesaria. Las opciones son de
bit. DF significa no fragmentar (Don't Fragment); es una orden longitud variable. Cada una empieza con un código de 1 byte
para los enrutadores de que no fragmenten el datagrama, porque que identifica la opción. Algunas opciones vienen seguidas de
el destino es incapaz de juntar las piezas de nuevo. Por ejemplo, un campo de longitud de la opción de 1 byte, y luego de uno o
al arrancar una computadora, su ROM podría pedir el envío de más bytes de datos. El campo de opciones se rellena para
una imagen de memoria a ella como un solo datagrama. Al completar múltiplos de cuatro bytes. Actualmente hay cinco
marcar el datagrama con el bit DF, el transmisor sabe que opciones definidas, las que se listan en la figura 4, pero no todos
llegará en una sola pieza, aún si significa que el datagrama debe los enrutadores reconocen a todas.
evitar una red de paquete pequeño en la mejor trayectoria y La opción de seguridad indica qué tan secreta es la
tomar una ruta subóptirna. Se requiere que todas las máquinas información. En teoría, un enrutador militar puede usar este
acepten fragmentos de 576 bytes o menos. campo para especificar que no se enrute a través de ciertos
MF significa más fragmentos. Todos los fragmentos excepto países que los militares consideren "malos". En la práctica,
el último tienen establecido este bit, que es necesario para saber todos los enrutadores lo ignoran, por lo que su única función
cuándo han llegado todos los fragmentos de un datagrama. real es la de ayudar a los espías a encontrar la información
El desplazamiento del fragmento indica en qué parte del importante con mayor facilidad.
datagrama actual va este fragmento. Todos los fragmentos La opción de enrutamiento estricto desde el origen da la
excepto el último del datagrama deben tener un múltiplo de 8 trayectoria completa desde el origen hasta el destino como
bytes, que es la unidad de fragmento elemental. Dado que se secuencia de direcciones IP. Se requiere que el datagrama siga
proporcionan 13 bits, puede haber un máximo de 8192 esa ruta exacta. Esta opción se usa sobre todo cuando los
fragmentos por datagrama, dando una longitud máxima de administradores de sistemas envíen paquetes de emergencia
datagrama de 65,536 bytes, uno más que el campo de longitud porque las tablas de enrutamiento se han corrompido, o para
total. hacer mediciones de tiempo.
El campo de tiempo de vida es un contador que sirve para
limitar la vida de un paquete. Se supone que este contador
cuenta el tiempo en segundos, permitiendo una vida máxima de
255 seg; debe disminuirse en cada salto y se supone que
disminuye muchas veces al encolarse durante un tiempo grande
en un enrutador. En la práctica, simplemente cuenta los saltos.
Cuando el contador llega a cero, el paquete se descarta y se
envía de regreso un paquete de aviso al host de origen. Esta
característica evita que los datagramas vaguen eternamente, algo
que de otra manera podría ocurrir si se llegan a corromper las Figura 4. Opciones del IP
tablas de enrutamiento.
Una vez que la capa de red ha ensamblado un datagrama La opción de enrutamiento libre desde el origen requiere
completo, necesita saber que hacer con él. El campo de que el paquete pase por los enrutadores indicados en la lista, y
protocolo indica la capa de transporte a la que debe entregarse. en el orden especificado, pero se le permite pasar a través de
TCP es una posibilidad, pero también está UDP y algunos más. otros enrutadores en el camino. Normalmente, esta opción sólo
La numeración de los protocolos es global en toda la Internet, y indicará algunos enrutadores, para obligar a una trayectoria en
se define. en el RFC 1700. particular. Por ejemplo, si se desea obligar a un paquete
La suma de comprobación de la cabecera (header deLondres a Sydney a ir hacia el oeste en lugar de hacia el este,
checksum) verifica solamente la cabecera. Tal suma de esta opción podría especificar enrutadores en Nueva York, Los
comprobación es útil para la detección de errores de transmisión Ángeles y Honolulú. Esta opción es de mucha utilidad cuando
y otros. El algoritmo es sumar todas las medias palabras de 16 las consideraciones políticas o económicas dictan pasar a través
bits a medida que llegan, usando aritmética de complemento a de, o evitar, ciertos países.
uno, y luego obtener el complemento a uno del resultado. Para La opción de registrar ruta indica a los enrutadores a lo
los fines de este algoritmo, se supone que la suma de largo de la trayectoria que agreguen su dirección de IP al campo
comprobación de la cabecera es cero cuando llega. Este de opción. Esto permite a los administradores del sistema buscar
algoritmo es más robusto que una suma normal. Nótese que la fallas en los algoritmos de enrutamiento ("¿por qué todos los
suma de comprobación de la cabecera debe recalcularse en cada paquetes de Houston a Dallas pasan por Tokio primero?"). Al
salto, pues cuando menos uno de los campos siempre cambia (el establecerse inicialmente Arpanet, ningún paquete pasaba nunca
campo de tiempo de vida), pero pueden usarse trucos para por más de nueve enrutadores, por lo que 40 bytes de opciones
acelerar el cálculo. eran más que suficientes. Como se mencionó antes, ahora esto
La dirección de origen y la dirección de destino indican el es demasiado poco.
número de red y el número de host. Estudiaremos las Por último, la opción de marca de tiempo es como la opción
direcciones de Internet en la siguiente sección. de registrar ruta, excepto que además de registrar su dirección IP
El campo de opciones se diseñó para proporcionar un de 32 bits, cada enrutador también registra una marca de tiempo
recurso que permitiera que las versiones subsiguientes del de 32 bits. Esta opción también es principalmente para búsqueda
protocolo incluyeran información no presente en el diseño de fallas en los algoritmos de enrutamiento.
original, para permitir a los experimentadores probar ideas
nuevas y para evitar la asignación de bits de cabecera a Direcciones IP
-5-
Cada host y enrutador de Internet tiene una dirección de IP que usan en los campos de dirección de origen y dirección de
codifica su número de red y su número de host. La combinación destino de los paquetes IP. Los formatos usados para las
es única: no hay dos máquinas que tengan la misma dirección de direcciones IP se muestran en la figura 5.
IP. Todas las direcciones de IP son de 32 bits de longitud y se

Figura 5. Formato de direcciones IP

Aquellas máquinas conectadas a varias redes tienen La dirección de IP [Link] es usada por los hosts cuando
direcciones de IP diferentes en cada red. están siendo arrancados, pero no se usa después. Las direcciones
Los formatos de clase A, B, C y D permiten hasta 126 redes de IP con 0 como número de red se refieren a la red actual. Estas
con 16 millones de hosts cada una, 16,382 redes con hasta 64K direcciones permiten que las máquinas se refieran a su propia
hosts, 2 millones de redes (por ejemplo, LAN) de hasta 254 red sin saber su número (pero tienen que saber su clase para
hosts cada una, y multitransmisión (multicast), en la cual se saber cuántos 0 hay que incluir). La dirección que consiste
dirige un datagrama a múltiples hosts. Las direcciones que solamente en unos, permite la difusión (broadcast) en la red
comienzan con 11110 se reservan para uso futuro. Hay decenas local, por lo común una LAN. Las direcciones con un número
de miles de redes conectadas ahora a Internet, y la cifra se de red propio y solamente unos en el campo de host permite que
duplica cada año. Los números de red los asigna el NIC las máquinas envíen paquetes de difusión a LAN distantes desde
(Network Information Center, centro de información de redes) cualquier parte de Internet. (Esta propiedad ha sido explotada
para evitar conflictos. recientemente en ataques masivos de negación de servicio,
Las direcciones de red, que son números de 32 bits, DoS). Por último, todas las direcciones de la forma [Link]
generalmente se escriben en notación decimal con puntos. En se reservan para pruebas de realimentación (localhost o
este formato, cada uno de los 4 bytes se escribe en decimal, de 0 loopback). Los paquetes enviados a esa dirección no se envían
a 255. Por ejemplo, la dirección hexadecimal C0290614 se al cable, sino que se procesan localmente y se tratan como
escribe como [Link]. La dirección de IP menor es [Link] paquetes de entrada (por tal razón no los captura un sniffer).
y la mayor [Link]. Esto permite que los paquetes se envíen a la red local sin que el
Los valores 0 y -1 tienen significado especial, como se transmisor conozca su número. Esta característica también se
muestra en la figura 6. El valor 0 significa esta red o este host. usa para la detección de fallas en el software de la red.
El valor -1 se usa como dirección de difusión para indicar todos
los hosts de la red indicada.
-6-

Figura 6. Direcciones especiales de IP

Subredes la modificación de sus archivos de configuración y también el


Como hemos visto, todos los hosts de una red deben tener el anuncio de la nueva dirección de IP a todo el mundo. Si a otra
mismo número de red. Esta propiedad del direccionamiento IP máquina se le da la dirección de IP recién liberada, esa máquina
puede causar problemas a medida que crecen las redes. Por recibirá el correo electrónico y otros datos dirigidos a la
ejemplo, consíderese una compañía que comienza con una LAN máquina original hasta que la dirección se haya propagado por
clase C en Internet. A medida que pasa el tiempo, podría todo el mundo.
adquirir más de 254 máquinas, y por tanto necesitar una segunda La solución a este problema es permitir la división de una
dirección clase C. De la misma manera, podría adquirir una red en varias partes para uso interno, pero aún actuar como una
segunda LAN de un tipo diferente y querer una dirección de IP sola red ante el mundo exterior. En la literatura sobre Internet, a
diferente para ella (las LAN podrían estar unidas mediante un estas partes se les llama subredes. Este uso entra en conflicto
puente para formar una sola red IP pero los puentes tienen sus con la "subred" cuyo significado es el grupo de todos los
propios problemas). Finalmente, podría terminar con muchas enrutadores y líneas de comunicación de una red. Esperamos
LAN, cada una con su propio enrutador y su propio número de que el contexto deje en claro el significado de que se trata. En
red clase C. esta sección usaremos la nueva definición. Si nuestra compañía
Al crecer la cantidad de redes locales distintas, su en crecimiento tenía inicialmente una dirección clase B en lugar
administración puede volverse un dolor de cabeza grave. Cada de clase C, puede comenzar simplemente por numerar los hosts
vez que se instala una red nueva, el administrador del sistema de 1 a 254. Al llegar la segunda LAN podría decidir, por
tiene que comunicarse con el NIC para obtener un número de ejemplo, dividir el número de host de 16 bits en un número de
red nuevo. Después, este número debe anunciarse mundial- subred de 6 bits y un número de host de 10 bits, como se
mente. Además, mover una máquina de una LAN a otra requiere muestra en la figura 7. Esta división permite 62 LAN (se
el cambio de su dirección de IP, lo que a su vez puede significar reservan el 0 y el -1) cada una con hasta 1022 hosts.

Figura 7. Una de las formas de generar una subred clase B

Fuera de la red, la subred no es visible, por lo que la locales. Asociada a cada tabla está la interfaz de red a usar para
asignación de una subred nueva no requiere comunicación con llegar al destino y cierta información adicional.
el NIC ni la modificación de bases de datos externas. En este Al llegar un paquete de IP se busca su dirección de destino
ejemplo, la primera subred podría usar direcciones de IP a partir en la tabla de enrutamiento. Si el paquete es para una red
de [Link], la segunda subred podría empezar en 1 [Link], distante, se reenvía al siguiente enrutador de la interfaz dada en
etcétera. Para ver el funcionamiento de las subredes, es nece- la tabla; si es para un host local (por ejemplo, en la LAN del
sario explicar la manera en que se procesan los paquetes IP en enrutador), se envía directamente al destino. Si la red no está en
un enrutador. Cada enrutador tiene una tabla en la que se lista la tabla, el paquete se reenvía a un enrutador predeterminado
cierto número de direcciones IP (red, 0) y cierto número de con tablas más extensas. Este algoritmo significa que cada
direcciones IP (esta red, host). El primer tipo indica cómo llegar enrutador sólo tiene que llevar el registro de otras redes y hosts
a redes distantes. El segundo tipo indica cómo llegar a redes locales, no de pares red-host, reduciendo en gran medida el
tamaño de la tabla de enrutamiento.
-7-
Al introducirse subredes, se cambian las tablas de millón de redes clase C, todos los enrutadores de Internet
enrutamiento, agregando entradas con forma de (esta red, necesitarían una tabla con medio millón de entradas, una por
subred, 0) y (esta red, esta subred, host). Por tanto, un enrutador red, indicando la línea a usar para llegar a esa red, así como otra
de la subred k sabe cómo llegar a todas las demás subredes y información.
también cómo llegar a todos los hosts de la subred k; no tiene Actualmente, el almacenamiento de medio millón de
que saber los detalles sobre los hosts de otras subredes. De entradas tal vez es posible, aunque caro en los enrutadores
hecho, todo lo que se necesita es hacer que cada enrutador haga críticos que guardan las tablas en la RAM estática de las tarjetas
un AND booleano con la máscara de subred (véase la figura 7) de E/S. Un problema más serio es que la complejidad de
para deshacerse del número de host y buscar la dirección diferentes algoritmos relacionados con el mantenimiento de
resultante en sus tablas (tras determinar la clase de red de la que tablas crece con una tasa mayor que la lineal. Peor aún, mucho
se trata). Por ejemplo, a un paquete dirigido a [Link] que del software y firmware existente de los enrutadores se diseñó
llega a un enrutador de la subred 5 se le hace un AND con la en un momento en que Internet tenía 1000 redes conectadas, y
máscara de subred de la figura 7 para dar la dirección tener 10.000 redes parecía estar a décadas de distancia. Las
[Link]. Esta dirección se busca en las tablas de enruta- decisiones de diseño tomadas entonces ya no tienen nada de
miento para averiguar la manera de llegar a los hosts de la óptimas.
subred 3. Así, el enrutador de la subred 5 se ahorra el trabajo de Además, diversos algoritmos de enrutamiento requieren que
mantener un registro de las direcciones de enlace de datos de cada enrutador transmita sus tablas periódicamente. Cuanto más
hosts que no pertenecen a la subred 5. El proceso de subred grandes sean las tablas, más probabilidad habrá de que algunas
reduce así el espacio de tabla de enrutamiento creando una partes se pierdan en el camino, dando pie a datos incompletos en
jerarquía de tres niveles. el otro lado y posiblemente a inestabilidades de enrutamiento.
El problema de las tablas de enrutamiento podría haberse
CIDR (Enrutamiento interdominios sin clases) resuelto usando una jerarquía más. Por ejemplo, podría haber
TCP/IP ya ha estado en uso intenso por más de una década; ha servido hacer que cada dirección de IP tuviera un campo de
funcionado extremadamente bien, como lo demuestra el país, estado, ciudad, red y host. Entonces cada enrutador sólo
crecimiento exponencial de Internet. Desgraciadamente, TCP/IP necesitaría saber cómo llegar a los países, a los estados o
se está convirtiendo con rapidez en una víctima de su propia provincias de su propio país, a las ciudades de su estado o
popularidad: se le están acabando las direcciones. Este desastre provincia y a las redes de su ciudad. Por desgracia, esta solución
inminente ha propiciado una gran cantidad de controversias y requeriría bastante más de 32 bits para las direcciones de IP y
debates en la comunidad de Internet sobre lo que debe hacerse al usaría ineficientemente las direcciones (Liechtenstein tendría
respecto. En 1987 unos pocos visionarios predijeron que algún tantos bits como Estados Unidos).
día Internet podría crecer hasta 100,000 redes. La mayoría de En resumen, la mayoría de las soluciones resuelven un
los expertos minimizaron el problema aduciendo que ocurriría problema pero crean uno nuevo. Una solución que ahora se está
en muchas décadas, si es que llegaba a ocurrir. En 1996 se poniendo en práctica y que dará a Internet un respiro es el CIDR
conectó la red No. 100.000. El problema, en pocas palabras, es (Classless Inter Domain Routing, es decir enrutamiento
que Internet se está quedando rápidamente sin direcciones IP. interdominios sin clases). El concepto básico del CIDR, que se
En teoría, existen cerca de dos mil millones de direcciones, pero describe en el RFC 1519, es repartir las redes clase C restantes,
la práctica de organizar el espacio de direcciones por clases de las que hay casi dos millones, en bloques de tamaño variable.
desperdicia millones de ellas. En particular el verdadero villano Si una instalación necesita, digamos, 2000 direcciones, se le da
es la red clase B. Para la mayoría de las organizaciones una red un bloque de 2048 direcciones (ocho redes clase C contiguas). y
clase A, con 16 millones de direcciones, es demasiado grande, y no una dirección clase B completa. Del mismo modo, una
una red clase C, de 256 direcciones, es demasiado pequeña. Una instalación que necesita 8000 direcciones recibe 8192
red clase B, con 65,536, es la adecuada. direcciones (32 redes contiguas clase C).
En realidad, una dirección clase B es demasiado grande pura Además de usar como unidades bloques de redes contiguas
la mayor parte de las organizaciones. Hay estudios que clase C, las reglas de asignación para las direcciones clase C
demuestran que más de la mitad de todas las redes clase B también se cambiaron en el RFC 1519. El mundo se dividió en
tienen menos de 50 hosts. Una red clase C habría bastado, pero cuatro zonas, y a cada una se le dio una parte del espacio de
sin duda todas las organizaciones que solicitaron una dirección direcciones clase C. La asignación fue la siguiente:
clase B pensaron que un día el campo de hosts de 8 bits les
quedaría pequeño. En retrospectiva, podría haber sido mejor que  Las direcciones [Link] a [Link] son para
las redes clase C usaran 10 bits en lugar de 8 para el número de Europa
host, permitiendo 1022 hosts por red. De haber sido éste el caso,  Las direcciones [Link] a [Link] son para
la mayor parte de las organizaciones probablemente se habría Norteamérica
conformado con una red clase C, y habría habido medio millón  Las direcciones [Link] a [Link] son para
de ellas (en vez de sólo 16.384 redes clase B). Centro y Sudamérica
Sin embargo, entonces habría surgido más rápidamente otro  Las direcciones [Link] a [Link] son para Asia
problema: la explosión de tablas de enrutamiento. Desde el y el Pacífico
punto de vista de los enrutadores el espacio de direcciones IP es
una jerarquía de dos niveles, con números de red y números de De este modo, cada región recibió unos 32 millones de
hosts. Los enrutadores no tienen que saber de todos los hosts, direcciones para repartir, con otros 320 millones de direcciones
pero sí tienen que saber de todas las redes. Si se usaran medio clase C, de la [Link] a [Link], guardadas como
-8-
reserva para el futuro. La ventaja de esta asignación es que El mensaje de Redireccionamiento (Redirect) se usa cuando
ahora cualquier enrutador fuera de Europa que recibe un paquete un enrutador se da cuenta de que un paquete parece estar mal
dirigido a [Link] o a [Link] simplemente puede enrutado y el enrutador lo usa para indicar al host transmisor el
enviarlo a su enrutador europeo estándar. En efecto, ahora se posible error.
han comprimido 32 millones de direcciones en una sola entrada Los mensajes de Solicitud de echo (Echo request) y
de tabla de enrutamiento. Lo mismo ocurre con las demás Respuesta al echo (Echo replay) sirven para ver si un destino
regiones. dado es alcanzable y está vivo. A1 recibir el mensaje de Eco, se
espera que el destino devuelva un mensaje de Respuesta de eco.
Protocolos de control de Internet Los mensajes Solicitud de marca de tiempo (Timestamp
Además del IP, que se usa para la transferencia de datos, request) y Respuesta de marca de tiempo (Timestamp reply) son
Internet tiene varios protocolos de control que se usan en la capa parecidos, excepto que el tiempo de llegada del mensaje y el
de red, incluidos ICMP, ARP, RARP y BOOTP. En esta sección tiempo de partida de la respuesta se registran en ln respuesta.
veremos algunos de ellos. Este recurso se emplea para medir el desempeño de la red.
Además de estos mensajes, hay cuatro más que tienen que
Protocolo de control de mensajes de Internet (ICMP) ver con el direccionamiento de Internet, para permitir que los
La operación de Internet es supervisada cuidadosamente por los hosts descubran sus números de red y para manejar el caso de
enrutadores. AI ocurrir algo inesperado, el ICMP (Internet varias LAN que comparten una sola dirección IP. El ICMP se
Control Message Protocol, protocolo de control de mensajes de define en el RFC 792. En la figura 9 se muestran los distintos
Internet), que también se usa para probar Internet, informa del mensajes.
suceso. Se ha definido una docena de tipos de rnensajes de
ICMP; los más importantes se listan en la figura 8. Cada tipo de
mensaje de ICMP se encapsula en un paquete IP.
El mensaje Destino inalcanzable (Destination unreachable) se
usa cuando la subred o un enrutador no pueden ubicar el
destino, o un paquete con el bit DF no puede entregarse porque
está en el camino una red de "paquete pequeño".
El mensaje de Tiempo excedido (Time exceeded) se envía
cuando un paquete se descarta debido a que su contador llega a
cero. Este suceso es un síntoma de que los paquetes están en
ciclo, de que hay m congestionamiento enorme, o de que los
valores de temporización son demasiado bajos.
El mensaje de Problema de parámetro (Parameter problem)
indica que se ha detectado un valor ilegal en un campo de
cabecera. Este problema indica una falla en el software de IP del
host, o posiblemente en el software de un enrutador transitado.

Figura 8. Los principales tipos de mensajes ICMP

El mensaje Supresión de origen (Source quench) se usaba


antes para controlar a los hosts que enviaban demasiados
paquetes. Al recibir un host este mensaje, se esperaba que se
refrenara. Este mensaje se usa poco en la actualidad porque, al
ocurrir congestionamientos, estos paquetes tienden a echarle
más leña al fuego. El control de congestionamiento de Internet
se hace ahora en gran medida en la capa de transporte.
-9-
Figura 9. Formatos de los mensajes ICMP transmisor sabe el nombre del receptor pretendido, quizás algo
como maria@[Link]. El primer paso es encontrar la
Protocolo de resolución de direcciones (ARP) dirección IP del Host 2, conocido como [Link]. Esta
Aunque cada máquina de Internet tiene una (o más) direcciones búsqueda la lleva a cabo el sistema de nombres de dominio
de 1P éstas no pueden usarse para enviar paquetes porque el (DNS, Domain Name System) que estudiaremos más adelante.
hardware de la capa de enlace de datos no entiende las direc- Por lo pronto, simplemente supondremos que el DNS devuelve
ciones de Internet. Hoy día, la mayoría de los hosts están la dirección IP del host 2 ([Link]).
conectados a alguna LAN mediante una tarjeta de interfaz que El software de capa superior del host 1 construye ahora un
sólo entiende direcciones de LAN. Por ejemplo, todas las paquete con [Link] en el campo de dirección de destino y
tarjetas Ethernet que se han fabricado vienen equipadas con una lo entrega al software de IP para su transmisión. El software de
dirección de Ethernet de 48 bits. Los fabricantes de tarjetas IP puede ver la dirección y saber si el destino está en su propia
Ethernet solicitan un bloque de direcciones de una autoridad red, pero necesita una manera de encontrar la dirección Ethernet
central para asegurarse de que dos tarjetas no puedan tener la del destino. Una solución es tener un archivo de configuración
misma dirección (para evitar conflictos en caso de que las dos en algún lugar del sistema que proyecte las direcciones IP en las
tarjetas aparezcan en la misma LAN). Las tarjetas envían y direcciones Ethernet. Esta solución ciertamente es posible pero,
reciben tramas con base en direcciones de Ethernet de 48 bits. en organizaciones con miles de máquinas, el mantenimiento de
No saben nada sobre las direcciones de IP de 32 bits. estos archivos es una tarea susceptible a errores y con alto
Ahora surge la pregunta: ¿cómo se proyectan las direcciones consumo de tiempo.
de IP en las direcciones de capa de enlace de datos, como las de Una mejor solución es que el host 1 envíe un paquete de
Ethernet? Para explicar el funcionamiento de esto, usemos el difusión por el Ethernet preguntando: "¿quién es el dueño de la
ejemplo de la figura 10, en la que se ilustra una universidad dirección IP [Link]?" La difusión llegará a cada máquina
pequeña con varias redes clase C. Aquí tenemos dos Ethernet, del Ethernet [Link], y cada una revisará su propia
uno en el departamento de informática, con una dirección IP de dirección IP. Sólo el host 2 responderá con su dirección Ethernet
[Link], y otra en el de ingeniería electrónica, con dirección (E2). De esta manera, el host 1 aprende que la dirección de IP
de IP de [Link]. Éstas se conectan mediante un anillo [Link] está en el host con la dirección Ethernet E2. El
FDDI del campus con una dirección IP de [Link]. Cada protocolo para preguntar esto y obtener la respuesta se llama
máquina de un Ethernet tiene una dirección de Ethernet única, ARP (Address Resolution Protocol, protocolo de resolución de
etiquetada F1 a E6 y cada máquina del anillo FDDI tiene una direcciones). Casi todas las máquinas de Internet lo ejecutan.
dirección FDDI, etiquetada F1 a F3. Este protocolo se define en el RFC 826.
Comencemos por ver la manera en que un usuario del host 1
envía un paquete a un usuario del host 2. Supongamos que el

Figura 10. Ejemplo de redes interconectadas

La ventaja del ARP sobre los archivos de configuración es la carga útil y lo pasa al software de IP, que nota que está
sencillez. El administrador del sistema no necesita hacer mucho, correctamente dirigido, y lo procesa.
excepto asignar a cada máquina una dirección IP y decidir sobre Son posibles varias optimizaciones para hacer más eficiente
las máscaras de subred. El ARP hace lo demás. el ARP. Por principio de cuentas, una vez que una máquina ha
En este punto, el software de IP del host 1 construye una ejecutado el ARP, pone en caché el resultado por si necesita
trama Ethernet dirigida a E2, pone el paquete IP (dirigido a establecer contacto con la misma máquina pronto. La siguiente
[Link]) en el campo de carga útil, y lo arroja a la red vez encontrará la conversión en su propio caché, eliminando por
Ethernet. La tarjeta de Ethernet del host 2 detecta esta trama, la tanto la necesidad de una segunda difusión. En muchos casos, el
reconoce como una trama para él mismo, la recoge y causa una host 2 necesitará devolver una respuesta, lo que lo obliga
interrupción. El operador de Ethernet extrae el paquete IP de la también a ejecutar el ARP para determinar la dirección Ethernet
-10-
del transmisor. Esta transmisión ARP puede evitarse haciendo Puede usarse un socket para varias conexiones al mismo
que el host 1 incluya su conversión de IP a Ethernet en el tiempo. En otras palabras, dos o más conexiones pueden
paquete ARP. A1 llegar la difusión del ARP al host 2, se ingresa terminar en el mismo socket. Las conexiones se identifican
el par ([Link], E1) en el caché de ARP del host 2 para su mediante los identificadores de ambas terminales, es decir
uso futuro. De hecho, todas las máquinas que operan con (socket1, socket2).
Fthernet pueden ingresar esta información en sus cachés de Los números de puerto por debajo de 1024 se llaman puertos
ARP. bien conocidos (well-known ports) y se reservan para servicios
Para permitir el cambio de las proyecciones, por ejemplo, estándar. Por ejemplo, cualquier proceso que desee establecer
cuando se descompone una tarjeta Ethernet y se reemplaza por una conexión a un host para transferir un archivo usando FTP
una nueva (y por tanto con una dirección Ethernet nueva), las puede conectarse al puerto 21 del host de destino para
entradas en el caché de ARP deben terminar su temporización la comunicarse con su daemon (proceso reentrante) de FTP. De la
transcurrir algunos minutos. misma manera, para establecer una sesión interactiva remota
usando Telnet, se usa el puerto 23. HTTP usa el puerto 80 y
Los protocolos de transporte (TCP y UDP) DNS el puerto 25. La lista de puertos bien conocidos se da en el
TCP/IP tiene dos protocolos principales en la capa de transporte, RFC 1700.
un protocolo orientado a conexiones y uno sin conexiones. El Todas las conexiones TCP son dúplex integral y punto a
protocolo orientado a conexiones es el TCP; el protocolo sin punto. Dúplex integral significa que el tráfico puede ir en ambos
conexiones es el UDP. Dado que el UDP es básicamente el IP sentidos al mismo tiempo. Punto a punto significa que cada co-
con la adición de una cabecera corta, nos enfocaremos al TCP. nexión tiene exactamente dos puntos terminales. TCP no
TCP (Transmission Control Protocol, protocolo de control reconoce la multitransmisión ni la dífusión.
de transmisión) se diseñó específicamente para proporcionar un Una conexión TCP es un flujo de bytes, no un flujo de
flujo de bytes confiable a través de una interred no confiable. mensajes. Los límites de mensaje no se conservan de extremo a
Una interred es diferente de una sola red porque las distintas extremo. Por ejemplo, si el proceso transmisor hace cuatro
partes pueden tener topologías, anchos de banda, retardos, escrituras de 512 bytes en un flujo TCP estos datos pueden
tamaños de paquete y otros parámetros con grandes diferencias. entregarse al proceso receptor como cuatro bloques de 512
Se diseñó TCP para adaptarse dinámicamente a las propiedades bytes, dos bloques de 1024 bytes, un bloque de 2048 bytes, o de
de la interred y para ser robusto ante muchos tipos de fallas. algún otro modo. No hay manera de que el receptor detecte las
TCP se definió formalmente en el RFC 793. A medida que unidades en las que se escribieron los datos.
pasó el tiempo, se detectaron varios errores e inconsistencias, y Cuando una aplicación pasa datos a TCP, éste puede
se cambiaron los requisitos de algunas áreas. Estas clarifica- enviarlos de inmediato o guardarlos en un buffer (a fin de reunir
ciones y algunas correcciones de fallas se detallan en el RFC una cantidad mayor de información para enviarla junta), a
1122. En el RFC 1323 se presentan las extensiones. discreción propia. Sin embargo, a veces la aplicación simple-
Cada máquina que reconoce TCP tiene una entidad de mente quiere que los datos se envíen de inmediato. Por ejemplo,
transporte TCP, ya sea un proceso de usuario o una parte del supóngase que un usuario está en sesión con una máquina
núcleo que maneja el flujo TCP y tiene interfaz con la capa IP. remota. Tras la terminación de una línea de comandos y el
Una entidad TCP acepta datos de usuario de los procesos retorno de carro, es esencial que la línea se envíe a la máquina
locales, los divide en partes que no exceden 64K bytes (en la remota de inmediato y no se guarde en buffer hasta la entrada de
práctica, generalmente de unos 1500 bytes), y envía cada parte la siguiente línea. Para obligar la salida de datos, las
como datagrama IP independiente. Cuando llegan a una aplicaciones pueden usar la bandera (flag) PUSH que ordena a
máquina datagramas IP que contienen datos TCP, son TCP no retrasar la transmisión.
entregados a la entidad TCP que reconstruye las flujos Algunas de las primeras aplicaciones usaron la bandera
originales de bytes. PUSH como una especie de marcador para delinear los límites
La capa IP no ofrece ninguna garantía de que los datagramas de los mensajes. Aunque este truco a veces funciona, en
se entregarán adecuadamente, por lo que es responsabilidad del ocasiones falla porque no todas las implementaciones de TCP
TCP terminar de temporizar y retransmitirlos según se necesite. pasan la bandera PUSH a la aplicación del lado receptor. Es
Los datagramas que sí llegan pueden hacerlo desordenadamente; más, si llegan otros PUSH adicionales antes de la transmisión
también es responsabilidad del TCP reensamblarlos en mensajes del primero (por ejemplo, por estar ocupada la línea de salida),
con la secuencia adecuada. En pocas palabras, el TCP debe TCP está en libertad de juntar todos los datos que entran por
proveer la confiabilidad que la mayoría de los usuarios quiere y PUSH en un solo datagrama IP, sin separación entre las
que IP no proporciona. diferentes partes.
Una última característica del servicio TCP que vale la pena
Modelo de servicio TCP mencionar son los datos urgentes. Cuando un usuario interactivo
El servicio TCP se obtiene haciendo que tanto el transmisor pulsa la tecla DEL o CTRL-C para interrumpir un cómputo
como el receptor creen conexiones virtuales llamados puntos remoto ya iniciado, la aplicación transmisora pone cierta
terminales o sockets. Cada socket tiene un número (dirección) información de control en la corriente de datos y se la da a TCP
de socket que consiste en la dirección IP del host y en un junto con la bandera URGENT. Este evento hace que TCP deje
número de 16 bits local a ese host, llamado puerto. Para obtener de acumular datos y transmita de inmediato todo lo que tiene
el servicio TCP, debe establecerse explícitamente una conexión para esa conexión.
entre un socket de la máquina transmisora y un socket de la Al recibirse los datos urgentes en el destino, se interrumpe la
máquina receptora. aplicación receptora (por ejemplo, recibe una señal en términos
-11-
de Unix), para que la aplicación pueda detener lo que estaba El protocolo básico usado por las entidades TCP es el
haciendo y leer la corriente de datos hasta encontrar los datos protocolo de ventana corrediza. Cuando un transmisor envía un
urgentes. Se marca el fin de los datos urgentes, por lo que la segmento, también inicia un temporizador. Cuando llega el
aplicación sabe cuándo han terminado. El comienzo de los datos segmento al destino, la entidad TCP receptora devuelve un
urgentes no se marca; es responsabilidad de la aplicación segmento (con datos, si existen, de otro modo sin ellos) que
averiguarlo. Este esquema básicamente proporciona un contiene un número de acuse de recibo igual al siguiente
mecanismo burdo de señalamiento, y deja todo lo demás en número de secuencia que espera recibir. Si el temporizador del
manos de la aplicación. transmisor expira antes de la recepción del acuse de recibo, el
transmisor envía de nuevo el segmento.
El protocolo TCP Aunque este protocolo suena sencillo, tiene muchos
Cada byte de una conexión TCP tiene su propio número de vericuetos que cubriremos a continuación. Por ejemplo, dado
secuencia de 32 bits. En un host que opera a toda velocidad en que los segmentos pueden fragmentarse, es posible que llegue
una LAN de 10 Mbps, en teoría los números de secuencia una parte del segmento transmitido y que la entidad TCP
podrían volver a comenzar en una hora, pero en la práctica tarda receptora envíe un acuse de recibo, pero la otra parte se pierda.
mucho más tiempo. Se usan los números de secuencia tanto para También pueden llegar segmentos fuera de orden, por lo que los
los acuses de recibo como para el mecanismo de ventana, que bytes 3072-4095 podrían llegar pero no enviarse acuse de recibo
utilizan campos de cabecera de 32 bits distintos. porque los bytes 2048-3071 no han aparecido aún. También
La entidad TCP transmisora y la receptora intercambian pueden retardarse segmentos en tránsito durante tanto tiempo
datos en forma de segmentos. Un segmento consiste en una que el transmisor termina de temporizar y retransmite
cabecera TCP fija de 20 bytes (más una parte opcional) seguida nuevamente. Si un segmento retransmitido toma una ruta
de cero o más bytes de datos. El software de TCP decide el distinta a la del original y se fragmenta de manera diferente,
tamaño de los segmentos; puede acumular datos de varias pueden llegar esporádicamente partes tanto del original como
escrituras para formar un segmento, o dividir los datos de una del duplicado, requiriéndose una administración cuidadosa para
escritura en varios segmentos. Hay dos límites que restringen el lograr una corriente de bits confiable. Por último, siendo tantas
tamaño de segmento. Primero, cada segmento, incluida la las redes que constituyen la Internet, es posible que un segmento
cabecera TCP, debe caber en la carga útil de 65,535 bytes del pueda toparse ocasionalmente con una red congestionada (o
IP. Segundo, cada red tiene una unidad máxima de rota) en alguna parte de su trayectoria.
transferencia, o MTU (maximum transfer unit), y cada segmento TCP debe estar preparado para manejar y resolver estos
debe caber en la MTU. En la práctica, las MTU generalmente problemas de una manera eficiente. Se ha invertido una cantidad
son de unos cuantos miles de bytes y por tanto definen el límite considerable de esfuerzo en la optimización del desempeño de
superior del tamaño de segmento. Si un segmento pasa a través TCP incluso ante problemas de red.
de una serie de redes sin fragmentarse y luego se topa con una En la figura 11 se muestra el formato de un segmento TCP.
cuya MTU es menor que el segmento, el enrutador de la frontera Cada segmento comienza con una cabecera de formato fijo de
fragmenta el segmento en dos o más segmentos más pequeños. 20 bytes. La cabecera fija puede ir seguida de opciones de
Un segmento demasiado grande para transitar por una red cabecera. Tras las opciones, si las hay, pueden continuar hasta
puede dividirse en varios segmentos mediante un enrutador. 65,535 - 20 - 20 = 65,515 bytes de datos, donde los primeros 20
Cada segmento nuevo recibe sus propias cabeceras TCP e IP, se requieren a la cabecera IP y los segundos a la cabecera TCP.
por lo que la fragmentación en los enrutadores aumenta la carga Los segmentos sin datos son legales v se usan por lo común para
extra total (puesto que cada segmento adicional agrega 40 bytes acuses de recibo y mensajes de control.
de información de cabecera).
-12-

Figura 11. Cabecera TCP

Realicemos la disección de la cabecera TCP campo por Luego vienen seis banderas de 1 bit. URG se establece en 1
campo. Los campos de puerto de origen y puerto de destino si está en uso el apuntador urgente. El apuntador urgente sirve
identifican los puntos terminales locales de la conexión. Cada para indicar un desplazamiento en bytes a partir del número
host puede decidir por sí mismo la manera de asignar sus actual de secuencia en el que se encuentran datos urgentes. Este
propios puertos comenzando por el 256. La dirección de un recurso sustituye los mensajes de Interrupción. Como se
puerto más la dirección IP de su host forman un socket único de mencionó antes, este recurso es un mecanismo rudimentario
48 bits. Los números de socket de origen y de destino en para permitir que el transmisor envíe una señal al receptor sin
conjunto identifican la conexión. implicar a TCP en la razón de la interrupción.
El campo número de secuencia (SN) es análogo al fragment El bit ACK se establece en 1 para indicar que el número de
offset en IP y contiene la posición de los datos dentro del flujo. acuse de recibo es válido. Si el ACK es 0, el segmento no
Cuando empieza la transmisión de datos, SN no se pone en 0, contiene un acuse de recibo, por lo que se ignora el campo de
sino con un valor inicial pseudoaleatorio llamado ISN (Initial número de acuse de recibo.
Sequence Number), a fin de evitar problemas con paquetes de El bit PSH indica datos empujados (con PUSH). Por este
conexiones previas que todavía estén vagando por la red. Se usa medio se solicita atentamente al receptor entregar los datos a la
un esquema basado en reloj, con un pulso de reloj cada 4 seg. aplicación a su llegada y no ponerlos en buffer hasta la
Por seguridad adicional, al caerse un host, no podrá reiniciarse recepción de un buffer completo (lo que podría hacer en otras
durante el tiempo de vida máximo de paquete (120 seg). circunstancias por razones de eficiencia).
El campo número de acuse de recibo (AN) desempeña la Se usa el bit RST para restablecer una conexión que se ha
función de confirmar la recepción de datos. AN especifica el confundido debido a una caída de host u otra razón; también
siguiente byte que se espera, no el último byte correctamente sirve para rechazar un segmento no válido o un intento de abrir
recibido, de manera que si se ha recibido correctamente hasta una conexión. Por lo general, si usted recibe un segmento con el
1000, se envía AN = 1001. bit RST encendido, tiene un problema entre manos.
Tanto SN como AN tienen 32 bits de longitud porque cada El bit SYN se usa para establecer conexiones. La solicitud
byte de datos está numerado en un flujo TCP. de conexión tiene SYN = 1 y ACK = 0 para indicar que el
La longitud de cabecera TCP indica la cantidad de palabras campo de acuse de recibo incorporado no está en uso. La
de 32 bits contenidas en la cabecera TCP. Esta información es respuesta de conexión sí lleva un reconocimiento, por lo que
necesaria porque el campo de opciones es de longitud variable, tiene SYN = 1 y ACK = 1 . En esencia, el bit SYN se usa para
por lo que la cabecera también. Técnicamente, este campo en denotar solicitud de conexión y aceptación de conexión,
realidad indica el comienzo de los datos en el segmento, medido usándose el bit ACK para distinguir entre ambas posibilidades.
en palabras de 32 bits, pero ese número es simplemente la E1 bit FIN se usa para liberar una conexión; especifica que
longitud de la cabecera en palabras, por lo que el efecto es el el transmisor no tiene más datos que transmitir. Sin embargo,
mismo. tras cerrar una conexión, un proceso puede continuar recibiendo
A continuación viene un campo de 6 bits que no se usan. El datos indefinidamente. Ambos segmentos, SYN y FIN, tienen
que este campo haya sobrevivido intacto durante más de una números de secuencia y por tanto tienen la garantía de
década es testimonio de lo bien pensado que está el TCP. procesarse en el orden correcto. El control de flujo en el TCP se
Protocolos menos bien hechos lo habrían necesitado para maneja usando una ventana corrediza de tamaño variable. El
corregir errores del diseño original. campo de ventana indica la cantidad de bytes que pueden
-13-
enviarse comenzando por el byte que ya se ha enviado acuse de comprobación simplemente suma todas las palabras de 16 bits
recibo. Es válido un campo de ventana de 0, e indica que se han en complemento a 1 y luego obtiene el complemento a 1 de la
recibido los bytes hasta número de acuse de recibo - 1, suma. Como consecuencia, al realizar el cálculo el receptor con
inclusive, pero que el receptor actualmente necesita un descanso el segmento completo, incluido el campo de suma de compro-
y, quisiera no recibir más datos por el momento, gracias. El bación, el resultado debe ser 0.
permiso para enviar puede otorgarse después enviando un La pseudocabecera contiene las direcciones IP de 32 bits de
segmento con el mismo número de acuse de recibo y un campo las máquinas de origen y de destino, el número de protocolo de
de ventana distinto de cero. TCP (6), y la cuenta de bytes del segmento TCP (incluida la
También se proporciona una suma de comprobación para cabecera). La inclusión de la pseudocabecera en el cálculo de la
confiabilidad extrema. Es una suma de comprobación de la suma de comprobación TCP ayuda a detectar paquetes mal
cabecera, los datos y la pseudocabecera conceptual mostrada en entregados, pero hacerlo viola la jerarquía de protocolos, puesto
la figura 12. que las direcciones de IP que contiene pertenecen a la capa IP,
Al realizar este cálculo, se establece el campo de suma de no a la capa TCP.
comprobación del TCP en cero. El algoritmo de suma de

Figura 12. Pseudocabecera incluida en la suma de comprobación del TCP

El campo de opciones se diseñó para contar con una manera Otra opción propuesta en el RFC 1106 y ahora de uso
de agregar características extra no cubiertas por la cabecera difundido es el el empleo de la repetición selectiva en lugar del
normal. La opción más importante es la que permite que cada protocolo de regresar n (go back n). Si el receptor recibe un
host especifique la carga útil TCP máxima que está dispuesto a segmento malo y luego una gran cantidad de segmentos buenos,
aceptar. El uso de segmentos grandes es más eficiente que el de el protocolo TCP normal en algún momento terminará de
segmentos pequeños, puesto que la cabecera de 20 bytes puede temporizar y retransmitirá todos los segmentos sin acuse de
entonces amortizarse entre más datos, pero los hosts pequeños recibo, incluidos los que se recibieron correctamente. El RFC
tal vez no puedan manejar segmentos muy grandes. Durante el 1106 introdujo los NAK, para permitir que el receptor solicite
establecimiento de la conexión, cada lado puede anunciar su un segmento (o segmentos) específico. Tras recibirlo, puede
máximo y ver el de su compañero. El más pequeño de los dos enviar un acuse de recibo de todos los datos que tiene en buffer,
números es el ganador. Si un host no usa esta opción, reduciendo de esta manera la cantidad de datos retransmitidos.
predetermina una carga útil de 536 bytes. Se requiere que todos
los hosts acepten segmentos TCP de 536 + 20 = 556 bytes. Establecimiento de conexiones
En las líneas con alto ancho de banda, alto retardo o ambas En TCP se establecen las conexiones usando el protocolo de
cosas, la ventana de 64 KB con frecuencia es un problema. En acuerdo de tres vías (three-way handshake). Un lado, digamos el
una línea T3 (44.736 Mbps) se requieren sólo 12 mseg para servidor, espera pasivamente una conexión entrante ejecutando
enviar una ventana completa de 64 KB. Si el retardo de comandos del tipo LISTEN y ACCEPT y especificando cierto
propagación de ida y vuelta es de 50 mseg (típico de una fibra origen o bien nadie en particular.
transcontinental), el transmisor estará inactivo 3/4 del tiempo en El otro lado, digamos el cliente, ejecuta un comando tipo
espera de acuses de recibo. En una conexión satelital la CONNECT especificando la dirección y el puerto IP con el que
situación es peor aún. Un tamaño de ventana más grande se desea conectar, el tamaño máximo de segmento TCP que está
permitirá al transmisor continuar enviando datos, pero como el dispuesto a aceptar y opcionalmente algunos datos de usuario
campo de tamaño de ventana es de 16 bits, es imposible (por ejemplo, una contraseña). El comando CONNECT envía un
expresar tal tamaño. En el RFC 1323 se propuso una opción de segmento TCP con el bit SYN encendido y el bit ACK apagado,
escala de ventana que permite al transmisor y al receptor y espera una respuesta.
negociar un factor de escala de ventana. Este número permite Al llegar el segmento al destino, la entidad TCP ahí revisa si
que ambos lados desplacen el campo de tamaño de ventana hay un proceso que haya ejecutado un LISTEN en el puerto
hasta 16 bits a la izquierda, permitiendo por tanto un máximo de indicado en el campo de puerto de destino. Si no lo hay, envía
232 bytes. La mayoría de las implementaciones actuales de TCP una contestación con el bit RST encendido para rechazar la
manejan esta opción. conexión.
-14-
Si algún proceso está escuchando en el puerto, ese proceso En el caso en que dos hosts intentan simultáneamente
recibe el segmento TCP entrante y puede entonces aceptar o establecer una conexión entre los mismos dos sockets, la
rechazar la conexión; si la acepta, se devuelve un segmento de secuencia de eventos es la que se ilustra en la figura 13(b). El
acuse de recibo. La secuencia de segmentos TCP enviados en el resultado de estos eventos es que sólo se establece una
caso normal se muestra en la figura 13. conexión, no dos, pues las conexiones se identifican por sus
Nótese que un segmento SYN consume 1 byte de espacio de puntos terminales. Si el primer establecimiento resulta en una
secuencia, por lo que puede reconocerse sin ambigüedades. conexión identificada por (x, y), al igual que el segundo, sólo se
hace una entrada de tabla, es decir, de (x, y).

Figura 13. (a) Establecimiento de una conexión TCP en e1 caso normal. (b) Colisión de llamadas.

El problema del número de secuencia que ha estado utilizando. Cuando se crean nuevas conexiones, se
Una aspecto fundamental en TCP es que todo octeto de datos utiliza un generador del Número Inicial de Secuencia (Initial
enviado tiene un número de secuencia. Puesto que todos los Sequence Number, ISN) que selecciona un nuevo ISN de 32
octetos tienen asignado un orden de secuencia, cada uno de ellos bits. El generador está acoplado a un reloj de 32 bits cuyo bit de
puede ser confirmado. El mecanismo de confirmación empleado menor orden se incrementa aproximadamente cada 4
es acumulativo, de modo que la confirmación del número de microsegundos. Por tanto, el valor ISN completa un ciclo cada
secuencia X indica que todos los octetos hasta X, pero sin 4,55 horas aproximadamente. Puesto que se supone que los
incluir a éste, han sido recibidos. Este mecanismo permite una segmentos no permanecerán en la red durante un tiempo mayor
detección sencilla de duplicados cuando existan retransmisiones. que el Tiempo de Vida Máximo del Segmento (Maximum
La forma de numerar los octetos dentro de un segmento es la Segment Lifetime, MSL) y que el valor MSL es inferior a 4,55
siguiente: el primer octeto de datos situado inmediatamente a horas, podemos razonablemente suponer que los valores ISN
continuación de la cabecera tiene el número más bajo, y todos serán únicos.
los octetos sucesivos se numeran de forma consecutiva. Para cada conexión, existe un número de secuencia de
Hay que recordar que el espacio de números de secuencia transmisión y un número de secuencia de recepción. El número
existente es finito, aunque de gran tamaño. Este espacio va de Secuencia Inicial de Transmisión (Initial Send Sequence,
desde 0 a 232-1. ISS) es seleccionado por el protocolo TCP que envía los datos,
El protócolo no establece ninguna restricción para que una mientras que el número de Secuencia de Recepción Inicial
conexión determinada pueda ser utilizada repetidamente. Cada (Initial Receive Sequence, IRS) se adquiere durante el procedi-
conexión queda definida por un par de conectores. Las nuevas miento de establecimiento de la conexión.
instancias de una conexión se denominan encarnaciones de la Para que una conexión pueda ser establecida o reinicializada,
conexión. El problema que surge de esto es ¿cómo identifica el los dos protocolos TCP deben sincronizarse en sus respectivos
protocolo TCP los segmentos duplicados de encarnaciones números de secuencia inicial. Esto se realiza mediante un
previas de la conexión? Este problema se hace patente si se abre intercambio de segmentos de establecimiento de conexión que
y cierra la conexión muy rápidamente, o si la conexión se incorporan un bit de control denominado SYN, (sincronización)
interrumpe con pérdida de memoria y es, a continuación, y los números iniciales de secuencia. Como abreviatura, los
reestablecida. segmentos que incorporan el bit SYN también se denominan
Para evitar la confusión, se debe evitar que los segmentos de SYN. Por tanto, la solución requiere un mecanismo apropiado
una encarnación de una conexión puedan ser usados mientras para seleccionar un número inicial de secuencia y una
que los mismos números de secuencia, pero de una encarnación negociación algo compleja para intercambiar los valores ISN.
anterior, puedan estar presentes en la red. Se necesita asegurar La sincronización requiere que cada extremo envíe su propio
este extremo incluso en el caso de que un protocolo TCP falle y número inicial de secuencia y reciba una confirmación del
pierda todo el conocimiento acerca de los números de secuencia mismo por parte del otro extremo. Cada extremo debe también
-15-
recibir el número inicial de aecuencia del otro extremo y enviar sistema Internet del cual el host forma parte. En los párrafos que
la correspondiente confirmación. siguen se proporciona una explicación de esta especificación.
Los protocolos TCP consumen espacio de números de
1 ) AB SYN mi número de secuencia es X secuencia cada vez que un segmento se forma y es introducido
2) AB ACK tu número de secuencia es X en la cola de salida de red, en una máquina host de origen. El
3) AB SYN mi número de secuencia es Y algoritmo de detección de duplicados y de secuenciación en el
4) AB ACK tu número de secuencia es Y protocolo TCP se basa en la correspondencia unívoca entre
segmentos de datos y el espacio de secuencia, de modo que los
Puesto que los pasos 2 y 3 pueden combinarse en un ünico números de secuencia no completarán un ciclo de 2 32 valores
mensaje, esta negociación se denomina negociación de tres vías. hasta que los datos de los segmentos asociados a dichos
Es necesaria una negociación de 3 vías porque los números números de secuencia hayan sido entregados y confirmados por
de secuencia no están enlazados con un reloj global de la red y el receptor y todas las copias duplicadas de los segmentos hayan
los protocolos TCP pueden tener diferentes mecanismos para sido eliminadas de Internet.
seleccionar los valores ISN. El receptor del primer SYN no tiene Sin esa suposición, serta posible asignar a dos segmentos
manera de saber si el segmento era un segmento antiguo que ha TCP diferentes los mismos números de secuencia o números de
llegado con retraso o no, a menos que recuerde el último secuencia solapados, causando confusión en el receptor con
número de secuencia utilizado en la conexión (lo cual no es respecto a cuáles datos son nuevos y cuáles son antiguos.
siempre posible), por lo que debe pedir al emisor que verifique Recuérdese que cada segmento está asociado a tantos números
este SYN. de secuencia consecutivos como octetos de datos haya en el
Para estar seguros de que un protocolo TCP no crea un segmento.
segmento que lleve un número de secuencia duplicado, con Bajo condiciones normales, los protocolos TCP llevan la
respecto a un segmento antiguo que pueda permanecer en la red, cuenta del siguiente número de secuencia que hay que transmitir
el protocolo TCP debe permanecer en silencio durante un y de la confirmación más antigua que esté pendiente, para evitar
intervalo de tiempo igual al máximo tiempo de vida de utilizar otra vez por equivocación un número de secuencia antes
segmento (MSL), antes de asignar números de secuencia al de que su primer uso haya sido confirmado. Esto no garantiza,
arrancar o al recuperarse de una caída en la que fuera perdida la por sí solo, que los datos antiguos duplicados sean eliminados
memoria de los números de secuencia utilizados. El valor de de la red, de modo que el espacio de secuencia ha sido definido
MSL es de 2 minutos. Ésta es una elección dictada por con un tamaño muy grande para reducir la probabilidad de que
consideraciones de ingeniería, y puede cambiarse si la un duplicado errante pueda causar problemas en la llegada. A 2
experiencia indica que es aconsejable hacerlo. megabits/segundo, se tardan 4,5 horas en emplear los 2 32 octetos
Podemos ver claramente la necesidad de esta restricción del espacio de secuencia. Puesto que no es probable que el
mediante un ejemplo. Sea MSL de 60 seg. El pulso del reloj es tiempo de vida máximo de un segmento en la red exceda unas
de uno por segundo. Supongamos que el número de secuencia pocas décimas de segundo, se considera que ésta es protección
inicial de una conexión abierta en el momento x será x. suficiente para las redes hoy en día imaginables, incluso si las
Imaginemos que, en t = 30 seg. Un paquete de datos enviado a tasas de transferencia de datos se incrementan hasta el orden de
través de la conexión 5, previamente abierta, recibe el número las decenas de megabits/segundo. A 100 megabits/segundo, el
de secuencia 80. Llamemos a este paquete X. De inmediato tras tiempo de ciclo es de 5,4 minutos, que puede resultar algo corto,
el envío de X, el host se cae y reinicia pronto. En t = 60, el host pero todavía razonable.
comienza a reabrir las conexiones 0 a 4. En t = 70, reabre la El algoritmo básico de detección de duplicados y de
conexión 5, usando el número de secuencia inicial 70, como se secuenciación en TCP puede fallar, sin embargo, si un protocolo
requiere. Durante los siguientes 15 segundos envía los paquetes TCP de origen no conserva memoria de los números de
de datos 70 a 80. Por tanto, en t = 85 se ha inyectado un paquete secuencia que utilizó anteriormente en una conexión dada. Por
nuevo con número de secuencia 80 y conexión 5 en la subred. ejemplo, si el protocolo TCP comenzara todas las conexiones
Por desgracia, el paquete X aún existe y si llegara al receptor con el número de secuencia 0, dicho protocolo podría, después
antes del nuevo paquete, sería aceptado y se rechazaría el de fallar y reinicializarse, volver a formar una conexión anterior
correcto como duplicado. (posiblemente después de una resolución de conexión semia-
Para evitar tales problemas, se debe evitar la asignación de bierta) y emitir paquetes con números de secuencia idénticos o
números de secuencia nuevos (es decir, asignados a paquetes solapados a los de otros paquetes, todavía presentes en la red,
nuevo) durante un tiempo MSL antes de su uso potencial como transmitidos en una encarnación anterior de la misma conexión.
números iniciales de secuencia. En ausencia de conocimientos acerca de los números de
Obsérvese que si se reinicializa de alguna manera un secuencia utilizados en una conexión determinada, la
protocolo TCP, pero éste retiene la memoria de los números de especificación TCP recomienda que el origen de los datos haga
secuencia utitizados, no necesita esperar en absoluto; lo único un retardo de MSL segundos antes de emitir segmentos a través
que tendrá que hacer es asegurarse de emplear números de de la conexión, para dar tiempo a que los segmentos de la
secuencia mayores que los recientemente utilizados. anterior encarnación de la conexión sean eliminados del sistema.
TCP establece que las máquinas host que fallen sin Incluso las máquinas host que recuerden la hora del día y la
conservar el conocimiento de los últimos números de secuencia utilicen para seleccionar el número inicial de secuencia no son
transmitidos en cada conexión activa (es decir, no cerrada) inmunes a este problema (es decir, incluso si se usa la hora del
deben retardar la emisión de segmentos TCP durante, al menos, día para seleccionar un número inicial de secuencia para cada
el tiempo de vida máximo del sgmento (MSL) acordado en el nueva encarnación de la conexión).
-16-
Supóngase, por ejemplo, que se abre una conexión Los ejércitos azules quieren sincronizar sus ataques. Sin
comenzando con el número de secuencia S. Supóngase que esta embargo, su único medio de comunicación es el envío de
conexión no se utiliza mucho y que, eventualmente, la función mensajeros a pie a través del valle, donde podrían ser
de generación del número inicial de secuencia (ISN(t)) toma un capturados, perdiéndose el mensaje (es decir, tienen que usar un
valor, por ejemplo S1, igual al número de secuencia del último canal de comunicación no confiable). La pregunta es: ¿Existe un
segmento enviado por este protocolo TCP en una conexión protocolo que permita que los ejércitos azules ganen?
determinada. Supóngase ahora que, en ese momento, la máquina Supóngase que el comandante del ejército azul #1 envía un
host falla, se recupera y establece una nueva encarnación de la mensaje que dice: "Propongo que ataquemos al amanecer de
conexión. El número inicial de secuencia seleccionado será Sl = mañana. ¿Qué les parece?" Ahora supongamos que llega el
ISN (t), es decir, el último número de secuencia utilizado por mensaje y que el comandante del ejército azul #2 esta de
una antigua encarnación de la conexión. Si la recuperación acuerdo, y que su respuesta llega con seguridad al ejército azul
ocurre lo suficientemente rápido, cualesquiera duplicados #1. ¿Ocurrirá el ataque? Probablemente no, porque el
antiguos en la red que tengan números de secuencia en la comandante #2 no sabe si su respuesta llegó. Si no llegó, el
vecindad de Sl pueden llegar y ser tratados como nuevos ejército azul #1 no atacará, y sería tonto de su parte emprender
paquetes por el receptor de la nueva encarnación de la conexión. el ataque. De hecho, puede demostrarse que no existe un
El problema es que el host que efectúa la recuperación puede protocolo que funcione.
no saber cuánto tiempo transcurrió entre la caída y la Para ver la aplicación del problema de los dos ejércitos a la
recuperación, ni tampoco sabe si todavía hay duplicados liberación de conexiones, simplemente sustitúyase "atacar" por
antiguos en el sistema, procedentes de encarnaciones anteriores "desconectar". Si ninguna de las partes está dispuesta a
de la conexión. desconectarse hasta estar convencida de que la otra lo va a hacer
Una forma de tratar con este problema consiste en retardar también, nunca ocurrirá la desconexión.
deliberadamente la emisión de segmentos durante un tiempo En la práctica, generalmente estamos más dispuestos a correr
igual a MSL, después de recuperarse de una caída; ésta es la riesgos al liberar conexiones TCP que al atacar ejércitos
especificación del tiempo de silencio. Las máquinas host que blancos, por lo que la situación no es del todo desesperada.
prefieran no esperar y estén dispuestas a arriesgarse a que surja Las conexiones TCP son dúplex integral, pero para entender
una posible confusión entre los nuevos paquetes y los antiguos la manera en que se liberan las conexiones es mejor visua-
en un destino dado, pueden elegir no esperar durante el tiempo lizarlas como un par de conexiones símplex. Cada conexión
de silencio. símplex se libera independientemente de su igual. Para liberar
En resumen: cada segmento emitido ocupa uno o más una conexión, cualquiera de las partes puede enviar un
números se secuencia en el espacio de secuencia; los números segmento TCP con el bit FIN establecido, lo que significa que
ocupados por un segmento están “en uso” hasta que hayan no tiene más datos por transmitir. A1 reconocerse el FIN, ese
pasado MSL segundos; después de una caída, un bloque de sentido se apaga. Sin embargo, puede continuar un flujo de
espacio de secuencia está ocupado por los octetos del último datos indefinido en el otro sentido. Cuando ambos sentidos se
segmento emitido; si se comienza una conexión demasiado han apagado, se libera la conexión. Normalmente se requieren
pronto y ésta emplea algunos de los números de secuencia de la cuatro segmentos TCP para liberar una conexión, un FIN y un
huella dejada en el espacio de secuencia por el último segmento ACK para cada sentido. Sin embargo, es posible que el primer
de la encarnación previa de la conexión, hay un área potencial ACK v el segundo FIN estén contenidos en el mismo segmento,
de solapamiento de los números de secuencia que puede causar reduciendo la cuenta total a tres.
confusión en el receptor. Al igual que con las llamadas telefónicas en las que ambas
partes dicen adiós y cuelgan el teléfono simultáneamente, ambos
Liberación de conexiones extremos de una conexión TCP pueden enviar segmentos FIN al
En principio, existen 2 formas de terminar de una conexión: mismo tiempo. Ambos se reconocen de la manera normal, y se
liberación asimétrica y liberación simétrica. La liberación apaga la conexión. De hecho, en esencia no hay diferencia entre
asimétrica es la manera en que funciona el sistema telefónico: la liberación secuencial o simultánea por parte de los hosts.
cuando una parte cuelga, se rompe la conexión. Para evitar el problema de los dos ejércitos, se usan
La liberación simétrica trata la conexión como dos temporizadores.
conexiones unidireccionales distintas, y requiere que cada una Si no llega una respuesta a un FIN en un máximo de dos
se libere por separado. Así opera TCP. tiempos de vida de paquete, el transmisor del FIN libera la
A primera vista pareciera que la liberación de una conexión conexión. Tarde o temprano el otro lado notará que, al parecer,
es más fácil que su establecimiento. No obstante, hay más ya nadie lo está escuchando, y también terminará su
escollos de los que uno podría imaginar, como lo ilustra el temporización. Aunque esta solución no es perfecta, dado el
problema de los 2 ejércitos. hecho de que teóricamente es imposible una solución perfecta
Imaginemos que un ejército blanco está acampado en un tendremos que conformarnos con ella. En la práctica, pocas
valle. En los dos cerros que rodean al valle hay ejércitos azules. veces ocurren problemas.
El ejército blanco es más grande que cualquiera de los dos Los pasos requeridos para establecer y liberar conexiones
ejércitos azules por separado, pero juntos éstos son más grandes pueden representarse en una máquina de estados finitos con los
que el ejército blanco. Si cualquiera de los dos ejércitos azules 11 estados listados en la figura 14.
ataca por su cuenta, será derrotado, pero si los dos atacan En cada estado son legales ciertos eventos. A1 ocurrir un
simultáneamente, obtendrán la victoria. evento legal, debe emprenderse alguna acción. Si ocurren otros
eventos, se informa un error.
-17-
un segmento (SYN, FIN, ACK o RST) o, en un caso, una
terminación de temporización del doble del tiempo de vida
máximo del paquete. La acción es el envío de un segmento de
control (SYN, FIN o RST), o nada, indicado por -. Los
comentarios aparecen entre paréntesis.
El diagrama puede entenderse mejor siguiendo primero la
trayectoria de un cliente (la línea continua gruesa) y luego la de
un servidor (línea punteada gruesa). Al emitir una solicitud
CONNECT una aplicación de la máquina cliente, la entidad
TCP local crea un registro de conexión, lo marca para indicar
que está en el estado SYN SENT, y envía un segmento SYN.
Nótese que muchas conexiones pueden estar abiertas (o en
proceso de apertura) al mismo tiempo como parte de varias
aplicaciones, por lo que el estado es por conexión y se asienta en
el registro de conexiones. A1 llegar el SYN+ACK, el TCP envía
el ACK final del protocolo de acuerdo de tres vías (three-way
handshake) y se conmuta al estado ESTABLISHED. Ahora
pueden enviarse y recibirse datos.
Figura 14. Estados usados en la máquina de estados finitos de Al terminar una aplicación, se ejecuta CLOSE, que causa
administración de conexiones TCP que la entidad TCP local envíe un segmento FIN y espere el
ACK correspondiente (recuadro punteado rotulado "cierre
activo"). A1 llegar el ACK, se hace una transición al estado FIN
Cada conexión comienza en el estado CLOSED (cerrado) y deja WAIT 2, y ya está cerrado un sentido de la conexión. Cuando
ese estado cuando hace una apertura pasiva (LISTEN), o una también cierra el otro lado, llega un FIN, para el cual se envía
apertura activa (CONNECT). Si el otro lado realiza la acción un acuse de recibo. Ahora ambos lados están cerrados, pero el
opuesta, se establece una conexión y el estado se vuelve TCP espera un tiempo igual al tiempo de vida máximo del
ESTABLISHED (establecido). La liberación de la conexión paquete para garantizar que todos los paquetes de la conexión
puede iniciarse desde cualquiera de los dos lados. Al hayan muerto, como protección en caso de la pérdida de un
completarse, el estado regresa a CLOSED. acuse de recibo. Al expirar el temporizador, TCP borra el
La máquina de estados finitos misma se muestra en la figura 15. registro de la conexión. Examinemos ahora la administración
El caso común de un cliente que se conecta activamente a un de la conexión desde el punto de vista del servidor. El servidor
servidor pasivo se indica con líneas gruesas (continuas para el hace un LISTEN y se detiene a esperar la aparición de alguien.
cliente, punteadas para el servidor). Las líneas delgadas son A1 llegar un SYN, se envía un acuse de recibo y el servidor
secuencias de eventos poco comunes. Cada línea de la figura se pasa al estado SYN RCVD. Cuando llega el acuse de recibo del
marca mediante un par evento/acción. SYN del servidor, el acuerdo de tres vías (three-way handshake)
El evento puede ser una llamada de sistema iniciada por el se ha completado y el servidor regresa al estado
usuario (CONNECT, LISTEN, SEND o CLOSE), la llegada de ESTABLISHED. Ahora puede ocurrir la transferencia de datos.
-18-

Figura 15. Máquina de estados finitos de administración de conexiones TCP. La línea continua gruesa es la trayectoria normal de un
cliente. La línea punteada gruesa es 1a trayectoria normal de un servidor. Las líneas delgadas son eventos poco comunes.

Cuando el cliente ha tenido suficiente, hace un CLOSE, que del buffer), anunciará una ventana de 2048 comenzando con el
causa la llegada de un FIN al servidor (recuadro punteado siguiente byte esperado.
rotulado "cierre pasivo"). Entonces se envía una señal al Ahora el transmisor envía otros 2048 bytes, para los cuales
servidor. el receptor envía el acuse de recibo, pero la ventana anunciada
Cuando éste también hace un CLOSE, se envía un FIN al es de 0. El transmisor debe detenerse hasta que el proceso de
cliente. Al llegar el acuse de recibo del cliente, el servidor libera aplicación del host receptor retire algunos datos del huffer, en
la conexión y elimina el registro de conexión. cuyo momento TCP puede anunciar una ventana más grande.
Cuando la ventana es de 0, el transmisor normalmente no
Política de transmisión del TCP puede enviar segmentos, salvo dos excepciones. Primero,
La gestión de ventanas en el TCP no está atada directamente a pueden enviarse datos urgentes (por ejemplo, para permitir que
los acuses de recibo como en la mayoría de los protocolos de el usuario mate el proceso en ejecución en la máquina remota).
enlace de datos. Por ejemplo, supóngase que el receptor tiene un Segundo, el transmisor puede enviar un segmento de 1 byte para
buffer de 4096 bytes, como se muestra en la figura 16. hacer que el receptor reanuncie el siguiente byte esperado y el
Si el transmisor envía un segmento de 2048 bytes que se tamaño de la ventana. El estándar TCP proporciona explícita-
recibe correctamente, el receptor enviará el acuse de recibo del mente esta opción para evitar un interbloqueo si llega a perderse
segmento. Sin embargo, dado que ahora sólo tiene 2048 de un anuncio de ventana.
espacio de buffer (hasta que la aplicación retire algunos datos
-19-

Figura 16. Manejo de ventanas en TCP

No se requiere que los transmisores envíen datos tan pronto paquetes de 41 bytes que contienen 1 byte de datos. Una manera
como llegan de la aplicación. Tampoco se requiere que los de reducir este uso es empleando el algoritmo de Nagle. Lo que
receptores envíen acuses de recibo tan pronto como sea posible. sugirió Nagle es sencillo: al llegar datos al transmisor un byte a
Por ejemplo, en la figura anterior, cuando llegaron los primeros la vez, simplemente se envía el primer byte y se pone en buffer
2 KB de datos, TCP, sabiendo que tenía disponible una ventana los demás hasta el acuse de recibo del byte pendiente. Luego se
de 4 KB, habría actuado perfectamente bien si simplemente transmiten todos los caracteres en buffer en un segmento TCP y
pone en buffer los datos hasta la llegada de otros 2 KB, para se comienzan a poner los datos en buffer hasta haber sido
poder transmitir un segmento con una carga útil de 4 KB. Esta reconocidos todos. Si el usuario escribe con rapidez y la red es
libertad puede explotarse para mejorar el desempeño. lenta, puede entrar una cantidad importante de caracteres en
Considérese una conexión Telnet a un editor interactivo que cada segmento, reduciendo en gran medida el ancho de banda
reacciona con cada pulso de tecla. En el peor caso, al llegar un usado. Además, el algoritmo permite el envío de un nuevo
carácter a la entidad TCP transmisora, TCP crea un segmento paquete si han entrado suficientes datos para llenar la mitad de
TCP de 21 bytes que entrega al IP para su envío como la ventana o la totalidad de un segmento.
datagrama IP de 41 bytes. Del lado receptor, TCP envía de El algoritmo de Nagle se usa ampliamente en las
inmediato un acuse de recibo de 40 bytes (20 bytes de cabecera implementaciones de TCP pero hay veces en que es mejor
TCP y 20 bytes de cabecera IP). Después, cuando el editor ha inhabilitarlo. En particular, al operar una aplicación X-Windows
leído el byte, TCP envía una actualización de ventana, a través de Internet, los movimientos del ratón tienen que
recorriendo la ventana 1 byte hacia la derecha. Este paquete enviarse a la computadora remota. Su acumulación para
también es de 40 bytes. Por último, cuando el editor ha enviarlos en ráfagas hace que el movimiento del cursor sea
procesado el carácter, lo retransmite como paquete de 41 bytes. errático, lo que no agrada mucho a los usuarios.
En conjunto, se usan 162 bytes de ancho de banda y se envían
cuatro segmentos por cada carácter pulsado. Cuando es escaso UDP
el ancho de banda, no es deseable este método de operación. El grupo de protocolos TCP/IP también maneja un protocolo de
Un enfoque que usan muchas implementaciones del TCP transporte sin conexiones, el UDP (User Data Protocol,
para mejorar esta situación es el retardo de los acuses de recibo protocolo de datos de usuario). UDP ofrece. a las aplicaciones
y de las actualizaciones de ventana durante 500 mseg con la un mecanismo para enviar datagramas IP en bruto encapsulados
esperanza de que lleguen algunos datos con los cuales viajar sin tener que establecer una conexión. Muchas aplicaciones
gratuitamente. Suponiendo que el editor hace eco en un lapso de cliente-servidor que tienen una solicitud y una respuesta usan
500 mseg, sólo se necesita enviar ahora un paquete de 41 bytes UDP en lugar de tomarse la molestia de establecer y luego
de regreso al usuario remoto, recortando a la mitad la cuenta de liberar una conexión. UDP se describe en el RFC 768. Un
paquetes y el uso de ancho de banda. segmento UDP consiste en una cabecera de 8 bytes seguida de
Aunque esta regla reduce la carga impuesta a la red por el los datos. La cabecera se muestra en la figura 17.
receptor, el transmisor aún opera de manera ineficiente al enviar
-20-

Figura 17. La cabecera UDP

El sistema de nombres de dominio (DNS) nombres de los hosts a menos que los nombres se administraran
Los dos puertos sirven para lo mismo que en el TCP: para centralmente, algo impensable en una red internacional enorme.
identificar los puntos terminales de las máquinas de origen y Para resolver estos problemas, se inventó el DNS (Domain
destino. El campo de longitud UDP incluye la cabecera de 8 Name System, sistema de nombres de dominio).
bytes y los datos. La suma de comprobación UDP incluye la La esencia del DNS es la invención de un esquema de
misma pseudocabecera que para TCP, la cabecera UDP y los nombres jerárquico basado en dominio y una base de datos
datos UDP, rellenados a una cantidad par de bytes de ser distribuida para implementar este esquema de nombres. El DNS
necesario. Esta suma es opcional y se almacena como 0 si no se se usa principalmente para relacionar las direcciones de host y
calcula (un cálculo real de 0 se almacena como una sucesión de destinos de correo electrónico con las direcciones IP, pero
unos, que es lo mismo en complemento a 1 ). Inutilizarla resulta también puede usarse con otros fines. El DNS se define en los
absurdo, a menos que la calidad de los datos no importe (por RFC 1034 y 1035.
ejemplo, voz digitalizada). Muy brevemente, el modo de usar el DNS es el siguiente.
Los programas pocas veces hacen referencia a los hosts, Para relacionar un nombre con una dirección IP, un programa de
buzones de correo y otros recursos por sus direcciones binarias aplicación llama a un procedimiento de biblioteca llamado
de red. En lugar de números binarios, los programas usan resolvedor, pasándole el nombre como parámetro. El resolvedor
cadenas ASCII, como tana@[Link]. Sin embargo, la red envía un paquete UDP a un servidor DNS local, que entonces
misma sólo entiende direcciones binarias, por lo que se requiere busca el nombre y devuelve la dirección IP al resolvedor, que
algún mecanismo para convertir las cadenas ASCII en entonces lo devuelve al solicitante. Con la dirección IP, el
direcciones de red. En las siguientes secciones estudiaremos la programa puede entonces establecer una conexión TCP con el
manera en que se logra esta correspondencia en Internet. destino, o enviarle paquetes UDP.
Hace mucho, en los tiempos del ARPANET, simplemente La administración de un grupo grande y continuamente
había un archivo, [Link], en el que se listaban todos los hosts cambiante de nombres es un problema nada sencillo.
y sus direcciones IP. Cada noche, todos los hosts obtenían este Conceptualmente, Internet se divide en varios cientos de
archivo de la instalación en la que se mantenía. En una red de dominios de nivel superior, cada uno de los cuales abarca
unas cuantas máquinas grandes de tiempo compartido, este muchos hosts. Cada dominio se divide en subdominios, y éstos
enfoque funcionaba razonablemente bien. se dividen nuevamente, etc. Todos estos dominios pueden
Sin embargo, cuando miles de estaciones de trabajo se representarse mediante un árbol, como se muestra en la figura
conectaron a la red, todos se dieron cuenta de que este enfoque 18. Las hojas del árbol representan los dominios que no tienen
no podría continuar funcionando eternamente. Por una parte, el subdominios (pero que, por supuesto, contienen máquinas). Un
archivo se volvería demasiado grande. Un problema aún más dominio de hoja puede contener un solo host, o puede
importante era que ocurrirían conflictos constantes con los representar a una compañía y contener miles de hosts.

Figura 18. Estructura del DNS


-21-
Los dominios de nivel superior vienen en dos sabores: ingeniería electrónica se ubican en el mismo edificio y compar-
genéricos y de país. Los dominios genéricos son com ten la misma LAN, de todas maneras pueden tener dominios
(comercial), edu (instituciones educativas), gov (el gobierno diferentes. De la misma manera, si el departamento de
federal de Estados Unidos), int (ciertas organizaciones informática está dividido entre el edificio Babbage y el edificio
internacionales), mil (las fuerzas armadas), net (proveedores de Turine. todos los hosts de ambos edificios pertenecerán,
red) y org (organizaciones no lucrativas). Los dominios de país normalmente, al mismo dominio.
incluyen una entrada para cada país, como se define en el ISO
3166. Registros de recursos
Cada dominio se nombra por la trayectoria hacia arriba Cada dominio, sea un host individual o un dominio de nivel
desde él a la raíz (sin nombre). Los componentes se separan por superior, puede tener un grupo de registros de recursos
puntos. Por tanto, el departamento de ingeniería de Sun asociados a él. En un host individual, el registro de recursos más
Microsystems podría ser [Link]., a diferencia de un común es simplemente su dirección IP, pero también existen
nombre tipo Unix como /com/sun/eng. Nótese que este muchos otros tipos de registros de recursos. Cuando un
nombramiento jerárquico significa que [Link]. no entra en resolvedor da un nombre de dominio al DNS, lo que recibe son
conflicto con un uso potencial de eng en [Link]., que los registros de recursos asociados a ese nombre. Por tanto, la
podría usarse en el departamento de inglés de Yale. función real del DNS es relacionar los dominios de nombres con
Los nombres de dominio pueden ser absolutos o relativos. los registros de recursos.
Un nombre de dominio absoluto termina con un punto (por Un registro de recursos tiene cinco tuplas. Aunque éstas se
ejemplo, [Link].), y uno relativo no. Los nombres codifican en binario por cuestión de eficiencia, en la mayoría de
relativos tienen que interpretarse en algún contexto para las presentaciones los registros de recursos se dan como texto
determinar de manera única su significado verdadero. En ambos ASCII, una línea por registro de recurso. El formato que
casos, un dominio nombrado se refiere a un nodo específco del usaremos es el siguiente:
árbol y a todos los nodos por debajo de él.
Los nombres de dominio no hacen distinción entre las Nombre_dominio Tiempo_de_vida Tipo Clase Valor
mayúsculas y las minúsculas, por lo que edu y EDU significan
la misma cosa. Los nombres de componentes pueden ser de El nombre_dominio indica el dominio al que pertenece este
hasta 63 caracteres de longitud, y los nombres de trayectoria registro. Normalmente existen muchos registros por dominio y
completa no deben exceder los 255 caracteres. En principio, cada copia de la base de datos contiene información de muchos
los dominios pueden introducirse en el árbol de tres maneras dominios. Por tanto, este campo es la llave primaria de
diferentes. Por ejemplo, cs. [Link] podria estar listado también búsqueda usada para atender las consultas. El orden de los
bajo el dominio de país us como cnmn [Link]. registros en la base de datos no es significativo. Cuando se hace
En la práctica, casi todas las organizaciones de Estados una consulta relativa a un dominio, se devuelven todos los
Unidos están bajo un dominio genérico, y casi todas las de fuera registros coincidentes de la clase solicitada.
de Estados Unidos están bajo el dominio de su país. No hay El campo de tiempo_de_vida es una indicación de la estabilidad
ninguna regla contra el registro bajo dos dominios de nivel del registro. La información altamente estable recibe un valor
superior, pero hacerlo podría causar confusión, por lo que pocas grande, como 86400 (la cantidad de segundos en un día). La
organizaciones lo hacen. información altamente volátil recibe un valor pequeño, como 60
Cada dominio controla el modo de asignación de los (1 minuto). Regresaremos a este punto después de haber
dominios que están debajo de él. Por ejemplo, Japón tiene los estudiado el proceso de caché.
dominios [Link] y [Link] que son espejos de edu y com. Los Países El campo Tipo indica el tipo de registro de que se trata. Los
Bajos no hacen esta distinción y ponen a todas las tipos más importantes se listan en la figura 19.
organizaciones directamente bajo nl. Por tanto, los siguientes Un registro SOA proporciona el nombre de la fuente
tres son departamentos universitarios de informática: primaria de información sobre la zona del servidor de nombres
(que se describe más adelante), la dirección de correo
1. [Link] (Universidad de Yale, en Estados Unidos) electrónico de su administrador, un número de serie único y
2. [Link] (Vrije Universiteit, en los Países Bajos) varias banderas y temporizadores.
3. [Link] (Universidad Keio, en Japón) El tipo de registro más importante es el registro A
(dirección) que contiene una dirección IP de 32 bits de algún
Para crear un dominio nuevo, se requiere el permiso del dominio host. Cada host de Internet debe tener cuando menos una
en el que se incluirá. Por ejemplo, si se inicia un grupo VLSI en dirección IP para que otras máquinas puedan comunicarse con
Yale y quiere que se le conozca como [Link], requiere él. Algunos hosts tienen dos o más conexiones de red, en cuyo
permiso de quien administra [Link]. De la misma manera, caso tendrán un registro de recurso tipo A por cada conexión de
si se crea una universidad nueva, digamos la Universidad del red (y, por tanto, por cada dirección IP).
Norte de Dakota del Sur, debe solicitar al administrador del El siguiente tipo de registro más importante es el registro
dominio edu que le asigne [Link]. De esta manera se evitan MX, que especifica el nombre del dominio que está preparado
los conflictos de nombres y cada dominio puede llevar el para aceptar correo electrónico del dominio especificado. Un
registro de todos sus subdominios, como [Link], sin uso común de este registro es permitir que una máquina que no
obtener el permiso de nadie más arriba en el árbol. está en Internet reciba correo electrónico de las instalaciones
Los nombres reflejan los límites organizacionales, no las Internet. La entrega se logra haciendo que la instalación no
redes físicas. Por ejemplo, si los departamentos de informática e Internet establezca un arreglo con alguna instalación Internet
-22-
para que acepte correo electrónico dirigido a ella y lo reenvíe usando cualquier protocolo acordado por las dos.

Figura 19. Tipos principales de registro de recursos DNS

Por ejemplo, supóngase que Cathy se graduó en informática práctica, PTR casi siempre se usa para asociar un nombre a una
en la UCLA. Tras recibir su título en informática, ella inicia una dirección IP a fin de permitir búsquedas de la dirección IP y
compañía, la Electrobrain Corporation, para comercializar sus devolver el nombre de la máquina correspondiente.
ideas. No puede aún darse el lujo de una conexión con Internet, Los registros HINFO permiten que la gente conozca el tipo
por lo que llega a un arreglo con UCLA para recibir su correo de máquina y y sistema operativo al que corresponde un
electrónico ahí. Varias veces al día puede llamar v consultar su dominio.
correo. Por último, los registros TXT permiten a los dominios
Acto seguido, Cathy registra su compañía con el dominio identificarse de modos arbitrarios. Ambos tipos de registro son
con y se le asigna el dominio [Link]. Luego ella para el provecho de los usuarios. Ninguno es obligatorio, por lo
podría pedir al administrador del dominio com que agregue un que los programas no pueden contar con que los recibirán (y
registro MX a la base de datos com, a saber: probablemente no puedan manejarlos si los obtienen).
Regresando a la estructura general de los registros de
[Link] 86400 IN MX 1 [Link] recurso, el cuarto campo de cada registro de recurso es la clase.
Para la información de Internet, es siempre IN. Para la informa-
De esta manera, el correo se reenviará a UCLA donde Cathy ción que no pertenece a Internet, pueden utilizarse otros
puede recogerlo estableciendo una conexión. Como alternativa, códigos.
la UCLA podría llamarla y transferir el correo electrónico Por último, llegamos al campo de valor. Este campo puede
mediante cualquier protocolo acordado mutuamente. ser un número, un nombre de dominio o una cadena ASCII. La
Los registros NS especifican servidores de nombres. Por semántica depende del tipo de registro. En la figura 19 se
ejemplo, cada base de datos DNS normalmente tiene un registro presenta una descripción corta de los campos de valor para cada
NS por cada dominio de nivel superior, de modo que el correo uno de los tipos principales de registro.
electrónico pueda enviarse a partes alejadas del árbol de Como ejemplo del tipo de información que podría
nombres. Regresaremos a este punto más adelante. encontrarse en la base de datos de un dominio, véase la figura
Los registros CNAME permiten la creación de alias. Por 20. En esta figura se ilustra una parte de una base de datos
ejemplo, una persona familiarizada con los nombres de Internet (semihipotética) correspondiente al dominio [Link]. La base de
en general que quiere enviar un mensaje a alguien cuya clave de datos contiene siete tipos de registros de recurso.
acceso es paul y está en el departamento de informática del La primera línea no de comentario de la figura da un poco de
M.I.T. podría adivinar que paul@[Link] funcionará. De información básica sobre el dominio, de lo que ya no nos
hecho, esta dirección no funciona, puesto que el dominio del ocuparemos. Las dos siguientes líneas dan información textual
departamento de informática del M.I.T. es [Link]. Sin sobre la localización del dominio. Luego vienen dos entradas
embargo, como servicio para la gente que no sabe esto, el M.I.T. que dan el primer y segundo lugar a donde se intentará entregar
podría crear una entrada CNAME para orientar a la gente y a los correo electrónico dirigido a person@[Link]. La zephyr (una
programas en la dirección correcta. La entrada podría ser como máquina específica) debe intentarse primero. Si falla, debe
ésta: intentarse la top después.

[Link] 86400 IN CNAME [Link]

A1 igual que CNAME, PTR apunta a otro nombre. Sin


embargo, a diferencia de CNAME, que en realidad es sólo una
definición de macro, PTR es un tipo de datos DNS normal, cuya
interpretación depende del contexto en que se encontró. En la
-23-
incapaz de recibir correo por sí mismo, seguida de una entrada
para la impresora láser.
Lo que no se muestra (y no está en este archivo) son las
direcciones IP a usar para buscar los dominios de nivel superior.
Éstas se requieren para buscar hosts distantes pero, dado que no
son parte del dominio [Link], no están en este archivo. Tales
direcciones son suministradas por los servidores raíz, cuyas
direcciones IP están presentes en un archivo de configuración
del sistema y se cargan en el caché del DNS al iniciar el servidor
DNS. Tienen temporizaciones muy grandes por lo que, una vez
cargadas, nunca se purgan del caché.

Servidores de nombres
Cuando menos en teoría, un solo servivor de nombres podría
contener la base de datos DNS completa y responder a todas las
consultas sobre ella. En la práctica, este servidor estaría tan
sobrecargado que sería inservible. Es más, si llegara a caerse,
Internet completa se vendría abajo.
Para evitar los problemas asociados a tener una sola fuente
de información, el espacio de nombres DNS se divide en zonas
no traslapantes. Una manera posible de dividir el espacio de
Figura 20. Parte de una posible base de datos DNS para [Link] nombres se muestra en la figura 21. Cada zona contiene una
parte del árbol y también contiene servidores de nombres que
tienen la información de autorización correspondiente a esa
Tras la línea en blanco, que se agregó para hacer más clara la zona. Normalmente, una zona tendrá un servidor de nombres
lectura, siguen líneas que indican que la flits es una estación de primario, que obtiene su información de un archivo en su disco,
trabajo Sun que ejecuta Unix, y dan sus dos direcciones IP. y uno o más nombres de servidores secundarios, que obtienen su
Después se indican tres posibilidades para manejar el correo información del servidor de nombres primario. Para mejorar la
electrónico enviado a [Link]. La primera opción natural- confiabilidad, algunos servidores de cierta zona pueden situarse
mente es la flits misma, pero si está inactiva, la zephyr y la top fuera de la zona.
son la segunda y tercera opciones. Luego viene un alias, El lugar donde se colocan los límites de las zonas dentro de
[Link], para que esta dirección pueda usarse sin designar una zona es responsabilidad del administrador de esa zona. Esta
una máquina específica. La creación de este alias permite a decisión se toma en gran medida basada en la cantidad de
[Link] cambiar su servidor del World Wide Web sin invalidar servidores de nombres deseados y su ubicación. Por ejemplo, en
la dirección que la gente usa para llegar a él. Un argumento la figura anterior, Yale tiene un servidor para [Link] que
parecido es válido para [Link]. maneja [Link], pero no [Link], que es una zona
Las siguientes cuatro líneas contienen una entrada típica de aparte con sus propios servidores de nombres. Tal decisión
una estación de trabajo, en este caso, [Link]. La podría tomarse cuando un departamento, como el de inglés, no
información proporcionada contiene la dirección IP, los destinos desea operar su propio servidor de nombres, pero un
de correo primarios y secundarios, e información sobre la departamento como el de informática sí. En consecuencia,
máquina. Luego viene una entrada para un sistema no Unix [Link] es una zona aparte, pero [Link] no.

Figura 21. Parte del espacio de nombres DNS, donde se muestra la división en zonas.
-24-

Cuando un resolvedor tiene una consulta referente a un Por otro lado, si el dominio es remoto y no hay información
nombre de dominio, la pasa a uno de los servidores de nombres disponible localmente sobre el dominio solicitado, el servidor de
locales. Si el dominio que se busca cae bajo la jurisdicción del nombres envía un mensaje de consulta para el dominio
servidor de nombres, como [Link], que cae bajo solicitado al servidor de nombres de nivel superior. Para hacer
[Link], devuelve los registros de recursos autorizados. Un más claro este proceso, considere el ejemplo de la figura 22.
registro autorizado es uno que viene de la autoridad que Aquí, un resolvedor de [Link] quiere saber la dirección IP
administra el registro, y por tanto siempre es correcto. Los del host [Link]. En el paso 1, envía una consulta al
registros autorizados contrastan con los registros en caché, que servidor de nombres local, [Link]. Esta consulta contiene el
podrían no estar actualizados. nombre de dominio buscado, el tipo (A) y la clase (IN).

Figura 22. Manera en que un resolvedor busca un nombre remoto en ocho pasos

Supongamos que el servidor de nombres local nunca ha También vale la pena indicar que, cuando un cliente DNS no
tenido una consulta para este dominio antes, y no sabe nada recibe una respuesta ames de terminar su temporizador,
sobre él; puede preguntar a algunos otros servidores de nombres normalmente intentará otro servidor la siguiente vez. La
cercanos, pero si ninguno de ellos sabe nada, enviará un paquete suposición aquí es que el servidor probablemente está inactivo y
UDP al servidor de edu indicado en su base de datos, edu- no que la solicitud o la respuesta se perdieron.
[Link]. Es improbable que este servidor sepa la dirección de
[Link], y probablemente tampoco sabe la de
[Link], pero debe conocer a todos sus hijos, por lo que
reenvía la solicitud al servidor de nombres de [Link] (paso 3).
A su vez, éste reenvía la solicitud a [Link] (paso 4), que
debe tener los registros de recursos autorizados. Puesto que cada
solicitud es de un cliente a un servidor. el registro de recursos
solicitado regresa a través de los pasos 5 a 8.
Una vez que estos registros regresan al servidor de nombres
cs. [Link], son ingresads en cache ahí, para el caso de que se
necesiten después. Sin embargo, esta información no es
autorizada, puesto que los cambios hechos en [Link] no se
propagarán a todos los cachés del mundo que puedan saber
sobre ella. Por esta razón, las entradas de caché no deben vivir
demasiado tiempo. Ésta es la razón de que el campo
tiempo_de_vida se incluya en cada registro de recurso; indica a
los servidores de nombres remotos el tiempo durante el cual
deben mantener en caché los registros. Si cierta máquina ha
tenido la misma dirección IP durante años, puede ser seguro
poner en caché esa información durante un día. En el caso de
información volátil, podría ser más seguro purgar los registros
tras unos cuantos segundos o un minuto.
Vale la pena mencionar que el método de consultas aquí
descrito se conoce como consulta recurrente, puesto que cada
servidor que no tiene toda la información solicitada sale a
encontrarla en algún lado y luego la informa. Es posible un
procedimiento alternativo. En él, cuando una consulta no puede
satisfacerse localmente, falla la consulta, pero se devuelve el
nombre del siguiente servidor a intentar a lo largo de la línea.
Este procedimiento confiere al cliente mayor control sobre el
proceso de búsqueda. Algunos servidores no implementan
consultas recurrentes y siempre devuelven el nombre del
siguiente servidor a intentar.

También podría gustarte