Protocolos de internet

129
LOGO Protocolos de internet

description

Protocolo de Internet y caracterisitcas de los mas conocidos.

Transcript of Protocolos de internet

Page 1: Protocolos de internet

LOGO

Protocolos de internet

Protocolos de internet

Page 2: 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.

Page 3: Protocolos de internet

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.

Page 4: Protocolos de internet

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.

Page 5: Protocolos de internet

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.

Page 6: Protocolos de internet

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.

Page 7: Protocolos de internet

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.

Page 8: Protocolos de internet

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 [email protected].

Page 9: Protocolos de internet

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;

Page 10: Protocolos de internet

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.

Page 11: Protocolos de internet

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.

Page 12: Protocolos de internet

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

Page 13: Protocolos de internet

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.

Page 14: Protocolos de internet

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.

Page 15: Protocolos de internet

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

Page 16: Protocolos de internet

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.

Page 17: Protocolos de internet

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.

Page 18: Protocolos de internet

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.

Page 19: Protocolos de internet

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.

Page 20: Protocolos de internet

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:

Page 21: Protocolos de internet

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.

Page 22: Protocolos de internet

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.

Page 23: Protocolos de internet

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.

Page 24: Protocolos de internet

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.

Page 25: Protocolos de internet

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.

Page 26: Protocolos de internet

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.

Page 27: Protocolos de internet

Protocolo TCP

multiplexacion demultiplexacion

Equipo A Equipo B

Page 28: Protocolos de internet

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.

Page 29: Protocolos de internet

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

Page 30: Protocolos de internet

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).

Page 31: Protocolos de internet

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:

Page 32: Protocolos de internet

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.

Page 33: Protocolos de internet

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.

Page 34: Protocolos de internet

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.

Page 35: Protocolos de internet

Protocolo TCP

Sistema de Trasmisión

Sistema de Recepción

Segmento 1

ACK 1

Segmento 2

Page 36: Protocolos de internet

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.

Page 37: Protocolos de internet

Protocolo TCP

Sistema de Trasmisión

Sistema de Recepción

Segmento 1

ACK 1

Segmento 1

Page 38: Protocolos de internet

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.

Page 39: Protocolos de internet

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.

Page 40: Protocolos de internet

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.

Page 41: Protocolos de internet

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.

Page 42: Protocolos de internet

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.

Page 43: Protocolos de internet

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.

Page 44: Protocolos de internet

Protocolo TCP

Emisor Receptor

SYNSecuencia = C

SYNACK = C+1Secuencia = S

ACK = S+1Secuencia = C+1

Page 45: Protocolos de internet

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.

Page 46: Protocolos de internet

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.

Page 47: Protocolos de internet

Protocolo TCP

123456789

Sistema de Trasmisión

Sistema de Recepción

Page 48: Protocolos de internet

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

Page 49: Protocolos de internet

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

Page 50: Protocolos de internet

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.

Page 51: Protocolos de internet

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.

Page 52: Protocolos de internet

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).

Page 53: Protocolos de internet

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).

Page 54: Protocolos de internet

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.

Page 55: Protocolos de internet

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).

Page 56: Protocolos de internet

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

Page 57: Protocolos de internet

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

Page 58: Protocolos de internet

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

Page 59: Protocolos de internet

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.

Page 60: Protocolos de internet

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.

Page 61: Protocolos de internet

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.

Page 62: Protocolos de internet

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.

Page 63: Protocolos de internet

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

Page 64: Protocolos de internet

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.

Page 65: Protocolos de internet

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>).

Page 66: Protocolos de internet

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

Page 67: Protocolos de internet

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.

Page 68: Protocolos de internet

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]).

Page 69: Protocolos de internet

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.

Page 70: Protocolos de internet

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.

Page 71: Protocolos de internet

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.

Page 72: Protocolos de internet

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).

Page 73: Protocolos de internet

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).

Page 74: Protocolos de internet

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.

Page 75: Protocolos de internet

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.

Page 76: Protocolos de internet

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.

Page 77: Protocolos de internet

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)

Page 78: Protocolos de internet

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.

Page 79: Protocolos de internet

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.

Page 80: Protocolos de internet

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

Page 81: Protocolos de internet

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).

Page 82: Protocolos de internet

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.

Page 83: Protocolos de internet

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.

Page 84: Protocolos de internet

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.

Page 85: Protocolos de internet

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.

Page 86: Protocolos de internet

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.

Page 87: Protocolos de internet

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.

Page 88: Protocolos de internet

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.

Page 89: Protocolos de internet

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.

Page 90: Protocolos de internet

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.

Page 91: Protocolos de internet

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".

Page 92: Protocolos de internet

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.

Page 93: Protocolos de internet

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.

Page 94: Protocolos de internet

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

Page 95: Protocolos de internet

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

Page 96: Protocolos de internet

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.

Page 97: Protocolos de internet

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)

Page 98: Protocolos de internet

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.

Page 99: Protocolos de internet

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)

Page 100: Protocolos de internet

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

Page 101: Protocolos de internet

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

Page 102: Protocolos de internet

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

Page 103: Protocolos de internet

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

Page 104: Protocolos de internet

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

Page 105: Protocolos de internet

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

Page 106: Protocolos de internet

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

Page 107: Protocolos de internet

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.

Page 108: Protocolos de internet

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

Page 109: Protocolos de internet

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.

Page 110: Protocolos de internet

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... :)

Page 111: Protocolos de internet

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...)

Page 112: Protocolos de internet

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.

Page 113: Protocolos de internet

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.

Page 114: Protocolos de internet

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".

Page 115: Protocolos de internet

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.

Page 116: Protocolos de internet

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".

Page 117: Protocolos de internet

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:<[email protected]> S: 250 OK C: RCPT TO:<[email protected]> S: 250 C: RCPT TO:<[email protected]> 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

Page 118: Protocolos de internet

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.

Page 119: Protocolos 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: [email protected]

Identificación de la dirección del remitente

RCPT TO:RCPT TO: [email protected]

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

Page 120: Protocolos de internet

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.

Page 121: Protocolos de internet

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.

Page 122: Protocolos de internet

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

Page 123: Protocolos de internet

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

Page 124: Protocolos de internet

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.

Page 125: Protocolos de internet

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.

Page 126: Protocolos de internet

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.)

Page 127: Protocolos 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).

Page 128: Protocolos de internet

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

Page 129: Protocolos de internet

FIN DEL TEMA