Carrera:
Informática
Semestre:
5to.
Semestre
Materia:
Trabajo:
Maestro:
Alumno:
HISTORIA
El Protocolo de Internet (IP) y el
Protocolo de Transmisión (TCP), fueron desarrollados inicialmente en 1973 por
el informático estadounidense Vinton Cerf como parte de un proyecto dirigido
por el ingeniero norteamericano Robert Kahn y patrocinado por la Agencia de
Programas Avanzados de Investigación (ARPA, siglas en inglés) del Departamento
Estadounidense de Defensa. Internet comenzó siendo una red informática de ARPA
(llamada ARPAnet) que conectaba redes de ordenadores de varias universidades y
laboratorios en investigación en Estados Unidos. World Wibe Web se desarrolló
en 1989 por el informático británico Timothy Berners-Lee para el Consejo
Europeo de Investigación Nuclear (CERN, siglas en francés).
QUÉ ES Y ARQUITECTURA DE TCP/IP
TCP/IP es el protocolo común
utilizado por todos los ordenadores conectados a Internet, de manera que éstos
puedan comunicarse entre sí. Hay que tener en cuenta que en Internet se
encuentran conectados ordenadores de clases muy diferentes y con hardware
y software incompatibles en muchos casos, además de todos los medios y
formas posibles de conexión. Aquí se encuentra una de las grandes ventajas del
TCP/IP, pues este protocolo se encargará de que la comunicación entre todos sea
posible. TCP/IP es compatible con cualquier sistema operativo y con cualquier
tipo de hardware.
TCP/IP no es un único protocolo,
sino que es en realidad lo que se conoce con este nombre es un conjunto de
protocolos que cubren los distintos niveles del modelo OSI. Los dos
protocolos más importantes son el TCP (Transmission Control Protocol) y
el IP (Internet Protocol), que son los que dan nombre al conjunto. La
arquitectura del TCP/IP consta de cinco niveles o capas en las que se agrupan
los protocolos, y que se relacionan con los niveles OSI de la siguiente manera:
o
Aplicación: Se corresponde con los niveles OSI de
aplicación, presentación y sesión. Aquí se incluyen protocolos destinados a
proporcionar servicios, tales como correo electrónico (SMTP), transferencia de
ficheros (FTP), conexión remota (TELNET) y otros más recientes como el
protocolo HTTP (Hypertext Transfer Protocol).
o
Transporte: Coincide con el nivel de transporte del modelo
OSI. Los protocolos de este nivel, tales como TCP y UDP, se encargan de manejar
los datos y proporcionar la fiabilidad necesaria en el transporte de los
mismos.
o
Internet: Es el nivel de red del modelo OSI. Incluye al
protocolo IP, que se encarga de enviar los paquetes de información a sus
destinos correspondientes. Es utilizado con esta finalidad por los protocolos
del nivel de transporte.
o
Físico : Análogo al nivel físico del OSI.
o
Red : Es la interfaz de la red real. TCP/IP no especifíca
ningún protocolo concreto, así es que corre por las interfaces conocidas, como
por ejemplo: 802.2, CSMA/CD, X.25, etc.
|
NIVEL DE APLICACIÓN |
|
NIVEL DE TRANSPORTE |
|
NIVEL DE INTERNET |
|
NIVEL DE RED |
|
NIVEL FÍSICO |
FIG:
Arquitectura TCP/IP
El TCP/IP
necesita funcionar sobre algún tipo de red o de medio físico que proporcione
sus propios protocolos para el nivel de enlace de Internet. Por este motivo hay
que tener en cuenta que los protocolos utilizados en este nivel pueden ser muy
diversos y no forman parte del conjunto TCP/IP. Sin embargo, esto no debe ser
problemático puesto que una de las funciones y ventajas principales del TCP/IP
es proporcionar una abstracción del medio de forma que sea posible el
intercambio de información entre medios diferentes y tecnologías que
inicialmente son incompatibles.
Para transmitir información a
través de TCP/IP, ésta debe ser dividida en unidades de menor tamaño. Esto proporciona
grandes ventajas en el manejo de los datos que se transfieren y, por otro lado,
esto es algo común en cualquier protocolo de comunicaciones. En TCP/IP cada una
de estas unidades de información recibe el nombre de "datagrama"
(datagram), y son conjuntos de datos que se envían como mensajes
independientes.
PROTOCOLOS TCP/IP
|
FTP, SMTP, TELNET |
SNMP,
X-WINDOWS, RPC, NFS |
|
TCP |
UDP |
|
IP,
ICMP, 802.2, X.25 |
|
|
ETHERNET,
IEEE 802.2, X.25 |
|
o
FTP (File Transfer Protocol). Se utiliza para transferencia de archivos.
o
SMTP (Simple Mail Transfer
Protocol). Es una
aplicación para el correo electrónico.
o
TELNET: Permite la conexión a una
aplicación remota desde un proceso o terminal.
o
RPC (Remote Procedure Call). Permite llamadas a procedimientos situados remotamente.
Se utilizan las llamadas a RPC como si fuesen procedimientos locales.
o
SNMP (Simple Network
Management Protocol). Se trata de una aplicación para el control de la red.
o
NFS (Network File System). Permite la utilización de archivos distribuidos por
los programas de la red.
o
X-Windows. Es un protocolo para el manejo
de ventanas e interfaces de usuario.
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.
CÓMO
FUNCIONA TCP/IP
- 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.
La Longitud total
incluye todo lo que se encuentra en el datagrama -tanto la cabecera como
los datos. La máxima longitud es de 65 536 octetos(bytes). Tamaño 16 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 la ROM de micro
espera el programa completo en un datagrama. Si el datagrama no puede pasarse a
través de una red, se deberá encaminar sobre otra red, o bien, desecharse.
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 origen contiene
la dirección del host que envía el paquete. Tamaño: 32 bit.
La Dirección de destino: Esta
dirección es la del host que recibirá la información. Los routers
o gateways intermedios deben conocerla para dirigir correctamente el
paquete. Tamaño: 32 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.
o
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.
La Longitud de la cabecera
TCP indica el número de palabra de 32 bits que están contenidas en la
cabecera de TCP. Esta información es necesaria porque el campo Opciones tiene
una longitud variable, y por lo tanto la cabecera también.
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.
EN QUE SE UTILIZA TCP/IP
Muchas grandes redes han sido
implementadas con estos protocolos, incluyendo DARPA Internet "Defense
Advanced Research Projects Agency Internet", en español, Red de la Agencia
de Investigación de Proyectos Avanzados de Defensa. De igual forma, una gran
variedad de universidades, agencias gubernamentales y empresas de ordenadores,
están conectadas mediante los protocolos TCP/IP. Cualquier máquina de la red
puede comunicarse con otra distinta y esta conectividad permite enlazar redes
físicamente independientes en una red virtual llamada Internet. Las máquinas en
Internet son denominadas "hosts" o nodos.
TCP/IP proporciona la base para
muchos servicios útiles, incluyendo correo electrónico, transferencia de
ficheros y login remoto.
El correo electrónico está diseñado
para transmitir ficheros de texto pequeños. Las utilidades de transferencia
sirven para transferir ficheros muy grandes que contengan programas o datos.
También pueden proporcionar chequeos de seguridad controlando las
transferencias.
El login remoto permite a los
usuarios de un ordenador acceder a una máquina remota y llevar a cabo una
sesión interactiva.
SIMILITUDES Y DIFERENCIAS ENTRE LA
CLASE 4 DEL MODELO OSI Y TCP
El protocolo de transporte de
clase 4 del modelo OSI (al que con frecuencia se le llama TP4), y TCP tienen
numerosas similitudes, pero también algunas diferencias. A continuación se dan
a conocer los puntos en que los dos protocolos son iguales. Los dos protocolos
están diseñados para proporcionar un servicio de transporte seguro, orientado a
conexión y de extremo a extremo, sobre una red insegura, que puede perder,
dañar, almacenar y duplicar paquetes. Los dos deben enfrentarse a los peores
problemas como sería el caso de una subred que pudiera almacenar una secuencia
válida de paquetes y más tarde volviera a entregarlos.
Los dos protocolos también son
semejantes por el hecho de que los dos tienen una fase de establecimiento de
conexión, una fase de transferencia de datos y después una fase de liberación
de la conexión. Los conceptos generales del establecimiento, uso y liberación
de conexiones también son similares, aunque difieren en algunos detalles. En
particular, tanto TP4 como TCP utilizan la comunicación ida-vuelta-ida para
eliminar las dificultades potenciales ocasionadas por paquetes antiguos que
aparecieran súbitamente y pudiesen causar problemas.
Sin embargo, los dos protocolos
también presentan diferencias muy notables, las cuales se pueden observar en la
lista que se muestra en la figura 3. Primero, TP4 utiliza nueve tipos
diferentes de TPDU, en tanto que TCP sólo tiene uno. Esta diferencia trae como
resultado que TCP sea más sencillo, pero al mismo tiempo también necesita una
cabecera más grande, porque todos los campos deben estar presentes en todas las
TPDU. El mínimo tamaño de la cabecera TCP es de 20 octetos; el mínimo tamaño de
la cabecera TP4 es de 5 octetos. Los dos protocolos permiten campos opcionales,
que pueden incrementar el tamaño de las cabeceras por encima del mínimo
permitido.
|
CARACTERÍSTICA |
OSI TP4 |
TCP |
|
Numero de tipos de TPDU |
9 |
1 |
|
Fallo de Conexión |
2 conexiones |
1 conexión |
|
Formato de direcciones |
No está definido |
32 bits |
|
Calidad de servicio |
Extremo abierto |
Opciones específicas |
|
Datos del usuario en CR |
Permitido |
No permitido |
|
Flujo |
Mensajes |
Octetos |
|
Datos importantes |
Acelerados |
Acelerados |
|
Superposición |
No |
Sí |
|
Control de flujo explícito |
Algunas veces |
Siempre |
|
Número de subsecuencia |
Permitidos |
No Permitido |
|
Liberación |
Abrupta |
Ordenada |
Figura 3: Diferencias entre el protocolo tp4 del modelo OSI y TCP
Una segunda diferencia es con
respecto a lo que sucede cuando los dos procesos, en forma simultánea, intentan
establecer conexiones entre los mismos dos TSAP (es decir, una colisión de
conexiones). Con TP4 se establecen dos conexiones duplex independientes; en tanto
que con TCP, una conexión se identifica mediante un par de TSAP, por lo que
solamente se establece una conexión.
Una tercera diferencia es con
respecto al formato de direcciones que se utiliza. TP4 no especifica el formato
exacto de una dirección TSAP; mientras que TCP utiliza números de 32 bits.
El concepto de calidad de servicio
también se trata en forma diferente en los dos protocolos, constituyendo la
cuarta diferencia. TP4 tiene un mecanismo de extremo abierto, bastante
elaborado, para una negociación a tres bandas sobre la calidad de servicio.
Esta negociación incluye al proceso que hace la llamada, al proceso que es
llamado y al mismo servicio de transporte. Se pueden especificar muchos
parámetros, y pueden proporcionarse los valores: deseado y mínimo aceptable. A
diferencia de esto, TCP no tiene ningún campo de calidad de servicio, sino que
el servicio subyacente IP tiene un campo de 8 bits, el cual permite que se haga
una relación a partir de un número limitado de combinaciones de velocidad y seguridad.
Una quinte diferencia es que TP4
permite que los datos del usuario sean transportados en la TPDU CR, pero TCP no
permite que los datos del usuario aparezcan en la TPDU inicial. El dato inicial
(como por ejemplo, una contraseña), podría ser necesario para decidir si se
debe, o no, establecer una conexión. Con TCP no es posible hacer que el
establecimiento dependa de los datos del usuario.
Las cuatro diferencias anteriores
se relacionan con la fase de establecimiento de la conexión. Las cinco siguientes
se relacionan con la fase de transferencia de datos. Una diferencia básica es
el modelo del transporte de datos. El modelo TP4 es el de una serie de mensajes
ordenados (correspondientes a las TSDU en la terminología OSI). El modelo TCP
es el de un flujo continuo de octetos, sin que haya ningún límite explícito
entre mensajes. En la práctica, sin embargo, el modelo TCP no es realmente un
flujo puro de octetos, porque el procedimiento de biblioteca denominado push
puede llamarse para sacar todos los datos que estén almacenados, pero que
todavía no se hayan transmitido. Cuando el usuario remoto lleva a cabo una
operación de lectura, los datos anteriores y posteriores al push no se
combinarán, por lo que, en cierta forma un push podría penarse como si definiesen
una frontera entre mensajes.
La séptima diferencia se ocupa de
cómo son tratados los datos importantes que necesitan de un procesamiento
especial (como los caracteres BREAK). TP4 tiene dos flujos de mensajes
independientes, los datos normales y los acelerados multiplexados de manera
conjunta. En cualquier instante únicamente un mensaje acelerado puede estar
activo. TCP utiliza el campo Acelerado para indicar que cierta cantidad de
octetos, dentro de la TPDU actualmente en uso, es especial y debería procesarse
fuera de orden.
La octava diferencia es la
ausencia del concepto de superposición en TP4 y su presencia en TCP. Esta
diferencia no es tan significativa como al principio podría parecer, dado que
es posible que una entidad de transporte ponga dos TPDU, por ejemplo, DT y AK
en un único paquete de red.
La novena diferencia se relaciona
con la forma como se trata el control de flujo. TP4 puede utilizar un esquema
de crédito, pero también se puede basar en el esquema de ventana de la capa de
red para regular el flujo. TCP siempre utiliza un mecanismo de control de flujo
explícito con el tamaño de la ventana especificado en cada TPDU.
La décima diferencia se relaciona
con este esquema de ventana. En ambos protocolos el receptor tiene la capacidad
de reducir la ventana en forma voluntaria. Esta posibilidad genera
potencialmente problemas, si el otorgamiento de una ventana grande y su
contracción subsiguiente llegan en un orden incorrecto. En TCP no hay ninguna
solución para este problema; en tanto en TP4 éste se resuelve por medio del
número de subsecuencia que está incluido en la contracción, permitiendo de esta
manera que el emisor determine si la ventana pequeña siguió, o precedió, a la
más grande.
Finalmente, la onceava y última
diferencia existente entre los dos protocolos, consiste en la manera como se
liberan las conexiones. TP4 utiliza una desconexión abrupta en la que una serie
de TPDU de datos pueden ser seguidos directamente por una TPDU DR. Si las TPDU
de datos se llegaran a perder, el protocolo no los podría recuperar y la
información, al final se perdería. TCP utiliza una comunicación de
ida-vuelta-ida para evitar la pérdida de datos en el momento de la desconexión.
El modelo OSI trata este problema en la capa de sesión. Es importante hacer
notar que la Oficina Nacional de Normalización de Estados Unidos estaba tan
disgustada con esta propiedad de TP4, que introdujo TPDU adicionales en el
protocolo de transporte para permitir la desconexión sin que hubiera una
pérdida de datos. Como consecuencia de esto, las versiones de Estados Unidos y
la internacional de TP4 son diferentes.
Es importante señalar que el
protocolo IP explicado anteriormente, o mejor dicho la versión de éste
es la más utilizada actualmente, pero hace muy poco tiempo salió una nueva versión
llamada la número 6. Las diferencias no son muchas, pero mejoran muchos
aspectos de la antigua, ésta no es muy utilizada, pero creemos que es necesario
explicar como funciona, para poder hacer una comparación con la antigua. A
continuación la trataremos.
LA NUEVA VERSIÓN DE IP (IPng)
La nueva versión del protocolo IP
recibe el nombre de IPv6, aunque es también conocido comúnmente como IPng (Internet
Protocol Next Generation). El número de versión de este protocolo es el 6
(que es utilizada en forma mínima) frente a la antigua versión utilizada en
forma mayoritaria. Los cambios que se introducen en esta nueva versión son
muchos y de gran importancia, aunque la transición desde la versión antigua no
debería ser problemática gracias a las características de compatibilidad que se
han incluido en el protocolo. IPng se ha diseñado para solucionar todos los
problemas que surgen con la versión anterior, y además ofrecer soporte a las
nuevas redes de alto rendimiento (como ATM, Gigabit Ethernet, etc.)
Una de las características más
llamativas es el nuevo sistema de direcciones, en el cual se pasa de los 32 a
los 128 bit, eliminando todas las restricciones del sistema actual. Otro de los
aspectos mejorados es la seguridad, que en la versión anterior constituía uno
de los mayores problemas. Además, el nuevo formato de la cabecera se ha
organizado de una manera más efectiva, permitiendo que las opciones se sitúen
en extensiones separadas de la cabecera principal.
Formato de la cabecera.
El tamaño de la cabecera que el
protocolo IPv6 añade a los datos es de 320 bit, el doble que en la versión
antigua. Sin embargo, esta nueva cabecera se ha simplificado con respecto a la
anterior. Algunos campos se han retirado de la misma, mientras que otros se han
convertido en opcionales por medio de las extensiones. De esta manera los routers
no tienen que procesar parte de la información de la cabecera, lo que permite
aumentar de rendimiento en la transmisión. El formato completo de la cabecera
sin las extensiones es el siguiente:
o
Versión: Número de versión del protocolo
IP, que en este caso contendrá el valor 6. Tamaño: 4 bit.
o
Prioridad: Contiene el valor de la prioridad
o importancia del paquete que se está enviando con respecto a otros paquetes
provenientes de la misma fuente. Tamaño: 4 bit.
o
Etiqueta de flujo: Campo que se utiliza para
indicar que el paquete requiere un tratamiento especial por parte de los routers
que lo soporten. Tamaño: 24 bit.
o
Longitud: Es la longitud en bytes de los
datos que se encuentran a continuación de la cabecera. Tamaño: 16 bit.
o
Siguiente cabecera: Se utiliza para indicar el
protocolo al que corresponde la cabecera que se sitúa a continuación de la
actual. El valor de este campo es el mismo que el de protocolo en la versión 4
de IP. Tamaño: 8 bit.
o
Límite de existencia: Tiene el
mismo propósito que el campo de la versión 4, y es un valor que disminuye en
una unidad cada vez que el paquete pasa por un nodo. Tamaño:8 bit.
o
Dirección de origen: El número
de dirección del host que envía el paquete. Su longitud es cuatro veces
mayor que en la versión 4. Tamaño: 128 bit.
o
Dirección de destino: Número de
dirección de destino, aunque puede no coincidir con la dirección del host
final en algunos casos. Su longitud es cuatro veces mayor que en la versión 4
del protocolo IP. Tamaño: 128 bit.
|
Organización de la cabecera IPv6. |
||||||||
|
Versión |
Prioridad |
Etiqueta de flujo |
|
|
|
|
||
|
Longitud |
Siguiente Cabecera |
Límite de existencia |
||||||
|
Dirección de origen |
||||||||
|
Dirección de destino |
||||||||
Las extensiones que permite añadir
esta versión del protocolo se sitúan inmediatamente después de la cabecera
normal, y antes de la cabecera que incluye el protocolo de nivel de transporte.
Los datos situados en cabeceras opcionales se procesan sólo cuando el mensaje
llega a su destino final, lo que supone una mejora en el rendimiento. Otra
ventaja adicional es que el tamaño de la cabecera no está limitado a un valor
fijo de bytes como ocurría en la versión 4.
Por razones de eficiencia, las
extensiones de la cabecera siempre tienen un tamaño múltiplo de 8 bytes.
Actualmente se encuentran definidas extensiones para routing extendido,
fragmentación y ensamblaje, seguridad, confidencialidad de datos, etc.
Direcciones en la versión 6.
El sistema de direcciones es uno
de los cambios más importantes que afectan a la versión 6 del protocolo IP,
donde se han pasado de los 32 a los 128 bit (cuatro veces mayor). Estas nuevas
direcciones identifican a un interfaz o conjunto de interfaces y no a un nodo,
aunque como cada interfaz pertenece a un nodo, es posible referirse a éstos a
través de su interfaz.
El número de direcciones
diferentes que pueden utilizarse con 128 bits es enorme. Teóricamente serían 2128
direcciones posibles, siempre que no apliquemos algún formato u organización a
estas direcciones. Este número es extremadamente alto, pudiendo llegar a
soportar más de 665.000 trillones de direcciones distintas por cada metro
cuadrado de la superficie del planeta Tierra. Según diversas fuentes
consultadas, estos números una vez organizados de forma práctica y jerárquica
quedarían reducidos en el peor de los casos a 1.564 direcciones por cada metro
cuadrado, y siendo optimistas se podrían alcanzar entre los tres y cuatro
trillones.
Existen tres tipos básicos de
direcciones IPng según se utilicen para identificar a un interfaz en concreto o
a un grupo de interfaces. Los bits de mayor peso de los que componen la
dirección IPng son los que permiten distinguir el tipo de dirección,
empleándose un número variable de bits para cada caso. Estos tres tipos de
direcciones son:
o
Direcciones unicast: Son las
direcciones dirigidas a un único interfaz de la red. Las direcciones unicast
que se encuentran definidas actualmente están divididas en varios grupos.
Dentro de este tipo de direcciones se encuentra también un formato especial que
facilita la compatibilidad con las direcciones de la versión 4 del protocolo
IP.
o
Direcciones anycast:
Identifican a un conjunto de interfaces de la red. El paquete se enviará a un
interfaz cualquiera de las que forman parte del conjunto. Estas direcciones son
en realidad direcciones unicast que se encuentran asignadas a varios
interfaces, los cuales necesitan ser configurados de manera especial. El
formato es el mismo que el de las direcciones unicast.
o
Direcciones multicast: Este tipo
de direcciones identifica a un conjunto de interfaces de la red, de manera que
el paquete es enviado a cada una de ellos individualmente.
Las direcciones de broadcast
no están implementadas en esta versión del protocolo, debido a que esta misma
función puede realizarse ahora mediante el uso de las direcciones multicast.