Está en la página 1de 31

El término ‘Red de computadoras’ resulta desactualizado, a causa de la gran y

diversa cantidad de dispositivos conectados actualmente. En la jerga de Internet,


todos estos dispositivos se denominan hosts o sistemas terminales.

Internet dispone de millones de dispositivos de cómputo conectados (hosts) que


corren las aplicaciones de red y están conectados entre sí vía redes de enlaces
de comunicaciones, las cuales están compuestas por variados tipos de medios
físicos, tales como fibra, cobre, radio, satélite. Los distintos enlaces pueden
transmitir los datos a distintas velocidades y la velocidad de transmisión de un
enlace se mide en bits/segundo. Cuando un sistema terminal tiene que enviar
datos a otro, el emisor segmenta los datos y añade bits de cabecera a cada
segmento. Los paquetes de información resultantes, se envían entonces a través
de la red hasta el sistema terminal receptor, donde vuelven a ser ensamblados
para obtener los datos originales. Un conmutador de paquetes toma el paquete
que llega de uno de sus enlaces de comunicaciones de entrada y lo reenvía a
uno de sus enlaces de comunicación de salida. Estos dispositivos de
conmutación se suministran en muchas formas y modelos, pero los tipos más
utilizados actualmente en Internet son los routers y los switches de la capa de
enlace (estos dos tipos reenvían paquetes en datos binarios hacia sus destinos finales). Los switches de la capa de
enlace normalmente se emplean en las redes de acceso, mientras que los routers suelen utilizarse en el núcleo de la
red. La secuencia de enlaces de comunicaciones y conmutadores de paquetes que atraviesa un paquete desde el
sistema terminal emisor hasta el receptor se conoce como ruta a través de la red. Los sistemas terminales acceden a
internet mediante los ISP(Internet Service Provider), incluyendo los ISP residenciales (compañías telefónicas/de cable
locales), los ISP corporativos, los IP universitarios y los ISP que proporcionan acceso inalámbrico (WiFi) en lugares
públicos. Cada ISP es, en sí mismo, una red de conmutadores de paquetes y enlaces de comunicaciones. También
proporcionan una amplia variedad de tipos de acceso a red a los sistemas terminales, entre los cuales se incluyen el
acceso a través de modem de acceso telefónico (56 kbps), el acceso de banda ancha residencial (mediante modem por
cable o DSL), el acceso LAN (Local Area Network) y el acceso inalámbrico. Los ISP también proporcionan acceso a
Internet a los proveedores de contenido, conectando sitios web directamente a Internet. Internet es todo lo que conecta
a los sistemas terminales entre si, por lo que los ISP que proporcionan el acceso a los sistemas terminales también
tienen que estar interconectados entre ellos. Estos ISP de nivel inferior se interconectan a través de los ISP de nivel
superior nacionales e internacionales, como AT&T y Sprint. Un ISP de nivel superior consiste en routers de alta
velocidad interconectados a través de enlaces de fibra óptica de alta velocidad. La red de cada ISP, sea de nivel
inferior o superior, se administra de forma independiente, ejecuta el protocolo IP y se ajusta a determinados convenios
de denominación y de asignación de direcciones.
Los sistemas terminales, los conmutadores de paquetes y otros dispositivos de Internet ejecutan protocolos que
controlan el envío y la recepción de la información dentro de Internet. El protocolo TCP (Transmission Control
Protocol) y el protocolo IP (Internet Protocol) son dos de los protocolos mas importantes de Internet. El protocolo IP
especifica el formato de los paquetes que se envían y reciben entre los routers y los sistemas terminales. Los
principales protocolos de Internet se conocen colectivamente como protocolos TCP/IP. Debido a la importancia de los
protocolos en Internet, es importante que todo el mundo este de acuerdo en que hacen todos y cada uno de ellos,
siendo aqui donde entran en juego los estándares. Los estándares de Internet son desarrollados por el IETF (Internet
Engineering Task Force). Los documentos asociados a estos estándares IETF se conocen como documentos RFC
(Request For Comments). Los RFC nacieron como solicitudes de comentarios de carácter general (de ahi su nombre)
para solucionar los problemas de diseño de la red y de los protocolos a los que se enfrento el precursor de Internet. El
contenido de estos documentos suele ser bastante técnico y detallado. Definen protocolos tales como TCP, IP, HTTP
(para la Web) y SMTP (para el correo electrónico).
Internet brinda, entre otras cosas, una infraestructura de comunicación que permite aplicaciones distribuidas (Web,
mail, games, e-commerce, file sharing), así como servicios de comunicación provistos a las aplicaciones (API), que
pueden ser: no orientados a la conexión(no confiable) y orientados a la conexión(confiable).
Hasta el momento hemos identificado muchos de los componentes que forman Internet, pero también podemos
describir Internet desde un punto de vista completamente diferente: como una infraestructura que proporciona
servicios a las aplicaciones. Entre estas aplicaciones se incluyen el correo electrónico, la navegación web, la
mensajería instantánea, Voz sobre IP (VoIP), los flujos de video, los juegos distribuidos, la televisión a través de
Internet, etc. Se dice que las aplicaciones son aplicaciones distribuidas, porque implican a varios sistemas terminales
que intercambian datos entre si. Es importante saber que las aplicaciones de Internet se ejecutan en los sistemas
terminales, no en los conmutadores de paquetes disponibles en el núcleo de la red. Aunque los dispositivos de
conmutación de paquetes facilitan el intercambio de datos entre sistemas terminales, no se preocupan de la aplicación
que este actuando como origen o destino de los datos.
Por ejemplo, diseñando una infraestructura que proporciona servicios a las aplicaciones. Puesto que las aplicaciones se
ejecutan en los sistemas terminales, tendremos que escribir programas software que se ejecuten en dichos sistemas.
Por ejemplo, podríamos escribir programas en Java, C o Python. Ahora bien, dado que estamos desarrollando una
aplicación Internet distribuida, los programas que se ejecuten en los distintos sistemas terminales tendrán que enviarse
datos entre si. Esta cuestión es la que nos lleva a la forma alternativa de describir Internet como una plataforma para
aplicaciones.

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.

PROTOCOLOS → Se establece una analogía con una conversación


humana: un mensaje específico es enviado, y una acción específica es
realizada una vez que el mensaje u otros eventos son recibidos. Tener
en cuenta que en el protocolo entre personas, existen mensajes
específicos que enviamos y acciones especificas que tomamos como
respuesta a los mensajes de contestación recibidos, o a otros sucesos.
Si las personas adoptan protocolos diferentes (por ejemplo, si una persona guarda las formas pero la otra no lo hace, o
si uno comprende el concepto de tiempo y el otro no), los protocolos no interoperarán y la comunicación no podrá
tener lugar. Esta misma idea también es aplicable a las redes: es necesario que las entidades (dos o mas) que deseen
comunicarse ejecuten el mismo protocolo para poder llevar a cabo la tarea.
Todas las actividades de comunicación en Internet son gobernadas por protocolos: conjunto de reglas que definen el
formato y orden de los mensajes enviados y recibidos entre entidades de la red y las acciones tomadas al transmitir o
recibir mensajes.

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.

Ventajas del BUS:

• Es más fácil conectar nuevos nodos a la red.

• Requiere menos cable que una topología estrella.


Desventajas del BUS:

• Toda la red se caería se hubiera una ruptura en el cable principal.

• Se requiere terminadores.

• Es difícil detectar el origen de un problema cuando toda la red cae.

• No se debe utilizar como única solución en un gran edificio.

⭘ 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))).

Demora de llegada de un nodo al otro:

dproc = demora de procesamiento: Típicamente unos


pocos microsegundos o menos.

dcola = demora de espera en cola(s): Depende de la


congestión (tráfico en nodo).

dtrans = demora de transmisión = L/R, significativo


en enlaces de baja tasa (“bajo ancho de banda” o
“baja velocidad”) en bps.

dprop = demora de propagación: De pocos


microsegundos a cientos de milisegundos.

¿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/servidorTerminales 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.

RED PERIFÉRICA – SERVICIO ORIENTADO A LA CONEXIÓN  su objetivo es transferir datos entre


sistemas terminales (hosts). Se realiza la preparación para la transferencia mediante ‘handshaking’ (‘Hola – Hola’ en
protocolos humanos). Esto fija “estado” en dos hosts comunicándose. Este servicio orientado a la conexión se
denomina Transmission Control Protocol (TCP). Es confiable, ordenado, y en caso de pérdidas se efectúan ‘acuses
de recibo’ y retransmisiones de los paquetes. Cuenta con control de flujo: (transmisor no debe sobrecargar al receptor)
y control de congestión (transmisor “baja tasa de envío” cuando la red está congestionada).
SERVICIO SIN CONEXIÓN Tiene el mismo objetivo que el TCP. Este protocolo, llamado UDP (User Datagram
Protocol) funciona sin conexión, con una transferencia de datos no confiable, y sin control de flujo ni de autogestión.
Aplicaciones que usan TCP  HTTP (Web), FTP (file transfer), Telnet (login remoto), SMTP (email)
Aplicaciones que usan UDP streaming media, teleconferencia, DNS, Telefonía en Internet (la voz)
RED INTERNA (NETWORK CORE) se constituye de una malla de routers interconectados. Los datos se
transfieren a través de las redes mediante:
- Conmutación de circuitos (circuit switching): Un circuito dedicado por cada “llamada” (e.g. red telefónica), o
- Conmutación de paquetes (packet switching): datos enviados a través de la red en bloques discretos.
Una vez vistas las aplicaciones y los sistemas terminales existentes en la “frontera de la red”, podemos pasar a ver las
redes de acceso, los enlaces físicos que conectan un sistema terminal con el primer router (conocido también como
“router de frontera”)* de una ruta entre el sistema terminal y cualquier otro sistema terminal distante. Enseguida
veremos que muchas de estas tecnologías de acceso emplean, en distintos grados, partes de la infraestructura de la
telefonía cableada tradicional local, la cual es proporcionada por la companía de telefonía local. Cada residencia
dispone de un enlace directo de cobre de par trenzado a un switch de la companía telefónica, el cual se encuentra en
una central telefónica. Normalmente, una companía telefónica local posee cientos de centrales telefónicas y enlaza a
cada uno de sus clientes con la central mas próxima.
Existen varias maneras de conectar terminales a un edge router, entre ellas: redes de acceso residencial, acceso
institucional (companías, colegios) y mediante redes de acceso móvil. Se debe considerar también el bandwidth (b/s)
de la red de acceso.
ACCESO RESIDENCIAL: PUNTO A PUNTO  esto se realizaba vía modem telefónico.
Otorgaba hasta 56Kbps acceso directo a router (a menudo menos), y no se podía navegar y llamar al
mismo tiempo: no podía permanecer “siempre on”. Hoy en día, los dos tipos de acceso residencial de
banda ancha predominantes son las líneas ADSL (Asynchronous Digital Subscriber Line) y el cable
(más del 50% de los domicilios disponen de acceso de banda ancha) Por regla general, los domicilios
particulares contratan el servicio ADSL de acceso a Internet con la misma empresa que le
proporciona el acceso telefónico local (es decir, la companía telefónica). Por tanto, cuando se utiliza el acceso
mediante ADSL, la companía telefónica del cliente también actúa como ISP. Cada modem ADSL de un cliente utiliza
la línea telefónica existente (hilo de cobre de par trenzado) para intercambiar datos con un multiplexor de acceso
ADSL (ADSLAM), que normalmente se encuentra en la central de la companía telefónica. La línea telefónica
transporta simultáneamente los datos y las señales telefónicas, las cuales se codifican a frecuencias distintas:
 Un canal de descarga de alta velocidad opera en la banda de 50 kHz a 1 MHz.
 Un canal de carga de velocidad media opera en la
banda de 4 kHz a 50 kHz.
 Un canal telefónico ordinario bidireccional opera en
la banda de 0 a 4 kHz.

Este método hace que un único enlace DSL se comporte


como tres enlaces separados, de manera que una
llamada de teléfono y una conexión a Internet pueden
compartir el enlace ADSL a un mismo tiempo. En el lado del cliente, las señales que llegan al domicilio son separadas
como señales de datos y telefónicas mediante un circuito separador (splitter) que reenvía la señal de datos al
modem DSL. En el lado de la companía telefónica, en la central, el multiplexor DSLAM separa las señales de datos y
de telefonía y envía los datos a Internet. ADSL presenta dos ventajas principales en comparación con el método de
acceso telefónico a Internet. En primer lugar, puede transmitir y recibir datos a velocidades mucho más altas.
Típicamente, un cliente ADSL presentara una velocidad de transmisión en el rango comprendido entre 1 y 12 Mbps
para las descargas (comunicaciones desde la central al domicilio del usuario) y de entre 128 kbps a 1.5 Mbps para las
cargas (comunicaciones desde el domicilio a la central). Puesto que las velocidades de descarga y carga son
diferentes, se dice que el acceso es asimétrico. La segunda ventaja importante es que los usuarios pueden hablar por
teléfono y acceder a Internet simultáneamente. A diferencia del método de acceso telefónico, el usuario no tiene
que llamar al número de teléfono del ISP para tener acceso a Internet; en su lugar, dispone de una conexión
permanente “siempre activa” con el DSLAM del ISP (y por tanto con Internet).
ACCESO RESIDENCIAL: CABLE MODEMS  se efectúa a traves de redes de cable coaxial. En un sistema de television
por cable tradicional, el terminal de cabecera de cable difunde los canales de television a traves de una red de
distribucion de cable coaxial y amplificadores hasta los domicilios de los usuarios. Mientras que la ADSL y el acceso
telefónico emplean la infraestructura de la telefonía local existente, el acceso por cable a Internet utiliza la
infraestructura de la televisión por cable existente. Las casas obtienen el acceso por cable a Internet de la misma
companía que proporciona la televisión por cable. Como se ilustra en la Figura 1.7, la fibra óptica conecta el terminal
de cabecera del cable a una serie de nodos de área situados en el vecindario, a partir de los cuales se utiliza el cable
coaxial tradicional para llegar a todos los domicilios. Cada nodo de área suele dar soporte a entre 500 y 5.000
viviendas. Puesto que en este sistema se emplea tanto cable coaxial como fibra, a menudo se denomina sistema HFC
(Hybrid Fiber Coax, Hibrido de fibra y coaxial). El acceso por cable a Internet requiere el uso de módems especiales,
que se conocen como modems por cable. Al igual que un modem ADSL, normalmente el modem por cable es un
dispositivo externo que se conecta a una PC a través de un puerto Ethernet. Los modems por cable dividen la red
HFC en dos canales: un canal de descarga y un canal de carga. Al igual que en el caso de la ADSL, el acceso suele ser
asimétrico, teniendo normalmente el canal de descarga asignada una velocidad de transmisión mayor que el canal
de carga. Una característica importante del acceso a Internet por cable es que se trata de un medio de difusión
compartido. Es decir, cada uno de los paquetes enviados por el terminal de cabecera se descargan a traves de cada
enlace hasta cada vivienda y los
paquetes enviados desde las viviendas
viajan a través del canal de carga hasta
el terminal de cabecera. Así, si varios
usuarios descargan simultáneamente un
archivo de video a través del canal de
descarga, la velocidad real a la que cada
usuario recibe su archivo de video será
significativamente menor que la velocidad acumulada de descarga por cable. Por el contrario, si solo hay unos pocos
usuarios activos que están navegando por la Web, cada uno de ellos recibirá las páginas web a la velocidad de
descarga máxima del cable, ya que los usuarios rara vez solicitaran una página web al mismo tiempo. Puesto que el
canal de carga también esta compartido, se necesita un protocolo distribuido de acceso múltiple para coordinar las
transmisiones y evitar las colisiones. En favor de la tecnología ADSL debemos apuntar que se trata de una conexión
punto a punto entre la vivienda y el ISP y que, por tanto, toda la capacidad de transmisión del enlace ADSL entre el
domicilio y el ISP está dedicada en lugar de ser compartida. Sin embargo, podemos decir en favor de la transmisión
por cable que una red HFC correctamente dimensionada proporciona velocidades de transmisión más altas que la
ADSL. En las áreas rurales, donde no está disponible ninguna de estas tecnologias, se puede utilizar un enlace via
satelite para conectar una vivienda con Internet a velocidades superiores a 1 Mbps; (StarBand y HughesNet). Revisar
contra diap34

MEDIOS FÍSICOS: COAXIAL Y FIBRA 

CABLE COAXIAL: CABLE DE FIBRA ÓPTICA:


 Dos conductores concéntricos de cobre con aislante  Fibra de vidrio transportando pulsos de luz, cada
entre ellos pulso un bit
 bidireccional  Operación a alta velocidad:
 Banda base: Transmisión punto-a-punto (e.g., 5 Gbps)
Un único canal en el cable  Baja tasa de errores: repetidores espaciados a
Ethernet original distancia; inmune a ruido electromagnético, ataques.
 Banda amplia:
múltiples canales en el cable
HFC (Hybrid Fiber Coax)
Internet+TV+Teléfono por cable

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.

MEDIOS FÍSICOS: RADIO 


 Señal transportada en espectro Tipos de radio enlaces:
electromagnético  Microondas terrestres (e.g. canales de hasta 45
 no “cable” físico Mbps)
 bidireccional  LAN (e.g., Wifi) 2Mbps, 11Mbps, 54Mbps
 Efectos del ambiente de propagación:  Área amplia (e.g., celular)3G: cientos de kbps
- reflexiones  Satélite
- obstrucción por objetos - Canales de hasta 50Mbps (o varios canales más
- interferencia pequeños)
- 270 msec retardo extremo a extremo
- Geo-estacionarios versus baja altitud (poca versus
alta latencia)

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 enlaceLa 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.

EJEMPLO: La Figura muestra la ruta física que siguen los


datos al descender por la pila de protocolos de un sistema
terminal emisor, al ascender y descender por las pilas de
protocolos de un switch de la capa de enlace y de un
router, para finalmente ascender por la pila de protocolos
del sistema terminal receptor. Los routers y los switches
de la capa de enlace operan como dispositivos de
conmutación de paquetes. De forma similar a los sistemas
terminales, los routers y los switches de la capa de enlace
organizan su hardware y software de red en capas. Pero
estos dispositivos no implementan todas las capas de la
pila de protocolos; habitualmente solo implementan las
capas inferiores. Los switches de la capa de enlace
implementan las capas 1 y 2; y los routers implementan las capas 1 a 3. Esto significa, por ejemplo, que los routers de
Internet son capaces de implementar el protocolo IP (un protocolo de la capa 3) y los switches de la capa de enlace no.
(aunque los switches de la capa de enlace no reconocen las direcciones IP, pueden reconocer las direcciones de la capa
2, como por ejemplo las direcciones Ethernet). Los hosts implementan las cinco capas, lo que es coherente con la idea
de que la arquitectura de Internet es mucho más compleja en las fronteras de la red. La Figura también ilustra el
importante concepto de encapsulación. En el host emisor, un mensaje de la capa de aplicación se pasa a la capa
de transporte. En el caso más simple, la capa de transporte recibe el mensaje y añade información adicional
(denominada información de cabecera de la capa de transporte, Ht) que será utilizada por la capa de transporte del
lado receptor. El mensaje de la capa de aplicación y la información de cabecera de la capa de transporte constituyen el
segmento de la capa de transporte. El segmento de la capa de transporte encapsula el mensaje de la capa de
aplicación. La información añadida debe incluir información que permita a la capa de transporte del lado receptor
entregar el mensaje a la aplicación apropiada y los bits de detección de errores que permitan al receptor determinar si
los bits del mensaje han cambiado a lo largo de la ruta. A continuación, la capa de transporte pasa el segmento a la
capa de red, que añade información de cabecera de la capa de red (Hn) como son las direcciones de los sistemas
terminales de origen y de destino, creando un datagrama de la capa de red. Este datagrama se pasa entonces a la
capa de enlace, que añadirá su propia información de cabecera dando lugar a una trama de la capa de enlace. Así,
vemos que en cada capa, un paquete está formado por dos tipos de campos: los campos de cabecera y un campo de
carga útil. Normalmente, la carga útil es un paquete de la capa superior. Una buena analogía para ilustrar este
tema seria el envío de un informe interno de empresa desde una sucursal a otra a través del servicio postal público.
Supongamos que una persona, que se encuentra en una sucursal, quiere enviar un informe a otra, que se encuentra en
la otra sucursal. El informe es análogo al mensaje de la capa de aplicación. Persona1 introduce el informe en un
sobre para correo interno de la empresa y escribe en él el nombre y el número de departamento de Persona2. El sobre
para correo interno es análogo a un segmento de la capa de transporte (contiene la información de cabecera, el
nombre y el departamento de Persona2) y encapsula el mensaje de la capa de aplicación (el informe). Cuando en la
sala de correo de la sucursal emisora se recibe este sobre, lo meten en otro sobre adecuado para enviar el informe
mediante el servicio público de correos. En la sala de correo de la empresa también se escriben en el segundo sobre las
direcciones postales tanto de la sucursal emisora como de la sucursal receptora. Aquí, el sobre postal es análogo al
datagrama, encapsula el segmento de la capa de transporte (el sobre para correo interno), que encapsula el mensaje
original (el informe). El servicio postal entrega el sobre postal a la sala de correos de la sucursal receptora, donde
comienza el proceso de desencapsulación. En esta sala se extrae el informe y se envía a Persona2. Por último, éste
abre el sobre para correo interno y saca el informe. El proceso de encapsulación puede ser más complejo que el que
acabamos de describir. Por ejemplo, un mensaje largo puede dividirse en varios segmentos de la capa de transporte
(los cuales a su vez pueden dividirse en varios datagramas de la capa de red). En el extremo receptor, cada segmento
tiene entonces que ser reconstruido a partir de sus datagramas constituyentes.
ESTRUCTURA DE INTERNET: RED DE REDES  En la red pública Internet, los ISP de acceso situados en la
frontera de Internet están conectados al resto de Internet a través de una jerarquía de niveles de proveedores ISP. Los
ISP de acceso se sitúan en el nivel inferior de esta jerarquía. En el nivel superior de la jerarquía se encuentran en un
número relativamente más pequeño los ISP de nivel 1(también conocidos como redes troncales de Internet). Por un
lado, un ISP de nivel 1 es igual que cualquier red (está formado por enlaces y routers, y está conectado a otras
redes). Sin embargo, estos ISP presentan otras características que los hacen especiales: La velocidad de enlace suele
ser de 622 Mbps o superior, por lo que los ISP de nivel 1 de mayor tamaño disponen de enlaces en el rango
comprendido entre 2,5 y 10 Gbps; en consecuencia, sus routers deben poder reenviar los paquetes a velocidades
extremadamente altas. Además, también se caracterizan por lo
siguiente:
 Están conectados directamente a cada uno de los restantes
ISP de nivel 1; se tratan entre sí como iguales.
 Están conectados a un gran número de ISP de nivel 2 y a otras
redes cliente.
 Proporcionan cobertura nacional e internacional.

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:

 Recibe frame MAC de LAN Origen


 Analiza encabezamiento, y selectivamente reenvía tramas, basándose en la dirección MAC destino. A la hora de
reenviar, usa CSMA/CD para acceder al medio.
 Realiza conversiones necesarias y determina por dónde enviar
 Genera nuevo encabezamiento para LAN Destino y envía
 Es transparente, ya que los hosts no notan la presencia de los switches.
 Son ‘plug-and-play’, no necesitan ser configurados, ya que ‘aprenden’ solos.

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/SALIDAla 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:

 1ª gen (Lx 1.1): ipfw (BSD)


 2ª gen (Lx 2.0): ipfwadm ejecutado en espacio de usuario. Basada en el ipfw de BSD, se encargaba de controlar
reglas de filtrado del núcleo (1994).
 3ª gen (Lx 2.2): ipchains introduce mejoras (combinación de módulos y programas de usuario) pero sigue siendo
filtrado estático.
 4ª gen (Lx 2.4): la API de ipchains se reescribe dando lugar a iptables incorpora filtrado dinámico (stateful).
 A partir del núcleo Linux 2.3.15 se utiliza el módulo NetFilter junto con la utilidad iptables. Netfilter permite el
filtrado de paquetes (ya sea con o sin estado), la traslación de direcciones [y puertos] (NA[P]T) y otras
manipulaciones sobre el datagrama IP
(packet mangling).

NAT: Network Address Translation  Después


de haber estudiado las direcciones de Internet y
el formato de los datagramas IPv4, somos
completamente conscientes de que todo
dispositivo IP necesita una dirección IP. Con la
proliferación de las subredes domésticas y de oficina pequeña (SOHO, Small Office, Home Office), podría parecer que
esto implica que, cuando una red SOHO desea instalar una LAN para conectar varias maquinas, el ISP debería asignar
un rango de direcciones para cubrir todas las maquinas de la red SOHO. Si la subred creciera (por ejemplo, porque
los habitantes de la casa no solo disponen ya de sus propias computadoras, sino que también tienen dispositivos
PDA, teléfonos IP y Game Boys conectadas en red), habría que asignar un bloque de direcciones enorme. Pero, que
ocurre si el ISP ya ha asignado las porciones adyacentes al rango de direcciones actualmente en uso de la red SOHO?,
Y que persona normal querría (o necesitaría) saber cómo gestionar las direcciones IP de la red de su casa?
Afortunadamente, existe una forma más simple de asignar direcciones que ha encontrado un uso cada vez más
amplio en escenarios de este tipo: la traducción de direcciones de red (NAT, Network Address Translation) [RFC
2663; RFC 3022].
Funcionamiento de un router NAT
Este router, que se encuentra en una vivienda, tiene una interfaz que es parte de la red domestica situada en la
parte derecha de la Figura. El direccionamiento dentro de la red domestica nos informa que las cuatro interfaces de
la red tienen la misma dirección de subred 10.0.0/24. El espacio de direcciones 10.0.0.0/8 corresponde a una de las
tres partes del espacio de direcciones IP que está reservado en [RFC 1918] para una red privada o para un ámbito
con direcciones privadas. Un ámbito con direcciones privadas hace referencia a una red cuyas direcciones solo
tienen significado para los dispositivos internos de dicha red. Veamos por qué esto es importante: considere el
hecho de que existen cientos de miles de redes domesticas, y que muchas utilizan el mismo espacio de direcciones,
10.0.0.0/24. Los dispositivos de una red domestica dada pueden enviarse paquetes entre sí utilizando el
direccionamiento 10.0.0.0/24. Sin embargo, los paquetes reenviados hacia fuera de la red domestica, hacia Internet,
evidentemente no pueden utilizar estas direcciones (ni como dirección de origen ni como dirección de destino),
porque existen cientos de miles de redes que emplean ese bloque de direcciones. Es decir, las direcciones
10.0.0.0/24 solo tienen significado dentro de una red domestica dada. Pero si las direcciones privadas solo tienen
significado dentro de la red, como se direccionan los paquetes cuando se envían a Internet o se reciben de Internet,
donde necesariamente las direcciones tienen que ser únicas? Para entender esto hay que comprender como
funciona NAT.
El router NAT no parece un router a ojos del mundo exterior. En su lugar, el router NAT se comporta de cara al exterior
como un único dispositivo con una dirección IP única. En la Figura, todo el tráfico que sale del router domestico hacia
Internet tiene una dirección IP de origen igual a 138.76.29.7, y todo el tráfico que entra en el tienen que tener la
dirección de destino 138.76.29.7. En resumen, el router NAT oculta los detalles de la red domestica
al mundo exterior. (Como nota al margen, posiblemente se esté preguntando donde obtienen las computadoras de
la red domestica sus direcciones y donde obtiene el router su dirección IP única. A menudo, la respuesta a ambas
preguntas es la misma: DHCP. El router obtiene su dirección del servidor DHCP del ISP y el router ejecuta un servidor
DHCP para proporcionar direcciones a las computadoras, dentro del espacio de direcciones de la red domestica
controlada por el router NAT-DHCP.) Si todos los datagramas que llegan al router NAT procedentes de la WAN tienen
la misma dirección IP de destino (específicamente, la de la interfaz WAN del router NAT), entonces como sabe el
router a que host interno debería reenviar un datagrama dado? El truco consiste en utilizar una tabla de
traducciones NAT almacenada en el router NAT, e incluir los números de puerto, así como las direcciones IP en las
entradas de la tabla.

La implementación de un ruteador NAT se efectúa de la siguiente manera:


 Para Datagramas salientes: remplazar (IP origen, #puerto) de cada datagrama saliente por (IP NAT, nuevo
#puerto). Clientes y servidores remotos responderán usando (IP NAT, nuevo #puerto) como dirección destino.
 Recordar (en tabla de traducción NAT) cada par de traducción (IP origen, #puerto) a (IP NAT, nuevo #puerto)
 Para Datagramas entrantes: remplazar (IP NAT, nuevo #puerto) en campo destino de cada datagrama entrante
por correspondiente (IP origen, #puerto) almacenado en tabla NAT.
EJEMPLO: Suponga que un usuario de una red domestica que utiliza el host con la dirección 10.0.0.1 solicita una
página web almacenada en un servidor web (puerto 80) con la dirección IP 128.119.40.186. El host 10.0.0.1 asigna el
número de puerto de origen (arbitrario) 3345 y envía el datagrama a la LAN. El router NAT recibe el datagrama,
genera un nuevo número de puerto de origen, 5001, para el datagrama, sustituye la dirección IP de origen por su
dirección IP de la red WAN 138.76.29.7, y sustituye el numero de puerto de origen original 3345 por el nuevo
número de puerto de origen 5001. Al generar un nuevo número de puerto de origen, el router NAT puede
seleccionar cualquier número de puerto de origen que actualmente no se encuentre en la tabla de traducciones
NAT. (Observe que, puesto que la longitud del campo numero de puerto es 16 bits, el protocolo NAT puede dar
soporte a 60.000 conexiones simultáneas utilizando la única dirección IP WAN del router.) En el router, NAT también
añade una entrada a su tabla de traducciones. El servidor web, que afortunadamente no es consciente de que el
datagrama entrante que contiene la
solicitud HTTP ha sido manipulado por el
router NAT, responde con un datagrama
cuya dirección de destino es la dirección IP
del router NAT y cuyo número de puerto de
destino es 5001. Cuando este datagrama
llega al router NAT, este indexa la tabla de
traducciones NAT utilizando la dirección IP
de destino y el número de puerto de destino
para obtener la dirección IP (10.0.0.1) y el
numero de puerto de destino (3345)
apropiados para el navegador de la red
domestica. A continuación, el router reescribe la dirección de destino y el numero de puerto de destino del
datagrama y lo reenvía a la red domestica.

OBJECIONES DEL USO DE NAT


1) En primer lugar, se argumenta que los números de puerto deben emplearse para direccionar procesos, no para
direccionar hosts (de hecho, esta violación puede causar problemas en los servidores en ejecución en la red
domestica, ya que, los procesos de servidor están a la espera de las solicitudes entrantes en los puertos bien
conocidos).
2) En segundo lugar, argumentan que los routers están pensados para procesar paquetes solo hasta la capa 3.
3) En tercer lugar, opinan que el protocolo NAT viola lo que se ha venido a denominar el enfoque terminal a
terminal, es decir, que los hosts deben comunicarse directamente entre sí, sin que los nodos intermedios
modifiquen las direcciones IP y los números de puerto.
4) En cuarto lugar, creen que debería utilizarse IPv6 para resolver la falta de direcciones IP, en lugar de parchear el
problema con una solución milagrosa como NAT.

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:

 Filtrado de paquetes (packet filtering).


 Seguimiento de conexiones (connection tracking) y mantenimiento de registros de log.
 Traduccion de direcciones IP y puertos (NAT).

Hay 3 conceptos básicos en iptables: reglas, cadenas y tablas.


El nombre iptables se utiliza frecuentemente de forma errónea para referirse a toda la infraestructura ofrecida por
el proyecto Netfilter. Iptables es un software disponible en prácticamente todas las distribuciones de Linux actuales.
El proyecto Netfilter/iptables fue el sucesor del proyecto ipchains.
Las reglas en iptables implican una condición y una acción. Una condición refiere a las características que debe
cumplir un paquete para que la regla le sea aplicable. Una acción, indica lo que se hace con el paquete si cumple la
condición de la regla: accept (acepta el paquete), drop (lo descarta y no envía ningún paquete de respuesta), SNAT -
-to-source- num de ip origen (le cambia la IP origen al paquete).
 Las reglas de filtrado de paquetes especifican un criterio de matching:
- Source and Destination IP addresses, ports
- Source MAC Address
- States
- Invalid Packets  CRC error, fragments, ...
- TCP flags SYN, FIN, ACK, RST, URG, PSH, ALL, NONE
 Qué se puede hacer en respuesta?
- Accept, Reject. Drop, saltar a otra cadena, …
 Las reglas se mantienen en la memoria del Kernel, y pueden ser guardadas en un archivo y insertarlas
cuando inicia el sistema operativo.
Una cadena es una lista ordenada de reglas. Para cada paquete se va comprobando si se le aplica cada regla de la
cadena (es decir, si cumple la condición):
 Si una regla NO se aplica a un paquete, se pasa a la siguiente regla de la cadena.
 Si una regla SI se aplica a un paquete, se ejecuta la acción definida en dicha regla y, (salvo excepciones) ya no se
comprobarán más reglas de la cadena.

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.

Existen varios tipos de cadenas:


PREROUTING: Se aplican a los paquetes que llegan a la
maquina. Esta cadena se ejecuta antes de comprobar si el
paquete es para la propia maquina o hay que reenviarlo.
INPUT: Se aplican a los paquetes destinados a la propia
maquina. Esta cadena se ejecuta justo antes de entregarlos
a la aplicación local.
FORWARD: Se aplican a los paquetes que han llegado a la
maquina pero van destinados a otra y hay que reenviarlos.
Esta cadena se ejecuta antes de consultar la tabla de enrutamiento.
OUTPUT: Se aplican a los paquetes creados por la propia maquina. Esta cadena se ejecuta justo después de que la
aplicación le pase los datos a enviar al kernel del sistema operativo y antes de consultar la tabla de encaminamiento.
POSTROUTING: Reglas que se aplican a los paquetes que salen de la maquina, tanto los creados por ella como los
que se reenvían. Esta cadena se ejecuta después de consultar la tabla de encaminamiento.
A su vez, las cadenas se agrupan en tablas. Una tabla de iptables contiene un conjunto de cadenas. Una tabla
concreta engloba las reglas (agrupadas en cadenas) relacionadas con un tipo de procesamiento de los paquetes.
Netfilter define las siguientes tablas:
FILTER: engloba las reglas de filtrado de paquetes, es decir, de las que deciden que un paquete continúe su camino o
sea descartado.
NAT: engloba las reglas de modificación de direcciones IP y puertos de los paquetes
MANGLE: engloba las reglas de modificación de algunos campos de las cabeceras del paquete. Ejemplo: TTL
RAW: engloba las reglas que permiten marcar excepciones al seguimiento que hace el kernel de las conexiones (por
ej TCP) de la máquina.

FALTA INCLUIR COMANDOS E IMÁGENES DE EJEMPLO DE CAMINO DE LOS PAQUETES.


APLICACIONES DE RED, ALGUNOS EJEMPLOS :
 E-mail
 Web
 Mensajería instantánea
 Reproducción de videos almacenados (Netflix, Youtube)
 Telefonía internet(VoIP - Skype)
APLICACIONES DE RED -- > Son diseños que permiten desarrollos rápidos, y corren en diferentes sistemas y se
comunican por la red.(Por ej. Web: Programa del servidor Web se comunica con el programa del navegador). Este
término no se refiere a software escrito para los dispositivos en la red interna; los dispositivos internos de la red
(routers, switches) no funcionan en la capa aplicación. Algunos ejemplos de arquitecturas de aplicación son : P2P,
Cliente-Servidor e híbridos de éstos dos. Si consideramos la arquitectura Cliente-servidor, podremos ver que existen
dos participantes principales: servidor y cliente. El servidor, que es un computador ‘siempre on’, el cual sirve los
requests hechos por otros hosts, los clientes. Con una dirección IP fija y conocida (sumado a su característica always
on, el cliente siempre puede contactar al servidor enviando un paquete a su IP). El cliente se comunica con el
servidor, no con otros clientes. Puede conectarse intermitentemente y sus direcciones IP pueden ser dinámicas (no
estática). En ocasiones, la demanda de requests de hosts es demasiada para que un solo servido pueda manejarla.
Por esta razón, se implementan los data centers, que constituyen poderosos servers virtuales.
En la arquitectura P2P, la responsabilidad no se delega a los servers en los data centers, si no que se explota la
comunicación directa entre pares de hosts conectados intermitentemente, los peers. Estos no son propiedad de
quien provee el servicio, sino que son máquinas y equipos controlados por usuarios, en casas, universidades,
oficinas, etc. Esta arquitectura recibe su nombre (P2P) a partir del hecho de que los peers se comunican sin pasar
por medio de un server. Una de las características más importantes de esta arquitectura es que es auto-escalable:
por ejemplo, si bien cada peer genera carga de trabajo cada vez que hace un request de archivos, a su vez también
añade capacidad al server cuando distribuyen archivos a otros peers. Dado que estas arquitecturas no requieren
demasiada infraestructura también resultan económicas. Por otro lado, es importante considerar que también estas
arquitecturas pueden presentar problemas al ser administradas y de seguridad. Además, se debe considerar la
necesidad que tiene esta arquitectura de sus peers, y sus colaboraciones en cuanto a ancho de banda,
almacenamiento y recursos computacionales para brindar a las aplicaciones.
También existen híbridos, que combinan las dos arquitecturas antes mencionadas:
 Napster
- Búsqueda de archivos centralizada:
• Pares registran contenidos en servidor central
• Pares consultan algún servidor central para localizar el contenido

- Transferencia de archivos P2P


 Mensajería Instantánea
- Diálogo entre los usuarios es P2P (no pasa por servidor)
- Detección/localización de presencia es centralizada:
• Usuario registra su dirección IP en un servidor central cuando ingresa al sistema
• Usuarios contactan servidor central para encontrar las direcciones IP de sus amigos.
Procesos que se comunican --> Un proceso puede pensarse como un programa corriendo en un computador. Dentro
de la misma máquina, dos procesos se comunican usando comunicación entre procesos (usando reglas que son
definidas por el sistema operativo). Cuando los procesos se encuentran en diferentes sistemas, se comunican
mediante el intercambio de mensajes a través de la red: un proceso de envío crea y envía mensajes a la red y otro de
recepción recibe los mensajes y los responde. Estos procesos que se comunican unos con otros residen en la capa de
aplicación.
Una aplicación de red consiste en pares de procesos que envían mensajes unos a otros a través de una red. Por
ejemplo, si hablamos de una aplicación Web, el proceso de browser del cliente intercambia mensajes con el proceso
del servidor web. En el caso de P2P, un archivo se transfiere desde un proceso en un peer hacia otro proceso en otro
peer. A este par de procesos que se comunican, los denominamos cliente y servidor. En la ap. Web, el browser es el
proceso cliente y el servidor web es el proceso servidor. En P2P, el peer que está descargando el archivo es el
cliente, y aquel peer que sube el archivo es el servidor. En este ámbito, los peers pueden ser ambos cliente y servidor
(en cualquier momento dado pueden subir o descargar archivos).
En resumen, en el contexto de una sesión de comunicación entre un par de procesos, el proceso que inicia la
comunicación (esto es, el que contacta al otro proceso al inicio de la sesión) es el cliente. El proceso que espera a ser
contactado para comenzar la sesión es el servidor.
Un proceso envía mensajes y los recibe desde la red a través de una interfaz de software, llamada socket.
Elaboremos una analogía: un proceso es análogo a una casa y su socket es análogo a su puerta. Cuando un proceso
desea enviar un mensaje a otro proceso que se encuentra en un host diferente, deja salir el mensaje de su puerta
(socket). Este proceso de envío asume que hay una “infraestructura de transporte” al otro lado de su puerta que
transportara ese mensaje la puerta destino. Una vez que el mensaje llega al host destino, pasa por la puerta del
proceso de recepción (socket) y entonces este proceso puede actuar sobre el mensaje. Un socket también puede ser
referido como una API (Application Programming Interface) entre la aplicación y la red, dado que el socket es la
interfaz de programación con la cual las
aplicaciones de red son construidas.
De la misma manera que para poder
enviar una carta necesitamos un
destinatario con una dirección, para que
un proceso corriendo en un host pueda
enviar paquetes a otro (que está
corriendo en otro host), el proceso de
recepción tiene que tener una dirección.
Para identificar el proceso de recepción,
necesitamos dos cosas: 1) la dirección de
host 2) un identificador que especifique el proceso de recepción en el host destino. En internet, el host se especifica
mediante su dirección IP(unívoca de 32 bits). Además de conocer la dirección IP del host destino, el proceso de
envío también debe identificar el proceso de recepción (más específicamente, el socket de recepción) que está
corriendo en el host. Esta información resulta importante porque, en general, un host puede estar corriendo varias
aplicaciones de red simultáneamente. Para ello, se necesita un numero de puerto(positivo y de 16 bits).
Aplicaciones populares tiene asignados números de puerto específicos (por ej. Un servidor web tiene el puerto
numero 80, un proceso mail server tiene el 25).
Protocolo de capa-aplicación -- > este protocolo define como los procesos de una aplicación (en distintos extremos
de un sistema) se pasan mensajes unos a otros. En particular, un protocolo de C-A define:
 Los tipos de mensajes que se intercambian (por ej. mensajes de solicitud y mensajes de respuesta).
 La sintaxis de los tipos de mensajes, tales como los campos del mensaje y como se definen.
 La semántica de los campos, es decir, el significado de la información que contienen.
 Las reglas para poder determinar cuándo y cómo un proceso envía y responde a los mensajes.

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.

¿Por qué usar web caching? En primer lugar, reduce sustancialmente el


tiempo de respuesta para las peticiones del cliente. También, reduce tráfico en el enlace de acceso al ISP y en la
Web, beneficiando a todas los proveedores de contenido, dado que pueden seguir entregando su contenido en
forma efectiva.
Por otro lado, un proxy es un servicio que consiste en realizar una solicitud a pedido de otro. Por ejemplo podemos
usar proxy para acceder a servicios externos de una intranet, para que desde fuera no se sepa qué computadores
hay dentro. El origen es siempre el mismo.
FILE TRANSFER PROTOCOL (FTP) -- > En una sesión FTP, el usuario se encuentra frente al host local y desea transferir
archivos desde o hacia un host remoto. Para que el usuario pueda acceder a la cuenta remota, debe ingresar
identificación de usuario y pass. Luego de esto, el usuario
podrá transferir archivos de su sistema de archivos local hacia
el sistema de archivos remoto y viceversa. El usuario interactúa
con FTP a través de un agente de usuario FTP. Primero, el
usuario provee el nombre de host del host remoto, causando
que el proceso cliente FTP en el host local establezca una
conexión TCP con el proceso servidor FTP en host remoto.
Luego, el usuario provee su identificación de usuario y
password , los cuales son enviados con la conexión TCP como parte de comandos FTP. Una vez que el server autorizó
al usuario, el usuario puede copiar uno o más archivos (guardados en el sistema de archivos local) al sistema de
archivos remoto (o viceversa). Similar al prot. HTTP, este también corre sobre TCP. Sin embargo, los dos tienen
diferencias: FTP usa dos conexiones TCP paralelas para transferir un archivo; una conexión de control y una
conexión de datos. La conexión de control se usa para enviar información de control entre los dos hosts (info tal
como identificación de usuario, pass, comandos para cambiar el directorio remoto, y comandos PUT y GET para los
archivos) La conexión de datos es usada para enviar el archivo. Dado que FTP usa una conexión de control separada,
se dice que envía su información de control ‘fuera de banda’. Mientras tanto, HTTP, envía requests y respuestas
dentro de la misma conexión TCP que transporta el archivo que se va a transferir. Por ello, se dice que HTTP envía su
información de control ‘en banda’.
Cuando un usuario comienza una sesión FTP con un host remoto, el lado cliente del FTP (usuario) inicia una conexión
TCP de control con el lado del servidor (host remoto) en el puerto 21 del servidor (server tiene puerto 21 por
defecto, el cliente se conecta desde cualquier puerto). El lado del cliente de FTP envía la identificación de usuario y el
pass a través de esta conexión, y navega por el directorio remoto enviando comandos por la conexión de control.
Cuando el lado del servidor recibe un una petición para transferir un archivo mediante la conexión de control (ya sea
desde o hacia el host remoto), el servidor inicia una conexión de
datos TCP hacia el lado del cliente (esto es el modo activo).
Mediante esta conexión, FTP envía solo UN archivo y luego cierra
la conexión. En el caso de que el cliente requiera más archivos, se
abre otra conexión de datos (esto significa que las conexiones de
datos son no persistentes). Sin embargo, con FTP, la conexión de
control se mantiene abierta durante lo que dure la sesión del
usuario. A través de la sesión, el server FTP debe mantener el
estado del usuario, es decir, asociar la conexión de control con una
cuenta de usuario específica, y llevar cuenta del directorio actual del usuario a medida que el mismo navega por el
directorio remoto. Esto tiene un impacto en la cantidad de sesiones que el FTP puede mantener abiertas
simultáneamente. FTP no encripta su tráfico, tanto el pass como los datos transferidos pueden ser leídos al tener
acceso a los paquetes de la conexión. Hoy puede usarse SFTP, su equivalente con transferencias encriptadas.
DNS (Domain Name Server) -- > De la misma manera en la que los humanos podemos identificarnos, los host de
internet también pueden hacerlo. Un identificador para un host es su nombre de host. Por ejemplo,
cnn.com,www.yahoo.com,gaia.cs.umass.edu, etc. Sin embargo, estos proveen poca información acerca de la
localización en internet del host. Además, dado que los hosts tienen caracteres alfanuméricos, resultan difíciles de
procesar para el router. Por estas razones, los hosts también se identifican a partir de sus direcciones IP. Éstas se
consideran ‘jerárquicas’, dado que a medida que la analizamos de izquierda a derecha, obtenemos más información
acerca de la localización del host en internet. Considerando que la gente prefiere la identificación mas ‘legible’,
mientras que los routers prefieren la identificación mediante direcciones IP, se necesita encontrar un punto medio
para estos dos. Esto llega con el DNS, que traduce los nombres de host a direcciones IP. El DNS es:
1) Una base de datos distribuida implementada en una jerarquía de muchos servidores de nombres (DNS).
2) Protocolo de capa aplicación permite a host, routers, y servidores de nombre comunicarse para resolver nombres
(traducción nombre/dirección).
No está orientado al uso directo de los usuarios, ellos usan nombres. DNS es una función central de la Internet
implementada como protocolo de capa aplicación. La idea de diseño de Internet es dejar la complejidad en la
“periferia” de la red.
Por ejemplo, cuando un browser (cliente HTTP) que está corriendo en el host de un user, hace un request a la URL
www.someschool.edu/index.html. Para que el host pueda enviar un mensaje de request HTTP al servidor web
www.someschool.edu, primero debe obtener la dirección IP de dicha página. Esto se hace de la siguiente manera:
1) La maquina del usuario corre el lado cliente de la aplicación DNS.
2) El browser extrae el nombre de host (www.someschool.edu) de la URL y lo pasa al lado cliente de la aplicación
DNS.
3) El lado cliente DNS envía un comando que contiene ese nombre de host a un servidor DNS.
4) El cliente eventualmente recibe una respuesta, que incluye la dirección IP del nombre de host.
5) Una vez que el browser recibe la dirección IP, puede iniciar una conexión TCP al proceso de servidor HTTP que se
encuentra en el puerto 80 y con esa dirección IP antes obtenida.
En ocasiones, la dirección IP que se quiere obtener se encuentra ‘cacheada’ en una servidor DNS cercano, lo que
ayuda a reducir el tráfico en la red DNS, además del delay habitual.
Algunos servicios que ofrece DNS (además de traducir nombres de host a direcciones IP) son:
 Provee alias para host: un host con un nombre complejo puede tener uno o más alias. Por ejemplo, el host
asrelay1.west-coast.enter-prise.com podría tener dos alias: enterprise.com y www.enterprise.com. En este caso, el
alias original se podría considerar como canónico. Los alias, tienden a ser más mnemónicos.
 Provee alias para servicio de mail.
 Distribución de carga: esta se efectúa entre servers replicados, tales como Web servers. Sitios con mucho tráfico
se replican a través de varios servers, cada uno con una IP diferente. Para los web servers replicados, existe un set
de direcciones IP asociados con un nombre de host canónico. La base de datos del DNS contiene este set. Cuando
los clientes hacen un pedido DNS por un nombre que se encuentra en este set, el server responde con el set de
direcciones entero, pero rota el ordenamiento de las direcciones con cada respuesta. Dado que le cliente
típicamente envía los request HTTP a la primera dirección IP de la lista, la rotación permite distribuir el trafico.
Si bien desde la perspectiva de la aplicación que invoca la DNS, éste es como una ‘caja negra’ que provee un servicio
de traducción simple y directo, el mismo es en realidad complejo, consistiendo de un gran número de servidores DNS
distribuidos alrededor del mundo, además de un protocolo de capa de aplicación que especifica como los servidores
DNS y los hosts que realizan los pedidos se comunican. Un diseño más simple del DNS sería uno centralizado, donde
los pedidos simplemente se direccionasen a un solo servidor DNS, quien les respondería directamente. Esta potencial
centralización resultaría inapropiada para el internet actual y acarrearía muchos problemas:
 Proveería un único punto de falla: si el DNS se cae, se cae todo internet.
 Volumen de tráfico: un solo servidor DNS tendría que manejar todos los pedidos de cientos de millones de hosts.
 Base de datos distante centralizada: se perdería la ‘cercanía’ del server a la locación de sus clientes, dado que el
DNS n estaría distribuido en varios lugares alrededor del mundo: implica congestiones y retardo.
 Mantenimiento: el server DNS tendría que mantener registros de todos los hosts. Esto causaría una base de datos
enorme y que necesitaría de actualización constante (es preferible que cada server DNS gestione su porción de
nombres).
 No resultaría escalable.
Para alcanzar la escalabilidad antes mencionada, el DNS emplea una gran cantidad de servidores, organizados
jerárquicamente y distribuidos alrededor del mundo. Ninguno de ellos tiene el mapeo de absolutamente todos los hosts
de internet. Existen tres clases de servidores DNS : root, top-level domain (TLD) y autoritarios.
 Servidores DNS root: Sus direcciones IPs están
contenidas en el software DNS. En internet, existen
13 de estos (etiquetados de A a M), en su mayoría
localizados en norteamerica. Por cuestiones de
seguridad y estabilidad, cada uno de estos 13 es una
red de servers replicados (en 2011, se contaron en
total 247 servidores root). Son contactados cuando un
servidor DNS local no conoce la IP de quien maneja
un dominio de nivel superior (Top-Level Domain)
 Servidores Top-level Domain: estos son responsables de los dominios top-level tales como com, org, net, edu,
gov y todos aquellos relacionados a países específicos (uk, fr, ca, jp).
 Servidores DNS autoritarios: cada organización que cuenta con hosts públicamente accesibles (tal como
servidores Web o servidores de Mail) en internet, debe proveer archivos DNS públicamente accesibles que
mapeen los nombres de esos hosts a las direcciones IP. Los servidores autoritarios de una organización son los que
se encargan de almacenar estos archivos.
Existe otro tipo de servidor DNS, llamado servidor DNS local. Si bien no pertenece estrictamente a la jerarquía, es
parte crucial de la arquitectura DNS. Cada ISP tiene un servidor DNS local (también llamado default name server).
Cuando un host se conecta a un ISP, el ISP provee al host con las direcciones IP de uno o más de sus servidores DNS
locales (típicamente a través de DHCP). Cuando un host hace una consulta DNS, ésta es enviada al servidor DNS
local, que actúa como proxy, reenviando la consulta a la jerarquía DNS.
Ejemplo -- > Supongamos que el host cis.poly.edu quiere obtener la dirección IP de
gaia.cs.umass.edu. También, supongamos que el server DNS local de la politécnica es
dns.poly.edu y que el server DNS autoritario de gaia.cs.umass.edu se llama dns.umass.edu
. El host (cis.poly.edu) envía un pedido DNS a su server DNS local (dns.poly.edu), y dicho
mensaje contiene el nombre de host a ser traducido (gaia.cs.umass.edu). El server DNS
local reenvía este mensaje al server DNS root, quien se fija en el sufijo ‘.edu’ y retorna
una lista de direcciones IP de servidores Top-Level Domain que sean responsables por
.edu. Entonces, el server DNS local reenvía el pedido a alguno de esos servidores. El
servidor TLD toma nota del sufijo umass.edu y responde con la dirección IP del server
DNS autoritario de la Universidad de Masachussetts (dns.umass.edu). Finalmente el
server DNS local reenvía el mensaje directamente a dns.umass.edu, el cual responde con la
dirección IP de gaia.cs.umas.edu. El tráfico para obtener este nombre de host tomó 4
mensajes de pedido y 4 de respuesta (esto se soluciona con cache DNS). Este ejemplo hace
uso de consultas o pedidos recursivos e iterativos. La consulta enviada desde cis.poly.edu hacia dns.poly.edu es
recursiva, ya que se pide a dns.poly.edu que obtenga el mapeo por él. Pero las siguientes tres son iterativas, dado que
todas las respuestas son directamente retornadas a dns.poly.edu. En la práctica, la mayoría de las consultas siguen este
modelo combinatorio.
DNS CACHING -- > esta es una característica muy importante, ya que ayuda al DNS a mejorar la performance, el
delay y reducir la cantidad de mensajes que son enviados durante las consultas. El cache funciona de la siguiente
manera: en una cadena de consultas, cuando un servidor DNS recibe una respuesta DNS (que contenga, por ejemplo,
el mapeo de un nombre de host a una dirección IP), puede cachear el mapeo en su memoria local. Volviendo al
ejemplo, cada vez que el servidor DNS local dns.poly.edu recibe una respuesta de algún servidor DNS. Puede cachear
la información contenida en la respuesta. Si un par nombre de host/dirección IP esta cacheado en un server DNS y otra
consulta llega a ese server pidiendo el mismo nombre de host, esta información se puede proveer desde lo cacheado.
Lo que se almacena en el cache no es permanente. Servidores TLD típicamente están en cache de los servidores de
nombre locales. De esta manera, los servidores de nombre raíz no son visitados con frecuencia.
Registros DNS -- > los servidores DNS que juntos implementan la base de datos distribuida almacenan registros de
recursos (RRs), incluyendo aquellos que proveen mapeos de direcciones host-a-IP. Cada mensaje DNS de respuesta
lleva uno o más RR. Un RR tiene cuatro tuplas: nombre, valor, tipo, TTL (time t olive – lo que dura en cache- ). El
sentido de nombre y valor dependen del tipo:
Si el tipo es A, entonces nombre es un nombre de host, y valor es la dirección IP del nombre de host. Este tipo de
registros proveen el mapeo estándar de dirección host-a-IP.
Si el tipo es NS; entonces nombre es un dominio y valor es el nombre de host de un DNS autoritario que conoce como
obtener las direcciones IP de los hosts en el dominio.
Si el tipo es CNAME, entonces el nombre es un alias para algún nombre real (indicado en type A), y valor es el
nombre real (canónico).
Si el tipo es MX, valor es el nombre del servidor de correo asociado con nombre.

Para enviar mensajes mediante el protocolo DNS, sólo disponemos de


aquellos de consulta y aquellos de respuesta. Los dos toman el mismo
formato. Los primeros 12 bytes representan el header, que tiene un número
de campos. El primer campo es un número de 16 bits que identifica la
consulta. Este identificador es copiado en el mensaje de respuesta una
consulta, permitiendo al cliente hacer ‘match’ entre lo que se envió y lo que
se recibió. Existe también un campo de flags. Una flag de consulta/respuesta
de 1 bit indica si el mensaje es una consulta (0) o una respuesta (1). Una flag
autoritaria de 1 bit se envía en un mensaje de respuesta cuando un servidor DNS es un servidor autoritario para un
nombre consultado. Una flag de recursión deseada de 1 bit se establece cuando un cliente (host o servidor DNS) requiere
que el servidor DNS efectúe recursión cuando no tenga el registro. Un campo de recursión disponible de 1 bit es
establecido en una respuesta si el servidor DNS soporta recursión.
Correo electrónico en internet -- >cuenta con tres componentes principales: agente usuario o cliente de correo,
servidor de correo, y Simple Mail Transfer Protocol: SMTP . Veamos el rol de cada uno con un ejemplo.
Supongamos que Alice desea mandar un e-mail a un receptor, Bob. Los agentes de usuario permiten a los usuarios
leer, responder, enviar, guardar y componer mensajes. Ejemplos de estos son Microsoft Outlook y Apple Mail. Una
voz que Alice termina de componer su mensaje, su agente de usuario lo envía a su servidor de correo, donde el
mensaje es colocado en la cola de mensajes de salida. Cuando Bob quiere leer el mensaje, su agente de usuario
recupera el mensaje de su casilla en su servidor de correo. Estos servidores son el núcleo de la infraestructura de e-
mail. Cada receptor, como Bob, tiene una casilla ubicada en uno de los servidores de correo. La casilla de Bob
administra y mantiene los mensajes que le han sido enviados. Un mensaje típico comienza su camino en el agente de
usuario del remitente, viaja hasta el mail server del remitente y de ahí al server de mail del destinatario, donde se
deposita en su casilla. Cuando Bob quiere acceder a los mensajes en su casilla, el servidor de correo que contiene esa
casilla lo autentifica mediante un usuario y contraseña. SMTP es el protocolo de capa de aplicación principal para el
correo electrónico en internet. Utiliza TCP para transferir los datos de manera confiable entre los servidores de correo.
Como muchos otros protocolos de capa de aplicación, tiene dos lados: un lado cliente, que trabaja en el servidor de
correo del cliente, y un lado servidor, que trabaja en el servidor de correo del destinatario. Ambos lados corren en cada
servidor de mail. Cuando un servidor de mail envía correo a otros servidores de mail, actúa como un cliente SMTP.
Cuando un servidor de correo recibe mail de otros servidores, actúa como un servidor STMP.
La transferencia de mensajes distingue tres fases: handshaking (apretón de manos para establecer conexión),
transferencia de mensajes y cierre. El header y body de los mensajes deben estar en ASCII de 7-bits, lo cual complica
un poco las cosas actualmente, dado que los archivos multimedia binarios tienen que ser codificados en ASCII antes
de enviarlos por STMP, y luego ser decodificados de nuevo a binario después de ser transportados.
Para poder interactuar directamente con el servidor SMTP, se usa el comando telnet servername 25, se recibe la
respuesta 220 desde el servidor, y se utilizan los comandos HELO, MAIL FROM, RCPT TO, DATA, QUIT. Esto nos
permitía enviar un mensaje sin tener que pasar por el agente de correo. Hoy, esto es obsoleto, dado que muchos
servidores están configurados para aceptar sólo conexiones seguras que no permiten el uso de telnet para envío de
correo, porque no es seguro, dado que no exige autenticación.

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.

También podría gustarte