protocolos de internet
Post on 08-Dec-2014
2.355 Views
Preview:
DESCRIPTION
TRANSCRIPT
LOGO
Protocolos de internet
Protocolos de internet
Definición La definición del término protocolo es importantísimo.
En la vida real, los protocolos son un conjunto de hábitos y procedimientos utilizados en las relaciones interpersonales. Cuando es usado bajo el contexto de redes de comunicación el termino protocolo tiene un significado similar pero a un nivel mas especifico, esto es, un protocolo de red es un conjunto de reglas, secuencias, formatos de mensajes y procedimientos bien detallados que posibilitan la transferencia de datos entre dos o mas sistemas de computación.
De manera similar, un protocolo de red (incluyendo todos los protocolos de internet) es el termino utilizado para describir como los sistemas de computación se comunican con otros a nivel de bit y de byte.
Tipos de Protocolo Protocolos de bajo nivel * IP, Direcciones IP Su función es transmitir trozos de data de un sistema a
otro, la información mas importante que requiere IP, es la dirección de los sistemas de computación que IP utiliza para transmitir y recibir data.
El término mas familiar para una localización en internet es “dirección”, cada sistema en internet tiene dirección. Esta dirección es llamada dirección IP, existen dos formatos para una dirección IP. Uno es interno, cada computadora en internet utiliza una dirección IP compuesta por 4 números, un ejemplo es ‘198.137.231.1’. Sin embargo como es mas fácil para las personas recordar nombres que numero, se tiene el otro formato que corresponde a nombres de direcciones IP.
Tipos de Protocolo * TCP Y UDP En general se ha explicado como los sistemas se
comunican a bajo nivel utilizando direcciones IP tanto en el formato numérico como en el formato de nombres para identificar la misma. IP no suministra mas capacidades que enviar y recibir trozos de data se requiere mucho mas que eso, en este sentido aparecen TCP Y UDP. TCP (Protocolo de Control de Transmisión) suministra una conexión virtual entre dos sistemas (lo que significa que pueden existir muchas conexiones físicas a partir de una conexión virtual), con ciertas garantías en los trozos de datos (llamados paquetes) que son transmitidos entre los sistemas. Dos garantías son: la retransmisión de los paquetes que son borrados (por problemas en la red) y la otra es que los paquetes son recibidos en el mismo orden en que son enviados. La tercera garantía es que cada paquete recibido tiene exactamente el mismo contenido que el paquete enviado.
Tipos de Protocolo Algunos aplicaciones utilizan un protocolo distinto que corre
encima de IP, este es llamado UDP (Protocolo de Datagramas de Usuarios). UDP envía un paquete de data a la vez (llamado datagrama) a otros sistemas y no suministra una conexión virtual como lo hace TCP, asimismo UDP no provee las mismas garantías que tiene TCP, esto significa que puede darse el caso de que los paquetes se pierdan o bien no sean reconstruidos en la forma adecuada.
La utilidad de utilizar UDP en vez de TCP, Si UDP no es confiable, esta se basa en que TCP tiene un alto solapamiento en la conexión comparado con UDP, lo que hace que TCP sea mas lento que UDP. Para aplicaciones donde la velocidad de ejecución es mas importante que la confiabilidad, UDP tiene mas sentido. Algunos ejemplos incluye audio y video en la internet y algunas aplicaciones telefónicas.
Tipos de Protocolo * SLIP Y PPP En los casos en que una aplicación de internet
esta corriendo sobre sistemas conectados a una LAN, probablemente estos están utilizando IP sobre una red ETHERNET o Token Ring, con una conexión de internet dedicada (esclava).
Tanto SLIP como PPP utilizan IP para enviar data sobre líneas dedicadas. SLIP es la abreviatura de Líneas seriales IP y PPP es el nombre corto de Protocolo de Punto a Punto. Ambos toman la data y los paquetes de IP para que así estos puedan ser enviados sobre modem en líneas dedicadas.
Tipos de Protocolo Protocolos de Aplicación de internet * FTP y Telnet FTP (Protocolo de transferencia de archivos)
permite bajar y colocar archivos en la internet. Para bajar un archivo en un sistema de computación es necesario correr una aplicación cliente de FTP que se conecta al servidor FTP y procede a bajar el archivo de su correspondiente directorio o carpeta.
Telnet es una vía para realizar una conexión remota a otro sistema en la red. Un servidor telnet debe estar corriendo en el sistema remoto y un cliente de telnet debe estar corriendo en el sistema local. Los sistema operativos típicos para servidores telnet son unís, Windows nt etc.
Tipos de Protocolo * HTTP Es el protocolo primario de www. Cuando un
navegador se conecta a un servidor web, este usa http para recibir paginas web, http tiene la capacidad para transferir paginas web, gráficos y muchos otros tipos de medios usados en internet.
* Internet, Correo electrónico El correo electrónico utiliza un protocolo llamado
SMTP (Protocolo de transferencia de correo simple) una aplicación cliente de correo electrónico es utilizado para enviar y recibir mensajes y esta se comunica con un servidor SMTP el cual esta fuera y se encarga de enviar los mensajes y tomar la responsabilidad de tomar estos. Una dirección de correo electrónico esta compuesta de dos partes: el nombre del usuario y la dirección del servidor, un ejemplo cduran@consisint.com.
Protocolo IP
La función del protocolo IP El protocolo IP es parte de la capa de Internet
del conjunto de protocolos TCP/IP. Es uno de los protocolos de Internet más importantes ya que permite el desarrollo y transporte de datagramas de IP (paquetes de datos), aunque sin garantizar su "entrega". En realidad, el protocolo IP procesa datagramas de IP de manera independiente al definir su representación, ruta y envío.
El protocolo IP determina el destinatario del mensaje mediante 3 campos:
el campo de dirección IP: Dirección del equipo;
Protocolo IP
el campo de máscara de subred: una máscara de subred le permite al protocolo IP establecer la parte de la dirección IP que se relaciona con la red;
el campo de pasarela predeterminada: le permite al protocolo de Internet saber a qué equipo enviar un datagrama, si el equipo de destino no se encuentra en la red de área local.
Protocolo IP
Datagramas Los datos circulan en Internet en forma de
datagramas (también conocidos como paquetes). Los datagramas son datos encapsulados, es decir, datos a los que se les agrega un encabezado que contiene información sobre su transporte (como la dirección IP de destino).
Los routers analizan (y eventualmente modifican) los datos contenidos en un datagrama para que puedan transitar.
Protocolo IP
A continuación se indica cómo se ve un datagrama:
<- 32 bits ->
Versión(4 bits)
Longitud del encabezado
(4 bits)
Tipo de servicio (8 bits)
Longitud total(16 bits)
Identificación (16 bits) Indicador
(3 bits)
Margen del fragmento
(13 bits)
Tiempo de vida (8 bits)
Protocolo (8 bits)
Suma de comprobación del encabezado
(16 bits)
Dirección IP de origen (32 bits)
Dirección IP de destino (32 bits)
Datos
Protocolo IP
A continuación se indican los significados de los diferentes campos:
Versión (4 bits): es la versión del protocolo IP que se está utilizando (actualmente se utiliza la versión 4 IPv4) para verificar la validez del datagrama. Está codificado en 4 bits.
Longitud del encabezado o IHL por Internet Header Length (Longitud del encabezado de Internet) (4 bits): es la cantidad de palabras de 32 bits que componen el encabezado (Importante: el valor mínimo es 5). Este campo está codificado en 4 bits.
Protocolo IP
Tipo de servicio (8 bits): indica la forma en la que se debe procesar el datagrama.
Longitud total (16 bits): indica el tamaño total del datagrama en bytes. El tamaño de este campo es de 2 bytes, por lo tanto el tamaño total del datagrama no puede exceder los 65536 bytes. Si se lo utiliza junto con el tamaño del encabezado, este campo permite determinar dónde se encuentran los datos.
Identificación, indicadores y margen del fragmento son campos que permiten la fragmentación de datagramas. Esto se explica a continuación.
Protocolo IP TTL o Tiempo de vida (8 bits): este campo especifica
el número máximo de routers por los que puede pasar un datagrama. Por lo tanto, este campo disminuye con cada paso por un router y cuando alcanza el valor crítico de 0, el router destruye el datagrama. Esto evita que la red se sobrecargue de datagramas perdidos.
Protocolo (8 bits): este campo, en notación decimal, permite saber de qué protocolo proviene el datagrama. ICMP 1 IGMP: 2 TCP: 6 UDP: 17
Protocolo IP Suma de comprobación del encabezado (16 bits):
este campo contiene un valor codificado en 16 bits que permite controlar la integridad del encabezado para establecer si se ha modificado durante la transmisión. La suma de comprobación es la suma de todas las palabras de 16 bits del encabezado (se excluye el campo suma de comprobación). Esto se realiza de tal modo que cuando se suman los campos de encabezado (suma de comprobación inclusive), se obtenga un número con todos los bits en 1.
Dirección IP de origen (32 bits): Este campo representa la dirección IP del equipo remitente y permite que el destinatario responda.
Dirección IP de destino (32 bits): dirección IP del destinatario del mensaje.
Protocolo IP Fragmentación de datagramas de IP Como se ha visto anteriormente, el tamaño máximo de
un datagrama es de 65536 bytes. Sin embargo, este valor nunca es alcanzado porque las redes no tienen suficiente capacidad para enviar paquetes tan grandes. Además, las redes en Internet utilizan diferentes tecnologías por lo tanto el tamaño máximo de un datagrama varía según el tipo de red.El tamaño máximo de una trama se denomina MTU (Unidad de transmisión máxima). El datagrama se fragmentará si es más grande que la MTU de la red.
Protocolo IP
Tipo de red MTU (en bytes)
Arpanet 1000
Ethernet 1500
FDDI 4470
La fragmentación del datagrama se lleva a cabo a nivel de router, es decir, durante la transición de una red con una MTU grande a una red con una MTU más pequeña. Si el datagrama es demasiado grande para pasar por la red, el router lo fragmentará, es decir, lo dividirá en fragmentos más pequeños que la MTU de la red, de manera tal que el tamaño del fragmento sea un múltiplo de 8 bytes.
Protocolo IP
El router enviará estos fragmentos de manera independiente y los volverá a encapsular (agregar un encabezado a cada fragmento) para tener en cuenta el nuevo tamaño del fragmento. Además, el router agrega información para que el equipo receptor pueda rearmar los fragmentos en el orden correcto. Sin embargo, no hay nada que indique que los fragmentos llegarán en el orden correcto, ya que se enrutan de manera independiente.
Protocolo IP Para tener en cuenta la fragmentación, cada
datagrama cuenta con diversos campos que permiten su rearmado:
campo Margen del fragmento (13 bits): campo que brinda la posición del comienzo del fragmento en el datagrama inicial. La unidad de medida para este campo es 8 bytes (el primer fragmento tiene un valor cero);
campo Identificación (16 bits): número asignado a cada fragmento para permitir el rearmado;
campo Longitud total (16 bits): esto se vuelve a calcular para cada fragmento; campo Indicador (3 bits): está compuesto de tres bits:
Protocolo IP
Enrutamiento IP El enrutamiento IP es una parte integral de la
capa de Internet del conjunto TCP/IP. El enrutamiento consiste en asegurar el enrutamiento de un datagrama de IP a través de la red por la ruta más corta. A esta función la llevan a cabo los equipos denominados routers, es decir, equipos que conectan al menos dos redes.
Protocolo TCP Las características del protocolo TCP TCP (que significa Protocolo de Control de
Transmisión) es uno de los principales protocolos de la capa de transporte del modelo TCP/IP. En el nivel de aplicación, posibilita la administración de datos que vienen del nivel más bajo del modelo, o van hacia él, (es decir, el protocolo IP). Cuando se proporcionan los datos al protocolo IP, los agrupa en datagramas IP, fijando el campo del protocolo en 6 (para que sepa con anticipación que el protocolo es TCP). TCP es un protocolo orientado a conexión, es decir, que permite que dos máquinas que están comunicadas controlen el estado de la transmisión.
Protocolo TCP Las principales características del protocolo TCP
son las siguientes: TCP permite colocar los datagramas nuevamente en
orden cuando vienen del protocolo IP. TCP permite que el monitoreo del flujo de los datos y
así evita la saturación de la red. TCP permite que los datos se formen en segmentos
de longitud variada para "entregarlos" al protocolo IP. TCP permite multiplexar los datos, es decir, que la
información que viene de diferentes fuentes (por ejemplo, aplicaciones) en la misma línea pueda circular simultáneamente.
Por último, TCP permite comenzar y finalizar la comunicación amablemente.
Protocolo TCP
El objetivo de TCP Con el uso del protocolo TCP, las aplicaciones pueden
comunicarse en forma segura (gracias al sistema de acuse de recibo del protocolo TCP) independientemente de las capas inferiores. Esto significa que los routers (que funcionan en la capa de Internet) sólo tienen que enviar los datos en forma de datagramas, sin preocuparse con el monitoreo de datos porque esta función la cumple la capa de transporte (o más específicamente el protocolo TCP).
Durante una comunicación usando el protocolo TCP, las dos máquinas deben establecer una conexión. La máquina emisora (la que solicita la conexión) se llama cliente, y la máquina receptora se llama servidor.
Protocolo TCP Por eso es que decimos que estamos en un entorno
Cliente-Servidor. Las máquinas de dicho entorno se comunican en modo en línea, es decir, que la comunicación se realiza en ambas direcciones.
Para posibilitar la comunicación y que funcionen bien todos los controles que la acompañan, los datos se agrupan; es decir, que se agrega un encabezado a los paquetes de datos que permitirán sincronizar las transmisiones y garantizar su recepción.
Otra función del TCP es la capacidad de controlar la velocidad de los datos usando su capacidad para emitir mensajes de tamaño variable. Estos mensajes se llaman segmentos.
Protocolo TCP
La función multiplexión TCP posibilita la realización de una tarea
importante: multiplexar/demultiplexar; es decir transmitir datos desde diversas aplicaciones en la misma línea o, en otras palabras, ordenar la información que llega en paralelo.
Protocolo TCP
multiplexacion demultiplexacion
Equipo A Equipo B
Protocolo TCP
Estas operaciones se realizan empleando el concepto de puertos (o conexiones), es decir, un número vinculado a un tipo de aplicación que, cuando se combina con una dirección de IP, permite determinar en forma exclusiva una aplicación que se ejecuta en una máquina determinada.
Protocolo TCP
El formato de los datos en TCP Un segmento TCP está formado de la siguiente
manera:
0 1 2 3 4 5 6 7 8 910
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Puerto de origen Puerto de destino
Número de secuencia
Número de acuse de recibo
Margende
datosReservado
URG
ACK
PSH
RST
SYN
FIN
Ventana
Suma de control Puntero urgente
Opciones Relleno
Datos
Protocolo TCP
Significado de los diferentes campos: Puerto de origen (16 bits): Puerto relacionado
con la aplicación en curso en la máquina origen Puerto de destino (16 bits): Puerto relacionado
con la aplicación en curso en la máquina destino Número de secuencia (32 bits): Cuando el
indicador SYN está fijado en 0, el número de secuencia es el de la primera palabra del segmento actual. Cuando SYN está fijado en 1, el número de secuencia es igual al número de secuencia inicial utilizado para sincronizar los números de secuencia (ISN).
Protocolo TCP
Número de acuse de recibo (32 bits): El número de acuse de recibo, también llamado número de descargo se relaciona con el número (secuencia) del último segmento esperado y no el número del último segmento recibido.
Margen de datos (4 bits): Esto permite ubicar el inicio de los datos en el paquete. Aquí, el margen es fundamental porque el campo opción es de tamaño variable. Reservado (6 bits): Un campo que actualmente no está en uso pero se proporciona para el uso futuro. Indicadores (6x1 bit): Los indicadores representan información adicional:
Protocolo TCP
URG: Si este indicador está fijado en 1, el paquete se debe procesar en forma urgente.
ACK: Si este indicador está fijado en 1, el paquete es un acuse de recibo.
PSH (PUSH): Si este indicador está fijado en 1, el paquete opera de acuerdo con el método PUSH.
RST: Si este indicador está fijado en 1, se restablece la conexión.
SYN: El indicador SYN de TCP indica un pedido para establecer una conexión.
FIN: Si este indicador está fijado en 1, se interrumpe la conexión.
Protocolo TCP Ventana (16 bits): Campo que permite saber la
cantidad de bytes que el receptor desea recibir sin acuse de recibo.
Suma de control (CRC): La suma de control se realiza tomando la suma del campo de datos del encabezado para poder verificar la integridad del encabezado.
Puntero urgente (16 bits): Indica el número de secuencia después del cual la información se torna urgente. Opciones (tamaño variable): Diversas opciones
Relleno: Espacio restante después de que las opciones se rellenan con ceros para tener una longitud que sea múltiplo de 32 bits.
Protocolo TCP Confiabilidad de las transferencias El protocolo TCP permite garantizar la transferencia
de datos confiable, a pesar de que usa el protocolo IP, que no incluye ningún monitoreo de la entrega de datagramas.
De hecho, el protocolo TCP tiene un sistema de acuse de recibo que permite al cliente y al servidor garantizar la recepción mutua de datos. Cuando se emite un segmento, se lo vincula a un número de secuencia. Con la recepción de un segmento de datos, la máquina receptora devolverá un segmento de datos donde el indicador ACK esté fijado en 1 (para poder indicar que es un acuse de recibo) acompañado por un número de acuse de recibo que equivale al número de secuencia anterior.
Protocolo TCP
Sistema de Trasmisión
Sistema de Recepción
Segmento 1
ACK 1
Segmento 2
Protocolo TCP
Además, usando un temporizador que comienza con la recepción del segmento en el nivel de la máquina originadora, el segmento se reenvía cuando ha transcurrido el tiempo permitido, ya que en este caso la máquina originadora considera que el segmento está perdido.
Protocolo TCP
Sistema de Trasmisión
Sistema de Recepción
Segmento 1
ACK 1
Segmento 1
Protocolo TCP
Sin embargo, si el segmento no está perdido y llega a destino, la máquina receptora lo sabrá, gracias al número de secuencia, que es un duplicado, y sólo retendrá el último segmento que llegó a destino.
Protocolo TCP
Cómo establecer una conexión Considerando que este proceso de comunicación,
que se produce con la transmisión y el acuse de recibo de datos, se basa en un número de secuencia, las máquinas originadora y receptora (cliente y servidor) deben conocer el número de secuencia inicial de la otra máquina.
La conexión establecida entre las dos aplicaciones a menudo se realiza siguiendo el siguiente esquema:
Los puertos TCP deben estar abiertos.
Protocolo TCP
La aplicación en el servidor es pasiva, es decir, que la aplicación escucha y espera una conexión.
La aplicación del cliente realiza un pedido de conexión al servidor en el lugar donde la aplicación es abierta pasiva. La aplicación del cliente se considera "abierta activa".
Las dos máquinas deben sincronizar sus secuencias usando un mecanismo comúnmente llamado negociación en tres pasos que también se encuentra durante el cierre de la sesión.
Protocolo TCP
Este diálogo posibilita el inicio de la comunicación porque se realiza en tres etapas, como su nombre lo indica:
En la primera etapa, la máquina originadora (el cliente) transmite un segmento donde el indicador SYN está fijado en 1 (para indicar que es un segmento de sincronización), con número de secuencia N llamado número de secuencia inicial del cliente.
Protocolo TCP
En la segunda etapa, la máquina receptora (el servidor) recibe el segmento inicial que viene del cliente y luego le envía un acuse de recibo, que es un segmento en el que el indicador ACK está fijado en 1 y el indicador SYN está fijado en 1 (porque es nuevamente una sincronización). Este segmento incluye el número de secuencia de esta máquina (el servidor), que es el número de secuencia inicial para el cliente. El campo más importante en este segmento es el de acuse de recibo que contiene el número de secuencia inicial del cliente incrementado en 1.
Protocolo TCP
Por último, el cliente transmite un acuse de recibo, que es un segmento en el que el indicador ACK está fijado en 1 y el indicador SYN está fijado en 0 (ya no es un segmento de sincronización). Su número de secuencia está incrementado y el acuse de recibo representa el número de secuencia inicial del servidor incrementado en 1.
Protocolo TCP
Emisor Receptor
SYNSecuencia = C
SYNACK = C+1Secuencia = S
ACK = S+1Secuencia = C+1
Protocolo TCP
Después de esta secuencia con tres intercambios, las dos máquinas están sincronizadas y la comunicación puede comenzar.
Existe una técnica de piratería llamada falsificación de IP, que permite corromper este enlace de aprobación con fines maliciosos.
Protocolo TCP
Método de ventana corrediza En muchos casos, es posible limitar la cantidad
de acuses de recibo con el fin de aliviar el tráfico en la red. Esto se logra fijando un número de secuencia después del cual se requiera un acuse de recibo. Este número en realidad se guarda en el campo ventana del encabezado TCP/IP.
Este método se llama efectivamente el "el método de la ventana corrediza" porque, en cierta medida, se define una serie de secuencias que no necesitan acuses de recibo y que se desplaza a medida que se reciben los acuses de recibo.
Protocolo TCP
123456789
Sistema de Trasmisión
Sistema de Recepción
Protocolo TCP
Además, el tamaño de esta ventana no es fijo. De hecho, el servidor puede incluir el tamaño de la ventana que considera más apropiado en sus acuses de recibo guardándolo en el campo ventana. De este modo, cuando el acuse de recibo indica un pedido para aumentar la ventana, el cliente se desplazará al borde derecho de la ventana.
123456789
Protocolo TCP
Por el contrario, en el caso de una reducción, el cliente no desplazará el borde derecho de la ventana hacia la izquierda sino que esperará que avance el borde izquierdo (al llegar los acuses de recibo).
123456789
Protocolo TCP
Cómo terminar una conexión El cliente puede pedir que se termine una
conexión del mismo modo que el servidor. Para terminar una conexión se procede de la siguiente manera:
Una de las máquinas envía un segmento con el indicador FIN fijado en 1, y la aplicación se autocoloca en estado de espera, es decir que deja de recibir el segmento actual e ignora los siguientes.
Protocolo TCP
Después de recibir este segmento, la otra máquina envía un acuse de recibo con el indicador FIN fijado en 1 y sigue enviando los segmentos en curso. Después de esto, la máquina informa a la aplicación que se ha recibido un segmento FIN y luego envía un segmento FIN a la otra máquina, que cierra la conexión.
Protocolo UDP El protocolo UDP (Protocolo de datagrama de usuario)
es un protocolo no orientado a conexión de la capa de transporte del modelo TCP/IP. Este protocolo es muy simple ya que no proporciona detección de errores (no es un protocolo orientado a conexión).
Por lo tanto, el encabezado del segmento UDP es muy simple:
puerto de origen(16 bits);
puerto de destino(16 bits);
longitud total(16 bits);
suma de comprobación del encabezado
(16 bits);datos
(longitud variable).
Protocolo UDP
Significado de los diferentes campos Puerto de origen: es el número de puerto
relacionado con la aplicación del remitente del segmento UDP. Este campo representa una dirección de respuesta para el destinatario. Por lo tanto, este campo es opcional. Esto significa que si el puerto de origen no está especificado, los 16 bits de este campo se pondrán en cero. En este caso, el destinatario no podrá responder (lo cual no es estrictamente necesario, en particular para mensajes unidireccionales).
Protocolo UDP
Puerto de destino: este campo contiene el puerto correspondiente a la aplicación del equipo receptor al que se envía.
Longitud: este campo especifica la longitud total del segmento, con el encabezado incluido. Sin embargo, el encabezado tiene una longitud de 4 x 16 bits (que es 8 x 8 bits), por lo tanto la longitud del campo es necesariamente superior o igual a 8 bytes.
Suma de comprobación: es una suma de comprobación realizada de manera tal que permita controlar la integridad del segmento.
Protocolo FTP El protocolo FTP (Protocolo de transferencia de
archivos) es, como su nombre lo indica, un protocolo para transferir archivos.
La implementación del FTP se remonta a 1971 cuando se desarrolló un sistema de transferencia de archivos (descrito en RFC141) entre equipos del Instituto Tecnológico de Massachusetts (MIT, Massachusetts Institute of Technology). Desde entonces, diversos documentos de RFC (petición de comentarios) han mejorado el protocolo básico, pero las innovaciones más importantes se llevaron a cabo en julio de 1973.
Actualmente, el protocolo FTP está definido por RFC 959 (Protocolo de transferencia de archivos (FTP) - Especificaciones).
Protocolo FTP
La función del protocolo FTP El protocolo FTP define la manera en que los
datos deben ser transferidos a través de una red TCP/IP.
El objetivo del protocolo FTP es: permitir que equipos remotos puedan compartir
archivos permitir la independencia entre los sistemas de
archivo del equipo del cliente y del equipo del servidor
permitir una transferencia de datos eficaz
Protocolo FTP
El modelo FTP El protocolo FTP está incluido dentro del
modelo cliente-servidor, es decir, un equipo envía órdenes (el cliente) y el otro espera solicitudes para llevar a cabo acciones (el servidor).
Durante una conexión FTP, se encuentran abiertos dos canales de transmisión:
Un canal de comandos (canal de control) Un canal de datos
Protocolo FTP
GUI
Cliente PI
Usuario DTP
ServidorPI
Servidor De DTP
Sistema de Archivos
Sistema de Archivos
Canal de Control
ComandosDe respuesta
Canal de Datos
SERVIDOR CLIENTE Usuario
Protocolo FTP
Por lo tanto, el cliente y el servidor cuentan con dos procesos que permiten la administración de estos dos tipos de información:
DTP (Proceso de transferencia de datos) es el proceso encargado de establecer la conexión y de administrar el canal de datos. El DTP del lado del servidor se denomina SERVIDOR DE DTP y el DTP del lado del cliente se denomina USUARIO DE DTP.
PI (Intérprete de protocolo) interpreta el protocolo y permite que el DTP pueda ser controlado mediante los comandos recibidos a través del canal de control.
Protocolo FTP
Esto es diferente en el cliente y el servidor: El SERVIDOR PI es responsable de escuchar
los comandos que provienen de un USUARIO PI a través del canal de control en un puerto de datos, de establecer la conexión para el canal de control, de recibir los comandos FTP del USUARIO PI a través de éste, de responderles y de ejecutar el SERVIDOR DE DTP.
El USUARIO PI es responsable de establecer la conexión con el servidor FTP, de enviar los comandos FTP, de recibir respuestas del SERVIDOR PI y de controlar al USUARIO DE DTP, si fuera necesario.
Protocolo FTP
Cuando un cliente FTP se conecta con un servidor FTP, el USUARIO PI inicia la conexión con el servidor de acuerdo con el protocolo Telnet. El cliente envía comandos FTP al servidor, el servidor los interpreta, ejecuta su DTP y después envía una respuesta estándar. Una vez que se establece la conexión, el servidor PI proporciona el puerto por el cual se enviarán los datos al Cliente DTP. El cliente DTP escucha el puerto especificado para los datos provenientes del servidor.
Protocolo FTP
Es importante tener en cuenta que, debido a que los puertos de control y de datos son canales separados, es posible enviar comandos desde un equipo y recibir datos en otro. Entonces, por ejemplo, es posible transferir datos entre dos servidores FTP mediante el paso indirecto por un cliente para enviar instrucciones de control y la transferencia de información entre dos procesos del servidor conectados en el puerto correcto.
Protocolo FTP
Servidor PI
Servidor DTP
ServidorPI
Servidor De DTP
Sistema de Archivos
Sistema de Archivos
Canal de Control
Canal de Datos
SERVIDOR SERVIDOR
Servidor PI
Servidor DTP
CLIENTE
Protocolo FTP
En esta configuración, el protocolo indica que los canales de control deben permanecer abiertos durante la transferencia de datos. De este modo, un servidor puede detener una transmisión si el canal de control es interrumpido durante la transmisión.
Protocolo FTP
Los comandos FTP Toda comunicación que se realice en el canal de
control sigue las recomendaciones del protocolo Telnet. Por lo tanto, los comandos FTP son cadenas de caracteres Telnet (en código NVT-ASCII) que finalizan con el código de final de línea Telnet (es decir, la secuencia <CR>+<LF>, Retorno de carro seguido del carácter Avance de línea indicado como <CRLF>). Si el comando FTP tiene un parámetro, éste se separa del comando con un espacio (<SP>).
Protocolo FTP
Los comandos FTP hacen posible especificar: El puerto utilizado El método de transferencia de datos La estructura de datos La naturaleza de la acción que se va a realizar
(Recuperar, Enumerar, Almacenar, etc.) Existen tres tipos de comandos FTP diferentes: Comandos de control de acceso Comandos de parámetros de transferencia Comandos de servicio FTP
Protocolo FTPComandos de control de acceso
Comando Descripción
USERCadena de caracteres que permite identificar al usuario. La identificación del usuario es necesaria para establecer la comunicación a través del canal de datos.
PASSCadena de caracteres que especifica la contraseña del usuario. Este comando debe ser inmediatamente precedida por el comando USER. El cliente debe decidir si esconder la visualización de este comando por razones de seguridad.
ACCTCadena de caracteres que especifica la cuenta del usuario. El comando generalmente no es necesario. Durante la respuesta que acepta la contraseña, si la respuesta es 230, esta etapa no es necesaria; Si la respuesta es 332, sí lo es.
CWDChange Working Directory (Cambiar el directorio de trabajo): este comando permite cambiar el directorio actual. Este comando requiere la ruta de acceso al directorio para que se complete como un argumento.
CDUPChange to Parent Directory (Cambiar al directorio principal): este comando permite regresar al directorio principal. Se introdujo para resolver los problemas de denominación del directorio principal según el sistema (generalmente "..").
SMNT Structure Mount (Montar estructura):
REIN Reinitialize (Reinicializar):
QUITComando que permite abandonar la sesión actual. Si es necesario, el servidor espera a que finalice la transferencia en progreso y después proporciona una respuesta antes de cerrar la conexión.
Protocolo FTP
Comandos de parámetros de transferencia
Comando Descripción
PORTCadena de caracteres que permite especificar el número de puerto utilizado.
PASV
Comando que permite indicar al servidor de DTP que permanezca a la espera de una conexión en un puerto específico elegido aleatoriamente entre los puertos disponibles. La respuesta a este comando es la dirección IP del equipo y el puerto.
TYPEEste comando permite especificar el tipo de formato en el cual se enviarán los datos.
STRUCarácter Telnet que especifica la estructura de archivos (F de File [Archivo], R de Record [Registro], P de Page [Página]).
MODECarácter Telnet que especifica el método de transferencia de datos (S de Stream [Flujo], B de Block [Bloque], C de Compressed [Comprimido]).
Protocolo FTPComandos de servicio FTP
Comando Descripción
RETREste comando (RETRIEVE [RECUPERAR]) le pide al servidor de DTP una copia del archivo cuya ruta de acceso se da en los parámetros.
STOR
Este comando (store [almacenar]) le pide al servidor de DTP que acepte los datos enviados por el canal de datos y que los almacene en un archivo que lleve el nombre que se da en los parámetros. Si el archivo no existe, el servidor lo crea; de lo contrario, lo sobrescribe.
STOUEste comando es idéntico al anterior, sólo le pide al servidor que cree un archivo cuyo nombre sea único. El nombre del archivo se envía en la respuesta.
APPEGracias a este comando (append [adjuntar]) los datos enviados se concatenan en el archivo que lleva el nombre dado en el parámetro si ya existe; si no es así, se crea.
ALLOEste comando (allocate [reservar]) le pide al servidor que reserve un espacio de almacenamiento lo suficientemente grande como para recibir el archivo cuyo nombre se da en el argumento.
Protocolo FTP
REST
Este comando (restart [reiniciar]) permite que se reinicie una transferencia desde donde se detuvo. Para hacer esto, el comando envía en el parámetro el marcador que representa la posición en el archivo donde la transferencia se había interrumpido. Después de este comando se debe enviar inmediatamente un comando de transferencia.
RNFREste comando (rename from [renombrar desde]) permite volver a nombrar un archivo. En los parámetros indica el nombre del archivo que se va a renombrar y debe estar inmediatamente seguido por el comando RNTO.
RNTOEste comando (rename from [renombrar a]) permite volver a nombrar un archivo. En los parámetros indica el nombre del archivo que se va a renombrar y debe estar inmediatamente seguido por el comando RNFR.
ABOR
Este comando (abort [cancelar]) le indica al servidor de DTP que abandone todas las transferencias asociadas con el comando previo. Si no hay conexión de datos abierta, el servidor de DTP no realiza ninguna acción; de lo contrario, cierra la conexión. Sin embargo, el canal de control permanece abierto.
DELEEste comando (delete [borrar]) permite que se borre un archivo, cuyo nombre se da en los parámetros. Este comando es irreversible y la confirmación sólo puede darse a nivel cliente.
RMDEste comando (remove directory [eliminar directorio]) permite borrar un directorio. El nombre del directorio que se va a borrar se indica en los parámetros.
MKDEste comando (make directory [crear directorio]) permite crear un directorio. El nombre del directorio que se va a crear se indica en los parámetros.
Protocolo FTP
PWDEste comando (print working directory [mostrar el directorio actual]) hace posible volver a enviar la ruta del directorio actual completa.
LIST
Este comando permite que se vuelva a enviar la lista de archivos y directorios presentes en el directorio actual. Esto se envía a través del DTP pasivo. Es posible indicar un nombre de directorio en el parámetro de este comando. El servidor de DTP enviará la lista de archivos del directorio ubicado en el parámetro.
NLSTEste comando (name list [lista de nombres]) permite enviar la lista de archivos y directorios presentes en el directorio actual.
SITEEste comando (site parameters [parámetros del sistema]) hace que el servidor proporcione servicios específicos no definidos en el protocolo FTP.
SYSTEste comando (system [sistema]) permite el envío de información acerca del servidor remoto.
STAT
Este comando (Estado: [estado]) permite transmitir el estado del servidor; por ejemplo, permite conocer el progreso de una transferencia actual. Este comando acepta una ruta de acceso en el argumento y después devuelve la misma información que LISTA pero a través del canal de control.
HELPEste comando permite conocer todos los comandos que el servidor comprende. La información se devuelve por el canal de control.
NOOPEste comando (no operations [no operación]) sólo se utiliza para recibir un comando OK del servidor. Sólo se puede utilizar para no desconectarse después de un período de inactividad prolongado.
Protocolo FTP
Las respuestas FTP Las respuestas FTP garantizan la sincronización entre
el cliente y el servidor FTP. Por lo tanto, por cada comando enviado por el cliente, el servidor eventualmente llevará a cabo una acción y sistemáticamente enviará una respuesta.
Las respuestas están compuestas por un código de 3 dígitos que indica la manera en la que el comando enviado por el cliente ha sido procesado. Sin embargo, debido a que el código de 3 dígitos resulta difícil de leer para las personas, está acompañado de texto (cadena de caracteres Telnet separada del código numérico por un espacio).
Protocolo FTP
Los códigos de respuesta están compuestos por 3 números, cuyos significados son los siguientes:
El primer número indica el estatuto de la respuesta (exitosa o fallida)
El segundo número indica a qué se refiere la respuesta.
El tercer número brinda un significado más específico (relacionado con cada segundo dígito).
Protocolo FTPPrimer número
Dígito Significado Descripción
1yz Respuesta positiva preliminar
La acción solicitada está en progreso. Se debe obtener una segunda respuesta antes de enviar un segundo comando.
2yz Respuesta de finalización positivaLa acción solicitada se ha completado y puede enviarse un nuevo comando.
3yz Respuesta intermedia positivaLa acción solicita está temporalmente suspendida. Se espera información adicional del cliente.
4yz Respuesta de finalización negativa
La acción solicitada no se ha realizado debido a que el comando no se ha aceptado temporalmente. Se le solicita al cliente que intente más tarde.
5yz Respuesta negativa permanente
La acción solicitada no se ha realizado debido a que el comando no ha sido aceptado. Se le solicita al cliente que formule una solicitud diferente.
Protocolo FTPSegundo número
Dígito Significado Descripción
x0z SintaxisLa acción tiene un error de sintaxis o sino, es un comando que el servidor no comprende.
x1z InformaciónÉsta es una respuesta que envía información (por ejemplo, una respuesta a un comando STAT).
x2z Conexiones La respuesta se refiere al canal de datos.
x3z Autenticación y cuentasLa respuesta se refiere al inicio de sesión (USUARIO/CONTRASEÑA) o a la solicitud para cambiar la cuenta (CPT).
x4zNo utilizado por el protocolo FTP.
x5z Sistema de archivos La respuesta se relaciona con el sistema de archivos remoto.
Protocolo Telnet
El protocolo Telnet es un protocolo de Internet estándar que permite conectar terminales y aplicaciones en Internet. El protocolo proporciona reglas básicas que permiten vincular a un cliente (sistema compuesto de una pantalla y un teclado) con un intérprete de comandos (del lado del servidor).
El protocolo Telnet se aplica en una conexión TCP para enviar datos en formato ASCII codificados en 8 bits, entre los cuales se encuentran secuencias de verificación Telnet. Por lo tanto, brinda un sistema de comunicación orientado bidireccional (semidúplex) codificado en 8 bits y fácil de implementar.
Protocolo Telnet El protocolo Telnet se basa en tres conceptos básicos: el paradigma Terminal virtual de red (NVT); el principio de opciones negociadas; las reglas de negociación. Éste es un protocolo base, al que se le aplican otros
protocolos del conjunto TCP/IP (FTP, SMTP, POP3, etc.). Las especificaciones Telnet no mencionan la autenticación porque Telnet se encuentra totalmente separado de las aplicaciones que lo utilizan (el protocolo FTP define una secuencia de autenticación sobre Telnet). Además, el protocolo Telnet no es un protocolo de transferencia de datos seguro, ya que los datos que transmite circulan en la red como texto sin codificar (de manera no cifrada)
Protocolo Telnet Telnet para conectar un host remoto a un equipo que
funciona como servidor, a este protocolo se le asigna el puerto 23.
Excepto por las opciones asociadas y las reglas de negociación, las especificaciones del protocolo Telnet son básicas. La transmisión de datos a través de Telnet consiste sólo en transmitir bytes en el flujo TCP (el protocolo Telnet especifica que los datos deben agruparse de manera predeterminada —esto es, si ninguna opción especifica lo contrario— en un búfer antes de enviarse. Específicamente, esto significa que de manera predeterminada los datos se envían línea por línea). Cuando se transmite el byte 255, el byte siguiente debe interpretarse como un comando.
Protocolo Telnet
Por lo tanto, el byte 255 se denomina IAC (Interpretar como comando). Los comandos se describen más adelante en este documento.
Las especificaciones básicas del protocolo Telnet se encuentran disponibles en la RFC (petición de comentarios) 854, mientras que las distintas opciones están descriptas en la RFC 855 hasta la RFC 861.
Protocolo Telnet
RFC (peticiones de comentarios) relacionadas con Telnet
RFC 854 Especificaciones del protocolo Telnet
RFC 855 Especificaciones de opciones de Telnet
RFC 856 Transmisión binaria en Telnet
RFC 857 Opción Eco de Telnet
RFC 858 Opción de suprimir continuación en Telnet
RFC 859 Opción Estado de Telnet
RFC 860 Opción Marca de tiempo de Telnet
RFC 861 Opción Lista extendida de opciones de Telnet
Protocolo Telnet
La noción de terminal virtual Cuando surgió Internet, la red (ARPANET) estaba
compuesta de equipos cuyas configuraciones eran muy poco homogéneas (teclados, juegos de caracteres, resoluciones, longitud de las líneas visualizadas). Además, las sesiones de los terminales también tenían su propia manera de controlar el flujo de datos entrante/saliente.
Por lo tanto, en lugar de crear adaptadores para cada tipo de terminal, para que pudiera haber interoperabilidad entre estos sistemas, se decidió desarrollar una interfaz estándar denominada NVT (Terminal virtual de red).
Protocolo Telnet
Así, se proporcionó una base de comunicación estándar, compuesta de:
caracteres ASCII de 7 bits, a los cuales se les agrega el código ASCII extendido;
tres caracteres de control; cinco caracteres de control opcionales; un juego de señales de control básicas. Por lo tanto, el protocolo Telnet consiste en crear
una abstracción del terminal que permita a cualquier host (cliente o servidor) comunicarse con otro host sin conocer sus características.
Protocolo Telnet
El principio de opciones negociadas Las especificaciones del protocolo Telnet
permiten tener en cuenta el hecho de que ciertos terminales ofrecen servicios adicionales, no definidos en las especificaciones básicas (pero de acuerdo con las especificaciones), para poder utilizar funciones avanzadas. Estas funcionalidades se reflejan como opciones. Por lo tanto, el protocolo Telnet ofrece un sistema de negociaciones de opciones que permite el uso de funciones avanzadas en forma de opciones, en ambos lados, al iniciar solicitudes para su autorización desde el sistema remoto.
Protocolo Telnet Las opciones de Telnet afectan por separado cada
dirección del canal de datos. Entonces, cada parte puede negociar las opciones, es decir, definir las opciones que:
desea usar (DO); se niega a usar (DON'T); desea que la otra parte utilice (WILL); se niega a que la otra parte utilice (WON'T). De esta manera, cada parte puede enviar una
solicitud para utilizar una opción. La otra parte debe responder si acepta o no el uso de la opción. Cuando la solicitud se refiere a la desactivación de una opción, el destinatario de la solicitud no debe rechazarla para ser completamente compatible con el modelo NVT.
Protocolo Telnet
Opciones negociadas de Telnet
Solicitud Respuesta Interpretación
DOWILL
El remitente comienza utilizando la opción El remitente no debe utilizar la opción
WON'T El remitente no debe utilizar la opción
WILLDO
El remitente comienza utilizando la opción, después de enviar DO
DON'T El remitente no debe utilizar la opción
DON'T WON'TEl remitente indica que ha desactivado la opción
WON'T DON'TEl remitente indica que el remitente debe desactivar la opción
Existen 255 códigos de opción. De todas maneras, el protocolo Telnet proporciona un espacio de dirección que permite describir nuevas opciones. La RFC (petición de comentarios) 855 explica cómo documentar una nueva opción.
Protocolo Telnet
Las reglas de negociación Las reglas de negociación para las opciones permiten
evitar situaciones de enrollo automático (por ejemplo, cuando una de las partes envía solicitudes de negociación de opciones a cada confirmación de la otra parte).
Las solicitudes sólo deben enviarse en el momento de un cambio de modo.
Cuando una de las partes recibe la solicitud de cambio de modo, sólo debe confirmar su recepción si todavía no se encuentra en el modo apropiado.
Sólo debe insertarse una solicitud en el flujo de datos en el lugar en el que surte efecto.
Protocolo Telnet Caracteres de control de salida Los siguientes caracteres son comandos que permiten
controlar la visualización del terminal virtual de red:
Comandos de control para la visualización:
Número Código Nombre Significado
0 NULL Nulo
Este comando permite enviar datos al host remoto sin que se interpreten (en particular para indicar que el host local todavía esta en línea).
1 LF Avance de líneaEste comando permite ubicar el cursor en la línea siguiente, en la misma posición horizontal.
2 CR Retorno de carroEste comando permite ubicar el cursor en el extremo izquierdo de la línea actual.
Así, se define el comando CRLF, compuesto de dos comandos CR y LF uno después del otro (en cualquier orden). Esto permite ubicar el cursor en el extremo izquierdo de la línea siguiente.
Protocolo Telnet
Caracteres de control opcionales Los caracteres anteriores son los únicos (entre
los 128 caracteres del código ASCII básico y los 128 caracteres del código ASCII extendido) que tienen un significado particular para el terminal virtual de red. Los siguientes caracteres pueden tener un significado en un terminal virtual de red, pero no se utilizan necesariamente.
Protocolo Telnet
Comandos de control para la visualización
Número Código Nombre Significado
7 BEL CampanaEste comando permite enviar una señal visual o sonora sin cambiar la posición del cursor.
8 BS RetrocesoEste comando permite cambiar la posición del cursor a su posición anterior.
9 HTTabulación horizontal
Este comando permite que la posición del cursor pase a la siguiente tabulación a la derecha.
11 VT Tabulación verticalEste comando permite que la posición del cursor pase a la siguiente tabulación de la línea siguiente.
12 FF Avance de páginaEste comando permite que la posición del cursor pase al final de la siguiente página mientras conserva su posición horizontal.
Protocolo Telnet
Caracteres de control de sesión Los siguientes caracteres son comandos que permiten
controlar la sesión Telnet. Para que puedan interpretarse como tal, estos comandos deben estar precedidos por el carácter de escape IAC (Interpretar como comando). Si estos bytes se transmiten sin estar precedidos por el carácter IAC, se procesarán como caracteres simples. Para transmitir el carácter IAC, este mismo debe estar precedido por un carácter de escape. En otras palabras, debe estar duplicado.
Los comandos relacionados con una negociación de opciones deben estar seguidos de un byte que especifique la opción. Estos comandos permiten interrumpir señales, eliminar información en el caché del terminal, etc.
Protocolo Telnet
Caracteres de control de sesión
Número Código Nombre Significado
240 SE Fin de negociación de opciones
241 NOP Sin operaciónEste comando permite enviar datos al host remoto sin que se interpreten (en particular para indicar que el host local todavía esta en línea).
242 DM Marca de datos
Permite vaciar todos los búferes entre el terminal virtual de red y el host remoto. Se relaciona con la pulsación del botón de sincronización (Synch) NVT y debe vincularse con una indicación de notificación urgente TCP.
243 BRK Interrupción Pausa de caracteres del terminal virtual.
244 IP Interrumpir procesoEste comando permite suspender, interrumpir o abandonar el proceso remoto.
245 AO Abortar salidaEste comando permite suspender, interrumpir o abandonar la visualización del proceso remoto.
246 AYT ¿Estás ahí?Este comando permite controlar que el sistema remoto todavía esté "vivo".
Protocolo Telnet
247 EC Borrar carácterEste comando permite borrar el carácter anterior.
248 EL Borrar líneaEste comando permite borrar la línea anterior.
249 GA AdelanteEste comando permite revertir el control, para conexiones semidúplex
250 SB SBEste comando indica que los datos que siguen son una negociación de la opción anterior.
251 WILL Código de opción
252 WON'T Código de opción
253 DO Código de opción
254 DON'T Código de opción
255 IAC Interpretar como comando
Este comando permite interpretar el byte siguiente como un comando. El comando IAC permite ir más allá de los comandos básicos.
Protocolo HTTP Introducción al protocolo HTTP Desde 1990, el protocolo HTTP (Protocolo de
transferencia de hipertexto) es el protocolo más utilizado en Internet. La versión 0.9 sólo tenía la finalidad de transferir los datos a través de Internet (en particular páginas Web escritas en HTML). La versión 1.0 del protocolo (la más utilizada) permite la transferencia de mensajes con encabezados que describen el contenido de los mensajes mediante la codificación MIME.
El propósito del protocolo HTTP es permitir la transferencia de archivos (principalmente, en formato HTML). entre un navegador (el cliente) y un servidor web (denominado, entre otros, httpd en equipos UNIX) localizado mediante una cadena de caracteres denominada dirección URL.
Protocolo HTTP
Comunicación entre el navegador y el servidor
La comunicación entre el navegador y el servidor se lleva a cabo en dos etapas:
El navegador realiza una solicitud HTTP El servidor procesa la solicitud y después
envía una respuesta HTTP
Protocolo HTTP
So
lici
tud
es
Dec
od
ific
ació
n
Ubicación de archivo
Creación de encabezados de formatoServidor
WEBCliente
(Navegador)
Envío de encabezados de respuesta HTTP
Envío de encabezados HTTP
Protocolos TCP/IP
Protocolo HTTP
En realidad, la comunicación se realiza en más etapas si se considera el procesamiento de la solicitud en el servidor. Dado que sólo nos ocupamos del protocolo HTTP, no se explicará la parte del procesamiento en el servidor en esta sección del artículo. Si este tema les interesa, puede consultar el articulo sobre el tratamiento de CGI.
Protocolo HTTP
Solicitud HTTP Una solicitud HTTP es un conjunto de líneas que
el navegador envía al servidor. Incluye: Una línea de solicitud: es una línea que
especifica el tipo de documento solicitado, el método que se aplicará y la versión del protocolo utilizada. La línea está formada por tres elementos que deben estar separados por un espacio: el método la dirección URL la versión del protocolo utilizada por el cliente
(por lo general, HTTP/1.0)
Protocolo HTTP
Los campos del encabezado de solicitud: es un conjunto de líneas opcionales que permiten aportar información adicional sobre la solicitud y/o el cliente (navegador, sistema operativo, etc.). Cada una de estas líneas está formada por un nombre que describe el tipo de encabezado, seguido de dos puntos (:) y el valor del encabezado.
El cuerpo de la solicitud: es un conjunto de líneas opcionales que deben estar separadas de las líneas precedentes por una línea en blanco y, por ejemplo, permiten que se envíen datos por un comando POST durante la transmisión de datos al servidor utilizando un formulario.
Protocolo HTTP
Por lo tanto, una solicitud HTTP posee la siguiente sintaxis (<crlf> significa retorno de carro y avance de línea):
MÉTODO VERSIÓN URL<crlf>ENCABEZADO: Valor<crlf>. . . ENCABEZADO: Valor<crlf>Línea en blanco <crlf>CUERPO DE LA SOLICITUD
A continuación se encuentra un ejemplo de una solicitud HTTP:
GET http://es.kioskea.net HTTP/1.0 Accept : Text/html If-Modified-Since : Saturday, 15-January-2000 14:37:11 GMT User-Agent : Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)
Protocolo HTTP
Comandos
Comando Descripción
GET Solicita el recurso ubicado en la URL especificada
HEADSolicita el encabezado del recurso ubicado en la URL especificada
POST Envía datos al programa ubicado en la URL especificada
PUT Envía datos a la URL especificada
DELETE Borra el recurso ubicado en la URL especificada
EncabezadosNombre del encabezado
Descripción
AcceptTipo de contenido aceptado por el navegador (por ejemplo, texto/html). Consulte Tipos de MIME
Accept-Charset Juego de caracteres que el navegador espera
Accept-Encoding Codificación de datos que el navegador acepta
Accept-LanguageIdioma que el navegador espera (de forma predeterminada, inglés)
Authorization Identificación del navegador en el servidor
Content-Encoding Tipo de codificación para el cuerpo de la solicitud
Content-LanguageTipo de idioma en el cuerpo de la solicitud
Content-Length Extensión del cuerpo de la solicitud
Content-TypeTipo de contenido del cuerpo de la solicitud (por ejemplo, texto/html). Consulte Tipos de MIME
Date Fecha en que comienza la transferencia de datos
ForwardedUtilizado por equipos intermediarios entre el navegador y el servidor
FromPermite especificar la dirección de correo electrónico del cliente
FromPermite especificar que debe enviarse el documento si ha sido modificado desde una fecha en particular
Link Vínculo entre dos direcciones URL
Orig-URL Dirección URL donde se originó la solicitud
Referer Dirección URL desde la cual se realizó la solicitud
User-AgentCadena con información sobre el cliente, por ejemplo, el nombre y la versión del navegador y el sistema operativo
Respuesta HTTP Una respuesta HTTP es un conjunto de líneas que el
servidor envía al navegador. Está constituida por: Incluye:
Una línea de estado: es una línea que especifica la versión del protocolo utilizada y el estado de la solicitud en proceso mediante un texto explicativo y un código. La línea está compuesta por tres elementos que deben estar separados por un espacio: La línea está formada por tres elementos que deben estar separados por un espacio: la versión del protocolo utilizada el código de estado el significado del código
Los campos del encabezado de respuesta: es un conjunto de líneas opcionales que permiten aportar información adicional sobre la respuesta y/o el servidor. Cada una de estas líneas está compuesta por un nombre que califica el tipo de encabezado, seguido por dos puntos (:) y por el valor del encabezado Cada una de estas líneas está formada por un nombre que describe el tipo de encabezado, seguido de dos puntos (:) y el valor del encabezado.
El cuerpo de la respuesta: contiene el documento solicitado
Por lo tanto, una respuesta HTTP posee la siguiente sintaxis (<crlf> significa retorno de carro y avance de línea):
VERSIÓN-HTTP CÓDIGO EXPLICACIÓN <crlf>ENCABEZADO: Valor<crlf>. . . ENCABEZADO: Valor<crlf>Línea en blanco <crlf>CUERPO DE LA RESPUESTA A continuación se encuentra un ejemplo de una respuesta HTTP:
HTTP/1.0 200 OK Date: Sat, 15 Jan 2000 14:37:12 GMT Server : Microsoft-IIS/2.0 Content-Type : text/HTML Content-Length : 1245 Last-Modified : Fri, 14 Jan 2000 08:25:13 GMT
Encabezados de respuestaNombre del encabezado
Descripción
Content-Encoding Tipo de codificación para el cuerpo de la respuesta
Content-Language Tipo de idioma en el cuerpo de la respuesta
Content-Length Extensión del cuerpo de la respuesta
Content-TypeTipo de contenido del cuerpo de la respuesta (por ejemplo, texto/html). Consulte Tipos de MIME
Date Fecha en que comienza la transferencia de datos
Expires Fecha límite de uso de los datos
ForwardedUtilizado por equipos intermediarios entre el navegador y el servidor
LocationRedireccionamiento a una nueva dirección URL asociada con el documento
Server Características del servidor que envió la respuesta
Los códigos de respuesta Son los códigos que se ven cuando el navegador
no puede mostrar la página solicitada. El código de respuesta está formado por tres dígitos: el primero indica el estado y los dos siguientes explican la naturaleza exacta del error.
Código Mensaje Descripción
10x Mensaje de información
Estos códigos no se utilizan en la versión 1.0 del protocolo
20x ÉxitoEstos códigos indican la correcta ejecución de la
transacción
200 OK La solicitud se llevó a cabo de manera correcta
201 CREATEDSigue a un comando POST e indica el éxito, la parte restante del cuerpo indica la dirección URL donde se ubicará el documento creado recientemente.
202 ACCEPTEDLa solicitud ha sido aceptada, pero el procedimiento que sigue no se ha llevado a cabo
203PARTIAL INFORMATION
Cuando se recibe este código en respuesta a un comando de GET indica que la respuesta no está completa.
204 NO RESPONSEEl servidor ha recibido la solicitud, pero no hay información de respuesta
205 RESET CONTENTEl servidor le indica al navegador que borre el contenido en los campos de un formulario
206 PARTIAL CONTENTEs una respuesta a una solicitud que consiste en el encabezado range. El servidor debe indicar el encabezado content-Range
Código Mensaje Descripción
30x RedirecciónEstos códigos indican que el recurso ya no se
encuentra en la ubicación especificada
301 MOVEDLos datos solicitados han sido transferidos a una nueva dirección
302 FOUNDLos datos solicitados se encuentran en una nueva dirección URL, pero, no obstante, pueden haber sido trasladados
303 METHODSignifica que el cliente debe intentarlo con una nueva dirección; es preferible que intente con otro método en vez de GET
304 NOT MODIFIED
Si el cliente llevó a cabo un comando GET condicional (con la solicitud relativa a si el documento ha sido modificado desde la última vez) y el documento no ha sido modificado, este código se envía como respuesta.
Código Mensaje Descripción
40xError debido al
clienteEstos códigos indican que la solicitud es
incorrecta
400 BAD REQUESTLa sintaxis de la solicitud se encuentra formulada de manera errónea o es imposible de responder
401 UNAUTHORIZED
Los parámetros del mensaje aportan las especificaciones de formularios de autorización que se admiten. El cliente debe reformular la solicitud con los datos de autorización correctos
402PAYMENT REQUIRED
El cliente debe reformular la solicitud con los datos de pago correctos
403 FORBIDDEN El acceso al recurso simplemente se deniega
404 NOT FOUNDUn clásico. El servidor no halló nada en la dirección especificada. Se ha abandonado sin dejar una dirección para redireccionar... :)
Código Mensaje Descripción
50x Error debido al servidorEstos códigos indican que existe un error interno en
el servidor
500 INTERNAL ERROREl servidor encontró una condición inesperada que le impide seguir con la solicitud (una de esas cosas que les suceden a los servidores...)
501 NOT IMPLEMENTEDEl servidor no admite el servicio solicitado (no puede saberlo todo...)
502 BAD GATEWAY El servidor que actúa como una puerta de enlace o proxy ha recibido una respuesta no válida del servidor al que intenta acceder
503 SERVICE UNAVAILABLE
El servidor no puede responder en ese momento debido a que se encuentra congestionado (todas las líneas de comunicación se encuentran congestionadas, inténtelo de nuevo más adelante)
504 GATEWAY TIMEOUT La respuesta del servidor ha llevado demasiado tiempo en relación al tiempo de espera que la puerta de enlace podía admitir (excedió el tiempo asignado...)
Correo Electrónico
Introducción al correo electrónico El correo electrónico es considerado el
servicio más utilizado de Internet. Por lo tanto, la serie de protocolos TCP/IP ofrece una gama de protocolos que permiten una fácil administración del enrutamiento del correo electrónico a través de la red.
Protocolo SMTP El protocolo SMTP (Protocolo simple de transferencia
de correo) es el protocolo estándar que permite la transferencia de correo de un servidor a otro mediante una conexión punto a punto.
Éste es un protocolo que funciona en línea, encapsulado en una trama TCP/IP. El correo se envía directamente al servidor de correo del destinatario. El protocolo SMTP funciona con comandos de textos enviados al servidor SMTP (al puerto 25 de manera predeterminada). A cada comando enviado por el cliente (validado por la cadena de caracteres ASCII CR/LF, que equivale a presionar la tecla Enter) le sigue una respuesta del servidor SMTP compuesta por un número y un mensaje descriptivo.
Protocolo SMTP A continuación se describe una situación en la que se
realiza una solicitud para enviar correos a un servidor SMTP:
Al abrir la sesión SMTP, el primer comando que se envía es el comando HELO seguido por un espacio (escrito <SP>) y el nombre de dominio de su equipo (para decir "hola, soy este equipo"), y después validado por Enter (escrito <CRLF>). Desde abril de 2001, las especificaciones para el protocolo SMTP, definidas en RFC 2821, indican que el comando HELO sea remplazado por el comando EHLO.
El segundo comando es "MAIL FROM:" seguido de la dirección de correo electrónico del remitente. Si se acepta el comando, el servidor responde con un mensaje "250 OK".
Protocolo SMTP
El siguiente comando es "RCPT TO:" seguido de la dirección de correo electrónico del destinatario. Si se acepta el comando, el servidor responde con un mensaje "250 OK".
El comando DATA es la tercera etapa para enviar un correo electrónico. Anuncia el comienzo del cuerpo del mensaje. Si se acepta el comando, el servidor responde con un mensaje intermediario numerado 354 que indica que puede iniciarse el envío del cuerpo del mensaje y considera el conjunto de líneas siguientes hasta el final del mensaje indicado con una línea que contiene sólo un punto.
Protocolo SMTP
El cuerpo del correo electrónico eventualmente contenga algunos de los siguientes encabezados: Date (Fecha) Subject (Asunto) Cc Bcc (Cco) From (De)
Si se acepta el comando, el servidor responde con un mensaje "250 OK".
Protocolo SMTP A continuación se describe un ejemplo de transacción
entre un cliente (C) y un servidor SMTP (S): S: 220 smtp.commentcamarche.net SMTP Ready C:
EHLO machine1.commentcamarche.net S: 250 smtp.commentcamarche.net C: MAIL FROM:<webmaster@commentcamarche.net> S: 250 OK C: RCPT TO:<meandus@meandus.net> S: 250 C: RCPT TO:<tittom@tittom.fr> S: 550 No such user here C: DATA S: 354 Start mail input; end with <CRLF>.<CRLF> C: Subject: Hola C: Hola Meandus: C: ¿Cómo andan tus cosas? C: C: ¡Nos vemos pronto! C: <CRLF>.<CRLF> S: 250 C: QUIT R: 221 smtp.commentcamarche.net closing transmission
Protocolo SMTP Las especificaciones básicas del protocolo SMTP indican
que todos los caracteres enviados están codificados mediante el código ASCII de 7 bits y que el 8º bit sea explícitamente cero. Por lo tanto, para enviar caracteres acentuados es necesario recurrir a algoritmos que se encuentren dentro de las especificaciones MIME:
base64 para archivos adjuntos quoted-printable (abreviado QP) para caracteres
especiales utilizados en el cuerpo del mensaje Por lo tanto, es posible enviar un correo electrónico
utilizando un simple telnet al puerto 25 del servidor SMTP: telnet smtp.commentcamarche.net 25 (El servidor indicado anteriormente no existe. Intente
reemplazar commentcamarche.net por el nombre de dominio de su proveedor de servicios de Internet.
Protocolo SMTP A continuación se brinda un resumen de los principales
comandos SMTP:
Comando Ejemplo Descripción
HELO (ahora EHLO) EHLO 193.56.47.125
Identificación que utiliza la dirección IP o el nombre de dominio del equipo remitente
MAIL FROM:MAIL FROM: originator@domain.com
Identificación de la dirección del remitente
RCPT TO:RCPT TO: recipient@domain.com
Identificación de la dirección del destinatario
DATA DATA messageCuerpo del correo electrónico
QUIT QUIT Salida del servidor SMTP
HELP HELPLista de comandos SMTP que el servidor admite
Protocolo POP
El protocolo POP (Protocolo de oficina de correos), como su nombre lo indica, permite recoger el correo electrónico en un servidor remoto (servidor POP). Es necesario para las personas que no están permanentemente conectadas a Internet, ya que así pueden consultar sus correos electrónicos recibidos sin que ellos estén conectados.
Existen dos versiones principales de este protocolo, POP2 y POP3, a los que se le asignan los puertos 109 y 110 respectivamente, y que funcionan utilizando comandos de texto radicalmente diferentes.
Protocolo POP
Al igual que con el protocolo SMTP, el protocolo POP (POP2 y POP3) funciona con comandos de texto enviados al servidor POP. Cada uno de estos comandos enviados por el cliente (validados por la cadena CR/LF) está compuesto por una palabra clave, posiblemente acompañada por uno o varios argumentos, y está seguido por una respuesta del servidor POP compuesta por un número y un mensaje descriptivo.
Protocolo POP A continuación se brinda un resumen de los
principales comandos POP2:
Comandos POP2
Comando Descripción
HELLOIdentificación que utiliza la dirección IP del equipo remitente
FOLDER Nombre de la bandeja de entrada que se va a consultar
READ Número del mensaje que se va a leer
RETRIEVE Número del mensaje que se va a recoger
SAVE Número del mensaje que se va a guardar
DELETE Número del mensaje que se va a eliminar
QUIT Salida del servidor POP2
Protocolo POP A continuación se brinda un resumen de los
principales comandos POP3
Comandos POP3
Comando Descripción
USER identification
Este comando permite la autenticación. Debe estar seguido del nombre de usuario, es decir, una cadena de caracteres que identifique al usuario en el servidor. El comando USER debe preceder al comando PASS.
PASS passwordEl comando PASS permite especificar la contraseña del usuario cuyo nombre ha sido especificado por un comando USER previo.
STAT Información acerca de los mensajes del servidor
RETR Número del mensaje que se va a recoger
DELE Número del mensaje que se va a eliminar
LIST [msg] Número del mensaje que se va a mostrar
Protocolo POP
NOOP Permite mantener la conexión abierta en caso de inactividad
TOP <messageID> <n>
Comando que muestra n líneas del mensaje, cuyo número se da en el argumento. En el caso de una respuesta positiva del servidor, éste enviará de vuelta los encabezados del mensaje, después una línea en blanco y finalmente las primeras n líneas del mensaje.
UIDL [msg]
Solicitud al servidor para que envíe una línea que contenga información sobre el mensaje que eventualmente se dará en el argumento. Esta línea contiene una cadena de caracteres denominada unique identifier listing (lista de identificadores únicos) que permite identificar de manera única el mensaje en el servidor, independientemente de la sesión. El argumento opcional es un número relacionado con un mensaje existente en el servidor POP, es decir, un mensaje que no se ha borrado.
QUITEl comando QUIT solicita la salida del servidor POP3. Lleva a la eliminación de todos los mensajes marcados como eliminados y envía el estado de esta acción.
Protocolo POP Por lo tanto, el protocolo POP3 administra la
autenticación utilizando el nombre de usuario y la contraseña. Sin embargo, esto no es seguro, ya que las contraseñas, al igual que los correos electrónicos, circulan por la red como texto sin codificar (de manera no cifrada). En realidad, según RFC 1939, es posible cifrar la contraseña utilizando un algoritmo MD5 y beneficiarse de una autenticación segura. Sin embargo, debido a que este comando es opcional, pocos servidores lo implementan. Además, el protocolo POP3 bloquea las bandejas de entrada durante el acceso, lo que significa que es imposible que dos usuarios accedan de manera simultánea a la misma bandeja de entrada.
Protocolo POP
De la misma manera que es posible enviar un correo electrónico utilizando telnet, también es posible acceder al correo entrante utilizando un simple telnet por el puerto del servidor POP (110 de manera predeterminada):
telnet mail.commentcamarche.net 110 (El servidor indicado anteriormente no existe.
Intente reemplazar commentcamarche.net por el nombre de dominio de su proveedor de servicios de Internet.)
Protocolo POP
S: +OK mail.commentcamarche.net POP3 service S: (Netscape Messaging Server 4.15 Patch 6 (built Mar 31 2001)) C: USER jeff S: +OK Name is a valid mailbox C: PASS password S: +OK Maildrop ready C: STAT S: +OK 2 0 C: TOP 1 5 S: Subject: Hola S: Hola Meandus: S: ¿Cómo andan tus cosas? S: S: ¡Nos vemos pronto! C: QUIT S: +OK
La visualización de datos que se obtiene depende del cliente Telnet que esté utilizando. Según su cliente Telnet, puede ser necesario activar la opción echo local (eco local).
Protocolo IMAP
El protocolo IMAP (Protocolo de acceso a mensajes de Internet) es un protocolo alternativo al de POP3, pero que ofrece más posibilidades:
IMAP permite administrar diversos accesos de manera simultánea
IMAP permite administrar diversas bandejas de entrada
IMAP brinda más criterios que pueden utilizarse para ordenar los correos electrónicos
FIN DEL TEMA
top related