7
« en: Julio 26, 2005, 11:17:14 am »
POR FAVOR SI TIENES MANUALES DE CUALQUIER PROGRAMA COLOCALOS AQUI ME GUSTARIA CONOCER PROGRAMAS RAROS Y MUY BUENOS AL IGUAL YO TENGO ALGUNOS Y LOS PASARE POR LO MIENTRAS HAY LES DEJO UNO ..
BYE JAEC EKR
Arquitectura TCP/IP
.
INDICE:
1º Protocolo IP
Introducción
El protocolo IP
Direccionamiento IP
Protocolos de Ruteo nivel IP
Protocolos de Resolución de direciones
Mensajes de error y control en IP (ICMP)
Protocolo de datagrama de Usuario (UDP)
2º Protocolo de control de transmisión TCP
Servicio de Transporte de flujo confiable
Puertos, conexiones y puntos extremos
3º La interfaz de socket
La paradigma de E/S de UNIX y de la red
La abstracción de socket
4ºSistema de nombre de dominio (DNS)
Introducción
Resolución de nombres
1º
IP
(Protocolo de internet)
- Introducción:
Hoy en día podemos decir que la arquitectura TCP/IP es sobre la que se sustenta el 90% de las redes actuales.
Los principios de la arquitectura TCP/IP se encuentran ARPANET(red de comunicaciones militar del gobierno de los EE.UU.), y con la expansión de Internet como un "juego" para la gran mayoría de la sociedad se ha convertido en el negocio más rentable de hoy en día, lo que explica su gran expansión actual.
Antes de continuar debemos definir las diferentes capas que componen la arquitectura TCP/IP, que consta de 4 niveles:
1º Subred (enlace y físico)
2 º Interred (red IP)
3º Protocolo proveedor de servicios ( Transporte TCP o UDP)
4º Nivel de aplicación
* Protocol internet - IP
El protocolo IP es la parte integral del TCP/IP, este protocolo IP se encarga del direccionamiento de los datagramas de información, y la administración del proceso de fragmentación y desfragmentación de dichos datagramas. Debemos definir el concepto de datagrama como la unidad de transferencia que el Ip utiliza, siendo utilizada también como datagrama IP.
Las características de este protocolo son las siguientes:
*No orientado a conexión
*Transmisión en unidades denominadas datagramas
*No hay corrección de errores ni control de congestión
*No está garantizada la entrega en secuencia.
*No está garantizada la entrega única.
La entrega del datagrama en Ip no está garantiza porque éste se puede retrasar, enrutar o mutilar al dividir y reensemblar los fragmentos del mensaje.
En cuanto al ruteo (encaminamiento) este puede ser:
*Paso a paso a todos los nodos.
*Mediante tablas de rutas estáticas o dinámicas.
* Direcciomiento IP
La dirección que utiliza el TCP/IP es de 32 bits y ésta sirve para identificar una maquina y la red a la cual está conectada. El encargado de asignar las direcciones IP es el NIC (centro de información de Red).
Existen diferentes formatos para la dirección IP, la elección de uno o de otro, dependerá del tamaño de la red. Los cuatro formatos son los siguientes:
Clase A Red(7 bits) Dirección local (24 bits)
Clase B Red(14 bits) Dirección local (16 bits)
Clase C Red(21 bits) Dirección local (8 bits)
Clase D Dirección de difusión múltiple (28 bits)
Cada dirección esta formada por un par (red), y Dir. Local en donde se identifica la red y el host dentro de la red.
Para identificar la clase se utilizan los 3 primeros bits de orden más alto.
Las direcciones de Clase A corresponden a redes grandes que permiten 1.6 millones de hosts. Las de Clase B permite tener 12320 redes con 65024 hosts en cada una. Las de Clase C permite 2 millones de redes con 254 hosts cada una y por ultimo las de Clase D se utiliza para la multidifusión. Para que no se diga que queda incompleto....... os menciono que existe otra Clase más y esta es la Clase E.
Bueno ahora os voy explicar lo que pasa por ejemplo en los cybers donde existen redes internas...... como todos sabemos. Cada máquina tiene una dirección ip, y a partir de esta una la red determina si los datos se enviaran a través de una compuerta (GTW, ROUTER).
* Protocolos de Ruteo
¿Cómo pueden los routers en un sistema autónomo aprender acerca de redes dentro del sistema y redes externas?
En internet en la cual existen varias rutas físicas, los administradores por lo general selecionan una de ellas como ruta primaria. Los ruteadores interiores normalmente se comunican con otros y intercambian información de accesibilidad a red o información de ruteo de red a partir se puede deducir la accesibilidad.
Protocolo de información de ruteo
Entre los I.G.P. (Interior Gateway Protocol) mas usados esta el RIP, comunmente conocido como ROUTED. Este protocolo RIP es consecuencia directa de la implantación del ruteo de vector-distancia para redes locales. Divide las maquinas en activas y pasivas. Los routers activos anuncian sus rutas a los otros; las maquinas pasivas listan y actualizan sus rutas en base a estos anuncios. Sólo un router puede correr RIP en modo activo de modo que un anfitrión deberá correr el RIP en modo pasivo. Un router con RIP en activo difunde un mensaje cada 30 segundos, esta información contiene datos tomados de la base de datos actualizada. Cada mensaje consiste en pares, donde cada par contiene una dirección IP y un entero que representa la distancia hacia esta red.
El RIP por tanto hace uso de un vector de distancias, con métrica por número de saltos donde se considera que 16 saltos o más es infinito. De esta manera, el número de saltos o el contador de saltos a lo largo de una trayectoria desde una fuente dada hacia un destino dado hace referencia al número de routers que un datagrama encontrará a lo largo de su trayectoria. Por tanto lo que se hace es utilizar el conteo de saltos para calcular la trayectoria óptima. Ahora deberíamos hablar de los errores que se maneja el RIP que son ocasionados por algoritmos subyacentes.... pero esto ya os lo dejo por vuestra cuenta....
- Protocolos de resolución de direcciones.
Existen dos tipos de direcciones, las dir. Físicas (MAC) y las direcciones IP. El problema está en la transfomación necesaria de estas direcciones, y en este problema de asociación de direcciones en TCP/IP para redes como Ethernet, se utiliza un protocolo de bajo nivel para asignar direciones en forma dinámica y evitar la utilización de una tabla de conversiones. Este protocolo se denomina ARP. Y permite que un anfitrión encuentre la dirección física de otro anfitrión dentro de la misma red física con solo proporcionar la dirección IP de su objetivo. Si nos situamos en el caso contrario, en el que una máquina debe contactar con el servidor para conseguir su dirección IP antes de que se pueda comunicar por TCP/IP, entonces el encargado de esta tarea es el RARP que utiliza el direccionamiento físico de red para obtener la dirección IP de la máquina.
* ICMP
Si un router no puede entregar o rutear un datagrama , o si el router detecta una condición anormal que afecte su capacidad para direccionarlo, necesita informar a la fuente original para que evite o corrija el problema. Para hacer esta tarea se agrego al protocolo TCP/IP un mecanismo de mensajes de propósito especial, el Protocolo de Mensajes de Control Internet es decir ICMP. Este permite que los routers envíen mensajes de error de control hacia otros routers o anfitriones. Así cuando un datagrama causa un error, el ICMP sólo puede reportar la condición del error a la fuente original del datagrama y esta debe corregirlo.
Formato de los mensajes ICMP:
Debo aclarar que cada ICMP tiene un formato propio y diferente, pero todos constan de tres campos, un campo TIPO de mensaje, que identifica el mensaje ; un campo CODIGO que proporciona más información sobre el tipo de mensaje; y por último un campo SUMA DE VERIFICACION. Para el que no lo sepa los ICMP que reportan errores siempre incluyen el encabezado y los primeros 64 bits de datos del datagrama que causo el error, para que el receptor determine con mayor rapidez la causa del error.
Tipos de TYPE:
Campo TYPE Tipo de Mensaje ICMP
0 Respuesta de ECO
3 Destino inaccesible
4 Disminución de origen
5 Redirecionar
8 Solicitud ECO(PING)
11 Tiempo excedido para un datagrama
12 Problemas de parámetros de un datagrama
13 Solicitud de TIMESTAMP
14 Respuesta de " " " "
15 Solicitud de información
16 Respuesta de información
17 Solicitud de Máscara
18 Respuesta de Máscara
-UDP
Empecemos por imaginar que cada máquina contiene un grupo puertos de destino que son abstractos y que se llaman puertos de protocólo. Cada uno de estos puertos se identifica por medio de un número entero positivo. Así para comunicarse con un puerto de protocolo del destino la máquina necesita saber la dirección IP y el número entero del puerto de protocolo dentro de la maquina destino. Y he aquí donde entran los UDP, los cuales contienen la información del puerto de protocolo de la maquina que envía y del puerto de protocolo de la maquina que recibe, y asi la información llega a su destino exacto. Sin entrar en detalles os informaré que los paquetes UDP se pueden perder, duplicar o llegar sin orden y tan rápidos como puedan, y así poder llegar a una velocidad más rapida de la que el receptor pueda procesar.... con esto os explicareis muchas cosas aquellos que utilizáis "NUKES" y en realidad no sabeis lo que utilizáis, valga la redundancia.
Formato UDP:
Los mensajes UDP constan de un encabezado UDP y un área de datos UDO. El encabezado se divide en 4 campos de 16 bits, que especifican el puerto desde el que se envió el mensaje, el puerto para el que se destina, la longitud del mensaje y una suma de verificación UDP.
2º
TCP
* Servicio de transporte de flujo confiable.
A continuación vamos a ver el servicio más importante y mejor conocido a nivel de transporte, la entrega de flujo confiable y el Protocolo de Control de Transmisión.
Podemos decir que al nivel más bajo la red o las redes nos pueden proporcionar una entrega de paquetes no confiable, los paquetes se pueden extraviar o destruir a causa de errores. En muchas ocasiones en un nivel más alto, los programas de aplicación necesitan enviar gran cantidad de datos desde una maquina a otra, en estos casos utilizar un sistema de entrega no confiable sería una opción penosa..... por lo cual el TCP se ha convertido en el protocolo general y ideal para estos casos.
Encontramos 5 funciones o características del TCP:
* Servicio Orientado a conexión: El servicio de entrega de flujo en la maquina destino pasa al receptor exactamente las misma secuencia de bytes que pasa el transmisor en la máquina origen.* Antes de que se comuniquen los dos extremos se requiere negociar una conexión*
* Conexión de Circuito Virtual: Durante la transferencia, el software de protocolo en las dos maquinas continúa comunicándose para verificar que los datos se reciban correctamente.*El servicio emula una conexión dedicada punto a punto es decir los paquetes llegan en el mismo orden, sin duplicados..........*
* Transferencia con memoria intermedia: Los programas de aplicación de datos envían a través el circuito virtual pasando respectivamente bytes de datos al software de protocolo. Al transferirse datos cada aplicación utiliza piezas del tamaño que encuentre adecuado, así el protocolo los entrega a la otra aplicación en el orden que le fueron entregados y nada más que el receptor los recibe se verifican. Atención, el tamaño en el que la aplicación divide los paquetes de datos.... no tiene nada que ver con la división que hace el software del protocolo, en el sentido de que el este software puede reunir varios paquetes y "juntarlos" en otro mayores formando un datagrama mayor y que el considere apropiado para enviar, hay que mencionar el push que es un mecanismo que empuja por así decirlo a los datagramas que envía el software del protocolo así como los que se reciben, y es también entra en funcionamiento cuando existe una "congestión".
* Flujo no estructurado: Posibilidad de enviar información de control de flujo junto a datos.
* Conexión Full Duplex: Existe una transferencia concurrente en ambas direcciones.
* PUERTOS, CONEXIONES Y PUNTOS EXTREMOS.
Al igual que el UDP el TCP utiliza números de puerto de protocolo para identificar el destino final dentro de una maquina. Cada puerto tiene asignado un número entero pequeño entero utilizado para identificarlo.
Vamos a pensar en un puerto como una cola de salida en la que el software de protocolo pone o coloca datagramas entrantes. En realidad el TCP utiliza la conexión no el puerto de protocolo, en donde las conexiones se identifican por puntos extremos. A continuación explicare lo que es un punto extremo. Un punto extremo e un par de números enteros(host, puerto), en la cual el host es la IP y puerto es un puerto TCP en el anfitrión. Son dos puntos extremos los que definen las conexiones, así dos conexiones pueden utilizar el mismo punto extremo, lo que es debido a que el TCP identifica una conexión por medio de un par de puntos extremos. En el TCP se combina la asignación dinámica y la estática de puertos mediante un conjunto de asignación de puertos bien conocidos para programas llamados con frecuencia, pero la salida de la mayor parte de los números disponibles para el sistema se asigna conforme los programas lo necesitan. A continuación un muestra de algunos ejemplos de puerto TCP:
DECIMAL CLAVE DESCRIPCIÓN
0 reservado
1 TCPMUX Multiplexor TCP
5 RJE Introducción de función remota
7 ECHO Eco
23 TELNET Conexión por terminal
42 NAMESERVER Nombre del host del servidor
79 FINGER Comando finger
* Debo informar al que no lo sepa, que hay CLAVE-UNIX y estas son diferentes en gran parte.
3º
SOCKET
* El paradigma de E/S de UNIX y la E/S de la RED.
Vamos a ver como la interface UNIX BSD se utiliza el TCP/IP en programación. Más en concreto el winsock proporciona la funcionalidad de socket para MsWindows. Aunque tendría que haber empezado por distinguir los protocolos de interface y el TCP/IP. En su origen las operaciones UNIX se agrupaban en un paradigma conocido como Open-Read-Write-Close que son los paradigmas que seguían los E/S de UNIX anteriormente, y una de las primera implementaciones de TCP/IP también utilizo este paradigma. El grupo que añadió los protoclos de TCP/IP al BSD decidió que, al ser los protocolos de red eran más complejos que lso dispositivos convencionales de E/S, la interacción entre los programas de usuario y de protocolos de red debian ser a su vez más compleja. Y se decidio abandonar este paradigma.
* La abstracción de Socket
En el socket se centra la base para la E/S de red en UNIX.
El socket es la generalización del mecanismo de archivos UNIX que proporciona un punto final para la comunicación.
En pocas palabras el socket es una API en la que el servidor espera en un puerto predefinido y el cliente puede utilizar sin embargo un puerto dinámico.
4º
DNS
* Resolución de nombres.
La resolución de nombres se realiza de arriba hacia abajo, empezando por el servidor de nombres raíz y posteriormente los demás que se encuentren en las diferentes ramas del árbol de la red. La utilización del sistema de nombres de dominio se puede utilizar de varia formas: una en la que contactas un servidor de nombres cada vez y otra en la que el software cliente realiza una solicitud de nombres de dominio que contiene el nombre a resolver, en donde se envía la solicitud a un servidor de nombres para su resolución.
En el momento en que un servidor de nombres de dominio recibe una solicitud del estilo mencionado anteriormente, verifica si el nombre señala un subdominio sobre el cual tenga autoridad, en este caso traduce el nombre de acuerdo con su base de datos y anexa una respuesta a la solicitud, antes de enviarla de regreso al cliente. En el caso de que el servidor de nombre no sea capaz de resolver la solicitud enviada se pondrá en contacto con otro servidor que sea capaz de resolverla para posteriormente darle respuesta al cliente.
Por [SnAkE] CiBahHaCk