CAPITULO II
MARCO TEÓRICO
CAPITULO II
MARCO TEORICO
¿QUÉ ES INTERNET? Internet representa una red pública de carácter académico-científico
(y recientemente también comercial) de dimensiones gigantescas. Internet
proviene de la antigua ARPAnet, una de cuyas finalidades era unir en red
a los investigadores para así permitir el acceso a computadoras remotas,
que no estuvieran disponibles en sus propias instituciones. ARPA
(Advanced Research Project Agency, adscrita al Departamento de
Defensa de los Estados Unidos) pensó que una red para conectar a
diferentes organizaciones sería menos costosa que adquirir un nuevo y
gran computadora para cada una de ellas. Las organizaciones podrían
usar la red para conectarse en las computadoras de las demás y transferir
los archivos entre ellas. Este enfoque influenció el nombre de los
elementos constituyentes de la red: las computadoras a los cuales se
conectaban los usuarios fueron llamados hosts (anfitriones), ya que las
personas de afuera podrían entrar como huéspedes. También influenció
la terminología del protocolo de red, ya que los procesos o las
computadoras con recursos a compartir fueron llamados servidores y los
procesos y computadoras que usaban esos recursos fueron llamados clientes.
Los servicios como ftp y telnet eran parte del plan original de la red y fueron
implementados inmediatamente después que los primeros nodos de ARPAnet
entraron en funcionamiento en 1969. El lenguaje utilizado en ARPAnet fue el
UNIX, que sigue siendo el más popular en ambiente académico. La facilidad de
correo electrónico que suministraba la red fue considerada secundaria, sin
embargo rápidamente se convirtió en una de sus características más populares.
Los científicos usaban ARPAnet para intercambiar ideas en forma espontánea y
casual; los estudiantes de postgrado discutían problemas con sus profesores
sin importar su ubicación física; los responsables de proyectos de investigación
usaban el correo electrónico para coordinar las actividades con los miembros
del proyecto y para estar en contacto con otros grupos de investigación y con
los entes que suministraban los fondos. De esta forma se formaba rápidamente
una comunidad compuesta por personas que raramente se veían cara a cara.
Si bien algunos administradores de red objetaban el correo electrónico porque
no lo consideraban como un uso legítimo de tiempo de máquina, la demanda
para mejores y más conexiones creció rápidamente. El correo electrónico es
extremadamente rápido en comparación con el servicio postal, (denigrado como
correo de caracol: snail mail) y se puede enviar un mensaje al otro lado del
globo en minutos. Los usuarios pronto descubrieron que a menudo querían
enviar el correo no únicamente a una persona específica, sino también a un
grupo de personas. Así surgieron las listas electrónicas, que fueron
implementadas usando el alias (seudónimo), esto es nombres que parecían
como nombres normales de un buzón electrónico, pero que eran luego
expandidos como una lista de direcciones de entrega.
El crecimiento de Internet fue acelerado por la aparición de la versión 4.2
del sistema operativo UNIX en 1983 y sus posteriores revisiones, las cuales
contenían la implementación del conjunto completo del TCP/IP (Transmission
Control Protocol/Internet Protocol) sin costo alguno, ya que su desarrollo se había
hecho con fondos públicos. Nuevas compañías, tales como SUN Microsystems, se
formaron para sacar ventaja de los avances tecnológicos. SUN desarrolló el NFS
(Network File System) que permite el acceso remoto a archivos como si fuese
local (a diferencia de ftp, donde el usuario debe transferir explícitamente el archivo
antes de usarlo localmente). El X Window System fue desarrollado por el Proyecto
Athena del MIT, cerca de 1984. Internet está evolucionando continua y
rápidamente. Los usuarios intercambian vía ftp archivos en formato postscript o
GIF y JPEG (que permiten gráficas), pero ya se han hecho pruebas para
transmitir aplicaciones con multimedia y existen formatos para transportar
mensajes que contengan imágenes, audio, vídeo al mismo tiempo que texto, tal
como MIME (Multipurpose Internet Mail Extensions) y HTML (Hypertext Markup
Language).
Internet ofrece cada día recursos más novedosos y herramientas más
fáciles de usar (archie, gopher, Mosaic, Netscape, etc.) para facilitar los servicios
que se ofrecen. Los protocolos de comunicación para los servicios básicos que se
consiguen en Internet (y en generales en redes de computadoras que trabajan en
ambiente TCP/IP) son:
� TELNET (TELecommunication NETwork): para efectuar sesiones desde
terminales remotos. Telnet permite que un usuario establezca enlace con una
computadora remota y los comandos desde el terminal del usuario pasa
directamente a la máquina remota como si hubiesen sido introducida en un
terminal de la propia máquina remota. Telnet también devuelve la salida de la
máquina remota al terminal del usuario. Esto permite, por ejemplo, correr
programas en un supercomputadora desde un sitio remoto donde no exista ese
equipo costoso.
� FTP (File Transfer Protocol): su propósito es transferir archivos de una
computadora a otro. FTP distingue 4 tipos de archivos: imagen, ASCII, EBCDIC
y archivos de byte lógico. Los archivos de imágenes son transferidos bit por bit,
sin cambio alguno. Los archivos ASCII se usan para intercambio de texto,
excepto entre ciertas computadoras IBM, en cuyo caso se usa EBCDIC y los
archivos de byte lógico son aquellos cuyo tamaño del byte no es de 8 bits.
� SMTP (Simple Mail Transfer Protocol): es la base para el correo electrónico.
SMTP fue diseñado para enviar mensajes que contienen sólo texto ASCII de 7
bits, lo cual crea problemas con el castellano, que usa los caracteres ASCII
extendidos de 8 bits para poder incluir las letras acentuadas y la ñ.
� SNMP (Simple Network Management Protocol): para la gestión de la red. SNMP
ha surgido como un estándar de facto para la administración y gestión de redes.
Esto tiene que ver con manejo de fallas, contabilidad, tasación, configuración,
inventario y seguridad.
El acceso y el uso de los servicios que ofrece Internet se han vuelto un tema de
moda tanto en ambiente académico como comercial, por lo cual existe en la
actualidad una abundante literatura, disponible gratuitamente en la propia red.
A los protocolos usados en Internet se les da una clasificación dentro de
dos grupos de categorías independientes. La primera categoría se refiere al
estado de normalización que indica si es ya una norma, o próximo a ser una
norma, o una sugerencia, o que está en estudio, o finalmente si es un protocolo
histórico (Standard, Draft Standard, Proposed, Experimental, Historic). La segunda
categoría es el estado del protocolo en si y puede ser obligatorio, recomendado,
electivo o finalmente rechazado (Required, Recommended, Elective, Not
Recomended). Toda la información acerca de TCP/IP e Internet, su operación, los
protocolos que se manejan, etc. está en unos documentos llamados
modestamente RFC (Request For Comments), disponibles en varios puntos de la
red. Se pueden pedir enviando un e-mail a [email protected], indicando que se
quiere el RFC-xxxx (Subject: send RFC-xxxx.TXT). Por ejemplo, el protocolo IP,
que viene descrito en el RFC-791, tiene la clasificación de Estándar Obligatorio
(Required Standard Protocol), lo cual denota que es una norma obligatoria de
cualquier usuario conectado a Internet. El protocolo TCP tiene la clasificación de
Estándar Recomendado (Recommended Standard), lo que indica que es una
norma recomendada para el acceso a Internet sin carácter obligatorio, pero el no
usarla puede afectar la operatividad de la red; TCP viene descrito en el RFC-793.
El FTP está descrito en el RFC-959 y TELNET en los RFC-854 y RFC-855.
TCP/IP es un stack o suite de protocolos de comunicación entre redes de
datos y fue desarrollado inicialmente por DARPA de los Estados Unidos a finales
de los años 70, para ser usado como soporte de la red de investigación Arpanet, la
cual a su vez posteriormente se convirtió en Internet. TCP/IP no está basado en el
modelo OSI (Open System Interconnection) ya que tiene más de 10 años de
adelanto y fue desarrollado para permitir que las computadoras de una red
pudieran trabajar en forma cooperativa y compartir sus recursos dentro de un
ambiente de red. TCP e IP son los dos más conocidos del grupo de protocolos
TCP/IP, de allí que todo el conjunto lleve tal denominación. Actualmente TCP/IP
se ha vuelto muy popular, principalmente para uso en redes locales y redes de
área amplia. De hecho, TCP/IP es muy utilizado en el campo militar en los Estados
Unidos, pero ahora es ya común en el sector comercial del mundo entero y los
fabricantes de computadoras y de equipos de área local están ofreciendo
productos basados en TCP/IP. Con el tiempo es posible que TCP/IP sea
suplantado por OSI, en primer lugar porque el concepto de estándar internacional
es actualmente ampliamente aceptado por usuarios y vendedores y en segundo
lugar TCP/IP es un conjunto de protocolos con menor funcionalidad que los
estándares OSI que evolucionan continuamente. Mientras tanto, ambos pueden
coexistir e interoperar utilizando routers a nivel de las capas superiores.
TCP/IP se usa extensamente en ambientes de investigación, universidades,
manufactura e ingeniería. Es un protocolo que fue concebido originalmente para
diseminar información a una comunidad muy dispersa y del mismo estilo. Pero
ahora, ya como un estándar de facto, se está usando ampliamente en redes
multiprotocolares. TCP/IP representa un conjunto relativamente estático de
protocolos que suministran sus funciones de una manera sencilla, práctica,
mientras que el estándar OSI es más complejo, con protocolos más densos, pero
con mayor funcionalidad, entre otras cosas porque los desarrollos en cada una de
sus capas evolucionan continuamente. Algunos de los protocolos de la familia
TCP/IP suministran los servicios de bajo nivel, correspondientes a las tres capas
inferiores del modelo OSI; estos incluyen TCP, UDP, ICMP, IP. Los otros
protocolos de la familia TCP/IP están orientados a las capas superiores, de
aplicación y presentación, y están dirigidos a tareas o servicios específicos como
correo electrónico, transferencia de archivos y acceso remoto.
El protocolo de red (IP) es del tipo sin conexión y fue diseñado para
manejar la interconexión del vasto número de redes que formaban Arpanet. El
protocolo de transporte (TCP) está orientado a conexión y está basado en el UNIX
de Berkeley y no hay capas de sesión y presentación. Se puede entonces decir
que IP es aproximadamente equivalente a la capa 3 del modelo OSI y TCP es
aproximadamente equivalente a la capa 4. La capa de acceso a la red enruta los
datos entre dos dispositivos en una misma red y en aquellos casos de que los dos
dispositivos estén en redes distintas se requieren procedimientos para permitir que
los datos atraviesen múltiples redes; esta es precisamente la función de la capa de
red y se usa el IP en esta capa para suministrar las funciones de enrutamiento a
través de las redes. El IP se implementa en cada computadora, terminal y
enrutador (router o gateway (siendo este último un dispositivo genérico de
interconexión). El IP acepta los datos del TCP en datagramas llamados PDU
(Protocol Data Unit) y los envía a través de los enrutadores necesarios hasta que
alcancen su destino. La dirección IP es de 32 bits y el tamaño máximo de un PDU
es de 65535 octetos (64KB). IP suministra un servicio de tipo sin conexión no
confiable, esto es, algunos PDUs puede que nunca lleguen a su destino o si llegan
puede que estén fuera de secuencia. Es función de TCP el asegurar la entrega
confiable de los datos, o sea que TCP suministra una forma confiable de
intercambio de datos entre procesos en diferentes computadoras. TCP asegura
que los datos sean entregados sin errores, en secuencia, sin pérdidas o
duplicaciones. TCP fue diseñado para operar sobre una amplia variedad de redes
y para suministrar un servicio de circuito virtual con transmisión ordenada y
confiable, es decir que está orientado a conexión y sirve como base para una
comunicación confiable sobre una red no tan confiable, donde puede ocurrir
pérdida, daño, duplicación, retardo y desordenamiento de los paquetes. Es un
protocolo algo complejo que tiene que resolver el caso de paquetes perdidos y
problemas patológicos (tal como el manejo de paquetes duplicados por retardos).
TCP posee su definición del concepto de paquete, llamado segmento, y permite
que sea de hasta 64 Kb. Se emplea un mecanismo de ACK positivo con retrans-
misión para corregir la pérdida de datos en las capas inferiores. Con este método
el transmisor retransmite los mismos datos a intervalos preestablecidos hasta que
le llega un ACK positivo. Por encima de TCP hay protocolos para distintos
servicios, tales como telnet, ftp, smtp, etc.,
Por debajo de IP se pueden utilizar distintos protocolos a nivel de enlace.
Por ejemplo HDLC, el ya viejo SLIP (Serial Line Interface Protocol) o el reciente
PPP (Point to Point Protocol) para WANs con conexiones punto a punto y
Ethernet para LANs. IP se puede también “encapsular” en X.25, frame relay y ATM
para así despacharlo sobre redes públicas de paquetes. En el punto de destino es
“desencapsulado”.
IP se limita a las funciones básicas necesarias para entregar un datagrama,
esto es un bloque de datos, a través de una inter-red. Cada datagrama IP es una
entidad independiente, sin relación con los otros datagramas. Como se ha dicho,
IP no asegura un servicio confiable; los nodos que reciben datagramas IP los
pueden desechar si no tienen en ese momento suficientes recursos disponibles
para su procesamiento y no están en capacidad de detectar datagramas perdidos
o desechados por la capa inferior. IP aísla los protocolos de capas superior de las
características específicas de la red y también acomoda el tamaño de los
paquetes de acuerdo a las restricciones de las redes intermedias. Los servicios
adicionales de IP incluyen características tales como precedencia, confiabilidad,
retardo y caudal. IP empaqueta los datos como un datagrama IP y lo pasa a la
capa inferior para su transmisión a través de la red. Cuando el punto de destino se
encuentra en otra red, el datagrama va primero a un router local, el cual a su vez
lo envía a través de la siguiente red al punto de destino (o a otro router). Así que
un datagrama se mueve de un módulo IP a otro hasta alcanzar el destino. Los
routers (también llamados routers IP) son efectivamente relés de datagramas que
interconectan 2 o más redes. Cada router contiene un módulo IP que usa reglas
para interpretar las direcciones y se toman decisiones de enrutamiento en base a
cada datagrama individual. El router debe decidir cuál red debe ser usada para el
datagrama que está en curso. También debe decidir si el punto de destino es en la
siguiente red (en cuyo caso el datagrama puede ser enviado directamente) o si
hay que despacharlo a otro router para que lo retransmita a una red distante. Así
que cada router debe adquirir información sobre otros routers y sobre las rutas
disponible para alcanzar cualquier otro nodo. Esta información se adquiere y se
mantiene dinámicamente de acuerdo a la conectividad instantánea que
suministran todos los routers de la red. Con los años se han ido desarrollando
varios protocolos de router a router que tratan de optimizar este intercambio de
información. Los datagramas IP en tránsito pueden atravesar una parte de la red
para la cual el tamaño máximo permitido para los paquetes es inferior al tamaño
del datagrama. Para manejar esta situación, IP posee un mecanismo de
fragmentación y reconstrucción de paquetes, es decir que los divide en pedazos
que sean de un tamaño apropiado a su transmisión. Pero estos fragmentos
pueden llegar fuera de orden, así que hay que re-ensamblarlos luego
correctamente.
Uno de los objetivos de TCP/IP es proveer servicios en un ambiente muy
heterogéneo, así que el mecanismo de direccionamiento ha sido diseñado para
permitir 3 clases distintas de posibles configuraciones de red. Las 3 clases de
dirección IP son las siguientes: Clase A: Muchas computadoras sobre pocas
redes; Clase B: Una distribución pareja de computadoras y redes; Clase C: Pocas
computadoras sobre muchas redes. Como ya se mencionó, las direcciones IP son
de 32 bits, agrupados en 4 octetos (4 grupos de 8 bits); estos octetos se
representan con números decimales separados por un punto (.). Los tres primeros
octetos de la dirección IP representan la sub-red y el último indica el host de dicha
subred que está en el servicio. Más específicamente, el primer octeto permite
identificar la clase y la clase A corresponde a un número entre 0 y 127, la clase B
a un número entre 128 y 191 y la clase C a un número entre 192 y 223. Por
ejemplo, una dirección clase A, agrupada en octetos, podría ser 10.1.17.1, ya que
10 corresponde a la clase A.
Es interesante comparar TCP/IP con X.25, ya que existen diferencias sutiles
e importantes entre ellos. Una primera diferencia tiene que ver con la forma de
asegurar la transferencia de datos. En X.25 se efectúa la detección y recuperación
de errores en la capa 2 y 3, ya que es un protocolo orientado a conexión. A nivel
de enlace, el protocolo LAPB garantiza que la transferencia correcta de datos
entre un terminal y el nodo al cual se conecta sea correcta. Cada pedazo de datos
transferido viene con su chequeo de errores y el receptor confirma la recepción de
cada trama. El protocolo a nivel de enlace usa temporizadores y algoritmos de
retransmisión que impiden la pérdida de datos y proveen recuperación automática
luego de fallas y reinicialización. La capa 3 también se encarga de detección y
recuperación de errores para los paquetes que se transfieren a través de la red,
usando chequeo, temporizadores y técnicas de retransmisión. Finalmente la capa
4 se debe a su vez ocupar de la confiabilidad de extremo a extremo. En contraste.
TCP/IP basa su estructura por capas en el principio de que la confiabilidad es sólo
un problema de extremo a extremo. La filosofía de su arquitectura es simple:
Construir la red interconectada de manera que pueda manejar la carga esperada,
pero permitir que los enlaces individuales o los nodos y terminales puedan perder
datos o dañarlos sin tratar de recuperarse continuamente. De hecho, hay poca o
ninguna confiabilidad en las capas inferiores a TCP, el cual en cambio se ocupa
en buena parte de la detección de errores y de la recuperación por esos errores.
La libertad resultante hace que TCP/IP sea mucho más fácil de entender e
implementar correctamente. Los routers intermedios pueden desechar
datagramas que resultan dañados por errores de transmisión, pueden desechar
datos que no pueden ser entregados o cuando su tasa de llegada excede la
capacidad de los buffers de entrada. Así mismo pueden enrutar datagramas a
través de rutas que posean mayor o menor retardo, sin informar de esto al punto
de origen o de destino. El tener enlace no confiables significa que algunos
datagramas no van a llegar. La detección de errores y la recuperación de pérdidas
de datagramas se efectúa entre la fuente y el destino, es decir de extremo a
extremo.
Otra diferencia resalta cuando se considera la supervisión y el control.
Como regla general, X.25 se basa en la idea que una red es un sistema que
provee un servicio de transporte. El proveedor de servicio controla el acceso a la
red y monitorea el tráfico para fines de tasación. Se ocupa también de los
problemas de enrutamiento, control de flujo y confirmación de recepción de datos,
garantizando que la transferencia de información sea confiable. Este punto de
vista deja muy poco que hacer a los terminales. Es decir que la red es un sistema
complejo, independiente, al cual uno le conecta terminales relativamente simples.
En contraste TCP/IP requiere que los terminales participan activamente en los
protocolos de red. Así que puede ser visto como un sistema relativamente simple
de red de paquetes a los cuales se conectan terminales inteligentes.
TCP/IP es comparable a la clase 4 de la capa de transporte OSI. En efecto,
la OSI ha definido 4 clases a nivel de dicha capa, desde TP0 a TP4. Esta gama de
sofisticación, de simple a compleja, es para poder operar en una amplia
variedades de ambientes. La más simple, TP0, asegura muy poco en lo que se
refiere a control de flujo y confiabilidad. Es para usarse en un ambiente como el de
X.25, donde la red subyacente ofrece un servicio orientado a conexión, confiable.
La más compleja, TP4, se asemeja a TCP. Se asume que la red subyacente sólo
suministra la entrega de paquetes en forma sin conexión, no confiable, con el
mejor esfuerzo. De manera que TP4 maneja el problema de datos perdidos,
control de flujo, gestión de ventanas de transmisión y de datos que llegan fuera de
secuencia.
Es oportuno mencionar que con protocolos completos como TCP/IP, el
caudal neto aprovechable en una red puede disminuir significativamente. Por
ejemplo, hoy día con TCP/IP sobre redes de fibra (FDDI) la transferencia de
archivos está limitada a unos 33 Mbit/s sobre el máximo teórico de 100 Mbit/s;
análogamente TCP/IP sobre Ethernet puede transferir a 1.5-6 Mbit/s sobre un
máximo teórico de 10 Mbit/s. Una de las fuentes de degradación con TCP/IP es la
sobrecarga presencia de los octetos en el header usados para direccionamiento y
control de errores. Este overhead puede producir una degradación apreciable del
rendimiento, que es más aparente si se usan paquetes pequeños. Otro ingrediente
es el retardo asociado con el cálculo de la suma de chequeo (checksum), usada
para verificar la integridad de los datos. En efecto, antes de que una estación
pueda enviar su paquete, debe primero calcular este checksum y añadirlo al
header del paquete. En el extremo opuesto, el nodo de destino debe hacer lo
mismo con el paquete recibido y luego comprobar si las sumas coinciden. Otra
fuente de degradación tiene que ver con el copiado repetitivo de datos, lo cual se
efectúa cada vez que un paquete es encapsulado en una nueva capa del
protocolo. De hecho, antes de que los datos de una aplicación puedan ser
trasmitidos, ellos deben ser procesados a diferentes niveles del protocolo. En una
red con TCP/IP donde se use FTP, por ejemplo, la aplicación de usuario (capas 6
y 7 OSI) envía un archivo a la capa FTP (capa 5 OSI), la cual subdivide los datos
en tramas y los envía a la capa TCP (capa 4 OSI), la cual a su vez los reformatea
como paquetes TCP. Este proceso se repite en la capa IP (capa 3 OSI) y en la
capa MAC (capa 2 OSI), la cual es responsable finalmente de transmitir los
paquetes sobre el medio físico (capa 1 OSI. El mismo proceso se efectúa en
sentido contrario cuando se recibe un paquete. El retardo asociado con el copiado
de paquetes a través de múltiples capas depende de muchos factores, incluyendo
la velocidad del procesador, la capacidad de memoria, el tamaño de los paquetes
y las características de la tarjeta de red en la computadora. Los paquetes que se
reciben fuera de orden (lo cual es un problema común en redes grandes con rutas
múltiples) también contribuyen al overhead. En muchas aplicaciones con TCP/IP,
la estación de destino monitorea una gama de paquetes dentro de una ventana,
identificados por su número de secuencia; si los paquetes asociados con una dada
comunicación no llegan a tiempo, la estación no va a aceptar ninguno de ellos y
todos los paquetes dentro de la ventana deben ser retransmitidos.
Con TCP/IP se están difundiendo las aplicaciones llamadas cliente-
servidor. El término servidor se aplica a cualquier servicio que pueda ser ofrecido
en la red. El servidor acepta las solicitudes que les llegan, efectúa su servicio y
devuelve el resultado al solicitante. Para los servicios más simples, cada solicitud
llega en un solo datagrama IP y el servidor devuelve su respuesta en otro
datagrama. Un programa que se ejecuta en una estación se vuelve un cliente
cuando envía una solicitud a un servidor y espera por una respuesta. Los
servidores pueden realizar tareas simples o complejas, por ejemplo un servidor del
tipo hora del día meramente regresa la hora actual cada vez que un cliente la
solicita. Un servidor de archivos recibe solicitudes para efectuar operaciones que
almacenan o devuelven información desde un archivo; el servidor efectúa la
operación y regresa el resultado. La arquitectura cliente-servidor permite compartir
bases de datos, impresoras y una variedad de otros periféricos y aplicaciones
(locales o remotas. Estos beneficios se obtienen sin importar que existan equipos
de diferentes marcas en la instalación. Así, los problemas de utilizar diferentes
protocolos y de ubicar los recursos remotos se vuelven transparentes para el
usuario. El resultado neto consiste en maximizar las opciones del usuario y el
rendimiento efectivo de la red, al mismo tiempo que se minimiza el tiempo de
respuesta del sistema y el tiempo requerido por los usuarios para localizar y
conectarse a los servicios deseados. La arquitectura cliente-servidor es más un
estilo de computación que una técnica particular. Es un estilo que trabaja con
muchas plataformas y en muchos ambientes. Si bien no existe una definición
precisa, hay algunos aspectos claves en este sistema: es transparente, lo cual
significa que cualquier usuario puede utilizar cualquier recurso de la red sin
importar el tipo de máquina y su ubicación; es distribuido, permitiendo que los
recursos de la red estén localizados donde sea más conveniente, por lo general
cerca de los usuarios principales y, por supuesto, está en red, requiriendo que las
aplicaciones utilicen los recursos de la red y cooperen con otras aplicaciones a lo
largo de toda la red. El concepto cliente-servidor ha ido surgiendo
simultáneamente con las redes ya que se presta muy bien a los sistemas de
computación distribuidos y heterogéneos. El propio término cliente-servidor implica
una aplicación distribuida; es más, las aplicaciones cliente-servidor abren nuevas
oportunidades de obtener el máximo provecho de la computación distribuida, pero
algunos expertos afirman que se requiere una mayor inter-operabilidad para
asegurar su éxito, tanto en términos de hardware que de software.
El sistema de correo electrónico utilizado en Internet se basa en el protocolo
SMTP (Simple Mail Transfer Protocol), descrito en los documentos RFC-821 y
RFC-822, aunque recientemente también se dispone del POP (Post Office
Protocol. Este correo permite un conjunto algo limitado de funcionalidades, pero
así se facilita la interconexión con otros sistemas. Se hará una descripción muy
general del protocolo SMTP partiendo del siguiente ejemplo, en el cual un usuario
de una computadora llamado TOPAZ localizado en la Universidad de Rutgers,
New Jersey, desea comunicarse con otro usuario de otra computadora (RED) en
la misma universidad para acordar la hora de una cita:
Date: Sat, 27 Jun 98 13:26:31 EDT
From: [email protected]
Subject: meeting
Let's get together Monday at 1pm.
En el RFC-822 se describe el formato del mensaje en sí. Se especifica que el
mensaje debe ser transmitido como un archivo ASCII (caracteres ASCII de 7 bits y
delimitación de líneas con carriage return/linefeed); estos archivos no contienen
caracteres especiales como símbolos, caracteres gráficos, vocales acentuadas,
etc., y son tratados en la generalidad de los programas como texto común. Los
mensajes de sistemas de correo privados deben transformarse a texto antes de
ser pasados a Internet. En el RFC-822 también se describe la estructura general
del mensaje, con las líneas del encabezado, una línea en blanco y finalmente el
cuerpo del mensaje. También se describen en detalle las líneas del encabezado,
cada una de las cuales consta de una palabra clave (Date: , From: , To: , Subject:)
y un valor. El RFC-821 describe la forma en que el mensaje se manda a otro
sistema. El programa debe determinar el enrutamiento del mensaje; primero se
pregunta, a un servidor de nombres, por las máquinas que manejan correo para el
dominio especificado y después se pregunta por la dirección Internet. Estas
direcciones son de 32 bits, agrupados en 4 octetos (4 grupos de 8 bits); estos
octetos se representan con números decimales separados por un punto (.), de
acuerdo al protocolo IP. Los tres primeros octetos representan la sub-red y el
último indica el host de dicha subred que está en el servicio. Para el ejemplo se
usará 128.6.4.2. A este nivel el programa de correo abre una conexión TCP al
puerto 25 en 128.6.4.2. El puerto 25 es usado para la recepción de correo, es la
ranura (slot) reconocida para conectarse al servidor de correo; en el caso de otros
servicios, como la transferencia de archivos (protocolo FTP), la conexión se abre
al puerto asignado, 21 es la ranura asignada al servidor FTP. Una vez establecida
la conexión, el programa de correo inicia los comandos de despacho, y se genera
una 'conversación' entre las máquinas conectadas que en el ejemplo presentado
puede lucir de la siguiente manera:
RED 220 RED.RUTGERS.EDU SMTP Service 29 Apr 98 05:17:18 EDT
TOPAZ HELO topaz.rutgers.edu
RED 250 RED.RUTGERS.EDU - Hello, TOPAZ.RUTGERS.EDU
TOPAZ MAIL From:<[email protected]>
RED 250 MAIL accepted
TOPAZ RCPT To:<[email protected]>
RED 250 Recipient accepted
TOPAZ DATA
RED 354 Start mail input; end whith <CRLF>.<CRLF>
TOPAZ Date: Thu, 27 Apr 98 13:26:31 EDT
TOPAZ From: [email protected]
TOPAZ To: [email protected]
TOPAZ Subject: meeting
TOPAZ
TOPAZ Let's get together Monday at 1pm.
TOPAZ .50 OKQUIT 21Service closing transmission channel
Todos los comandos entre las máquinas son texto ASCII, típico de los estándares
de Internet; estos comandos ASCII facilitan el monitoreo de la "conversación", así
como el diagnóstico y solución de ciertos problemas que puedan surgir en el
transcurso de la misma, permitiendo que los técnicos supervisores hagan pruebas
e interactúen directamente con el servidor de correos. Es de hacer notar que la
tendencia de los protocolos en la actualidad es a usar formatos binarios más
complejos, organizados en estructuras como los programas en Pascal o en C; esto
no resulta tan práctico pues su sintaxis requiere de un mayor análisis, sin embargo
también es cierto que se puede manejar un mayor número de comandos para
adaptarse a los nuevos servicios que prestan estos protocolos. Otro aspecto
interesante también típico de los protocolos de Internet, es que las respuestas en
la conversación entre las máquinas se inician con un número y después se
complementan con texto. El número indica que las respuestas posibles a las
requisiciones ya están definidas en el protocolo, y el programa usuario contesta
sin ambigüedad. El texto no tiene efecto en la operación de los programas y
normalmente se utiliza para monitorear la conversación. El protocolo define el
grupo de respuestas a un comando dado. En el formato sencillo del SMTP, el
primer dígito del número ya da información del tipo de respuesta, por ejemplo, el 2
indica un suceso, el 3 indica que es necesario una acción adicional; 4 es un error
temporal como que la unidad de almacenamiento esta llena y no se puede guardar
el mensaje. El 5 indica error permanente (como cuando no existe el usuario
receptor especificado. Los comandos permiten al programa de correo indicar al
servidor de correo, la información necesaria para la entrega de los mensajes; en
este ejemplo, la información se toma directamente del mensaje, pero en casos
más complejos esto no es lo mas seguro. Cada sesión comienza con HELO, que
da el nombre del sistema que inició la conexión. Luego se especifican quien
transmite y quienes reciben. Finalmente se manda los datos en sí. El fin de
mensaje se indica con una línea la cual se inicia con un punto (.). Después de que
el mensaje es aceptado, se puede mandar otro, o bien finalizar la sesión como se
ve en el ejemplo. En Internet y para facilitar su uso, las direcciones numéricas IP
se convierten en direcciones alfabéticas con un sistema llamado nombre del
dominio (domain name), que consiste de una secuencia de sub-nombres
separados por un punto. La denominación de las personas se indica con el
formato usuario@dominio, donde el usuario indica el código de identificación o de
acceso de la persona en esa computadora (login name), y el dominio indica la
máquina y su localización. El nombre del usuario no necesariamente es el de una
persona, pudiendo ser una lista de despacho o una organización. La descripción
completa de la forma de denominación dentro de Internet está en el RFC-819. La
denominación completa es lo que se conoce como FQDN (Fully Qualified Domain
Name. La cola del dominio puede ser una de las siguientes abreviaciones:
� com si se trata de una compañía o institución comercial (Convex Computer se
denominaría convex.com)
� edu si es una institución educativa (la Universidad de Yale sería yale.edu)
� gov institución gubernamental (la NASA sería nasa.gov)
� mil organismo militar (la fuerza aérea en EE.UU. sería af.mil)
� net Centro de administración de una red (la National Science Foundation es
nsf.net)
� org dominio reservado para otras organizaciones privadas (The Institute of
Electrical and Electronics Engineers es ieee.org.
A cada país se le asigna también unas siglas: au (Australia), ca (Canadá), fr
(Francia), uk (Inglaterra), ve (Venezuela). Así, el nombre del dominio asignado a la
UCV es: ucv.edu.ve (si bien se discute si edu deba ir) y un usuario de una
computadora denominado sagi conectado al Internet quedaría completamente
identificado por: [email protected]. Las direcciones Internet asignadas por
el NIC (Network Information Center) a la Universidad Central de Venezuela son
clase B, comenzando con la 150.185.64.1 hasta la 150.185.95.254. Con esta
gama se pueden tener 8.128 direcciones locales, esto es 32 sub-redes (desde 64
hasta 95) con 254 hosts en cada sub-red. A la Facultad de Ingeniería le
corresponden las direcciones entre 150.185.84.1 y 150.185.86.254. Todos las
computadoras de Internet pueden denominarse tanto por su dirección IP como por
su denominación FQDN siendo esta última más amigable al usuario. Otra
posibilidad de indicar una dirección es usando el formato del protocolo UUCP
(Unix to Unix Copy Program) que usa el símbolo ! en vez de @; este
direccionamiento es más restrictivo pues implica la pertenencia a UUCPnet, pero
facilita el enrutamiento. También se puede indicar un enrutamiento alternativo de
los mensajes usando el símbolo % cuando se necesita mezclar los formatos
Internet estándar y UUCP.
La tasa de crecimiento de Internet ha sido exponencial y a partir de 1987 el
número de redes conectadas se fue duplicando cada año. Se ha vuelto así una
red de redes que une millones de computadoras en centenares de países
alrededor del mundo. Su expansión es tan rápida que su tamaño real y sus
recursos solo pueden estimarse. Científicos, estudiantes, funcionarios públicos y
hasta senadores y diputados, usan Internet como su medio de comunicación
favorito (después del teléfono. Los investigadores intercambian datos científicos,
los estudiantes perfeccionan su educación, los funcionarios públicos se comunican
con otros que trabajan en proyectos con financiamiento gubernamental.
Actualmente Internet está administrada por el IAP (Internet Activity Board) y está
principalmente asociada con la NSF (National Science Foundation). Pero ya existe
la CIX (Commercial Internet Exchange), que es una asociación de proveedores
comerciales de Internet. La conectividad de Internet es actualmente un servicio
que puede ser adquirido en el mercado como cualquier otro servicio. El uso de
Internet por parte de organizaciones comerciales ha sido exitoso: más del 60% de
los sitios registrados son organizaciones comerciales (.COM) y se espera que
alcancen pronto el 90%. Se predice que, bajo condiciones favorables, Internet
tendría más de 100 millones de usuarios para 1998.
Internet está basada en protocolos abiertos de comunicación que permiten
la inter-operación de todas las redes, incluyendo distintas arquitecturas, así como
la transmisión en cualquier medio físico. A través de Internet se conectan otras
redes académicas como BITNET (Because It's Time NETwork), NSFNET (National
Sciences Foundation NETwork), JVNCNET (John Von Neuman Computer
NETwork), MILNET (MILitary NETwork), UUCPNET (Unix to Unix Copy Program
NETwork) dentro de los Estados Unidos y otras como EUNET a través de Europa,
ARISTOTE en Francia, NORDUNET de los países nórdicos, JUNET en Japón,
ACSNET en Australia y Nueva Zelandia y muchísimas más.
El backbone (espina dorsal) de Internet era hasta poco NSFNET, una red
que interconecta numerosos centros de supercomputadoras en Estados Unidos. El
backbone cruzaba el País usando líneas dedicadas a 56 kbit/s. Ahora las líneas
operan a velocidad de 1.5 Mbit/s y se están elevando a 45 Mbit/s. Las velocidades
de las redes que utilizan Internet empiezan a ser insuficientes para estas
aplicaciones y para el tráfico en continuo aumento. Por tal razón en los Estados
Unidos está surgiendo una nueva red, llamada NREN (National Research and
Educational Network), que está prevista para usar velocidades tan altas como 622
Mbit/s hasta 2.5 Gbit/s. Ya se están desarrollando aplicaciones para explotarla,
usando tecnologías avanzadas como SONET y ATM. NREN es uno de los 4
componentes del programa HPCC (High Performance Computing and
Communications), financiado por el gobierno federal norteamericano y cuya
función es impulsar la investigación y el desarrollo de sistemas de computación
avanzados, tecnologías de software y algoritmos, investigación básica y nuevos
servicios. El presupuesto de HPCC para 1993 fue de 803 millones de dólares, de
los cuales 122 millones son para NREN.
FAMILIA DE PROTOCOLOS TCP/IP
Protocolos: Establecen una descripción formal de los formatos que
deberán presentar los mensajes para poder ser intercambiados por equipos
de cómputo; además definen las reglas que ellos deben seguir para lograrlo.
Los protocolos están presentes en todas las etapas necesarias para
establecer una comunicación entre equipos de cómputo, desde aquellas de más
bajo nivel (e.g. la transmisión de flujos de bits a un medio físico) hasta aquellas de
más alto nivel (e.g. el compartir o transferir información desde una computadora a
otra en la red.
Tomando al modelo OSI (Open Systems Interconection) como referencia
podemos afirmar que para cada capa o nivel que él define existen uno o más
protocolos interactuando. Los protocolos son entre pares (peer-to-peer), es decir,
un protocolo de algún nivel dialoga con el protocolo del mismo nivel en la
computadora remota.
Conjunto de Protocolos TCP/IP
Origen
Desarrollados como parte del proyecto DARPA a mediados de los 70´s, dando
lugar a la red ARPANET.Su objetivo fue que computadoras
cooperativas compartieran recursos mediante una red de comunicaciones.
ARPANET deja de funcionar oficialmente en 1990.
En 1973, la Agencia de Proyectos de Investigación Avanzada para la
Defensa (DARPA), de los Estados Unidos, inició un programa para la investigación
de tecnologías que permitieran la transmisión de paquetes de información entre
redes de diferentes tipos y características. El proyecto tenía por objetivo la
interconexión de redes, por lo que se le denominó "Internetting", y a la familia de
redes de computadoras que surgieron de esta investigación se le denominó
"Internet".
Los protocolos desarrollados se denominaron el Conjunto de Protocolos
TCP/IP, que surgieron de dos conjuntos previamente desarrollados; los Protocolos
de Control de Transmisión (Transmition Control Protocol) e Internet (Internet
Protocol.
Conjunto de Protocolos TCP/IP
Su relación con el Modelo OSI
TCP = TRANSFER CONTROL PROTOCOL
IP = INTERNET PROTOCOL
En la actualidad, las funciones propias de una red de computadoras pueden
ser divididas en las siete capas propuestas por ISO para su modelo de sistemas
abiertos (OSI). Sin embargo la implantación real de una arquitectura puede diferir
de este modelo. Las arquitecturas basadas en TCP/IP proponen cuatro capas en
las que las funciones de las capas de Sesión y Presentación son responsabilidad
de la capa de Aplicación y las capas de Liga de Datos y Física son vistas como la
capa de Interface a la Red. Por tal motivo para TCP/IP sólo existen las capas
Interface de Red, la de Intercomunicación en Red, la de Transporte y la de
Aplicación. Como puede verse TCP/IP presupone independencia del medio físico
de comunicación, sin embargo existen estándares bien definidos al nivel de Liga
de Datos y Físico que proveen mecanismos de acceso a los diferentes medios y
que en el modelo TCP/IP deben considerarse la capa de Interface de Red; siendo
los más usuales el proyecto IEEE802, Ethernet, Token Ring y FDDI.
Modelo de capas de TCP/IP
Descripción del Modelo de Capas de TCP/IP
Capa de Aplicación.
Invoca programas que acceden servicios en la red. Interactuan con uno o
más protocolos de transporte para enviar o recibir datos, en forma de
mensajes o bien en forma de flujos de bytes.
Capa de Transporte.
Provee comunicación extremo a extremo desde un programa de aplicación
a otro. Regula el flujo de información. Puede proveer un transporte confiable
asegurándose que los datos lleguen sin errores y en la secuencia correcta.
Coordina a múltiples aplicaciones que se encuentren interactuando con la red
simultáneamente de tal manera que los datos que envíe una aplicación sean
recibidos correctamente por la aplicación remota, esto lo hace añadiendo
identificadores de cada una de las aplicaciones. Realiza además una verificación
por suma, para asegurar que la información no sufrió alteraciones durante su
transmisión.
Capa Internet.
Controla la comunicación entre un equipo y otro, decide qué rutas deben
seguir los paquetes de información para alcanzar su destino. Conforma los
paquetes IP que será enviados por la capa inferior. Desencapsula los paquetes
recibidos pasando a la capa superior la información dirigida a una aplicación.
Capa de Interface de Red.
Emite al medio físico los flujos de bit y recibe los que de él provienen.
Consiste en los manejadores de los dispositivos que se conectan al medio de
transmisión.
Arquitectura de Interconexión de Redes en TCP/IP
Metas
Independencia de tecnología de conexión a bajo nivel y la arquitectura de la
computadora.
q Conectividad Universal a través de la red.
q Reconocimientos de extremo a extremo.
q Protocolos de Aplicación Estandarizados.
Características
q Protocolos de no-conexión en el nivel de red.
q Conmutación de paquetes entre nodos.
q Protocolos de transporte con funciones de seguridad.
q Conjunto común de programas de aplicación.
Interconexión de Redes
Las redes se comunican mediante compuertas. Todas las redes son vistas
como iguales.
Para entender el funcionamiento de los protocolos TCP/IP debe tenerse en
cuenta la arquitectura que ellos proponen para comunicar redes. Tal arquitectura
ve como iguales a todas las redes a conectarse, sin tomar en cuenta el tamaño de
ellas, ya sean locales o de cobertura amplia. Define que todas las redes que
intercambiarán información deben estar conectadas a una misma computadora o
equipo de procesamiento (dotados con dispositivos de comunicación); a tales
computadoras se les denominan compuertas, pudiendo recibir otros nombres
como enrutadores o puentes.
Direcciones IP
q Longitud de 32 bits.
q Identifica a las redes y a los nodos conectados a ellas.
q Especifica la conexión entre redes.
q Se representan mediante cuatro octetos, escritos en formato decimal,
separados por puntos.
Para que en una red dos computadoras puedan comunicarse entre sí ellas
deben estar identificadas con precisión Este identificador puede estar definido en
niveles bajos (identificador físico) o en niveles altos (identificador lógico) de
pendiendo del protocolo utilizado. TCP/IP utiliza un identificador denominado
dirección Internet o dirección IP, cuya longitud es de 32 bytes. La dirección IP
identifica tanto a la red a la que pertenece una computadora como a ella misma
dentro de dicha red.
Clases de Direcciones IP
Clases Número de Redes Número de Nodos Rango
A 127 16,777,215 1.0.0.0 a la 127.0.0.0
B 4095 65,535 128.0.0.0 a la 191.255.0.0
C 2,097,151 255 192.0.0.0 a la 23.255.255.0
Tomando tal cual está definida una dirección IP podría surgir la duda de
cómo identificar qué parte de la dirección identifica a la red y qué parte al nodo en
dicha red. Lo anterior se resuelve mediante la definición de las "Clases de
Direcciones IP". Para clarificar lo anterior veamos que una red con dirección clase
A queda precisamente definida con el primer octeto de la dirección, la clase B con
los dos primeros y la C con los tres primeros octetos. Los octetos restantes
definen los nodos en la red específica.
Protocolo Internet (IP)
Características
q Protocolo orientado a no-conexión.
q Fragmenta paquetes si es necesario.
q Direccionamiento mediante direcciones lógicas IP de 32 bits.
q Si un paquete no es recibido, este permanecerá en la red durante un tiempo
finito.
q Realiza el "mejor esfuerzo" para la distribución de paquetes.
q Tamaño máximo del paquete de 65635 bytes.
q Sólo ser realiza verificación por suma al encabezado del paquete, no a los
datos éste que contiene.
El Protocolo Internet proporciona un servicio de distribución de paquetes de
información orientado a no-conexión de manera no fiable. La orientación a no-
conexión significa que los paquetes de información, que será emitido a la red, son
tratados independientemente, pudiendo viajar por diferentes trayectorias para
llegar a su destino. El término no fiable significa más que nada que no se garantiza
la recepción del paquete.
Formato del Datagrama de IP
Campo Descripción
VERS Versión del IP del datagrama
HLEN Longitud del Encabezado
Longitud Total Mide, en Bytes la longuitud del datagrama
Identificador Identifica los paquetes fragmentados para su
reensamble
Flags Indica si el paquete está fragmentado o no
Offset Indica la ubicación de este paquete en uno
fragmentado
Opciones Información usada par administración,
longitud variable
Relleno Ajusta las opciones a 32bits
La unidad de información intercambiada por IP es denominada datagrama.
Tomando como analogía los marcos intercambiados por una red física los
datagramas contienen un encabezado y una área de datos. IP no especifica el
contenido del área de datos, ésta será utilizada arbitrariamente por el protocolo de
transporte.
Unidad Máxima de Transferencia MTU (Máximum Transfer Unit)
Indica la longitud de una trama que podrá ser enviada a una red física en
particular. Es determinada por la tecnología de la red física. Para el caso de
Ethernet es de 1500 bytes.
La Unidad de Transferencia Máxima determina la longitud máxima, en
bytes, que podrá tener un datagrama para ser transmitida por una red física.
Obsérvese que este parámetro está determinado por la arquitectura de la red:
para una red Ethernet el valor de la MTU es de 1500 bytes. Dependiendo de la
tecnología de la red los valores de la MTU pueden ir desde 128 hasta unos
cuantos miles de bytes.
Protocolo de Mensajes de Control de Internet ICMP (Internet Control
Message Protocol)
q Reporta sobre destinos inalcanzables.
q Control de flujo de datagramas y congestión.
q Controla el requerimiento de cambio de rutas entre compuertas.
q Detecta rutas circulares o excesivamente largas.
q Verifica la existencia de trayectorias hacia alguna red y el estatus de la
misma.
Su función es la de notificar de eventos en los que los paquetes enviados
no alcanzaron su destino. Proporciona un medio de transporte para que los
equipos compuerta se envíen mensajes de control y error. ICMP no está orientado
a la corrección de errores, sólo a su notificación.
Formato del mensaje ICMP
Tipo Mensaje ICMP
0 Respuesta al eco
3 Destino Inalcanzable
4 Fuente saturada
5 Redirección de ruta
8 Solicitud de Eco
11 Tiempo del datagrama excedido
12 Parámetro problema en datagrama
13 Requerimiento de hora y fecha
14 Respuesta de host y fecha
17 Requerimiento de mascara de dirección
18 Respuesta de mascara de dirección
El formato de ICMP cambia dependiendo de la función que realice,
exceptuando los campos de Tipo, Código y de Checksum. Un 1 en el campo de
Protocolo del mensaje de IP indicará que se trata de un datagrama ICMP. La
función de un mensaje determinado ICMP estará definida por el campo de Tipo; el
campo de Código proporciona información adicional para realizar la función; el
campo de Checksum sirve para efectuar una verificación por suma que sólo
corresponde al mensaje ICMP.
Protocolo de Control de Transferencia
Proporciona comunicación bidireccional completa mediante circuitos
virtuales. Desde el punto de vista del usuario la información es transmitida por
flujos de datos. Confiabilidad en la transmisión de datos por medio de:
q Asignación de números de secuencia a la información segmentada.
q Validaciones por suma.
q Reconocimiento de paquetes recibidos.
q Utiliza el principio de ventana deslizable para esperar
reconocimientos y reenviar información.
Proporciona un mecanismo fiable para la transferencia de flujos de
información. Aunque está íntimamente relacionado con IP TCP es un protocolo
independiente de propósito general. Al ser un protocolo de alto nivel su función es
que grandes volúmenes de información lleguen a su destino correctamente,
pudiendo recobrar la pérdida esporádica de paquetes.
Fiabilidad en la transferencia de TCP
Cada vez que un paquete es enviado se inicializa un contador de
tiempo, al alcanzar el tiempo de expiración, sin haber recibido el reconocimiento,
el paquete se reenvía. Al llegar el reconocimiento el tiempo de expiración se
cancela.
A cada paquete que es enviado se le asigna un número de identificador, el
equipo que lo recibe deberá enviar un reconocimiento de dicho paquete, lo que
indicará que fue recibido. Si después de un tiempo dado el reconocimiento no ha
sido recibido el paquete se volverá a enviar. Obsérvese que puede darse el caso
en el que el reconocimiento sea el que se pierda, en este caso se reenviará un
paquete repetido.
Protocolo de Datagramas de Usuario
q Proporciona de mecanismos primordiales para que programas de
aplicación de se comuniquen con otros en computadoras remotas.
q Utiliza el concepto de puerto para permitir que múltiples conexiones
accedan a un programa de aplicación.
q Provee un servicio no confiable orientado a no-conexión.
q El programa de aplicación tiene la total responsabilidad del control de
confiabilidad, mensajes duplicados o perdidos, retardos y paquetes
fuera de orden.
Este protocolo deja al programa de aplicación a ser explotado la
responsabilidad de una transmisión fiable. Con él puede darse el caso de que los
paquetes se pierdan o bien no sean reconstruidos en forma adecuada. Permite un
intercambio de datagramas más directo entre aplicaciones y puede elegirse para
aquellas que no demanden una gran cantidad de datagramas para operar
óptimamente.