Modelo OSI – Modelo TCP/IP

MODELO OSI

UF1 osi tcp ip.png

OSI es una normativa formada por la Organización Internacional de Estándares (ISO), una federación global que representa aproximadamente 130 países. Este modelo de red esta formado por siete capas que definen las diferentes fases por las que deben pasar los datos para viajar de un dispositivo a otro sobre una red de comunicaciones.

A la hora de inventariar y controlar los servicios de una red debemos tener en cuenta ciertos factores. Para ello debemos conocer el modelos de capas OSI, que consta de siete capas:

Capa física

Se encarga de las conexiones del equipo hacia la red tanto en el medio físico como a la forma en la que se transmiten los datos. Señal y transmisión de datos.

Sus principales funciones son:

  • Definir medios físicos por donde viajar la información. Cable, guías de onda, aire, fibra óptica.
  • Definir características materiales y eléctricas. Componentes, conectores, niveles de tensión.
  • Definir las características funcionales de la interfaz. Establecimiento, mantenimiento liberación del enlace físico.
  • Transmitir los datos a través del medio.
  • Manejar las señales eléctricas del medio del transmisión.
  • Garantizar la conexión. Aunque no la fiabilidad de la conexión.

Capa de enlace de datos

Es una de las capas más importantes a revisar en el momento de conectar dos ordenadores ya que se ocupa de:

  • Direccionamiento físico.
  • De la topología de red.
  • Del acceso al medio.
  • De la detección de errores.
  • De la distribución ordenada de tramas
  • Control de flujo de datos.
  • Creación de protocolos básico como son Mac y IP

Capa de red

Se encarga de identificar el enrutamiento existente entre una o más redes. Las unidades de información se denominan paquetes, se pueden clasificar e protocolos enrutables y protocolos de enrutamiento.

  • Enrutables: viajan con los paquetes. IP, IPC, APLLETALK.
  • Enrutamiento: permiten seleccionar las rutas. RIP, IGRP,EIGRP,OSPF,BGP.

Capa de transporte

Su finalidad es efectuar el transporte de los datos de emisor al receptor. Independizándolo del tipo de red física que este utilizando.

Esta capa se llama Segmento o Datagrama, dependiendo de si corresponde a unos de sus dos protocolos:

  • TCP. Orientado a trabajar con conexión.
  • UDP. Orientado a trabajar sin conexión.

Por lo tanto trabajan con puertos lógicos junto a la capa de red, dando forma a los conocidos Sockets IP:Puerto (192.168.10.80).

Capas de sesión

Esta es la capa que se encarga de mantener y controlar el enlace establecido entre dos equipos.

Capas de presentación

El objetivo es encargarse que la presentación de los datos sea entendible por ambos sistemas aunque pueden tener diferentes representaciones internas de los datos. Trabaja el contenido de la comunicación.

Podría decirse que esta capa actúa como traductor.

Capa de aplicación

Ofrece a las aplicaciones la posibilidad de acceder a los servicios de las demás capas y define los protocolos que utilizan las aplicaciones para intercambiar datos. Hay tantos protocolos como aplicaciones distintas, puesto que el números de protocolos aumenta sin parar.

Algunos de estos protocolos son:

  • HTTP. Hyper Text Transfer Protocol. Puerto 80
  • SSH. Secure Shell. Puerto 22
  • FTP. File transfer protocol. Puerto 21

MODELO TCP/IP

Las redes LAN como INTERNET funcionan con el modelo de capas TCP/IP.

UF1 osi tcp ip.png

Nivel de Acceso

Equivale al nivel físico + nivel de enlace del modelo OSI. Nos encontramos los estándares:

  • Ethernet (IEEE 802.3)
  • WIFI (IEEE 802.11)

Estos estándares definen los métodos que utilizan las máquinas para acceder a los medios de comunicación. Ejemplo: Tarjetas de Red. Switchs.

Nivel IP o de Internet

Equivale al nivel de red del modelo OSI. No da la unidad de todos los elementos de la red, permitiendo su conexión independientemente del medio que utilicen para conectarse. Su propósito es permitir enviar paquetes de datos a cualquier punto de la red. La asignación de direcciones y el enrutamiento son sus principales funciones. A nivel de hardware Routers. Nos podemos encontrar con los siguentes protocolos:

  • ICMP. Sobretodo para gestión de errores de comunicación.
  • ARP. Utilizadon en una LAN para relacionear las direcciones IP.
  • RIP.
  • EGP.
  • OSPF.

Una dirección IP es un número binario de 32 bits. Se dividen los 32 bits en 4 grupos de 8 bits, escribiendo cada uno de ellos en base decimal.

Nivel de transporte

Equivale al nivel de transporte del Modelo OSI. El control del flujo de paquetes y de errores se lleva a cabo desde este nivel. Solo si implementa en los equipos finales (pc,smartphone,tablets, etc.).

Los protocolos más utilizados son TCP y UCP:

  • TCP. El primero establece un circuito virtual entre dos programas. Mantiene una conexión fiable con envió de paquetes en orden, íntegro y sin pérdidas.
  • UDP. No tiene fiabilidad en los envíos. Los datagramas pueden estar desordenados, duplicados o no enviados. Por otro lado permite que estos paquetes sean más ligeros, rápidos de gestionar y trasnmitir.

Nivel de aplicación

Equivale a sesión, presentación y aplicación del modelo OSI. En este nivel es donde trabajan los programas como el navegador, clientes de correo, etc. Solo implemenentan este nivel los equipos finales. Protocolos:

  • HTTP
  • SSH
  • POP-IMAP
  • SMTP
  • VNC
  • DNS
  • DHCP

Ejemplo Gráfico

UF1 modelotcp.png

Introducción a Redes

Si llegamos a establecer una conexión entre diferentes máquinas conseguimos que estas máquinas puedan compartir recursos(archivos, impresoras,BD, Internet,etc.).
Además podemos facilitar la comunicación entre personas mediante software de mensajería instantánea, correo electrónico, chats, etc.

Las redes necesitan dos elementos para funcionar:

  • Una conexión física para la transmisión de datos entre los extremos de la comunicación (emisor y receptor).
  • Unos protocolos de comunicación conocidos por los extremos. Tanto a nivel de hardware como a nivel de software. Estos protocolos nos ayudan a la gestión y control de la comunicación.

Representación de comunicación entre dos máquinas.

UF1comunicacionentremaquinas.png

 

La información puede viajar con diferentes medios. Medio guiado o cableado y Medio no guidado o inálambrico. Los medios guiados son los más rápidos, seguros y menos propensos a tener interferéncias, en cambio el medio no guiado són más cómodos para los usuarios.

La interfaz de red es el dispositivo electrónico que comunica el ordenador con el medio de la red.

Con el número de dispositivos que comparten un medio de transmisión podemos saber de que tipo es:

  • Punto a Punto. Un enlace entre dos dispositivos únicamente.
  • Multipunto. Cuando el medio de transmisión se comparte entre más de dos equipos.

Las transmisiones pueden ser:

  • Simplex. Cuando las señales solo pueden enviar información en un determinado sentido. Ejemplos: Radio o Televisión.
  • Half-duplex. Cuando las señales se pueden enviar en un solo sentido pero simultáneamente. Ejemplos: Walki Talkis.
  • Full-duplex. Cuando las señales pueden ser transmitidas en los dos sentidos simultáneamente. Ejemplos: Telefono. Internet.

Elements intermediaris:

  • Switch. Dispositivo electrónico que tiene la capacidad de comunicar equipos entre si, tiene la capacidad de crear una red.
  • Router. Su función principal es la de encaminar los equipos entre dos redes diferentes. PREGUNTAR AL PROFE POR REDES DE DIFERENTE RANGO.

Las redes pueden clasificarse de varias formas,por su extensión geográfica, por su topología(estructura de conexiones) o por su arquitectura(tipos de relación entre sus elementos.)

  • Extensión geográfica
    • LAN (Local Area Network). Estas redes son utilizadas de forma interna por los miembros de una comunidad(Casa, Escuela, biblioteca, oficina,etc). Este red también puede ser inalámbrica WLAN.
    • WAN (Wide Area Network).- Normalmente los dispositivos conectados están en un área geográfica extensa. Están controladas por los ISP (Internet Service Provider).
  • Topología de red.
    • En bus. Los dispositivos en una misma línea compartida.
    • En estrella. Todos los dispositivos están conectados a una máquina central.
    • En malla. Todos los equipos están conectados entre si mediante punto a punto.
  • Arquitectura
    • Cliente – Servidor. La función del servidor es ofrecer un servicio o recurso a cualquier ordenador cliente que lo solicite.
    • De igual a igual(P2P,Peer to Peer). Los ordenadores conectados se comportan como cliente y servidor al mismo tiempo.
    • Clúster colaborativo. Los equipos conectados al clúster actúan como uno solo, obteniendo un equipo de mayores capacidades.

Sistemas de Numeración

Un bit es la cantidad mínima de información que puede manejar una máquina digital (PC, smartphone, etc). En un bit se puede guardar muy poca información, únicamente un 0 (que representa el estado «apagado», -«no hay corriente»-) o un 1 (que representa el estado «encendido», -«sí hay corriente»-). Por eso, los bits se agrupan para obtener conjuntos mayores con más capacidad. En concreto, a cada conjunto de 8 bits se le da el nombre de byte. De todas maneras, el byte también se queda corto y se suelen utilizar otros múltiplos. Así, un 1 kilobyte -o KB- son 1024 bytes, 1 megabyte -o MB- son 1024 KB (1048576 bytes), 1 gigabyte -o GB- son 1024 MB (1073741824 bytes), 1 terabyte -o TB- son 1024 GB (1099511627776 bytes) y 1 petabyte -o PB- son 1024 TB (1125899906842624 bytes).

Escala de conversión UF1 escala conversion.png

Binarios

Para pasar de binario a decimal, asociamos las potencias de dos empezando por la derecha y consecutivamente a cada uno de los bits que forman el número, para después sumar las potencias que estén asociadas a bits con valor 1.

  • Ejemplo de binario a decimal. 110010 = 0*1+1*2+0*4+0*8+1*16+1*32 = 50

Para pasar de decimal a binario dividimos en número en cuestión entre 2 para obtener el resultado y un resto que siempre será 0 o 1. Repetimos la operación con el resultado obtenido hasta obtener un cociente de 1.
Una vez realizadas todas las operaciones empezáremos nuestro número binario con el coeficiente que será nuestro primer bit situado a la izquierda, colocando el resto más cercano a su derecha y así hasta llegar al último.

  • Ejemplo de decimal a binario.

50/2 resto 0 reslt 25.
25/2 resto 1 reslt 12.
12/2 resto 0 reslt 6.
6/2 resto 0 reslt 3.
3/2 resto 1 reslt 1. Fin. BINARIO 110010

Si el resultado tuviera un número menor a 8 (para formar un byte) necesitamos completar el byte, bastará con rellenar con ceros a la izquierda. Ejemplo con el número anterior 00110010.

Sistema Hexadecimal

El sistema hexadecimal no es más que una máscara del sistema binario para que los humanos podamos trabajar más fácilmente con él. Usar el sistema hexadecimal es completamente equivalente a usar el binario. Es una manera de escribir la información binaria de un forma mucho más compacta.

Cada dígito hexadecimal es una combinación concreta de cuatro bits. Las combinaciones posibles de 0 y 1 que se pueden hacer en cuatro posiciones son 16. Nº de valores^Nºposiciones para el número de combinaciones

Tabla hexadecimal

UF1 tabla hexadecimal.png

Lo único a tener en cuenta para pasar de un sistema a otro es que a cada cuatro bits se le corresponde un sistema dígito hexadecimal.

Los números hexadecimales se representan siempre con un h final.
Para pasar de hexadecimal a decimal es mejor pasarlo primero a binario y luego de decimal.

Representación de caracteres. ASCII y Unicode

Existe un determinado número de caracteres predefinidos en el hardware de todas las máquinas, que están listos para ser utilizados por cualquier sistema o programa. Estos caracteres se representan con una combinación de 7 bits,

fueron creado por la organización ANSI (American Nacional Standards Institute) en un documento llamado ASCII (American Standard Code for Interchange). Es una tabla de correspondencia que asocia combinaciones de 7 bits a una determinado caracter.

Bases de Datos / Modelo Relacional

Desde romsolutions.es s dejamos este post con los tipos de relaciones en Bases de datos relacionales.

Model relacional

TREBALLADOR (dni, nom, cognom, …);

NomdeRelació(clau, atribut1, atribut2, atributn);

Relació 1-N

Relacio1n.png

DEPARTAMENT (id, nom, descripció);

TREBALLADOR(dni, nom, cognom, sou, iddepartament);

{iddepartament} REFERENCE DEPARTAMENT (id);

En la relació 1-N agafen la clau del 1 i fen referencia en la taula N

Relació M-N

Relaciomn.png

PIZZA (id, nom, preu);

INGREDIENTE (nom, descripció);

CONTE (pizza, ingrediente, quantitat),

{pizza} REFERENCE PIZZA (id),

{ingrediente} REFERENCE INGREDIENTE (nom);

En la relación M-N creamos una tabla con la relación que hay entre las entidades.

Relación 1-1

Relacion11.png

VEHICLE (matrícula, model);

COMERCIAL (dni, nom, cognom, vehicle),

{vehicle} REFERENCE VEHICLE (matrícula);

Nos fijaremos en la obligación de la relación para definir las referencias.

Entitats reflexivas (1-n i n-m)

Relacion-reflexivas.png

Reflexiva 1-n

TREBALLADOR (dni, nom, cognoms, cap),

{cap} REFERENCE TREBALLADOR (dni);

Reflexiva n-m

PERSONA (dni, nom, cognoms);

CASADO (dni1, dni2),

{dni1} REFERENCE PERSONA (dni),

{dni2} REFERENCE PERSONA (dni);

Relación con hereditaria

Relacio-hereditaria.png

VEHICLE (matrícula, model);

MOTO (matrícula, sidecar),

{matrícula} REFERENCE VEHICLE(matrícula);

COCHE (matrícula, plazas),

{matrícula} REFERENCE VEHICLE (matrícula);

Entidad Débil

Relaciodebil.png

POSICIO (nom);

EQUIP (id, nom, fundacio);

JUGADORS(equip,dorsal, nom, posició),

{equip} REFERENCES EQUIP (id),

{posicio} REFERENCES POSICIO (nom);

Entitats ternaries

Sempre farem de la relació una entitat o tabla en la que inclouren les altres claus primarias més els atributs de la relació. Seguirem aquestes regles:

  • N:M:P. Les tres son clau primaria
  • N:M:1. Agafen con a clau N i M.
  • N:1:1. Agafen N amb qualsevol 1 // Dos solucions posibles.
  • 1:1:1. Hi ha tres posibilitats, sempre agafen dos claus per formar una.

Virtualización OpenVZ

El OpenVZ es un proyecto de virtualización basado en containers. OpenVz crea containers (también llamados Ves o VPSs) que son entidades independientes y que pueden poseer su propia IP , recursos, usuarios, etc… es decir es en si mismo un sistema independiente. El proyecto es la base de la versión comercial Parallels Virtuozo. Para más info: wiki.openvz.org

Instalación CentOs

La instalación del Openvz se puede realizar mediante repositorio:
cd /etc/yum.repos.d wget http.//download.openvz.org/openvz.repo rpm –import http://download.openvz.org/RPM-GPG-Key-OpenVZ

Una instalado el repositorio ya se puede instalar mediante yum el kernel necesario para ejecutar el openvz

  • yum install ovzkernel

Configuración

Configurar parametros del sistema operativo: (editar fichero sysctl.conf)
# On Hardware Node we generally need packet
forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0
# Enables source route verification net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key kernel.sysrq = 1
# We do not want all our interfaces to send redirects net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0

Y por último desactivar el selinux, en el fichero /etc/sysconfig/selinux realizar el siguiente cambio
SELINUX=disabled Reiniciar la máquina y cargar la opción con el ovzkernel.

Creación máquinas

Para la gestión de los containers es necesaria la instalación del vzctl
yum install vzctl vzquota

Arrancar el servicio
/sbin/service vz start

Antes de la creación de cualquier container tenemos que bajarnos los templates o crear uno especifico, para comenzar nos bajaremos un template ya creado.. Podemos bajar templates ya creados desde la siguiente dirección: [1]

Una vez ya tengamos los templates crearemos el container usando nuestro template:
vzctl create 1001 –ostemplate nombre_template

configurar los parametros del container
vzctl set –ipadd ipaddr –nameserver nameserverIP –hostname hostname –save

En este punto ya deberíamos ser capaces de arrancar la máquina
vzctl start vpsid

Para consultar los recursos que esta consumiendo
vzcalc -v vpsid

Para indicar que el container se inicie en el arranque:
vzctl set vpsid –onboot yes –save

Podemos realizar cambios del resto de parametros de la configuración de igual manera:
vzctl set vpsid –vmguarpages $((256 * 256)) –save

Toda la configuración se almacena en /etc/vz/conf/container_id.conf , así que ante grandes cambios se puede modificar directamente el fichero de configuración y el comando vzcfgvalidate para validar si el fichero de configuración es correcto.

Uso de Containers

Si en un momento dado necesitamos entrar en la máquina, lo haremos de la siguiente manera:
vzctl enter vpid

De esta forma entraremos directamente en la máquina como usuario root y sin que nos pida el password, realizaremos el trabajo que tengamos que hacer dentro de la máquina y saldremos de esta con un simple exit. Si lo que queremos es resetear el password, igual que con los cambios de configuración usaremos el vzctl
vzctl set vpsid –userpasswd user:passwd

Por último, si no queremos entrar,si no que simplemente queremos ejecutar un comando dentro de la maquina:
vzctl exec vpsid apt-get upgrade

Borrado de Containers

La última gestión que podemos realizar sobre el container es la eliminación del container, cuando se realiza no pide confirmación y elimina el container y todo el contenido, así que mejor pensárselo dos veces antes de dar al enter. Para eliminar un container lo que tenemos que hacer es llamar a vzctl con el parámetro destroy y el id del container.
vzctl destroy veid

PreProcesado de Datos

Introducción

Tenemos una serie de datos, ya observados, la idea es suministrar estos datos al machine-learning y la máquina va intentar aprender rasgos y patrones a partir de las variables independientes de las distintas categorías y los rasgos númericos que definen las observaciones de nuestros usuarios, para intentar definir una variable dependiente.

Notas Python y R

  • Cambiar formato decimales en spider por 0f, si no obtendremos los números en anotación científica.
  • Python inicia a contar desde 0
  • R inicia a contar desde 1

Variables Machine Learning

  • Variables independientes → Son las variables que le daremos al algoritmo para intentar predecir.
  • Variables dependientes → Es la variable que queremos predecir.

Datos Desconocidos

Cuando nos encontramos con ausencia de valores podemos optar por introducir la media o la moda de dicha columna, siempre será mejor esto que poner ese valor a 0.

Datos Categóricos

Se tratan de esos valores que su columna en vez de tener una númerico contiene un valor para catalogar o clasificar un usuario.

  • Variable dummy → traducir una variable a variable categorica sin orden. La variable dummy clasificada en activa o no activa.

Es decir tener una columna con Provincias, 3 en este ejemplo (Cataluña,Valencia y Madrid), si lo hiciéramos como una variable ordinal o categórica el resultado no sería correcto, ya que el valor de los números tendría un efecto que no queremos en nuestro algoritmo, el 1 va antes que el 2. Que hace nuestra variable dummy, crea una tabla con las columnas según este ejemplo tres, en cada fila obtendremos un 1 en la provincia que pertenezca a dicha fila y un 0 para el resto. De esta forma nos olvidamos de los valores ordinales obteniendo un resultado más óptimo en  nuestro algoritmo de machine-learning.

Set de entrenamiento y Set de Test

Hover fitting → problema que hay que intentar evitar. El algoritmo de machine-learning no tiene comparaciones suficientes y aprende los datos de memoria

  • 70% o 80% para entrenamiento
  • 20% 0 30% para testing

Escalado de datos

Diferencias de rango de valores, ejemplo edad(27) y salarios(51000). El efecto de la edad pasaría inadvertido en nuestro algoritmo de machine learning.
Si tenemos una variable cuyo rango de valor es muy superior a las otras, podría ser un problema porque las variables de menor rango podrían pasar inadvertidas o no tener importancia.

  • Normalización de valores menor valor -1 mayor valor 1: Standarización o Normalización
  • Standarización → Permite aglutinar valores en torno a la media
  • Normalización → El más pequeño es 0 el mayor es 1

Normalizacion.png

Seguridad informática, cositas que todas deberíamos conocer

En RomSolutions creemos firmemente que la mejor forma de mantener nuestros servicios, correos y comunicaciones seguras es la formación y el conocimiento. Por eso en esta entrada os dejamos con algunas cositas que todo el mundo debería saber hoy en día.

Fundamentos en lo que se basa la ingeniería social.

  • A todos nos gusta ayudar a los otros.
  • No nos gusta crear problemas a decir que no.
  • La primera impresión hacia la otra persona siempre es de confianza.
  • A todo el mundo le gusta que lo avalen.

Falsas alarmas (HOAX)

  • El objetivo principal de las HOAX es conseguir tantas direcciones electrónicas como sea posible.
  • La publicidad fraudulenta por medio de mensajería instantánea se llama SPIM,es decir, el ‘SPAM’ en servicios como WhatsApp, Telegram, Facebook Messenger o Signal.

 Medidas ha seguir para protegerse de la pesca (phishing)

  • Ante cualquier duda lo primero que se ha de hacer es mirar la procedencia del correo, esto es un claro indicador ya que normalmente suelen usar correos extraños y dinámicos.
  • No hacer caso de ningún correo electrónico que pida datos personales.
  • No acceder nunca a la web de banco a través de enlaces de correo.
  • Utilizar filtros de correo.

Medidas para minimizar los efectos del correo basura:

  • NO contestar nunca los correos basura.
  • No pulsar sobre la imagen de los correos basura.
  • Tener cuidado de dar la dirección de correo.
  • Utilizar diferentes cuentas de correo.
  • Utilizar una dirección poco identificable.
  • No publicar la dirección de correo.

Correo basura (spam) es el nombre genérico que se le da a cualquier tipo de comunicación no deseada y realizada de manera electrónica.

Un detector (Sniffer) es cualquier programa que permita la monitorización y el análisis de paquetes de información que circulan por una red.

Dos estrategias que se siguen para evitar notificaciones masivas:

  • Establecer dependencias entre los servicios.
  • Establecer un servicio que indica si el equipo esta activo.

Es recomendable firmar electrónicamente los ficheros de registro de las aplicaciones para detectar la manipulación.