Capa host a host

Anuncio
8 – CAPA DE HOST A HOST
8.1 – Introducción:
La capa Host a Host cumple dos funciones principales:
A – Proporciona una interfaz adecuada para que los procesos de la capa superior y las
aplicaciones accedan a la red.
B – Entrega los mensajes de la capa superior entre hosts
Dado que las necesidades de los procesos de la capa superior son distintas, se han
implementado dos protocolos Host a Host.
1 - El protocolo de control de transmisión (TCP – Transmission Control Protocol)
-
Es un protocolo fiable
Se esfuerza por entregar los datos en su destino
Verifica si se producen errores
Repite los envíos cuando es necesario
Sólo informa a las capas superiores si no consigue realizar una transmisión correcta
El precio de la robustez de TCP es un elevado nivel de tráfico en la red. Si no se
requiere de una alta fiabilidad, es preferible utilizar un transporte que genere menos
tráfico
2- El protocolo de datagrama de usuario (UDP – User Datagram Protocol).
-
Es un protocolo no fiable
Realiza un solo intento de entrega de los datos
UDP no se esfuerza en descubrir datagramas perdidos
Los procesos de la capa superior deben encargarse de la detección y transmisión de
los posibles datos erróneos o incompletos
UDP genera un nivel menor de tráfico que TCP
La figura siguiente muestra los protocolos asociados con las capas de la pila TCP/IP:
Proceso / Aplicación
FTP Telnet SMTP Otros TFTP DNS SNMTP NFS
Host a Host
TCP
Internet
Acceso a la red
Protocolos
ARP
encaminamiento
UDP
IP
Ethernet, IEEE 802x, FDDI,ATN, ISDN, x25
8.2 – Protocolo de control de transmisión:
TCP proporciona una comunicación fiable entre los procesos que se ejecutan en los
Hosts interconectados. La comunicación host a host funciona con independencia de la
estructura de la red. TCP no se encarga del encaminamiento de los datos a través de la
interred; la responsabilidad de la infraestructura de la red recae sobre IP. En la capa de
Host a Host, el TCP de un Host se comunica directamente con el de otro sin tener en
cuenta si pertenecen a la misma red o a redes remotas.
TCP desconoce la infraestructura de la red. TCP utiliza direcciones IP para identificar a
los Hosts sin considerar las direcciones físicas.
Algunas de las características y funciones de TCP son las siguientes:
8.2.1- Mantenimiento de las corrientes de datos
Desde su perspectiva, los procesos y las aplicaciones de los Hosts se comunican
transmitiendo corrientes de datos. No se preocupan de los mecanismos de
fragmentación de datos ni del control de flujo.
El interfaz entre TCP y el proceso local se denomina puerto. Es un mecanismo
que permite que el proceso llame a TCP y que TCP a su vez entregue las concesiones de
datos a los procesos adecuados.
Los puertos se identifican mediante un número de puerto. Los fabricantes que
implementan TCP disponen de una gran libertad para asignar un nº de puerto a los
procesos, aunque la autoridad de números asignados por Internet (IANA) ha dedicado
números de puerto específicos a una serie de procesos comunes. El RFC de números
asignados (RFC 1700) describe estos casos, que se denominan “puertos bien conocidos”
El conjunto de puertos bien conocidos resulta adecuado para establecer
conexiones entre los procesos más comunes. Por ejemplo, el proceso telnet server
dispone de un puerto bien conocido, que facilita el inicio de una sesión telnet desde un
host.
Para especificar plenamente una conexión, la dirección IP se añade al nº del puerto. Esta
combinación se denomina socket (enchufe). Por consiguiente, el nº de socket es único
en toda la interred. Una conexión entre dos hosts queda totalmente descrito por los
sockets asignados a cada terminal de la conexión. La conexión entre dos sockets
proporciona una ruta de comunicación bidireccional (dúplex total entre los dos
procesos)
TCP/IP utiliza dos tipos de sockets:
-
Sockets de corriente: Se utilizan con TCP para lograr un intercambio de datos fiable,
secuencial y bidireccional
Socket de datagrama: Se utilizan con UDP para lograr transferencias de datos no
fiables y bidireccionales
Los sockets constituyen un interfaz de programa de aplicación (API) entre TCP, los
procesos y las aplicaciones. Esta API permite a los programadores que sus aplicaciones
accedan a TCP.
Nota: En el paquete hay un octeto que determina si el paquete va a TCP o a UDP
COMUNICACIÓN DUPLEX TOTAL
P/A
P/A
P/A
P/A
P/A
P/A
P/A
P/A
P/A
P/A
P/A
FTP
FTP
Telnet
TFTP
TFTP
Telnet
FTP
FTP
Puerto
A
TCP
Puerto
B
Protocolo
Ip=6
P.
C
Pue.
D
UDP
IP
Acceso a la red
Pr.IP=17
Puerto
D
TCP
TCP
Puerto
C
Protocolo
Ip=17
P.
B
Pue.
UDP A
UDP
IP
Acceso a la red
Pr.IP=6
8.2.2- Administración de conexiones:
Para el proceso, la comunicación con la red implica el envío y la recepción de
corrientes de datos contínuas. El proceso no se encarga de la fragmentación de los datos
para adaptarlos a los protocolos de la capa inferior. La secuencia del proceso de los
datos durante la transmisión y la recepción consta de los siguientes pasos:
A- TCP recibe una corriente de datos desde el proceso de la capa superior.
B- TCP puede fragmentar la corriente de datos en segmentos para adaptarlos al tamaño
máximo del datagrama IP
C- IP puede fragmentar los segmentos a medida que prepara los datagramas para
adaptarlos a las restricciones de la red
D- Los protocolos de acceso a la red transmiten el datagrama en forma de bits
E- Los protocolos del host receptor reconstruyen los datagramas a partir de los bits
recibidos
F- Ip recibe los datagramas de la red. Si es necesario, los fragmentos se reensamblan
para reconstruir el segmento original
G- TCP presenta los datos de los segmentos a los protocolos de la capa superior en
forma de corriente de datos
Figura que representa el proceso de los datos durante la transmisión y recepción:
8.2.2.1- Ventanas:
TCP se encarga de controlar el flujo entre dos hosts y para ello utiliza ventanas.
El host receptor envía una ventana al host emisor especificando el número de octetos
que puede aceptar el TCP receptor. El TCP emisor no transmite después de recibir la
ventana, hasta recibir un acuse que confirme la recepción de los datos.
El tamaño de ventana de recepción TCP indica la capacidad de datos de la
memoria intermedia del host receptor. Es la cantidad máxima de datos que un host
puede gestionar en un momento dado.
La eficacia de la transmisión de mensajes aumenta cuando estos se fragmentan
según la unidad máxima de transferencia (mtu); El tamaño máximo de mensaje que
puede viajar a través de una determinada ruta de la red. Cuando se establece una
conexión, TCP utiliza la mtu de la red para adaptarse al tamaño máximo de segmento
(mss). Normalmente, el mss equivale a la mtu menos los bytes que están dedicados a las
cabeceras.
En una red de Microsoft TCP/IP funcionando sobre Ethernet, se utiliza un mss
de 1460 bytes y normalmente la ventana es de unos 8760 bytes (aproximadamente 6
segmentos)
8.2.2- Abrir y cerrar conexiones
Los procesos pueden abrir y cerrar la conexión y obtener el estado de la misma.
Las conexiones deben abrirse y cerrarse explícitamente. Cuando TCP envía una llamada
de apertura, éste indica el puerto local y el socket remoto. Los procesos de la capa
superior reciben un nombre que utilizan para identificar la conexión.
8.2.3- Comunicación fiable
TCP se encarga de entregar las corrientes de datos a sus destinatarios de manera
fiable y ordenada. TCP utiliza números de secuencia de segmento y acuses de recibo.
Cada octeto de un segmento cuenta con un número de secuencias que permite
acusar su recibo. Cuando TCP envía un segmento, retiene una copia, y las mantiene en
una cola hasta que llega el acuse de recibo. Si en un tiempo determinado no se recibe el
acuse, el segmento se envía nuevamente.
9 – La capa proceso / aplicación
9.1-Introducción
La capa de proceso/aplicación es el motivo por el que existen otras capas de red.
Los protocolos de las capas inferiores se limitan a entregar mensajes. El verdadero
trabajo se lleva a cabo en la capa de proceso/aplicación. Contiene programas que
proporcionan servicios de red como servidores de correo, de transferencia de archivos,
terminales remotos y servidores de administración de sistemas. Además, existen
programas que actúan a modo de interfaces con el usuario final como FTP y Telnet.
Debe tenerse en cuenta que pueden existir otras capas sobre las de
proceso/aplicación: aplicaciones que utilizan los servicios proporcionados por ciertos
procesos.
Por ejemplo, los usuarios pueden utilizar directamente el protocolo simple de
transferencia de correo (SMTP – Simple Mail Transfer Protocol) para enviar y recibir
correo. Sin embargo, es más frecuente que los usuarios accedan a SMTP mediante un
programa de correo electrónico(outlook) que genere mensajes utilizando el protocolo
SMTP.
9.2- Asignación de nombres a los hosts de Internet
Dado que los usuarios interactúan con la capa de proceso/aplicación, resulta
conveniente dotarla de cierta amigabilidad. Imaginemos que tuviéramos que utilizar
direcciones IP para enviar mensajes y dirigirse a los usuarios en una red de dimensiones
de Internet. ¿Cuántas direcciones IP seríamos capaces de recordar?
Por este motivo, la comunidad de Internet comenzó a utilizar nombres de hosts
para indentificarlos. La mayoría de usuarios les resulta más fácil recordar
www.marcgene.com que 192.49.45.10
El uso de nombres de hosts requiere un sistema que permita asociarlos a sus
direcciones IP: A tal efecto, se han empleado dos tecnologías en Internet:
A- El uso de archivos Hosts para asignar nombres estáticos
B- Sistema de nombres de dominio (DNS – Domain Name System) el cual convierte
nombres de dominio en direcciones IP
9.3- Aplicaciones TCP/IP
9.3.1- Introducción
En este apartado se van a describir varias aplicaciones TCP/IP de uso común que
son herramientas que los usuarios utilizan frecuentemente.
9.3.2- FTP – Protocolo de transferencia de ficheros
FTP es a la vez un protocolo y un programa que puede utilizarse para realizar
operaciones básicas sobre los archivos de un host remoto y para transferir archivos entre
hosts. Como programa, FTP permite que los usuarios realicen manualmente
operaciones realizadas con archivos. Las aplicaciones pueden usar FTP como protocolo
si requieren sus servicios de archivo. FTP es una aplicación segura y fiable, que ya
opera sobre TCP. Los usuarios que acceden a un host utilizando FTP deberán
autentificar su conexión, y por tanto proporcionar su nombre y contraseña.
9.3.2.1 – Anatomía de FTP
Un host que ofrece sus sistema de archivos a los usuarios, debe ejecutar una
aplicación de tipo servidor FTP. Los usuarios que accedan al servidor FTP deberán
ejecutar un software de tipo cliente FTP en sus ordenadores.
Cuando el cliente FTP abre una conexión al servidor FTP, se establece un canal lógico
(un circuito virtual definido por dos sockets) entre ambos hosts. El canal posibilita la
comunicación entre los componentes FTP.
No es posible ejecutar los archivos remotos a modo de programas pero sí se puede listar
directorios, ver el contenido de archivos, manipular los directorios locales y copiar los
archivos de un host a otro.
Figura de la anatomía de una sesión FTP
Almacenamiento local archivos
Almacenamiento remoto archivos
Cliente FTP
UDP
IP
Servidor FTP
UDP
IP
Capa acceso a
la red
Capa acceso a
la red
RED de área extensa
9.3.2.2- Uso de FTP
Para utilizar FTP existen aplicaciones con entornos gráficos que nos permiten
configurar el inicio de sesión, y realizar las correspondientes operaciones de envío y
recepción de archivos.
También puede realizarse comandos de FTP desde una línea de órdenes.
9.3.2.3 – Comandos de FTP * Consultar listado
9.3.3 – TFTP: Protocolo trivial de transferencia de archivos
FTP fue diseñado para garantizar la seguridad de las operaciones con archivos
en redes poco fiables. Utiliza TCP como protocolo de transporte para conseguir entregas
fiables.
FTP opera sobre circuitos virtuales TCP y requiere que los hosts establezcan una
conexión antes de realizar las operaciones con archivos. Una conexión FTP lleva
implícito un proceso de autenticación.
Cuando una red es fiable, como por ejemplo una red de área local, la carga
adicional de FTP puede no ser deseable. Esta razón ha impulsado el desarrollo de un
protocolo más sencillo: el TFTP (RFC 1350). TFTP usa el protocolo no fiable UDP
como transporte. No obliga a establecer una conexión ni implica el proceso de
autentificación antes de permitir la transferencia de archivos.
La falta de seguridad de trivial (TFTP) hace que su uso sea arriesgado en una red
pública.
9.3.4 – Telnet
9.3.4.1- Introducción
El acceso en modo terminal remoto es una característica crítica de muchos
ordenadores, lo cual puede lograrse mediante conexión telefónica y red de Internet.
Telnet es un programa que posibilita el acceso en modo terminal remoto a través
de una red.
9.3.4.2 – Funcionamiento de Telnet
Al igual que FTP, se basa en procesos cliente – servidor. Un servidor Telnet,
ejecutándose en un host remoto mantiene un terminal virtual: una imagen software de
un terminal que puede interactuar con el host. Un usuario inicia una sesión Telnet
ejecutando un programa cliente Telnet y conectándose al servidor Telnet. El servidor
recibe las pulsaciones de teclas del cliente y las aplica al terminal virtual que interactúa
con otros procesos del host. El servidor Telnet también recibe los datos destinados a la
pantalla del terminal y los envía al cliente Telnet. La sensación que percibe el usuario es
que la cesión del terminal tiene lugar en la computadora local, mientras que el host
remoto piensa “que está interactuando con un terminal local”
Telnet se basa en la emulación de un terminal de texto, normalmente DIGITAL
UET220. En estos terminales sólo se puede trabajar en modo texto. Otra limitación
consiste en que la computadora local no tiene capacidad para procesar información.
Todos los procesos tienen lugar en el servidor Telnet remoto, que convierte el host local
en un terminal tonto.
9.3.4.3 – Figura de funcionamiento de Telnet
Cliente Telnet
TCP
IP
Servidor Telnet
TCP
IP
Capa acceso a
la red
Capa acceso a
la red
Red de área extensa
9.3.5 – SMTP: Protocolo simple de transferencia de correo
9.3.5.1 – Introducción
El correo electrónico es una de las aplicaciones más importantes en Internet. Se
basa en el protocolo SMTP descrito en la RFC821. SMTP transporta mensajes de correo
electrónico entre distintos hosts TCP-IP.
Aunque un usuario con experiencia puede comunicarse directamente usando el
protocolo SMTP, éste no es el procedimiento estándar. Normalmente, varias capas de
comunicación intervienen en el proceso.
9.3.5.2 – Arquitectura del correo SMTP
Los hosts que admiten correo electrónico utilizan un agente de transferencia de
correo ( MTA – Mail Transfer Agent) para gestionar el proceso. El MTA más extendido
en la comunidad UNIX es el Send Mail. A grandes rasgos, el MTA tiene dos
responsabilidades:
1 – Enviar y recibir mensajes desde / hasta otros servidores de correo
2 - Proporcionar un interfaz que permita que las aplicaciones accedan al sistema de
correo.
El MTA se encarga de proporcionar a los usuarios buzones de correo dotados de
una dirección. Cuando se envía un mensaje a www.marcgene.com, www.margene.com es el
nombe del dominio del host que ejecuta el MTA. Este se encarga de asegurar que los
mensajes dirigidos a marc se depositan en el buzón correcto.
Los usuarios finales se comunican con el MTA utilizando uno de los muchos
agentes de usuario (UA – User Agent) disponibles. El UA es un sistema de correo que
evita al usuario todas las complicaciones del proceso. Los UA utilizan un protocolo de
correo para comunicarse con el MTA, por ejemplo , la versión 3 del protocolo de
oficina de correos (POP 3- Post Office Protocol Version3;RFC1460)
En UNIX, uno de los UA más utilizados es el programa basado en texto mail. En
Windows, el Outlook.
La imagen siguiente representa la arquitectura de la mensajería basada en SMTP:
SMTP
TCP
IP
SMTP
TCP
IP
Capa acceso a
la red
Agente de
Usuario
POP3
Conexión
Agente de
transferencia de
correo (MTA)
Capa acceso a
la red
Agente de
transferencia de
correo (MTA)
POP3
Agente de
Usuario
Red de área extensa
•
Los dos ordenadores del centro son servidores
9.3.5.3 – Entregas de correo electrónico
Los sistemas de correo electrónico no están diseñados para realizar intercambio
de mensajes en tiempo real.
Los servidores de correo electrónico usan un método de almacenamiento
temporal y envío de mensajes. En la imagen siguiente, se muestra un ejemplo de correo
en el que B debe enviar mensajes entre A y C. B debería trabajar a mucho ritmo si
tuviera que encaminar los datagramas IP en tiempo real. En cambio, B opta por un
enfoque más relajado. Cuando recibe el mensaje de A, B almacena la totalidad del
mensaje en un disco duro local. Si B tiene otras prioridades, (p.ej. la recepción de otros
mensajes) espera hasta que la actividad descienda antes de enviar el mensaje a C. Es
posible configurar B para que envíe los mensajes a C cuando existan varios mensajes
pendientes o cuando transcurra un periodo de tiempo dado. La eficiencia de B aumenta
al transferir varios mensajes con una sola conexión, en lugar de abrir una conexión
distinta para cada mensaje.
Estas técnicas pueden aumentar el tiempo de tránsito en minuto u horas, pero aumentan
la eficiencia global.
Imagen de entrega de mensajes de correo electrónico:
Cola mensajes
Cola almacenamiento y envío
Agente
transferencia
correo (MTA)
A
Agente
transferencia
correo (MTA)
B
Mensaje que B debe enviar
Buzón de usuario
Agente
transferencia
correo (MTA)
C
Mensaje para buzones de C
9.3.5.4 – Características de SMTP
SMTP fue diseñado para transferir mensajes basados en texto ASCII de 7 bits.
El envío de datos binarios a través de los sistemas de correo SMTP, requiere su
codificación en un formato compatible con la transmisión de caracteres de 7 bits. El
host receptor decodifica el mensaje para recuperar los datos binarios. Muchos de los
agentes de usuario realizan estas conversiones de forma automática en los archivos
adjuntos.
Las extensiones de propósito general para correo de Internet ( MIME – Multi
Purpose Internet Mail Extension) constituye un protocolo opcional que admite
transferencia de mensaje binarios a través de SMTP.
La seguridad de SMTP es pobre y no existe encriptación de mensajes. Se
recomienda encriptar mensajes confidenciales antes de transmitirlos por correo SMTP
9.3.6 – NFS (Sistema de archivos de red)
Imaginemos que deseamos abrir un programa de hoja de cálculo en nuestro
ordenador y actualizar la hoja de cálculo de otra computadora. Con FTP debería
transferir e archivo a mi computadora y enviarlo nuevamente a su origen una vez hechos
los cambios.
El sistema NFS es el equivalente TCP/IP de la capacidad para compartir
archivos de los productos Microsoft. NFS fue desarrollado por Sun Microsystems. Un
servidor NFS puede exportar parte de un árbol de directorios para el uso de los clientes
NFS. Los clientes pueden montar los directorios exportados como si formaran parte del
sistema de archoivos nativo local. Por ejemplo, los usuarios de DOS acceden al
directorio exportado como si se tratara de una letra de unidad incluída en la estructura
de archivos local de DOS.
NFS es un protocolo sofisticado y fiable que no usa el transporte TCP. Por motivos de
eficiencia, NFS funciona sobre UDP. NFS implementa la seguridad, la fragmentación
de mensajes y recuperación de errores.
Imagen de exportación de un directorio con NFS
Servidor
NFS
/
bin etc pub
mac msdos UNIX
Servidor NFS
UDP
IP
Capa acceso a
la red
D:\>
pub
Cliente
NFS
mac msdos UNIX
Directorio Exportado
Cliente NFS
UDP
IP
Capa acceso a
la red
Descargar