jueves, 30 de mayo de 2019

TCP/IP (SNMP)

PROTOCOLO SNMP



Introduccion.



Hoy en día las empresas han comenzado a ser de suma importancia el manejo que se le da a la información y la forma como es utilizada la red. Debido a esto, son muchas las funciones que desempeña un administrador de red: entre ellas debe velar por la gestión de la red y por la seguridad de esta estas dos actividades. Han tenido un desarrollo tanto teórico como practico. Tanto para la seguridad como la gestión de red existen diversos programas en el mercado; algunos son libres y algunos cuestan mucho dinero. El problema que tienen estas herramientas es que hacen su trabajo de manera que no se puede relacionar la gestión de red y la seguridad. Normalmente cada una de ellas debe ser administradas desde el entorno visual que ofrecen para interactuar. Por esta razón un administrador de red debe estar constantemente manejando en varias red herramientas a la vez para monitorear lo que esta sucediendo. Hasta el momento no se han encontrado herramientas que integren esta funcionalidad bajo un mismo programa.



¿Que es SNMP?
La respuesta a todas las necesidades antes expuestas, es el protocolo llamado Simple Network Management Protocol (SNMP). Diseñado en los años 80, su principal objetivo fue el integrar la gestión de diferentes tipos de redes mediante un diseño sencillo y que produjera poca sobrecarga en la red.  SNMP opera en el nivel de aplicación, utilizando el protocolo de transporte TCP/IP, por lo que ignora los aspectos específicos del hardware sobre el que funciona. 

En general, podemos decir que SNMP se utiliza para configurar dispositivos remotos -continuó Fraguas-. La información de configuración puede lanzarse a cada host interconectado con la red desde el sistema de administración. También se utiliza para supervisar el rendimiento de la red en general. Se puede hacer un rastreo de la velocidad de procesamiento y las capacidades de la red, y abastecerse de información acerca de las transferencias de datos. Y por supuesto para detectar errores en la red o accesos inadecuados.

                            Imagen relacionada


La gestión se lleva a cabo al nivel de IP, por lo que se pueden controlar dispositivos que estén conectados en cualquier red accesible desde la Internet, y no únicamente aquellos localizados en la propia red local. Evidentemente, si alguno de los dispositivos de encaminamiento con el dispositivo remoto a controlar no funciona correctamente, no será posible su monitorización ni reconfiguración.
El protocolo SNMP está compuesto por dos elementos: el agente (agent), y el gestor (manager). Es una arquitectura cliente-servidor, en la cual el agente desempeña el papel de servidor y el gestor hace el de cliente.


El agente es un programa que ha de ejecutase en cada nodo de red que se desea gestionar o monitorizar. Ofrece un interfaz de todos los elementos que se pueden configurar. Estos elementos se almacenan en unas estructuras de datos llamadas "Management Information Base" (MIB), se explicarán más adelante. Representa la parte del servidor, en la medida que tiene la información que se desea gestionar y espera comandos por parte del cliente.


                              Resultado de imagen para snmp




El gestor es el software que se ejecuta en la estación encargada de monitorizar la red, y su tarea consiste en consultar los diferentes agentes que se encuentran en los nodos de la red los datos que estos han ido obteniendo.

Hay un comando especial en SNMP, llamado trap, que permite a un agente enviar datos que no han sido solicitados de forma explícita al gestor, para informar de eventos tales como: errores, fallos en la alimentación eléctrica, etc.

Un gestor puede realizar sólo dos tipos diferentes de operaciones sobre un agente: leer o escribir un valor de una variable en el MIB del agente. Estas dos operaciones se conocen como petición-de-lectura (get-request) y petición-de-escritura (set-request). Hay un comando para responder a una petición-de-lectura llamado respuesta-de-lectura (get-response), que es utilizado únicamente por el agente.

Componentes de SNMP

Se compone de tres partes indispensables para su funcionamiento:

Agente: es un programa encontrado en un dispositivo de red, ya sea una estacion, un switch o un router o cualquier dispositivo administrable mediante SNMP.

Consola de administracion: es un programa encontrado en una estacion de trabajo y tiene la habilidad de indagar los agentes utilizando SNMP





Mib: estándar separado para los datos gestionados por el protocolo. Este estándar define los datos mantenidos por un dispositivo de red, así como las operaciones que están permitidas. 


                                  Resultado de imagen para components of snmp


¿ Cuál es el futuro de SNMP ?



Una nueva especificación llamada SNMPv2 está actualmente en rápido desarrollo. Esta versión trata de solucionar la laguna existente en cuestiones de seguridad del protocolo actual mediante mecanismos que se centran en la privacidad, la autentificación y el control de acceso. También permitirá un complejo mecanismo de especificación de variables, así como algunos comandos nuevos. El problema del SNMPv2 es que aún no es un estándar ampliamente aceptado, a diferencia del SNMPv1. No es fácil encontrar versiones de SNMPv2 de agentes ni de software que haga uso de los nuevos comandos. Dejemos que pase el tiempo y ya veremos que sucede en el futuro próximo.

                            Resultado de imagen para future of snmp


Para realizar el quiz da click en el siguiente enlace 3:)  :v   :3  -.-´´  .___.  e.e

https://docs.google.com/forms/d/e/1FAIpQLSfcxU6cynz9QUC5Ys1chzlTmjSZSFnC-3ux2CO3BuK0xUo1jA/viewform?usp=sf_link

  








viernes, 12 de junio de 2015


PROGRAMACIÓN

Se refiere a idear y ordenar las acciones que se realizarán en el marco de un proyecto; al anuncio de las partes que componen un acto o espectáculo; a la preparación de máquinas para que cumplan con una cierta tarea en un momento determinado; a la elaboración de programas para la resolución de problemas mediante ordenadores; y a la preparación de los datos necesarios para obtener una solución de un problema a través de una calculadora electrónica, por ejemplo.
En la actualidad, la noción de programación se encuentra muy asociada a la creación de aplicaciones informáticas y videojuegos; es el proceso por el cual una persona desarrolla un programa valiéndose de una herramienta que le permita escribir el código (el cual puede estar en uno o varios lenguajes, tales como C++, Java y Python) y de otra que sea capaz de “traducirlo” a lo que se conoce como lenguaje de máquina, el cual puede ser entendido por un microprocesador.

Historia

En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código maquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (sistema binario). Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés; las codificaron y crearon así un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios. A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con sólo una. Una vez que se termina de escribir un programa, sea en ensamblador o en algunos lenguajes de alto nivel, es necesario compilarlo, es decir, traducirlo completo a lenguaje máquina. Eventualmente será necesaria otra fase denominada comúnmente link, edición o enlace, durante la cual se anexan al código, generado durante la compilación, los recursos necesarios de alguna biblioteca. En algunos lenguajes de programación, puede no ser requerido el proceso de compilación y enlace, ya que pueden trabajar en modo intérprete. Esta modalidad de trabajo es equivalente pero se realiza instrucción por instrucción, a medida que es ejecutado el programa.


Historia De La Programación- Youtube


Linea De Tiempo

NOVIEMBRE 26 DE 1791: NACE CHARLES BABBAGE, EL CREADOR DE LA MAQUINA ANALITICA 
NOVIEMBRE 26 DE 1791 NACE CHARLES BABBAGE, EL CREADOR DE LA MAQUINA ANALITICA 
NOVIEMBRE 10 DE 1815 NACE ANA LOVELACE, LA PRIMERA PROGRAMADORA 
1833 SE DESCRIBE LA MAQUINA ANALITICA, EN LA CUAL TRABAJO LA PRIMERA PROGRMADORA 
1843 ANA LOVELACE PUBLICA SUS NOTAS LAS CUALES HABLAN SOBRE LA MAQUINA ANLITICA 
1971 SE REFINA SU DISEÑO HASTA LA MUERTE DE CHARLES BABBAGE, (SE REFINA EL DISEÑO DE LA MAQUINA ANALITICA) 
1953 JOHN BACKUS SOMETIÓ UNA PROPUESTA A SUS SUPERIORES EN IBM PARA DESARROLLAR UNA ALTERNATIVA MÁS PRÁCTICA AL LENGUAJE ENSAMBLADOR PARA PROGRAMAR LA COMPUTADORA
CENTRAL IBM 704. 
1956 
ESTO ERA UN COMPILADOR OPTIMIZADO, PORQUE LOS CLIENTES ERAN REACIOS A USAR UN LENGUAJE DE ALTO NIVELA MENOS QUE SU COMPILADOR PUDIERA GENERAR CÓDIGO CUYO DESEMPEÑO FUERA COMPARABLE AL DE UN CÓDIGO HECHO A MANO EN LENGUAJE ENSAMBLADOR. (PRIMER MANUAL PARA
EL LENGUAJE FORTRAN) 
1959 EL PROFESOR JOHN MCCARTHY DEL M.I.T. COMENZÓ A DESARROLLAR LA TEORÍA DE UN LENGUAJE DE DE PROCESAMIENTO DE LISTAS. EN 1959 APARECE PUBLICAMENTE LA PRIMER IMPLEMENTACIÓN LLAMADA
 LISP 1.5EL LISP (O LISP) ES UNA FAMILIA DE LENGUAJES DE PROGRAMACIÓN DE COMPUTADORA DE TIPO FUNCIONAL CON UNA LARGA HISTORIA Y UNA SINTAXIS COMPLETAMENTE ENTRE PARÉNTESI 
1960 CUANDO APARECE EL LENGUAJE ALGOL 6.0 EL PRIMER LENGUAJE ESTRUCTURADO EN BLOQUES. ESTE LENGUAJE FUE MUY POPULAR EN EL SEGUNDO LUSTRO DE LOS 60'S.SU PRINCIPAL CONTRIBUCIÓN ES
SER LA RAIZ DEL ARBOL QUE HA PRODUCIDO LENGUAJES TALES COMO PASCAL, C, C++, Y JAVA 
1960 PYTHON ES UN LENGUAJE DE PROGRAMACIÓN DE ALTO NIVEL CUYA FILOSOFÍA HACE HINCAPIÉ EN UNA SINTAXIS MUY LIMPIA Y QUE FAVOREZCA UN CÓDIGO LEGIBLE.SE TRATA DE UN LENGUAJE DE PROGRAMACIÓN MULTIPARADIGMA YA QUE SOPORTA ORIENTACIÓN A OBJETOS, PROGRAMACIÓN IMPERATIVA Y, EN MENOR MEDIDA, PROGRAMACIÓN FUNCIONAL. ES UN LENGUAJE INTERPRETADO, USA TIPADO DINÁMICO, ES FUERTEMENTE TIPADO Y ES MULTIPLATAFORMA 
1964 POR JOHN GEORGE KEMENY Y THOMAS EUGENE KURTZ EN EL COLEGIO DARTMOUNTH.ES UN LENGUAJE MUY LIMITADO QUE FUE DISEÑADO PARA PERSONAS QUE NO FUERAN DEL ÁREA DE CIENCIAS DE LA COMPUTACIÓN.EL NOMBRE DE BASIC, SIGNIFICA BEGINNERS ALL-PURPOSE SYMBOLIC INSTRUCTION CODE.LOS OCHO PRINCIPIOS DE DISEÑO DE BASIC FUERON: 1.SER FÁCIL DE USAR PARA LOS PRINCIPIANTES. 2. SER UN LENGUAJE DE PROPÓSITO GENERAL. 3. PERMITIR QUE LOS EXPERTOS AÑADIERAN CARACTERÍSTICAS AVANZADAS, MIENTRAS QUE EL LENGUAJE PERMANECÍA SIMPLE PARA LOS PRINCIPIANTES. 4. SER INTERACTIVO. 5. PROVEER MENSAJES DE ERROR CLAROS Y AMIGABLES. 6.
RESPONDER RÁPIDO A LOS PROGRAMAS PEQUEÑOS. 7. NO REQUERIR UN CONOCIMIENTO DEL
 HARDWARE DE LA COMPUTADORA. 8.EL LENGUAJE SE BASO EN FORTRAN Y ALGOL 6.0 (BASIC) 
1968 PASCAL ES UN LENGUAJE DE PROGRAMACIÓN DESARROLLADO POR EL PROFESOR SUIZO NIKLAUS WIRTHENTRE LOS AÑOS 1968/9 Y PUBLICADO EN 1970. SU OBJETIVO ERA CREAR UN LENGUAJE QUE FACILITARA EL APRENDIZAJE DE PROGRAMACIÓN A SUS ALUMNOS, UTILIZANDO LA PROGRAMACIÓN ESTRUCTURADAY ESTRUCTURACIÓN DE DATOS. SIN EMBARGO CON EL TIEMPO SU UTILIZACIÓN EXCEDIÓ
EL ÁMBITO ACADÉMICO PARA CONVERTIRSE EN UNA HERRAMIENTA PARA LA CREACIÓN DE
APLICACIONES DE TODO TIPO.SE NOMBRO ASI POR BLAISE PASCAL 
1972 S UN LENGUAJE ORIENTADO A LA IMPLEMENTACIÓN DE SISTEMAS OPERATIVOS, CONCRETAMENTE UNIX. C ES APRECIADO POR LA EFICIENCIA DEL CÓDIGO QUE PRODUCE Y ES EL LENGUAJE DE PROGRAMACIÓN MÁS POPULAR PARA CREAR SOFTWARE DE SISTEMAS, AUNQUE TAMBIÉN SE UTILIZA PARA CREAR APLICACIONES. (SE CREA "C") 
1972 LA INTENCIÓN DE SU CREACIÓN FUE EL EXTENDER AL EXITOSO LENGUAJE DE PROGRAMACIÓN C CON MECANISMOS QUE PERMITAN LA MANIPULACIÓN DE OBJETOS. EN ESE SENTIDO, DESDE EL PUNTO DE VISTA DE LOS LENGUAJES ORIENTADOS A OBJETOS, EL C++ ES UN LENGUAJE HÍBRIDO, FUE CREADOR POR BJARNE STROUSTRUP. 
1980 LA INTENCIÓN DE SU CREACIÓN FUE EL EXTENDER AL EXITOSO LENGUAJE DE PROGRAMACIÓN C CON MECANISMOS QUE PERMITAN LA MANIPULACIÓN DE OBJETOS. EN ESE SENTIDO, DESDE EL PUNTO DE VISTA DE LOS LENGUAJES ORIENTADOS A OBJETOS, EL C++ ES UN LENGUAJE HÍBRIDO, FUE CREADOR POR BJARNE STROUSTRUP. 
1987 PERL TOMA CARACTERÍSTICAS DEL LENGUAJE C, DEL LENGUAJE INTERPRETADO SHELL (SH), AWK, SED,
 LISP Y, EN UN GRADO INFERIOR, DE MUCHOS OTROS LENGUAJES DE PROGRAMACIÓN.
ESTRUCTURALMENTE, PERL ESTÁ BASADO EN UN ESTILO DE BLOQUES COMO LOS DEL C O AWK, Y FUE AMPLIAMENTE ADOPTADO POR SU DESTREZA EN EL PROCESADO DE TEXTO Y NO TENER NINGUNA DE LAS LIMITACIONES DE LOS OTROS LENGUAJES DE SCRIPT.FUE CREADO POR LARRY WALL 
1990 PYTHON ES UN LENGUAJE DE PROGRAMACIÓN DE ALTO NIVEL CUYA FILOSOFÍA HACE HINCAPIÉ EN UNA SINTAXIS MUY LIMPIA Y QUE FAVOREZCA UN CÓDIGO LEGIBLE.SE TRATA DE UN LENGUAJE DE PROGRAMACIÓN MULTIPARADIGMA YA QUE SOPORTA ORIENTACIÓN A OBJETOS, PROGRAMACIÓN IMPERATIVA Y, EN MENOR MEDIDA, PROGRAMACIÓN FUNCIONAL. ES UN LENGUAJE INTERPRETADO, USA TIPADO DINÁMICO, ES FUERTEMENTE TIPADO Y ES MULTIPLATAFORMA. 
1994 PHP ES UN LENGUAJE DE PROGRAMACIÓN INTERPRETADO, DISEÑADO ORIGINALMENTE PARA LA CREACIÓN DE PÁGINAS WEBDINÁMICAS. ES USADO PRINCIPALMENTE EN INTERPRETACIÓN DEL LADO DEL SERVIDOR (SERVER-SIDE SCRIPTING) PERO ACTUALMENTE PUEDE SER UTILIZADO DESDE UNA INTERFAZ DE LÍNEA DE COMANDOS O EN LA CREACIÓN DE OTROS TIPOS DE PROGRAMAS INCLUYENDO APLICACIONES CON INTERFAZ GRÁFICA USANDO LAS BIBLIOTECAS QT O GTK+.PHP ES UN ACRÓNIMO RECURSIVO
 QUE SIGNIFICA PHP HYPERTEXT PRE-PROCESSOR (INICIALMENTE PHP TOOLS, O, PERSONAL HOME PAGE TOOLS). FUE CREADO ORIGINALMENTE POR RASMUS LERDORF 
1995 RUBY ES UN LENGUAJE DE PROGRAMACIÓN INTERPRETADO, REFLEXIVO Y ORIENTADO A OBJETOS, CREADO POR EL PROGRAMADOR JAPONÉS YUKIHIRO "MATZ" MATSUMOTO, QUIEN COMENZÓ A TRABAJAR EN RUBY EN 1993 
2001 ES UN LENGUAJE DE PROGRAMACIÓN ORIENTADO A OBJETOS DESARROLLADO Y ESTANDARIZADO POR MICROSOFT COMO PARTE DE SU PLATAFORMA .NET, QUE DESPUÉS FUE APROBADO COMO UN ESTÁNDAR POR LA ECMA E ISO.SU SINTAXIS BÁSICA DERIVA DE C/C++ Y UTILIZA EL MODELO DE OBJETOS DE LA PLATAFORMA.NET, SIMILAR AL DE JAVA AUNQUE INCLUYE MEJORAS DERIVADAS DE OTROS LENGUAJES (ENTRE ELLOS DELPHI).LA CREACIÓN DEL NOMBRE DEL LENGUAJE, C, PROVIENE DE DIBUJAR DOS SIGNOS POSITIVOS ENCIMA DE LOS DOS SIGNOS POSITIVOS DE "C++", QUERIENDO DAR UNA IMAGEN DE SALTO EVOLUTIVO, DEL MISMO MODO QUE OCURRIÓ CON EL PASO DE C A C++ 

Objetivos De La Programación

La programación debe perseguir la obtención de programas de calidad. Para ello se establece una serie de factores que determinan la calidad de un programa. Algunos de los factores de calidad más importantes son los siguientes:
·         Correctitud. Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy importante especificar claramente qué debe hacer el programa antes de su desarrollo y, una vez acabado, compararlo con lo que realmente hace.
·         Claridad. Es muy importante que el programa sea lo más claro y legible posible, para facilitar tanto su desarrollo como su posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo de programación. De esta forma se ve facilitado el trabajo del programador, tanto en la fase de creación como en las fases posteriores de corrección de errores, ampliaciones, modificaciones, etc
·         Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros recursos que también pueden ser de consideración para mejorar la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, tráfico en la red que genera, etc.).
·         Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquélla en la que se desarrolló. La portabilidad es una característica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha elaborado para el sistema GNU/Linux ejecutarse también en la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a más usuarios más fácilmente.

Realizado Por:
Andres Esteban Gonzalez Llorente
Livan Osmaider Vergara Doria
Jhon Omar Cuestas Lopez 
Jose Antonio Cervantes Bolivar
Yenilson Viloria Cavadia



Jose Antonio Cervantes Bolivar------https://www.mindomo.com/




Andres Esteban Gonzalez Llorente https://www.gliffy.com/

Jhon Omar Cuestas Lopez creately.com/



  Livan Osmaider Vergara Doria   https://bubbl.us/


Yenilson Viloria Cavadia-- MindMeister