Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cómo una aplicación que se ejecuta en un sistema terminal instruye a Internet para entregar datos a otro programa que
se ejecuta en otro sistema terminal?
Los sistemas terminales conectados a Internet proporcionan una API (Application Programming Interface), que
especifica como un programa de software que se ejecuta en un sistema terminal pide a la infraestructura de Internet
que suministre datos a un programa de software de destino especifico que se ejecuta en otro sistema terminal. La API
de Internet consta de un conjunto de reglas que el programa que transmite los datos debe cumplir para que Internet
pueda entregar esos datos al programa de destino. Esto puede compararse con el proceso de envío de una carta. Para
ello, es necesario introducir la carta en un sobre, escribir el nombre completo del destinatario, dirección y código
postal, su dirección, pegar la estampilla y dejarla en el buzón. Luego, el servicio postal de correos tiene su propia “API
de servicio postal”, es decir, su propio conjunto de reglas, que se debe seguir para que el servicio de correos entregue
la carta. De forma similar, Internet tiene una API que el programa que enviá los datos debe seguir para que Internet
entregue los datos al software que los recibirá. Por supuesto, el servicio de correos proporciona mas de un servicio a
sus clientes, como correo urgente, acuse de recibo, correo ordinario, etc. Del mismo modo, Internet proporciona
múltiples servicios a sus aplicaciones. Cuando desarrolle una aplicación de Internet, también tendrá que seleccionar
uno de los servicios de Internet para su aplicación. Esta segunda descripción de Internet, una infraestructura que
permite proporcionar servicios a aplicaciones distribuidas, es muy importante. Cada vez mas, las necesidades de las
nuevas aplicaciones están dirigiendo los avances de los componentes esenciales de Internet. Por tanto, es importante
tener presente que Internet es una infraestructura en la que se están
inventando e implementando constantemente nuevas aplicaciones.
TOPOLOGÍAS (formas en que está diseñada la red, sea en el plano físico o lógico. )→
⭘ BUS (cable coaxil): Cable con un terminador en cada extremo del que se cuelgan todos los elementos de una red.
Todos los nodos de la red están unidos a ese cable (Backbone cable). En esta topología, los elementos que constituyen
la red se disponen linealmente, es decir, en serie y conectados por medio de un cable; el bus. Las tramas de
información emitidas por un nodo (terminal o servidor) se propagan por todo el bus(en ambas direcciones), alcanzado
a todos los demás nodos. Cada nodo de la red se debe encargar de reconocer la información que recorre el bus, para
así determinar cual es la que le corresponde, la destinada a él. Un fallo en un nodo no provocaría la
caída de la red, pero toda la red se caería se hubiera una ruptura en el cable principal, y es difícil
detectar el origen de un problema cuando toda la red cae, ya que depende de la longitud del cable y la
cantidad de terminales conectadas a él.
• Se requiere terminadores.
⭘ ESTRELLA: En una topología estrella, todos y cada uno de los nodos de la red se conectan a un concentrador o
hub. Los datos en estas redes fluyen del emisor hasta el concentrador, este realiza todas las funciones de la red,
además actúa como amplificador de los datos. Todos los elementos de la red se encuentran conectados directamente
mediante un enlace punto a punto al nodo central de la red. Evidentemente, todas las tramas de información que
circulen por la red deben pasar por el nodo principal, con lo cual un fallo en él provoca la caída de todo el sistema. Por
otra parte, un fallo en un determinado cable sólo afecta al nodo asociado a él.
Ventajas de la Topología Estrella:
• Gran facilidad de instalación
• Posibilidad de desconectar elementos de red sin causar problemas.
• Facilidad para la detección de fallo y su reparación.
Desventajas de la Topología de Estrella.
• Requiere más cable que la topología de BUS.
• Un fallo en el concentrador provoca el aislamiento de todos los nodos a él
conectados.
• Se deben comprar hubs o concentradores.
La LAN Ethernet original fue inventada a mediados de 1970 (Metcalfe y Boggs). LAN Ethernet original utilizaba un
bus coaxial para interconectar los nodos. La topología BUS se mantuvo vigente durante 1980 y mediados de 1990.
Ethernet con una topología de bus es una LAN de difusión (todas las tramas transmitidas viajan hasta todos los
adaptadores conectados al bus y son procesadas en ellos).
A finales de 1990, las redes LAN se reemplazaron en su mayoría
por instalaciones Ethernet utilizando topologías en estrella basadas
en concentradores (hubs). En tal instalación los hosts (y los
routers) están directamente conectados a un concentrador
mediante un cable de cobre de par trenzado. Un concentrador es
un dispositivo de la capa física que actúa sobre los bits
individuales en lugar de sobre las tramas. Cuando un bit, que
representa un cero o un uno, llega procedente de una interfaz, el concentrador simplemente vuelve a crear el bit,
incrementa su intensidad de energía y lo transmite a todas las demás interfaces. Por tanto, Ethernet con una topología
de estrella basada en concentrador es también una red LAN de difusión (cuando un concentrador recibe un bit en una
de sus interfaces, envía una copia al resto de sus interfaces). Esta topología contiene swtiches activos en el centro, y
cada vínculo host-switch se encuentra aislado del resto de los vínculos Ethernet (los nodos o hosts no colisionan entre
ellos). En particular, si un concentrador recibe tramas procedentes de dos interfaces distintas al mismo tiempo, se
produce una colisión y los nodos que crean las tramas tendrán que retransmitirlas.
A principios de la década del 2000, Ethernet experimentó un cambio evolutivo aún mayor. Las instalaciones Ethernet
continuaron utilizando una topología en estrella, pero el concentrador central fue reemplazado por un conmutador
(switch). Por el momento, solo mencionaremos que un conmutador no es solo un dispositivo sin colisiones, sino que
también lleva a cabo la conmutación de paquetes mediante un almacenamiento y reenvío pero, a diferencia de los
routers, que operan hasta la capa 3, un conmutador opera solo hasta la capa 2. Las redes LAN Ethernet modernas
utilizan una topología en estrella, estando cada nodo conectado a un Switch central. La funcion de un Switch es recibir
las tramas de la capa de enlace entrantes y reenviarlas a los enlaces de salida (entre otras funciones descriptas más
adelante). El propio Switch es transparente para los nodos; es decir, un nodo dirige una trama a otro nodo (en lugar de
dirigirla al Switch) y la envía a la red LAN, sin ser consciente de que un Switch recibirá la trama y la reenviara a los
demás nodos. La velocidad a la que llegan las tramas a cualquiera de las interfaces de salida del Switch puede ser
temporalmente mayor que la capacidad del enlace de dicha interfaz. Para enfrentarse a este problema, las interfaces de
salida del Switch disponen de buffers, de forma muy parecida a como las interfaces de salida de un router disponen de
buffers para los datagramas.
TOPOLOGÍA STORE AND FORWARD → Cómo ocurren las pérdidas y demoras? Los paquetes son encolados en
la memoria de cada router, y esperan por su turno. La tasa de arribo de paquetes puede exceder la capacidad de salida
del enlace. Existe cuatro fuentes de demora en los paquetes:
1) Demora de procesamiento en el nodo: chequeo de bits de error, determinar el enlace de salida.
2) Demora de encolamiento: tiempo esperado en la cola para que los paquetes anteriores sean transmitidos. Tiene
dependencia del nivel de congestión del router.
3) Demora de transmisión: tiempo de envío = L/R (L: largo del paquete (bits) R: tasa de bits del enlace (bps)).
4) Demora de propagación = D/S (D: largo del enlace
físico S: rapidez de propagación en medio ((~2x108
m/sec))).
¿Cuáles son las demoras reales en Internet y las rutas de los paquetes?
Programa traceroute (seguimiento de los saltos de la terminal origen al destino): entrega medidas del retardo de ida y
vuelta desde el terminal de origen hacia cada router en la ruta al destino en Internet (en windows tracert como en trace
route).
Para cada router i: 1°)manda tres paquetes que van a llegar al router i en la ruta hacia el destino 2°)router i le devuelve
paquetes de información a la terminal origen 3°)terminal de origen mide el intervalo entre transmisión y respuesta.
Perdida de paquetes → El buffer de cola en conmutadores tiene capacidad finita, y cuando un paquete llega a una
cola llena, el paquete es descartado (pérdida). Los paquetes perdidos pueden ser retransmitidos por nodo previo (caso
wifi) o por el computador fuente (caso TCP), o bien no retransmitidos nunca (caso Ethernet en capa enlace y también
UDP capa transporte).
Throughtput (rendimiento) tasa (bits/unidad de tiempo) al cual bits son transferidos entre transmisor y receptor.
- Instantáneo: tasa en un punto dado del tiempo
- Promedio: tasa sobre largos periodos
- Cuello de botella: enlace que limita el throughput extremo a extremo
ESTRUCTURA DE RED Se compone de tres conceptos: red periférica (network edge), red central/interna
(network core) y redes de acceso. Para ahondar en los componentes de una red de computadoras (y de Internet, en
concreto), se comienza considerando la frontera de una red ( componentes con los que estamos mas familiarizados, es
decir, las computadoras, las PDA, los teléfonos móviles, etc.). Recuerde de la sección anterior que en la jerga de las
redes informáticas, las computadoras y el resto de los dispositivos conectados a Internet a menudo se designan como
sistemas terminales, porque se sitúan en la frontera de Internet. Entre los sistemas terminales de Internet se incluyen
las computadoras de escritorio (por ejemplo, PC de escritorio, computadoras Mac y equipos Linux), servidores (por
ejemplo, servidores web y de correo electrónico) y equipos móviles (por ejemplo, computadoras portátiles,
dispositivos PDA y teléfonos con conexiones a Internet inalámbricas). Los sistemas terminales también se conocen
como hosts, ya que albergan (es decir, ejecutan) programas de aplicación tales como navegadores web, servidores
web, programas de lectura de mensajes de correo electrónico o servidores de correo electrónico. Todo lo relacionado
a aplicaciones y hosts forma parte del componente ‘Red periférica’ (network edge). Además de contar con terminales
(hosts), las cuales corren programas/aplicaciones (web, mail, chat) y se encuentran en la periferia de la red, dentro de
este componente existen diversos modelos de aplicaciones.
Modelo cliente/servidorTerminales clientes piden servicios y los reciben de los servidores “always on”. Un
programa cliente es un programa que se ejecuta en un sistema terminal que solicita y recibe un servicio de un
programa servidor que se ejecuta en otro sistema terminal. La Web, el correo electrónico, la transferencia de
archivos, las sesiones remotas, los grupos de noticias y muchas otras aplicaciones populares adoptan el modelo
cliente-servidor. Puesto que un programa cliente normalmente se ejecuta en una computadora y el programa servidor
en otra, las aplicaciones Internet cliente-servidor son, por definición, aplicaciones distribuidas. El programa cliente
y el programa servidor interactúan enviándose entre si mensajes a traves de Internet. En este nivel de abstracción, los
routers, los enlaces y los restantes componentes de Internet sirven de forma colectiva como una caja negra que
transfiere mensajes entre los componentes distribuidos entre los que se establece la comunicacion de una aplicacion de
Internet.
Modelo peer-to-peer Uso mínimo de servidores dedicados (e.g Gnutella, KaZaA, etc.). Cada vez mas aplicaciones
son aplicaciones entre iguales o entre pares (P2P, Peer-to-Peer), en las que los sistemas terminales interactuan y
ejecutan programas que realizan tanto funciones de cliente como de servidor. Por ejemplo, en las aplicaciones de
comparticion de archivos P2P (como BitTorrent y eMule), el programa disponible en el sistema terminal del usuario
actua como cliente cuando solicita un archivo a un par y como servidor cuando envia un archivo a otro par.
Modelos híbridos Mezcla de los dos previos.
FIBRA HASTA LA CASA (FIBER-TO-THE-HOUSE)(tasas actuales: Bajada 50 Mbps, subida 25 Mbps) Posee mucha
mayor capacidad que par telefónico y cable coaxial. Existen varias tecnologías: - Fibra dedicada desde una oficina
central del proveedor a cada casa. - Fibra compartida y luego fibras individuales al acercarse a casa. CAMPUS
UNIVERSITARIOS Y CORPORATIVOS normalmente se utiliza una red de area local(LAN, Local Area Network) para
conectar un sistema terminal al router de frontera. Con acceso Ethernet, normalmente los usuarios disponen de
velocidades de acceso de 100 Mbps, y los servidores pueden alcanzar velocidades de 1 Gbps o incluso 10 Gbps.
REDES DE ACCESO INALÁMBRICO Cada vez es más habitual que los usuarios accedan a
Internet a través de conexiones inalámbricas, bien a través de una computadora portátil o
mediante un dispositivo móvil. Actualmente, existen dos tipos de acceso inalámbrico a
Internet. En una LAN inalámbrica, los usuarios inalámbricos transmiten paquetes a (y
reciben paquetes de) un punto de acceso, el cual a su vez esta conectado a la red Internet
cableada. Habitualmente, los usuarios de una LAN inalámbrica deben encontrarse a unas
pocas decenas de metros del punto de acceso. En las redes inalámbricas de área extensa, los
paquetes se transmiten a una estación base a través de la misma infraestructura inalámbrica utilizada por la
telefonía móvil. En este caso, el proveedor de la red móvil gestiona la estación base y, normalmente, el usuario
puede estar a unas pocas decenas de kilómetros de la estación base. Las empresas de telecomunicaciones han hecho
grandes inversiones en lo que se conoce como redes inalámbricas de tercera generación (3G), que proporcionan
acceso inalámbrico a Internet mediante una red de área extensa de conmutación de paquetes a velocidades por
encima de 1 Mbps. Actualmente, el acceso mediante LAN inalámbrica basada en la tecnología IEEE 802.11, es decir
WiFi. La tecnología 802.11 proporciona una velocidad de transmisión compartida de hasta 54 Mbps.
REDES CASERAS Muchas viviendas combinan acceso residencial de banda ancha (es decir, modems por cable o
DSL) con tecnología LAN inalámbrica barata para crear redes domesticas potentes. Esta red domestica está formada
por un portátil y un PC de escritorio; una estación base (el punto de
acceso inalámbrico), que se comunica con el portátil inalámbrico;
un modem por cable, que proporciona el acceso de banda ancha a
Internet y un router, que interconecta la estación base y el PC de
sobremesa con el modem por cable. Esta red permite a los usuarios
de esta red domestica tener acceso de banda ancha a Internet
mediante un dispositivo móvil.
MEDIOS FÍSICOS Enlace físico: lo que existe entre transmisor y receptor.
Medio guiado: La señal se propaga en un medio sólido: cobre, fibra, coaxial.
Medio no guiado: La señal se propaga libremente, e.g., radio, infra-rojo.
CAPAS DE PROTOCOLOS cada capa implementa una clase de servicio, a través de acciones internas a esa
capa, y depende de servicios provistos por capas inferiores. Una arquitectura de capas nos permite estudiar una parte
específica y bien definida de un sistema mas grande y complejo. Esta simplificación por si misma tiene un valor
considerable al proporcionar modularidad, haciendo mucho más fácil modificar la implementación del servicio
suministrado por la capa. Dado que la capa proporciona el mismo servicio a la capa que tiene por encima de ella y
emplea los mismos servicios de la capa que tiene por debajo, el resto del sistema permanece invariable cuando se
modifica la implementación de una capa. (Tener en cuenta que cambiar la implementación de un servicio es muy
diferente a cambiar el propio servicio.) En sistemas complejos de gran tamaño que se actualizan constantemente, la
capacidad de modificar la implementación de un servicio sin afectar al resto de los componentes del sistema es otra
importante ventaja de la disposición en capas. Para proporcionar una estructura al diseño de protocolos de red, los
diseñadores de redes organizan los protocolos (y el hardware y el software de red que implementan los protocolos) en
capas. Cada protocolo pertenece a una de las capas. De nuevo, estamos interesados en los servicios que ofrece
una capa a la capa que tiene por encima, lo que se denomina modelo de servicio de capa. Cada capa proporciona su
servicio (1) llevando a cabo ciertas acciones en dicha capa y (2) utilizando los servicios de la capa que tiene
directamente debajo de ella. Por ejemplo, los servicios proporcionados por la capa n pueden incluir la entrega fiable de
mensajes de un extremo de la red al otro. Esto podría implementarse mediante un servicio no fiable de entrega de
mensajes terminal a terminal de la capa n — 1, y añadiendo la funcionalidad de la capa n para detectar y retransmitir
los mensajes perdidos. Una capa de protocolo puede implementarse por software, por hardware o mediante una
combinación de ambos. Los protocolos de la capa de aplicación, como HTTP y SMTP, casi siempre se implementan
por software en los sistemas terminales, al igual que los protocolos de la capa de transporte. Puesto que la capa física y
las capas de enlace de datos son responsables de manejar la comunicación a través de un enlace especifico,
normalmente se implementan en las tarjetas de interfaz de red (por ejemplo, tarjetas Ethernet o WiFi) asociadas con un
determinado enlace. La capa de red a menudo es una implementación mixta de hardware y software. Observe que un
protocolo de capa n esta distribuido entre los sistemas terminales, los dispositivos de conmutación de paquetes y los
restantes componentes que conforman la red. Es decir, suele haber una parte del protocolo de capa n en cada uno de
estos componentes de red. Las capas de protocolos presentan ventajas conceptuales y estructurales. Como hemos
visto, las capas proporcionan una forma estructurada de estudiar los componentes del sistema. Además, la
modularidad facilita la actualización de los componentes del sistema.
PROTOCOL STACK – MODELO TCP/IP CAPA DE APLICACION La capa de aplicación es
donde residen las aplicaciones de red y sus protocolos. La capa de aplicación de Internet incluye muchos
protocolos, tales como el protocolo HTTP (que permite la solicitud y transferencia de documentos web),
SMTP (que permite la transferencia de mensajes de correo electrónico) y FTP (que permite la
transferencia de archivos entre dos sistemas terminales). Veremos que determinadas funciones de red,
como la traducción de los nombres legibles que utilizamos las personas para los sistemas terminales de
Internet (por ejemplo, www.ietf.org) en direcciones de red de 32 bits se realiza también con la ayuda de
un protocolo especifico de la capa de aplicación, en concreto, el Sistema de nombres de dominio (DNS,
Domain Name System). Un protocolo de la capa de aplicación está distribuido a lo largo de varios
sistemas terminales, estando la aplicación en un sistema terminal que utiliza el protocolo para
intercambiar paquetes de información con la aplicación de otro sistema terminal. A este paquete de información de la
capa de aplicación lo denominaremos mensaje.
CAPA DE TRANSPORTE La capa de transporte de Internet transporta los mensajes de la capa de aplicación entre
los puntos terminales de la aplicación. En Internet, existen dos protocolos de transporte, TCP y UDP, pudiendo cada
uno de ellos transportar los mensajes de la capa de aplicación. TCP proporciona un suministro garantizado de los
mensajes de la capa de aplicación al destino y un mecanismo de control del flujo (es decir, adaptación de las
velocidades del emisor y el receptor). También divide los mensajes largos en segmentos mas cortos y proporciona un
mecanismo de control de congestión, de manera que un emisor regula su velocidad de transmisión cuando la red esta
congestionada. El protocolo UDP es un servicio básico que no ofrece ninguna fiabilidad, ni control de flujo, ni control
de congestión. Denominaremos a los paquetes de la capa de transporte segmentos.
CAPA DE RED La capa de red de Internet es responsable de trasladar los paquetes de la capa de red, conocidos
como datagramas, de un host a otro. El protocolo de la capa de transporte (TCP o UDP) de Internet de un host de
origen pasa un segmento de la capa de transporte y una dirección de destino a la capa de red, al igual que damos al
servicio de correo postal una caja con una dirección de destino. Luego, la capa de red proporciona el servicio de
suministrar el segmento a la capa de transporte del host de destino. La capa de red de Internet incluye el conocido
protocolo IP, que define los campos del datagrama, así como la forma en que actúan los sistemas terminales y los
routers sobre estos campos. Existe un único protocolo IP y todos los componentes de Internet que tienen una capa de
red deben ejecutar el protocolo IP. La capa de red de Internet también contiene los protocolos de enrutamiento que
determinan las rutas que los datagramas siguen entre los orígenes y los destinos. Internet dispone de muchos
protocolos de enrutamiento. Internet es una red de redes y, dentro de esa red, el administrador de la red puede ejecutar
cualquier protocolo de enrutamiento que desee. Aunque la capa de red contiene tanto el protocolo IP como numerosos
protocolos de enrutamiento, suele hacerse referencia a ella simplemente como la capa IP, lo que refleja el hecho de
que IP es el pegamento que une todo Internet.
Capa de enlaceLa capa de red de Internet encamina un datagrama a través de una serie de routers entre el
origen y el destino. Para trasladar un paquete de un nodo (host o router) al siguiente nodo de la ruta, la capa de red
confía en los servicios de la capa de enlace. En concreto, en cada nodo, la capa de red pasa el datagrama a la capa de
enlace, que entrega el datagrama al siguiente nodo existente a lo largo de la ruta. En el siguiente nodo, la capa de
enlace pasa el datagrama a la capa de red. Los servicios proporcionados por la capa de enlace dependen del protocolo
de la capa de enlace concreto que se emplee en el enlace. Por ejemplo, algunos protocolos de la capa de enlace
proporcionan una entrega fiable desde el nodo transmisor, a través del enlace y hasta el nodo receptor. Observe que
este servicio de entrega fiable es diferente del servicio de entrega fiable de TCP, que lleva a cabo una entrega fiable
desde un sistema terminal a otro. Entre los ejemplos de protocolos de la capa de enlace se incluyen Ethernet, WiFi y el
Protocolo punto a punto (PPP, Point-to-Point Protocol). Puesto que normalmente los datagramas necesitan atravesar
varios enlaces para viajar desde el origen hasta el destino, un datagrama puede ser manipulado por distintos protocolos
de la capa de enlace en los distintos enlaces disponibles a lo largo de la ruta. Por ejemplo, un datagrama puede ser
manipulado por Ethernet en un enlace y por PPP en el siguiente enlace. La capa de red recibirá un servicio diferente
por parte de cada uno de los distintos protocolos de la capa de enlace. Denominaremos a los paquetes de la capa de
enlace tramas.
CAPA FISICA Mientras que el trabajo de la capa de enlace es mover las tramas completas de un elemento de la
red hasta el elemento de red adyacente, el trabajo de la capa física es el de mover los bits individuales dentro de la
trama de un nodo al siguiente. Los protocolos de esta capa son de nuevo dependientes del enlace y, por tanto,
dependen del medio de transmisión del enlace (por ejemplo, cable de cobre de par trenzado o fibra óptica monomodo).
Por ejemplo, Ethernet dispone de muchos protocolos de la capa física: uno para cable de cobre de par trenzado, otro
para cable coaxial, otro para fibra, etc. En cada caso, los bits se desplazan a través del enlace de forma diferente.
Por regla general, un ISP de nivel 2 tiene cobertura regional o nacional y solo está conectado a unos pocos ISP de
nivel 1. Por tanto, para llegar a gran parte de la red Internet global, un ISP de nivel 2 tiene que enrutar el tráfico a
través de uno de los ISP de nivel 1 a los que está conectado. Se dice que un ISP de nivel 2 es un cliente del ISP de
nivel 1 al que está conectado y que el ISP de nivel 1 es un proveedor de dicho cliente. Un ISP proveedor cobra unas
determinadas tasas al ISP cliente, que normalmente dependen de la velocidad de transmisión del enlace que los
conecta. Una red de nivel 2 también se puede conectar directamente a otras redes de nivel 2, en cuyo caso el trafico
puede fluir entre las dos redes de nivel 2 sin tener que pasar a través de una red de nivel 1. Por debajo de los ISP de
nivel 2 se encuentran los ISP de nivel inferior, que se conectan a Internet
a través de uno o más ISP de nivel 2. En el nivel más bajo de la jerarquía
se encuentran los ISP de acceso. Para complicar aún más las cosas,
algunos proveedores de nivel 1 también son proveedores de nivel 2 (es
decir, están integrados verticalmente), que venden directamente acceso
a Internet a los usuarios finales y proveedores de contenido, así como a
los ISP del nivel inferior. Cuando dos ISP están conectados directamente
entre sí en el mismo nivel, se dice que son igualitarios. Luego,
existen los ISP-3 (locales), que constituyen el último salto (o
acceso) de la red, y están más cercanos a los sistemas terminales.
Dentro de la red de un ISP, los puntos en los que el ISP se conecta
a otros ISP (sean de nivel inferior, superior o del mismo nivel
dentro de la jerarquía) se conocen como Puntos de presencia (POP,
Point of Presence). Un POP es simplemente un grupo de uno o más
routers de la red del ISP en los que los routers de otros ISP o de las
redes que pertenecen a los clientes del ISP pueden conectarse. Un
proveedor de nivel 1 normalmente tiene muchos POP dispersos por
distintas localizaciones geográficas dentro de la red, con múltiples
redes y otros ISP conectados a cada POP. Normalmente, cuando una
red cliente tiene que conectarse al POP de un proveedor, alquila un enlace de alta velocidad de un proveedor de
telecomunicaciones de una tercera empresa y conecta directamente uno de sus routers a un router ubicado en el
POP del proveedor. Además, dos ISP pueden disponer de varios puntos de conexión entre iguales, conectándose
entre sí en múltiples pares de POP. En resumen, la topología de Internet está formada por docenas de ISP de nivel 1
y de nivel 2 y por miles de ISP de nivel inferior. La cobertura de los ISP puede ser muy variada, pudiéndose extender
a varios continentes hasta estar limitada a pequeñas regiones. Los ISP del nivel inferior se conectan a los ISP de los
niveles superiores y éstos a su vez se interconectan entre sí. Los usuarios y los proveedores de contenido son
clientes de los ISP de nivel inferior y éstos son clientes de los ISP de nivel superior. Es importante tener en cuenta
que un paquete pasa por muchas redes de ISPs.
DISPOSITIVOS DE RED sus funciones son separar (conectar) o expandir redes (ej. repeaters, hubs, bridges,
routers, brouters, switches, gateways) y brindar acceso remoto -pto a pto- (ej. Modems Dialup, ADSL, Cable
módems).
HUBS Y REPETIDORES trabajan en la capa física para regenerar la señal de la red y
reenviarlos a otros segmentos. Un Hub (sin buffer) puede ser visto como un repetidor
multipuerto, ya que regenera los datos y los transmite a todos los puertos. Copia
paquetes por todas las interfaces, excepto por la cual lo recibió. Entre sus
características, podemos listar:
No se puede unir segmentos con diferentes métodos de acceso (por ejemplo, CSMA/CD** y token passing)
No aíslan dominios de colisión ni filtran los paquetes
Constituyen la forma más económica de la ampliación de las redes
**protocolo que se fija si el canal está ocupado y, si no hay lugar para el paquete, este no se envía.
Dada una interconexión con hubs, estos conectan segmentos LAN, extendiendo la distancia máxima entre nodos,
pero todos los segmentos de colisión individuales terminan constituyendo un gran dominio de colisión.
SWITCHES permiten armar LANs con cantidad de máquinas conectadas. Éstos operan en la capa de enlace de
datos, separan dominios de colisión, y reconocen, analizan y modifican frames MAC
(pueden saber si es erróneo o no). Además, realizan conversiones de velocidad. En
cuanto a sus funciones, se lista la siguiente secuencia:
Los Switches dividen una red en varios canales aislados (o dominios de colisión*). Al enviar paquetes desde 1 canal
no irá a otro si esto no se especifica. Cada canal tiene su propia capacidad y no tiene por qué ser compartida con
otros canales.
*El DC abarca todos los equipos que pueden colisionar con el envió de un paquete, por cuestiones de envíos
simultáneos, por lo que la información se perdería y la conexión también.
Sus funciones de reenvío ( la función del conmutador que determina las interfaces a las que un trama debe dirigirse
y luego envía la trama a esas interfaces) se realizan utilizando la tabla del Switch . Esta tabla contiene entradas para
algunos nodos, no necesariamente todos, de una red LAN. Una entrada de la tabla del Switch contiene (1) la
dirección MAC de un nodo, (2) la interfaz del Switch que lleva hacia el nodo y (3) el instante en el que la entrada para
el nodo fue incluida en la tabla-tabla de tiempo-. Los Switches reenvían los paquetes basándose en las direcciones
MAC en lugar de en la direcciones IP. También veremos que la tabla del conmutador se construye de forma muy
distinta a como se crea la tabla de reenvío de un router. Para comprender como funciona el reenvío en un
conmutador, suponga que una trama con la dirección de destino DD-DD-DD-DD-DD-DD llega a la interfaz x del
conmutador. Este buscara en su tabla la dirección MAC DD-DD-DD-DD-DD-DD. Se plantean tres posibilidades:
No hay ninguna entrada en la tabla para DD-DD-DD-DD-DD-DD. En este caso, el conmutador reenvía copias de la
trama a los buffers de salida que preceden a todas las interfaces salvo a la interfaz x. En otras palabras, si no hay
ninguna entrada para la dirección de destino, el conmutador difunde la trama.
Existe una entrada en la tabla que asocia DD-DD-DD-DD-DD-DD con la interfaz x. En este caso, la trama procede
de un segmento de la LAN que contiene al adaptador DDDD-DD-
DD-DD-DD. No existe la necesidad de reenviar la trama a ninguna
de las restantes interfaces, el conmutador lleva a cabo la función
de filtrado descartando la trama.
Existe una entrada en la tabla que asocia DD-DD-DD-DD-DD-DD
con la interfaz y\=x. En este caso, la trama tiene que ser
reenviada al segmento de la LAN conectado a la interfaz y. El
conmutador lleva a cabo su función de reenvío colocando la
trama en un buffer de salida que precede a la interfaz y.
Los conmutadores tienen la fantástica propiedad de que su tabla se construye de forma automática, dinámica y
autónoma, sin intervención de un administrador de redes ni de
ningún protocolo de configuración. En otras palabras, los
conmutadores son auto-aprendices. Esta capacidad se lleva cabo de
la forma siguiente:
1. Inicialmente, la tabla del conmutador esta vacía.
2. Para cada trama entrante recibida en una interfaz, el conmutador
almacena en su tabla (1) la dirección MAC especificada en el
campo dirección de origen de la trama, (2) la interfaz de la que
procede la trama y (3) la hora actual. Así, cuando una trama es
recibida, el switch “aprende” la interfaz del sector del Origen
observando la MAC de la trama LAN de llegada, y graba el par Origen/localización en tabla del switch. Cada
entrada tiene un TTL (time to live) de 60 min. aprox.
ROUTERS resuelven la comunicación entre equipos no adyacentes. Trabajan a nivel de red, y utilizan
direcciones lógicas de los paquetes y tablas de ruteo para determinar cuál es el camino que debe seguir un
paquete. Entre sus funciones, se lista:
Cuando los paquetes se transmiten paquetes de router a router, las direcciones de la Capa de Enlace son
quitadas y vueltas a recrear
Un router puede enrutar un paquete desde una red Ethernet TCP/IP a una red token ring TCP/IP
Sólo los paquetes con direcciones de red conocidos serán reenviados, por lo tanto, reduce el tráfico
Los routers pueden escuchar a una red e identificar su parte más concurrida
Se selecciona la ruta más conveniente para la transmisión de un paquete
ARQUITECTURA DE ROUTERS los router cumplen con dos funciones clave: correr algoritmos/protocolos de ruteo
(RIP, OSPF, BGP) y reenviar datagramas desde enlaces de entrada a salida. La gran mayoría de estos enlaces son
bidireccionales, pero, por propósitos de análisis, se suelen separar en entrada y salida.
FUNCIONES DE PUERTA DE ENTRADA/SALIDAla entrada implementa las capas física y de enlace de datos asociadas
con un enlace individual de entrada al router. El modulo de búsqueda/reenvío del puerto de entrada resulta crucial
para la función de reenvío del router. En muchos routers, es aquí donde el router determina el puerto de salida al
que será reenviado un paquete entrante.. La elección del puerto de
salida se lleva a cabo utilizando la información almacenada en la tabla de
reenvío. Aunque el procesador de enrutamiento calcula la tabla de
reenvío, suele almacenarse una copia de la misma en cada puerto de
entrada, la cual es actualizada según sea necesario por el procesador de
enrutamiento. Con las copias locales de la tabla de reenvío, la decisión
de reenvío puede tomarse localmente en cada puerto de entrada sin
invocar al procesador de enrutamiento centralizado. Tales reenvíos
descentralizados evitan que se formen cuellos de botella en el procesamiento de reenvíos en un único punto dentro
del router. El entramado de conmutación se encuentra en el corazón de un router. Es a través de este entramado
donde los paquetes son realmente conmutados (es decir, reenviados) desde un puerto de entrada a un puerto de
salida. El procesamiento en los puertos de salida toma los paquetes que hayan sido almacenados en la memoria del
puerto de salida y los transmite a través del enlace de salida. La funcionalidad de gestión de la cola y de buffer es
necesaria cuando los datagramas provenientes de la estructura de switches suministran paquetes al puerto de salida
a una velocidad mayor que la velocidad del enlace de salida. También cuenta con disciplina de itinerario (scheduling),
mediante la cual escoge entre los datagramas encolados para transmitirlos.
PROTOCOLOS TPC/IP conjunto de protocolos utilizados en Internet. Las capas están jerarquizadas. Cada capa se
construye sobre su predecesora. El número de capas y, en cada una de ellas, sus servicios y funciones son variables
con cada tipo de red. Sin embargo, en cualquier red, la misión de cada capa es proveer servicios a las capas
superiores haciéndoles transparentes el modo en que esos servicios se llevan a cabo. De esta manera, cada capa
debe ocuparse exclusivamente de su nivel inmediatamente inferior, a quien solicita servicios, y del nivel
inmediatamente superior, a quien devuelve resultados.
1- Link Layer: Contiene toda la funcionalidad para enviar una trama de bits sobre un medio físico a otro
sistema. A su vez organiza los datos a enviar en una unidad de datos llamada frame y se encarga de su envío
a un equipo adyacente.
2- Network Layer: Envía datos en la forma de paquetes desde un origen a un destino, a lo largo de tantos
vínculos como sea necesario aunque los mismos no sean adyacentes
3- Transport Layer: Referido al envío de información entre procesos.
4- Application Layer: Referido a diferencias en representaciones internas de datos, interfaces de usuario y
otros requerimientos del mismo
2. Network layer Transporta segmentos de fuente a destino y, en origen, encapsula segmentos en datagramas. En
destino, entrega segmentos a capa transporte. Existen protocolos capa red (network) en cada terminal y router.
El router examina campos de cabecera en todos los datagramas IP que pasan por él. La funcion de la capa de red
es por tanto tremendamente simple: transporta paquetes desde un host emisor a un host receptor. En la
realizacion de esta tarea podemos identificar dos importantes funciones de la capa de red:
Reenvio (forwarding). Cuando un paquete llega al enlace de entrada de un router, este tiene que pasar el
paquete al enlace de salida apropiado. Por ejemplo, un paquete que llega procedente de Hl al router Rl debe
ser reenviado al siguiente router de la ruta hacia H2.
Enrutamiento (routing). La capa de red tiene que determinar la ruta o camino que deben seguir los paquetes
a medida que fluyen de un emisor a un receptor. Los algoritmos que calculan estas rutas se conocen como
algoritmos de enrutamiento. Un algoritmo de enrutamiento debe determinar, por ejemplo, la ruta por la que
fluiran los paquetes para ir de H1 a H2.
El reenvío hace referencia a la acción local que realiza un router al transferir un paquete desde una interfaz de un
enlace de entrada a una interfaz del enlace de salida apropiada. El enrutamiento hace referencia al proceso que
realiza la red en conjunto para determinar las rutas terminal a terminal que los paquetes siguen desde el origen al
destino.
Consideremos un viaje desde lugar1 a lugar2. Durante ese viaje, nuestro conductor atravesó muchas intersecciones
en su camino a lugar2. Podemos pensar en el reenvío como en el proceso de atravesar una intersección: un coche
entra en una intersección viniendo por una carretera y determina que otra carretera tomar para salir de la
intersección. Podemos pensar en el enrutamiento como en el proceso de planificación del viaje desde lugar1 hasta
lugar2: antes de iniciar el viaje, el conductor consulta un mapa y elige uno de los muchos posibles caminos, estando
cada uno de ellos definido por una serie de tramos de carretera que se conectan en las intersecciones.
DIRECCIÓN MAC (Media Access Control) Esquema de direcciones en capa de enlace. Es un número único asignado
a cada tarjeta de red. 48 bits: 24 bits asignados por la IEEE al fabricante (OUI) y 24 bits asignados por el fabricante
como número de serie. En la mayoría de los casos no se necesita conocerla, salvo para hacer filtrado en redes
wireless por dir MAC.
DIRECCION IP Identifica unívocamente un punto de acceso (interfaz) a la red y tienen un significado global en
Internet. Un router tiene varias, y son números de 32 bits, expresados en notación decimal con puntos, byte a byte
(p.ej. 123.3.45.77). Para facilidad de los usuarios, se define un mapping estático de las direcciones IP con nombres
“mas legibles” para las personas (DNS - Domain Name Server).
MAC VS. IP
La asignación de direcciones MAC es Dirección IP: Domicilio
administrada por IEEE Dirección IP jerárquico NO portátil
Fabricante compran parte del espacio de o depende de la dirección de
direcciones MAC (para asegurar la exclusividad) subred IP a la que está unido el
Dirección MAC: Nro de DNI nodo
Dirección MAC plana ➜portabilidad Internet está basado en direcciones IP.
◦ puede mover la tarjeta LAN de una LAN
a otra
Ethernet está basado en direcciones MAC.
PROTOCOLO ARP (ADDRESS RESOLUTION PROTOCOL) tiene como misión traducir la dirección IP de una máquina
a la dirección física del adaptador de red. Esto funciona de la siguiente manera: un Equipo envía un ARP Request en
broadcast preguntando por la dirección física de una determinada IP. Le responde el equipo que tiene esa IP con un
ARP Reply que le informa la dirección física. Debido a que enviar ARP Request/Reply para cada paquete IP introduce
demasiado overhead, cada host mantiene una tabla ARP donde cada entrada expira
después de 20 minutos. Por cada interfaz del Router se construye una tabla ARP, la
cual contiene información que asocia una dirección hardware (Ethernet MAC) con
una determinada dirección IP.
TABLAS DE RUTEO
Red de destino: Red de destino del datagram.
D/I: indica si el datagram debe será enviado a su dirección de
destino o a un router intermedio.
Dir. router: dirección del router a través del cual se accederá a
la red destino.
Interface: salida física (p.ej. LAN Ethernet) por la cual se debe enviar el datagram.
FIREWALLS – FILTRADO DE PAQUETES Un firewall es un sistema o grupo de sistemas utilizados para separar una
máquina o una subred (zona protegida) del resto de la red (zona de riesgo), estableciendo una política de control de
acceso entre ambos entornos. Es decir, el firewall actúa como punto de conexión segura entre dos o más sistemas
informáticos. Un firewall puede ser un router, un PC o una red completa.
Los principales elementos que pueden conformar un firewall, entendiendo el firewall como un sistema, son el filtro
de paquetes y los proxys. Nos centraremos en el primer elemento, el filtrado de paquetes:
El filtrado de paquetes es un proceso que consiste en denegar o permitir el flujo de información entre la red interna
que deseamos proteger y el resto o la red externa. Este filtrado se hace de acuerdo a unas reglas predefinidas, y
según éstas, se examinan las cabeceras de los paquetes según van pasando a través de él, decidiendo la “suerte” del
paquete completo (aceptar, descartar, etc). El filtrado también se conoce como screening, y a los dispositivos que lo
implementan se les denomina chokes.
Los firewalls de filtrado de paquetes actúan sobre la capa de red y la de transporte de la pila TCP/IP. Es decir,
trabajan sobre la información de las cabeceras de los paquetes IP, sin llegar a analizar los datos. Por ejemplo, un
firewall no puede evitar que un usuario de la red sobre la que actúa mande un email desde su equipo con otra
cuenta de correo diferente de la de su trabajo. Lo que si podría es evitar que dicho equipo accediera al servidor de
correo y desde él no se pudiese mandar ningún correo a nadie. Este filtrado se realiza a través de una lista de reglas.
Las reglas pueden ser de diferentes tipos, aceptación, rechazo o denegación, entre otras.
Un filtro estático o Stateless (sin estado) analiza las cabeceras de cada paquete recibido (IP, TCP, UDP, ICMP...) y
toma una decisión de filtrado en función de los valores contenidos en los distintos campos de dichas cabeceras. No
se establece ninguna relación entre los paquetes que atraviesan el filtro, aunque correspondan a una misma
conexión. Este es el mecanismo de filtrado “clásico”, sin apenas consumo de recursos y de fácil implementación.
Por el contrario, un filtro dinámico o Stateful (de estados) permite el control de un flujo de datos relacionados (por
ejemplo, paquetes dentro de una misma conexión TCP o entre varias conexiones). Para llevarlo a cabo es necesario
mantener en memoria los parámetros de cada conexión, tomando decisiones en función de la evolución de las
mismas. Por ejemplo, sólo se permite el paso de datos en sentido entrante a través de un puerto TCP que haya sido
previamente abierto en sentido saliente, o conexiones entrantes a un puerto dado desde una dirección origen
cuando previamente se ha iniciado una conexión saliente hacia esa misma dirección desde otro puerto concreto.
Este modelo de filtrado es más sofisticado y permite un control más exhaustivo del tráfico resolviendo necesidades a
nivel de paquete que antes tenían que resolverse a nivel de aplicación (mediante proxies).
El filtrado de paquetes en Linux se ha realizado de las siguientes maneras:
Otro problema más importante de NAT es que interfiere con las aplicaciones P2P (incluyendo las aplicaciones de
compartición de archivos P2P y las aplicaciones de voz sobre IPP2). En una aplicación P2P, cualquier par A
participante debería poder iniciar una conexión TCP con cualquier otro par B participante. La esencia del problema
es que si el par B está situado detrás de un traductor NAT no puede actuar como un servidor y aceptar conexiones
TCP. Como veremos en los problemas de repaso, este problema de NAT puede evitarse si el par A no está situado
detrás de un traductor NAT. En este caso, el par A puede contactar primero al par B a través de un par C intermedio,
que no esté situado detrás de un traductor NAT y con el que B tenga establecida una conexión TCP activa. El par A
puede entonces pedir al par B, a través de C, que inicie una conexión TCP directamente con el par A. Una vez que la
conexión TCP directa P2P se ha establecido entre los pares A y B, estos podrán intercambiar mensajes o archivos.
Esta técnica, conocida con el nombre de inversión de la conexión (connection reversal), es utilizada por muchas
aplicaciones P2P para NAT transversal (NAT
Traversal). Si tanto el par A como el par B utilizan
NAT, la situación es un poco más compleja, pero
puede solventarse utilizando retransmisores de
aplicación.
IP MASQUERADING también llamado Network
address and port translation (NAPT), o port address
translation (PAT), es un tipo de NAT. En casos donde
una sola IP pública es asignada a múltiples equipos en
una red privada, como solución NAT, la red de la
empresa se maneja con un espacio de direcciones
privadas, y el router NAT modifica el número de puerto para el tráfico que se
dirige hacia afuera.
En Linux, se usa el comando iptable para agregar reglas de filtrado a los
paquetes IP. Este componente es el más popular construido sobre Netfilter.
Netfilter es un framework disponible en el núcleo Linux que permite interceptar
y manipular paquetes de red. Dicho framework permite realizar el manejo de
paquetes en diferentes estados del procesamiento. Netfilter es también el
nombre que recibe el proyecto que se encarga de ofrecer herramientas libres
para cortafuegos basados en Linux.
Iptables es el nombre de la herramienta de cortafuegos de espacio de usuario,
mediante la cual el administrador puede definir políticas de filtrado del tráfico
que circula por la red. Permite definir un conjunto de reglas aplicables a los
paquetes IP que entran y/o salen de una máquina para realizar las siguientes operaciones:
Una cadena puede tener definida una política, que es la acción por defecto para la cadena. La política predefinida
para todas las cadenas es ACCEPT (es decir, aceptar el paquete). Cuando para un paquete NO se aplica NINGUNA de
las reglas de la cadena, se ejecuta para él la política de la cadena (si dicha cadena la tiene).
Las reglas tienen una posición determinada (número de regla) dentro de la cadena. A la hora de poner una nueva
regla en una cadena, hay tres posibilidades:
1) Añadir la regla al final de la cadena, detrás de las ya existentes
2) Reemplazar en una posición a otra regla ya existente
3) Insertar la regla en una posición ya existente,
desplazando un lugar a las reglas existentes desde esa
posición en adelante.
Algunos protocolos son de dominio público; definidos en RFCs y permiten inter- operatividad (ej. HTTP (WEB), SMTP
(email)). Otros, son protocolos propietarios, no disponibles al público, y se mantienen secretos dentro de su
ambiente (por ejemplo, dentro de una empresa) (ej. KaZaA, Skype).
Es importante recordar que un protocolo de C-A constituye una pieza dentro de una aplicación de red. EJ p.97
Muchas redes, incluyendo internet, proveen más de un protocolo de capa de transporte. Cuando se desarrolla una
aplicación, se debe elegir cuál protocolo C-T se utilizará, de acuerdo a las necesidades de la aplicación. Los servicios
que un protocolo C-T puede proveer a las aplicaciones que lo invocan están calsificados en 4 dimensiones:
transferencia de datos confiable, throughput, timing y seguridad.
1) Trasferencia de datos confiable -- > sabemos que los paquetes pueden perderse en el marco de una red de
ordenador (buffer overflow, bits corrompidos que hacen que el host o el router los descarte). Por ello, es
necesario garantizar que los datos enviados por un extremo de la aplicación son recibidos correcta y enteramente
en el otro extremo. Si un protocolo puede proveer este tipo de servicio, se dice que es capaz de proveer una
transferencia de datos confiable. Un servicio importante que el protocolo C-T puede proveer es trasferencia de
datos confiable de proceso a proceso. Si esto sucede, el proceso de envío simplemente puede pasar sus datos al
socket y tener la confianza de que los datos llegaran sin errores al proceso receptor.
Si un protocolo de C-T no provee trasferencia de datos confiable, algo de esos datos enviados puede nunca llegar
al proceso receptor.
2) Throughput -- > esto tiene que ver con el concepto de “throughput disponible” el cual, en el contexto de una
sesión de comunicación entre dos procesos a través de un path de red, es la tasa en la cual el proceso de envío
puede enviar bits al proceso receptor. Dado que la banda ancha de ese path de redes será compartida por otras
sesiones sucediendo en simultáneo, y dado que las sesiones generan movimiento de paquetes entre los dos
extremos, el throughput disponible puede fluctuar con el tiempo. Considerando esto, otro servicio que el
protocolo C-T puede proveer es throughput disponible en una cierta tasa, que puede ser requerido por la
aplicación y tener determinados rbit/s. Esto es importante, dado que algunas aplicaciones (llamadas sensibles al
ancho de banda – bandwidth-sensitive - e.g., multimedia) requieren cantidad mínima de ancho de banda para ser
“efectivas”. Existe otro tipo, aplicaciones elásticas (elastic applications), que hacen uso del bandwidth que
obtengan y se adaptan a cualquiera que esté disponible.
3) Timing -- > un protocolo C-T también puede proveer garantías de timing. Esto funciona parecido a las garantías de
thoughtput, mediante los requerimientos de timing que la aplicación necesite. Algunas aplicaciones (e.g.,
Telefonía en internet, juegos interactivos) requieren bajo retardo para ser “efectivas”.
También es válido recordar los conceptos de protocolos TCP y UDP.
El TCP, es:
Orientado a la conexión, o sea que el establecimiento de la conexión es requerido entre procesos del cliente y
servidor antes de la transferencia.
Ofrece transporte confiable entre los procesos transmisores y receptores.
Tiene control de flujo: el proc. transmisor (Tx) no sobrecargara al proc. Receptor(Rx).
Tiene Control de congestión: el Tx se frena cuando la red está sobrecargada.
No provee: garantías de retardo ni ancho de banda mínimos.
El UDP:
La transferencia de datos no es confiable entre proceso Tx y Rx.
No provee: establecimiento conexión, confiabilidad, control de flujo, control de congestión, garantías de retardo
o ancho de banda.
UDP se utiliza dado que muchas aplicaciones de telefonía en internet (Skype) pueden tolerar algo de perdida
pero requieren una tasa mínima para ser efectivas. Mediante el uso de UDP, se evitan los mecanismos de control
de congestión y de sobrecarga de paquetes que tiene TCP. De todas formas, muchos firewalls están configurados
para bloquear la mayoría de los tipos de trafico de UDP, por lo que se establece TCP como backup si esto sucede.
WEB Y HTTP --> Una página Web está compuesta de objetos. Las Páginas web consisten generalmente de un archivo
HTML (obj) base el cual incluye referencias a objetos. En este contexto, los objetos pueden ser archivos HTML,
imágenes (JPEG, GIF,...), archivos de audio, archivos de vídeo,etc. Cada objeto es direccionable por un Universal
Resource Locator (URL) (ej. http://www.elo.utfsm.cl/imgmenu/header.jpg), donde www.elo.utfsm.cl es el nombre
de host y imgmenu/header.jpg es el nombre de path.
HTTP (Hypertext Transfer Protocol) define como los clientes web hacen pedidos de
páginas web de servidores web y como los servidores transfieren esas páginas web a los
clientes. Cuando un usuario pide una página web (por ejemplo, haciendo click en un link),
el browser envía mensajes con un pedido HTTP para los requerir los objetos de la pagina al
servidor. El servidor recibe esos pedidos y responde con mensajes de respuesta HTTP que
contienen los objetos requeridos. HTTP hace uso de TCP como su protocolo de transporte.
El cliente HTTP inicia una conexión TCP con el servidor y, una vez establecida, los procesos
del browser y del servidor tienen acceso al TDP a través de sus sockets. En el lado del
cliente, el socket es la ‘puerta’ entre el proceso cliente y la conexión TCP. En el lado del
servidor, es la ‘puerta’ entre el proceso servidor y la conexión TCP. El cliente envía
requests HTTP a su socket y recibe respuestas HTTP a través del mismo. Similarmente,
el servir recibe pedidos a su socket y envía respuestas desde él. Una vez que el cliente
envía un mensaje, este cae en manos del TCP.
Es importante notar que el servidor envía respuestas e información al cliente sin
almacenar ninguna información del mismo. Para esto, hay que recordar que HTTP es
stateless; no guarda estados. También hay que tener en cuenta que la web usa la
arquitectura cliente-servidor, por ende, un servidor web esta ‘always on’, con una
dirección IP fija y atendiendo a los requests de millones de clientes.
CONEXIONES PERSISTENTES Y NO PERSISTENTES -- > en muchas aplicaciones de internet, el cliente y el servidor se
comunican por periodos de tiempo extendidos, donde el cliente hace pedidos y el server los responde. Dependiendo
de la aplicación y como ésta está siendo usada, estos requests pueden ser hechos en intervalos regulares,
intermitentemente o seguidos. Cuando esta interacción sucede mediante TCP, se debe tomar una decisión
importante: debería cada par de pedidos/respuesta ser enviado a través de una conexión TCP separada? O deberían
todos los request y sus respuestas ser enviados a través de la misma conexión TCP?
Si nos referimos a la primera incógnita, decimos que la aplicación usa conexiones no persistentes (es como hacer
una llamada por objeto). En cuanto a la segunda, se dice que la aplicación está usando conexiones persistentes.
(HTTP usa conexiones persistentes por default)
EJEMPLO DE HTTP NO PERSISTENTE -- >
Es importante tener en cuenta el concepto de RTT (Round Trip Time), que es el tiempo
ocupado desde el envío de un paquete desde el cliente hasta el servidor y su regreso.
El tiempo de respuesta se obtiene considerando un RTT para iniciar la conexión, más un
RTT por requerimiento HTTP y primeros bytes de la respuesta. El tiempo de respuesta
del archivo es igual a 2RTT + tiempo de transmisión (time to transmit file).
Los problemas de HTTP no persistente radican en que requiere al menos 2 RTTs por
objeto, y el navegador abre conexiones paralelas generalmente para traer objetos
referenciados; el Sistema Operativo debe trabajar y dedicar recursos para cada
conexión TCP.
HTTP PERSISTENTE -- > aquí, el servidor deja las conexiones abiertas después de enviar
la respuesta, por lo que los mensajes HTTP siguientes entre los mismos clientes/servidores son enviados por esa
conexión(esto conlleva 1 RTT menos que la no persistente). Existen dos tipos de persistencia: con pipelining y sin
pipelining. La persistencia con pipelining es default en HTTP 1.1, y el cliente envía requerimientos tan pronto como
encuentre un objeto referenciado. Se ocupa un RTT para todas las referencias a objetos que encuentre(se envían
todos juntos).
La persistencia sin pipelining ocupa un RTT por cada objeto referenciado, y el cliente sólo envía un request cuando
el previo ha sido recibido.
Como se menciono antes, existen dos tipos de mensaje HTTP: de requerimiento y de respuesta. El mensaje de
requerimiento se encuentra en formato ASCII (legible). Para subir datos de un formulario, podemos elegir entre
POST (los datos son subidos al servidor en el cuerpo del mensaje) y GET (entrada es subida en campos URL de la línea
de requerimiento).
Más allá de la característica stateless de HTTP, en ocasiones se quiere guardar información del usuario, ya sea para
restringir acceso o porque quiere identificar al usuario.
Para ello, HTTP usa cookies, que permiten personalizar la
información web, y representan información generada por
un servidor web que se almacena en el computador del
usuario para acceso futuro. Las cookies son transportadas
entre la maquina del usuario y el servidor (por ej. son
usadas para almacenar ítems en un carro de compra
mientras recorres un mall virtual). Entre la información
que pueden transportar las cookies se encuentra:
autorizaciones, shopping carts, sugerencias, estados de la
sesión del usuario (Web e-mail). Las cookies permiten que el sitio aprenda mucho sobre el usuario. Por ejemplo, los
motores de búsqueda usan redirecciones y cookies para aprender aún más, y las compañías de avisos obtienen
información de los sitios WEB.
WEB CACHES -- > También llamados servidores proxy, son entidades de red que satisfacen los pedidos HTTP en lugar
del servidor destino. Los caches tienen su propio disco de almacenamiento y mantienen copias de los objetos
recientemente pedidos. El usuario puede configurar el browser con acceso Web vía cache. De esta manera, el
browser envía todos los requerimientos HTTP al cache. Si objeto está en cache, el cache retorna objeto. Si no, cache
requiere los objetos desde el servidor Web, los almacena y retorna el objeto al cliente.
La idea del cache es almacenar “localmente” datos ya solicitados y así poder acceder a éstos más rápidamente en el
futuro. Un problema que debe atender el cache, es la obsolescencia que pueden tener los datos locales. Para
remediar esto, el cache puede usar tiempos de expiración, o consultar a la
fuente por vigencia del dato local.
Un cache es servidor y cliente al mismo tiempo. Cuando recibe pedidos desde
y envía respuesta al browser, actúa como servidor. Cuando envía pedidos
hacia y recibe respuestas de un servidor, actúa como cliente. Típicamente, un
web cache es comprado e instalado por un ISP.
PROTOCOLOS DE ACCESO DE MAIL (POP3 - Post OfficeProtocol—Version 3 -, IMAP - Internet Mail Access Protocol -)
COMPARACION DE SMTP CON HTTP
- Ambos transfieren archivos de un host a otro. SMTP - HTTP transfiere archives de un servidor Web a un
transfiere archivos (e-mails) de un servidor a mail a otro. cliente Web(típicamente un browser).
- Usa conexiones persistentes - Usa conexiones persistentes
- Es en su mayoría un protocolo ‘push’: el servidor de - En su mayoría es un protocolo ‘pull’: alguien carga
correo que envía ‘pushea’ el archivo al servidor de correo información en el servidor web y los usuarios usan
receptor. HTTP para hacer un ‘pull’ de esa información.
- La conexión TCP es iniciada por la maquina que quiere - La conexión TCP es iniciada por la maquina que
enviar un archivo. quiere recibir un archivo.
- Los mensajes tienen la restricción ASCII de 7 bits (exige - No impone restricción de contenido de mensaje.
codificación/decodificación si se quieren usar caracteres - Cada objeto es encapsulado en su propio mensaje
especiales o enviar imágenes)
- Múltiples objetos son enviados en un mensaje multiparte.