Análisis y Diseño de Sistemas
Profesor: Eduardo Zubillaga
Estudiante: Engelbert Guevara
TRABAJO 1:
Características de TCP/IP y como
funciona (tema 2/3)
Introducción
Internet no es un nuevo tipo de red física, sino un
conjunto de tecnologías que permiten interconectar redes muy distintas entre
sí. Internet no es dependiente de la máquina ni del sistema operativo
utilizado. De esta manera, podemos transmitir información entre un servidor Unix y un ordenador que utilice Windows 98. O entre
plataformas completamente distintas como Macintosh, Alpha o Intel. Es más:
entre una máquina y otra generalmente existirán redes distintas: redes Ethernet, redes Token Ring e incluso enlaces vía satélite.
Como vemos, está claro que no podemos utilizar
ningún protocolo que dependa de una arquitectura en particular. Lo que estamos
buscando es un método de interconexión general que sea válido para cualquier
plataforma, sistema operativo y tipo de red. La familia de protocolos que se
eligieron para permitir que Internet sea una Red de
Características de TCP/IP
Ya que dentro de un sistema TCP/IP los datos
transmitidos se dividen en pequeños paquetes, éstos resaltan una serie de
características.
o
La tarea de IP es llevar los datos a granel (los paquetes) de un sitio a
otro. Las computadoras que encuentran las vías para llevar los datos de una red
a otra (denominadas enrutadores) utilizan IP para
trasladar los datos. En resumen IP mueve los paquetes de datos a granel,
mientras TCP se encarga del flujo y asegura que los datos estén correctos.
o
Las líneas de comunicación se pueden compartir entre varios usuarios.
Cualquier tipo de paquete puede transmitirse al mismo tiempo, y se ordenará y
combinará cuando llegue a su destino. Compare esto con la manera en que se
transmite una conversación telefónica. Una vez que establece una conexión, se
reservan algunos circuitos para usted, que no puede emplear en otra llamada,
aun si deja esperando a su interlocutor por veinte minutos.
o
Los datos no tienen que enviarse directamente entre dos computadoras.
Cada paquete pasa de computadora en computadora hasta llegar a su destino.
Éste, claro está, es el secreto de cómo se pueden enviar datos y mensajes entre
dos computadoras aunque no estén conectadas directamente entre sí. Lo que
realmente sorprende es que sólo se necesitan algunos segundos para enviar un
archivo de buen tamaño de una máquina a otra, aunque estén separadas por miles
de kilómetros y pese a que los datos tienen que pasar por múltiples
computadoras. Una de las razones de la rapidez es que, cuando algo anda mal,
sólo es necesario volver a transmitir un paquete, no todo el mensaje.
o
Los paquetes no necesitan seguir la misma trayectoria. La red puede llevar
cada paquete de un lugar a otro y usar la conexión más idónea que esté
disponible en ese instante. No todos los paquetes de los mensajes tienen que
viajar, necesariamente, por la misma ruta, ni necesariamente tienen que llegar
todos al mismo tiempo.
o
La flexibilidad del sistema lo hace muy confiable. Si un enlace se
pierde, el sistema usa otro. Cuando usted envía un mensaje, el TCP divide los
datos en paquetes, ordena éstos en secuencia, agrega cierta información para
control de errores y después los lanza hacia fuera, y los distribuye. En el
otro extremo, el TCP recibe los paquetes, verifica si hay errores y los vuelve
a combinar para convertirlos en los datos originales. De haber error en algún
punto, el programa TCP destino envía un mensaje solicitando que se vuelvan a
enviar determinados paquetes.
El protocolo TCP/IP tiene que estar a un nivel
superior del tipo de red empleado y funcionar de forma transparente en
cualquier tipo de red. Y a un nivel inferior de los programas de aplicación (páginas
WEB, correo electrónico…) particulares de cada sistema operativo. Todo esto nos
sugiere el siguiente modelo de referencia:
Capa de aplicación (HTTP, SMTP, FTP, TELNET...) |
Capa de transporte (UDP, TCP) |
Capa de red (IP) |
Capa de acceso a la red (Ethernet, Token Ring...) |
Capa física (cable coaxial, par trenzado...) |
El nivel más bajo es
la capa física. Aquí nos referimos al medio físico por el cual se transmite la
información. Generalmente será un cable aunque no se descarta cualquier otro
medio de transmisión como ondas o enlaces vía satélite.
La capa de acceso a la red determina la manera en
que las estaciones (ordenadores) envían y reciben la información a través del
soporte físico proporcionado por la capa anterior. Es decir, una vez que
tenemos un cable, ¿cómo se transmite la información por ese cable? ¿Cuándo
puede una estación transmitir? ¿Tiene que esperar algún turno o transmite sin
más? ¿Cómo sabe una estación que un mensaje es para ella? Pues bien, son todas
estas cuestiones las que resuelve esta capa.
Las dos capas anteriores quedan a un nivel inferior
del protocolo TCP/IP, es decir, no forman parte de este protocolo. La capa de
red define la forma en que un mensaje se transmite a través de distintos tipos
de redes hasta llegar a su destino. El principal protocolo de esta capa es el
IP aunque también se encuentran a este nivel los protocolos ARP, ICMP e IGMP.
Esta capa proporciona el direccionamiento IP y determina la ruta óptima a
través de los encaminadores (routers)
que debe seguir un paquete desde el origen al destino.
La capa de transporte (protocolos TCP y UDP) ya no
se preocupa de la ruta que siguen los mensajes hasta llegar a su destino.
Sencillamente, considera que la comunicación extremo a extremo está establecida
y la utiliza. Además añade la noción de puertos, como veremos más adelante.
Una vez que tenemos establecida la comunicación
desde el origen al destino nos queda lo más importante, ¿qué podemos
transmitir? La capa de aplicación nos proporciona los distintos servicios de
Internet: correo electrónico, páginas Web, FTP, TELNET…
Capa de red
La familia de protocolos TCP/IP fue diseñada para
permitir la interconexión entre distintas redes. El mejor ejemplo de
interconexión de
A lo largo de este Curso aprenderemos a construir
redes privadas que funcionen siguiendo el mismo esquema de Internet. En una red
TCP/IP es posible tener, por ejemplo, servidores web
y servidores de correo para uso interno. Obsérvese que todos los servicios de
Internet se pueden configurar en pequeñas redes internas TCP/IP.
A continuación veremos un ejemplo de interconexión
de 3 redes. Cada host (ordenador) tiene una dirección física que viene
determinada por su adaptador de red. Estas direcciones se corresponden con la capa de acceso al medio y
se utilizan para comunicar dos ordenadores que pertenecen a la misma red. Para
identificar globalmente un ordenador dentro de un conjunto de redes TCP/IP se
utilizan las direcciones IP (capa de red). Observando una dirección IP sabremos
si pertenece a nuestra propia red o a una distinta (todas las direcciones IP de
la misma red comienzan con los mismos números, según veremos más adelante).
Host |
Dirección
física |
Dirección
IP |
Red |
A |
00-60-52-0B-B7-7D |
192.168.0.10 |
Red 1 |
R1 |
00-E0-4C-AB-9A-FF |
192.168.0.1 |
|
A3-BB-05-17-29-D0 |
10.10.0.1 |
Red 2 |
|
B |
00-E0-4C-33-79-AF |
10.10.0.7 |
|
R2 |
B2-42-52-12-37-BE |
10.10.0.2 |
|
00-E0-89-AB-12-92 |
200.3.107.1 |
Red 3 |
|
C |
A3-BB-08-10-DA-DB |
200.3.107.73 |
|
D |
B2-AB-31-07-12-93 |
200.3.107.200 |
El concepto de red está relacionado con las direcciones
IP que se configuren en cada ordenador, no con el cableado. Es decir, si
tenemos varias redes dentro del mismo cableado solamente los ordenadores que
permanezcan a una misma red podrán comunicarse entre sí. Para que los
ordenadores de una red puedan comunicarse con los de otra red es necesario que
existan routers que interconecten las redes. Un router o encaminador no es más
que un ordenador con varias direcciones IP, una para cada red, que permita el
tráfico de paquetes entre sus redes.
La capa de red se encarga de fragmentar cada mensaje
en paquetes de datos llamados datagramas IP y de
enviarlos de forma independiente a través de la red de redes. Cada datagrama IP incluye un campo con la dirección IP de
destino. Esta información se utiliza para enrutar los
datagramas a través de las redes necesarias que los
hagan llegar hasta su destino.
Nota: Cada vez que visitamos una página web o recibimos un correo electrónico es habitual atravesar
un número de redes comprendido entre 10 y 20, dependiendo de la distancia de
los hosts. El tiempo que tarda un datagrama
en atravesar 20 redes (20 routers) suele ser inferior
a 600 milisegundos.
En el ejemplo anterior, supongamos que el ordenador
200.3.107.200 (D) envía un mensaje al ordenador con 200.3.107.73 (C). Como
ambas direcciones comienzan con los mismos números, D sabrá que ese ordenador
se encuentra dentro de su propia red y el mensaje se entregará de forma
directa. Sin embargo, si el ordenador 200.3.107.200 (D)
tuviese que comunicarse con 10.10.0.7 (B), D advertiría que el ordenador
destino no pertenece a su propia red y enviaría el mensaje al router R2 (es el ordenador que le da salida a otras redes).
El router entregaría el mensaje de forma
directa porque B se encuentra dentro de una de sus redes (
2.1 Direcciones IP
La dirección IP es el identificador de cada host dentro de su red de redes. Cada host
conectado a una red tiene una dirección IP asignada, la cual debe ser distinta
a todas las demás direcciones que estén vigentes en ese momento en el conjunto
de redes visibles por el host. En el caso de
Internet, no puede haber dos ordenadores con 2 direcciones IP (públicas)
iguales. Pero sí podríamos tener dos ordenadores con la misma dirección IP
siempre y cuando pertenezcan a redes independientes entre sí (sin ningún camino
posible que las comunique).
Las direcciones IP se clasifican en:
Direcciones
IP públicas.
Son visibles en todo Internet. Un ordenador con una IP pública es accesible
(visible) desde cualquier otro ordenador conectado a Internet. Para conectarse
a Internet es necesario tener una dirección IP pública.
Direcciones
IP privadas (reservadas). Son visibles únicamente por otros hosts de su
propia red o de otras redes privadas interconectadas por routers.
Se utilizan en las empresas para los puestos de trabajo. Los ordenadores con
direcciones IP privadas pueden salir a Internet por medio de un router (o proxy) que tenga una IP
pública. Sin embargo, desde Internet no se puede acceder a ordenadores con
direcciones IP privadas.
A su vez, las direcciones IP pueden ser:
Direcciones
IP estáticas (fijas). Un host que se conecte a la red con
dirección IP estática siempre lo hará con una misma IP. Las direcciones IP
públicas estáticas son las que utilizan los servidores de Internet con objeto
de que estén siempre localizables por los usuarios de Internet. Estas
direcciones hay que contratarlas.
Direcciones
IP dinámicas. Un host que se conecte a la red mediante
dirección IP dinámica, cada vez lo hará con una dirección IP distinta. Las
direcciones IP públicas dinámicas son las que se utilizan en las conexiones a
Internet mediante un módem. Los proveedores de Internet utilizan direcciones IP
dinámicas debido a que tienen más clientes que direcciones IP (es muy
improbable que todos se conecten a la vez).
Las direcciones IP están formadas por 4 bytes (32 bits). Se suelen representar de la forma a.b.c.d donde cada una de estas letras es un número
comprendido entre el 0 y el 255. Por ejemplo la dirección IP del servidor de
IBM (www.ibm.com) es 129.42.18.99.
Las direcciones IP también se pueden representar en hexadecimal, desde la 00.00.00.00 hasta
Las tres direcciones siguientes representan a la
misma máquina (podemos utilizar la calculadora científica de Windows para
realizar las conversiones).
(decimal) 128.10.2.30
(hexadecimal) 80.0A.02.1E
(binario) 10000000.00001010.00000010.00011110
¿Cuántas direcciones IP existen? Si calculamos 2
elevado a 32 obtenemos más de 4000 millones de direcciones distintas. Sin
embargo, no todas las direcciones son válidas para asignarlas a hosts. Las direcciones IP no se encuentran aisladas en
Internet, sino que pertenecen siempre a alguna red. Todas las máquinas
conectadas a una misma red se caracterizan en que los primeros bits de sus
direcciones son iguales. De esta forma, las direcciones se dividen
conceptualmente en dos partes: el identificador de red y el identificador de host.
Dependiendo del número de hosts
que se necesiten para cada red, las direcciones de Internet se han dividido en
las clases primarias A, B y C. La clase D está formada por direcciones que
identifican no a un host, sino a un grupo de ellos.
Las direcciones de clase E no se pueden utilizar (están reservadas).
|
0 |
1 |
2 |
3 |
4 |
8 |
16 |
24 |
31 |
Clase A |
0 |
red |
host |
||||||
|
|||||||||
Clase B |
1 |
0 |
red |
host |
|||||
|
|||||||||
Clase C |
1 |
1 |
0 |
red |
host |
||||
|
|||||||||
Clase D |
1 |
1 |
1 |
0 |
grupo
de multicast (multidifusión) |
||||
|
|||||||||
Clase E |
1 |
1 |
1 |
1 |
(direcciones
reservadas: no se pueden utilizar) |
Clase |
Formato |
Número
de redes |
Número
de |
Rango
de direcciones de redes |
Máscara
de subred |
A |
r.h.h.h |
128 |
16.777.214 |
0.0.0.0 - 127.0.0.0 |
255.0.0.0 |
B |
r.r.h.h |
16.384 |
65.534 |
128.0.0.0 - 191.255.0.0 |
255.255.0.0 |
C |
r.r.r.h |
2.097.152 |
254 |
192.0.0.0 - 223.255.255.0 |
255.255.255.0 |
D |
grupo |
- |
- |
224.0.0.0 - 239.255.255.255 |
- |
E |
no válidas |
- |
- |
240.0.0.0 - 255.255.255.255 |
- |
Nota: Las direcciones usadas en Internet están
definidas en
Difusión (broadcast) y multidifusión (multicast).-- El
término difusión (broadcast) se refiere a todos los hosts de una red; multidifusión (multicast) se refiere a varios hosts
(aquellos que se hayan suscrito dentro de un mismo grupo). Siguiendo esta misma
terminología, en ocasiones se utiliza el término unidifusión
para referirse a un único host.
2.2 Direcciones IP especiales y reservadas
No todas las direcciones comprendidas entre la
0.0.0.0 y la 223.255.255.255 son válidas para un host:
algunas de ellas tienen significados especiales. Las principales direcciones
especiales se resumen en la siguiente tabla. Su interpretación depende del host desde el que se utilicen.
Bits
de red |
Bits
de host |
Significado |
Ejemplo |
todos 0 |
Mi
propio host |
0.0.0.0 |
|
todos 0 |
host |
Host indicado
dentro de mi red |
0.0.0.10 |
red |
todos 0 |
Red
indicada |
192.168.1.0 |
todos 1 |
Difusión
a mi red |
255.255.255.255 |
|
red |
todos 1 |
Difusión
a la red indicada |
192.168.1.255 |
127 |
cualquier valor válido de host |
Loopback (mi propio
host) |
127.0.0.1 |
Difusión o broadcasting es
el envío de un mensaje a todos los ordenadores que se encuentran en una red. La
dirección de loopback (normalmente 127.0.0.1) se
utiliza para comprobar que los protocolos TCP/IP están correctamente instalados
en nuestro propio ordenador. Lo veremos más adelante, al estudiar el comando
PING.
Las direcciones de redes siguientes se encuentran
reservadas para su uso en redes privadas (intranets). Una dirección IP que
pertenezca a una de estas redes se dice que es una dirección IP privada.
Clase |
Rango
de direcciones |
A |
10.0.0.0 |
B |
172.16.0.0 - 172.31.0.0 |
C |
192.168.0.0 - 192.168.255.0 |
Intranet.-- Red privada que utiliza
los protocolos TCP/IP. Puede tener salida a Internet o no. En el caso de tener salida
a Internet, el direccionamiento IP permite que los hosts
con direcciones IP privadas puedan salir a Internet pero impide el acceso a los
hosts internos desde Internet. Dentro de una intranet
se pueden configurar todos los servicios típicos de Internet (web, correo, mensajería instantánea, etc.) mediante la
instalación de los correspondientes servidores. La idea es que las intranets
son como "internets" en miniatura o lo que
es lo mismo, Internet es una intranet pública gigantesca.
Extranet.-- Unión de dos o más intranets. Esta unión
puede realizarse mediante líneas dedicadas (RDSI, X.25, frame
relay, punto a punto, etc.) o a través de Internet.
Internet.-- La mayor red pública de
redes TCP/IP.
Por ejemplo, si estamos construyendo una red privada
con un número de ordenadores no superior a 254 podemos utilizar una red
reservada de clase C. Al primer ordenador le podemos asignar la dirección
192.168.23.1, al segundo 192.168.23.2 y así sucesivamente hasta la
192.168.23.254. Como estamos utilizando direcciones reservadas, tenemos la
garantía de que no habrá ninguna máquina conectada directamente a Internet con
alguna de nuestras direcciones. De esta manera, no se producirán conflictos y
desde cualquiera de nuestros ordenadores podremos acceder a la totalidad de los
servidores de Internet (si utilizásemos en un ordenador de nuestra red una
dirección de un servidor de Internet, nunca podríamos acceder a ese servidor).
CASO PRÁCTICO.- Una empresa dispone de una línea frame relay con direcciones
públicas contratadas desde la 194.143.17.8 hasta la 194.143.17.15 (la
dirección de la red es 194.143.17.8, su dirección de broadcasting
194.143.17.15 y su máscara de red 255.255.255.248). La línea frame relay está conectada a un
router. Diseñar la red para: 3 servidores (de correo, web
y proxy) 20 puestos de trabajo Los 20 puestos de trabajo utilizan
direcciones IP privadas y salen a Internet a través del Proxy. En la
configuración de red de cada uno de estos 20 ordenadores se indicará la
dirección "192.168.1.1" en el cuadro "Puerta de enlace".
La puerta de enlace (puerta de salida o gateway) es
el ordenador de nuestra red que nos permite salir a otras redes. El Proxy
tiene dos direcciones IP, una de la red privada y otra de la red pública. Su
misión es dar salida a Internet a la red privada, pero no permitir los
accesos desde el exterior a la zona privada de la empresa. Los 3 servidores y el router
utilizan direcciones IP públicas, para que sean accesibles desde cualquier host de Internet. La puerta de enlace de Proxy, Correo y
Web es 194.143.17.9 (Router). Obsérvese que la primera y última dirección
de todas las redes son direcciones IP especiales que no se pueden utilizar
para asignarlas a hosts. La primera es la dirección
de la red y la última, la dirección de difusión o broadcasting.
La máscara de subred de cada ordenador se ha indicado dentro de su red
después de una barra: PC1, PC2, ... , PC20 y Proxy
(para su IP 192.168.1.1) tienen la máscara 255.255.255.0 y Router, Web, Correo y Proxy (para su IP 194.143.17.10),
la máscara 255.255.255.248. El concepto de máscara de subred se estudia a
continuación. |
2.3 Máscara de subred
Una máscara de subred es aquella dirección que
enmascarando nuestra dirección IP, nos indica si otra dirección IP pertenece a
nuestra subred o no.
La siguiente tabla muestra las máscaras de subred
correspondientes a cada clase:
Clase |
Máscara
de subred |
A |
255.0.0.0 |
B |
255.255.0.0 |
C |
255.255.255.0 |
Si expresamos la máscara de subred de clase A en
notación binaria, tenemos:
11111111.00000000.00000000.00000000
Los unos indican los bits de la dirección
correspondientes a la red y los ceros, los correspondientes al host. Según la máscara anterior, el primer byte (8 bits) es la red y los tres siguientes (24 bits), el
host. Por ejemplo, la dirección de clase A 35.120.73.5
pertenece a la red 35.0.0.0.
Supongamos una subred con máscara 255.255.0.0, en la
que tenemos un ordenador con dirección 148.120.33.110. Si expresamos esta
dirección y la de la máscara de subred en binario, tenemos:
148.120.33.110 10010100.01111000.00100001.01101110
(dirección de una máquina)
255.255.0.0 11111111.11111111.00000000.00000000 (dirección de
su máscara de red)
148.120.0.0 10010100.01111000.00000000.00000000 (dirección de su
subred)
<------RED------> <------HOST----->
Al hacer el producto binario de las dos primeras
direcciones (donde hay dos 1 en las mismas posiciones ponemos un 1 y en caso
contrario, un 0) obtenemos la tercera.
Si hacemos lo mismo con otro ordenador, por ejemplo
el 148.120.33.89, obtenemos la misma dirección de subred. Esto significa que
ambas máquinas se encuentran en la misma subred (la subred 148.120.0.0).
148.120.33.89 10010100.01111000.00100001.01011001
(dirección de una máquina)
255.255.0.0 11111111.11111111.00000000.00000000 (dirección de su
máscara de red)
148.120.0.0 10010100.01111000.00000000.00000000 (dirección de su
subred)
En cambio, si tomamos la 148.115.89.3, observamos
que no pertenece a la misma subred que las anteriores.
148.115.89.3 10010100.01110011.01011001.00000011
(dirección de una máquina)
255.255.0.0 11111111.11111111.00000000.00000000 (dirección de
su máscara de red)
148.115.0.0 10010100.01110011.00000000.00000000 (dirección de
su subred)
Cálculo de la dirección de difusión.-- Ya hemos
visto que el producto lógico binario (AND) de una IP y su máscara devuelve su
dirección de red. Para calcular su dirección de difusión, hay que hacer la suma
lógica en binario (OR) de
En una red de redes TCP/IP no puede haber hosts aislados: todos pertenecen a alguna red y todos
tienen una dirección IP y una máscara de subred (si no se especifica se toma la
máscara que corresponda a su clase). Mediante esta máscara un ordenador
sabe si otro ordenador se encuentra en su misma subred o en otra distinta. Si
pertenece a su misma subred, el mensaje se entregará directamente. En cambio,
si los hosts están configurados en redes distintas,
el mensaje se enviará a la puerta de salida o router
de la red del host origen. Este router
pasará el mensaje al siguiente de la cadena y así sucesivamente hasta que se
alcance la red del host destino y se complete la
entrega del mensaje.
EJEMPLO.- Los proveedores
de Internet habitualmente disponen de una o más redes públicas para dar acceso
a los usuarios que se conectan por módem. El proveedor va cediendo estas
direcciones públicas a sus clientes a medida que se conectan y liberándolas
según se van desconectando (direcciones dinámicas). Supongamos que cierto ISP
(proveedor de servicios de Internet) dispone de la red 63.81.0.0 con máscara
255.255.0.0. Para uso interno utiliza las direcciones que comienzan por
63.81.0 y para ofrecer acceso a Internet a sus usuarios, las direcciones
comprendidas entre la 63.81.1.0 hasta la 63.81.255.254 (las direcciones
63.81.0.0 y 63.81.255.255 están reservadas). Si un usuario conectado a la red de este ISP tiene
la dirección 63.81.1.1 y quiere transferir un archivo al usuario con IP
63.81.1.2, el primero advertirá que el destinatario se encuentra en su misma
subred y el mensaje no saldrá de la red del proveedor (no atravesará el router). |
Las máscaras
255.0.0.0 (clase A), 255.255.0.0 (clase B) y 255.255.255.0 (clase C) suelen ser
suficientes para la mayoría de las redes privadas. Sin embargo, las redes más
pequeñas que podemos formar con estas máscaras son de 254 hosts
y para el caso de direcciones públicas, su contratación tiene un coste muy
alto. Por esta razón suele ser habitual dividir las redes públicas de clase C
en subredes más pequeñas. A continuación se muestran las posibles divisiones de
una red de clase C. La división de una red en subredes se conoce como subnetting.
Máscara
de subred |
Binario |
Número
de subredes |
Núm.
de hosts por subred |
Ejemplos
de subredes (x=a.b.c por ejemplo, 192.168.1) |
255.255.255.0 |
00000000 |
1 |
254 |
x.0 |
255.255.255.128 |
10000000 |
2 |
126 |
x.0, x.128 |
255.255.255.192 |
11000000 |
4 |
62 |
x.0, x.64, x.128, x.192 |
255.255.255.224 |
11100000 |
8 |
30 |
x.0, x.32, x.64, x.96, x.128,
... |
255.255.255.240 |
11110000 |
16 |
14 |
x.0, x.16, x.32, x.48, x.64,
... |
255.255.255.248 |
11111000 |
32 |
6 |
x.0, x.8, x.16, x.24, x.32,
x.40, ... |
255.255.255.252 |
11111100 |
64 |
2 |
x.0, x.4, x.8, x.12, x.16,
x.20, ... |
255.255.255.254 |
11111110 |
128 |
0 |
ninguna posible |
255.255.255.255 |
11111111 |
256 |
0 |
ninguna posible |
2.4 Protocolo IP
IP es el
principal protocolo de la capa de red. Este protocolo define la unidad básica
de transferencia de datos entre el origen y el destino, atravesando toda la red
de redes. Además, el software IP es el encargado de elegir la ruta más adecuada
por la que los datos serán enviados. Se trata de un sistema de entrega de
paquetes (llamados datagramas IP) que
tiene las siguientes características:
·
Es no
orientado a conexión debido a que cada uno de los paquetes puede seguir
rutas distintas entre el origen y el destino. Entonces pueden llegar duplicados
o desordenados.
·
Es no fiable
porque los paquetes pueden perderse, dañarse o llegar retrasados.
Nota: El protocolo IP está definido en
2.5 Formato del datagrama IP
El datagrama IP es la unidad básica de transferencia de datos
entre el origen y el destino. Viaja en el campo de datos de las tramas físicas
(recuérdese la trama Ethernet) de las distintas redes
que va atravesando. Cada vez que un datagrama tiene
que atravesar un router, el datagrama
saldrá de la trama física de la red que abandona y se acomodará
en el campo de datos de una trama física de la siguiente red. Este mecanismo
permite que un mismo datagrama IP pueda atravesar
redes distintas: enlaces punto a punto, redes ATM, redes Ethernet,
redes Token Ring, etc. El
propio datagrama IP tiene también un campo de datos:
será aquí donde viajen los paquetes de las capas superiores.
|
Encabezado del |
Área de datos del datagrama IP |
|
|
|
|
|
Encabezado de |
Área de datos de la trama |
Final de la trama |
0 |
10 |
20 |
30 |
||||||||||||||||||||||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
1 |
2 |
3 |
3 |
5 |
6 |
7 |
8 |
9 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
1 |
VERS |
HLEN |
Tipo de servicio |
Longitud total |
||||||||||||||||||||||||||||
Identificación |
Bandrs |
Desplazaiento de fragmento |
|||||||||||||||||||||||||||||
TTL |
Protocolo |
CRC cabecera |
|||||||||||||||||||||||||||||
Dirección IP origen |
|||||||||||||||||||||||||||||||
Dirección IP destino |
|||||||||||||||||||||||||||||||
Opciones IP (si las hay) |
Relleno |
||||||||||||||||||||||||||||||
Datos |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Campos del datagrama IP:
·
VERS (4 bits). Indica la versión del protocolo IP que se
utilizó para crear el datagrama. Actualmente se
utiliza la versión 4 (IPv4) aunque ya se están
preparando las especificaciones de la siguiente versión, la 6 (IPv6).
·
·
HLEN (4 bits). Longitud de la cabecera expresada en
múltiplos de 32 bits. El valor mínimo es 5, correspondiente a 160 bits = 20 bytes.
·
·
Tipo de
servicio (Type
Of Service). Los 8 bits
de este campo se dividen a su vez en:
o
Prioridad (3 bits). Un valor de 0 indica baja prioridad y un
valor de 7, prioridad
máxima.
o
Los siguientes
tres bits indican cómo se prefiere que se transmita el mensaje, es decir, son
sugerencias a los encaminadores que se encuentren a
su paso los cuales pueden tenerlas en cuenta o no.
o
Bit D (Delay). Solicita
retardos cortos (enviar rápido).
o
Bit T (Throughput).
Solicita un alto rendimiento (enviar mucho en el menor tiempo posible).
o
Bit R (Reliability).
Solicita que se minimice la probabilidad de que el datagrama
se pierda o resulte dañado (enviar bien).
o
Los siguientes
dos bits no tienen uso.
o
·
Longitud
total (16 bits). Indica la longitud
total del datagrama expresada en bytes.
Como el campo tiene 16 bits, la máxima longitud posible de un datagrama será de 65535 bytes.
·
·
Identificación (16 bits). Número de secuencia que junto a la
dirección origen, dirección destino y el protocolo utilizado identifica de
manera única un datagrama en toda la red. Si se trata
de un datagrama fragmentado, llevará la misma
identificación que el resto de fragmentos.
·
·
Banderas o indicadores (3 bits). Sólo 2 bits de los 3 bits
disponibles están actualmente utilizados. El bit de Más
fragmentos (MF) indica que no es el último datagrama.
Y el bit de No fragmentar (NF) prohíbe
la fragmentación del datagrama. Si este bit está activado y en una determinada red se requiere
fragmentar el datagrama, éste no se podrá transmitir
y se descartará.
·
·
Desplazamiento
de fragmentación (13 bits). Indica
el lugar en el cual se insertará el fragmento actual dentro del datagrama completo, medido en unidades de 64 bits. Por esta
razón los campos de datos de todos los fragmentos menos el último tienen una
longitud múltiplo de 64 bits. Si el paquete no está fragmentado, este campo
tiene el valor de cero.
·
·
Tiempo de
vida o TTL (8 bits). Número máximo
de segundos que puede estar un datagrama en la red de
redes. Cada vez que el datagrama atraviesa un router se resta
·
·
Protocolo (8 bits). Indica el protocolo utilizado en el campo
de datos: 1 para ICMP, 2 para IGMP, 6 para TCP y 17 para UDP.
·
·
CRC cabecera (16 bits). Contiene la suma de comprobación de
errores sólo para la cabecera del datagrama. La
verificación de errores de los datos corresponde a las capas superiores.
·
·
Dirección
origen (32 bits). Contiene la
dirección IP del origen.
·
·
Dirección
destino (32 bits). Contiene la
dirección IP del destino.
·
·
Opciones IP. Este campo no es obligatorio y especifica las
distintas opciones solicitadas por el usuario que envía los datos (generalmente
para pruebas de red y depuración).
·
·
Relleno. Si las opciones IP (en caso de existir) no ocupan un
múltiplo de 32 bits, se completa con bits adicionales hasta alcanzar el
siguiente múltiplo de 32 bits (recuérdese que la longitud de la cabecera tiene
que ser múltiplo de 32 bits).
Ya hemos visto
que las tramas físicas tienen un campo de datos y que es aquí donde se transportan
los datagramas IP. Sin embargo, este campo de datos
no puede tener una longitud indefinida debido a que está limitado por el diseño
de la red. El MTU de una red es la mayor cantidad de datos que puede
transportar su trama física. El MTU de las redes Ethernet
es 1500 bytes y el de las redes Token-Ring, 8192 bytes. Esto significa
que una red Ethernet nunca podrá transportar un datagrama de más de 1500 bytes
sin fragmentarlo.
Un encaminador (router)
fragmenta un datagrama en varios si el siguiente
tramo de la red por el que tiene que viajar el datagrama
tiene un MTU inferior a la longitud del datagrama.
Veamos con el siguiente ejemplo cómo se produce la fragmentación de un datagrama.
Supongamos que el
host A envía un datagrama
de 1400 bytes de datos (1420 bytes
en total) al host B. El datagrama
no tiene ningún problema en atravesar la red 1 ya que 1420 < 1500. Sin
embargo, no es capaz de atravesar la red 2 (1420 >= 620). El router R1 fragmenta el datagrama
en el menor número de fragmentos posibles que sean capaces de atravesar la red
2. Cada uno de estos fragmentos es un nuevo datagrama
con la misma Identificación pero distinta información en el campo de Desplazamiento
de fragmentación y el bit de Más fragmentos
(MF). Veamos el resultado de la fragmentación:
Fragmento 1: Long. total = 620 bytes; Desp = 0; MF=1 (contiene
los primeros 600 bytes de los datos del datagrama original)
Fragmento 2: Long. total = 620 bytes; Desp = 600; MF=1 (contiene
los siguientes 600 bytes de los datos del datagrama original)
Fragmento 3: Long. total = 220 bytes; Desp = 1200; MF=0
(contiene los últimos 200 bytes de los datos del datagrama original)
El router R2 recibirá los 3 datagramas
IP (fragmentos) y los enviará a la red 3 sin reensamblarlos. Cuando el host B reciba los fragmentos, recompondrá el datagrama original. Los encaminadores
intermedios no reensamblan los fragmentos debido a que esto supondría una carga
de trabajo adicional, a parte de memorias temporales. Nótese que el ordenador
destino puede recibir los fragmentos cambiados de orden pero esto no supondrá
ningún problema para el reensamblado del datagrama
original puesto que cada fragmento guarda suficiente información.
Si el datagrama del ejemplo hubiera tenido su bit
No fragmentar (NF) a 1, no hubiera conseguido atravesar el router R1 y, por tanto, no tendría forma de llegar hasta el
host B. El encaminador R1
descartaría el datagrama.
Dentro de una
misma red, las máquinas se comunican enviándose tramas físicas. Las tramas Ethernet contienen campos para las direcciones físicas de
origen y destino (6 bytes cada una):
8
bytes |
6
bytes |
6
bytes |
2
bytes |
64-1500
bytes |
4
bytes |
Preámbulo |
Dirección
física |
Dirección
física |
Tipo
de trama |
Datos
de la trama |
CRC |
El problema que
se nos plantea es cómo podemos conocer la dirección física de la máquina
destino. El único dato que se indica en los datagramas
es la dirección IP de destino. ¿Cómo se pueden entregar entonces estos datagramas? Necesitamos obtener la dirección física de un
ordenador a partir de su dirección IP. Esta es justamente la misión del
protocolo ARP (Address Resolution
Protocol, protocolo de resolución de
direcciones).
Nota: El protocolo ARP está definido en
Host |
Dirección
física |
Dirección
IP |
Red |
A |
00-60-52-0B-B7-7D |
192.168.0.10 |
Red 1 |
R1 |
00-E0-4C-AB-9A-FF |
192.168.0.1 |
|
A3-BB-05-17-29-D0 |
10.10.0.1 |
Red 2 |
|
B |
00-E0-4C-33-79-AF |
10.10.0.7 |
|
R2 |
B2-42-52-12-37-BE |
10.10.0.2 |
|
00-E0-89-AB-12-92 |
200.3.107.1 |
Red 3 |
|
C |
A3-BB-08-10-DA-DB |
200.3.107.73 |
|
D |
B2-AB-31-07-12-93 |
200.3.107.200 |
Vamos a retomar
el ejemplo introductorio de este Capítulo. El host A envía un datagrama con
origen 192.168.0.10 y destino 10.10.0.7 (B). Como el host
B se encuentra en una red distinta al host A, el datagrama tiene que atravesar el router
192.168.0.1 (R1). Se necesita conocer la dirección física de R1.
Es entonces
cuando entra en funcionamiento el protocolo ARP: A envía un mensaje ARP a todas
las máquinas de su red preguntando "¿Cuál es la dirección física de la
máquina con dirección IP 192.168.0.1?". La máquina con dirección
192.168.0.1 (R1) advierte que la pregunta está dirigida a ella y responde a A con su dirección física (00-E0-4C-AB-9A-FF). Entonces A
envía una trama física con origen 00-60-52-0B-B7-7D y destino 00-E0-4C-AB-9A-FF
conteniendo el datagrama (origen 192.168.0.10 y
destino 10.10.0.7). Al otro lado del router R2 se
repite de nuevo el proceso para conocer la dirección física de B y entregar
finalmente el datagrama a B. El mismo datagrama ha viajado en dos tramas físicas distintas, una
para la red 1 y otra para la red 2.
Observemos que
las preguntas ARP son de difusión (se envían a todas las máquinas). Estas
preguntas llevan además la dirección IP y dirección física de la máquina que
pregunta. La respuesta se envía directamente a la máquina que formuló la
pregunta.
Cada ordenador almacena una tabla de direcciones IP
y direcciones físicas. Cada vez que formula una pregunta ARP y le responden,
inserta una nueva entrada en su tabla. La primera vez que C envíe un mensaje a
D tendrá que difundir previamente una pregunta ARP, tal como hemos visto. Sin
embargo, las siguientes veces que C envíe mensajes a D ya no será necesario
realizar nuevas preguntas puesto que C habrá almacenado en su tabla la
dirección física de D. Sin embargo, para evitar incongruencias en la red debido
a posibles cambios de direcciones IP o adaptadores de red, se asigna un tiempo
de vida de cierto número de segundos a cada entrada de la tabla. Cuando se
agote el tiempo de vida de una entrada, ésta será eliminada de la tabla.
Las tablas ARP reducen el tráfico de la red al
evitar preguntas ARP innecesarias. Pensemos ahora en distintas maneras para
mejorar el rendimiento de la red. Después de una pregunta ARP, el destino
conoce las direcciones IP y física del origen. Por lo tanto, podría insertar la
correspondiente entrada en su tabla. Pero no sólo eso, sino que todas las
estaciones de la red escuchan la pregunta ARP: podrían insertar también las
correspondientes entradas en sus tablas. Como es muy probable que otras
máquinas se comuniquen en un futuro con la primera, habremos reducido así el
tráfico de la red aumentando su rendimiento.
Esto que hemos explicado es para comunicar dos
máquinas conectadas a la misma red. Si la otra máquina no estuviese conectada a
la misma red, sería necesario atravesar uno o más routers
hasta llegar al host destino. La máquina origen, si
no la tiene en su tabla, formularía una pregunta ARP solicitando la dirección
física del router y le transferiría a éste el
mensaje. Estos pasos se van repitiendo para cada red hasta llegar a la máquina
destino.
Como funciona TCP/IP
IP a diferencia del protocolo X.25, que está
orientado a conexión, es sin conexión. Está basado en la idea de los datagramas interred, los cuales
son transportados transparentemente, pero no siempre con seguridad, desde el
hostal fuente hasta el hostal destinatario, quizás recorriendo varias redes
mientras viaja.
El protocolo IP trabaja de la siguiente manera; la
capa de transporte toma los mensajes y los divide en datagramas,
de hasta 64K octetos cada uno. Cada datagrama se
transmite a través de la red interred, posiblemente
fragmentándose en unidades más pequeñas, durante su recorrido normal. Al final,
cuando todas las piezas llegan a la máquina destinataria, la capa de transporte
los reensambla para así reconstruir el mensaje original.
Un datagrama IP consta de
una parte de cabecera y una parte de texto. La cabecera tiene una parte fija de
20 octetos y una parte opcional de longitud variable. En la figura 1 se muestra
el formato de la cabecera. El campo Versión indica a qué versión del
protocolo pertenece cada uno de los datagramas.
Mediante la inclusión de la versión en cada datagrama,
no se excluye la posibilidad de modificar los protocolos mientras la red se
encuentre en operación.
El campo Opciones se utiliza para fines de
seguridad, encaminamiento fuente, informe de errores, depuración, sellado de
tiempo, así como otro tipo de información. Esto, básicamente, proporciona un
escape para permitir que las versiones subsiguientes de los protocolos incluyan
información que actualmente no está presente en el diseño original. También,
para permitir que los experimentadores trabajen con nuevas ideas y para evitar,
la asignación de bits de cabecera a información que muy rara vez se necesita.
Debido a que la longitud de la cabecera no es
constante, un campo de la cabecera, IHL, permite que se indique la
longitud que tiene la cabecera en palabras de 32 bits. El valor mínimo es de 5.
Tamaño 4 bit.
El campo Tipo de servicio le permite al
hostal indicarle a la subred el tipo de servicio que desea. Es posible tener
varias combinaciones con respecto a la seguridad y la velocidad. Para voz
digitalizada, por ejemplo, es más importante la entrega rápida que corregir
errores de transmisión. En tanto que, para la transferencia de archivos,
resulta más importante tener la transmisión fiable que entrega rápida.
También, es posible tener algunas otras
combinaciones, desde un tráfico rutinario, hasta una anulación instantánea.
Tamaño 8 bit.
El campo Identificación se necesita para
permitir que el hostal destinatario determine a qué datagrama
pertenece el fragmento recién llegado. Todos los fragmentos de un datagrama contienen el mismo valor de identificación.
Tamaño 16 bits.
Enseguida viene un bit que
no se utiliza, y después dos campos de 1 bit. Las
letras DF quieren decir no fragmentar. Esta es una orden para que las
pasarelas no fragmenten el datagrama, porque el
extremo destinatario es incapaz de poner las partes juntas nuevamente. Por
ejemplo, supóngase que se tiene un datagrama que se
carga en un micro pequeño para su ejecución; podría marcarse con DF porque
Las letras MF significan más fragmentos.
Todos los fragmentos, con excepción del último, deberán tener ese bit puesto. Se utiliza como una verificación doble contra
el campo de Longitud total, con objeto de tener seguridad de que no
faltan fragmentos y que el datagrama entero se
reensamble por completo.
El desplazamiento de fragmento indica el
lugar del datagrama actual al cual pertenece este
fragmento. En un datagrama, todos los fragmentos, con
excepción del último, deberán ser un múltiplo de 8 octetos, que es la unidad
elemental de fragmentación. Dado que se proporcionan 13 bits, hay un máximo de
8192 fragmentos por datagrama, dando así una longitud
máxima de datagrama de 65 536 octetos, que coinciden
con el campo Longitud total. Tamaño 16 bits.
El campo Tiempo de vida es un contador que se
utiliza para limitar el tiempo de vida de los paquetes. Cuando se llega a cero,
el paquete se destruye. La unidad de tiempo es el segundo, permitiéndose un
tiempo de vida máximo de 255 segundos. Tamaño 8 bits.
Cuando la capa de red ha terminado de ensamblar un datagrama completo, necesitará saber qué hacer con él. El
campo Protocolo indica, a qué proceso de transporte pertenece el datagrama. El TCP es efectivamente una posibilidad, pero en
realidad hay muchas más.
Protocolo: El número utilizado en este campo sirve para indicar
a qué protocolo pertenece el datagrama que se
encuentra a continuación de la cabecera IP, de manera que pueda ser tratado
correctamente cuando llegue a su destino. Tamaño: 8 bit.
El código de redundancia de la cabecera es
necesario para verificar que los datos contenidos en la cabecera IP son
correctos. Por razones de eficiencia este campo no puede utilizarse para
comprobar los datos incluidos a continuación, sino que estos datos de usuario
se comprobarán posteriormente a partir del código de redundancia de la
cabecera siguiente, y que corresponde al nivel de transporte. Este campo debe
calcularse de nuevo cuando cambia alguna opción de la cabecera, como puede ser
el tiempo de vida. Tamaño: 16 bit
La dirección de Internet
El protocolo IP identifica a cada ordenador
que se encuentre conectado a la red mediante su correspondiente dirección. Esta
dirección es un número de 32 bit que debe ser único
para cada host, y normalmente suele
representarse como cuatro cifras de 8 bit separadas
por puntos.
La dirección de Internet (IP Address)
se utiliza para identificar tanto al ordenador en concreto como la red a la que
pertenece, de manera que sea posible distinguir a los ordenadores que se
encuentran conectados a una misma red. Con este propósito, y teniendo en cuenta
que en Internet se encuentran conectadas redes de tamaños muy diversos, se
establecieron tres clases diferentes de direcciones, las cuales se representan
mediante tres rangos de valores:
o
Clase A: Son las que en su primer byte tienen
un valor comprendido entre 1 y 126, incluyendo ambos valores. Estas direcciones
utilizan únicamente este primer byte para identificar
la red, quedando los otros tres bytes disponibles
para cada uno de los hosts que pertenezcan a
esta misma red. Esto significa que podrán existir más de dieciséis millones de
ordenadores en cada una de las redes de esta clase. Este tipo de direcciones es
usado por redes muy extensas, pero hay que tener en cuenta que sólo puede haber
126 redes de este tamaño. ARPAnet es una de ellas,
existiendo además algunas grandes redes comerciales, aunque son pocas las
organizaciones que obtienen una dirección de "clase A". Lo normal
para las grandes organizaciones es que utilicen una o varias redes de
"clase B".
o
Clase B: Estas direcciones utilizan en su primer byte
un valor comprendido entre 128 y 191, incluyendo ambos. En este caso el
identificador de la red se obtiene de los dos primeros bytes
de la dirección, teniendo que ser un valor entre 128.1 y 191.254 (no es posible
utilizar los valores 0 y 255 por tener un significado especial). Los dos
últimos bytes de la dirección constituyen el
identificador del host permitiendo, por
consiguiente, un número máximo de 64516 ordenadores en la misma red. Este tipo
de direcciones tendría que ser suficiente para la gran mayoría de las
organizaciones grandes. En caso de que el número de ordenadores que se necesita
conectar fuese mayor, sería posible obtener más de una dirección de "clase
B", evitando de esta forma el uso de una de "clase A".
o
Clase C: En este caso el valor del primer byte
tendrá que estar comprendido entre 192 y 223, incluyendo ambos valores. Este
tercer tipo de direcciones utiliza los tres primeros bytes
para el número de la red, con un rango desde 192.1.1 hasta 223.254.254. De esta
manera queda libre un byte para el host, lo que permite que se conecten un máximo de
254 ordenadores en cada red. Estas direcciones permiten un menor número de host que las anteriores, aunque son las más
numerosas pudiendo existir un gran número redes de este tipo (más de dos
millones).
Tabla de direcciones IP de Internet. |
|||||
Clase |
Primer byte |
Identificación de red |
Identificación de hosts |
Número de redes |
Número de hosts |
A |
1 .. 126 |
1 byte |
3 byte |
126 |
16.387.064 |
B |
128 .. 191 |
2 byte |
2 byte |
16.256 |
64.516 |
C |
192 .. 223 |
3 byte |
1 byte |
2.064.512 |
254 |
En la clasificación de direcciones anterior se puede
notar que ciertos números no se usan. Algunos de ellos se encuentran reservados
para un posible uso futuro, como es el caso de las direcciones cuyo primer byte sea superior a 223 (clases D y E, que aún no están
definidas), mientras que el valor 127 en el primer byte
se utiliza en algunos sistemas para propósitos especiales. También es
importante notar que los valores 0 y 255 en cualquier byte
de la dirección no pueden usarse normalmente por tener otros propósitos
específicos.
El número 0 está reservado para las máquinas que no
conocen su dirección, pudiendo utilizarse tanto en la identificación de red
para máquinas que aún no conocen el número de red a la que se encuentran
conectadas, en la identificación de host para
máquinas que aún no conocen su número de host
dentro de la red, o en ambos casos.
El número 255 tiene también un significado especial,
puesto que se reserva para el broadcast. El broadcast es necesario cuando se pretende hacer que
un mensaje sea visible para todos los sistemas conectados a la misma red. Esto
puede ser útil si se necesita enviar el mismo datagrama
a un número determinado de sistemas, resultando más eficiente que enviar la
misma información solicitada de manera individual a cada uno. Otra situación
para el uso de broadcast es cuando se quiere
convertir el nombre por dominio de un ordenador a su correspondiente número IP
y no se conoce la dirección del servidor de nombres de dominio más cercano.
Lo usual es que cuando se quiere hacer uso del broadcast se utilice una dirección compuesta por el
identificador normal de la red y por el número 255 (todo unos en binario) en
cada byte que identifique al host.
Sin embargo, por conveniencia también se permite el uso del número
255.255.255.255 con la misma finalidad, de forma que resulte más simple
referirse a todos los sistemas de la red.
El broadcast es una
característica que se encuentra implementada de formas diferentes dependiendo
del medio utilizado, y por lo tanto, no siempre se encuentra disponible. En ARPAnet y en las líneas punto a punto no es posible enviar broadcast, pero sí que es posible hacerlo en las
redes Ethernet, donde se supone que todos los
ordenadores prestarán atención a este tipo de mensajes.
En el caso de algunas organizaciones extensas puede
surgir la necesidad de dividir la red en otras redes más pequeñas (subnets). Como ejemplo podemos suponer una red de
clase B que, naturalmente, tiene asignado como identificador de red un número
de dos bytes. En este caso sería posible utilizar el
tercer byte para indicar en qué red Ethernet se encuentra un host
en concreto. Esta división no tendrá ningún significado para cualquier otro
ordenador que esté conectado a una red perteneciente a otra organización,
puesto que el tercer byte no será comprobado ni
tratado de forma especial. Sin embargo, en el interior de esta red existirá una
división y será necesario disponer de un software de red especialmente diseñado
para ello. De esta forma queda oculta la organización interior de la red,
siendo mucho más cómodo el acceso que si se tratara de varias direcciones de
clase C independientes.
TCP:
Una entidad de transporte TCP acepta mensajes de
longitud arbitrariamente grande procedentes de los procesos de usuario, los
separa en pedazos que no excedan de 64K octetos y, transmite cada pedazo como
si fuera un datagrama separado. La capa de red, no
garantiza que los datagramas se entreguen
apropiadamente, por lo que TCP deberá utilizar temporizadores y retransmitir
los datagramas si es necesario. Los datagramas que consiguen llegar, pueden hacerlo en
desorden; y dependerá de TCP el hecho de reensamblarlos en mensajes, con la
secuencia correcta.
Cada octeto de datos transmitido por TCP tiene su
propio número de secuencia privado. El espacio de números de secuencia tiene
una extensión de 32 bits, para asegurar que los
duplicados antiguos hayan desaparecidos, desde hace tiempo, en el momento en
que los números de secuencia den la vuelta. TCP, sin embargo, sí se ocupa en
forma explícita del problema de los duplicados retardados cuando intenta
establecer una conexión, utilizando el protocolo de ida-vuelta-ida para este
propósito.
En la figura 2 se muestra la cabecera que se utiliza
en TCP. La primera cosa que llama la atención es que la cabecera mínima de TCP
sea de 20 octetos. A diferencia de la clase 4 del modelo OSI, con la cual se
puede comparar a grandes rasgos, TCP sólo tiene un formato de cabecera de TPDU(llamadas mensajes). Enseguida se analizará
minuciosamente campo por campo, esta gran cabecera. Los campos Puerto fuente
y Puerto destino identifican los puntos terminales de la conexión(las
direcciones TSAP de acuerdo con la terminología del modelo OSI). Cada hostal
deberá decidir por sí mismo cómo asignar sus puertos.
Los campos Numero
de secuencia y Asentimiento en superposición efectúan sus funciones
usuales. Estos tienen una longitud de 32 bits, debido a que cada octeto de
datos está numerado en TCP.
Después aparecen seis banderas de 1 bit. Si el Puntero acelerado se está utilizando,
entonces URG se coloca a 1. El puntero acelerado se emplea para indicar
un desplazamiento en octetos a partir del número de secuencia actual en el que
se encuentran datos acelerados. Esta facilidad se brinda en lugar de los
mensajes de interrupción. El bit SYN se utiliza para
el establecimiento de conexiones. La solicitud de conexión tiene SYN=1 y ACK=0,
para indicar que el campo de asentimiento en superposición no se está
utilizando. La respuesta a la solicitud de conexión si lleva un asentimiento,
por lo que tiene SYN=1 y ACK=1. En esencia, el bit
SYN se utiliza para denotar las TPDU CONNECTION REQUEST Y CONNECTION CONFIRM,
con el bit ACK utilizado para distinguir entre estas
dos posibilidades. El bit FIN se utiliza para liberar
la conexión; especifica que el emisor ya no tiene más datos. Después de cerrar
una conexión, un proceso puede seguir recibiendo datos indefinidamente. El bit RST se utiliza para reiniciar una conexión que se ha
vuelto confusa debido a SYN duplicados y retardados, o a caída de los hostales.
El bit EOM indica el Fin del Mensaje.
El control de flujo en TCP se trata mediante el uso
de una ventana deslizante de tamaño variable. Es necesario tener un
campo de 16 bits, porque la ventana indica el número de octetos que se pueden
transmitir más allá del octeto asentido por el campo ventana y no cuántas TPDU.
El código de redundancia también se brinda
como un factor de seguridad extrema. El algoritmo de código de redundancia
consiste en sumar simplemente todos los datos, considerados como palabras de 16
bits, y después tomar el complemento a 1 de la suma.
El campo de Opciones se utiliza para
diferentes cosas, por ejemplo para comunicar tamaño de tampones durante el
procedimiento de establecimiento.
Bibliografía
http://usuarios.lycos.es/janjo/janjo1.html
http://www.saulo.net/pub/tcpip/a.htm
http://www.multingles.net/docs/breve_resumen_TCP-IP.htm
http://www.monografias.com/trabajos/protocolotcpip/protocolotcpip.shtml