Transmisión de información a través de Internet

Anuncio
La transmisión de información en Internet.
Introducción.
La gran rapidez con la que Internet se ha expandido y popularizado en los últimos años ha supuesto una
revolución muy importante en el mundo de las comunicaciones, llegando a causar cambios en muchos
aspectos de la sociedad. Lo que se conoce hoy como Internet es en realidad un conjunto de redes
independientes (de área local y área extensa) que se encuentran conectadas entre sí, permitiendo el
intercambio de datos y constituyendo por lo tanto una red mundial que resulta el medio idóneo para el
intercambio de información, distribución de datos de todo tipo e interacción personal con otras personas.
Internet tiene su origen en la red informática ARPAnet que comenzó a desarrollarse en los Estados Unidos
como un proyecto del DARPA (Defense Advanced Research Projects Agency) sobre la década de los 60,
aunque hasta el inicio de la década de los 70 no comenzaron a crearse las primeras aplicaciones. A finales de
1969 cuatro hosts fueron conectados en esta red inicial, la cual fue creciendo rápidamente durante los años
siguientes, pero fue a partir de 1972 cuando se comenzó a investigar la forma de que los paquetes de
información puedan moverse a través de varias redes de diferentes tipos y no necesariamente compatibles. De
esta manera se consiguen enlazar redes independientes consiguiendo que puedan comunicarse de forma
transparente los ordenadores de todas ellas. Este proyecto recibió el nombre de "Internetting", y para referirse
al sistema de redes funcionando conjuntamente y formando una red mayor se utilizó el nombre de "Internet".
La red continuó extendiéndose por todo el país con gran rapidez, conectando a universidades e instituciones
de investigación y educación, organizaciones gubernamentales o no gubernamentales, y redes privadas y
comerciales. De esta manera continuó su desarrollo durante los años 80 extendiéndose internacionalmente,
pero ha sido en los 90 cuando Internet se ha convertido en un nuevo y revolucionario medio de comunicación
a escala mundial. Los nuevos medios desarrollados para hacer el acceso a Internet mucho más sencillo y
agradable para cualquier usuario han influido notablemente en esta expansión, convirtiendo a Internet en la
gran red mundial.
Conceptos básicos.
Una red de ordenadores permite conectar a los ordenadores que la forman con la finalidad de compartir
información, como documentos o bases de datos, o recursos físicos, como impresoras o unidades de disco. Las
redes suelen clasificarse según su extensión en:
• LAN (Local Area Network): Son las redes de área local. La extensión de este tipo de redes suele estar
restringida a una sala o edificio, aunque también podría utilizarse para conectar dos o más edificios
próximos.
• WAN (Wide Area Network): Son redes que cubren un espacio muy amplio, conectando a ordenadores
de una cuidad o un país completo. Para ello se utilizan las líneas de teléfono y otros medios de
transmisión más sofisticados, como pueden ser las microondas. La velocidad de transmisión suele ser
inferior que en las redes locales.
Varias redes pueden conectarse entre sí formando una red lógica de área mayor. Para que la transmisión entre
todas ellas sea posible se emplean los routers, que son los sistemas que conectando físicamente varias redes se
encargan de dirigir la información por el camino adecuado. Cuando las redes que se conectan son de diferente
tipo y con protocolos distintos se hace necesario el uso de los gateways, los cuales además de encaminar la
información también son capaces de convertir los datos de un protocolo a otro. Generalmente los términos
1
router y gateway se emplean indistintamente para referirse de forma general a los sistemas encargados del
encaminamiento de datos en Internet.
Lo que se conoce como Internet es en realidad una red de redes, la interconexión de otras redes
independientes de manera que puedan compartir información entre ellas a lo largo de todo el planeta. Para ello
es necesario el uso de un protocolo de comunicaciones común. El protocolo que proporciona la
compatibilidad necesaria para la comunicación en Internet es el TCP/IP.
Los protocolos de comunicaciones definen las normas que posibilitan que se establezca una comunicación
entre varios equipos o dispositivos, ya que estos equipos pueden ser diferentes entre sí. Un interfaz, sin
embargo, es el encargado de la conexión física entre los equipos, definiendo las normas para las características
eléctricas y mecánicas de la conexión.
Exceptuando a los routers cualquier ordenador conectado a Internet y, por tanto, capaz de compartir
información con otro ordenador se conoce con el nombre de host (anfitrión). Un host debe identificarse de
alguna manera que lo distinga de los demás para poder recibir o enviar datos. Para ello todos los ordenadores
conectados a Internet disponen de una dirección única y exclusiva. Esta dirección, conocida como dirección
de Internet o dirección IP, es un número de 32 bit que generalmente se representa en cuatro grupos de 8 bit
cada uno separados por puntos y en base decimal (esto es así en la versión número 4 del protocolo IP, pero no
en la 6). Un ejemplo de dirección IP es el siguiente: 205.198.48.1.
El modelo OSI.
El modelo OSI (Open System Interconection) es utilizado por prácticamente la totalidad de las redes del
mundo. Este modelo fue creado por el ISO (Organización Internacional de Normalización), y consiste en siete
niveles o capas donde cada una de ellas define las funciones que deben proporcionar los protocolos con el
propósito de intercambiar información entre varios sistemas. Esta clasificación permite que cada protocolo se
desarrolle con una finalidad determinada, lo cual simplifica el proceso de desarrollo e implementación. Cada
nivel depende de los que están por debajo de él, y a su vez proporciona alguna funcionalidad a los niveles
superiores. Los siete niveles del modelo OSI son los siguientes:
Aplicación
Presentación
Sesión
Transporte
Red
Enlace
Físico
El nivel de aplicación es el destino final de los datos
donde se proporcionan los servicios al usuario.
Se convierten e interpretan los datos que se utilizarán
en el nivel de aplicación.
Encargado de ciertos aspectos de la comunicación
como el control de los tiempos.
Transporta la información de una manera fiable para
que llegue correctamente a su destino.
Nivel encargado de encaminar los datos hacia su
destino eligiendo la ruta más efectiva.
Enlace de datos. Controla el flujo de los mismos, la
sincronización y los errores que puedan producirse.
Se encarga de los aspectos físicos de la conexión,
tales como el medio de transmisión o el hardware.
Arquitectura cliente−servidor.
2
La arquitectura cliente−servidor es una forma específica de diseño de aplicaciones, aunque también se conoce
con este nombre a los ordenadores en los que se estas aplicaciones son ejecutadas. Por un lado, el cliente es el
ordenador que se encarga de efectuar una petición o solicitar un servicio. El cliente no posee control sobre los
recursos, sino que es el servidor el encargado de manejarlos. Por otro lado, el ordenador remoto que actúa
como servidor evalúa la petición del cliente y decide aceptarla o rechazarla consecuentemente. Una vez que el
servidor acepta el pedido la información requerida es suministrada al cliente que efectuó la petición, siendo
este último el responsable de proporcionar los datos al usuario con el formato adecuado. Finalmente debemos
precisar que cliente y servidor no tienen que estar necesariamente en ordenadores separados, sino que pueden
ser programas diferentes que se ejecuten en el mismo ordenador.
El protocolo TCP/IP.
TCP/IP es el protocolo común utilizado por todos los ordenadores conectados a Internet, de manera que éstos
puedan comunicarse entre sí. Hay que tener en cuenta que en Internet se encuentran conectados ordenadores
de clases muy diferentes y con hardware y software incompatibles en muchos casos, además de todos los
medios y formas posibles de conexión. Aquí se encuentra una de las grandes ventajas del TCP/IP, pues este
protocolo se encargará de que la comunicación entre todos sea posible. TCP/IP es compatible con cualquier
sistema operativo y con cualquier tipo de hardware.
TCP/IP no es un único protocolo, sino que es en realidad lo que se conoce con este nombre es un conjunto de
protocolos que cubren los distintos niveles del modelo OSI. Los dos protocolos más importantes son el TCP
(Transmission Control Protocol) y el IP (Internet Protocol), que son los que dan nombre al conjunto. En
Internet se diferencian cuatro niveles o capas en las que se agrupan los protocolos, y que se relacionan con los
niveles OSI de la siguiente manera:
• Aplicación: Se corresponde con los niveles OSI de aplicación, presentación y sesión. Aquí se
incluyen protocolos destinados a proporcionar servicios, tales como correo electrónico (SMTP),
transferencia de ficheros (FTP), conexión remota (TELNET) y otros más recientes como el protocolo
HTTP (Hypertext Transfer Protocol).
• Transporte: Coincide con el nivel de transporte del modelo OSI. Los protocolos de este nivel, tales
como TCP y UDP, se encargan de manejar los datos y proporcionar la fiabilidad necesaria en el
transporte de los mismos.
• Internet: Es el nivel de red del modelo OSI. Incluye al protocolo IP, que se encarga de enviar los
paquetes de información a sus destinos correspondientes. Es utilizado con esta finalidad por los
protocolos del nivel de transporte.
• Enlace: Los niveles OSI correspondientes son el de enlace y el nivel físico. Los protocolos que
pertenecen a este nivel son los encargados de la transmisión a través del medio físico al que se
encuentra conectado cada host, como puede ser una línea punto a punto o una red Ethernet.
El TCP/IP necesita funcionar sobre algún tipo de red o de medio físico que proporcione sus propios
protocolos para el nivel de enlace de Internet. Por este motivo hay que tener en cuenta que los protocolos
utilizados en este nivel pueden ser muy diversos y no forman parte del conjunto TCP/IP. Sin embargo, esto no
debe ser problemático puesto que una de las funciones y ventajas principales del TCP/IP es proporcionar una
abstracción del medio de forma que sea posible el intercambio de información entre medios diferentes y
tecnologías que inicialmente son incompatibles.
Para transmitir información a través de TCP/IP, ésta debe ser dividida en unidades de menor tamaño. Esto
proporciona grandes ventajas en el manejo de los datos que se transfieren y, por otro lado, esto es algo común
en cualquier protocolo de comunicaciones. En TCP/IP cada una de estas unidades de información recibe el
nombre de "datagrama" (datagram), y son conjuntos de datos que se envían como mensajes independientes.
3
TCP (Transmission Control Protocol).
El protocolo de control de transmisión (TCP) pertenece al nivel de transporte, siendo el encargado de dividir
el mensaje original en datagramas de menor tamaño, y por lo tanto, mucho más manejables. Los datagramas
serán dirigidos a través del protocolo IP de forma individual. El protocolo TCP se encarga además de añadir
cierta información necesaria a cada uno de los datagramas. Esta información se añade al inicio de los datos
que componen el datagrama en forma de cabecera.
La cabecera de un datagrama contiene al menos 160 bit que se encuentran repartidos en varios campos con
diferente significado. Cuando la información se divide en datagramas para ser enviados, el orden en que éstos
lleguen a su destino no tiene que ser el correcto. Cada uno de ellos puede llegar en cualquier momento y con
cualquier orden, e incluso puede que algunos no lleguen a su destino o lleguen con información errónea. Para
evitar todos estos problemas el TCP numera los datagramas antes de ser enviados, de manera que sea posible
volver a unirlos en el orden adecuado. Esto permite también solicitar de nuevo el envío de los datagramas
individuales que no hayan llegado o que contengan errores, sin que sea necesario volver a enviar el mensaje
completo. A continuación de la cabecera puede existir información opcional. En cualquier caso el tamaño de
la cabecera debe ser múltiplo de 32 bits, por lo que puede ser necesario añadir un campo de tamaño variable y
que contenga ceros al final para conseguir este objetivo cuando se incluyen algunas opciones. El campo de
tamaño contiene la longitud total de la cabecera TCP expresada en el número de palabras de 32 bits que
ocupa. Esto permite determinar el lugar donde comienzan los datos.
Dos campos incluidos en la cabecera y que son de especial importancia son los números de puerto de origen y
puerto de destino. Los puertos proporcionan una manera de distinguir entre las distintas transferencias, ya que
un mismo ordenador puede estar utilizando varios servicios o transferencias simultáneamente, e incluso puede
que por medio de usuarios distintos. El puerto de origen contendrá un número cualquiera que sirva para
realizar esta distinción. Además, el programa cliente que realiza la petición también se debe conocer el
número de puerto en el que se encuentra el servidor adecuado. Mientras que el programa del usuario utiliza
números prácticamente aleatorios, el servidor deber tener asignado un número estándar para que pueda ser
utilizado por el cliente. (Por ejemplo, en el caso de la transferencia de ficheros FTP el número oficial es el
21). Cuando es el servidor el que envía los datos, los números de puertos de origen y destino se intercambian.
En la transmisión de datos a través del protocolo TCP la fiabilidad es un factor muy importante. Para poder
detectar los errores y pérdida de información en los datagramas, es necesario que el cliente envíe de nuevo al
servidor unas señales de confirmación una vez que se ha recibido y comprobado la información
satisfactoriamente. Estas señales se incluyen en el campo apropiado de la cabecera del datagrama
(Acknowledgment Number), que tiene un tamaño de 32 bit. Si el servidor no obtiene la señal de confirmación
adecuada transcurrido un período de tiempo razonable, el datagrama completo se volverá a enviar. Por
razones de eficiencia los datagramas se envían continuamente sin esperar la confirmación, haciéndose
necesaria la numeración de los mismos para que puedan ser ensamblados en el orden correcto.
También puede ocurrir que la información del datagrama llegue con errores a su destino. Para poder detectar
cuando sucede esto se incluye en la cabecera un campo de 16 bit, el cual contiene un valor calculado a partir
de la información del datagrama completo (checksum). En el otro extremo el receptor vuelve a calcular este
valor, comprobando que es el mismo que el suministrado en la cabecera. Si el valor es distinto significaría que
el datagrama es incorrecto, ya que en la cabecera o en la parte de datos del mismo hay algún error.
La forma en que TCP numera los datagramas es contando los bytes de datos que contiene cada uno de ellos y
añadiendo esta información al campo correspondiente de la cabecera del datagrama siguiente. De esta manera
el primero empezará por cero, el segundo contendrá un número que será igual al tamaño en bytes de la parte
de datos del datagrama anterior, el tercero con la suma de los dos anteriores, y así sucesivamente. Por
ejemplo, para un tamaño fijo de 500 bytes de datos en cada datagrama, la numeración sería la siguiente: 0 para
4
el primero, 500 para el segundo, 1000 para el tercero, etc.
Existe otro factor más a tener en cuenta durante la transmisión de información, y es la potencia y velocidad
con que cada uno de los ordenadores puede procesar los datos que le son enviados. Si esto no se tuviera en
cuenta, el ordenador de más potencia podría enviar la información demasiado rápido al receptor, de manera
que éste no pueda procesarla. Este inconveniente se soluciona mediante un campo de 16 bit (Window) en la
cabecera TCP, en el cual se introduce un valor indicando la cantidad de información que el receptor está
preparado para procesar. Si el valor llega a cero será necesario que el emisor se detenga. A medida que la
información es procesada este valor aumenta indicando disponibilidad para continuar la recepción de datos.
Protocolos alternativos a TCP.
TCP es el protocolo más utilizado para el nivel de transporte en Internet, pero además de éste existen otros
protocolos que pueden ser más convenientes en determinadas ocasiones. Tal es el caso de UDP y ICMP.
UDP (User Datagram Protocol)
El protocolo de datagramas de usuario (UDP) puede ser la alternativa al TCP en algunos casos en los que no
sea necesario el gran nivel de complejidad proporcionado por el TCP. Puesto que UDP no admite numeración
de los datagramas, éste protocolo se utiliza principalmente cuando el orden en que se reciben los mismos no
es un factor fundamental, o también cuando se quiere enviar información de poco tamaño que cabe en un
único datagrama.
Cuando se utiliza UDP la garantía de que un paquete llegue a su destino es mucho menor que con TCP debido
a que no se utilizan las señales de confirmación. Por todas estas características la cabecera del UDP es
bastante menor en tamaño que la de TCP. Esta simplificación resulta en una mayor eficiencia en determinadas
ocasiones.
Un ejemplo típico de una situación en la que se utiliza el UDP es cuando se pretende conectar con un
ordenador de la red, utilizando para ello el nombre del sistema. Este nombre tendrá que ser convertido a la
dirección IP que le corresponde y, por tanto, tendrá que ser enviado a algún servidor que posea la base de
datos necesaria para efectuar la conversión. En este caso es mucho más conveniente el uso de UDP.
ICMP (Internet Control Message Protocol)
El protocolo de mensajes de control de Internet (ICMP) es de características similares al UDP, pero con un
formato aún más simple. Su utilidad no está en el transporte de datos "de usuario", sino en los mensajes de
error y de control necesarios para los sistemas de la red.
IP (Internet Protocol) versión 4.
El IP es un protocolo que pertenece al nivel de red, por lo tanto, es utilizado por los protocolos del nivel de
transporte como TCP para encaminar los datos hacia su destino. IP tiene únicamente la misión de encaminar
el datagrama, sin comprobar la integridad de la información que contiene. Para ello se utiliza una nueva
cabecera que se antepone al datagrama que se está tratando. Suponiendo que el protocolo TCP ha sido el
encargado de manejar el datagrama antes de pasarlo al IP, la estructura del mensaje una vez tratado quedaría
así:
Cabecera IP
(20 byte)
Cabecera TCP
(20 byte)
Datos
5
La cabecera IP tiene un tamaño de 160 bit y está formada por varios campos de distinto significado. Estos
campos son:
• Versión: Número de versión del protocolo IP utilizado. Tendrá que tener el valor 4. Tamaño: 4 bit.
• Longitud de la cabecera: (Internet Header Length, IHL) Especifica la longitud de la cabecera
expresada en el número de grupos de 32 bit que contiene. Tamaño: 4 bit.
• Tipo de servicio: El tipo o calidad de servicio se utiliza para indicar la prioridad o importancia de los
datos que se envían, lo que condicionará la forma en que éstos serán tratados durante la transmisión.
Tamaño: 8 bit.
• Longitud total: Es la longitud en bytes del datagrama completo, incluyendo la cabecera y los datos.
Como este campo utiliza 16 bit, el tamaño máximo del datagrama no podrá superar los 65.535 bytes,
aunque en la práctica este valor será mucho más pequeño. Tamaño: 16 bit.
• Identificación: Valor de identificación que se utiliza para facilitar el ensamblaje de los fragmentos
del datagrama. Tamaño: 16 bit.
• Flags: Indicadores utilizados en la fragmentación. Tamaño: 3 bit.
• Fragmentación: Contiene un valor (offset) para poder ensamblar los datagramas que se hayan
fragmentado. Está expresado en número de grupos de 8 bytes (64 bit), comenzando con el valor cero
para el primer fragmento. Tamaño: 16 bit.
• Límite de existencia: Contiene un número que disminuye cada vez que el paquete pasa por un
sistema. Si este número llega a cero, el paquete será descartado. Esto es necesario por razones de
seguridad para evitar un bucle infinito, ya que aunque es bastante improbable que esto suceda en una
red correctamente diseñada, no debe descuidarse esta posibilidad. Tamaño: 8 bit.
• Protocolo: El número utilizado en este campo sirve para indicar a qué protocolo pertenece el
datagrama que se encuentra a continuación de la cabecera IP, de manera que pueda ser tratado
correctamente cuando llegue a su destino. Tamaño: 8 bit.
• Comprobación: El campo de comprobación (checksum) es necesario para verificar que los datos
contenidos en la cabecera IP son correctos. Por razones de eficiencia este campo no puede utilizarse
para comprobar los datos incluidos a continuación, sino que estos datos de usuario se comprobarán
posteriormente a partir del campo de comprobación de la cabecera siguiente, y que corresponde al
nivel de transporte. Este campo debe calcularse de nuevo cuando cambia alguna opción de la
cabecera, como puede ser el límite de existencia. Tamaño: 16 bit.
• Dirección de origen: Contiene la dirección del host que envía el paquete. Tamaño: 32 bit.
• Dirección de destino: Esta dirección es la del host que recibirá la información. Los routers o
gateways intermedios deben conocerla para dirigir correctamente el paquete. Tamaño: 32 bit.
• La dirección de Internet.
El protocolo IP identifica a cada ordenador que se encuentre conectado a la red mediante su correspondiente
dirección. Esta dirección es un número de 32 bit que debe ser único para cada host, y normalmente suele
representarse como cuatro cifras de 8 bit separadas por puntos.
La dirección de Internet (IP Address) se utiliza para identificar tanto al ordenador en concreto como la red a la
que pertenece, de manera que sea posible distinguir a los ordenadores que se encuentran conectados a una
misma red. Con este propósito, y teniendo en cuenta que en Internet se encuentran conectadas redes de
tamaños muy diversos, se establecieron tres clases diferentes de direcciones, las cuales se representan
mediante tres rangos de valores:
• Clase A: Son las que en su primer byte tienen un valor comprendido entre 1 y 126, incluyendo ambos
valores. Estas direcciones utilizan únicamente este primer byte para identificar la red, quedando los
otros tres bytes disponibles para cada uno de los hosts que pertenezcan a esta misma red. Esto
significa que podrán existir más de dieciséis millones de ordenadores en cada una de las redes de esta
clase. Este tipo de direcciones es usado por redes muy extensas, pero hay que tener en cuenta que sólo
6
puede haber 126 redes de este tamaño. ARPAnet es una de ellas, existiendo además algunas grandes
redes comerciales, aunque son pocas las organizaciones que obtienen una dirección de "clase A". Lo
normal para las grandes organizaciones es que utilicen una o varias redes de "clase B".
• Clase B: Estas direcciones utilizan en su primer byte un valor comprendido entre 128 y 191,
incluyendo ambos. En este caso el identificador de la red se obtiene de los dos primeros bytes de la
dirección, teniendo que ser un valor entre 128.1 y 191.254 (no es posible utilizar los valores 0 y 255
por tener un significado especial). Los dos últimos bytes de la dirección constituyen el identificador
del host permitiendo, por consiguiente, un número máximo de 64516 ordenadores en la misma red.
Este tipo de direcciones tendría que ser suficiente para la gran mayoría de las organizaciones grandes.
En caso de que el número de ordenadores que se necesita conectar fuese mayor, sería posible obtener
más de una dirección de "clase B", evitando de esta forma el uso de una de "clase A".
• Clase C: En este caso el valor del primer byte tendrá que estar comprendido entre 192 y 223,
incluyendo ambos valores. Este tercer tipo de direcciones utiliza los tres primeros bytes para el
número de la red, con un rango desde 192.1.1 hasta 223.254.254. De esta manera queda libre un byte
para el host, lo que permite que se conecten un máximo de 254 ordenadores en cada red. Estas
direcciones permiten un menor número de host que las anteriores, aunque son las más numerosas
pudiendo existir un gran número redes de este tipo (más de dos millones).
Tabla de direcciones IP de Internet.
Clase
Primer byte
Identificación de red
Identificación de hosts
Número de redes
Número de hosts
A
1 .. 126
1 byte
3 byte
126
16.387.064
B
128 .. 191
2 byte
2 byte
7
16.256
64.516
C
192 .. 223
3 byte
1 byte
2.064.512
254
En la clasificación de direcciones anterior se puede notar que ciertos números no se usan. Algunos de ellos se
encuentran reservados para un posible uso futuro, como es el caso de las direcciones cuyo primer byte sea
superior a 223 (clases D y E, que aún no están definidas), mientras que el valor 127 en el primer byte se utiliza
en algunos sistemas para propósitos especiales. También es importante notar que los valores 0 y 255 en
cualquier byte de la dirección no pueden usarse normalmente por tener otros propósitos específicos.
El número 0 está reservado para las máquinas que no conocen su dirección, pudiendo utilizarse tanto en la
identificación de red para máquinas que aún no conocen el número de red a la que se encuentran conectadas,
en la identificación de host para máquinas que aún no conocen su número de host dentro de la red, o en ambos
casos.
El número 255 tiene también un significado especial, puesto que se reserva para el broadcast. El broadcast es
necesario cuando se pretende hacer que un mensaje sea visible para todos los sistemas conectados a la misma
red. Esto puede ser útil si se necesita enviar el mismo datagrama a un número determinado de sistemas,
resultando más eficiente que enviar la misma información solicitada de manera individual a cada uno. Otra
situación para el uso de broadcast es cuando se quiere convertir el nombre por dominio de un ordenador a su
correspondiente número IP y no se conoce la dirección del servidor de nombres de dominio más cercano.
Lo usual es que cuando se quiere hacer uso del broadcast se utilice una dirección compuesta por el
identificador normal de la red y por el número 255 (todo unos en binario) en cada byte que identifique al host.
Sin embargo, por conveniencia también se permite el uso del número 255.255.255.255 con la misma
finalidad, de forma que resulte más simple referirse a todos los sistemas de la red.
El broadcast es una característica que se encuentra implementada de formas diferentes dependiendo del medio
utilizado, y por lo tanto, no siempre se encuentra disponible. En ARPAnet y en las líneas punto a punto no es
posible enviar broadcast, pero sí que es posible hacerlo en las redes Ethernet, donde se supone que todos los
ordenadores prestarán atención a este tipo de mensajes.
En el caso de algunas organizaciones extensas puede surgir la necesidad de dividir la red en otras redes más
pequeñas (subnets). Como ejemplo podemos suponer una red de clase B que, naturalmente, tiene asignado
como identificador de red un número de dos bytes. En este caso sería posible utilizar el tercer byte para
indicar en qué red Ethernet se encuentra un host en concreto. Esta división no tendrá ningún significado para
cualquier otro ordenador que esté conectado a una red perteneciente a otra organización, puesto que el tercer
byte no será comprobado ni tratado de forma especial. Sin embargo, en el interior de esta red existirá una
división y será necesario disponer de un software de red especialmente diseñado para ello. De esta forma
queda oculta la organización interior de la red, siendo mucho más cómodo el acceso que si se tratara de varias
8
direcciones de clase C independientes.
IP (Internet Protocol) versión 6.
La nueva versión del protocolo IP recibe el nombre de IPv6, aunque es también conocido comúnmente como
IPng (Internet Protocol Next Generation). El número de versión de este protocolo es el 6 frente a la versión 4
utilizada hasta entonces, puesto que la versión 5 no pasó de la fase experimental. Los cambios que se
introducen en esta nueva versión son muchos y de gran importancia, aunque la transición desde la versión 4
no debería ser problemática gracias a las características de compatibilidad que se han incluido en el protocolo.
IPng se ha diseñado para solucionar todos los problemas que surgen con la versión anterior, y además ofrecer
soporte a las nuevas redes de alto rendimiento (como ATM, Gigabit Ethernet, etc.)
Una de las características más llamativas es el nuevo sistema de direcciones, en el cual se pasa de los 32 a los
128 bit, eliminando todas las restricciones del sistema actual. Otro de los aspectos mejorados es la seguridad,
que en la versión anterior constituía uno de los mayores problemas. Además, el nuevo formato de la cabecera
se ha organizado de una manera más efectiva, permitiendo que las opciones se sitúen en extensiones separadas
de la cabecera principal.
Formato de la cabecera.
El tamaño de la cabecera que el protocolo IPv6 añade a los datos es de 320 bit, el doble que en la versión 4.
Sin embargo, esta nueva cabecera se ha simplificado con respecto a la anterior. Algunos campos se han
retirado de la misma, mientras que otros se han convertido en opcionales por medio de las extensiones. De
esta manera los routers no tienen que procesar parte de la información de la cabecera, lo que permite
aumentar de rendimiento en la transmisión. El formato completo de la cabecera sin las extensiones es el
siguiente:
• Versión: Número de versión del protocolo IP, que en este caso contendrá el valor 6. Tamaño: 4 bit.
• Prioridad: Contiene el valor de la prioridad o importancia del paquete que se está enviando con
respecto a otros paquetes provenientes de la misma fuente. Tamaño: 4 bit.
• Etiqueta de flujo: Campo que se utiliza para indicar que el paquete requiere un tratamiento especial
por parte de los routers que lo soporten. Tamaño: 24 bit.
• Longitud: Es la longitud en bytes de los datos que se encuentran a continuación de la cabecera.
Tamaño: 16 bit.
• Siguiente cabecera: Se utiliza para indicar el protocolo al que corresponde la cabecera que se sitúa a
continuación de la actual. El valor de este campo es el mismo que el de protocolo en la versión 4 de
IP. Tamaño: 8 bit.
• Límite de existencia: Tiene el mismo propósito que el campo de la versión 4, y es un valor que
disminuye en una unidad cada vez que el paquete pasa por un nodo. Tamaño:8 bit.
• Dirección de origen: El número de dirección del host que envía el paquete. Su longitud es cuatro
veces mayor que en la versión 4. Tamaño: 128 bit.
• Dirección de destino: Número de dirección de destino, aunque puede no coincidir con la dirección
del host final en algunos casos. Su longitud es cuatro veces mayor que en la versión 4 del protocolo
IP. Tamaño: 128 bi
Las extensiones que permite añadir esta versión del protocolo se sitúan inmediatamente después de la
cabecera normal, y antes de la cabecera que incluye el protocolo de nivel de transporte. Los datos situados en
cabeceras opcionales se procesan sólo cuando el mensaje llega a su destino final, lo que supone una mejora en
el rendimiento. Otra ventaja adicional es que el tamaño de la cabecera no está limitado a un valor fijo de bytes
9
como ocurría en la versión 4.
Por razones de eficiencia, las extensiones de la cabecera siempre tienen un tamaño múltiplo de 8 bytes.
Actualmente se encuentran definidas extensiones para routing extendido, fragmentación y ensamblaje,
seguridad, confidencialidad de datos, etc.
Direcciones en la versión 6.
El sistema de direcciones es uno de los cambios más importantes que afectan a la versión 6 del protocolo IP,
donde se han pasado de los 32 a los 128 bit (cuatro veces mayor). Estas nuevas direcciones identifican a un
interfaz o conjunto de interfaces y no a un nodo, aunque como cada interfaz pertenece a un nodo, es posible
referirse a éstos a través de su interfaz.
El número de direcciones diferentes que pueden utilizarse con 128 bits es enorme. Teóricamente serían 2128
direcciones posibles, siempre que no apliquemos algún formato u organización a estas direcciones. Este
número es extremadamente alto, pudiendo llegar a soportar más de 665.000 trillones de direcciones distintas
por cada metro cuadrado de la superficie del planeta Tierra. Según diversas fuentes consultadas, estos
números una vez organizados de forma práctica y jerárquica quedarían reducidos en el peor de los casos a
1.564 direcciones por cada metro cuadrado, y siendo optimistas se podrían alcanzar entre los tres y cuatro
trillones.
Existen tres tipos básicos de direcciones IPng según se utilicen para identificar a un interfaz en concreto o a
un grupo de interfaces. Los bits de mayor peso de los que componen la dirección IPng son los que permiten
distinguir el tipo de dirección, empleándose un número variable de bits para cada caso. Estos tres tipos de
direcciones son:
• Direcciones unicast: Son las direcciones dirigidas a un único interfaz de la red. Las direcciones
unicast que se encuentran definidas actualmente están divididas en varios grupos. Dentro de este tipo
de direcciones se encuentra también un formato especial que facilita la compatibilidad con las
direcciones de la versión 4 del protocolo IP.
• Direcciones anycast: Identifican a un conjunto de interfaces de la red. El paquete se enviará a un
interfaz cualquiera de las que forman parte del conjunto. Estas direcciones son en realidad direcciones
unicast que se encuentran asignadas a varios interfaces, los cuales necesitan ser configurados de
manera especial. El formato es el mismo que el de las direcciones unicast.
• Direcciones multicast: Este tipo de direcciones identifica a un conjunto de interfaces de la red, de
manera que el paquete es enviado a cada una de ellos individualmente.
Las direcciones de broadcast no están implementadas en esta versión del protocolo, debido a que esta misma
función puede realizarse ahora mediante el uso de las direcciones multicast.
Niveles físico y de enlace: Ethernet.
Los protocolos que pertenecen al nivel de enlace o interfaz de red de Internet (niveles físico y de enlace en el
modelo OSI) deben añadir más información a los datos provenientes de IP para que la transmisión pueda
realizarse. Es el caso, por ejemplo, de las redes Ethernet, de uso muy extendido actualmente. Este tipo de
redes utiliza su propio sistema de direcciones, junto con una nueva cabecera para los datos.
Las redes locales Ethernet son posiblemente la tecnología que domina en Internet. Este tipo de redes fue
desarrollado por Xerox durante los años 70, y entre sus características podemos destacar su alto nivel de
rendimiento, la utilización de cable coaxial para la transmisión, una velocidad de 10Mbit/seg. y CSMA/CD
10
como técnica de acceso.
Ethernet es un medio en el que todos los ordenadores pueden acceder a cada uno de los paquetes que se
envían, aunque un ordenador sólo tendrá que prestar atención a aquellos que van dirigidos a él mismo.
La técnica de acceso CSMA/CD (Carrier Sense and Multiple Access with Collition Detection) permite a que
todos los dispositivos puedan comunicarse en el mismo medio, aunque sólo puede existir un único emisor en
cada instante. De esta manera todos los sistemas pueden ser receptores de forma simultánea, pero la
información tiene que ser transmitida por turnos. Si varios dispositivos intentan transmitir en el mismo
instante la colisión es detectada, de forma que cada uno de ellos volverá a intentar la transmisión transcurrido
un pequeño intervalo de tiempo aleatorio.
Suponemos que el protocolo de nivel de transporte utilizado es el TCP. De esta manera, cuando se pretende
enviar un mensaje IP a través de un red Ethernet, la estructura final del mismo quedaría con el siguiente
formato:
Cabecera
Ethernet
Cabecera IP
(20 byte)
Cabecera TCP
(20 byte)
Datos
Checksum
Ethernet
La cabecera Ethernet consta de 14 bytes, en los que se incluyen 3 campos: La dirección de origen (48 bit), la
dirección de destino (48 bit), y el código de tipo (16 bit) que se utiliza para permitir el uso de diferentes
protocolos en la misma red (TCP/IP es uno de ellos). El checksum o campo de detección de errores (32 bit) no
se incluye en la cabecera Ethernet, sino que se sitúa al final del mensaje, y se calcula a partir de todos los
datos del paquete completo. A estos datos hay que sumar un campo de una longitud de 64 bit que se envía
inmediatamente antes de la cabecera, y cuya misión es sincronizar la línea para marcar el momento en que
comienzan los datos del paquete completo.
Es importante notar que las direcciones utilizadas por Ethernet no guardan ninguna relación con las
direcciones de Internet. Así como las direcciones IP de Internet son asignadas por el usuario, las direcciones
Ethernet se asignan "de fábrica". Esta es la razón por la que se utilizan 48 bit en las direcciones, ya que de esta
manera se obtiene un número lo suficientemente elevado de direcciones como para asegurar que no sea
necesario repetir los valores.
En una red Ethernet los paquetes son transportados de un ordenador a otro de manera que son visibles para
todos, siendo necesario un procedimiento para identificar los paquetes que pertenecen a cada ordenador.
Cuando el paquete es recibido en el otro extremo, la cabecera y el checksum se retiran, se comprueba que los
datos corresponden a un mensaje IP, y este mensaje se pasa al protocolo IP para que sea procesado.
El tamaño máximo para un paquete de datos varía de unas redes a otras. En el caso de Ethernet el tamaño
puede ser de 1500 bytes, para otras redes puede ser menor o bastante mayor en el caso de redes muy rápidas.
Aquí surge otro problema, pues normalmente los paquetes de tamaño mayor resultan más eficientes para
transmitir grandes cantidades de información. Sin embargo, se debe tener en cuenta que las redes del receptor
y el emisor pueden ser muy distintas. Por este motivo el protocolo TCP está preparado para negociar el
tamaño máximo de los datagramas que serán enviados durante el resto de la conexión. Pero así el problema no
queda completamente resuelto porque hasta que los paquetes lleguen a su destino es muy probable que tengan
que atravesar otras redes intermedias, las cuales puede que no sean capaces de soportar el tamaño de los
paquetes que se está enviando. Se hace necesario entonces dividir el paquete original en otros más pequeños
para que puedan ser manejados: Esto se conoce como fragmentación (fragmentation).
La fragmentación es posible gracias a determinados campos que el protocolo IP introduce en su
cabecera. Estos campos de fragmentación se usan cuando ha sido necesario dividir el paquete enviado
originalmente, de manera que éste pueda ser reconstruido por el host receptor a través del protocolo
11
TCP/IP. Este último proceso de reconstrucción de los paquetes se conoce como "reensamblaje"
(reassembly).
El nivel de red.
• La heterogeneidad en las clases de redes no parece que cambie pronto:
• La base de redes distintas instaladas está creciendo.
• El punto de decisiones de compras de redes se está bajando en las organizaciones.
• Las redes distintas tienen tecnología distinta, así que no es una sorpresa que haya software distinto.
• Dispositivos para conectar las redes:
• Repetidores. Amplifican o regeneran las señales para permitir cables más largos.
• Bridges. Son dispositivos de guardar−y−reenviar. Operan en el nivel de enlace y pueden cambiar los
campos de los marcos.
• Ruteadores de protocolos múltiples. Son como los bridges pero funcionan en el nivel de red.
Pueden conectar redes de protocolos distintos.
• Gateways (puertas) de transporte. Conectan las redes a nivel de transporte.
• Gateways de aplicación. Conectan dos partes de una aplicación (por ejemplo, correo electrónico) que
usan formatos distintos.
• Porque los gateways frecuentemente conectan dos redes que pertenecen a organizaciones distintas, a
veces se divide un gateway en dos partes (gateways medios). Las organizaciones no tienen que estar
de acuerdo sobre la administración de una máquina ya que cada uno administra su máquina propia.
Solamente tienen que estar de acuerdo sobre el protocolo entre los gateways medios.
• Algunas diferencias entre las redes:
• Clase de servicio. Orientado a la conexión o sin conexión.
• Protocolos. IP, IPX, CLNP, AppleTalk, DECnet, etc.
• Direcciones. De un nivel (802) o jerárquicas (IP).
• Tamaño de paquete. Cada red tiene su máximo propio.
• Control de errores. Entrega confiable y en orden o sin orden.
• Control de flujo. Ventana deslizante, control de velocidad, o ningún.
• Control de congestión. Cubo agujereado, paquetes de bloqueo, etc.
• Seguridad.
• Contabilidad. Por tiempo conectado, por paquete, por byte, o ninguna.
• Dos enfoques a la creación de las internets:
• Circuitos virtuales concatenados. Se establece una ruta a través de muchos gateways que convierten
los paquetes. No se los pueden implementar si una de las redes es de datagrama.
• Internet sin conexión. Los paquetes tienen que encontrar una ruta al destino. Las direcciones crean
problemas. La principal ventaja de las internets basadas en los datagramas es que se las pueden usar
sobre redes que no soportan los circuitos virtuales.
• Túneles. Si la fuente y el destino están en la misma clase de red, es sencillo conectarlos a través de
algún tipo distinto de red. Se insertan los paquetes de la primera red en paquetes de la red de conexión
y se extraen los paquetes de nuevo en la red de destino.
• Fragmentación. Un problema grande en las internets es el tamaño máximo de los paquetes. Si un
paquete es demasiado grande para la próxima red que tiene que atravesar, el gateway tiene que
partirlo en fragmentos.
• Fragmentación transparente. El gateway parte el paquete. Se mandan todos los fragmentos al
mismo gateway de salida, donde se los montan de nuevo. El gateway de salida tiene que saber cuando
tiene todos los fragmentos. Todos los paquetes tienen que salir a través del mismo gateway. Hay que
pagar el overhead de partir y montar en cada red de paquetes pequeños.
• Fragmentación no transparente. El host de destino tiene que montar el paquete de nuevo. Hay más
overhead porque los fragmentos persisten hasta el fin del viaje. Empero, se pueden usar gateways
múltiples de salida.
• Una manera para enumerar los fragmentos es que cada encabezamiento tiene el número del paquete
12
original, el número del primer fragmento elemental en el paquete, y un bit que indica el fragmento
final. Los fragmentos consisten en conjuntos de fragmentos elementales que son suficientes pequeños
para cualquiera red en la internet. Se los dividen cuando sea necesario.
• Firewalls. Con un firewall, todos los paquetes que entran o salen de un dominio son examinados.
Consiste en dos filtros de paquete (son ruteadores con alguna funcionalidad extra) y un gateway de
aplicación entre ellos.
• Se usan dos filtros para asegurar que no hay ningún camino que sale afuera o entra hacia dentro sin
pasar el gateway de aplicación.
• Los filtros chequean las puertas de los paquetes de TCP para determinar si dejan pasar un paquete.
Porque es difícil determinar los propósitos de los paquetes de UDP, a veces se los prohiben
completamente.
• El gateway de aplicación puede filtrar los paquetes en una manera más sofisticada.
El nivel de red en la Internet
• El protocolo de IP (Internet Protocol) es la base fundamental de la Internet. Porta datagramas de la
fuente al destino. El nivel de transporte parte el flujo de datos en datagramas. Durante su transmisión
se puede partir un datagrama en fragmentos que se montan de nuevo en el destino.
• Paquetes de IP:
• Versión. Es 4. Permite las actualizaciones.
• IHL. La longitud del encabezamiento en palabras de 32 bits. El valor máximo es 15, o 60 bytes.
• Tipo de servicio. Combinaciones varios de la confiabilidad y la velocidad son posibles. No usado.
• Longitud total. Hasta un máximo de 65.535 bytes.
• Identificación. Para determinar a qué datagrama pertenece un fragmento.
• DF (Don't Fragment). El destino no puede montar el datagrama de nuevo.
• MF (More Fragments). No establecido en el fragmento último.
• Desplazamiento del fragmento. A qué parte del datagrama pertenece este fragmento. El tamaño del
fragmento elemental es 8 bytes.
• Tiempo para vivir. Se lo decrementa cada salto.
• Protocolo. Protocolo de transporte a que se debiera pasar el datagrama.
• Las opciones incluyen el ruteo estricto (se especifica la ruta completa), el ruteo suelto (se especifican
solamente algunos ruteadores en la ruta), y grabación de la ruta.
• Las direcciones de IP consisten en 32 bits. Hay 126 redes de 16 millón hosts cada una, 16.382 de
65.536, y 2 millón de 254. Los valores de 0 indican esta red y los de −1 la dirección de broadcast. Las
direcciones que empiezan con 127 son para pruebas de loopback.
• Normalmente se dividen una dirección de una clase en subredes. Esto permite que una organización
tiene, por ejemplo, una dirección de clase B pero muchas subredes dentro de esto. Se divide la parte
de la dirección que es normalmente el host en una dirección de red y una dirección de host.
• Hay una escasez de direcciones. El problema es que la mayoría de las organizaciones eligen
direcciones de clase B, aunque la mitad de las redes de clase B tienen menos de 50 hosts. Ahora se
usa CIDR (Classless InterDomain Routing) para asignar las redes de clase C en bloques de tamaños
variables. Hay cuatro bloques grandes para Europa, Norteamérica, Sudamérica, y Asia/Pacífico. En
cada uno se combinan en los ruteadores una dirección y una máscara para determinar a qué
organización pertenece una dirección.
Protocolos de control
• La Internet tiene varios protocolos de control al nivel de red.
• ICMP (Internet Control Message Protocol). Ejemplos de paquetes: No se puede alcanzar el
destino, la vida de un paquete expiró, valor ilegal en el encabezamiento, paquete de bloqueo (no
usado más), paquete de eco o respuesta.
• ARP (Address Resolution Protocol). En una LAN es difícil mantener la correspondencia entre las
13
direcciones de IP y las direcciones de LAN (por ejemplo, en una Ethernet hay direcciones de 48 bits).
El protocolo ARP permite que una máquina haga un broadcast para preguntar qué dirección local
pertenece a alguna dirección de IP. En esta manera no se necesita una tabla de configuración, que
simplifica la administración.
• RARP (Reverse ARP). Permite que una máquina que acaba de bootear pueda encontrar su dirección
de IP. Hay también el protocolo BOOTP, cuyos mensajes son de UDP y se pueden reenviar sobre
ruteadores.
IPv6
• Fines:
• Soportar miles de millones de hosts, incluso con la asignación ineficiente de direcciones.
• Reducir el tamaño de las tablas de ruteo.
• Simplificar el protocolo, que permite un procesamiento más rápida.
• Proveer más seguridad.
• Usar tipos distintos de servicio.
• Mejorar el multicasting.
• Permitir que un host puede viajar sin cambiar su dirección.
• Permitir que el protocolo pueda cambiar en el futuro.
• Permitir que los protocolos nuevos y antiguos puedan coexistir.
• Puntos principales del diseño aceptado:
• Direcciones de 16 bytes, que implica <MATH>7×1023</MATH> por metro cuadrado de la tierra.
• Un encabezamiento de 7 campos en vez de 13.
• Mejor apoyo para las opciones.
• Mejor seguridad con la autenticación y la privacidad.
• Más tipos de servicio.
• IPv6 no usa la fragmentación. Los ruteadores tienen que manejar paquetes de 576 bytes. Si un paquete
es mayor que una red puede manejar, se rechaza el paquete y el host tiene que fragmentarlo.
• Se eliminó el checksum.
• Se permiten datagramas de tamaños grandes (jumbograms), que es importante para las aplicaciones de
supercomputador.
ARP (Address Resolution Protocol).
El Protocolo de Resolución de Direcciones (ARP) es necesario debido a que las direcciones Ethernet y las
direcciones IP son dos números distintos y que no guardan ninguna relación. Así, cuando pretendemos
dirigirnos a un host a través de su dirección de Internet se necesita convertir ésta a la correspondiente
dirección Ethernet.
ARP es el protocolo encargado de realizar las conversiones de dirección correspondientes a cada host. Para
ello cada sistema cuenta con una tabla con la dirección IP y la dirección Ethernet de algunos de los otros
sistemas de la misma red. Sin embargo, también puede ocurrir que el ordenador de destino no se encuentre en
la tabla de direcciones, teniendo entonces que obtenerla por otros medios.
Con la finalidad de obtener una dirección Ethernet destino que no se encuentra en la tabla de conversiones se
utiliza el mensaje ARP de petición. Este mensaje es enviado como broadcast, es decir, que estará disponible
para que el resto de los sistemas de la red lo examinen, y el cual contiene una solicitud de la dirección final de
un sistema a partir de su dirección IP. Cuando el ordenador con el que se quiere comunicar analiza este
mensaje comprueba que la dirección IP corresponde a la suya y envía de regreso el mensaje ARP de
respuesta, el cual contendrá la dirección Ethernet que se estaba buscando. El ordenador que solicitó la
información recibirá entonces el mensaje de respuesta y añadirá la dirección a su propia tabla de conversiones
14
para futuras referencias.
El mensaje de petición ARP contiene las direcciones IP y Ethernet del host que solicita la información,
además de la dirección IP del host de destino. Estos mensajes son aprovechados en algunas ocasiones también
por otros sistemas de la red para actualizar sus tablas, ya que el mensaje es enviado en forma de broadcast. El
ordenador de destino, una vez que ha completado el mensaje inicial con su propia dirección Ethernet, envía la
respuesta directamente al host que solicitó la información.
Routing.
Ya se ha expuesto anteriormente la forma en que los datagramas pasan de un ordenador de la red a otro
mediante el protocolo IP, sin embargo en esta sección se comenta con más detalle el proceso que permite que
la información llegue hasta su destino final. Esto se conoce con el nombre de routing.
Para los ejemplos que aparecen a continuación se va a suponer que todas las redes locales en las que se
implementan los protocolos de Internet TCP/IP pertenecen a la tecnología Ethernet, aunque las redes
utilizadas en la práctica pueden ser de muy diversos tipos. También se supondrá que se está utilizando el
protocolo IP versión 4, con direcciones de 32 bit.
Las tareas de routing son implementadas por el protocolo IP sin que los protocolos de un nivel superior tales
como TCP o UDP tengan constancia de ello. Cuando se quiere enviar información por Internet a un
ordenador, el protocolo IP comprueba si el ordenador de destino se encuentra en la misma red local que el
ordenador origen. Si es así, se enviará el correspondiente datagrama de forma directa: la cabecera IP
contendrá el valor de la dirección Internet del ordenador destino, y la cabecera Ethernet contendrá el valor de
la dirección de la red Ethernet que corresponde a este mismo ordenador.
Cuando se pretende enviar información a un ordenador remoto que está situado en una red local diferente al
ordenador de origen, el proceso resulta más complicado. Esto se conoce como routing indirecto, y es el caso
que se presenta más frecuentemente cuando se envía información en Internet. La figura 1 muestra un ejemplo
en el que dos redes locales que utilizan la tecnología de Internet se enlazan para intercambiar información,
creando una red lógica de mayor tamaño gracias a la funcionalidad del protocolo IP.
En Internet existen un elevado número de redes independientes conectadas entre sí mediante el uso de los
routers. Un ordenador puede actuar como un router si se conecta a varias redes al mismo tiempo, disponiendo
por lo tanto de más de una interfaz de red así como de varias direcciones IP y Ethernet (tantas como redes a
las que se encuentre conectado). El router, por supuesto, puede enviar y recibir información de los hosts de
todas las redes a las que está conectado, y siempre será de forma directa. Continuando con el ejemplo anterior,
el host A puede comunicarse de forma directa con el host B, así como los hosts A y B pueden enviar o recibir
información del router. En ambos casos se trata de routing directo, pues el ordenador que actúa como router
está conectado a la red 'alfa' de la misma manera que los ordenadores A y B, teniendo una dirección IP propia
asignada que lo identifica dentro de esta misma red. La situación es la misma para la red 'omega' donde el
router es identificado a través de una segunda dirección IP que corresponde con esta red.
Si sólo fuésemos a enviar información de manera directa dentro de una misma red no sería necesario el uso
del protocolo TCP/IP, siendo el mismo especialmente indicado cuando se desea una comunicación con otras
redes. En este caso los datagramas tendrán que ser encaminados a través del router para llegar a su destino. La
forma de hacer esto es a través del protocolo IP, el cual decide si la información puede enviarse directamente
o si por el contrario debe utilizarse el método indirecto a través de un router. Tomamos de nuevo el ejemplo
de la figura 1: Suponemos que el host B de la red 'alfa' necesita comunicarse con el host X situado en la red
'omega'. Una vez que se ha determinado que el destino no se encuentra en la misma red, envía el datagrama IP
hacia el router correspondiente. Como este router y el ordenador que envía la información se encuentran
15
conectados a la misma red, se trata por tanto de routing directo, ya comentado anteriormente, y por
consiguiente sólo será necesario determinar la dirección Ethernet del router mediante empleo del protocolo
ARP. El paquete enviado incluirá la dirección del router como dirección Ethernet de destino, pero sin
embargo, la dirección de destino IP corresponderá al ordenador final al que va dirigido el paquete, el host X
en el ejemplo. El router recibe el paquete y a través del protocolo IP comprueba que la dirección de Internet
de destino no corresponde con ninguna de las asignadas como suyas, procediendo entonces a determinar la
localización de la 'omega', en la que se entrega el paquete al ordenador de destino.
Hasta este punto se ha supuesto que sólo existe un único router, pero es bastante probable que una red con
conexión a Internet posea múltiples enlaces con otras redes, y por lo tanto más de un router. Entonces...
¿cómo determina el protocolo IP el sistema correcto al que debe dirigirse? Para resolver este problema cada
ordenador utiliza una tabla donde se relaciona cada una de las redes existentes con el router que debe usarse
para tener acceso. Debe tenerse en cuenta que los routers indicados en estas tablas pueden no estar conectados
directamente a las redes con las que están relacionados, sino que lo que se indica es el mejor camino para
acceder a cada una de ellas. Por esta razón, cuando un router recibe un paquete que debe ser encaminado,
busca en su propia tabla de redes la entrada correspondiente a la red para, una vez encontrada, entregarlo al
ordenador de destino. Es importante notar que en el caso de que el router no tenga conexión directa a la
misma red que el ordenador de destino, la búsqueda en su tabla de redes dará como resultado la dirección de
un nuevo router al que dirigir el paquete, y así continuará el proceso sucesivamente hasta encontrar el destino
final.
La figura 2 muestra la estructura de los protocolos para cada ordenador de Internet que se encuentre conectado
a una red Ethernet. Para un ordenador con más de un interfaz de red en el esquema aparecerían todas las
Ethernet con sus correspondientes protocolos ARP, pero en cualquier caso sería un único protocolo IP el que
se utilice, aunque éste disponga de varias direcciones asignadas.
A causa de la extensión de Internet, es normal que un paquete atraviese numerosas redes (pueden ser decenas)
hasta llegar a su destino. La ruta que tiene que recorrer un paquete en su viaje a través de la red no está
determinada inicialmente, sino que es el resultado de la consulta en las tablas de direcciones individuales de
los ordenadores intermedios.
Ya se ha mencionado anteriormente que todos los host de Internet necesitan disponer de una tabla de routing
con la información de otras redes, pero esto supondría algunos inconvenientes adicionales (como el tamaño y
la necesidad de mantenimiento). Con la finalidad de reducir los inconvenientes se utilizan los routers (o
gateways) por defecto. De esta manera cuando un host no posee información del camino correcto para un
determinado paquete, éste es enviado al router que tiene asignado por defecto. Si este router es el único del
que dispone la red no habrá ningún inconveniente y el paquete continuará su camino. Sin embargo, cuando
existen varios routers para la misma red puede ocurrir que el utilizado por defecto no sea el más apropiado
para el paquete que se quiere enviar, por lo que se necesita algún procedimiento para notificar el error al host
que envió el paquete. El protocolo ICMP es el utilizado para enviar estos mensajes de notificación que
informan al host de la ruta correcta, y que en muchos casos éste utiliza para actualizar su propia tabla de
routing y que los próximos paquetes con el mismo destino sean dirigidos de forma correcta.
La creación y mantenimiento de la tabla de redes para routing es un proceso complejo que debe ser realizado
por el administrador de la red. Aquí hay que tener en cuenta que la enorme extensión de Internet supone una
gran dificultad para conseguir que sean correctas todas las entradas de la tabla, además de que esta tabla puede
llegar a tener un tamaño considerable. La utilización de routers por defecto mejora la situación al permitir que
sean estos los que guarden el registro de la red sin que los ordenadores individuales tengan que ocuparse en
ello, pero estos routers sí que deberían tener una tabla completa. Para facilitar el mantenimiento de la tabla
existen algunos protocolos para routing que permiten que un router o gateway cualquiera pueda encontrar por
sí mismo la localización de otros routers o gateways y guardar la información acerca del mejor camino para
acceder a cada red.
16
Lógicamente el proceso real de routing sobre Internet suele ser mucho más complejo que el expuesto
aquí, principalmente por el uso de redes y tecnologías muy distintas e incompatibles. Esto obliga a que
se realicen conversiones en el formato de los paquetes para que puedan pasar a través de medios
diferentes, pero en cualquier caso el protocolo IP proporciona una transmisión transparente para los
protocolos de nivel superior y las aplicaciones de red.
Algoritmos de ruteo
• El algoritmo de ruteo decide en qué línea de salida se debiera transmitir un paquete que llega.
Propiedades deseables:
• Correctitud y sencillez.
• Robustez. Una red puede tener que operar por años y experimentará fallas de software y hardware. El
algoritmo de ruteo no debe requerer que se reinicializa la red después de fallas parciales.
• Estabilidad. Debiera tener un equilibrio.
• Justicia y optimalidad. Están frecuentemente contradictorias. Se necesita una balanza entre la
eficiencia global y la justicia al individual. ¿Qué podemos optimizar? El retraso por paquete o la
utilización global de la red son posibilidades. Estos también están contradictorios, porque con 100%
utilización los retrasos aumentan. Una solución intermedia es minimizar el número de saltos.
• Los algoritmos pueden ser adaptativos o no. Los primeros cambian sus decisiones de ruteo para
reflejar la topología y el tráfico en la red. Los últimos son estáticos.
• El principio de optimalidad. Si el ruteador <MATH>J</MATH> está en el camino óptimo desde
ruteador <MATH>I</MATH> a ruteador <MATH>K</MATH>, entonces la ruta óptima desde
<MATH>J</MATH> a <MATH>K</MATH> está en la misma ruta. El conjunto de rutas óptimas
forma el árbol de hundir (sink tree). El fin de los algoritmos de ruteo es descubrir y usar los árboles
de hundir de todos los ruteadores. Un problema es que la topología cambia.
Algoritmos estáticos
• Camino más corto. Se calculan los caminos más cortos usando alguna métrica. Posibilidades: el
número de saltos, la distancia física, el retraso de transmisión por un paquete de prueba, el ancho de
banda, el tráfico promedio, el costo de comunicación, etc.
• Inundación. Se manda cada paquete que llega sobre todas las otras líneas. Puede generar un número
infinito de paquetes, así que se necesita un método para restringir la inundación.
• Se puede usar un contador de saltos en cada paquete que se decrementa después de cada salto. Cuando
el contador es cero se descarta el paquete.
• Se pueden guardar números de secuencia agregados por cada ruteador a los paquetes. Los ruteadores
mantienen listas de los números de secuencia más altos vistos y descartan los paquetes que son
duplicados.
• En la inundación selectiva se mandan los paquetes solamente sobre las líneas que salen más o menos
en la dirección correcta.
• Ruteo basado en el flujo. Usa la topología y la carga para determinar las rutas óptimas. Si el tráfico
entre nodos es conocido, se lo puede analizar usando la teoría de colas. Probando conjuntos distintos
de rutas se puede minimizar el retraso promedio de la red.
• En general las redes modernas usan los algoritmos dinámicos en vez de los estáticos.
Ruteo de vector de distancia
• Se llaman estos algoritmos también Bellman−Ford y Ford−Fulkerson. Eran los algoritmos originales
de ruteo de la ARPANET.
• Cada ruteador mantiene una tabla (un vector) que almacena las mejores distancias conocidas a cada
destino y las líneas a usar para cada destino. Se actualizan las tablas intercambiando información con
los vecinos.
17
• La tabla de un ruteador almacena una entrada para cada uno de los ruteadores en la subred (los
ruteadores son los índices). Las entradas almacenan la línea preferida de salida y una estimación del
tiempo o la distancia al destino. Se pueden usar métricas distintas (saltos, retrasos, etc.).
• Cada ruteador tiene que medir las distancias a sus vecinos. Por ejemplo, si la métrica es el retraso, el
ruteador la puede medir usando paquetes de eco.
• Cada <MATH>T</MATH> msegs los ruteadores intercambian sus tablas con sus vecinos. Un
ruteador usa las tablas de sus vecinos y sus mediciones de las distancias a sus vecinos para calcular
una nueva tabla.
• El ruteo de vector de distancia sufre el problema que incorpora buenas noticias rápidamente pero
malas noticias muy lentamente. </MATH>Los ruteadores no pueden detectar el ciclo, y el número de
saltos a <MATH>A</MATH> crece por solamente uno en cada turno. Este problema se llama contar
a infinito, y hay que establecer un valor de infinito suficiente pequeño para detectarlo. Por ejemplo, el
valor puede ser la longitud del camino más largo más uno.
• Hay muchas soluciones a este problema, pero ninguna lo soluciona completamente. Una usada
frecuentemente es la del horizonte partido. En esta variación del algoritmo la única diferencia es que
siempre se reporta una distancia infinita a ruteador <MATH>X</MATH> sobre la línea que se usa
para rutear a <MATH>X</MATH>.
Ruteo de estado de enlace
• En 1979 se reemplazó el uso del ruteo de vector de distancia en la ARPANET. Tenía dos problemas
principales:
• La métrica era la longitud de las colas y no consideraba los anchos de banda de las líneas
(originalmente todos eran 56 kpbs).
• El tiempo para converger era demasiado grande.
• El nuevo algoritmo que se usa es el ruteo de estado de enlace. Tiene cinco partes. Cada ruteador tiene
que
• Descubrir sus vecinos y sus direcciones.
• Medir el retraso o costo a cada vecino.
• Construir un paquete con la información que ha averiguado.
• Mandar este paquete a todo los ruteadores.
• Calcular la ruta mínima a cada ruteador.
• Descubrir los vecinos. Cuando se bootea un ruteador, manda paquetes especiales de saludos sobre
cada línea punto−a−punto suya. Los vecinos contestan con sus direcciones únicas. Si más de dos
ruteadores están conectados por la LAN, se modela la LAN como un nodo artificial.
• Medir el costo. El ruteador manda paquetes de eco que los recipientes tienen que contestar
inmediatamente. Se divide el tiempo por el viaje de ida y vuelta para determinar el retraso.
• Un punto interesante es si debiera incluir en el retraso la carga de la línea. Esto corresponde a iniciar
el reloj del viaje cuando se pone el paquete en la cola o cuando el paquete alcanza la cabeza de la
cola.
• Si incluimos la carga, se usan las líneas menos cargadas, que mejora el rendimiento.
• Empero, en este caso es posible tener oscilaciones grandes en el uso de las líneas.
• Construir el paquete. El paquete consiste en la identidad del mandador, un número de secuencia, la
edad, y la lista de vecinos y retrasos. Se pueden construir los paquetes periódicamente o solamente
después de eventos especiales.
• Distribuir los paquetes de estado de enlace. Esto es la parte más difícil del algoritmo, porque las
rutas en los ruteadores no cambian juntas. La idea fundamental es usar la inundación.
• Para restringir la inundación se usan los números de secuencia que se incrementan cada vez se reenvía
un paquete. Los ruteadores mantienen pares del ruteador de fuente y el número de secuencia que han
visto, y descartan los paquetes viejos. Los paquetes nuevos se reenvían sobre todas las líneas salvo la
18
de llegada.
• Para evitar que el número de secuencia se desborda, se usan 32 bits.
• Para evitar que los paquetes pueden vivir por siempre, contienen un campo de edad que se
decrementa.
• Si un ruteador cae o un número de secuencia se convierte malo, se perderán paquetes. Por lo tanto se
incluye un campo de edad en cada entrada en la lista. Se decrementa este campo cada segundo y se
descarta la información que tiene una edad de cero.
• Calcular las rutas. Se usa el algoritmo de Dijkstra. Un problema es que, debido a errores en los
ruteadores, puede haber problemas en las rutas.
Ruteo jerárquico
• Las tablas de ruta crecen con la red. Después de algún punto no es práctico mantener toda la
información sobre la red en cada ruteador.
• En el ruteo jerárquico se divide la red en regiones. Los ruteadores solamente saben la estructura
interna de sus regiones.
• Para una subred de <MATH>N</MATH> ruteadores el número óptimo de niveles es
<MATH>lnN</MATH>.
Ruteo de broadcast
• Para el broadcast de información hay algunas posibilidades.
• La más sencilla es mandar un paquete distinto a cada destino, pero esta malgasta ancho de banda.
• Otra posibilidad es la inundación pero genera demasiado paquetes y consume demasiado ancho de
banda.
• En el ruteo de destinos múltiples, cada paquete almacena la lista de destinos. El ruteador divide el
paquete en nuevos para cada línea de salida. Cada paquete tiene una nueva lista de destinos. Se divide
la lista original sobre las líneas de salida.
• Se puede usar el árbol de hundir o cualquier árbol de cobertura para la red, pero esto requiere que los
ruteadores saben el árbol (que no es el caso en el ruteo de vector de distancia).
• En el algoritmo que reenvía usando el camino inverso (reverse path forwarding), se aproxima el
comportamiento del uso de un árbol de cobertura. Cuando un paquete llega, se lo reenvía solamente si
llegó sobre la línea que se usa para mandar paquetes a su fuente. Es decir, si el paquete llegó sobre
esta línea, es probable que tome la ruta mejor a esta ruteador. Si no, es probable que sea un duplicado.
Algoritmos de control de congestión
• Cuando hay demasiado paquetes en alguna parte de la subred, el rendimiento baja. Esta situación se
llama la congestión.
• Razones para la congestión:
• Contienda para las líneas.
• Memoria insuficiente en los ruteadores. Más memoria puede ayudar hasta un punto, pero aun cuando
los ruteadores tienen memoria infinita, la congestión empeora, ya que los paquetes expiran antes de
llegar a la cabeza de la cola.
• Procesadores lentos. Si las CPUs no son suficiente rápidas, las colas pueden aumentar aun cuando hay
capacidad en las líneas.
La congestión propaga hacía arriba porque los mandadores tienen que guardar mensajes que no pueden
entregar a un ruteador sobrecargado.
• El control de la congestión no es el mismo que el control de flujo. En el último el problema es evitar
que el mandador manda más datos que el recibidor puede procesar, mientras que en el control de
19
congestión el problema es evitar sobrecargar la capacidad de la red.
• Se dividen las soluciones al problema de control de congestión en dos clases:
• Loop abierto. Estas intentan evitar el incidente de congestión. Usan algoritmos para decidir cuándo
aceptar más tráfico, cuándo descartar paquetes, etc. Los algoritmos no utilizan el estado actual de la
red.
• Loop cerrado. Estas monitorean el sistema para la congestión y su ubicación, pasan esta información
a los lugares donde se la pueden utilizar, y ajustan la operación del sistema para corregir el problema.
Formación del tráfico
• Una razón principal de la congestión es que el tráfico viene frecuentemente en ráfagas. Un método de
loop abierto para manejar la congestión es forzar que el tráfico es más predecible. Se lo llama la
formación del tráfico.
• La idea en la formación del tráfico es controlar la velocidad promedia de la transmisión de datos y la
incidencia de ráfagas.
• Un cliente puede solicitar servicio para tráfico con algún patrón. Entonces el portador tiene que vigilar
que el tráfico del cliente tiene este patrón (la vigilancia del tráfico). Esto es más sencillo con los
circuitos virtuales que con los datagramas.
• Algoritmo de cubo agujereado. Cada host es conectado a la red por una interfaz que contiene un
cubo agujereado, es decir, una cola interna finita. Si un paquete llega cuando la cola está llena, se lo
descarta. El host puede poner un paquete en la red en cada intervalo. En esta manera se convierte un
flujo ondulado en uno uniforme.
• Con paquetes de tamaños variables se cambia el algoritmo a poner un número fijo de bytes en la red
en cada intervalo. Si no quedan suficientes bytes para un paquete, se pierde el residuo y el paquete
tiene que esperar hasta el próximo intervalo.
• Ejemplo: Un computador puede producir 25 MB/seg, que es también la velocidad de la red. Empero
los ruteadores solamente pueden manejar esta velocidad por intervalos cortos, y su rendimiento mejor
es con velocidades de 2 MB/seg. Los datos llegan en ráfagas de 1 MB (40 mseg), una cada segundo.
Entonces se puede usar un cubo de una capacidad de 1 MB y una velocidad de salida de 2 MB/seg.
• Algoritmo de cubo de token. El algoritmo de cubo agujereado nunca permite ráfagas en la salida.
Para muchas aplicaciones es deseable que se permitan más variaciones en la velocidad de salida. En el
algoritmo de cubo de token, el cubo contiene tokens en vez de paquetes.. Se añade un token nuevo
cada intervalo al cubo hasta algún máximo. Para transmitir un paquete se necesita sacar un token del
cubo.
• No se descartan paquetes cuando el cubo está lleno, sino tokens.
• En vez del derecho de mandar un paquete, los tokens pueden significar el derecho de mandar algún
número de bytes.
• El algoritmo permite las ráfagas pero hasta alguna longitud limitada <MATH>S</MATH>. Si la
capacidad del cubo es <MATH>C</MATH> bytes, los tokens llegan con una velocidad de
<MATH>p</MATH> bytes/seg, y la velocidad de salida máxima es <MATH>M</MATH>, tenemos
<MATH>C+pS = MS</MATH>, o <MATH>S = C/(M−p)</MATH>. Si <MATH>C =
250</MATH> KB, <MATH>M = 25</MATH> MB/seg, y <MATH>p = 2</MATH> MB/seg, el
tiempo de ráfaga máxima es 11 mseg y su tamaño es 272 KB.
• La vigilancia de estos esquemas requiere que la red simula los algoritmos.
Control de congestión en subredes de circuitos virtuales
• Un algoritmo de loop cerrado que se puede usar en las subredes de circuitos virtuales es el control de
entrada. Cuando se ha señalizado la congestión, no se establecen más circuitos virtuales.
• Otro enfoque es rutear los circuitos virtuales nuevos alrededor de las áreas con problemas.
• También se pueden negociar las características de la conexión durante su establecimiento y reservar el
ancho de banda necesario. Pero malgasta recursos.
20
Paquetes de bloqueo
• Cada ruteador puede monitorear las utilizaciones de sus líneas. Puede mantener una variable
<MATH>u</MATH> para la utilización que se actualiza según
<MATH>unuevo = auviejo + (1−a)f</MATH>
donde <MATH>a</MATH> es algún constante y <MATH>f</MATH> es la utilización del instante.
• Cuando <MATH>u</MATH> sube sobre algún límite, la línea de salida entra en un estado de aviso.
Si la línea de salida de un paquete nuevo está en un estado de aviso, se manda un paquete de bloqueo
a su host de fuente original. Este paquete de bloqueo lleva el destino encontrado en el paquete, que
permite que la fuente pueda identificar el paquete y la ruta que generaron el paquete de bloqueo. Se
establece un bit en el encabezamiento del paquete que previene la generación de nuevos paquetes de
bloqueo y lo reenvía como normal.
• Cuando un host recibe el paquete de bloqueo, debe reducir el tráfico al destino especificado por
<MATH>X</MATH> por ciento. Porque ya hay otros paquetes en la ruta que generarán más
paquetes de bloqueo, el host los debiera ignorar por algún intervalo. Después del intervalo, si hay más
paquetes de bloqueo, debe reducir el flujo de nuevo.
• Si ningún paquete de bloqueo llega después de algún tiempo, el host puede aumentar el flujo.
Normalmente los decrementos son 0,50, 0,25, etc., de la velocidad original. Los incrementos son más
pequeños para evitar una nueva incidente de congestión.
• Un problema con este algoritmo es que los hosts cambian sus comportamientos voluntariamente. Una
variación entonces es el algoritmo con colas justas. Cada línea de salida en un ruteador tiene un
conjunto de colas, una para cada línea de entrada. El ruteador transmite un paquete por cola en turno.
Si un host manda demasiado paquetes, no afecta a otros.
• Una modificación del algoritmo es tomar en cuenta los tamaños de los paquetes. En esto se elige el
próximo paquete usando un round robin que opera byte−por−byte.
• En el algoritmo con colas justas con pesos, se permiten prioridades distintas para las colas.
• Un problema con los paquetes de bloqueo es el tiempo por su propagación. En este tiempo el host
puede mandar muchos paquetes. Una solución es los paquetes de bloque de salto−por−salto. En esta
cada ruteador intermedio tiene que reducir el flujo inmediatamente, que alivia la situación del
ruteador más abajo. Este esquema alivia la congestión antes de que pueda desarrollar, pero al costo de
requerir más buffers más arriba en el flujo.
Pérdida de carga
• Cuando todavía hay demasiado paquetes, los ruteadores pueden elegir paquetes a descartar.
• En algunas aplicaciones es mejor descartar los paquetes nuevos (por ejemplo, en la transferencia de
archivos). En otras (la multimedia), los nuevos tienen más valor. Se llama la primera política vino y la
última leche.
• En general se necesita la ayuda de los mandadores. Puede haber dos clases de paquetes con costos
distintos (por ejemplo, en ATM esto es el caso).
• Generalmente es mejor que un ruteador empieza con descartar paquetes temprano en vez de tarde.
Sistema de nombres por dominio.
El sistema de nombres por dominio (DNS, Domain Name System) es una forma alternativa de identificar a una
máquina conectada a Internet. La dirección IP resulta difícil de memorizar, siendo su uso más adecuado para
los ordenadores. El sistema de nombres por dominio es el utilizado normalmente por las personas para
referirse a un ordenador en la red, ya que además puede proporcionar una idea del propósito o la localización
21
del mismo.
El nombre por dominio de un ordenador se representa de forma jerárquica con varios nombres separados por
puntos (generalmente 3 ó 4, aunque no hay límite). Típicamente el nombre situado a la izquierda identifica al
host, el siguiente es el subdominio al que pertenece este host, y a la derecha estará el dominio de mayor nivel
que contiene a los otros subdominios:
nombre_ordenador.subdominio.dominio_principal
Aunque esta situación es la más común, el nombre por dominio es bastante flexible, permitiendo no sólo la
identificación de hosts sino que también puede utilizarse para referirse a determinados servicios
proporcionados por un ordenador o para identificar a un usuario dentro del mismo sistema. Es el caso de la
dirección de correo electrónico, donde el nombre por dominio adquiere gran importancia puesto que el
número IP no es suficiente para identificar al usuario dentro de un ordenador.
Para que una máquina pueda establecer conexión con otra es necesario que conozca su número IP, por lo
tanto, el nombre por dominio debe ser convertido a su correspondiente dirección a través de la
correspondiente base de datos. En los inicios de Internet esta base de datos era pequeña de manera que cada
sistema podía tener su propia lista con los nombres y las direcciones de los otros ordenadores de la red, pero
actualmente esto sería impensable. Con esta finalidad se utilizan los servidores de nombres por dominio (DNS
servers).
Los servidores de nombres por dominio son sistemas que contienen bases de datos con el nombre y la
dirección de otros sistemas en la red de una forma encadenada o jerárquica.
Para comprender mejor el proceso supongamos que un usuario suministra el nombre por dominio de un
sistema en la red a su ordenador local, realizándose el siguiente proceso:
• El ordenador local entra en contacto con el servidor de nombres que tiene asignado, esperando
obtener la dirección que corresponde al nombre que ha suministrado el usuario.
• El servidor de nombres local puede conocer la dirección que se está solicitando, entregándosela al
ordenador que realizó la petición.
• Si el servidor de nombres local no conoce la dirección, ésta se solicitará al servidor de nombres que
esté en el dominio más apropiado. Si éste tampoco tiene la dirección, llamará al siguiente servidor
DNS, y así sucesivamente.
• Cuando el servidor DNS local ha conseguido la dirección, ésta se entrega al ordenador que realizó la
petición.
• Si el nombre por dominio no se ha podido obtener, se enviará de regreso el correspondiente mensaje
de error.
Servicios de Internet: el nivel de aplicación.
Los diferentes servicios a los que podemos tener acceso en Internet son proporcionados por los protocolos que
pertenecen al nivel de aplicación. Estos protocolos forman parte del TCP/IP y deben aportar entre otras cosas
una forma normalizada para interpretar la información, ya que todas las máquinas no utilizan los mismos
juegos de caracteres ni los mismos estándares. Los protocolos de los otros niveles sólo se encargan de la
transmisión de información como un bloque de bits, sin definir las normas que indiquen la manera en que
tienen que interpretarse esos bits. Los protocolos del nivel de aplicación están destinados a tareas específicas,
algunos de los cuales se consideran como tradicionales de Internet por utilizarse desde los inicios de la red,
como son por ejemplo:
22
• Transferencia de ficheros (File Transfer).
• Correo electrónico (e−mail).
• Conexión remota (remote login).
Transferencia de ficheros.
El protocolo FTP (File Transfer Protocol) se incluye como parte del TCP/IP, siendo éste el protocolo de nivel
de aplicación destinado a proporcionar el servicio de transferencia de ficheros en Internet. El FTP depende del
protocolo TCP para las funciones de transporte, y guarda alguna relación con TELNET (protocolo para la
conexión remota).
El protocolo FTP permite acceder a algún servidor que disponga de este servicio y realizar tareas como
moverse a través de su estructura de directorios, ver y descargar ficheros al ordenador local, enviar ficheros al
servidor o copiar archivos directamente de un servidor a otro de la red. Lógicamente y por motivos de
seguridad se hace necesario contar con el permiso previo para poder realizar todas estas operaciones. El
servidor FTP pedirá el nombre de usuario y clave de acceso al iniciar la sesión (login), que debe ser
suministrado correctamente para utilizar el servicio.
La manera de utilizar FTP es por medio de una serie de comandos, los cuales suelen variar dependiendo del
sistema en que se esté ejecutando el programa, pero básicamente con la misma funcionalidad. Existen
aplicaciones de FTP para prácticamente todos los sistemas operativos más utilizados, aunque hay que tener en
cuenta que los protocolos TCP/IP están generalmente muy relacionados con sistemas UNIX. Por este motivo
y, ya que la forma en que son listados los ficheros de cada directorio depende del sistema operativo del
servidor, es muy frecuente que esta información se muestre con el formato propio del UNIX. También hay
que mencionar que en algunos sistemas se han desarrollado clientes de FTP que cuentan con un interfaz
gráfico de usuario, lo que facilita notablemente su utilización, aunque en algunos casos se pierde algo de
funcionalidad.
Existe una forma muy utilizada para acceder a fuentes de archivos de carácter público por medio de FTP. Es
el acceso FTP anónimo, mediante el cual se pueden copiar ficheros de los hosts que lo permitan, actuando
estos host como enormes almacenes de información y de todo tipo de ficheros para uso público. Generalmente
el acceso anónimo tendrá algunas limitaciones en los permisos, siendo normal en estos casos que no se
permita realizar acciones tales como añadir ficheros o modificar los existentes. Para tener acceso anónimo a
un servidor de FTP hay que identificarse con la palabra "anonymous" como el nombre de usuario, tras lo cual
se pedirá el password o clave correspondiente. Normalmente se aceptará cualquier cadena de caracteres como
clave de usuario, pero lo usual es que aquí se indique la dirección de correo electrónico propia, o bien la
palabra "guest". Utilizar la dirección de correo electrónico como clave de acceso es una regla de cortesía que
permite a los operadores y administradores hacerse una idea de los usuarios que están interesados en el
servicio, aunque en algunos lugares puede que se solicite esta información rechazando el uso de la palabra
"guest".
El FTP proporciona dos modos de transferencia de ficheros: ASCII y binario. El modo de transferencia ASCII
se utiliza cuando se quiere transmitir archivos de texto, ya que cada sistema puede utilizar un formato distinto
para la representación de texto. En este caso se realiza una conversión en el formato del fichero original, de
manera que el fichero recibido pueda utilizarse normalmente. El modo de transferencia binario se debe utilizar
en cualquier otro caso, es decir, cuando el fichero que vamos a recibir contiene datos que no son texto. Aquí
no se debe realizar ninguna conversión porque quedarían inservibles los datos del fichero.
Conexión remota.
23
El protocolo diseñado para proporcionar el servicio de conexión remota (remote login) recibe el nombre de
TELNET, el cual forma parte del conjunto de protocolos TCP/IP y depende del protocolo TCP para el nivel
de transporte.
El protocolo TELNET es un emulador de terminal que permite acceder a los recursos y ejecutar los programas
de un ordenador remoto en la red, de la misma forma que si se tratara de un terminal real directamente
conectado al sistema remoto. Una vez establecida la conexión el usuario podrá iniciar la sesión con su clave
de acceso. De la misma manera que ocurre con el protocolo FTP, existen servidores que permiten un acceso
libre cuando se especifica "anonymous" como nombre de usuario.
Es posible ejecutar una aplicación cliente TELNET desde cualquier sistema operativo, pero hay que tener en
cuenta que los servidores suelen ser sistemas VMS o UNIX por lo que, a diferencia del protocolo FTP para
transferencia de ficheros donde se utilizan ciertos comandos propios de esta aplicación, los comandos y
sintaxis que se utilice en TELNET deben ser los del sistema operativo del servidor. El sistema local que
utiliza el usuario se convierte en un terminal "no inteligente" donde todos los caracteres pulsados y las
acciones que se realicen se envían al host remoto, el cual devuelve el resultado de su trabajo. Para facilitar un
poco la tarea a los usuarios, en algunos casos se encuentran desarrollados menús con las distintas opciones
que se ofrecen.
Los programas clientes de TELNET deben ser capaces de emular los terminales en modo texto más utilizados
para asegurarse la compatibilidad con otros sistemas, lo que incluye una emulación del teclado. El terminal
más extendido es el VT100, el cual proporciona compatibilidad con la mayoría de los sistemas, aunque puede
ser aconsejable que el programa cliente soporte emulación de otro tipo de terminales.
Correo electrónico.
El servicio de correo electrónico se proporciona a través del protocolo SMTP (Simple Mail Transfer
Protocol), y permite enviar mensajes a otros usuarios de la red. A través de estos mensajes no sólo se puede
intercambiar texto, sino también archivos binarios de cualquier tipo.
Generalmente los mensajes de correo electrónico no se envían directamente a los ordenadores personales de
cada usuario, puesto que en estos casos puede ocurrir que esté apagado o que no esté ejecutando la aplicación
de correo electrónico. Para evitar este problema se utiliza un ordenador más grande como almacén de los
mensajes recibidos, el cual actúa como servidor de correo electrónico permanentemente. Los mensajes
permanecerán en este sistema hasta que el usuario los transfiera a su propio ordenador para leerlos de forma
local.
Infovía.
Infovía es un servicio de Telefónica que constituye una red independiente con contenido y servicios propios
que permite también el acceso a Internet a través de un proveedor conectado con este servicio, aunque desde
Internet no es posible acceder al contenido de Infovía. El protocolo utilizado para las comunicaciones es el
TCP/IP, al igual que en Internet, lo que facilita un acceso transparente a esta red u otras redes existentes. Sin
embargo, la conexión con Infovía no proporciona acceso inmediato a Internet, sino que esto es una posibilidad
que existe mediante los proveedores de servicios encargados de facilitar el acceso.
El servicio Infovía utiliza las redes telefónicas para proveer los servicios e información a los usuarios finales.
Estos usuarios finales se conectan a cualquiera de los Centros del Servicio Infovía, que se encuentran
distribuidos por zonas, y a través de los cuales obtienen la lista de los Centros Proveedores de Información
disponibles. El software que permite el acceso es proporcionado por Telefónica sin coste alguno, y tampoco es
24
necesario contratar la utilización del servicio por lo que el acceso resulta mucho más cómodo para el usuario.
Infovía proporciona un acceso sencillo y más económico, en el sentido de que desde cualquier punto y a
cualquier distancia el precio será siempre el de una llamada metropolitana, a cualquier usuario que requiera el
servicio. Estos usuarios suelen ser principalmente los siguientes:
• Usuarios domésticos: Son los usuarios finales que se conectan a través de un ordenador personal
para tener acceso a alguno de los Proveedores de Información. Para ello es necesario disponer del
equipo y el hardware de comunicaciones necesario, teniendo varias opciones:
• Conexión por módem a través de la Red Telefónica Básica (RTB).
• Conexión por adaptador RDSI a través de la Red Digital de Servicios Integrados (RDSI).
• Conexión a través de otras redes (como la Red Móvil GSM).
• Empresas proveedoras de Servicios de Información: Para que una empresa pueda ofrecer sus
servicios a través de Infovía se hace necesario el uso del protocolo TCP/IP, así como una línea X.25 o
Frame Relay que servirá de conexión a la red de transporte a través del Centro Servidor Infovía más
cercano.
El acceso a Internet.
El acceso a Internet es proporcionado por cualquier proveedor que disponga de esta posibilidad, para lo cual
se hace completamente necesario el protocolo TCP/IP. El número IP que dispondrá como dirección el
ordenador del usuario final es suministrado por el proveedor (puede ser distinto cada vez que se establezca
una conexión) y será una dirección válida de Internet.
Por medio de Infovía se eliminan las diferencias de coste que pudieran existir entre las diferentes zonas de la
geografía nacional. Además de esto, los proveedores obtienen importantes beneficios cuando proporcionan
acceso a Internet a los usuarios.
Otras fuentes de información:
Todos los protocolos y estándares que se consolidan como propios de Internet han de ser organizados y
dirigidos de alguna manera. Esta es la misión principal del IETF (Internet Engineering Task Force), que es
una gran comunidad de carácter abierto formada por diseñadores de redes, operadores, usuarios, etc. Todos
los protocolos agrupados normalmente bajo el nombre TCP/IP son estándares de Internet cuyo desarrollo
depende del IETF. Las actividades que realiza el IETF se dividen en distintos grupos, llamados Working
Groups (WG) con finalidades específicas, los cuales se clasifican en distintas áreas comunes (Aplicaciones,
seguridad, estandarización, servicios de transporte, etc.). El IESG (Internet Engineering Steering Group) se
encarga de coordinar y dirigir al IETF por medio de los directores de área, que controlan las actividades
número de los Working Groups que se encuentren dentro de cada área.
Las tareas de coordinación de los números asignados a los distintos protocolos de Internet están a cargo de
IANA (Internet Assigned Numbers Authority). Los protocolos definidos por el IETF y su grupo de dirección
correspondiente IESG contienen ciertos valores tales como: direcciones de Internet, números de protocolos y
de puertos, nombres por dominio, etc. La funcionalidad de IANA está en que todos estos parámetros deben ser
únicos, y por tanto, debe existir un registro que controle los valores que se encuentran asignados.
Otra de las organizaciones de gran importancia para la comunidad de Internet es la Internet Society (ISOC).
Esta es una organización no gubernamental y sin intereses económicos formada por miles de profesionales
centrados en las soluciones y el progreso de Internet.
25
Internet Engineering Task Force (IETF)
Internet Assigned Numbers Authority (IANA)
Internet Society (ISOC)
http://www.ietf.org/
http://www.iana.org/iana/
http://www.isoc.org/
Request for Comments.
Los documentos denominados Request for Comments (RFC) contienen información de gran interés acerca de
Internet. Existen miles de estos documentos con información sobre cualquier aspecto relacionado con la red.
Los RFC comenzaron a funcionar sobre el año 1969 como un medio informal de intercambio de ideas entre la
comunidad investigadores de temas concernientes a las redes. Estos documentos se distribuían inicialmente de
forma impresa por correo convencional hasta que la transferencia de ficheros a través de FTP (File Transfer
Protocol) se comenzó a utilizar. Con el paso del tiempo los RFC se han convertido en una manera más oficial
de presentar los protocolos de Internet, aunque aún se crean algunos de estos documentos con carácter
únicamente informativo.
Los RFC se utilizan actualmente para fines de investigación y desarrollo de Internet por el Network Working
Group, y en ellos se documentan los protocolos y estándares ya existentes, o bien las propuestas de nuevos
protocolos o nuevas versiones de los actuales esperándose que se conviertan en un estándar. A cada RFC se le
asigna un número siempre distinto para poder identificarlo, incluso cuando un RFC ya existente se modifica o
actualiza se obtendrá un nuevo documento con su propio número exclusivo. Por este motivo y como las
revisiones se producen continuamente se hace necesario el uso de un índice en el que se puede encontrar el
número correspondiente a la última revisión de un determinado documento.
Cualquiera que lo desee puede elaborar un texto para que sea editado y publicado como un nuevo RFC por
medio de una persona que actúa como editor (consultar RFC 2200 para más información). Sin embargo, si lo
que pretende documentar en un nuevo RFC es un protocolo estándar o la propuesta correspondiente para ello,
primero se debe notificar al IESG (Internet Engineering Steering Group).
Para que un protocolo de Internet se convierta en un estándar debe pasar por una serie de estados o niveles. El
nivel de proposición de protocolo es asignado cuando un protocolo tiene posibilidades de convertirse en un
estándar en el futuro, siendo recomendables algunas pruebas y revisiones hasta que el IESG considere su
avance. Después del nivel de proposición el protocolo puede pasar a considerarse como un "borrador" (draft
standard). Esto sólo ocurrirá cuando hayan transcurrido al menos 6 meses desde el nivel anterior, permitiendo
de esta manera que la comunidad de Internet evalúe y considere el proceso de estandarización. Durante otros 4
meses el protocolo permanecerá en este nivel mientras se hacen pruebas y se analizan los comentarios
recibidos con la posibilidad de efectuar algún cambio. Finalmente, el protocolo puede llegar a convertirse en
un estándar oficial de Internet a través del IESG cuando su funcionalidad ha quedado suficientemente
demostrada.
El carácter abierto con que se trata a esta información sobre los aspectos de diseño de la red permite que
Internet evolucione y se desarrolle de una manera rápida y eficaz. Cualquiera puede tener acceso a todos los
RFC creados desde el comienzo, los cuales se conservan como información de consulta y registro.
Documentos de referencia.
Los documentos citados a continuación se han usado como referencia y fuente de información para elaborar el
presente documento. En el momento de escribir este texto todos ellos se encuentran disponibles a través de
Internet y pueden consultarse para obtener más información de la aquí expuesta:
• "Introduction to the Internet Protocols". Charles L. Hedrick (Rutgers University), 1987.
26
• "IP Next Generation Overview". Robert M. Hinden, 1995.
• RFC 768: "User Datagram Protocol". J. Postel, 1980.
• RFC 791: "Internet Protocol". J. Postel, 1981.
• RFC 792: "Internet Control Message Protocol". J. Postel, 1981.
• RFC 793: "Transmission Control Protocol". J. Postel, 1981.
• RFC 821: "Simple Mail Transfer Protocol". J. Postel, 1982.
• RFC 826: "An Ethernet Address Resolution Protocol". David C. Plummer, 1982.
• RFC 959: "File Transfer Protocol". J. Postel, J. Reynolds, 1985.
• RFC 1122: "Requirements for Internet Hosts −− Communication Layers". R. Braden, 1989.
• RFC 1180: "A TCP/IP Tutorial". T. J. Socolofsky, C. J. Kale, 1991.
• RFC 1603: "IETF Working Group Guidelines and Procedures". E. Huizer, D. Crocker, 1994.
• RFC 2151: "A Primer On Internet and TCP/IP Tools and Utilities". G. Kessler, S. Shepard, 1997.
• RFC 2200: "Internet Official Protocol Standards". J. Postel, 1997.
NOTA: La información que aquí se detalla se encontró en Internet, concretamente en la siguiente dirección:
http://www1.gratisweb.com/ivanherrera.
</script><!−− END Yahoo! Menu Service −−>
27
Descargar