Características de las Aplicaciones
Todos los protocolos alto-nivel tienen algunas características en común:
- Pueden ser aplicaciones escritas por usuarios o aplicaciones estándar adjuntas en el producto TCP/IP. Actualmente, la familia de protocolos TCP/IP incluye protocolos de aplicación tales como:
- TELNET para acceso interactivo al terminal de un host remoto de internet.
- FTP para transferencias de ficheros disco a disco de alta velocidad.
- SMTP para sistema de correo de internet.
Estos son los protocolos de aplicación que más se implementan, pero existen muchos más. Cada implementación TCP/IP particular incluirá su conjunto de protocolos de aplicación.
- Todos usan UDP o TCP como mecanismo transporte. Recordar que UDP no es fiable y tampoco ofrece contro de flujo, así que en este caso la aplicación tiene que proporcionar sus propias rutinas de recuperación de errores y control de flujo. Es más sencillo construir aplicaciones por encima de TCP, un protocolo fiable y orientado a conexión. La mayoría de los protocolos de aplicación usan TCP, pero existen aplicaciones realizadas sobre UDP que proporcionar mejor rendimiento puesto que reduce el tamaño de la cabecera.
- La mayor parte de ellos usan el modelo de interacción cliente/servidor.
Modelo cliente/servidor
TCP es un protocolo peer-to-peer orientado a conexión. No existen relaciones maestro/esclavo. Las aplicaciones, sin embargo, usan un modelo de comunicación cliente/servidor.
Un servidor es una aplicación que ofrece un servicio a los usuarios de internet; un cliente es un solicitante de un servicio. Una aplicación consiste en una parte servidor y otra cliente, que pueden ejecutarse en el mismo o en distintos sistemas.
Los usuarios normalmente invocan la parte del cliente de las aplicaciones, la cual construye una petición para un servicio particular y la envía a la parte del servidor de la aplicación usando TCP/IP como vehículo de transporte.
El servidor es un programa que recibe una petición, lleva a cabo el servicio requerido y devuelve los resultados en una respuesta. Un servidor normalmente puede tratar con múltiples peticiones (múltiples clientes) al mismo tiempo.
Algunos servidores esperan por las peticiones por un puerto bien-conocido así que sus clientes saben a que socket IP deben direccionar sus peticiones. El cliente utiliza un puerto arbitrario para su comunicación. Los clientes que desean comunican con un servidor que no use un puerto bien-conocido debe poseer otro mecanismo para conocer a qué puerto debe direccionar sus peticiones. Este mecanismo puede emplear un servicio de registro tal que Portmap, que usa un puerto bien-conocido.
Las secciones siguientes discuten los protocolos de aplicación más utilizados.