Programación II Ing. Diego J. Arcusin [email protected] 7 – Unix e Internet.

21
Programación II Ing. Diego J. Arcusin [email protected] 7 – Unix e Internet

Transcript of Programación II Ing. Diego J. Arcusin [email protected] 7 – Unix e Internet.

Page 1: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Programación II

Ing. Diego J. Arcusin [email protected]

7 – Unix e Internet

Page 2: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Introducción

UNIX ocupa un lugar especial en el mundo de las redes en

general, y en el mundo de Internet en particular, porque la mayoría

de los protocolos de Internet se implementaron inicialmente en

plataformas UNIX. Además, la mayoría de los servicios de Internet se proporcionan

aún mediante servicios que se ejecutan en computadores

basados en UNIX.

Page 3: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Redes de Computadores e Internet

Cuando se conectan entre si 2 o más recursos de Hardware

(computadoras, impresoras, etc.) se forma una red de computadores. Cada recurso de Hardware presente en una red recibe el nombre de

“host”. A una red que conecta entre si a varias redes, se la llama “interred”

(internetwork). Las redes de una interred se conectan entre sí a través de

computadores especiales que se denominan routers (encaminadores) o

pasarelas (gateways). Internet es una interred formada por cientos de miles de redes. No todas las redes están conectadas directamente. Dos redes pueden estar conectadas a través de múltiples rutas.

Page 4: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Fundamentos de la Redes

Razones para utilizar redes de computadores: Compartir recursos de computación. Como medio de comunicación (barato, rápido y seguro) Eficiencia de costos de procesamiento. Por el mismo precio se

obtiene más potencia de cálculo con una red de estaciones de

trabajo que con un minicomputador o un mainframe. Mayor disponibilidad. Si se utiliza un único minicomputador o un

mainframe, todos los trabajos se detienen si algo falla en el

computador. En una red, si uno de los computadores sufre un

fallo, el resto de los equipos de la red sigue funcionando y

permite seguir trabajando.

Page 5: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Algunos aspectos para el diseño e implementación de redes: El tipo de medio físico de comunicación o canal de comunicación. La topología de la red, esto es, la disposición física de los elementos de la red (Por

ejemplo: bus, anillo, etc.) Los protocolos (conjuntos de reglas) que se utilizan para permitir que un

elemento de una red acceda al medio físico antes de iniciar la transmisión de

datos. Los protocolos que se utilizan para rutear los datos de las aplicaciones (por

ejemplo una página web) desde un elemento de una LAN a otro, o de un elemento

de una red a un elemento de otra red en una interred. Los protocolos utilizados para el transporte de datos entre un proceso de un host

y un proceso de otro host. Los protocolos utilizados por el software para proporcionar aplicaciones

específicas, tales como telnet o ftp.

Modelos de Red

Page 6: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Modelos de Red (cont.)

7 Aplicación

6 Presentación

5 Sesión

4 Transporte

3 Red

2 Enlace de Datos

1 Física

5 Aplicación

4 Transporte

3 Red

2 Enlace

1 Dispositivo / Física

Modelo OSI Modelo TCP/IP

Page 7: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Los protocolos TCP/IP

5 Aplicación http, telnet, smtp, ftp, ping, time, etc.

4 Transporte TCP, UDP, Sockets puros

3 Red IPv4, IPv6, ICMP, IGMP

2 Enlace Ethernet, Token Ring, ATM, etc.

1 Física Dispositivo / Física

La mayoría de estos protocolos quedan fuera del alcance de este

curso. Sólo trataremos brevemente los temas más relevantes.

Page 8: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

La función de la capa de transporte es transmitir datos de aplicación desde

nuestro computador a otro computador remoto y viceversa. Este servicio de entrega puede ser sencillo, limitándose a “hacer lo posible”, pero

sin garantizar la entrega de los datos (servicio UDP), o puede ser del tipo que

garantiza una “entrega segura y ordenada” de los datos de aplicación (servicio

TCP) Como es posible que múltiples procesos de cliente y de servidor estén utilizando

TCP y/o UDP simultáneamente, estos protocolos identifican a cada proceso que se

ejecuta mediante un entero positivo de 16 bits (entre 0 y 65.535) que se denomina

número de puerto. Los números de puerto del 0 al 1.023 son los que se denominan puertos

conocidos y están controlados por la Internet Assigned Numbers Authority.

(IANA). Los servicios conocidos (como ftp y telnet) reciben puertos que se

encuentran dentro del rango de puertos conocidos.

TCP y UDP

Page 9: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

La capa de red tiene la responsabilidad de rutear los datos hacia el elemento de

destino. El protocolo IP transporta paquetes de TCP o de UDP que contienen datos de

aplicación en sus propios paquetes llamados Datagramas IP. El algoritmo de ruteo es del tipo “hacer lo posible”. La versión actual de IP es IPv4. La nueva versión IPv6 aún no está disponible en la

mayoría de los sistema operativos. La descripción de los algoritmos de ruteo está fuera del alcance de esta materia, pero

describiremos un componente clave. El método de direccionamiento (denominación)

de IP. Esta es La clave del ruteo, y es la asignación exclusiva para todos y cada uno

de los hosts de Internet. Esto se hace identificando de forma exclusiva la red en que

se encuentra e identificando después de forma exclusiva al host dentro de esa red. El ID (un entero positivo de 32 bits en IPv4 y un entero positivo de 128 bits en IPv6)

se denomina dirección IP del Host.

Ruteado de Datos (El protocolo IP)

Page 10: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Todo datagrama IP contiene en su interior la dirección IP del remitente y

la del destinatario. La dirección IP del remitente permite al receptor identificar al remitente y

responderle. Los hosts y los routers llevan a cabo el enrutamiento examinando la

dirección IP del destinatario presente en los datagramas IP. En IPv4 la dirección IP está dividida en tres campos:

La clase de dirección, ID de red, ID de elemento.

La clase de dirección identifica el número de bits que se utilizan en los

campos de ID de red e ID de elemento. Este método da lugar a cinco

clases de dirección: A, B, C, D y E.

Direcciones IP

Page 11: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Clases de Direcciones IP

ID de HostID de RedOClase A:31 24 23 16 15 8 7 0

ID de HostID de Red1Clase B:31 24 23 16 15 8 7 0

O

ID de HostID de Red1Clase C:31 24 23 16 15 8 7 0

1 O

Dirección multidifusión (Broadcast)1Clase D:31 24 23 16 15 8 7 0

1 1 O

Reservado para uso futuro1Clase E:31 24 23 16 15 8 7 0

1 1 1 O

Page 12: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Si bien, los hosts y los routers procesan las direcciones IPv4 como números binarios de 32 bits, las mismas se suelen dar (en el mundo humano) en la forma de notación decimal separada por puntos. En esta notación, los 4 bytes de la dirección IP se escriben en forma de su equivalente decimal y se separan mediante puntos.

Por ejemplo:11000000 01100110 00001010 00010101

Se podría escribir de la forma:192.102.10.21

Direcciones IP (Notación Decimal)

Page 13: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Las personas prefieren utilizan nombres simbólicos en lugar de direcciones numéricas. Los nombres son más fáciles de recordar, especialmente con la transición a direcciones de 128 bits en IPv6.

Además, los nombres pueden permanecer igual aunque cambien las direcciones numéricas.

Al igual que la dirección IP, el nombre simbólico de un elemento de internet tiene que ser único.

Internet permite usar nombres simbólicos dentro de un esquema jerárquico de nominación. Los nombres simbólicos tienen el formato siguiente:

nombre_host.nombre_donminio En donde “nombre_dominio” es el nombre simbólico que alude al lugar del

host y que es asignado por parte del Network Information Center (NIC). El nombre_dominio consta de de dos (o más) cadenas separadas mediante un punto (.)

Nombres simbólicos

Page 14: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Como el software de Internet emplea direcciones IP y las personas prefieren utilizar

nombres simbólicos, el software de aplicación traduce los nombres simbólicos a

direcciones de Internet equivalentes. Esta traducción implica el uso de un servicio que

proporciona Internet y que recibe el nombre de “Sistema de Nombres de Dominio” (DNS). El DNS implementa una base de datos distribuida formada por relaciones de nombres y

direcciones. Existe un conjunto de computadores dedicados en los que es ejecutan procesos

servidores denominados “servidores de nombres” que admiten solicitudes del software

de aplicación y cooperan para hacer relacionar los nombres de dominio con las

direcciones IP correspondientes. Todas las organizaciones tienen al menos un servidor de nombres que normalmente es el

programa BIND (Berkley Internet Name Domain). Las aplicaciones emplean funciones de

resolución tales cómo: gethostbyname gethostbyaddr

Servidores de nombres

Page 15: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Un método alternativo (ya antiguo), para utilizar los servicios de DNS consiste en emplear un archivo estático de hosts. Normalmente /etc/hosts.

Este archivo contiene los nombres de dominios y sus direcciones IP, uno por línea.

Este método presenta dos problemas: Su implementación (y actualización) depende de la forma en que el administrador

configure el sistema. El tamaño de Internet, y su velocidad de crecimiento harían que al archivo de

nombres fuera inmenso. El comando “ifconfig” permite visualizar la dirección IP y otras informaciones

relativas a la interfaz de nuestro computador con la red. El comando “nslookup” sirve para encontrar la dirección IP de un computador

cuyo nombre se le pasa como parámetro.

Servidores de nombres (Cont.)

Page 16: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Los servicios de Internet están implementados empleando un paradigma en el cuál el software de los servicios está fragmentado en dos partes.

La parte que se ejecuta en el computador al que está conectado el usuario que invoca la aplicación, se denomina “Cliente”.

La parte que normalmente empieza a ejecutarse cuando arranca el computador se denomina “Servidor”.

Por una parte, el servidor está en marcha indefinidamente, esperando a que llegue la solicitud de un cliente. Al recibir una solicitud, el servidor sirve la solicitud del cliente y espera la llegada de una nueva solicitud. Por otra parte, el cliente sólo empieza a funcionar cuando un usuario ejecuta el programa para emplear uno de los servicios que ofrece el servidor.

El Modelo Cliente - Servidor

Page 17: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Los comandos “hostname” y “uname” permiten ver el nombre del host al que estamos conectados.

Los comandos “rwho” y “rusers” permiten visualizar información relativa a los usuarios que están utilizando actualmente hosts en nuestra red.

El comando “ruptime” permite visualizar el estado de todos los hostos conectados a nuestra LAN.

El comando “ping” permite combrobar el estado de una red o de un host en particular. Para esto envía un datagrama IP al Host para comprobar si se encuentra en la red.

El comando “finger” permite visualizar información relativa a los usuarios de un host local o remoto.

El comando “talk” permite comunicarnos interactivamente (chatear) con un usuario de nuestro propio host o de algún host remoto.

El comando “traceroute” sirve para mostrar la ruta (los nombres de los routers que hay en la ruta) entre nuestro host y un host remoto. Además, nos da una idea de la rapidez de la ruta.

Para más información sobre estos comandos dirijase a las páginas de manual de los mismos.

Software de Aplicación

Page 18: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

El protocolo Telnet tiene como objetivo permitirnos establecer conexiones con hosts remotos a través de una red.

Este protocolo no sólo permite conectarse a hosts basados en UNIX, sino a cualquier host que soporte este protocolo y tenga un servicio telnet en funcionamiento.

Una vez establecida la conexión, nuestra terminal actúa como si fuese una terminal conectada al host remoto.

El puerto conocido para el servicio telnet es el número 23. El comando UNIX para ejecutar un cliente telnet es “telnet”. El cliente telnet funciona en 2 modos: En modo de entrada y en modo de órdenes. Cuando el comando se ejecuta sin parámetros, el cliente entra en modo de órdenes,

y muestra un prompt del tipo “telnet>”. Cuando se ejecuta con un argumento, el cliente muestra el indicador “login:” para

que ingresemos nuestro usuario. Otro comando para establecer una conexión remota con otro UNIX es el comando

rlogin

Conexión Remota

Page 19: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

El comando ftp (File transfer program) permite transferir archivos desde y hacia un host remoto.

Cuando se ejecuta el comando ftp, empieza a ejecutarse en nuestro host un cliente ftp, que intenta establecer una conexión con el servidor ftp que se ejecuta en el host remoto. Una vez establecida la conexión ftp, se pueden ejecutar varias órdenes para hacer un uso efectivo de esta utilidad (Por ejemplo descargar o levantar archivos). Sin embargo, es preciso disponer de los permisos de acceso adecuados para poder transferir archivos al sitio remoto.

La mayoría de los sitios requieren que tengamos un usuario / password válido para establecer la conexión, aunque también existen sistemas que permiten un acceso del tipo “anónimo”.

Transferencia de Archivos

Page 20: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Se puede utilizar el comando rsh (Shell Remoto) para ejecutar un comando en un host remoto de nuestra red local.

Esta orden ofrece una forma más rápida de ejecutar comandos que estableciendo una sesión remota.

El comando rcp (copia remota) permite la copia desde y hacia un host remoto.

Existen versiones seguras de los comandos rlogin, rsh y rcp. Estas son slogin, ssh y scp que implementan mecanismos de encripción para la transmisión de datos entre cliente y servidor.

Ejecución Remota de Comandos

Page 21: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 7 – Unix e Internet.

Preguntas

?