TuWeb

Mi currνculum
TIPOS DE PROTOCOLO
QUE ES BLOG REDES I
¿QUE ES EL NTIC?

VIDEO "TREN LOCO"
1) ESPECTRO DE FRECUENCIA
2) COMUNICACION DIGITAL Y ANALOGICA
3) COMUNICACION SIMPLEX
4) COMUNICACION HALF DUPLEX
5) COMUNICACION FULL DUPLEX
 
TIPOS DE PROTOCOLO


TIPOS DE PROTOCOLOS

Los distintos tipos de protocolos, es decir los más importantes y métodos de ataques contra los mismos. Obviamente no vamos a analizar todos los tipos de protocolos.

QUE SE PUEDE DECIR QUE ES UN PROTOCOLO

Un protocolo son ¡una serie de reglas que utilizan dos ordenadores para comunicar entre sí. Cualquier producto que utilice un protocolo dado debería poder funcionar con otros productos que utilicen el mismo protocolo.

EL PROTOCOLO TCP/IP

El protocolo de red TCP/IP se podría definir como el conjunto de protocolos básicos de comunicación, de redes, que permite la transmisión de información en redes de ordenadores. Una conexión TCP no es más que es una corriente de bytes, no una corriente de mensajes o textos por así decirlo.

EN QUE SE UTILIZA TCP/IP

Muchas grandes redes han sido implementadas con estos protocolos, incluyendo DARPA Internet "Defense Advanced Research Projects Agency Internet", en español, Red de la Agencia de Investigación de Proyectos Avanzados de Defensa. De igual forma, una gran variedad de universidades, agencias gubernamentales y empresas de ordenadores, están conectadas mediante los protocolos TCP/IP.

Cualquier máquina de la red puede comunicarse con otra distinta y esta conectividad permite enlazar redes físicamente independientes en una red virtual llamada Internet. Las máquinas en Internet son denominadas "hosts" o nodos.
TCP/IP proporciona la base para muchos servicios útiles, incluyendo correo electrónico, transferencia de ficheros y login remoto.

El correo electrónico está diseñado para transmitir ficheros de texto pequeños. Las utilidades de transferencia sirven para transferir ficheros muy grandes que contengan programas o datos. También pueden proporcionar chequeos de seguridad controlando las transferencias.

El login remoto permite a los usuarios de un ordenador acceder a una máquina remota y llevar a cabo una sesión interactiva.


Este protocolo deja al programa de aplicación a ser explotado la resposabilidad de una transmisión fiable. Con él puede darse el caso de que los paquetes se pierdan o bien no sean reconstruidos en forma adecuada. Permite un intercambio de datagramas más directo entre aplicaciones y puede elegirse para aquellas que no demanden una gran cantidad de datagramas para operar optimamente.

Direcciones en la versión 6.

El sistema de direcciones es uno de los cambios más importantes que afectan a la versión 6 del protocolo IP, donde se han pasado de los 32 a los 128 bit (cuatro veces mayor). Estas nuevas direcciones identifican a un interfaz o conjunto de interfaces y no a un nodo, aunque como cada interfaz pertenece a un nodo, es posible referirse a éstos a través de su interfaz.

El número de direcciones diferentes que pueden utilizarse con 128 bits es enorme. Teóricamente serían 2128 direcciones posibles, siempre que no apliquemos algún formato u organización a estas direcciones. Este número es extremadamente alto, pudiendo llegar a soportar más de 665.000 trillones de direcciones distintas por cada metro cuadrado de la superficie del planeta Tierra. Según diversas fuentes consultadas, estos números una vez organizados de forma práctica y jerárquica quedarían reducidos en el peor de los casos a 1.564 direcciones por cada metro cuadrado, y siendo optimistas se podrían alcanzar entre los tres y cuatro trillones.

Existen tres tipos básicos de direcciones IPng según se utilicen para identificar a un interfaz en concreto o a un grupo de interfaces. Los bits de mayor peso de los que componen la dirección IPng son los que permiten distinguir el tipo de dirección, empleándose un número variable de bits para cada caso. Estos tres tipos de direcciones son:
Direcciones unicast: Son las direcciones dirigidas a un único interfaz de la red. Las direcciones unicast que se encuentran definidas actualmente están divididas en varios grupos. Dentro de este tipo de direcciones se encuentra también un formato especial que facilita la compatibilidad con las direcciones de la versión 4 del protocolo IP.
Direcciones anycast: Identifican a un conjunto de interfaces de la red. El paquete se enviará a un interfaz cualquiera de las que forman parte del conjunto. Estas direcciones son en realidad direcciones unicast que se encuentran asignadas a varios interfaces, los cuales necesitan ser configurados de manera especial. El formato es el mismo que el de las direcciones unicast.
Direcciones multicast: Este tipo de direcciones identifica a un conjunto de interfaces de la red, de manera que el paquete es enviado a cada una de ellos individualmente.
Las direcciones de broadcast no están implementadas en esta versión del protocolo, debido a que esta misma función puede realizarse ahora mediante el uso de las direcciones multicast.


EL PROTOCOLO ARP

El protocolo ARP (Address Resolution Protocol),

Permite realizar ciertas tareas cuyo objetivo es el asociar un dispositivo IP, que a un nivel lógico está identificado por una dirección IP, a un dispositivo de red, que a nivel físico posee una dirección física de red. Este protocolo se utiliza típicamente en dispositivos de red local, ethernet que es el entorno más extendido en la actualidad. Existe un protocolo RARP, cuya función es la inversa.

IP (Internet Protocol)

Para empezar vamos a hablar de un protocolo básico a nivel de red el protocolo IP o (Internet Protocol). El IP es un protocolo que pertenece al nivel de red, por lo tanto, es utilizado por los protocolos del nivel de transporte como TCP para encaminar los datos hacia su destino. IP tiene únicamente la misión de encaminar
el datagrama, sin comprobar la integridad de la información que contiene. Son números de 32 bits representados habitualmente en formato decimal (que varían de con valores de 255 a 0). Las direcciones ip se podría decir que son nuestro documento de identidad en la red , nos identifica a nosotros, a nuestro ISP, nuestro país de provinencia y demás datos. Un atacante podría obtener nuestra IP por muchas y diversas maneras.

Por conversaciones normales de mensajería instantánea, voz sobre IP (VoiP), logs de nuestro acceso a páginas, conexiones de distintos tipos... es decir cientos de formas distintas. Una vez el atacante allá obtenido nuestra IP se pude sacar mucha y peligrosa información de ella. Desde el país que nos conectamos hasta si buscamos páginas de datos (tipo WHOIS) la dirección a la cual esta registrada la misma línea de conexión a Internet.

El atacante puede proceder a escanear la IP en busca de puertos TCP o UPD a la escucha, para poder ejecutar acciones. Un ejemplo simple, seria el puerto 139 (conocido como NETBIOS) por el cual si la víctima tiene el puerto en escucha con solo meter su dirección de IP podrías ejecutar una shell remota e incluso tener visión y control total de su computadora. Esto hace que nos pensemos dos veces antes de navegar sin un Proxy.






CLASES DE DIRECCIONES IP

Hay cinco clases de direcciones IP:

A,B,C,D,E

Clase A

Cuando está escrito en formato binario,
el primer bit (el bit que está ubicado más a la izquierda) de la dirección Clase A siempre es 0. Un ejemplo de una dirección IP Clase A es 124.95.44.15. El primer byte, 124, identifica el número de red. Los administradores internos de la red asignan los restantes valores. Una manera fácil de reconocer si un dispositivo forma parte de una red Clase A es verificar el primer byte de su dirección IP, cuyo valor debe estar entre 0 y 126.
|número red|núm equipo|núm equipo|núm equipo|
Todas las direcciones IP Clase A utilizan solamente los primeros 8 bits para identificar la parte de red de la dirección. Los tres bytes restantes son para los equipos de la red. A cada una de las redes que utilizan una dirección IP:

Clase A se les pueden asignar hasta 2 elevado a la 24 potencia (2^24), o 16.777.214 direcciones IP posibles para los dispositivos que están conectados. Está claro que son organismos muy grandes para poder gestionar más de 16 millones de ordenadores...

Clase B

Los primeros 2 bits de una dirección Clase B siempre son 10 (uno y cero).
Un ejemplo de una dirección IP Clase B es 151.10.13.28. Los dos primeros bytes identifican el número de red. Los otros dos bytes son para numerar los equipos de la red. Una manera fácil de reconocer si un dispositivo
forma parte de una red Clase.

B es verificar el primer byte de su dirección IP. Las direcciones IP Clase
B siempre tienen valores que van del 128 al 191 en su primer byte.
|número red|núm red|núm equipo|núm equipo|
Todas las direcciones IP Clase B utilizan los primeros 16 bits para identificar la parte de red de la dirección.

Los dos bytes restantes de la dirección IP se encuentran reservados
para la porción del host de la dirección. Cada red que usa un esquema
de direccionamiento IP Clase B puede tener asignadas hasta 2 a la 16ta potencia (2^16) ó 65.534 direcciones
IP posibles a dispositivos conectados a su red.





Clase C

Los 3 primeros bits de una dirección Clase C siempre son 110 (uno, uno y cero). Un ejemplo de dirección IP Clase C es 201.110.213.28. Los tres primeros bytes identifican el número de red. Una manera fácil de reconocer
si un dispositivo forma parte de una red Clase C es verificar el primer bytes de su dirección IP. Las direcciones
IP Clase C siempre tienen valores que van del 192 al 223 en su primer bytes.
|número red|núm red|núm red|núm equipo|

CLASE D

Las direcciones de clase D se reservan
para multicasting o multidifusión, usada para direccionar grupos de hosts en un área limitada

CLASE E

Las direcciones de clase E se reservan para usos en el futuro.

El PROTOCOLO HTTP

Este protocolo esta diseñado para recuperar información y llevar a cabo búsquedas indexadas permitiendo con eficacia saltos hipertextuales, además, no solo permite la transferencia de textos HTML sino de un amplio y extensible conjunto de formatos. Funciones particulares para el caso específico de la Web, creado para que resolviese los problemas planteados por un sistema hipermedial, y sobre todo distribuido en diferentes puntos de la Red.

HTTP (HyperText Transfer Protocol, o Protocolo de Transferencia de Hipertexto).
Cada vez que se activa cumple con un proceso de cuatro etapas entre el browser y el servidor que consiste en lo siguiente:

Conexión: el browser busca el nombre de dominio o el número IP de la dirección indicada intentando hacer contacto con esa computadora,

Solicitud: el browser envía una petición al servidor (generalmente
un documento), incluyendo información sobre el método a utilizar, la versión del protocolo y algunas otras especificaciones,

Respuesta: el servidor envía un mensaje de respuesta acerca de su petición mediante códigos de estado de tres dígitos,

Desconexión: se puede iniciar por parte del usuario o por parte del servidor una vez transferido un archivo.

PROTOCOLO UDP

El protocolo UDP (User Datagram Protocol), pertenece a la familia de los protocolos TCP no es un protocolo
tan fiable como TCP. Se limita a recoger el mensaje y enviar el paquete por la red.

Para garantizar la llegada, el protocolo exige a la maquina de destino del paquete que envíe un mensaje (un eco). Si el mensaje no llega desde la maquina de destino el mensaje se envía de nuevo.UDP es un protocolo sencillo que implementa un nivel de transporte orientado a datagramas:

• NO orientado a conexión.
• NO fiable.

Los datagramas UDP se encapsulan dentro de la parte de datos de un datagrama IP. Una aplicación que utilice UDP para transmitir datos, producirá exactamente un datagrama

UDP por cada operación de salida que precise, el cual originará un datagrama IP encapsulándolo. Os preguntareis si , ¿pero porqué no es fiable UDP?. Os daré

tres razones explicitas:

• Pueden perderse datagramas,
• Pueden duplicarse datagramas,
• Pueden desordenarse datagramas.
Pero es un protocolo más ligero que TCP, y en una LAN (hay CRC y no hay encaminadores) puede compensar.

Pero recordemos que tenemos deber en cuenta la seguridad como factor principal.

PROTOCOLO ICMP

La operación de Internet es supervisada cuidadosamente por los enrutadores.

Al ocurrir algo inesperado, el ICMP (Internet Control Message Protocol, protocolo de control de mensajes de Internet), que también se usa para probar Internet, informa del suceso. Se ha definido una docena de tipo de mensajes de ICMP;

Cada tipo de mensaje de ICMP se encapsula en un paquete IP. El mensaje.
DESTINO INALCANZABLE se usa cuando la subred o un enrutador no pueden ubicar el destino, o un paquete con el bit DF no puede entregarse por que está en el camino una red de paquete pequeño. El mensaje de TIEMPO EXCEDIDO se encía cuando un paquete se descarta debido a que su contador llega a cero. Este suceso es un síntoma de que los paquetes están en ciclo, de que hay un congestionamiento enorme, o de que los valores de temporización son demasiado bajos.

El mensaje de PROBLEMA DE PARÁMETRO indica que se ha detectado
un valor ilegal en un campo de cabecera. Este problema indica una falla en el software de IP del host, o posiblemente en el software de un enrutador transmitido.

NETBIOS

NetBIOS fue desarrollado por IBM y Systek como un intento de proveer a las aplicaciones de una interfaz para acceder a los recursos de las redes locales. Al ser solo una interfaz
entre las aplicaciones y la tarjeta de red, y por tanto poder ser utilizado.

Con independencia del hardware, hizo que pronto se convirtiera en un estándar para acceder a redes (ethernet, TokenRing, redes IBM,... ).NetBIOS ha sido utilizado ampliamente
para compartir recursos de una manera simple y eficiente en redes
pequeñas. Proporcionando tanto
servicios orientados a conexión ( sesiones ) como no orientados a conexión
( datagramas ), al igual que soporta broadcast y multicast.

Posteriormente surgio NetBEUI que no es mas que una versión extendida de NetBIOS que proporciono
una capa de transporte que nunca fue estandarizada en NetBIOS.

NetBIOS puede ser utilizado en la inmensa mayoría de los sistemas
operativos de red y puede ser transportado sobre variedad de protocolos,
generalmente sobre TCP/IP (NBT), IPX,...

ALGUNOS COMANDOS NETBIOS
open host: abre una conexión al host llamado. Si el número de puerto no es especificado, telnet intenta de conectar el servidor telnet desde el puerto default. La especificación del host puede ser tanto el nombre de un host o una IP.
close: cierra una sesión TELNET y te regresa al modo de comando.
Quit: cierra cualquier sesión TELNET abierta y sale de telnet. Un fin de archivo (end-of-file) (en modo de comando) también cerrará una sesión y saldrá.
Ctrl-z: suspende telnet. Este comando sólo trabaja cuando el usuarioestá usando csh o la el ambiente de aplicación BSD versión de ksh.

Status: muestra el status actual de telnet.
Ync: envía la secuencia SYNCH TELNET. Esta secuencia causa que el sistema remoto descarte todo lo previamente tecleado como entrada, pero que todavía no haya sido leído. Esta secuencia es enviada como un dato urgente TCP. h.

TELNET: TELNET es el protocolo de conexión a otro ordenador, de hecho la mayoría de los servicios posteriores, se basan en telnet (pe. FTP, HTTP). Haciendo telnet a una máquina, ejecutas programas en ella, recibiendo tu la entrada/salida de los datos. Las direcciones

TELNET
suelen tener el formato del nombre de dominiomaquina.remota.com o de dirección IP 194.106.2.150 y pueden ir acompañadas de un número
al final (el número del puerto) si no se nos proporciona el puerto se asume que el utilizado es el correspondiente al protocolo telnet por defecto, el 23. Una dirección típica sería: maquina.remota.com 2010.
CUADRO APARTE (EXPLICACIÓN MÁS EXAUSTIVA)
Cómo se hace TELNET?:

Ejecutando un programa cliente de telnet, prácticamente cualquier sistemaoperativo lleva uno incluido de serie. Por lo tanto si nos proporcionan la dirección telnet maquina.remota.ar 2010 haríamos lo siguiente: (puede variar según sistemas):
Tecleamos en la linea de comandos

TELNET maquina.remota.ar 2010 (En otros sistemas teclearemos
TELNET y después OPEN maquina.remota.ar2010 ) con lo que veremos algo parecido a esto:

telnet MAQUINA.REMOTA.AR 2010,
• Trying 130.132.21.53 Port 2010 ...,
• Connected to MAQUINA.REMOTA.COM,
• Escape character is ...,
• Esto nos dice más o menos que está intentando conectar con la dirección, nos devuelve la dirección IP, se conecta, y nos dice cual es el caracter escape,

Una vez hemos conectado se nos pide un login y/o password para entrar a la máquina remota. En algunos casos podremos conectar
a la maquina remota con el login guest (invitado) pero la mayoría de las veces deberemos saber el login antes de conectarnos,

El siguiente paso es configurar la emulación de terminal, es decir,
decirle al sitio remoto como queremos que nos muestre los datos en nuestra pantalla. La configuración más común es la VT100, que es la estándar para las comunicaciones basadas en terminales. (algunos clientes telnet configuran ellos sólos la emulación),

El último paso (después de haber utilizado el servicio es salir como las pulsaciones de tecla no las hacemos realmente en nuestra máquina, sino en la máquina remota, necesitamos el carácter escape que se nos dio al conectar para pasar al modo comando ( habitualmente teclas control + paréntesis derecho).





PROTOCOLO SMTP

SMTP (Simple Mail Transfer Protocol) o Protocolo Simple de Transferencia de Correo Electrónico es un conjunto de reglas que rigen el formato y la transferencia de datos en un envío de Correo Electrónico ( e-mail ).

Algunas ordenes SMTP:

• HELO – Abre una sesión con el servidor,
• MAIL FROM – Indica el autor del mensaje,
• RCPT TO – Indica los destinatarios del mensaje,
• DATA – Cuerpo del mensaje, finaliza con la orden,
• . – Final del cuerpo del mensaje (orden DATA),
• QUIT – Cierra la sesión,
• POP3 (Post Office Protocol) es también un protocolo muy usado en clientes locales de correo para obtener los mensajes de correo electrónico almacenados en un servidor remoto.

Algunos comandos POP3:

• USER <nombre> Identificación de usuario (Solo se realiza una vez),
• PASS <password> Envías la clave del servidor,
• STAT Da el número de mensajes no borrados en el buzón y su longitud total,
• LIST Muestra todo los mensajes no borrados con su longitud,
• RETR <número> Solicita el envío del mensaje especificando el número (no se borra del buzón),
• TOP <número> <líneas> Muestra la cabecera y el número de líneas requerido del mensaje especificando el número,
• DELE <número> Borra el mensaje especificando el número,
• RSET Recupera los mensajes borrados (en la conexión actual),
• QUIT Salir.

LA IMPORTANCIA DE NO DEJAR HUELLAS (RECUADRO A PARTE)

Como hemos visto , navegar dejando a vista de malos ojos nuestra ip, puede ser realmente peligroso. ¿Pero para que los proxys?. Un proxy es un programa (generalizando) , dispositivo , servidor.... que realiza una tarea de acceso a Internet.

Más específicamente es un punto intermedio entre tu y el servidor de la esquina. Al navegar bajo proxy (Ip check) podemos ocultar nuestra IP y mostrar la del servidor proxy que nos conectemos.

Esto dificultara al atacante situarnos o conocer nuestro numero de IP real. También filtrar algunos contenidos potencialmente peligrosos... Hay ventajas de usar proxys , pero también hay inconvenientes la querida velocidad de navegación. Imaginemos por un momento que nos conectamos a un servidor proxy situado (o conectado) en china. La velocidad de carga de cualquier tipo se vería tremendamente reducida, al tener que pasar los datos antes por el servidor chino antes de llegar a nuestro Pc.

NUESTRA CONEXIÓN<<<>>
SERVIDOR PROXY<<<>>>SERVIDOR

Podemos encontrar servidores proxy en el mismo Internet o mediante programas
de intuitiva interfaz (véase ipmask).

PROTOCOLO FTP

Ftp (File Transfer Protocol) es un protocolo para la transferencia remota de archivos. Lo cual significa la capacidad de enviar un archivo digital de un lugar local a uno remoto o viceversa, donde el local suele ser el computador de uno y el remoto el servidor Web.

ALGUNOS COMANDOS FTP

• ascii: especifica tipo de transferencia de ficheros ASCII, en contraposición a ficheros binarios (no texto),
• binary: especifica tipo de transferencia binaria (por defecto),
• bell: le indica al sistema que ejecute un pitido (bell) cuando se finalicen la ejecución de los comandos.
Así podemos ejecutar bell, y dejar un fichero de gran tamaño descargándose, sabiendo que tras su finalización oiremos un BEEP, lo cual nos permite dejar la ventana minimizada y hacer cualquier otra tarea,
• delete y mdelete: borran uno o varios ficheros en la máquina remota,
• user y pass: especificar nuestro nuevo nombre y password.

PROTOCOLO SSH

El protocolo SSH (Secure Shell)nació para intentar que las comunicaciones en internet fuesen más seguras, esto lo consigue eliminando el envío de las contraseñas sin cifrar y mediante la encriptación de toda la información que se transmite. Se recomienda usar SSH para mantener conexiones seguras, ya que debido a las avanzadas herramientas usadas por crackers , sniffear una red se ha convertido en un juego de niños.

SOBRE EL AUTOR

Jaime Gutierrez, Español, se interesa por la seguridad en redes y la por la programación de distintas aplicaciones en JAVA o C++. Actualmente reside en Andalucía y publico en la edición pasada el articulo DDos un acoso constante.



ALGUNOS COMANDOS SSH

pwd muestra el path completo del directorio en el que se encuentra.
cd cambia de directorio, por ejemplo cd directorio/subdirectorio.
cd ~ lleva a su directorio home.
cd - lleva al último directorio en el que estuvo.
cd .. sube a un directorio superior.

CONCLUSIONES

Como hemos visto a lo largo del articulo existen cientos de protocolos, pero aquí solo nos hemos parado a analizar unos pocos. Conocer como funcionan cada uno de ellos nos ayudara a saber como funciona la NET.

Conocer como trabajan los paquetes, servidores, protocolos, mencionados es una de las bases del hacking y de la seguridad en sistemas. Hemos aprendido la teoría
que es un poco más aburrida pero en entregas próximas vamos a ver como vulnerar estos tipos de protocolos con herramientas comunes
o simplemente siendo usuarios ilegítimos. Entender como y porque, su necesidad, como se manejan y funcionan, es algo básico en este mundo.

PROTOCOLO DE TRANSFERENCIA DE ARCHIVOS
El Protocolo de Transferencia de Archivos (File Transfer Protocol, FTP) permite que un archivo de un sistema se copie a otro sistema. No es necesario que el usuario se registre como usuario completo en la máquina a la que desea tener acceso, como en el caso de Telnet, en vez de ello se puede valer del programa FTP para lograr el acceso.
PROTOCOLO SIMPLE DE TRANSFERENCIA DE CORREO.
El Protocolo Simple de Transferencia de Correo (Simple Mail Transfer Protocol, SMTP) se utiliza para transferir correo electrónico. Transparente para el usuario, SMTP conecta distintas máquinas y transferir mensajes de correo, de una manera similar a como FTP transfiere archivos.
PROTOCOLO SIMPLE DE ADMINISTRACIÓN DE RED.
El Protocolo Simple de Administración de Red (Simple Network Management Protocol, SNMP) utiliza como mecanismo de transporte el Protocolo de Datagrama de Usuario (UDP). Emplea términos diferentes de TCP/IP, como administradores y agentes en vez de clientes y servidores. Un agente proporciona información sobre un dispositivo, en tanto que el administrador se comunica a través de la red.

PROTOCOLO TRIVIAL DE TRANSFERENCIA DE ARCHIVOS.
El Protocolo Trivial de Transferencia de Archivo (Trivial File Transfer Protocol, TFTP) es un protocolo de transferencia de archivos muy sencillo, sin complicaciones, que carece totalmente de seguridad. Utiliza al UDP como transporte.
PROTOCOLO DE CONTROL DE TRANSMISIÓN.
El Protocolo de Control de Transmisión (Transmision Control Protocol, TCP) es un protocolo de comunicaciones que proporciona transferencia confiable de datos. Es responsable de ensamblar datos pasados desde aplicaciones de capas superiores a paquetes estándar y asegurarse que los datos se transfieren correctamente.
PROTOCOLO DE DATAGRAMA DE USUARIO.
El Protocolo de Datagrama de Usuario (User Datagram Protocol, UDP) es un protocolo orientado a comunicaciones sin conexión, lo que significa que no tiene mecanismo para la retransmisión de datagramas (a diferencia de TCP, que es orientado a conexión). UDP no es muy confiable, pero sí tiene fines particulares. Si las aplicaciones que utilizan UDP tienen su propia verificación de confiabilidad, los inconvenientes de UDP se pueden superar.
Protocolo de Mensajes de Control de Internet ICMP
(Internet Control Message Protocol)
• Reporta sobre destinos inalcanzables.
• Control de flujo de datagramas y congestión.
• Controla los requerimiento de cambio de rutas entre compuertas.
• Detecta rutas circulares o excesivamente largas.
Verifica la existencia de trayectorias hacia alguna red y el estatus de la misma.
Su función es la de notificar de eventos en los que los paquetes enviados no alcanzaron su destino. Proporciona un medio de transporte para que los equipos compuerta se envíen mensajes de control y error. ICMP no está orientado a la corrección de errores, sólo a su notificación.




Formato del mensaje ICMP
Tipo Mensaje ICMP
0 Respuesta al eco
3 Destino Inalcanzable
4 Fuente saturada
5 Redirección de ruta
8 Solicitud de Eco
11 Tiempo del datagrama excedido
12 Parámetro problema en datagrama
13 Requerimiento de hora y fecha
14 Respuesta de host y fecha
17 Requerimiento de máscara de dirección
18 Respuesta de máscara de dirección
El formato de ICMP cambia dependiendo de la función que realice, exceptuando los campos de Tipo, Código y de Checksum. Un 1 en el campo de Protocolo del mensaje de IP indicará que se trata de un datagrama ICMP. La función de un mensaje determinado ICMP estará definida por el campo de Tipo; el campo de Código proporciona información adicional para realizar la función; el campo de Checksum sirve para efectuar una verificación por suma que sólo corresponde al mensaje ICMP.
PROTOCOLO DE DATAGRAMAS DE USUARIO
• Proporciona de mecanismos primordiales para que programas de aplicación se comuniquen con otros en computadoras remotas.
• Utiliza el concepto de puerto para permitir que múltiples conexiones accedan a un programa de aplicación.
• Provee un servicio no confiable orientado a no conexión.
El programa de aplicación tiene la total responsabilidad del control de confiabilidad, mensajes duplicados o perdidos, retardos y paquetes fuera de orden.
Este protocolo deja al programa de aplicación a ser explotado la resposabilidad de una transmisión fiable. Con él puede darse el caso de que los paquetes se pierdan o bien no sean reconstruidos en forma adecuada. Permite un intercambio de datagramas más directo entre aplicaciones y puede elegirse para aquellas que no demanden una gran cantidad de datagramas para operar optimamente.

Protocolos a Nivel de Aplicación
Aquí tenemos los protocolos asociados a los distintos servicios de Internet, como FTP, Telnet, Gopher, HTTP, etc. Estos protocolos son visibles para el usuario en alguna medida. Por ejemplo, el protocolo FTP (File Transfer Protocol) es visible para el usuario. El usuario solicita una conexión a otro ordenador para transferir un fichero, la conexión se establece, y comienza la transferencia. Durante dicha transferencia, es visible parte del intercambio entre la máquina del usuario y la máquina remota (mensajes de error y de estado de la transferencia, como por ejemplo cuantos bytes del fichero se han transferido en un momento dado).
Breve Historia del Protocolo TCP/IP
A principios de los años 60, varios investigadores intentaban encontrar una forma de compartir recursos informáticos de una forma más eficiente. En 1961, Leonard Klienrock introduce el concepto de Conmutación de Paquetes (Packet Switching, en inglés). La idea era que la comunicación entre ordenadores fuese dividida en paquetes. Cada paquete debería contener la dirección de destino y podría encontrar su propio camino a través de la red.
Como ya comentamos en el capítulo anterior, en 1969 la Agencia de Proyectos de Investigación Avanzada (Defense Advanced Research Projects Agency o DARPA) del Ejército de los EEUU desarrolla la ARPAnet. La finalidad principal de esta red era la capacidad de resistir un ataque nuclear de la URSS para lo que se pensó en una administración descentralizada. De este modo, si algunos ordenadores eran destruidos, la red seguiría funcionando. Aunque dicha red funcionaba bien, estaba sujeta a algunas caidas periódicas del sistema. De este modo, la expansión a largo plazo de esta red podría resultar difícil y costosa. Se inició entonces una búsqueda de un conjunto de protocolos más fiables para la misma. Dicha búsqueda finalizó, a mediados de los 70, con el desarrollo de TCP/IP.
TCP/IP tenia (y tiene) ventajas significativas respecto a otros protocolos. Por ejemplo, consume pocos recusos de red. Además, podía ser implementado a un coste mucho menor que otras opciones disponibles entonces. Gracias a estos aspectos, TCP/IP comenzó a hacerse popular. En 1983, TCP/IP se integró en la versión 4.2 del sistema operativo UNIX de Berkeley y la integración en versiones comerciales de UNIX vino pronto. Así es como TCP/IP se convirtió en el estándar de Internet.
En la actualidad, TCP/IP se usa para muchos propósitos, no solo en Internet. Por ejemplo, a menudo se diseñan intranets usando TCP/IP. En tales entornos, TCP/IP ofrece ventajas significativas sobre otros protocolos de red. Una de tales ventajas es que trabaja sobre una gran variedad de hardware y sistemas operativos. De este modo puede crearse fácilmente una red heterogénea usando este protocolo. Dicha red puede contener estaciones Mac, PC compatibles, estaciones Sun, servidores Novell, etc.