Fundamentos de Redes (OSI, TCP/IP, IPv4) y Conceptos Esenciales de Programación e Historia Informática


Redes de Comunicación

2. Modelo OSI (Open Systems Interconnection)

El modelo OSI es un estándar que define cómo los sistemas de comunicación deben interactuar en una red. Divide la comunicación en 7 capas, donde cada capa tiene una función específica y se comunica únicamente con las capas adyacentes. Esto permite que equipos diferentes se entiendan aunque tengan hardware o software distinto.

Las 7 capas del modelo OSI

  1. Capa física (Nivel 1): Se encarga de transmitir los bits (0 y 1) por un medio físico. Incluye cables, fibra óptica, radiofrecuencia, módems y hubs. Ejemplo: enviar un 1 por el cable significa un pulso eléctrico, o un 0 significa ausencia de pulso. Analogía: como el cable por donde viaja el agua; no importa qué hay dentro, solo que llegue.

  2. Capa de enlace de datos (Nivel 2): Transforma los bits en tramas, incluyendo información de dirección física (MAC) y control de errores. Gestiona la comunicación dentro de la misma red local (LAN). Dispositivos: Switch, Bridge, NIC (tarjeta de red). Ejemplo: una trama de Ethernet incluye MAC origen y destino, y los datos a enviar. Analogía: como el repartidor que lleva un paquete al piso correcto dentro de un edificio usando la dirección del destinatario.

  3. Capa de red (Nivel 3): Encargada del direccionamiento lógico y enrutamiento entre redes diferentes. Protocolo principal: IP (IPv4, IPv6). Dispositivo: Router. Ejemplo: cuando envías un correo desde tu PC en Madrid a un servidor en Nueva York, esta capa decide por qué camino viajará el paquete. Analogía: como el GPS que decide qué carretera tomar para llegar a otro país.

  4. Capa de transporte (Nivel 4): Garantiza que los datos lleguen correctamente. Protocolos:

    • TCP: Conexión fiable, con confirmaciones y reenvío de errores.
    • UDP: Conexión no fiable, rápido, usado en streaming o juegos en línea.

    Analogía: TCP es como un servicio de mensajería certificado, UDP como un envío normal sin confirmación.

  5. Capa de sesión (Nivel 5): Establece, mantiene y termina la comunicación entre aplicaciones. Ejemplo: cuando un cliente abre sesión en un servidor FTP, esta capa gestiona la sesión de transferencia de archivos.

  6. Capa de presentación (Nivel 6): Se encarga de convertir y presentar los datos: codificación, compresión, cifrado. Ejemplo: convertir un archivo JPEG o cifrar un mensaje con SSL/TLS. Analogía: como traducir un documento a otro idioma antes de entregarlo.

  7. Capa de aplicación (Nivel 7): Interfaz directa con el usuario y programas. Protocolos: HTTP, FTP, SMTP, DNS. Ejemplo: cuando abres un navegador y accedes a una página web, esta capa maneja la petición y respuesta. Analogía: como la carta que escribes y envías al destinatario, lista para leer.

2.2 Importancia del Modelo OSI

Permite interoperabilidad entre equipos diferentes. Facilita el diagnóstico de problemas: si no llega un dato, se puede identificar en qué capa ocurre la falla. Sirve de referencia para entender otros modelos como TCP/IP.

3. Modelo TCP/IP y su relación con OSI

El modelo TCP/IP es el que realmente se utiliza en Internet y redes modernas. Es más práctico que OSI porque combina algunas capas y está centrado en la transmisión de datos.

3.1 Capas de TCP/IP

Capa TCP/IPFunción principalEquivalencia OSI
AplicaciónComunicación entre programas y usuariosOSI 7 (Aplicación), 6 (Presentación), 5 (Sesión)
TransporteGarantiza entrega correcta de los datosOSI 4 (Transporte)
InternetDireccionamiento y enrutamiento de paquetesOSI 3 (Red)
Acceso a redTransmisión física de bits y enlaceOSI 2 (Enlace) y 1 (Físico)

3.2 Encapsulación de datos

Cuando envías información en TCP/IP, los datos se van encapsulando capa por capa:

  1. Datos de aplicación: p. ej., un mensaje de WhatsApp.

  2. Segmento TCP/UDP: se añade puerto de origen y destino.

  3. Paquete IP: se añade dirección IP origen y destino.

  4. Trama de enlace: se añade MAC origen y destino para la LAN.

  5. Bits físicos: se envían por cable, fibra o aire.

Ejemplo: enviar un correo a un servidor en otro país: La capa de aplicación genera el correo. TCP asegura que llegue completo. IP decide la ruta por Internet. Ethernet transmite el paquete en la LAN local.

Analogía: es como enviar una carta: el contenido es el mensaje (Aplicación), el sobre con nombre del remitente y destinatario (Transporte), la dirección de la ciudad/país (Red), y el servicio postal local (Enlace/Físico).

4. Direcciones IP (IPv4) y subredes

Las direcciones IP identifican equipos en redes y permiten la comunicación entre ellos.

4.1 IPv4 y clases

  • IPv4 tiene 32 bits, divididos en 4 octetos.

  • Representación decimal: 192.168.1.1

Clases de IP:

ClaseBits inicialesRed / HostUso
A01 / 3Grandes redes (millones de hosts)
B102 / 2Redes medianas (~65.000 hosts)
C1103 / 1Redes pequeñas (~254 hosts)
D1110Multicast (envío a grupo de hosts)
E1111Reservadas / experimentales

4.2 Direcciones especiales

  • Loopback: 127.0.0.1 → prueba local

  • Dirección de red: último octeto = 0 → identifica la red

  • Broadcast: último octeto = 255 → mensaje a todos los nodos

  • Privadas: 10.x.x.x, 172.16–31.x.x, 192.168.x.x → solo intranets

Analogía:

  • Loopback: hablar contigo mismo.

  • Red: nombre del edificio.

  • Broadcast: anunciar a todos los pisos del edificio.

  • Privada: solo comunicación dentro del edificio, no hacia fuera.

4.3 Máscaras de red y subredes

La máscara define qué parte de la IP es red y qué parte host.

Subred: dividir una red grande en varias pequeñas para optimizar direcciones y reducir tráfico.

Ejemplo de subred:

  • Red: 192.168.1.0

  • Máscara: 255.255.255.240 → 16 direcciones por subred

  • Rango: 192.168.1.0 – 192.168.1.15

    • 192.168.1.0 → dirección de red

    • 192.168.1.15 → broadcast

    • Hosts disponibles: 192.168.1.1 – 192.168.1.14

4.4 NAT y PAT

  • NAT (Network Address Translation): convierte IP privada → IP pública para salir a Internet.

  • PAT (Port Address Translation): varias IP privadas usan una IP pública con diferentes puertos.

Ejemplo:

  • PC en red privada: 192.168.0.10 → quiere acceder a un servidor web

  • El Router traduce a: 85.85.85.85:2000 → servidor

  • Respuesta del servidor llega al puerto 2000 del Router → se traduce de nuevo a 192.168.0.10

Ventaja: ahorra direcciones públicas y protege la red privada.

5. Procesadores de Red

Son dispositivos que permiten la comunicación entre equipos y el control del tráfico.

5.1 Nivel 1: Físico

  • Módem: convierte señal digital ↔ analógica (para ADSL, RDSI, RTC).

  • Hub: retransmite la señal a todos los puertos; simple pero no eficiente.

Ejemplo: un hub es como un altavoz que repite todo lo que escucha, sin filtrar.

5.2 Nivel 2: Enlace

  • Bridge: conecta subredes, filtra tramas según MAC, reduce colisiones, autoaprende direcciones MAC.

  • Switch: conecta directamente hosts, filtra tráfico por grupos de equipos (subredes), reduce colisiones más eficientemente que bridges.

Analogía: bridge → policía que decide a qué calle enviar el paquete; switch → portero que solo abre la puerta del piso correcto.

5.3 Nivel 3: Red

  • Router: envía paquetes entre redes distintas según IP.

  • Utiliza tablas de enrutamiento y protocolos como RIP, OSPF.

  • Selecciona la mejor ruta para cada datagrama.

5.4 Seguridad y filtrado

  • Firewall: bloquea tráfico no autorizado; puede filtrar por:

    • Paquetes (nivel IP)

    • Conexiones/TCP (nivel transporte)

    • Aplicaciones (ej., bloquear FTP, Telnet)

  • Proxy: intermediario entre cliente y servidor; puede cachear información, filtrar sitios, balancear carga.

Ejemplo de proxy: en un colegio, los estudiantes acceden a Internet a través del proxy, que puede bloquear páginas inapropiadas o responder desde su caché si ya se visitaron antes.

Introducción a la Programación

1. Introducción a la Programación

Programar consiste en escribir de forma detallada y ordenada las instrucciones que debe seguir un ordenador para realizar una tarea o resolver un problema. Estas instrucciones deben escribirse en un lenguaje de programación que el ordenador pueda entender directamente o mediante un traductor.

Un lenguaje de programación es un conjunto de símbolos y reglas que permiten expresar algoritmos.

Según su cercanía al ser humano, los lenguajes se clasifican en:

  • Lenguaje máquina: instrucciones binarias directamente entendidas por la CPU, dependientes del hardware.

  • Lenguaje de bajo nivel (ensamblador): usa códigos mnemotécnicos y sigue siendo dependiente de la máquina.

  • Lenguaje de alto nivel: cercano al lenguaje humano, independiente del hardware y necesita traducción.

Un programa en lenguaje de alto nivel genera un código fuente, que se traduce a código objeto y finalmente a código ejecutable.

Traductores:

  • Compilador: traduce todo el programa antes de ejecutarlo.

  • Intérprete: traduce y ejecuta el programa línea a línea.

Normas básicas al programar:

  • El ordenador no tiene sentido común.
  • Es necesario diseñar el algoritmo previamente.
  • Hay que contemplar todos los casos posibles.
  • Es recomendable usar diagramas de flujo.
  • Un programa robusto es aquel que es difícil de fallar.

2. Conceptos Básicos de Programación

Los elementos básicos de la programación imperativa son:

  • Variables: espacios de memoria que almacenan datos y pueden cambiar su valor. → Una variable guarda información que puede modificarse durante la ejecución.

  • Constantes: valores que no cambian durante la ejecución. → Una constante mantiene siempre el mismo valor.

  • Expresiones: combinaciones de operadores y operandos. → Una expresión produce un resultado al evaluarse.

  • Parámetros: variables que se pasan a funciones. → Permiten enviar datos a una función.

  • Secuenciación: ejecución ordenada de instrucciones. → Las instrucciones se ejecutan una tras otra en orden.

Las variables pueden ser:

  • Numéricas.
  • Lógicas (booleanas).
  • Alfanuméricas (cadenas).

Según su ámbito:

  • Locales: solo accesibles dentro de una función.
  • Globales: accesibles desde todo el programa.

3. Diagramas de Flujo

Un diagrama de flujo es la representación gráfica de un algoritmo o proceso. → Muestra visualmente el orden de ejecución de un programa.

Características:

  • Un único inicio y un único fin.
  • Flujo normalmente vertical.
  • Uso de símbolos estándar.

Sirve para:

  • Comprender el algoritmo.
  • Detectar errores lógicos.
  • Facilitar el paso a código.

4. JavaScript

JavaScript es un lenguaje de programación interpretado, integrado en los navegadores web, que permite crear páginas web dinámicas.

Historia

  • Creado por Brendan Eich en Netscape.
  • Inicialmente llamado LiveScript.
  • Renombrado como JavaScript por motivos de marketing.
  • Estandarizado por ECMA (ECMA-262).

Características:

  • Interpretado.
  • Sensible a mayúsculas y minúsculas.
  • Tipado dinámico.
  • Orientado a facilitar la programación web.

5. Sintaxis Básica de JavaScript

Variables:

  • Se declaran con var.
  • No se indica el tipo de dato.

Tipos de datos:

  • Numéricos.
  • Booleanos.
  • Cadenas.
  • Arrays y objetos.

Operadores:

  • Aritméticos.
  • Asignación.
  • Comparación.
  • Lógicos.

6. Entrada y Salida Básica

  • prompt(): permite introducir datos por teclado. → Solicita información al usuario durante la ejecución.

  • alert(): muestra un mensaje en una ventana emergente. → Muestra información al usuario.

  • document.write(): escribe texto en la página web. → Muestra información directamente en el navegador.

Funciones útiles:

  • parseInt(), parseFloat()
  • isNaN()

7. Funciones

Una función es un conjunto de instrucciones agrupadas bajo un nombre. → Permite reutilizar código y organizar el programa.

Características:

  • Reciben parámetros.
  • Devuelven un valor con return.
  • Deben declararse antes de usarse.

8. Estructuras de Control

Condicionales

  • IfEjecuta un bloque de instrucciones si la condición es verdadera.

  • if-elseEjecuta un bloque si la condición es verdadera y otro si es falsa.

  • SwitchSelecciona un bloque de instrucciones según el valor de una variable.

Bucles

  • WhileRepite instrucciones mientras la condición sea verdadera, comprobándola antes.

  • do-whileEjecuta las instrucciones al menos una vez y luego comprueba la condición.

  • ForRepite instrucciones un número determinado de veces usando un contador.

9. Arrays

Un array es una estructura que almacena varios datos bajo un mismo nombre. → Permite trabajar con colecciones de datos usando índices.

Características:

  • El primer índice es 0.
  • El tamaño se obtiene con length.

Operaciones comunes:

  • push(), pop()
  • sort(), reverse()

Historia de la Informática

Antecedentes de la Informática

La informática surge de la necesidad de automatizar cálculos y procesar información de manera más rápida y precisa. Sus raíces se remontan a la antigüedad:

  • Sistemas de cálculo antiguos: el hombre primitivo contaba con piedras o calculus. Posteriormente se inventó el ábaco, utilizado para sumar, restar, multiplicar y dividir. La numeración romana y la arábiga sirvieron para registrar cantidades y realizar operaciones, siendo la arábiga la que usamos actualmente.

  • Lógica y razonamiento: los griegos, en el siglo IV a.C., establecieron bases de la lógica, fundamentales siglos después para la programación y el diseño de circuitos.

  • Algoritmos: Al-Juarismi (825 d.C.), matemático árabe, sistematizó procedimientos para resolver problemas aritméticos; de él proviene la palabra “algoritmo”.

  • Máquinas de cálculo:

    • John Napier (1560-1617) inventó las Varillas de Napier, que agilizan multiplicaciones y divisiones, y desarrolló los logaritmos.
    • Entre 1620 y 1630 se crean las reglas de cálculo, basadas en logaritmos, utilizadas para cálculos científicos hasta mediados del siglo XX.
    • Blaise Pascal (1642) construyó una máquina para sumas y restas; Leibniz (1671) la perfeccionó, agregando multiplicación y división.
  • Tarjetas perforadas: Jacquard (1790) inventa tarjetas perforadas para automatizar telares, precursoras de la programación en computadoras.

  • Álgebra booleana: Georges Boole (1815-1869) crea un sistema lógico que permite diseñar circuitos digitales y sentar bases de la programación, bases de datos e inteligencia artificial.

  • Computación mecánica avanzada: Charles Babbage desarrolla la Máquina de Diferencias (1822-1833) para calcular tablas numéricas y, más tarde, la Máquina Analítica, un computador programable con unidad aritmética, memoria, unidad de control y salida. Ada Byron, su colaboradora, es considerada la primera programadora de la historia.

  • Tabuladoras: Herman Hollerith (1896) crea la Máquina Tabuladora para el censo estadounidense, utilizando tarjetas perforadas y lógica booleana; esto da origen a IBM.

Máquinas Históricas de Cálculo y Computación

Tras los antecedentes matemáticos y lógicos, la evolución de la informática pasa por una serie de máquinas clave que marcaron el camino:

  • Varillas de Napier (1560-1617): inventadas por John Napier, permiten agilizar multiplicaciones y divisiones usando tablas y varillas numeradas.

  • Reglas de cálculo (1620-1630): desarrolladas en Inglaterra, basadas en logaritmos; multiplicaciones se transforman en sumas de longitudes y divisiones en restas. Su uso perdura hasta mediados del siglo XX.

  • Máquina de Pascal (1642): realiza sumas y restas mediante ruedas y engranajes; cada rueda representa unidades, decenas o centenas. Los acarreos pasan automáticamente de una rueda a otra.

  • Máquina de Leibniz (1671): perfecciona la de Pascal, añadiendo multiplicación y división, aumentando su capacidad aritmética.

  • Tarjetas perforadas de Jacquard (1790): automatizan telares; las perforaciones representan patrones que las máquinas pueden seguir. Constituyen los primeros “programas” de la historia.

  • Máquina de Diferencias y Analítica de Babbage (1822-1833): la Diferencias calcula tablas numéricas, mientras la Analítica es programable mediante tarjetas perforadas y tiene unidad aritmética, memoria y salida. Ada Byron programa funciones analíticas, siendo la primera programadora.

  • Máquina Tabuladora de Hollerith (1896): usa tarjetas perforadas y lógica booleana para procesar censos; reduce el tiempo de cálculo de 12 a 3 años. Da origen a IBM.

  • MARK I (1943, Howard Aiken): calculador automático de propósito general; 15,5 m de longitud, 5 toneladas, 800 km de cables. Opera con relés y utiliza cinta perforada para entrada de datos.

  • Máquina de Turing (1936, Alan Turing): modelo teórico de computación; cinta infinita, cabeza lectora/escritora, conjunto de estados y reglas de acción. La Máquina Universal de Turing puede simular cualquier otra máquina de Turing, introduciendo la idea de almacenar datos y programas juntos.

Generaciones de Computadoras (ampliadas)

Primera Generación (1946-1954)

  • Tecnología: tubos de vacío (válvulas), sustituyen relés mecánicos; representan estados binarios.

  • Memoria: cintas magnéticas y tambores magnéticos (precursores de los discos duros).

  • Programación: en código máquina, tarjetas perforadas; altamente dependiente del operador.

  • Sistemas operativos: no existían; el control era manual.

  • Características: monousuario, monotarea, frecuentes fallos (ENIAC, tubos de 3.000 horas de vida).

  • Ejemplos destacados:

    • ENIAC: 30 toneladas, 18.000 válvulas, usada para tablas balísticas; aritmética decimal.
    • MARK I: 15,5 m x 2,4 m x 0,6 m, 5 toneladas, sumas en 3 décimas de segundo, multiplicaciones en 6 s.
    • EDVAC: arquitectura Von Neumann, binaria y con programa almacenado.

Segunda Generación (1955-1963)

  • Tecnología: transistores, más pequeños, fiables y baratos.

  • Memoria: ferritas y primeros discos magnéticos apilables.

  • Programación: lenguajes de alto nivel (FORTRAN, COBOL, ALGOL, LISP).

  • Sistemas operativos: programas monitor para trabajo por lotes (batch), control de E/S más eficiente.

  • Características: ciclos en microsegundos, multiprogramación inicial, más variedad de máquinas y fabricantes.

  • Ejemplos destacados: IBM 1401, IBM 7094, UNIVAC II; se usan para cálculos científicos, comerciales y censos.

Tercera Generación (1964-1970)

  • Tecnología: circuitos integrados (CI); más fiables, pequeños y baratos.

  • Memoria: caché, unidades de control microprogramadas, pipeline y controladores DMA.

  • Programación: BASIC, Pascal, PL/I; multiprogramación y multiproceso.

  • Sistemas operativos: multiprogramación avanzada, SPOOLING, interacción con la CPU optimizada.

  • Características: nanosegundos de ciclo, mayor velocidad, reducción de tamaño físico de máquinas, apertura a empresas medianas y universidades.

  • Ejemplos destacados: IBM 360 y 370 (compatibilidad de software entre modelos), Cray CIBER (primer supercomputador), PDP DEC (microcomputadores económicos).

Cuarta Generación (1971 – actualidad)

  • Tecnología: LSI y VLSI; integración de UC + ALU en microprocesadores.

  • Memoria: RAM DRAM de alta capacidad en CI, uso de discos duros modernos.

  • Programación: C, C++, Java; programación orientada a objetos, lógica y paralela.

  • Sistemas operativos: independientes del fabricante, multiproceso, tiempo compartido, redes y clusters.

  • Características: miniaturización extrema, bajo consumo, computación doméstica y profesional, paralelismo, supercomputación, multiusuario e Internet.

  • Ejemplos destacados: Apple II, IBM PC, estaciones de trabajo HP Apollo, DEC Alpha, supercomputadores vectoriales y RISC, procesadores multinúcleo.

Resumen clave para examen

  1. La informática surge de la necesidad de automatizar cálculos, combinando lógica, algoritmos y máquinas mecánicas.

  2. Las máquinas históricas evolucionaron desde varillas y reglas de cálculo hasta computadoras electrónicas y modelos teóricos como la Máquina de Turing.

  3. Cada generación se distingue por mejoras en tecnología, memoria, programación y sistemas operativos, aumentando velocidad, eficiencia y accesibilidad.

  4. Hoy, la informática moderna es paralela, conectada y accesible, con microprocesadores potentes, sistemas abiertos y redes globales.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *