Title: Presentaci
17 Unix e Internet
Programación II
Ing. Diego J. Arcusin info_at_digikol.com.ar
2Introducció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.
3Redes 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.
4Fundamentos 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.
5Modelos de Red
- 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.
6Modelos de Red (cont.)
Modelo OSI
Modelo TCP/IP
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
7Los 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.
8TCP y UDP
- 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.
9Ruteado de Datos (El protocolo IP)
- 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.
10Direcciones IP
- 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.
11Clases de Direcciones IP
31
24
23
16
15
8
7
0
Clase A
ID de Host
ID de Red
O
31
24
23
16
15
8
7
0
Clase B
ID de Host
ID de Red
1
O
31
24
23
16
15
8
7
0
Clase C
ID de Host
ID de Red
1
1
O
31
24
23
16
15
8
7
0
Clase D
Dirección multidifusión (Broadcast)
1
1
1
O
31
24
23
16
15
8
7
0
Clase E
Reservado para uso futuro
1
1
1
1
O
12Direcciones IP (Notación Decimal)
- 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
13Nombres simbólicos
- 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 (.)
14Servidores de nombres
- 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
15Servidores de nombres (Cont.)
- 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.
16El Modelo Cliente - Servidor
- 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.
17Software de Aplicación
- 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.
18Conexión Remota
- 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 telnetgt. - 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
19Transferencia de Archivos
- 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.
20Ejecución Remota de Comandos
- 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.
21Preguntas