Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PRIMERA PARTE
PRIMERA SEMANA
Se trata de hacer una introducción a la pila de protocolos TCP/IP. Para ello, antes tenemos que
ser capaces de responder a estas preguntas:
¿Qué es un protocolo? Si no lo tienes claro aún, te invito cariñosamente a que repases
contenidos anteriores de la asignatura. Este es nuestro punto de partida.
¿Qué es una pila de protocolos? Es un conjunto de capas o niveles, que se encuentran apilados
para dar un servicio de comunicación. Cada capa implementa un protocolo.
Mira la figura. En Internet tenemos, en sentido descendente, la capa de transporte (donde están
TCP o UDP), la capa de red (donde está IP y otros protocolos de apoyo), y la capa de acceso a
red.
Para dar su servicio correspondiente, cada capa utiliza el servicio que le ofrece su capa inferior.
1
IMPORTANTE: el nivel de acceso a red, en el libro del Forouzan, se compone de dos subniveles:
el subnivel de acceso al medio y el subnivel físico (el primero codifica y decodifica tramas, y el
segundo se encarga de la traducción de bits a ondas electromagnéticas/ópticas y viceversa).
Siempre que veáis dibujados estos dos subniveles, nos referimos a la capa de acceso a red.
Servicio que da la capa de transporte:
¿A quién se lo da? A los procesos de los usuarios.
¿En qué consiste? Da un servicio de tubería de bytes fiable entre un cliente y un servidor
conectados (TCP). También ofrece la alternativa de utilizar un servicio de mensajería NO fiable
y no orientada a conexión (UDP).
Característica fundamental: se basa en el uso de PUERTOS para distinguir los procesos
receptores de un mensaje de este nivel
Es importante entender que un protocolo de transporte solo se entiende (dialoga) con otro
protocolo de transporte. Un protocolo de red solo se entiende con otro protocolo de red, y uno
de acceso con otro de acceso. Mira esta figura:
2
En la parte de arriba ves una topología con dos redes. Un router sirve de frontera o separación
entre ellas. Los hosts (ordenadores normales) son equipos con un interfaz o tarjeta de red que
los conecta a una red. El router tiene como mínimo dos interfaces o tarjetas, una por cada red a
la que está conectado. Por supuesto, un router puede estar conectado a más de dos redes.
En la parte de abajo de la figura, ves las capas implementadas en cada equipo de la red. Observa
cómo los hosts implementan toda la pila de protocolos (transporte+red+acceso). El router,
idealmente, solo necesita tener implementada la capa de red y una capa de acceso por cada
tarjeta de red (eso es importante, ojo).
Las líneas discontinuas refuerzan la idea de que las capas solo dialogan con su equivalente en
otro equipo. Por ejemplo, las capas de transporte del host1 y host2 solo dialogan entre sí. Es
decir, una PDU creada por la capa de transporte del host 1, atraviesa el router sin que éste
interprete, ni manipule dicha PDU de transporte.
En el caso de las PDUs de nivel de red, sí que son interpretadas y manipuladas por el router o
routers intermedios hasta llegar a la red donde reside el host destino (en este caso host 2).
No te confundas con las líneas discontinuas de la figura de arriba. Indican qué capas se hablan
entre sí. Pero los datos NO viajan de esa forma. Sigue leyendo, que a lo mejor ya te estabas
preguntando cómo se realiza de verdad una transmisión y una recepción.
3
coloca en su cabecera el puerto destino al que van los datos, y también coloca el puerto origen
que ayudará a recibir las posibles respuestas futuras del otro extremo. Los datos de la PDU son
la información tal cual que la capa superior quiere enviar (o el proceso, si estamos en la capa
superior de la pila).
Una vez que ha montado la PDU completa (cabecera + datos), solicita a la capa inferior que la
envié (es decir, está utilizando el servicio que le proporciona dicha capa). El proceso se repite, y
cada capa monta su PDU, añadiendo su cabecera y considerando que los datos son el mensaje
de la capa superior. Así, hasta que la capa de acceso a red (en la tarjeta de red), convierte los
bits a señales electromagnéticas que viajan por el medio de transmisión.
Mira esta figura, que explica visualmente lo que acabamos de introducir:
Empecemos a interpretarla de arriba hacia abajo. Imagina que un proceso acude a las llamadas
al sistema de sockets para enviar un conjunto de bytes, por ejemplo, "Hola fsc". Cuando lo
deposita en la cola del kernel, la capa de transporte coge esos datos y monta su PDU.
PDU DE TRANSPORTE:
• CABECERA (HEADERT): la información importante (por ahora) que lleva es el puerto
destino y el origen
• DATOS (PAYLOADT): los datos que el proceso quiere mandar al destino
La PDU de transporte se entrega a la capa de red (al protocolo IP) para que la envíe a una IP
destino. La capa de red monta su PDU:
PDU DE RED (en Internet, se conoce como datagrama IP):
• CABECERA (HEADERR): la información importante (por ahora) que lleva es la dirección IP
origen y la dirección IP destino
4
• DATOS (PAYLOADR): la PDU completa de la capa de transporte
Incido en algo que es muy importante: a la capa de red le importa tres pimientos lo que
contienen los datos que van dentro de sus PDUs, esa información solo es relevante para la capa
de transporte, como veremos luego, en la parte de recepción.
La PDU de red se entrega a la capa de acceso a red, para que la envíe a un ordenador de la propia
red. La capa de acceso monta su PDU:
PDU DE ACCESO (se conoce como trama de datos -frame, en inglés-):
• CABECERA (HEADERA): la información importante (por ahora) que lleva es la dirección
MAC origen y la dirección MAC destino
• DATOS (PAYLOADA): la PDU completa de la capa de red
• COLA: esta PDU tiene unos bytes extra donde se introduce información necesaria para
el control de errores en destino. En la figura, aparece como FCS (frame control
sequence). ¿Recuerdas el concepto de bit de paridad? El propósito es el mismo, pero
aquí se utilizan 32 bits, con un esquema de detección de errores mucho más avanzada
(y fuera del alcance de la asignatura).
¿Qué es eso de "la dirección MAC"? MAC son las siglas de Media Access Control (control de
acceso al medio de transmisión). Consiste en un identificador que se asigna a cada tarjeta de
red. Tiene seis bytes, y normalmente se representa con cada byte en notación hexadecimal
separada por ':'. Ejemplo: a0:33:45:2f:11:de
Luego veremos más sobre estas direcciones y por qué necesitamos utilizarlas ¿acaso no
teníamos ya las direcciones IP?
Ahora vamos con lo que pasa en un receptor final. Aquí te pongo lo que llega a host2 (sí, los
datos han pasado por el router también, pero en eso vamos a hacer hincapié más adelante).
5
Esta figura la tenemos que leer de abajo hasta arriba. Al host 2 le llega una trama de datos. Su
capa de acceso a red, primero comprueba el FCS para determinar que no hay errores en la
recepción. Después, mira la cabecera y comprueba si la MAC destino es la de su tarjeta de red.
En caso negativo, la descarta. En caso afirmativo, coge los datos que contiene y se los pasa a la
capa de red. Claro, recuerda que dentro lleva una PDU de red, con su HR y su PAYLOADR. En la
figura te lo he puesto como si tuviéramos rayos-x y viéramos lo que hay dentro del PAYLOADA.
La capa de red mira la cabecera del datagrama IP que le llega, y lo primero que hace es
determinar si la IP destino que aparece ahí corresponde a la IP del host 2. En caso negativo, y
por ser un ordenador de tipo host, se descarta. Pero si este equipo fuera un router, lo que va a
hacer es intentar encaminarla a otra red para que siga su viaje al destino final. Lo veremos.
En caso de que la IP destino de ese datagrama coincida con la IP del host 2, se cogen los datos
que contiene y se le pasan a la capa de transporte. Nuestros rayos-x no mienten, en ese
PAYLOADR se encuentra una PDU de transporte, con su HT y PAYLOADT.
Por último, la capa de transporte mira la cabecera de la PDU de transporte recibida, y mira el
puerto destino para depositar los datos en la cola del socket vinculado a ese puerto. A partir de
ahí, ya sabemos que en algún momento del futuro, el proceso receptor usará un read() o un
recvfrom(), lo que toque según si está en TCP o UDP, para recoger el mensaje "Hola fsc".
Al proceso por el cual una PDU de la capa N se inserta como datos en una PDU de la capa
inmediatamente inferior (N-1) se le denomina encapsular. El proceso inverso en recepción se
denomina desencapsular.
6
CADA CAPA DE PROTOCOLO TIENE SUS PROPIAS DIRECCIONES
Creo que hemos entendido bien llegados a este punto que cada capa maneja su propio formato
de direcciones:
Capa de transporte: las direcciones que maneja son los puertos
Capa de red: maneja las direcciones IP (a estas direcciones se las llama LÓGICAS)
Capa de acceso: maneja las direcciones MAC (a estas direcciones se las llama FÍSICAS)
El sentido de que existan puertos está claro: los puertos identifican a los sockets de los procesos
de los usuarios. Claro, piensa que la capa de transporte es única (imagina que es un proceso que
se ejecuta dentro del kernel), y todos los procesos de los usuarios utilizan su servicio. La única
manera de poder recibir una PDU de transporte y poder entregar los datos al socket correcto es
a través del puerto asociado (y a eso lo llamamos demultiplexar en nuestra profesión).
Pero ¿cuál es el sentido de que existan direcciones IP en los equipos y, además, direcciones
MAC? ¿No parecen redundantes? No, en absoluto.
Recuerda que Internet significa Inter-red, o lo que es lo mismo: red de redes. Así que mira cómo
eran las redes aisladas antes de Internet:
Cada red estaba aislada del resto. Para que los equipos en red se pudieran comunicar,
simplemente debían tener tarjetas de red con MACs distintas.
Fíjate que, en aquel momento, las MAC se podían repetir siempre que pertenecieran a tarjetas
de red de equipos que estuvieran en redes distintas. No había ningún problema.
Pero ahora llega Internet, y permite que las dos redes se comuniquen entre sí poniendo un
router en medio que hace de encaminador de paquetes entre una red y otra:
7
Surge inmediatamente el problema. Hay que mantener las direcciones MAC, porque son las que
permiten que los ordenadores se comuniquen dentro de la misma red (incluyendo ahora al
router, ojo), pero NO se pueden utilizar para identificar de forma única a los ordenadores en
Internet ¡porque pueden estar repetidas, y eso llevaría a errores en la entrega de paquetes!
Afortunadamente, la Inter-red se diseñó pensando en no tener esos problemas. Para ello, cada
red que forma parte de Internet tiene un identificador único, y los equipos se numeran a partir
de ese identificador único. Mira la figura:
La red de la izquierda es la red 1, y todos los equipos que pertenecen a ella se numeran como
1.1, 1.2, 1.3, etc. Lo mismo pasa con la red de la derecha, que ahora ha pasado a denominarse
red 2, y todos sus equipos se numeran como 2.1, 2.2, 2.3, etc.
Pues esas direcciones de equipos son las direcciones lógicas ¡las direcciones IP!
Observa cómo este router tiene dos MAC, una por cada tarjeta de red, y dos direcciones IP, una
por cada red en la que está conectado.
Cuando acabes, debes ser capaz de dar respuesta a las siguientes cuestiones:
¿Qué partes tiene una dirección IP?
¿Qué diferencia hay entre las IP con clase y sin clase? ¿Por qué existen ambas?
¿Qué es una máscara de red (también llamada de subred) y para qué se utiliza?
8
¿Qué es el concepto de broadcast y cómo se consigue hacer en una red IP?
¿Qué es el multicast y qué significa que una dirección IP sea de multicast?
¿Por qué hay direcciones IP públicas y privadas?
Si abro una consola de mi ordenador de Windows (ejecutar: cmd) y tecleo el comando
ipconfig
Me da información sobre todos los interfaces de red que tengo. Hay algunos que hay que
ignorar, porque son virtuales y pertenecen a VMWare y/o VirtualBox, pero mirando, a mi me
sale esto:
Me dice que la dirección IPv4 es la 192.168.0.100 ¿Y la tuya? ¿La red de tu casa es pública o
privada?
Y eso lleva a la última pregunta, ¿cómo podemos acceder a Internet si nuestra red es privada?
¿En qué consiste la técnica NAT?
Ejercicios (intenta NO utilizar la calculadora):
- Dada la dirección IP 114.34.2.8, indique su dirección de red, la dirección de broadcast, y
el número de equipos que se pueden direccionar en dicha red.
- Dada la dirección IP 25.34.12.56/16, indique su dirección de red, la dirección de
broadcast, la dirección IP del primer equipo direccionable en esta red y la dirección IP
del último equipo direccionable en esta red
9
YA ESTÁS PREPARADO PARA ESTUDIAR EL APARTADO 20.1 DEL LIBRO FOROUZAN
Entra completo
Al terminar el apartado 20.2, referido a la cabecera de un datagrama IP, debes ser capaz de
contestar a las siguientes preguntas:
¿Cuál es la diferencia entre el campo hlen y el campo longitud total?
¿Qué pasa si un datagrama intenta atravesar una red donde no cabe? ¿Qué es la MTU de una
red?
Si un datagrama debe atravesar un router y sigue su camino ¿cuántos campos de la cabecera
debe cambiar el router antes de depositarlo en la siguiente red?
10