lunes, 4 de febrero de 2008

Programación Shell (parte 1)

Asran [asran@isppr.rimed.cu]

La programación de segundo plano no es más que un estilo de programación usando el shell de un sistema operativo para el procesamiento sin la supervisión del usuario.

En los sistemas MS (Windows y DOS) tenemos los ficheros por lotes o batch. Estos fichero tienen como extensión -->(.bat). Veremos algo bien interesante en este tema y es que alguien con conocimientos básicos de líneas de comandos en cualquier sistema y un mínimo de programacion segundo plano podrá hacer maravillas de una maquina.
Pero bueno aquí listo algunos elementos para convencer.

Antes es bueno destacar las ventajas y desventajas.

Ventajas:

1- Permite compartir mejor los recursos de un ordenador entre muchos usuarios, al no competir por éstos de forma inmediata.
2- Realiza el trabajo en el momento en el que los recursos del ordenador están menos ocupados, dando prioridad a tareas interactivas.
3-Evita desaprovechar los recursos del ordenador sin necesidad de interacción y supervisión humanas continuas.
4-En ordenadores caros o supercomputadores, ayuda a amortizar el coste manteniendo altos índices de utilización.

Pero bueno no todo es color de rosa aquí vienen las contra.

Desventajas:

1-El principal inconveniente de la ejecución por lotes frente a la ejecución interactiva es que hay que conocer y planificar cuidadosamente la tarea a realizar.
2-Al carecer de supervisión por parte del usuario, cualquier tipo de error puede producir resultados inútiles o, simplemente, inexistentes

Entrando en materia

Bien en los sistemas MS veremos que además de los .bat como ya sabemos a partir de Windows 2000m también se acepta la extensión .cmd.

Ahora, como se crea un fichero por lotes?

Veras que es muy fácil. Lo que necesitas es un editor de texto y un poco de imaginación. Te abstraes y piensas en que orden harías las cosas si las estuvieras tratando desde la línea de comandos. Luego de escribirlas guardas tu fichero como .bat o .cmd preferiblemente la primera opción para darle universalidad a lo que escribes y no tenga limitación de versión del SO. Y pum ya esta!!

Consideraciones:
El sistema toma por defecto el directorio del Desktop. O el que tengas predeterminado para el inicio de la línea de comandos.
Ejemplo: Si quisieras tener una vista en árbol del volumen C:\ pondrías lo siguiente

cd..
cd..
tree
pause

Para facilitar el estudio de esta técnica aquí tienes una lista de los comando mas usados en la programacion por lotes.

Comando                 Descripción
@echo <texto>        Este comando es similar al printf("texto") de C o al Writeln('Texto') de Pascal en pocas palabras muestra una cadena de caracteres.
Ejemplo:
@echo Hola mundo!

@echo off             Este desactiva la terminal TTY del micro en otras palabras bloquea la salida de caracteres por pantalla mientras se ejecuta la aplicación.

call path            Ofrece la interesante tarea de ejecutar, si como lo estas leyendo con este comando puedes ejecutar el fichero especificado en el parámetro path.

Más sobre CALL: Puede levantar cualquier aplicación válida y ficheros de cualquier extensión reconocida en el sistema.

Nota: Los sistemas MS han heredado la cualidad de no reconocer nombres de directorios o ficheros que excedan los 8 caracteres. Por lo que se ajustan estos nombres a los 6 primero caracteres validos seguidos por el caracter ~ [Alt + 126] y 1

Ejemplo:
C:\Documents and Settings\docencia\Desktop
quedaría de la forma
C:\Docume~1\docencia\Desktop

Pause                  Obvio genera una pausa a la ejecución.

Como ves batch es igual un lenguaje de programacion y no menos importante. Como tal tiene estructuras de control como las condicionales IF, IF NOT, la iterativa FOR y de salto GOTO. También pueden manipularse variables. Pero bueno esto lo prometo en un próximo encuentro a fin de provocar Overflow.

Bueno no más … hasta la segunda parte.

Continuar leyendo

Notas para un mejor manejo de tus archivos en Windows

Eliux [aorozco@infomed.sld.cu]

El contenido de este texto no es muy complejo ni muy largo, son simples métodos que yo personalmente uso para organizar mis archivos de forma tal que nunca me he perdido dentro de mi máquina y cada vez que formateo tengo la máquina preparada para no sufrir pérdidas.

Xplorer²: Este eficiente explorador entre otras cosas les permitirá copiar mejor las cosas debido a que cuenta con multi-paneles de navegación (algo creo tan revolucionario como los tabs de los navegadores de Internet, posiblemente otros exploradores cómo el explorador de Windows lo adopten), también posee Bookmarks que permiten acceder a nuestras carpetas más visitadas. Es una herramienta a tener en cuenta, pero no creo que sea algo cómo para decirte "te has perdido la mitad de tu vida".

La carpeta "sendto": Algunos no la conocen es una carpeta del sistema (tienen una función específica en el sistema operativo), como lo es el escritorio, mis documentos o la carpeta Windows\temp. A esta carpeta es fácil acceder ejecutando (Windows+R) sendto; al hacerlo verán como se muestra una carpeta que contiene los mismo elementos que el menú del clic derecho "Enviar a". Aquí pueden agregar el acceso directo de cualquier carpeta, lo cual posteriormente les permitirá copiar hacia esta con mayor rapidez (Ver carpeta temporal), incluso pueden hacer un árbol para organizar categorías; esto permitirá que si tienen varias carpetas en las que copian mucho (alrededor de 7 o más) pueden no querer que este menú se alargue mucho por lo que los accesos directos que tengan un fin común (Ejemplo multimedia) pueden crear una carpeta para organizarlos, cómo a continuación.

1)     Creo la carpeta de la categoría

2)     Dentro creo los acceso directos a los lugares a donde enviare los archivos de ese tipo

Esto puede variar según gustos, necesidades y configuraciones. Otra cosa recomendable en esta carpeta sería eliminar menús por defecto que no se vayan a usar. Mis documentos es una que yo quitaría puesto que en ella contengo los archivos de forma ordenada (Ver reconfigurando Mis Documentos).

Carpeta temporal: Anteriormente vimos cómo enviar archivos a una carpeta. Pero por lo general estas carpetas a donde las enviamos son o deberían ser carpetas temporales, donde a partir de ellas organizáramos las carpetas de un tipo específico; y cómo en la máquina hay tantas categorías como queramos hacer yo decido crear en el sendto sólo 2 accesos directos:

Review: Esta carpeta está en D: porque sólo tengo dos particiones, al igual que la mayoría que tiene 80 Gb, y es mi carpeta temporal por defecto en ella coloco todo tipo de archivos provenientes del exterior incluyendo los downloads. Esto me permite también pasarles el antivirus antes de moverlos a su destino así no tengo  que escanear de nuevo las carpetas de mis archivos, ya que todas pasaron por esa prueba para estar ahí. También es el primer lugar donde voy donde voy a eliminar, aunque esto lo tengo automatizado con el TuneUp Utilities.

BackUP: Esta la puse en C: y es sólo usada en caso de que me quede menos de 2 Gigas en la partición D (sólo tengo dos particiones). Siempre es recomendable dejar más de 1 Giga disponible en cada partición para que sea usado por Windows para la paginación y la memoria virtual. En C: recomiendo dejar no más del %20 del  espacio en Bruto del disco duro, Ej: En un disco duro de  80Gb yo tengo 15 Gb en C: y el resto para D: y eso que tengo instalado prográmones cómo  El VisualStudio 2005 con el  MSDN, el Borland Studio y El Encarta, y primero lleno C: agregándole archivos a la carpeta BackUP que instalando programas. Recuerda que es mejor desinstalar o no instalar un programa de poco uso, porque sólo hace ralentizar la máquina y ocupar espacio. De vez en vez inspecciona esto en Agregar o Quitar programas en el panel de control y organízalos por frecuencia de uso.

Reconfigurando Mis Documentos: La mayoría de nosotros no usa bien la carpeta mis documentos, el principal motivo es que esta se crea por defecto en "C:\Documents and Settings\[Nombre del usuario]\Mis documentos" y no queremos perder nuestra información si tenemos que formatear de repente C: pero ciertamente esta carpeta tiene una posición muy cómoda en el árbol de exploración de Windows. Así que el remedio es redireccionarla o sea cambiar la ruta a donde se encuentre una carpeta que tenga todo el contenido de nuestros archivos, y así poder acceder a ellos más fácil. Algo que también recomiendo es dejar y usar las carpetas que esta tiene por defecto: Mis imágenes, Mi música; puesto que muchos programas relacionados con la edición de imágenes o de música o de algún contenido relacionado con estos buscaran primeros en estos lugares y también se pueden crear otras carpetas indispensables como:

Info: Esta carpeta puede contener información relacionada con plataformas, lenguajes de programación y todo tipo de información que comúnmente usan los informáticos. Para los programas relacionados con los lenguajes de programación cree una subcarpeta llamada _plataformas (El underscore delante del nombre de la carpeta permite que cuando se organicen las carpetas accedentemente esta aparezca en la cima y así facilita su localización).

Programs: Aquí van todos los programas que no tienen nada que ver con desarrollo. Son programas de uso ofimático en su mayoría, dividido en categorías para su mejor organización.

Ej.: Office (MS Office, editores de texto, etc.), Multimedia (Subdividido en Video, Música e Imagen), win32 (Uso general: DirectX, copyhandler…), por citar algunos.

 Config: Esta carpeta es muy importante para mí, puesto que aquí guardo las configuraciones o pasos para configurar los programas o plataformas para facilitar la reinstalación de estos y mantener su organización original. Ej: Blocs de Notas del OneNote, httpd.ini del Apache (entre otras cosas contiene la configuración de las carpetas virtuales del servidor web local) y el archivo que contiene los correos del OutLook  Express, por citar algunos.

Otras recomendaciones:

Para aquellos que tengan  > 160Gb de espacio en bruto de HDD y tengan menos de 10Gb de información (textos principalmente) os recomiendo que indexen la carpeta Info con el Google Desktop, calculo que este gastará en indexación alrededor de 1.5Gb, pero permite buscar contenidos por frases y textos usando un motor de búsqueda tan potente como el del Google pero para tus archivos, a veces no recordamos en que archivo se encuentra cierta información y tenemos que abrir documento por documento y muchas veces no lo encontramos aunque lo tengamos, incluso lo copiamos de nuevo usando megas por gusto. Espero que les sea útil y puedan tener mejor organizado sus carpetas.

Continuar leyendo

Memorias (parte 1)

DR3X [lanleyva@infomed.sld.cu]

MEMORIA RAM
----------------

Es llamada memoria de acceso aleatorio (Random Access Memory) debido a su peculiar característica de acceso instantáneo a cualquier parte de ella, gracias a un sistema de direcciones (no es acceso secuencial) que permite la lectura o escritura.

Se dice que es volátil porque la información en ella almacenada se pierde al retirarle la energía.

La memoria RAM es uno de los elementos m s críticos del computador. Cuando Ud. quiere usar un archivo de datos o programa, los datos o instrucciones son leídos desde el disco duro o disquete y colocados en la RAM, para que sean leídos por el AAP, permitiéndole manipularlos es decir: ingresar nuevos datos, modificar los existentes, hacer cálculos, búsquedas, resúmenes etc.
La memoria RAM la podemos comparar con una agenda de trabajo, en la que se puede anotar una reunión, ver el programa de actividades para un día determinado o anular una cita.

Además en esta agenda, al igual que en la memoria, los datos no están mezclados sino que conservan un cierto orden y cada dato ocupa una posición bien determinada. Si se desea saber la dirección de un cliente o un proveedor, no se iniciar la búsqueda desde la A hasta encontrarlo, sino que se localiza directamente en la página correspondiente a la inicial del apellido.

En las memorias hay dos características temporales importantes:
a. El tiempo de acceso: tiempo que tarda una escritura o lectura.
b. El tiempo de ciclo: tiempo que pasa desde que se inicia un acceso hasta que se esta listo para el próximo.

El tiempo de ciclo suele ser ligeramente superior al tiempo de acceso, pero los dos están relacionados. Tradicionalmente se ha dado mayor importancia al tiempo de acceso, pero la dinámica de las memorias caché, con sus accesos en ráfagas, ha dado mayor importancia al tiempo de ciclo. Esto ha propiciado la aparición de mejoras estructurales en las memorias, que pretenden mejorar el tiempo de lectura o escritura de un bloque de datos y no de un dato individual, sin modificar la estructura de almacenamiento de la memoria, consiguiendo así un aumento de prestaciones en un caso particular y muy frecuente, sin elevar excesivamente el precio.

En su mayor parte, lo que esta en la memoria de la computadora es información temporal de trabajo.

La memoria de la computadora esta organizada en unidades de bytes, compuesto cada uno de ellos de 8 bits. El mismo patrón de bits puede ser visto como un número, una letra del alfabeto o una instrucción particular de lenguaje de m quina, según se le interpreta. Los mismos bytes de memoria se usan para registrar códigos de instrucciones de programa, datos numéricos y datos alfabéticos.

Las direcciones de la memoria están numeradas comenzando con cero. Los mismos datos usados como datos de computadora también pueden emplearse para especificar direcciones de memoria.

Los datos o programas siempre ocupan un espacio contiguo en la RAM, siempre asignándole el espacio por bloques.

El DOS puede manejar de forma plana solo hasta 640 KB, para manejar valores mayores a 1 MB, requiere de ayuda de HIMEM.SYS y EMM386.EXE.

MEMORIA ROM (Read Only Memory)
----------------------------------------

Es una memoria de sólo lectura. Su contenido es absolutamente inalterable, desde el instante en que el fabricante grabo las instrucciones en el Chip, por lo tanto la escritura de este tipo de memorias ocurre una sola vez y queda grabado su contenido aunque se le retire la energía.

Los PC vienen con una cantidad de ROM, donde se encuentras los programas de BIOS (Basic Input Output System), que contienen los programas y los datos necesarios para activar y hacer funcionar el computador y sus periféricos.
La ventaja de tener los programas fundamentales del computador almacenados en la ROM es que están allí implementados en el interior del computador y no hay necesidad de cargarlos en la memoria desde el disco de la misma forma en que se carga el DOS.

Debido a que están siempre residentes, los programas en ROM son muy a menudo los cimientos sobre los que se construye el resto de los programas (incluyendo el DOS).

La memoria ROM se puede explicar de la manera siguiente:
Es un libro impreso, sea diccionario, novela, etc. no se puede variar el contenido del mismo, tan solo es posible leer, recoger la información, nunca añadírsela o modificar el texto.

MEMORIA ROM
-----------------

Estas memorias, cuyo nombre procede de las iniciales de Read Only Memory son solo de lectura. Dentro de un proceso de elaboración de datos de una computadora, no es posible grabar ningún dato en las memorias ROM.
Se trata de memorias no volátiles, su contenido se graba durante su construcción y no se puede cambiar. Son memorias perfectas para guardar microprogramas, sistemas operativos, tablas de conversión, generación de caracteres etc.

Continuar leyendo

Pretty Good Privacy (PGP)

JKS [jksware@gmail.com]

"Whatever you do will be insignificant, but it is very important that you do it."
"Lo sea que hagas será insignificante, pero es muy importante que lo hagas."

—Mahatma Gandhi

"Cuando Julio César enviaba mensajes a sus generales, el no confiaba en sus mensajeros. Así que reemplazaba cada A en sus mensajes con una D, cada B con una E, y así sucedía con todo el alfabeto. Sólo alguno que conociera el "desplazamiento de 3" podía descifrar el mensaje."

Con estas palabras de Mahatma Gandhi y el relato del cayo comienza el manual que trae consigo el instalador de PGP, aplicación y protocolo para el e-mail seguro y la encriptación de ficheros, de PGP Enterprise, titulado Intro to Crypto.

Pero evidentemente el César, en nuestros días, hubiera perdido por completo su tiempo en el jueguito de cambiar cada letra por una que venga tres posiciones más atrás en el alfabeto, ya que si el mensaje codificado hubiera caído en nuestras manos, todo lo que teníamos que hacer era un bucle que probara una a una las posibles combinaciones en las que se podía codificar un mensaje, si de a 3, de a 4, 5, 6, hasta agotar el número de símbolos del alfabeto y mostrar los resultados. Para el ambiente computacional moderno, este "alfabeto" a menudo es el ASCII (un byte ó 256 valores), y si se hiciera lo mismo obtendríamos 255 resultados inválidos para el mensaje del Cayo y sólo 1 verdadero, mensaje que se podría procesar por criptoanálisis, entero, en milisegundos, aunque haya sido todo un discurso.

Y es que la criptografía, ciencia que usa la matemática para encriptar y decriptar – codificar y decodificar – datos, ha avanzado mucho pareja del criptoanálisis desde la época del Imperio Romano. Ahora en vez de sustituir una letra por el que viene tres posiciones detrás, se sustituye por otro que tiene una relación matemática complejísima, y – prácticamente – indescifrable, con el original, pero que si se conoce el algoritmo matemático que da pie a esta relación, entonces se es capaz con facilidad de trasladar el código a un término entendible o viceversa.

PGP – Pretty Good Privacy traducido al cubano significa "ya no vas a poder tocar mis cosas" – es un programa de computadora que usa algoritmos bien conocidos y respetados para proteger los ficheros y correos electrónicos de ser, primeramente, leídos o decodificados por intrusos, y segundo, se haga uso de un nombre o e-mail falso o una persona se haga pasar por otra para firmar determinado contenido digital – de la cual se deriva la técnica de suplantación de identidad denominada phising.

Phil Zimmermann creó el PGP en la década del 90 del pasado siglo para darle un uso comercial a la misma, pero decidió liberar el programa escrito en C++ que hacía uso del susodicho protocolo, cuando las agencias del gobierno comenzaron a investigarlo por violar una ley que prohibía la exportación de armamento militar – ya que los algoritmos de encriptación con claves de 64, 128 y 168 bits como las que usa PGP se consideraban secreto de estado – para que dicho formato de codificación y encriptación no se hiciera público.

El PGP protege la confidencialidad de los datos personales o empresariales mediante el uso de una ingeniosa combinación de sistemas de encriptación de probada seguridad, donde, usando el sistema de clave pública, se dota al usuario de una llamada clave privada con la cual este podrá decodificar un archivo enviado para un determinado grupo de personas, además de una clave pública sin la cual no se podría codificar una información para determinado grupo de personas.

CLAVES, ALGORITMOS Y NÚMEROS PRIMOS

Cuando se habla en el argot informático de encriptar determinado fichero, probablemente un documento, se está hablando de hacer lo más difícil posible – matemáticamente hablando – de poder tener acceso al texto plano original sin que se cuente con una clave para decodificarlo. El texto en plano – aunque no es necesariamente texto del que se guarda en un txt – no es más que un conjunto de datos determinados que poseen valor numérico al que se le pueda atribuir un símbolo fijo. Por ejemplo, en código ASCII – y vale aclarar que ASCII no es un código ni un algoritmo de encriptación, sino el formato de representación de símbolos más común en las PCs – A es siempre representación de 65, B de 66, C de 67, y así sucesivamente pasando por los dígitos del 0 al 9 y todos los símbolos que aparecen en un teclado QWERTY – de nuevo aclarar que esto no es un tipo especial de teclado :D.

Sin embargo, si se fuera a hacer un desplazamiento de 3, como también se conoce a la codificación del César, A sería representada por 68, B por 69 y C por 70. Este método es muy fácil de aprender y usar por su simplicidad algorítmica y matemática, que consiste para codificar en:

F(x) = x + 3, donde X es el símbolo a codificar.

Con algo muy parecido a eso, ya estamos haciéndole perder el sueño a más de una persona, pero no aquella que conozca de criptoanálisis, ya que con hacer para decodificar

F(x) = x – 3

ya tenemos de nuevo el texto en plano. No hay que ser un genio del álgebra para darse cuenta de que lo mismo sucederá si sustituimos ése 3 que aparece en la fórmula por otro cualquiera, ya que el número de combinaciones que este método puede dar de resultado es igual al alfabeto con que se cuente.

La tarea se complica de prisa si hacemos algo igual a – discúlpenme a los que no sepan Pascal, lo voy a tratar de hacer lo más entendible posible – :

function Codifica(plaintext: string): string;
var
  i: integer;
  paso: byte;
begin
  SetLength(result, length(plaintext));
  for i := 0 to Length(plaintext) do
    begin
    Paso := i mod high(byte);
    Result[i] := chr( ( ord(Plaintext[i]) + Paso ) mod high(byte) );
  end;
end;

Esto significa más o menos que en vez de sumar una cantidad fija – en los ejemplos anteriores 3 al valor del símbolo – se suma una cantidad que está en dependencia del valor de la posición del carácter en el texto y del valor que se le quiera agregar a la variable Paso por cada una de las iteraciones, en este ejemplo, el resto de la división de la posición del carácter Plaintext[i] con el valor máximo de un byte, 256. A decir verdad, este algoritmo que parece súper sofisticado no da muchas más combinaciones que el anterior.

Una vez introducidos en lo que sería la base de cualquier algoritmo de encriptación, cambiar un símbolo por otro en dependencia del valor de la llave, y de cualquier otra variable matemática que pueda hacer más compleja la desencriptación, decodificación, o como quiera que se le quiera llamar, nos queda averiguar qué es una clave pública.

SISTEMA DE CLAVE PÚBLICA

Con los algoritmos clásicos de encriptación podemos encriptar y desencriptar usando la misma clave, es decir, el mismo número esencial que nos permite convertir un texto plano en uno codificado mediante un algoritmo. Pero tener una misma clave para ambos procesos compromete mucho la calidad y seguridad de la información que se este transmitiendo, dado que la seguridad con que podamos contar en un sistema de este tipo es directamente proporcional a lo secreta que sea esta clave.

Por tanto si se quiere transmitir un mensaje de una persona a otra, no hay más que hacer llegar la clave a la otra persona y ya se estará estableciendo una comunicación. Pero aquí es donde está la vulnerabilidad del proceso, ¿cómo transmitir una clave por un medio que se sabe que es inseguro?

Pero las ecuaciones matemáticas hacen maravillas del sistema, y establecen que no es necesario encriptar y desencriptar usando la misma clave, ya que se usan dos algoritmos totalmente distintos para los dos procesos. En un sistema de clave pública, como se le llama a este tipo de algoritmos de encriptación, se usa dos claves, como se explicaba en los párrafos anteriores.

Cada clave responde a una ecuación determinada, y la clave pública, por ejemplo, que sirve para encriptar los contenidos que se le enviarán a cierta persona, no se podrá usar para desencriptarlos.

Cada usuario tiene un par de claves, una privada y otra pública. La pública, tal cual su nombre lo indica, se transfiere por lo general a un servidor de claves públicas que se encarga de ponerla "al aire libre" para que cualquier persona que requiera enviar información clasificada al propietario de la misma, se haga de ella y envíe determinado contenido de manera segura. A su vez, el receptor de la información, está en la necesidad de usar su clave privada para desencriptar la información que otro envió a su nombre. Por supuesto esta última clave debe permanecer en el más absoluto secreto.

Si bien toda estas palabras puedan resultar crípticas en un momento dado, resulta muy fácil de entender cuando se analizan este par de gráficos – horriblemente saqueados de Intro to Crypto – que ilustran muy bien el proceso de encriptación y desencriptación, usando ambos sistemas, el clásico de una sola clave, y el de clave pública.

Si desea descargar PGP, visite la página: www.pgpi.com.
Página de Philip Zimmermann de la MIT en español: http://www.mit.edu/~prz/ES/index.html

En próximos artículos se hablará acerca de los algoritmo que usa PGP para encriptar los archivos, que por lo general son muy grandes para codificarlos en su totalidad usando el mismo sistema, de cómo estos dos sistemas – clásico y de clave pública – se combinan y de la utilidad que tiene esto en nuestros servidores de correos no solo para que nuestros mensajes de e-mail no sean leídos por quien no deben, sino de cómo se utiliza esto como una muy eficaz técnica antispam, actualmente utilizada por Gmail y por Yahoo!.

Sistema clásico

Sistema de clave pública

Continuar leyendo

Protocolo TCP/IP

Pika [blackhat4all@gmail.com]

Muchos se preguntarán ¿Por qué TCP/IP Si es todo un conjunto de protocolos? Bueno la explicación a eso es que estos dos son además de los primeros que surgieron también son los dos mas importantes, TCP (Protocolo de Control de Transmisión) e IP (Protocolo de Internet) a estos dos se les suman toda una gama de protocolos que juntos conforman y hacen posible que naveguemos y mandemos nuestros emails, entre ellos vale la pena mencionar http (Protocolo de Transferencia de HyperTexto) el cual nos permite visualizar las webs, el ARP (Protocolo para Resolver Direcciones), FTP (Protocolo de Transferencia de Ficheros), SMTP ( Protocolo de Transferencia de Correo Simple) y POP (Post Office Protocol "Para la recepción de Correo").


TCP/IP fue presentado y demostrado por primera vez en 1972 por el Departamento de Defensa de los Estados Unidos en un proyecto desarrollado principalmente por el informático Vinton Cerf y dirigido por Robert Kahn , el cual sería usado por ARPANET la red de la "Agencia de Programas Avanzados de Investigación (ARPA en sus siglas en Ingles) siendo precisamente en ARPA donde naciera por primera ves Internet.

Como ya mencioné, TCP/IP es un conjunto de protocolos que cubren los distintos niveles del modelo OSI…. ¿y que es el modelo OSI? Es tan grande la explicación que la dejaré para un próximo articulo, por el momento en resumen "El modelo de referencia de Interconexión de Sistemas Abiertos (OSI, Open System Interconnection) lanzado en 1984 fue el modelo de red descriptivo creado por ISO" el conjunto TCP/IP se conforma de 5 capas con se relacionan con los niveles OSI de la siguiente manera:

Aplicación: En este nivel están los protocolos destinados a brindar algún servicio, tales como correo electrónico (SMTP), Transferencia de Ficheros (FTP), Conexión remota (Telnet) y Hypertexto (HTTP) entre otros.
Transporte: A este nivel protocolos tales como TCP y UDP se encargan de manejar los datos y proporcionar la estabilidad necesaria para el transporte de los mismos.
Internet: Aquí tenemos al protocolo IP el cual es el encargado de enviar los paquetes de información a sus destinos correspondientes y es utilizado para esta finalidad por los protocolos del nivel de transporte.
Físico: Describe las características físicas tales como comunicaciones por cable, Fibra Óptica o Radio, etc.
Enlace: Es la interfaz de la red real, a este nivel TCP/IP no especifica ningún protocolo concreto así que está a cargo de las interfaces conocidas como: x25,IEEE 802.11 y CSMA/CD, Frame Relay, etc.

Lo anteriormente expuesto viene siendo la estructura del TCP/IP, visto por sus correspondientes niveles.

TCP/IP utiliza un método común en cualquier protocolo de comunicación para el envió de información a través de la red, fracciona dicha información en unidades pequeñas llamadas "datagrama" de hasta 64k octetos, las cuales se envían como mensajes independientes, IP es el encargado de enviar estos paquetes de un lado a otro utilizando una serie de computadoras destinadas a encontrar las vías para que estos paquetes alcancen su destino, estas computadoras son llamadas "Enrutadores" mientras TCP se hace cargo del flujo y de la integridad de los "datagramas", La flexibilidad del sistema lo hace muy confiable. Si un enlace se pierde, el sistema usa otro. Cuando usted envía un mensaje, el TCP divide los datos en paquetes, ordena éstos en secuencia, agrega cierta información para control de errores y después los lanza hacia fuera, y los distribuye. En el otro extremo, el TCP recibe los paquetes, verifica si hay errores y los vuelve a combinar para convertirlos en los datos originales. De haber error en algún punto, el programa TCP destino envía un mensaje solicitando que se vuelvan a enviar determinados paquetes.

El conjunto TCP/IP está diseñado para enrutar y tiene un grado muy elevado de fiabilidad, es adecuado para redes grandes y medianas, así como en redes empresariales. Se utiliza a nivel mundial para conectarse a Internet y a los servidores web. Es compatible con las herramientas estándar para analizar el funcionamiento de la red.

Un inconveniente de TCP/IP es que es más difícil de configurar y de mantener que NetBEUI o IPX/SPX; además es algo más lento en redes con un volumen de tráfico medio bajo. Sin embargo, puede ser más rápido en redes con un volumen de tráfico grande donde haya que enrutar un gran número de tramas.

La Dirección IP.

IP identifica cada ordenador que está conectado a la red mediante su correspondiente dirección, esta dirección es un numero de 32 bits dividido en 4 cifras de 8 bits separadas por puntos, esta dirección identifica tanto al ordenador en concreto como a la red a la cual pertenece, de manera que sea posible distinguir a los ordenadores que están conectados a una misma red, se han establecido 3 rangos diferentes de direcciones:

Clase A: Son las que en su primer Byte tienen un valor comprendido entre 1 y 126, estas direcciones utilizan únicamente el primer byte para identificar la red, quedando los otros 3 byte libres para los host que pertenezcan a dicha red, este rango es utilizado por redes muy extensas pudiendo albergar mas de 16 millones de ordenadores, de este tipo de redes solo pueden existir hasta 126, ARPANET es una de ellas.
Clase B: En su primer byte utilizan valores entre 128 y 191, este tipo de redes utilizan para identificarse los 2 primeros byte, teniendo que ser un valor entre 128.1 y 191.254 los restantes 2 bytes de la dirección están destinados a los host, pudiendo concentrar un máximo de 64516 ordenadores por red, es comúnmente utilizada para grandes organizaciones.
Clase C: En este caso el primer byte deberá estar comprendido entre 192 y 223, este tercer grupo utiliza los 3 primeros byte para identificarse teniendo que estar los valores comprendidos entre 192.1.1 y 223.254.254, quedando solamente el ultimo byte para los host, teniendo solamente un máximo de 254 ordenadores, estas redes son las que pueden albergar menor cantidad de host pero como contrapartida son las mas numerosas pudiendo existir mas de 2 millones de este tipo en el mundo.

En la clasificación de direcciones anterior se puede notar que ciertos números no se usan. Algunos de ellos se encuentran reservados para un posible uso futuro, como es el caso de las direcciones cuyo primer byte sea superior a 223 (clases D y E, que aún no están definidas), mientras que el valor 127 en el primer byte se utiliza en algunos sistemas para propósitos especiales. También es importante notar que los valores 0 y 255 en cualquier byte de la dirección no pueden usarse normalmente por tener otros propósitos específicos.

El número 255 tiene también un significado especial, puesto que se reserva para el broadcast. El broadcast es necesario cuando se pretende hacer que un mensaje sea visible para todos los sistemas conectados a la misma red. Esto puede ser útil si se necesita enviar el mismo datagrama a un número determinado de sistemas, resultando más eficiente que enviar la misma información solicitada de manera individual a cada uno.

La Nueva Versión IP (IPng) "Internet Protocol Next Generation"

La nueva versión del Protocolo IP recibe el nombre de IPv6 aunque también es conocido como IPng , esta versión es utilizada en forma mínima frente a la antigua la cual es la mas diseminada, los cambios de esta nueva versión son muchos e importantes y la transición entre la antigua versión y la nueva no debería representar ningún problema, debido a las características de compatibilidad incluidas en el IPng, la nueva versión corrige la mayor parte de los problemas existentes en la actualidad, tales como pasar de los 32 bits a 128, además de ofrecer soportes para las redes actuales como ATM, Gigabit Ethernet, etc.

Espero les sirva de ayuda, piensen en esto, ¿Cómo podremos utilizar a fondo un servicio si no conocemos su modo de trabajo y estructura?, estuve repasando todos los números de la revista buscando que articulo sería mas adecuado, ya fuese por no haberse publicado aun o por que existiese la posibilidad de ampliarlo, y creo haber dado en el clavo, ya que a mi entender es un tema de suma importancia. En venideros artículos tengo previsto acotar el tema de los Firewall y Proxy, así como darles a conocer que es el "modelo OSI".

Continuar leyendo

Una navegación más fácil

Chacal [mariav.hedez@infomed.sld.cu]

Para la mayoría de las personas viajar por Internet es solamente abrir el navegador, poner una url o dirección de un sitio y navegar en el, aquí les dejo con un pequeño resumen de las diferentes posibilidades que nos permite tener navegación en Internet

Nota: Cuando pongo Internet abarco también la intranet

Identificación de los recursos en Internet: el URLs

Para facilitar la identificación de los distintos recursos disponibles en Internet surge la necesidad de disponer de una forma de escribir "direcciones" que incluyan toda la información necesaria. Para ello se creó el URL (Localizador de recursos uniforme – Uniform Resource Locator) que proporciona la dirección de un archivo del World Wide Web e identifica el servicio de Internet, tales como FTP o World Wide Web, que controlará el archivo. Cuando se inserta un hipervínculo en una página, el destino del hipervínculo se codifica como dirección URL

La primera parte de una URL es el protocolo, el cual le dice a un explorador de Web el servicio de Internet que manipulara el archivo. Un protocolo está separado del resto de la URL por dos puntos (:). Algunos de los protocolos que puede usar son:

ftp: Este indica que el archivo esta en un servidor FTP. Un ejemplo de URL ftp es ftp://ftp.sld.cu/file.doc.

mailto: Este indica la dirección e-mail de una persona. Un ejemplo de URL mailto es mailto:equipo@blackhat.cu. Cuando una persona hace clic en una dirección URL mailto, el explorador de web abre un formulario de e-mail solicitando un mensaje que enviara a la dirección e-mail especificada.

file: Este indica que el archivo está en el sistema de archivos de una computadora en la red.
Ejemplos de URL file son:
file://ejemplo.host/file.doc, que indica que el archivo esta en la computadora de la red ejemplo.host
file:///dir/file.doc, este no especifica una computadora, sino que indica que el archivo está en la misma computadora que el explorador de Web.

http: Este indica que el archivo está en un servidor World Wide Web. Un ejemplo de URL http es http://www.ismm.edu.cu/index.php. Puesto que usted hará la mayoría de sus hipervínculos usando el protocolo http, veamos las direcciones URL http con más detalles.

La segunda parte de una URL http es la ubicación de la red (también se conoce como nombre de host y dirección Internet), que es un nombre único que identifica un servicio Internet. Una ubicación o posición de la red tiene dos o más partes, separadas por punto (.), como se muestra en www.ismm.edu.cu

La tercera parte es el camino o ruta de acceso. Este identifica las carpetas que contiene al archivo. Si un archivo está almacenado en la carpeta raíz de un servidor, su URL no tendrá un camino. Por ejemplo, en la dirección URL http://ejemplo.microsoft.com/hola/todos/saludos.htm, el camino o ruta de acceso es /hola/todos/.

La cuarta parte es el nombre del archivo. Si no hay ningún nombre de archivo, el explorador de Web busca una página predefinida, normalmente nombrada index.htm.
Después del nombre del archivo, una dirección URL http puede tener un marcador (también de conoce como ancla). Un marcador es una posición nombrada en una página que puede ser el destino de un hipervínculo. Este puede aplicarse a un conjunto de caracteres o puede existir en una página separada de cualquier texto. Cuando un explorador de Web hace el hipervínculo a un marcador, se visualiza la página comenzando en la posición del marcador. En una dirección URL, un marcador está precedido por el carácter signo de número "#", como se muestra en esta dirección http: http://www.ismm.edu.cu/clases.htm/#marca.

Las direcciones URL pueden ser absolutas o relativas. Una dirección URL absoluta es la dirección completa de Internet de una página o un archivo, incluyendo el protocolo, la ubicación de red, y la ruta de acceso y el nombre de archivo opcionales. Por ejemplo, http://www.blackhat.cu/news.htm es una dirección URL absoluta.
Una dirección URL relativa es una dirección URL a la que le falta una o más partes. Los exploradores toman la información que falta de la página que contiene la dirección URL. Por ejemplo, si falta el protocolo, el explorador utilizará el protocolo de la página actual y, si falta la ubicación de red, el explorador utilizará la ubicación de red de la página actual.

El tipo más común de dirección URL relativa sólo contiene un nombre de archivo y una ruta parcial, pero no la ubicación de red. Si la página utiliza este tipo de dirección URL relativa para hacer un hipervínculo a otra página y ambas se mueven a otro servidor, el hipervínculo funcionará si las posiciones relativas de las páginas permanecen igual en el nuevo servidor. Por ejemplo, la dirección URL relativa productos.htm señala a una página de la misma carpeta que la página que contiene el hipervínculo. Si se movieran ambas páginas a la misma carpeta de otro servidor, la dirección URL seguiría siendo correcta.

Continuar leyendo