jueves, 24 de marzo de 2016

Protocolo FTP

FTP es un método básico de intercambio de archivos a través de Internet basado en un modelo cliente-servidor, es decir un dispositivo con un cliente FTP se comunica a un Servidor FTP para enviar o recuperar archivos.

Para asegurar que los archivos sean enviado o recibidos sin errores, FTP emplea TCP. Al accesar a un Servidor FTP existe un sistema de autentificación que asegura que únicamente los usuarios autorizados tengan acceso; sin embargo es posible configurar el servidor FTP para que cualquier usuario pueda accesarlo, empleando una característica llamada FTP anónimo.






Antes de establecer la conexión para la transferencia de datos, primero establece una conexión de control. A través de esta conexión de control se envían comandos, donde el envío de los mismos esta basado en reglas establecidas por el Protocolo de Telnet. Se establece una conexión de datos por cada transferencia individual que se realice. El protocolo FTP soporta tanto conexiones normales como pasivas permitiendo ya sea que el servidor o el cliente inicie la conexión.
De los anterior podemos observar que se establecen dos conexiones lógicas:

1. Conexión de Control. Es la conexión principal que se establece en una sesión FTP y se mantiene durante toda la sesión. Esta conexión se emplea para el envío de comandos y replicas.






2. Conexión de Datos. Cada vez que se envían datos (archivos) entre el servidor y el cliente y viceversa, se establece una conexión TCP de datos distinta. La transferencia de datos (archivos) se realiza sobre esta conexión. Cuando la transferencia de archivo es finalizada la conexión de datos finaliza también. A pesar de que la conexión de datos finalice, la conexión de control no termina hasta que la sesión sea finalizada.

En la mayoría de los casos en Servidor FTP asume un rol pasivo en el proceso de la conexión de control, por lo queda únicamente “escuchando” el Puerto reservado TCP “bien conocido”: el puerto 21. Para establecer esta conexión el dispositivo cliente abre un puerto “Efímero” como el puerto origen el cual se comunica al puerto destino No. 21 del servidor FTP. Una vez establecida la conexión de datos, la siguiente orden es la autentificación del Usuario FTP, lo cual nos ayuda en la seguridad ya que únicamente pueden accesar al servidor lo usuarios autorizados y que tipo de acceso puede tener el usuario.


Una vez que se ha establecido la conexión de datos, se procede al envío de datos del cliente al servidor FTP o de servidor al cliente, dependiendo del comando empleado. En FTP se definen 3 tipo de modos de transmisión.






• Modo de Ráfaga (Stream Mode): Los datos son enviados en forma continua en una ráfaga de bytes sin estructura. Este método es el más empleado en las implementaciones FTP, ya que es la forma más simple para implementar un servicio FTP y es el método predeterminado. También es un método general ya que no se basa en el tipo de archivo sino que los trata como una ráfaga de bytes sin revisar el contenido de los archivos.

• Modo de Bloques (Block Mode): Este es un método más convencional ya que divide los datos en bloques y encapsulados en bloques FTP individuales. Cada bloque contiene información sobre la longitud del bloque y del No. del Bloque enviado.

• Modo Comprimido (Compressed Mode): Es un método de transmisión que emplea una técnica de compresión sencilla llamada Codificación de corrida de longitud, la cual es usada para detectar patrones repetidos en los datos enviados. En la práctica normalmente es el modem con el que nos conectamos a internet el que realiza la compresión a nivel de capa 1.
Es importante tomar en cuenta que cuando se hacen transferencias de archivos entre diferentes ambientes la interpretación de los mismos en ocasiones es diferente, por ejemplo cuando transferimos un archivo de texto entre una PC con UNIX y una PC con Windows, el archivo puede interpretarse de forma diferente. Para manejar esta diferencias en un servicio FTP, se puede proporcionar cierta información sobre el tipo de archivo antes de enviarlo. Los tipos de Datos que se encuentran en un servicio FTP son los siguientes:






• ASCII: Define archivos de texto definidos en código ASCII que cuentan con cierto orden y con marcadores de finalización de línea.

• EBCDIC: Define archivos que emplean el grupo de caracteres de IBM EBCDIC.

• Imagen (Image): Define archivos que no cuentan con una estructura interna formal y son enviados un byte a la vez sin ningún proceso.

• Local: Define archivos donde los datos son ordenados en bytes lógicos que contienen bits diferentes a 8. Este tipo de datos permite almacenar los archivos en el sistema destino consistente con su representación local.
En la práctica son usados más frecuentemente dos tipos de datos, ASCII para archivos de Texto e Imagen (Image) para archivos binarios genéricos, como por ejemplo Gráficos, Archivos ZIP y otros tipo de datos que son representados en forma universal. Motivo por el cual son llamados datos de tipo binario.







A continuación algunos videos de Youtube(mr) para entender mejor este protocolo:



-- Fin --

Servidor de Nombres de Dominio (DNS)

Este sistema fue introducido principalmente porque que a nosotros nos es difícil recordar los números de las direcciones IP, es más fácil recordar caracteres por lo que a fin de reducir la brecha entre las computadoras y nosotros se creo un sistema que relacionara los nombres asignados a cada computadora (el cual se encuentra escrito en caracteres) y las direcciones IP correspondiente a cada una de ellas. Por ejemplo en una dirección de correo electrónico es mucho más difícil recordar 1324@74.125.113.109 que pepe@correoelectronico.com.

Tomando en cuenta que existen millones de equipos que se encuentran en Internet (o inclusive los cientos o miles de equipos que puede haber en una empresa); se tuvo que inventar un sistema jerárquico basado en un esquema de nombres de dominio, el cual es usado principalmente para guardar las referencias de los nombres de los dispositivos de red y destinatarios de correo electrónico hacia las direcciones IP correspondientes.






Los Espacios de Nombre de Dominio.

Para proveer de un nombre único a una computadora que se encuentra conectada a una red se emplea un sistema de nombres jerárquico, el cual es similar a como están organizados los folders en forma jerárquica en una computadora, sin embargo empleando DNS, los nombres se organizan en forma de dominios.

En el caso de Internet, existen alrededor de 200 nombres de dominio en el nivel principal. Estos nombres de dominio están divididos en Nombres de Dominio Genéricos (.com, .edu, .gov, .net, etc) y Nombres de Dominio de País (.mx, .us, .jp, etc). La forma de ordenar los nombres de dominio va del dominio inferior al superior y de izquierda a derecha, es decir si tenemos 3 servidores llamados: Impresión, Servidor y Datos en un subdominio llamado Empresa el cual a su vez se encuentra en un dominio principal .com; entonces la forma en que se ordenaría la ruta para localizar, por ejemplo, Datos sería datos.empresa.com como podemos observar cada domino está separado por “punto”.






Una cosa importante que hay que recordar sobre los nombres de dominio DNS es la siguiente:

1. En los nombres de domino no se diferencia entre mayúsculas y minúsculas.
2. El nombre de cada nodo DNS puede tener una longitud máxima de 63 caracteres (sin incluir el “punto”) y puede incluir, letras, números y guiones.
3. Un subdominio, es un dominio que está por debajo de un dominio ya existente.
4. DNS es un sistema de nombres jerárquico, el cual es similar al sistema jerárquico que emplean las computadoras para organizar los folders.
5. DNS puede tener hasta 127 niveles de profundidad.
6. Aunque el árbol DNS es poco profundo; es bastante amplio, ya que un dominio principal puede tener bajo él cientos, miles o millones de sudominos.






Anteriormente cuando aún Internet era bastante pequeño y habían una cuantas computadoras conectadas a él; los administradores de red podían tener todas las direcciones IP actualizadas en un simple archivo de texto llamado Archivo de Hosts (Hosts File). Sin embargo cuando Internet comenzó a crecer, el hecho de actualizar el archivo de texto se volvió bastante complicado ya tendrían que almacenar millones de referencias a direcciones IP. Esta es otra razón por la cual DNS fue creado.

Sin embargo es importante entender como funciona el archivo de Hosts; ya que este aún no se elimina ya que es una forma sencilla de resolver los nombres a direcciones IP en una red pequeña, por lo tanto el archivo de Hosts puede coexistir con el DNS, por lo tanto la forma de trabajar sería que al tratar de resolver un nombre, el dispositivo de red primero busca en el archivo de Hosts y después en el DNS.

Para poder almacenar los registros para la resolución de nombres a direcciones IP se crearon los servidores DNS los cuales se encargan de almacenar, actualizar, y compartir la base de datos donde se encuentra esta información. En Internet existen varios servidores DNS ya que un solo servidor no puede almacenar todas la referencias de nombres a direcciones IP. Existen dos tipos de software para servidor DNS que son bastante populares, uno para computadoras basadas en Unix (y también Linux) llamado BIND y otro para computadoras basadas en Windows llamado Windows DNS Service.






Debido a que no es posible que un solo servidor pueda almacenar todas la referencias, los espacios de nombres de dominio se dividieron en zonas; por lo cual cada zona cuenta al menos con un servidor DNS. Las zonas y los servidores también se encuentran divididos en Primarios y Secundarios. Las zonas y servidores primarios cuentan con la información maestra de las referencias a las direcciones IP, y cualquier actualización de las referencias se almacena se realiza en esta zona. Las zonas y servidores secundarios cuentan con una base de datos de solo lectura, la cual es una copia de la base de datos que existe en la zona y servidor primario. El proceso de actualización de esta base de datos se realiza mediante un proceso que se llama transferencia de zona.






Algunos videos de Youtube(mr) que nos pueden ayudar a saber que es DNS:



--Fin --

Protocolo DHCP

Dentro de un ambiente de red TCP/IP cada dispositivo de red debe tener una dirección IP única, la cual debe de estar dentro del rango correcto de direcciones de la subred y que no se encuentre en uso. Aunque es posible asignar manualmente la dirección IP a cada dispositivo de red, esta tarea se vuelve ardua cuando se tienen que configurar muchos equipos.
DHCP emplea una arquitectura cliente-servidor, es decir que el cliente, en este caso el dispositivo de red envía una solicitud de configuración al servidor y este responde con la información de configuración , la cual es obtenida de una base de datos con la que cuenta el Servidor. El servidor además de enviar la dirección IP y la máscara de subred para el dispositivo de red, también envía informaión de configuración opcional. Algunas de las opciones son:






1. La dirección IP del Ruteador, la cual también se conoce como Puerta de Enlace Predeterminada (Default Gateway Address).
2. Tiempo de expiración de la Información para Configuración del Dispositivo.
3. El Nombre de Dominio (Domain Name)
4. La dirección IP del Servidor de Nombre de Dominio (DNS – Domain Name Server).
5. La dirección IP del Servidor de Servicios de Internet de Windows (WINS – Windows Internet Name Service).

En forma un poco más detallada lo que hace el protocolo DHCP en un Cliente es básicamente:






1. Cuando inicia el dispositivo de red, el software de DHCP envía un paquete llamado Mensaje de Descubrimiento de DHCP (DHCP Discover Message). Dentro del mensaje, la dirección de Broadcast de la red (es decir, cuando todos lo bits de ID de Host es tan en 1) se emplea como la dirección de destino y 0.0.0.0 como la dirección de origen. Se especifica 0.0.0.0 como la dirección de origen debido a que el dispositivo de red aún no cuenta con una dirección IP propia; y se especifica la dirección de broadcast como la dirección de destino debido a que el dispositivo no conoce la dirección del servidor DHCP.

2. Cuando el servidor recibe el mensaje, contesta enviado un paquete llamado Mensaje de Oferta de DHCP (DHCP Offer Message), dentro de este mensaje se envía una dirección IP que el dispositivo de red puede emplear. Este mensaje también tienen como destino la dirección de broadcast de la red. Esto es un poco difícil de manejar ya que cabe la posibilidad que el mensaje de oferta no llegue a dispositivo de red solicitante.

3. En caso de que el cliente no reciba el mensaje realizará 4 intentos más en los intervalos de tiempo : 2, 4, 8 y 16 segundos; en caso que dentro de intervalo de intentos no reciba el mensaje de oferta volverá a intentarlo después de 5 minutos.






4. Una vez que el cliente recibe el mensaje de oferta, envía un paquete llamado Mensaje de Solicitud de DHCP (DHCP
Request Message). Hasta este momento el cliente aún no cuenta con dirección IP ya que el servidor aún no le ha
asignado la dirección IP enviada en el mensaje de oferta.

5. Cuando el Servidor recibe el mensaje de solicitud, este contesta con un paquete llamado Mensaje de Acuse de Recibido de DHCP (DHCP ACK Message). Donde le informa al cliente que la dirección IP la puede emplear el cliente y que ya se encuentra en la base de datos del servidor.

6. Cuando el cliente recibe el mensaje de acuse de recibido, puede configura su dirección IP y demás información de configuración que fue enviada en el mensaje de oferta.

Un campo es un rango de direcciones IP que se reservan para que sean distribuidas mediante un servidor DHCP. Cuando un servidor DHCP supervisa la configuración de una subred completa, el campo corresponde a la subred. Es posible configurar varios campos en un servidor DHCP. Al momento de crear un campo se tienen que tomar en cuenta las siguientes propiedades:






a) El nombre del Campo, a fin de identificar el campo y su propósito.
b) La descripción del Campo, nos permite colocar información adicional sobre el campo y su propósito.
c) Dirección IP de Inicio del Campo.
d) Dirección de Finalización del Campo.
e) Máscara de subred para el Campo.
f) Rango de Direcciones IP Excluidas, son direcciones que no se darán a clientes. Son direcciones ocupadas por los servidores u otros dispositivos que requieran manejar una IP fija.
g) Direcciones Reservadas, Son direcciones IP que se reservan para ser empleadas por dispositivos que requieran una IP fija.
h) Duración de Arrendamiento (préstamo), Este dato indica el tiempo permitido para que un cliente puede usar una dirección IP. Se usa principalmente para que el cliente renueve su dirección IP, con esta función también es posible realizar una actualización de la base de datos DHCP del servidor.
i) El nombre de Dominio y la direcciones IP de los servidores DNS y WINS.

Si tenemos una computadora que obtenga su dirección IP mediante el protocolo de DHCP, una forma sencilla de conocer la configuración de red con la que cuenta es realizando lo siguiente:






Mediante la línea de comandos del prompt de DOS. Para abrirlo hay que prsionar el ventana de windows + la letra R.


Para conocer la dirección IP de la computadora podemos escribir sobre la línea de comandos:






1. C:\ipconfig ↵. Lo que obtendremos al ejecutar este comando sería la dirección IP de la computadora. Adicionalmente también nos proporcionaría el número de máscara de subred y la dirección IP del ruteador (Puerta de Enlace Prdeterminada – Default Gateway).

2. C:\ipconfig /all ↵. Nos proporciona información del Nombre de Host (de la computadora), Nombre del Servidor DNS, Nombre de la Tarjeta de red, Dirección Física (Dirección MAC), Si se encuentra habilitado DHCP, Dirección IP, Mascara de subred, Dirección IP del Ruteador, Dirección IP del Servidor DNS, Dirección IP del Servidor WINS.






3. C:\ipconfig /renew ↵. Renueva la dirección IP proporcionada por el servidor DHCP.

4. C:\ipconfig /release ↵. Libera la dirección IP proporcionada por el Servidor DHCP. La computadora ya no tiene dirección IP. Es posible obtener una dirección IP nueva cuando se envía una petición nuevamente al servidor DHCP.



Algunos videos de youtube(mr), que explica un poc mas sobre el protocolo DHCP:


-- Fin --