Professional Documents
Culture Documents
La necesidad de Licklider de redes se haría evidente por los problemas que esto causó.
Para cada una de estas tres terminales, tenía tres diferentes juegos de
comandos de usuario. Por tanto, si estaba hablando en red con alguien
en la S.D.C. y quería hablar con alguien que conocía en Berkeley o en el
M.I.T. sobre esto, tenía que irme de la terminal de la S.C.D., pasar y
registrarme en la otra terminal para contactar con él.
Dije, es obvio lo que hay que hacer: si tienes esas tres terminales,
debería haber una terminal que fuese a donde sea que quisieras ir y en
donde tengas interactividad. Esa idea es el ARPANet.
Robert W. Taylor, co-escritor, junto con Licklider, de "The Computer as a Communications
Device" (El Ordenador como un Dispositivo de Comunicación), en una entrevista con
el New York Times
Como principal problema en lo que se refiere a las interconexiones está el conectar
diferentes redes físicas para formar una sola red lógica. Durante la década de 1960, varios
grupos trabajaron en el concepto de la conmutación de paquetes. Un paquete es un grupo
de información que consta de dos partes:
en la que está especificado la ruta a seguir a lo largo de la red hasta el destino del
paquete. Mil octetos es el límite de longitud superior de los paquetes, y si la longitud es
mayor el mensaje se fragmenta en otros paquetes. Normalmente se considera que Donald
Davies (National Physical Laboratory), Paul Baran (Rand Corporation) y Leonard Kleinrock
(MIT) lo han inventado simultáneamente.
Cronología
Año Evento
La compañía BELL crea el primer módem que permitía transmitir datos binarios
1958
sobre una línea telefónica simple.
Leonard Kleinrock del Massachusetts Institute of Technology publica una primera
1961
teoría sobre la utilización de la conmutación de paquetes para transferir datos.
Inicio de investigaciones por parte de ARPA, una agencia del ministerio
1962 estadounidense de defensa, donde J.C.R. Licklider defiende exitosamente sus
ideas relativas a una red global de computadoras.
Leonard Kleinrock del MIT publica un libro sobre la comunicación por
1964
conmutación de paquetes para implementar una red.
1967 Primera conferencia sobre ARPANET
Conexión de las primeras computadoras entre 4 universidades estadounidenses a
1969
través de la Interface Message Processor de Leonard Kleinrock
23 computadoras son conectadas a ARPANET. Envío del primer correo por Ray
1971
Tomlinson.
Nacimiento del InterNetworking Working Group, organización encargada de
1972
administrar Internet.
1973 Inglaterra y Noruega se adhieren a Internet, cada una con una computadora.
1979 Creación de los NewsGroups (foros de discusión) por estudiantes americanos.
1982 Definición del protocolo TCP/IP y de la palabra «Internet»
1983 Primer servidor de nombres de sitios.
1984 1000 computadoras conectadas.
1987 10000 computadoras conectadas.
1989 100000 computadoras conectadas.
1990 Desaparición de ARPANET
1991 Se anuncia públicamente la World Wide Web
1992 1 millón de computadoras conectadas.
Aparición del navegador web NCSA Mosaic
1993
Primer buscador de la historia, Wandex servía como un índice de páginas web.1
1996 10 millones de computadoras conectadas.
2000 Explosión de la Burbuja.com
2009 Primer sitio web que permitió la interacción táctil.
Inicios de Internet
Los inicios de Internet nos remontan a los años 60. En plena guerra fría, Estados Unidos
crea una red exclusivamente militar, con el objetivo de que, en el hipotético caso de un
ataque ruso, se pudiera tener acceso a la información militar desde cualquier punto del
país. Este red se creó en 1969 y se llamó ARPANET. En principio, la red contaba con 4
ordenadores distribuidos entre distintas universidades del país. Dos años después, ya
contaba con unos 40 ordenadores conectados. Tanto fue el crecimiento de la red que su
sistema de comunicación se quedó obsoleto. Entonces dos investigadores crearon el
Protocolo TCP/IP, que se convirtió en el estándar de comunicaciones dentro de las redes
informáticas (actualmente seguimos utilizando dicho protocolo).
ARPANET siguió creciendo y abriéndose al mundo, y cualquier persona con fines
académicos o de investigación podía tener acceso a la red. Las funciones militares se
desligaron de ARPANET y fueron a parar a MILNET, una nueva red creada por los
Estados Unidos. La NSF (National Science Fundation) crea su propia red informática
llamada NSFNET, que más tarde absorbe a ARPANET, creando así una gran red con
propósitos científicos y académicos. El desarrollo de las redes fue abismal, y se crean
nuevas redes de libre acceso que más tarde se unen a NSFNET, formando el embrión de
lo que hoy conocemos como INTERNET.
En 1985 la Internet ya era una tecnología establecida, aunque conocida por unos pocos. El
autor William Gibson hizo una revelación: el término «ciberespacio». En ese tiempo la red
era básicamente textual, así que el autor se basó en los videojuegos. Con el tiempo la
palabra «ciberespacio» terminó por ser sinónimo de Internet. El desarrollo de NSFNET fue
tal que hacia el año 1990 ya contaba con alrededor de 100 000 servidores.
En el Centro Europeo de Investigaciones Nucleares (CERN), Tim Berners Lee dirigía la
búsqueda de un sistema de almacenamiento y recuperación de datos. Berners Lee retomó
la idea de Ted Nelson (un proyecto llamado «Xanadú») de usar hipervínculos. Robert
Caillau quien cooperó con el proyecto, cuenta que en 1990 deciden ponerle un nombre al
sistema y lo llamaron World Wide Web (WWW) o telaraña mundial.
La nueva fórmula permitía vincular información en forma lógica y a través de las redes. El
contenido se programaba en un lenguaje de hipertexto con «etiquetas» que asignaban una
función a cada parte del contenido. Luego, un programa de computación, un intérprete, era
capaz de leer esas etiquetas para despeglar la información. Ese intérprete sería conocido
como «navegador» o «browser».
En 1993 Marc Andreesen produjo la primera versión del navegador «Mosaic», que permitió
acceder con mayor naturalidad a la WWW. La interfaz gráfica iba más allá de lo previsto y
la facilidad con la que podía manejarse el programa abría la red a los legos. Poco
después, Andreesen encabezó la creación del programa Netscape.
A partir de entonces, Internet comenzó a crecer más rápido que otro medio de
comunicación, convirtiéndose en lo que hoy todos conocemos.
Algunos de los servicios disponibles en Internet aparte de la WEB son el acceso remoto a
otras máquinas (SSH y telnet), transferencia de archivos (FTP), correo electrónico (SMTP),
conversaciones en línea (IMSN MESSENGER, ICQ, YIM, AOL, jabber), transmisión de
archivos (P2P, P2M, descarga directa), etc.
Podemos definir a Internet como una «red de redes», es decir, una red que no sólo
interconecta computadoras, sino que interconecta redes de computadoras entre sí. Una
red de computadoras es un conjunto de máquinas que se comunican a través de algún
medio (cable coaxial, fibra óptica, radiofrecuencia, líneas telefónicas, etc.) con el objeto de
compartir recursos.
De esta manera, Internet sirve de enlace entre redes más pequeñas y permite ampliar su
cobertura al hacerlas parte de una "red global". Esta red global tiene la característica de
que utiliza un lenguaje común que garantiza la intercomunicación de los diferentes
participantes; este lenguaje común o protocolo (un protocolo es el lenguaje que utilizan las
computadoras al compartir recursos) se conoce como TCP/IP.
Así pues, Internet es la «red de redes» que utiliza TCP/IP como su protocolo de
comunicación.
Internet es un acrónimo de INTERconected NETworks (Redes interconectadas). Para
otros, Internet es un acrónimo del inglés INTERnational NET, que traducido al español
sería Red Mundial.
El TCP/IP es la base de Internet que sirve para enlazar computadoras que utilizan
diferentes sistemas operativos, incluyendo PC, minicomputadoras y computadoras
centrales sobre redes de área local y área extensa. TCP/IP fue desarrollado y demostrado
por primera vez en 1972 por el departamento de defensa de los Estados Unidos,
ejecutándolo en ARPANET, una red de área extensa del departamento de defensa.
Uso y cultura
Berners-Lee usó esta NeXTcube en el CERN, y fue el primer servidor web del mundo.
En 1991, Tim Berners-Lee fue el primero en desarrollar un implementación basada en red
de concepto de hipertexto. Esto fue después de que Berners-Lee hubiera propuesto
repetidamente su idea a las comunidades de hipertexto e Internet en varias conferencias
sin acogerse—nadie lo implementaría por él. Trabajando en el CERN, Berners-Lee quería
una manera de compartir información sobre su investigación. Liberando su implementación
para el uso público, se aseguró que la tecnología se extendería. Posteriormente, Gopher
se convirtió en la primera interfaz de hipertexto comúnmente utilizada en Internet. Aunque
las opciones del menú Gopher eran ejemplos de hipertexto, éstas no fueron comúnmente
percibidas de esta manera. Unos de los primeros populares navegadores web, modelado
después de HyperCard, fue ViolaWWW.
Los expertos generalmente están de acuerdo, sin embargo, que el punto decisivo para la
World Wide Web comenzó con la introducción de Mosaic en 1993, un navegador web con
interfaz gráfica desarrollado por un equipo en el National Center for Supercomputing
Applications en la Universidad de Illinois en Urbana-Champaign (NCSA-UIUC), liderado
por Marc Andreessen. Los fondos para Mosaic vinieron desde la High-Performance
Computing and Communications Initiative, el programa de ayudas High Performance
Computing and Communication Act of 1991iniciado por el entonces senador Al Gore. De
hecho, la interfaz gráfica de Mosaic pronto se hizo más popular que Gopher, que en ese
momento estaba principalmente basado en texto, y la WWW se convirtió en la interfaz
preferida para acceder a Internet.
Mosaic fue finalmente suplantado en 1994 por Netscape Navigator de Andreessen, que
reemplazó a Mosaic como el navegador web más popular en el mundo. La competencia de
Internet Explorer y una variedad de otros navegadores casi lo ha sustituido
completamente. Otro acontecimiento importante celebrado el 11 de enero de 1994,
fue The Superhighway Summit en la Sala Royce de la UCLA. Esta fue la «primera
conferencia pública que agrupó a todos los principales líderes de la industria, el gobierno y
académicos en el campo [y] también comenzó el diálogo nacional sobre la Autopista de la
información y sus implicaciones.»
La burbuja .com
El repentino bajo precio para llegar a millones de personas en el mundo, y la posibilidad de
vender y saber de la gente a que se vendía en el mismo momento, prometió cambiar el
dogma de negocio establecido en la publicidad, las ventas por correo, CRM, y muchas
más áreas. La web fue una nueva aplicación rompedora—podía juntar compradores y
vendedores sin relación previa de manera fluida y con bajo coste. Los visionarios alrededor
del mundo desarrollaron nuevos modelos de negocio, y se dirigieron a su capitalista de
riesgo más cercano. Por supuesto una proporción de los nuevos empresarios tenían
realmente talento en la administración de empresas y las ventas y crecieron; pero la
mayoría eran simplemente gente con ideas, y no gestionaron el influjo de capital
prudentemente. Además, muchos planes de negocios .com estaban fundamentados sobre
el supuesto que usando Internet, evitarían los canales de distribución de los negocios
existentes y por tanto no tendrían que competir con ellos; cuando los negocios
establecidos con fuertes marcas desarrollaron su propia presencia en Internet, estas
esperanzas fueron destrozadas, y los recién llegados quedaron abandonados en su
negocio intentando romper los mercados dominados por negocios más grandes y
establecidos. Muchos no tuvieron la capacidad de hacerlo.
La burbuja .com estalló el 10 de marzo de 2000, cuando el índice NASDAQ compuesto
fuertemente por valores tecnológicos hizo su máximo en 5048,62 (máximo intradía
5132,52), más del doble de su valor un año anterior. Para 2001, la deflación de la burbuja
estaba yendo a toda velocidad. La mayoría de las .com había cerrado el negocio, después
de haber quemado todo su capital riesgo, a menudo sin ni siquiera tener un beneficio
bruto.
El futuro
Existe actualmente un debate en torno a si Internet continuará manteniendo las
características que ha presentado hasta hoy (en particular su carácter global y abierto).
Algunos autores subrayan que desde principios de la década de 2010 los fenómenos
ligados a Internet han comenzado a localizarse fuertemente, lo que puede devenir en una
pluralidad de redes que poco a poco desplazaría a la red madre unitaria. La historia del
Internet ha sido un proceso rico que se caracteriza por su carácter innovador, considerado
como un instrumento de enorme importancia para los ciudadanos y el propio gobierno, el
Internet ha pasado de un instrumento primeramente utilizado en el ámbito de las
universidades para el mundo y ha contribuido significativamente para el desarrollo de
todas las otras áreas de las Ciencias.
Tecnología de Internet
No todas las redes de ordenadores están conectados a Internet. Por ejemplo, algunos
clasificados los sitios web de los Estados sólo son accesibles desde redes seguras
independientes.
(IP)Internet Protocol
Internet Protocol (en español 'Protocolo de Internet') o IP es un protocolo de
comunicación de datos digitales clasificado funcionalmente en la Capa de Red según el
modelo internacional OSI.
Su función principal es el uso bidireccional en origen o destino de comunicación para
transmitir datos mediante un protocolo no orientado a conexión que transfiere paquetes
conmutados a través de distintas redes físicas previamente enlazadas según la norma OSI
de enlace de datos.
Descripción funcional
El diseño del protocolo IP se realizó presuponiendo que la entrega de los paquetes de
datos sería no confiable. Por ello, IP tratará de realizarla del mejor modo posible, mediante
técnicas de encaminamiento, sin garantías de alcanzar el destino final pero tratando de
buscar la mejor ruta entre las conocidas por la máquina que esté usando IP.
Los datos en una red basada en IP son enviados en bloques conocidos como paquetes o
datagramas (en el protocolo IP estos términos se suelen usar indistintamente). En
particular, en IP no se necesita ninguna configuración antes de que un equipo intente
enviar paquetes a otro con el que no se había comunicado antes.
IP provee un servicio de datagramas no fiable (también llamado del "mejor esfuerzo": lo
hará lo mejor posible, pero garantizando poco). IP no provee ningún mecanismo para
determinar si un paquete alcanza o no su destino y únicamente proporciona seguridad
(mediante checksums o sumas de comprobación) de sus cabeceras y no de los datos
transmitidos. Por ejemplo, al no garantizar nada sobre la recepción del paquete, éste
podría llegar dañado, en otro orden con respecto a otros paquetes, duplicado o
simplemente no llegar. Si se necesita fiabilidad, ésta es proporcionada por los protocolos
de la capa de transporte, como TCP. Las cabeceras IP contienen las direcciones de las
máquinas de origen y destino (direcciones IP), direcciones que serán usadas por los
enrutadores (routers) para decidir el tramo de red por el que reenviarán los paquetes. El IP
es el elemento común en el Internet de hoy. El actual y más popular protocolo de red es
IPv4. IPv6 es el sucesor propuesto de IPv4; poco a poco Internet está agotando las
direcciones disponibles por lo que IPv6 utiliza direcciones de fuente y destino de 128 bits,
muchas más direcciones que las que provee IPv4 con 32 bits. Las versiones de la 0 a la 3
están reservadas o no fueron usadas. La versión 5 fue usada para un protocolo
experimental. Otros números han sido asignados, usualmente para protocolos
experimentales, pero no han sido muy extendidos.
Si la información a transmitir ("datagramas") supera el tamaño máximo "negociado" (MTU)
en el tramo de red por el que va a circular podrá ser dividida en paquetes más pequeños, y
reensamblada luego cuando sea necesario. Estos fragmentos podrán ir cada uno por un
camino diferente dependiendo de como estén de congestionadas las rutas en cada
momento.
Las cabeceras IP contienen las direcciones de las máquinas de origen y destino
(direcciones IP), direcciones que serán usadas por los enrutadores (routers) para decidir el
tramo de red por el que reenviarán los paquetes.1
Direccionamiento IP y enrutamiento
Quizás los aspectos más complejos de IP son el direccionamiento y el enrutamiento. El
direccionamiento se refiere a la forma como se asigna una dirección IP y cómo se dividen
y se agrupan subredes de equipos.
El enrutamiento consiste en encontrar un camino que conecte una red con otra y, aunque
es llevado a cabo por todos los equipos, es realizado principalmente por routers, que no
son más que computadoras especializadas en recibir y enviar paquetes por diferentes
interfaces de red, así como proporcionar opciones de seguridad, redundancia de caminos
y eficiencia en la utilización de los recursos.
Dirección IP
Una dirección IP es un número que identifica de manera lógica y jerárquicamente a
una interfaz de un dispositivo (habitualmente una computadora) dentro de una red que
utilice el protocolo de Internet (Internet Protocol), que corresponde al nivel de red o nivel 3
del modelo de referencia OSI. Dicho número no se ha de confundir con la dirección
MAC que es un número físico que es asignado a la tarjeta o dispositivo de red (viene
impuesta por el fabricante), mientras que la dirección IP se puede cambiar.
El usuario al conectarse desde su hogar a Internet utiliza una dirección IP. Esta dirección
puede cambiar al reconectar. A la posibilidad de cambio de dirección de la IP se
denomina dirección IP dinámica. Existe un protocolo para asignar direcciones IP dinámicas
llamado DHCP (Dynamic Host Configuration Protocol).
Los sitios de Internet que por su naturaleza necesitan estar permanentemente conectados,
generalmente tienen una dirección IP fija (IP fija o IP estática); es decir, no cambia con el
tiempo. Los servidores de correo, dns, ftp públicos, servidores web, conviene que tengan
una dirección IP fija o estática, ya que de esta forma se facilita su ubicación.
Las máquinas manipulan y jerarquizan la información de forma numérica, y son altamente
eficientes para hacerlo y ubicar direcciones IP. Sin embargo, los seres humanos debemos
utilizar otra notación más fácil de recordar y utilizar, por ello las direcciones IP pueden
utilizar un sinónimo, llamado nombre de dominio (Domain Name), para convertir los
nombres de dominio en direcciones IP, se utiliza la resolución de nombres de
dominio DNS.
Enrutamiento
En comunicaciones, el encaminamiento (a veces conocido por el
anglicismo ruteo o enrutamiento) es el mecanismo por el que en una red los paquetes de
información se hacen llegar desde su origen a su destino final, siguiendo un camino o ruta
a través de la red. En una red grande o en un conjunto de redes interconectadas el camino
a seguir hasta llegar al destino final puede suponer transitar por muchos nodos
intermedios.
Asociado al encaminamiento existe el concepto de métrica, que es una medida de lo
"bueno" que es usar un camino determinado. La métrica puede estar asociada a distintas
magnitudes: distancia, coste, retardo de transmisión, número de saltos, etc., o incluso a
una combinación de varias magnitudes. Si la métrica es el retardo, es mejor un camino
cuyo retardo total sea menor que el de otro. Lo ideal en una red es conseguir el
encaminamiento óptimo: tener caminos de distancia (o coste, o retardo, o la magnitud que
sea, según la métrica) mínimos. Típicamente el encaminamiento es una función
implantada en la capa 3 (capa de red) del modelo de referencia OSI.
Objetivos de TCP
Con el uso de protocolo TCP, las aplicaciones pueden comunicarse en forma segura
(gracias al de acuse de recibo -ACK- del protocolo TCP) independientemente de las capas
inferiores. Esto significa que los routers (que funcionan en la capa de Internet) sólo tiene
que enviar los datos en forma de datagrama, sin preocuparse con el monitoreo de datos
porque esta función la cumple la capa de transporte (o más específicamente el protocolo
TCP).
Información técnica
TCP es usado en gran parte de las comunicaciones de datos. Por ejemplo, gran parte de
las comunicaciones que tienen lugar en Internet emplean TCP.
Funciones de TCP
En la pila de protocolos TCP/IP, TCP es la capa intermedia entre el protocolo de
internet (IP) y la aplicación. Muchas veces las aplicaciones necesitan que la comunicación
a través de la red sea confiable. Para ello se implementa el protocolo TCP que asegura
que los datos que emite el cliente sean recibidos por el servidor sin errores y en el mismo
orden que fueron emitidos, a pesar de trabajar con los servicios de la capa IP, la cual no es
confiable. Es un protocolo orientado a la conexión, ya que el cliente y el servidor deben de
anunciarse y aceptar la conexión antes de comenzar a transmitir los datos a ese usuario
que debe recibirlos.
1. establecimiento de conexión,
2. transferencia de datos, y
3. fin de la conexión.
Aunque es posible que un par de entidades finales comiencen una conexión entre ellas
simultáneamente, normalmente una de ellas abre un socket en un determinado puerto
TCP y se queda a la escucha de nuevas conexiones. Es común referirse a esto como
apertura pasiva, y determina el lado servidor de una conexión. El lado cliente de una
conexión realiza una apertura activa de un puerto enviando un paquete SYN inicial al
servidor como parte de la negociación en tres pasos. En el lado del servidor (este receptor
también puede ser una PC o alguna estación terminal) se comprueba si el puerto está
abierto, es decir, si existe algún proceso escuchando en ese puerto, pues se debe verificar
que el dispositivo de destino tenga este servicio activo y esté aceptando peticiones en el
número de puerto que el cliente intenta usar para la sesión. En caso de no estarlo, se
envía al cliente un paquete de respuesta con el bit RST activado, lo que significa el
rechazo del intento de conexión. En caso de que sí se encuentre abierto el puerto, el lado
servidor respondería a la petición SYN válida con un paquete SYN/ACK. Finalmente, el
cliente debería responderle al servidor con un ACK, completando así la negociación en
tres pasos (SYN, SYN/ACK y ACK) y la fase de establecimiento de conexión. Es
interesante notar que existe un número de secuencia generado por cada lado, ayudando
de este modo a que no se puedan establecer conexiones falseadas (spoofing).
Transferencia de datos
Durante la etapa de transferencia de datos, una serie de mecanismos claves determinan la
fiabilidad y robustez del protocolo. Entre ellos están incluidos el uso del número de
secuencia para ordenar los segmentos TCP recibidos y detectar paquetes
duplicados, checksums para detectar errores, y asentimientos y temporizadores para
detectar pérdidas y retrasos.
Durante el establecimiento de conexión TCP, los “números iniciales de secuencia” son
intercambiados entre las dos entidades TCP. Estos números de secuencia son usados
para identificar los datos dentro del flujo de bytes, y poder identificar (y contar) los bytes de
los datos de la aplicación. Siempre hay un par de números de secuencia incluidos en todo
segmento TCP, referidos al número de secuencia y al número de asentimiento. Un
emisor TCP se refiere a su propio número de secuencia cuando habla de número de
secuencia, mientras que con el número de asentimiento se refiere al número de secuencia
del receptor. Para mantener la fiabilidad, un receptor asiente los segmentos TCP indicando
que ha recibido una parte del flujo continuo de bytes. Una mejora de TCP, llamada
asentimiento selectivo (Selective Acknowledgement, SACK) permite a un receptor TCP
asentir los datos que se han recibido de tal forma que el remitente solo retransmita los
segmentos de datos que faltan.
A través del uso de números de secuencia y asentimiento, TCP puede pasar los
segmentos recibidos en el orden correcto dentro del flujo de bytes a la aplicación
receptora. Los números de secuencia son de 32 bits (sin signo), que vuelve a cero tras el
siguiente byte después del 232-1. Una de las claves para mantener la robustez y la
seguridad de las conexiones TCP es la selección del número inicial de secuencia (Initial
Sequence Number, ISN).
Un checksum de 16 bits, consistente en el complemento a uno de la suma en
complemento a uno del contenido de la cabecera y datos del segmento TCP, es calculado
por el emisor, e incluido en la transmisión del segmento. Se usa la suma en complemento
a uno porque el acarreo final de ese método puede ser calculado en cualquier múltiplo de
su tamaño (16-bit, 32-bit, 64-bit...) y el resultado, una vez plegado, será el mismo. El
receptor TCP recalcula el checksum sobre las cabeceras y datos recibidos. El
complemento es usado para que el receptor no tenga que poner a cero el campo
del checksum de la cabecera antes de hacer los cálculos, salvando en algún lugar el valor
del checksum recibido; en vez de eso, el receptor simplemente calcula la suma en
complemento a uno con el checksum incluido, y el resultado debe ser igual a 0. Si es así,
se asume que el segmento ha llegado intacto y sin errores.
Hay que fijarse en que el checksum de TCP también cubre los 96 bit de la cabecera que
contiene la dirección origen, la dirección destino, el protocolo y el tamaño TCP. Esto
proporciona protección contra paquetes mal dirigidos por errores en las direcciones.
El checksum de TCP es una comprobación bastante débil. En niveles de enlace con una
alta probabilidad de error de bit quizá requiera una capacidad adicional de
corrección/detección de errores de enlace. Si TCP fuese rediseñado hoy, muy
probablemente tendría un código de redundancia cíclica (CRC) para control de errores en
vez del actual checksum. La debilidad del checksum está parcialmente compensada por el
extendido uso de un CRC en el nivel de enlace, bajo TCP e IP, como el usado en el PPP o
en Ethernet. Sin embargo, esto no significa que el checksum de 16 bits es redundante:
sorprendentemente, inspecciones sobre el tráfico de Internet han mostrado que son
comunes los errores de software y hardware que introducen errores en los paquetes
protegidos con un CRC, y que el checksum de 16 bits de TCP detecta la mayoría de estos
errores simples.
Los asentimientos (ACK o Acknowledgments) de los datos enviados o la falta de ellos, son
usados por los emisores para interpretar las condiciones de la red entre el emisor y
receptor TCP. Unido a los temporizadores, los emisores y receptores TCP pueden alterar
el comportamiento del movimiento de datos. TCP usa una serie de mecanismos para
conseguir un alto rendimiento y evitar la congestión de la red (la idea es enviar tan rápido
como el receptor pueda recibir). Estos mecanismos incluyen el uso de ventana deslizante,
que controla que el transmisor mande información dentro de los límites del búfer del
receptor, y algoritmos de control de flujo, tales como el algoritmo de evitación de la
congestión (congestion avoidance), el de comienzo lento (slow-start), el de retransmisión
rápida, el de recuperación rápida (fast recovery), y otros.
Control de flujo
TCP usa control de flujo para evitar que un emisor envíe datos de forma más rápida de la
que el receptor puede recibirlos y procesarlos. El control de flujo es un mecanismo
esencial en redes en las que se comunican computadoras con distintas velocidades de
transferencia. Por ejemplo, si una PC envía datos a un dispositivo móvil que procesa los
datos de forma lenta, el dispositivo móvil debe regular el flujo de datos.
TCP usa una ventana deslizante para el control de flujo. En cada segmento TCP, el
receptor especifica en el campo receive window la cantidad de bytes que puede almacenar
en el búfer para esa conexión. El emisor puede enviar datos hasta esa cantidad. Para
poder enviar más datos debe esperar que el receptor le envíe un ACK con un nuevo valor
de ventana.
Fin de la conexión
Puertos TCP
TCP usa el concepto de número de puerto para identificar a las aplicaciones emisoras y
receptoras. Cada lado de la conexión TCP tiene asociado un número de puerto (de 16 bits
sin signo, con lo que existen 65536 puertos posibles) asignado por la aplicación emisora o
receptora. Los puertos son clasificados en tres categorías:
1. bien conocidos,
2. registrados, y
3. dinámicos/privados.
Los puertos bien conocidos son asignados por la Internet Assigned Numbers
Authority (IANA), van del 0 al 1023 y son usados normalmente por el sistema o por
procesos con privilegios.3 Las aplicaciones que usan este tipo de puertos son ejecutadas
como servidores y se quedan a la escucha de conexiones. Algunos ejemplos son: FTP
(21), SSH (22), Telnet (23), SMTP (25) y HTTP (80).
Los puertos registrados son normalmente empleados por las aplicaciones de usuario de
forma temporal cuando conectan con los servidores, pero también pueden representar
servicios que hayan sido registrados por un tercero (rango de puertos registrados: 1024 al
49151).
Los puertos dinámicos/privados también pueden ser usados por las aplicaciones de
usuario, pero este caso es menos común. Los puertos dinámicos/privados no tienen
significado fuera de la conexión TCP en la que fueron usados (rango de puertos
dinámicos/privados: 49152 al 65535, recordemos que el rango total de 2 elevado a la
potencia 16, cubre 65536 números, del 0 al 65535).
Formato General
El formato general de un URL es:
scheme://[user:password@]domain:port
También pueden añadirse otros datos:
scheme://[user:password@]domain:port/path?query_string#fragment_id
La especificación detallada se encuentra en la RFC 1738, titulada Uniform Resource
Locators.
Esquema URL
Un URL se clasifica por su esquema, que generalmente indica el protocolo de red que
se usa para recuperar, a través de la red, la información del recurso identificado. Un
URL comienza con el nombre de su esquema, seguido por dos puntos, seguido por
una parte específica del esquema'.
Algunos ejemplos de esquemas URL:
Algunos de los esquemas URL, como los populares "mailto", "http", "ftp", y "file", junto a
los de sintaxis general URL, se detallaron por primera vez en 1994, en el Request for
Comments RFC 1630, sustituido un año después por los más específicos RFC
1738 y RFC 1808.
Algunos de los esquemas definidos en el primer RFC aún son válidos, mientras que
otros son debatidos o han sido refinados por estándares posteriores. Mientras tanto, la
definición de la sintaxis general de los URL se ha escindido en dos líneas separadas de
especificación de URI: RFC 2396 (1998) y RFC 2732 (1999), ambos ya obsoletos pero
todavía ampliamente referidos en las definiciones de esquemas URL.
El estándar actual es STD 66 / RFC 3986 (2005).
MIME headers
MIME-Version
La presencia de este encabezado indica que el mensaje utiliza el formato MIME. Su
valor es típicamente igual a "1.0" por lo que este encabezado aparece como:
MIME-Version: 1.0
Debe señalarse que los implementadores han intentado cambiar el número de versión
en el pasado y el cambio ha tenido resultados imprevistos. En una reunión
de IETF realizada en Julio 2007 se decidió mantener el número de versión en "1.0"
aunque se han realizado muchas actualizaciones a la versión de MIME.
Content-Type
Este encabezado indica el tipo de medio que representa el contenido del mensaje,
consiste en un tipo: type y un subtipo: subtype, por ejemplo:
Content-Type: text/plain
A través del uso del tipo multiparte (multipart), MIME da la posibilidad de crear
mensajes que tengan partes y subpartes organizadas en una estructura arbórea en la
que los nodos hoja pueden ser cualquier tipo de contenido no multiparte y los nodos
que no son hojas pueden ser de cualquiera de las variedades de tipos multiparte. Este
mecanismo soporta:
Componentes
Para la operación práctica del sistema DNS se utilizan tres componentes principales:
Los Clientes fase 1: Un programa cliente DNS que se ejecuta en la computadora del
usuario y que genera peticiones DNS de resolución de nombres a un servidor
DNS (Por ejemplo: ¿Qué dirección IP corresponde a nombre.dominio?);
Los Servidores DNS: Que contestan las peticiones de los clientes. Los servidores
recursivos tienen la capacidad de reenviar la petición a otro servidor si no disponen de
la dirección solicitada.
Y las Zonas de autoridad, es una parte del espacio de nombre de dominios sobre la
que es responsable un servidor DNS, que puede tener autoridad sobre varias zonas. (
Por ejemplo : subdominio .ORG, .COM, etc).
Jerarquía DNS
Árbol DNS
El espacio de nombres de dominio tiene una estructura arborescente. Las hojas y los
nodos del árbol se utilizan como etiquetas de los medios. Un nombre de dominio completo
de un objeto consiste en la concatenación de todas las etiquetas de un camino. Las
etiquetas son cadenas alfanuméricas (con '-' como único símbolo permitido), deben contar
con al menos un carácter y un máximo de 63 caracteres de longitud, y deberá comenzar
con una letra (y no con '-') (ver la RFC 1035, sección "2.3.1. Preferencia nombre de la
sintaxis "). Las etiquetas individuales están separadas por puntos. Un nombre de dominio
termina con un punto (aunque este último punto generalmente se omite, ya que es
puramente formal). Un FQDN correcto (también llamado Fully Qualified Domain Name), es
por ejemplo este: www.example.com. (incluyendo el punto al final).
Un nombre de dominio debe incluir todos los puntos y tiene una longitud máxima de 255
caracteres.
Un nombre de dominio se escribe siempre de derecha a izquierda. El punto en el extremo
derecho de un nombre de dominio separa la etiqueta de la raíz de la jerarquía (en inglés,
root). Este primer nivel es también conocido como dominio de nivel superior (TLD - Top
Level Domain).
Los objetos de un dominio DNS (por ejemplo, el nombre del equipo) se registran en un
archivo de zona, ubicado en uno o más servidores de nombres.
Resolución recursiva
Las resoluciones recursivas consisten en la respuesta completa que el servidor de
nombres pueda dar. El servidor de nombres consulta sus datos locales (incluyendo su
caché) buscando los datos solicitados. El servidor encargado de hacer la resolución realiza
iterativamente preguntas a los diferentes DNS de la jerarquía asociada al nombre que se
desea resolver, hasta descender en ella hasta la máquina que contiene la zona autoritativa
para el nombre que se desea resolver.
Resolución iterativa
En las resoluciones iterativas, el servidor no tiene la información en sus datos locales, por
lo que busca y se pone en contacto con un servidor DNS raíz, y en caso de ser necesario
repite el mismo proceso básico (consultar a un servidor remoto y seguir a la siguiente
referencia) hasta que obtiene la mejor respuesta a la pregunta.
Cuando existe más de un servidor autoritario para una zona, Bind utiliza el menor valor en
la métrica RTT (round-trip time) para seleccionar el servidor. El RTT es una medida para
determinar cuánto tarda un servidor en responder una consulta.
El proceso de resolución normal se da de la siguiente manera:
¿Qué es ICANN?
ICANN es una organización que opera a nivel multinacional/internacional y es la
responsable de asignar las direcciones del protocolo IP, de los identificadores de
protocolo, de las funciones de gestión del sistema de dominio y de la administración del
sistema de servidores raíz.
En un principio, estos servicios los realizaba IANA (Internet Assigned Numbers Authority) y
otras entidades del gobierno estadounidense.
ICANN se dedica a preservar la estabilidad de Internet por medio de procesos basados en
el consenso.
El papel de ICANN
ICANN coordina la administración de los elementos técnicos del DNS para garantizar la
resolución unívoca de los nombres, para que los usuarios puedan encontrar todas las
direcciones sin ser repetidas.
El funcionamiento de ICANN
En la actualidad, la ICANN está formalmente organizada como una corporación sin fines
de lucro y de utilidad pública. Está administrada por una Junta de Directores, que está
compuesta por seis representantes de las organizaciones de apoyo, sub-grupos que se
ocupan de las secciones específicas de las políticas de ICANN en virtud de la
competencia, ocho representantes independientes del interés público general,
seleccionados a través de un Comité de Nominaciones que representa a todas las
circunscripciones de la ICANN, y el Presidente y Director Ejecutivo, nombrado por el resto
de la Junta.
En la actualidad hay tres organizaciones de apoyo: la GNSO (Generic Names Supporting
Organization) se ocupa de la formulación de políticas sobre dominios genéricos de nivel
superior, ccNSO (Country Code Names Supporting Organization) se ocupa de la
elaboración de políticas relativas a códigos de países en dominios de nivel superior,
la ASO (Address Supporting Organization) se ocupa de la formulación de políticas
en direcciones IP.
ICANN también se basa en algunos comités consultivos para recibir asesoramiento sobre
los intereses y necesidades de los interesados que no participen directamente en las
organizaciones de apoyo. Entre ellos figuran el Comité Asesor Gubernamental (GAC), que
está integrado por representantes de un gran número de gobiernos nacionales de todo el
mundo; el ALAC (At-Large Advisory Comité), que está integrado por representantes de
organizaciones de los distintos usuarios de Internet de todo el mundo; el sistema DNS
y TLG (Technical Liaison Group) compuesto por representantes de otras organizaciones
técnicas internacionales de Internet.
Procedimientos
ICANN periódicamente sostiene reuniones públicas de rotación entre los continentes para
fomentar la participación mundial en sus procesos. Los críticos argumentan que los
lugares de estas reuniones se encuentran a menudo en los países con menor uso de
Internet. Lo que se quiere dar a conocer es que ICANN tiene mandato en todo el mundo y
una parte esencial de su misión es fomentar el uso de Internet donde es débil.
Se creó en California debido a la iniciativa de Jon Postel, uno de sus fundadores. ICANN
sigue en el mismo edificio donde se creó, que es una oficina del Instituto de Ciencias de la
Información en la Universidad del Sur de California.
Las resoluciones de la junta de ICANN se publican en su página web para que las pueda
consultar todo el mundo.
Política Uniforme
Una de las tareas que se le pidió que realizara es abordar la cuestión del nombre de
dominio propiedad del gTLD. ICANN intentó que esa política fuera elaborada en estrecha
cooperación con la Organización Mundial de la Propiedad Intelectual (OMPI), y el resultado
ha pasado a ser conocido como la Política de Resolución de Disputas de Nombres de
Dominio Uniformes (UDRP).
Esta política esencialmente intenta proporcionar un mecanismo de respuesta rápida,
económica y razonable de resolución de conflictos de nombres de dominio.
Historia
El mandato original de la ICANN provino del Gobierno de los Estados Unidos durante el
gobierno de Bill Clinton y George W. Bush. El 30 de enero de 1998, el Consejo Nacional
de Telecomunicaciones y Administración de Información (NTIA), una agencia del
Departamento de Comercio de los EE.UU., comentó que era necesaria "una propuesta
para mejorar la gestión técnica de Internet los nombres y las direcciones". La propuesta de
elaboración de normas, o "Libro Verde".
Se publicó en el Registro Federal el 20 de febrero de 1998, y ofrecía oportunidades para
comentarios del público. NTIA ha recibido más de 650 observaciones desde el 23 de
marzo de 1998, cuando se cerró el periodo de comentarios.
El Libro Verde propone ciertas acciones destinadas a privatizar la gestión de Internet, los
nombres y las direcciones de una manera que permita el desarrollo de sólidas
competencias y facilite la participación global en la gestión de Internet. Además, propone
para la discusión una serie de cuestiones relacionadas con la gestión de DNS, incluido el
sector privado. ICANN se creó en respuesta a esta política.
En septiembre y octubre de 2003, la ICANN desempeñó un papel crucial en el conflicto en
torno a VeriSign's "wild card", un servicio de DNS. Después de una carta abierta de la
ICANN, un ultimátum a VeriSign, la empresa voluntariamente terminó el servicio el 4 de
octubre de 2003. Tras este paso, VeriSign presentó una demanda contra ICANN el 27 de
febrero de 2004, alegando que ICANN había sobrepasado su autoridad, buscando a través
de la demanda para reducir la ambigüedad sobre la autoridad de ICANN. La lucha contra
los monopolios VeriSign componente de la reclamación fue desestimada en agosto de
2004.
El 17 de mayo de 2004, ICANN publicó un proyecto de presupuesto para el año 2004-05.
Incluye propuestas para aumentar la transparencia y el profesionalismo de sus
operaciones, y aumenta en gran medida su propuesta de gasto. El Consejo Europeo
Nacional de dominio de nivel superior Registros (CENTR), que representa los registros de
Internet de 39 países, rechazó el aumento, acusando a ICANN de una falta de prudencia
financiera. A pesar de las críticas, se llegó a un acuerdo de registro para los dominios de
nivel superior.JOBS y.TRAVEL que incluye una tasa de 2 dólares por cada dominio de las
empresas autorizadas.
Junto con el éxito de las negociaciones.TRAVEL y.JOBS, los nombres de dominio.MOBI,
y.CAT son algunos de los nuevos dominios de nivel superior establecidos por ICANN.
El 10 de mayo de 2006 la ICANN no aprobó un plan para un nuevo ".XXX" sufijo que han
sido designados para los sitios web con contenido pornográfico. ICANN rechazó
formalmente.XXX el 30 de marzo de 2007 durante su reunión en Lisboa, Portugal, aunque
posteriormente, el 25 de junio de 2010, decidieron dar vía libre al sufijo que finalmente verá
la luz a principios de 2011.
El 26 de julio de 2006, el Gobierno de los Estados Unidos renovó el contrato con la ICANN
para la ejecución de la IANA por un período adicional de cinco años.5
Logros
ICANN estableció la competencia en el mercado para los registros de nombres de dominio
genéricos de primer nivel quitando el monopolio. Implementó la Política de Resolución de
Disputas de Nombres de Dominio Uniformes (UDRP). Ha adoptado normas generales para
nombres de dominios internacionalizados (IDN), lo que ha permitido el registro de dominios
en muchos idiomas, cada zona tiene sus registros permitidos.
Alternativas
Se han sugerido alternativas a ICANN para la gestión de nombres DNS y el espacio de
direcciones, entre ellas:
Dejar que el Gobierno de los EE. UU. realice las tareas de la ICANN directamente.
Asignación de tareas del ICANN a la Unión Internacional de Telecomunicaciones.
Dejar al Registro Regional de Internet gestionar las direcciones.
El abandono de todo control y dejar que los nombres DNS sean gratuitos para todos.
La creación de una nueva organización sin fines de lucro sin ningún vínculo con la
actual, como por ejemplo OpenNIC.
Próximos retos
Implementar nombres de dominio internacionalizados y nuevos dominios de nivel
superior genéricos.
Aumentar la seguridad y estabilidad de los identificadores únicos de Internet.
Supervisar el agotamiento del espacio de direcciones IPv4 y liderar el cambio hacia la
adopción del IPv6.
Mantener y mejorar la confianza en el mercado de dominios de nivel superior
genéricos.
Luchar por la excelencia en las operaciones clave.
Fortalecer el modelo de múltiples partes interesadas de ICANN para atender la
creciente demanda y las necesidades cambiantes.
Reforzar la responsabilidad y el gobierno.
Garantizar la estabilidad financiera y la responsabilidad.
Puertos
Los administradores de servidor pueden elegir si los clientes utilizan TCP puerto 25
(SMTP) o el puerto 587 (Presentación) para retransmitir el correo saliente a una inicial del
servidor de correo.3 Las especificaciones y muchos servidores soportan ambos. Aunque
algunos servidores soportan el puerto 465 para el legado SMTP seguro en violación de las
especificaciones, es preferible utilizar los puertos estándar y comandos ESMTP estándar
de acuerdo con RFC 3207, si se debe utilizar una sesión segura entre el cliente y el
servidor.
Algunos servidores están configurados para rechazar toda la retransmisión en el puerto 25,
pero los usuarios válidos de autenticación en el puerto 587 pueden retransmitir correo a
cualquier dirección válida. Algunos proveedores de servicios de Internet interceptan el
puerto 25, volviendo a dirigir el tráfico a su propio servidor SMTP, independientemente de
la dirección de destino. Esto significa que no es posible para sus usuarios acceder a un
servidor SMTP fuera de la red del ISP a través del puerto 25.
Algunos servidores SMTP soportan el acceso autenticado en otro puerto que no sea 587 o
25 para permitir a los usuarios conectarse a ellos, incluso si el puerto 25 está bloqueado,
pero 587 es el puerto estándar y ampliamente apoyada por los usuarios enviar correo
nuevo. Microsoft Exchange Server 2013 SMTP puede escuchar en los puertos 25, 587,
465, 475, y 2525, en función de servidor y si los roles se combinan en un solo servidor. Los
puertos 25 y 587 se utilizan para proporcionar la conectividad del cliente con el servicio de
transporte en la parte delantera de la función de servidor de acceso de cliente (CAS). Los
puertos 25, 465 y 475 son utilizados por el servicio de transporte de buzón de correo. Sin
embargo, cuando la función de buzón se combina con la función de CAS en un único
servidor, el puerto 2525 se utiliza por la función de buzón de SMTP desde el servicio de
transporte de extremo delantero del CAS, CAS, mientras que continúa para utilizar el
puerto 25. Puerto 465 es utilizado por el servicio de transporte de buzón de correo para
recibir las conexiones de cliente proxy de la función CAS. Puerto 475 es utilizado por la
función de buzón para comunicarse directamente con otras funciones de buzón, la
transferencia de correo entre el servicio de envío de transporte de buzón de correo y el
servicio de entrega de transporte buzón.
Puede que el servidor SMTP soporte las extensiones definidas en el RFC 1651, en este
caso, la orden HELO puede ser sustituida por la orden EHLO, con lo que el servidor
contestará con una lista de las extensiones admitidas. Si el servidor no soporta las
extensiones, contestará con un mensaje "500 Syntax error, command unrecognized".
En el ejemplo pueden verse las órdenes básicas de SMTP:
De los tres dígitos del código numérico, el primero indica la categoría de la respuesta,
estando definidas las siguientes categorías:
2XX, la operación solicitada mediante el comando anterior ha sido concluida con éxito
3XX, la orden ha sido aceptada, pero el servidor esta pendiente de que el cliente le
envíe nuevos datos para terminar la operación
4XX, para una respuesta de error, pero se espera a que se repita la instrucción
5XX, para indicar una condición de error permanente, por lo que no debe repetirse la
orden
Una vez que el servidor recibe el mensaje finalizado con un punto puede almacenarlo si es
para un destinatario que pertenece a su dominio, o bien retransmitirlo a otro servidor para
que finalmente llegue a un servidor del dominio del receptor.
$telnet mail.ficct.uagrm.edu.bo 25
S: Trying 200.87.51.3...
Connected to mail.ficct.uagrm.edu.bo.
Escape character is '^]'.
220 proxy.ficct.uagrm.edu.bo ESMTP Sendmail; Mon, 4 Apr 2016 20:19:04 -0400
C: EHLO proxy.ficct.uagrm.edu.bo
C: DATA
C: Hasta luego.
C: .
C: quit
Cabecera: en el ejemplo las tres primeras líneas del mensaje son la cabecera. En
ellas se usan unas palabras clave para definir los campos del mensaje. Estos campos
ayudan a los clientes de correo a organizarlos y mostrarlos. Los más típicos
son subject (asunto), from (emisor) y to (receptor). Éstos dos últimos campos no hay
que confundirlos con las órdenes MAIL FROM y RCPT TO, que pertenecen al
protocolo, pero no al formato del mensaje.
Cuerpo del mensaje: es el mensaje propiamente dicho. En el SMTP básico está
compuesto únicamente por texto, y finalizado con una línea en la que el único carácter
es un punto.
Post Office Protocol
En informática se utiliza el Post Office Protocol (POP3, Protocolo de Oficina de Correo o
"Protocolo de Oficina Postal") en clientes locales de correo para obtener los mensajes de
correo electrónico almacenados en un servidor remoto. Es un protocolo de nivel de
aplicación en el Modelo OSI.
Las versiones del protocolo POP, informalmente conocido como POP1 y POP2, se han
quedado obsoletas debido a las últimas versiones de POP3. En general cuando se hace
referencia al término POP, se refiere a POP3 dentro del contexto de protocolos de correo
electrónico.
Características
POP3 está diseñado para recibir correo, no para enviarlo; le permite a los usuarios con
conexiones intermitentes o muy lentas (tales como las conexiones por módem), descargar
su correo electrónico mientras tienen conexión y revisarlo posteriormente incluso estando
desconectados. Cabe mencionar que la mayoría de los clientes de correo incluyen la
opción de dejar los mensajes en el servidor, de manera tal que, un cliente que utilice POP3
se conecta, obtiene todos los mensajes, los almacena en la computadora del usuario como
mensajes nuevos, los elimina del servidor y finalmente se desconecta. En contraste, el
protocolo IMAP permite los modos de operación conectado y desconectado.
Los clientes de correo electrónico que utilizan IMAP dejan por lo general los mensajes en
el servidor hasta que el usuario los elimina directamente. Esto y otros factores hacen que
la operación de IMAP permita a múltiples clientes acceder al mismo buzón de correo. La
mayoría de los clientes de correo electrónico soportan POP3 ó IMAP; sin embargo, solo
unos cuantos proveedores de internet ofrecen IMAP como valor agregado de sus servicios.
Los clientes que utilizan la opción dejar mensajes en el servidor por lo general utilizan la
orden UIDL ('Unique IDentification Listing). La mayoría de las órdenes de POP3
identifican los mensajes dependiendo de su número ordinal del servidor de correo. Esto
genera problemas al momento que un cliente pretende dejar los mensajes en el servidor,
ya que los mensajes con número cambian de una conexión al servidor a otra. Por ejemplo
un buzón de correo contenía 5 mensajes en la última conexión, después otro cliente
elimina el mensaje número 3, si se vuelve a iniciar otra conexión, ya el número que tiene el
mensaje 4 pasará a ser 3, y el mensaje 5 pasará a ser número 4 y la dirección de estos
dos mensajes cambiara. El UIDL proporciona un mecanismo que evita los problemas de
numeración. El servidor le asigna una cadena de caracteres única y permanente al
mensaje. Cuando un cliente de correo compatible con POP3 se conecta al servidor utiliza
la orden UIDL para obtener el mapeo del identificador de mensaje. De esta manera el
cliente puede utilizar ese mapeo para determinar qué mensajes hay que descargar y
cuáles hay que guardar al momento de la descarga.
Al igual que otros viejos protocolos de internet, POP3 utilizaba un mecanismo de firmado
sin cifrado. La transmisión de contraseñas de POP3 en texto plano aún se da. En la
actualidad POP3 cuenta con diversos métodos de autenticación que ofrecen una diversa
gama de niveles de protección contra los accesos ilegales al buzón de correo de los
usuarios. Uno de estos es APOP, el cual utiliza funciones MD5 para evitar los ataques de
contraseñas. Mozilla, Eudora, Novell Evolution así como Mozilla Thunderbird implementan
funciones APP.
Órdenes
Para establecer una conexión a un servidor POP, el cliente de correo abre una conexión
TCP en el puerto 110 del servidor. Cuando la conexión se ha establecido, el servidor POP
envía al cliente POP y después las dos máquinas se envían entre sí otras órdenes y
respuestas que se especifican en el protocolo. Como parte de esta comunicación, al
cliente POP se le pide que se autentifique (Estado de autenticación), donde el nombre de
usuario y la contraseña del usuario se envían al servidor POP. Si la autenticación es
correcta, el cliente POP pasa al Estado de transacción, en este estado se pueden utilizar
órdenes LIST, RETR y DELE para mostrar, descargar y eliminar mensajes del servidor,
respectivamente. Los mensajes definidos para su eliminación no se quitan realmente del
servidor hasta que el cliente POP envía la orden QUIT para terminar la sesión. En ese
momento, el servidor POP pasa al Estado de actualización, fase en la que se eliminan los
mensajes marcados y se limpian todos los recursos restantes de la sesión.
Es posible conectarse manualmente al servidor POP3 haciendo Telnet al puerto 110. Es
muy útil cuando envían un mensaje con un fichero muy largo que no se quiere recibir.
C: USER grupo01sa
S: +OK
C: PASS grupo0101
C: LIST
S: +OK 3 messages:
1 446
2 393
3 427
.
C: RETR 1
Transacciones HTTP
Una transacción HTTP está formada por un encabezado seguido, opcionalmente, por una
línea en blanco y algún dato. El encabezado especificará cosas como la acción requerida
del servidor, o el tipo de dato retornado, o el código de estado.
El uso de campos de encabezados enviados en las transacciones HTTP le dan gran
flexibilidad al protocolo. Estos campos permiten que se envíe información descriptiva en la
transacción, permitiendo así la autenticación, cifrado e identificación de usuario.
Un encabezado es un bloque de datos que precede a la información propiamente dicha,
por lo que muchas veces se hace referencia a él como metadato —porque tiene datos
sobre los datos—.
Si se reciben líneas de encabezado del cliente, el servidor las coloca en las variables de
entorno de CGI con el prefijo HTTP_ seguido del nombre del encabezado. Cualquier
carácter guion ( - ) del nombre del encabezado se convierte a caracteres "_".
El servidor puede excluir cualquier encabezado que ya esté procesado,
como Authorization, Content-type y Content-length. El servidor puede elegir excluir alguno
o todos los encabezados, si incluirlos, si se excede algún límite del entorno de sistema.
Ejemplos de esto son las variables HTTP_ACCEPT y HTTP_USER_AGENT.
HTTP_ACCEPT. Los tipos MIME que el cliente aceptará, dados los encabezados
HTTP. Otros protocolos quizás necesiten obtener esta información de otro lugar. Los
elementos de esta lista deben estar separados por una coma, como se dice en la
especificación HTTP: tipo, tipo.
Hay que tener en cuenta que la lista no es una lista completa de los campos de
encabezado y que todos ellos sólo tienen sentido en una dirección.
Versiones
HTTP ha pasado por múltiples versiones del protocolo, muchas de las cuales son
compatibles con las anteriores. El RFC 2145 describe el uso de los números de versión de
HTTP. El cliente le dice al servidor al principio de la petición la versión que usa, y el
servidor usa la misma o una anterior en su respuesta.
0.9
Obsoleta. Soporta sólo un comando, GET, y además no especifica el número de
versión HTTP. No soporta cabeceras. Como esta versión no soporta POST, el
cliente no puede enviarle mucha información al servidor.
HTTP/1.0 (mayo de 1996)
Esta es la primera revisión del protocolo que especifica su versión en las
comunicaciones, y todavía se usa ampliamente, sobre todo en servidores proxy.
HTTP/1.1 (junio de 1999)
Versión actual; las conexiones persistentes están activadas por defecto y
funcionan bien con los proxies. También permite al cliente enviar múltiples
peticiones a la vez por la misma conexión (pipelining) lo que hace posible eliminar
el tiempo de Round-Trip delay por cada petición.
HTTP/1.2
Los primeros borradores de 1995 del documento PEP — an Extension Mechanism
for HTTP (el cuál propone el Protocolo de Extensión de Protocolo, abreviado PEP)
los hizo el World Wide Web Consortium y se envió al Internet Engineering Task
Force. El PEP inicialmente estaba destinado a convertirse en un rango distintivo de
HTTP/1.2.3 En borradores posteriores, sin embargo, se eliminó la referencia a
HTTP/1.2. El RFC 2774 (experimental), HTTP Extension Framework, incluye en
gran medida a PEP. Se publicó en febrero de 2000.
User-Agent: nombre-cliente
[Línea en blanco]
La respuesta del servidor está formada por encabezados seguidos del recurso
solicitado, en el caso de una página web:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1221
<html>
<body>
(Contenido)
</body>
</html>
Métodos de petición
HTTP define 8 métodos (algunas veces referido como "verbos") que indica la acción
que desea que se efectúe sobre el recurso identificado. Lo que este recurso
representa, si los datos pre-existentes o datos que se generan de forma dinámica,
depende de la aplicación del servidor. A menudo, el recurso corresponde a un
archivo o la salida de un ejecutable que residen en el servidor.
HEAD
Pide una respuesta idéntica a la que correspondería a una petición GET, pero sin
el cuerpo de la respuesta. Esto es útil para la recuperación de meta-información
escrita en los encabezados de respuesta, sin tener que transportar todo el
contenido.
GET
Pide una representación del recurso especificado. Por seguridad no debería ser
usado por aplicaciones que causen efectos ya que transmite información a través
de la URI agregando parámetros a la URL. La petición puede ser simple, es decir
en una línea o compuesta de la manera que muestra el ejemplo.
Ejemplo:
GET /images/logo.png HTTP/1.1 obtiene un recurso llamado logo.png
Ejemplo con parámetros:
/index.php?page=main&lang=es
POST
Envía los datos para que sean procesados por el recurso identificado. Los datos se
incluirán en el cuerpo de la petición. Esto puede resultar en la creación de un
nuevo recurso o de las actualizaciones de los recursos existentes o ambas cosas.
PUT
Sube, carga o realiza un upload de un recurso especificado (archivo), es el camino
más eficiente para subir archivos a un servidor, esto es porque en POST utiliza
un mensaje multiparte y el mensaje es decodificado por el servidor. En contraste,
el método PUT te permite escribir un archivo en una conexión socket establecida
con el servidor.
La desventaja del método PUT es que los servidores de hosting compartido no lo
tienen habilitado.
Ejemplo:
PUT /path/filename.html HTTP/1.1
DELETE
Borra el recurso especificado.
TRACE
Este método solicita al servidor que envíe de vuelta en un mensaje de respuesta,
en la sección del cuerpo de entidad, toda la data que reciba del mensaje de
solicitud. Se utiliza con fines de comprobación y diagnóstico.
OPTIONS
Devuelve los métodos HTTP que el servidor soporta para un URL específico. Esto
puede ser utilizado para comprobar la funcionalidad de un servidor web mediante
petición en lugar de un recurso específico.
CONNECT
Se utiliza para saber si se tiene acceso a un host, no necesariamente la petición
llega al servidor, este método se utiliza principalmente para saber si un proxy nos
da acceso a un host bajo condiciones especiales, como por ejemplo "corrientes" de
datos bidireccionales encriptadas (como lo requiere SSL).
Códigos de respuesta
1xx Mensajes
N° Descripción
100 111 Conexión rechazada
N° Descripción
200 OK
201-203 Información no oficial
204 Sin Contenido
205 Contenido para recargar
206 Contenido parcial
3xx Redirección
N° Descripción
301 Mudado permanentemente
302 Encontrado
303 Vea otros
304 No modificado
305 Utilice un proxy
307 Redirección temporal
N° Descripción
400 Solicitud incorrecta
401 No autorizado
402 Pago requerido
403 Prohibido
404 No encontrado
409 Conflicto
410 Ya no disponible
412 Falló precondición
N° Descripción
500 Error interno
501 No implementado
502 Pasarela incorrecta
503 Servicio no disponible
504 Tiempo de espera de la pasarela agotado
505 Versión de HTTP no soportada
Multipurpose Internet Mail Extensions
Multipurpose Internet Mail Extensions o MIME (en español "extensiones multipropósito
de correo de internet") son una serie de convenciones o especificaciones dirigidas al
intercambio a través de Internet de todo tipo de archivos (texto, audio, vídeo, etc.) de forma
transparente para el usuario. Una parte importante del MIME está dedicada a mejorar las
posibilidades de transferencia de texto en distintos idiomas y alfabetos. En sentido general
las extensiones de MIME van encaminadas a soportar:
Prácticamente todos los mensajes de correo electrónico escritos por personas en Internet
y una proporción considerable de estos mensajes generados automáticamente son
transmitidos en formato MIME a través de SMTP. Los mensajes de correo electrónico en
Internet están tan cercanamente asociados con el SMTP y MIME que usualmente se les
llama mensaje SMTP/MIME.
En 1991 la IETF (Grupo de Trabajo en Ingeniería de Internet, Internet Engineering Task
Force en inglés) comenzó a desarrollar esta norma y desde 1994 todas las extensiones
MIME están especificadas de forma detallada en diversos documentos oficiales
disponibles en Internet.
MIME está especificado en seis Request for Comments o RFC (en español "solicitud de
comentarios): RFC 2045, RFC 2046, RFC 2047, RFC 4288, RFC 4289 y RFC 2077.
Introducción
El protocolo básico de transmisión de mensajes electrónicos de Internet soporta sólo
caracteres ASCII de 7 bit (véase también 8BITMIME). Esto limita los mensajes de correo
electrónico, ya que incluyen sólo caracteres suficientes para escribir en un número
reducido de lenguajes, principalmente Inglés. Otros lenguajes basados en el Alfabeto latino
es adicionalmente un componente fundamental en protocolos de comunicación
como HTTP, el que requiere que los datos sean transmitidos como un e-mail aunque los
datos pueden no ser un e-mail propiamente dicho. Los clientes de correo y los servidores
de correo convierten automáticamente desde y a formato MIME cuando envían o reciben
(SMTP/MIME) e-mails.
Nomenclatura de tipos
MIME asigna un nombre a cada tipo de datos. Los nombres siguen el siguiente formato:
tipo/subtipo (tipo como subtipo son cadenas de caracteres)
El tipo define la categoría general de los datos y el substipo define un tipo más específico
de esos datos. El tipo tener los siguientes valores:
text: Indica que el contenido es texto plano. Ejemplos de subtipos: html, xml
multipart: Indica que tiene multiples partes de datos independientes. Ejemplos de
subtipos: form-data, digest
message: Para encapsular un mensaje existente. Por ejemplo cuando queremos
responder a un mensaje de correo incorporando el mensaje origen. Ejemplos de
subtipos: partial, rfc822
image: Indica que es una imagen. Ej de subtipos: png, gif
audio: Indica que es un audio. Ejemplos de subtipos: mpeg, avi
video: Indica que es un video. Ejemplos de subtipos: mp4, 32kadpcm
application: Indica que se trata de datos de aplicación los cuales pueden ser binarios.
Ejemplos de subtipos: json, pdf
MIME headers
MIME-Version
La presencia de este encabezado indica que el mensaje utiliza el formato MIME. Su valor
es típicamente igual a "1.0" por lo que este encabezado aparece como:
MIME-Version: 1.0
Debe señalarse que los implementadores han intentado cambiar el número de versión en
el pasado y el cambio ha tenido resultados imprevistos. En una reunión de IETF realizada
en julio 2007 se decidió mantener el número de versión en "1.0" aunque se han realizado
muchas actualizaciones a la versión de MIME.
Content-Type
Este encabezado indica el tipo de medio que representa el contenido del mensaje,
consiste en un tipo: type y un subtipo: subtype, por ejemplo:
Content-Type: text/plain
A través del uso del tipo multiparte (multipart), MIME da la posibilidad de crear mensajes
que tengan partes y subpartes organizadas en una estructura arbórea en la que los
nodos hoja pueden ser cualquier tipo de contenido no multiparte y los nodos que no
son hojas pueden ser de cualquiera de las variedades de tipos multiparte. Este mecanismo
soporta:
Content-Type: application/vnd.oasis.opendocument.text;
name="Carta.odt"
Content-Disposition: inline;
filename="Carta.odt"
reenviar con el mensaje original adjunto (multipart/mixed con una parte text/plain y el
mensaje original como una parte message/rfc822)
contenido alternativo, un mensaje que contiene el texto tanto en texto plano como en
otro formato, usualmente HTML (multipart/alternativecon el mismo contenido en forma
de text/plain y text/html)
muchas otras construcciones de mensaje
Content-Transfer-Encoding
En Junio de 1992, MIME (RFC 1341 queda obsoleta por la nueva RFC 2045) define un
conjunto de métodos para representar datos binarios usando texto ASCII. El encabezado
MIME content-transfer-encoding: indica el método que ha sido usado. La RFC y la lista
de IANA definen los siguientes valores, que no son sensibles a mayúsculas ni minúsculas:
No existe una codificación definida explícitamente para enviar datos binarios arbitrarios a
través de un transporte SMTP con las extensiones 8BITMIME. Por tanto base64 o quoted-
printable (con sus ineficiencias asociadas) tienen que ser usadas aún. Estas restricciones
no se aplican a otros usos de MIME como son Servicios Web con adjuntos MIME o MTOM
Encoded-Word
Desde la RFC 2822, los nombres y valores de los encabezados MIME de mensajes son
siempre caracteres ASCII; los valores que contengan otro tipo de caracteres tienen que
usar la sintaxis de palabra codificada o encoded-word (RFC 2047) en lugar del texto
literal. Esta sintaxis utiliza una cadena de caracteres ASCII que indica el conjunto de
caracteres original (el "charset") y el content-transfer-encoding usado para mapear los
bytes del conjunto original a caracteres ASCII.
Su forma general es:
=?charset?codificación?texto codificado?=
charset puede ser cualquier conjunto de caracteres registrado con IANA. Típicamente
coincidirá con el charset del cuerpo del mensaje.
codificación puede ser: " Q " que denota Q-encoding que es similar a la
codificación quoted-printable, o " B " que denota la codificación base64.
texto codificado es el texto codificado con Q-encoding o base64.
Subject: =?utf-8?Q?=C2=A1Hola,_se=C3=B1or!?=
es interpretado como:
Mensajes multiparte
Un mensaje MIME multiparte contiene una frontera en el encabezado "Content-type:"; esta
frontera, que no puede aparecer en ninguna de las partes, es ubicada entre cada una de
ellas, y al inicio y al final del cuerpo del mensaje,
Los tipos de contenido definidos por el estándar MIME tienen gran importancia también
fuera del contexto de los mensajes electrónicos. Ejemplo de esto son algunos protocolos
de red tales como HTTP de la Web. HTTP requiere que los datos sean transmitidos en un
contexto de mensajes tipo e-mail aunque los datos pueden no ser un e-mail propiamente
dicho.
En la actualidad ningún programa de correo electrónico o navegador de Internet puede
considerarse completo si no acepta MIME en sus diferentes facetas (texto y formatos de
archivo).
Arquitectura Web
1. Introducción - La Web
World Wide Web:
Hipertexto.
Hipermedia.
En el 2001 había más de un billón de URLs accesibles
esquema://[usuario];[password]@<maquina>:[puerto]/<camino>;[parametros]?[consulta
]#[sección]
Esquema: protocolo (http, https, file, ftp, news, mailto, ..).
Usuario:password: para recursos de acceso restringido
Máquina: nombre del servidor
Puerto: número del puerto donde escucha el servidor.
Camino: Directorio virtual y nombre del recurso.
Parámetros: pares nombre=valor utilizados por algunos esquemas.
Consulta: pares nombre=valor separados por &, utilizados en algunas aplicaciones
web.
Sección: nombre de una parte del recurso.
Ejemplos:
http://www.hardware.com:2000/pc/check.cgi?item=1273&model=B
ftp://jose:suclave@www.hardware.com/informacion.txt
Ejemplo
Núñez & Cía. ? N%FA%F1ez+%26+C%EDa
Beneficios:
Usabilidad/flexibilidad/interoperabilidad/ escalabilidad.
Clientes
Originan el trafico web.
Navegadores
Programa que realiza las peticiones, a solicitud de un usuario, y recibe, analiza y presenta
las respuestas.
Pasos:
Funciones de los navegadores
Construyen y mandan la petición HTTP
Reciben, interpretan y presentan la respuesta.
Código MIME
Proporcionan el interfaz para conectarse y utilizar otros servicios: mail, news, ftp, etc.
Caché local.
Spiders
Robots dedicados a la b úsqueda automática de información.
Parten de la página principal de un sitio web, y examinan los enlaces embebidos que
encuentran.
Las peticiones están espaciadas en el tiempo para no sobrecargar el servidor.
La información se utiliza posteriormente en aplicaciones de búsqueda (google, yahoo).
Los recursos dinámicos (CGI, PHP, etc.) no son indexados.
Algunos sitios web no desean ser indexados:
Trabajo básico:
Estáticos.
Dinámicos (scripts que generan la respuesta dinámicamente).
Pasos:
Autenticación.
El recurso apuntado en la URL incluye código que debe ser ejecutado para resolver el
contenido de la respuesta.
Dos tipos:
Ficheros HTML que incluyen macros que el servidor (un módulo) interpreta para
insertar la información precisa.
El servidor reconoce este tipo de recursos por la extensión
Manipulación de BD y archivos.
Interfaz:
Los usuarios acceden a través de navegadores, móviles, PDAs,etc.
Modelo de capas
Las aplicaciones web se modelizan mediante lo que se conoce como modelo de capas.
Tipos:
Cliente (fat client): La lógica de negocio está inmersa dentro de la aplicación que
realiza el interfaz de usuario, en el lado del cliente.
Servidor: Administra los datos.
Limitaciones.
Los procesos pueden ser manejados de forma separada al interfaz de usuario y a los
datos
La capa intermedia centraliza la lógica de negocio, haciendo la administración más
sencilla.