<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>El Cedazo &#187; Kent Mentolado</title>
	<atom:link href="https://eltamiz.com/elcedazo/category/kent-mentolado/feed/" rel="self" type="application/rss+xml" />
	<link>https://eltamiz.com/elcedazo</link>
	<description>Comparte conocimiento.</description>
	<lastBuildDate>Sun, 01 Feb 2026 06:35:56 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.5/es/</creativeCommons:license>
		<item>
		<title>Las tripas de Internet &#8211;  Historia: El día del Gran Gusano</title>
		<link>https://eltamiz.com/elcedazo/2008/11/04/las-tripas-de-internet-historia-el-dia-del-gran-gusano/</link>
		<comments>https://eltamiz.com/elcedazo/2008/11/04/las-tripas-de-internet-historia-el-dia-del-gran-gusano/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 19:32:30 +0000</pubDate>
		<dc:creator>Kent Mentolado</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[Kent Mentolado]]></category>
		<category><![CDATA[gusano]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://eltamiz.com/elcedazo/?p=1046</guid>
		<description><![CDATA[Quiero aprovechar estas fechas para hacer un pequeño inciso en la serie Las Tripas de Internet. Es un artículo que habla sobre un día especial en la historia de Internet, el dia que todo cambio y la idea del paraiso intelectual en la Red cayó por su propio peso. Digo que aprovecho estas fechas porque [...]]]></description>
			<content:encoded><![CDATA[<p>Quiero aprovechar estas fechas para hacer un pequeño inciso en la serie <a href="http://eltamiz.com/elcedazo/2008/09/14/las-tripas-de-internet-presentacion/" class="liinternal">Las Tripas de Internet</a>. Es un artículo que habla sobre un día especial en la historia de Internet, el dia que todo cambio y la idea del paraiso intelectual en la Red cayó por su propio peso. Digo que aprovecho estas fechas porque el 2 de Noviembre se cumplieron 20 años del gusano Morris, el Gran Gusano<sup>[<a href="https://eltamiz.com/elcedazo/2008/11/04/las-tripas-de-internet-historia-el-dia-del-gran-gusano/#footnote_0_1046" id="identifier_0_1046" class="footnote-link footnote-identifier-link" title="Nota del editor: Desgraciadamente, el editor no tuvo tiempo de revisar la entrada hasta unos d&iacute;as despu&eacute;s, disculpas&amp;#8230;">1</a>]</sup>.</p>

<div id="attachment_1053" class="wp-caption alignright" style="width: 235px"><a href="http://en.wikipedia.org/wiki/Image:Morris_Worm.jpg" rel="nofollow" class="liimagelink"><img class="size-medium wp-image-1053" src="http://eltamiz.com/elcedazo/wp-content/uploads/2008/11/morris_worm-225x300.jpg" alt="" width="225" height="300" /></a><p class="wp-caption-text">Disco con el código del gusano Morris, expuesto en Boston Museum of Science. Fuente: Wikimedia Commons</p></div>

<p>Antes de nada, establezcamos lo que es un virus y concretamente un gusano. Como sabrás, un virus es algo &#8220;malo&#8221; que le puede entrar al ordenador. Un virus no es más que <strong>un simple programa</strong>, al igual que un navegador o la calculadora de Windows. La diferencia fundamental es que el virus es un programa pensado para hacer daño (borrando archivos, robando contraseñas, rompiendo sistemas&#8230;). En general, otro punto importante de los virus es que tienen medios para propagarse e infectar otros ordenadores. Hay subtipos de virus dependiendo de los objetivos y técnicas que usen, uno de estos tipos son los gusanos.</p>

<p>Un gusano es un virus que, por sí mismo, no hace absolutamente ningún daño: es un programa para nada. Sin embargo, <strong>un gusano se especializa en propagarse muy rápidamente</strong>. Es tan virulento, que prácticamente obliga al ordenador a centrarse únicamente en replicar el gusano, haciendo que todo lo demás vaya lento hasta llegar finalmente a bloquear completamente el ordenador. Por poner un ejemplo, imagina un virus biológico que infecta a una célula de tu cuerpo. No le hace ningún daño, pero obliga a la célula a fabricar nuevos virus (que infectarán otras células) tan frenéticamente que la célula deja de alimentarse y ejercer sus funciones normales. Técnicamente el virus no ha dañado ninguna de tus células, sin embargo tu estás muerto. Esto es el comportamiento de un gusano.</p>

<p>Teniendo claro lo que es un gusano, ahora veamos un poco el contexto histórico. Estamos en Noviembre de 1988. Internet ya empieza a ser una realidad, actualmente la forman 60.000 ordenadores. Los informáticos están emocionados con esta nueva herramienta de intercambio de conocimiento. Se respira una atmósfera de compañerismo y buenas intenciones. Todos ven en Internet una grandísima herramienta llamada a cambiar el mundo. El gusano Morris mató esta idea.</p>

<p>En el MIT, Robert Tappan Morris, estudiante de 23 años, escribe un pequeño programa cuya función era pasar desapercibido y copiarse a otros ordenadores de Internet. Más que maldad, era un simple experimento académico. Ya se habían desarrollado previamente programas que se copiaban entre ordenadores, aunque en estos casos eran programas con una utilidad clara (por ejemplo, para que los administradores pudieran actualizar varios sistemas a la vez).</p>

<div id="attachment_1054" class="wp-caption alignright" style="width: 306px"><a href="http://en.wikipedia.org/wiki/Image:Robert_Tappan_Morris.jpg" rel="nofollow" class="liimagelink"><img class="size-medium wp-image-1054" src="http://eltamiz.com/elcedazo/wp-content/uploads/2008/11/robert_tappan_morris-296x300.jpg" alt="" width="296" height="300" /></a><p class="wp-caption-text">Robert Tappan Morris. Fuente: Wikimedia Commons</p></div>

<p>Robert diseña su programa para que se copie a otros ordenadores. La copia no se realiza &#8220;mágicamente&#8221;, sino que el gusano aprovecha a algunos fallos de otros programas previamente ejecutándose en el ordenador objetivo. A través de estos fallos, el gusano consigue introducir una copia de si mismo en otro sistema. Una vez en el ordenador víctima, el gusano intenta infectar otros ordenadores por el mismo método. Antes de infectar un ordenador, le pregunta &#8220;¿Estás infectado?&#8221; para así evitar desperdiciar esfuerzos. Como seria trivial para un ordenador librarse (solamente hay que hacer un programa que diga &#8220;ya estoy infectado&#8221; cuando el gusano nos pregunte), Robert decide que el programa se copie igualmente 1 de cada 7 veces que la víctima responda &#8220;sí&#8221;. Pensaba que esto era suficiente, pero estaba completamente equivocado. Además de esto, el programa contenía ciertos errores en su código que provocó su propagación con mucha más fuerza que la que Robert había previsto.</p>

<p>El 2 de Noviembre, Robert decide poner en marcha el gusano, soltarlo en Internet. Lo hace a las 6 de la tarde desde el MIT, aproximadamente. A las 8:49, el ordenador de la Unversidad de Utah resulta infectado (una de las primeras víctimas). A las 9:21 se empieza a notar que el ordenador tiene una carga excesiva. A las 10:06 el ordenador está completamente bloqueado. El administrador decide reiniciarlo, para ver como minutos después, el ordenador vuelve a bloquearse: <strong>el pánico cunde</strong>. En Internet empiezan a aparecer mensajes de otros administradores de redes de Universidades que están sufriendo esos mismos problemas. Algo está pasando, nadie sabe nada pero sin duda se trata de algo grave. Durante la noche, los servidores infectados se cuentan por millares. Todos pasan la noche trabajando frenéticamente, unos para librarse de la infección, otros para intentar protegerse.</p>

<p>Durante la noche del día 2, Yee, un estudiante de la Universidad de Berkeley, descubre el problema y publica un mensaje en el que se aconseja desactivar todos los ordenadores y servicios hasta tener claro lo que está pasando. Empieza a ser consciente del gusano, y su mensaje es uno de los primeros que dio la voz de alarma. La mañana siguiente todo es caos: casi todos los servidores se han desconectado de Internet, todo el mundo tiene miedo (hasta el Departamento de Defensa de los Estados Unidos o la NASA decidieron desconectar todos sus sistemas y redes). De hecho, tomando prestada una expresion bursátil, el 3 de Noviembre se considera el <strong>Jueves Negro</strong> de la informática. Robert empieza a ser consciente de lo que ha hecho y decide comentarlo con su amigo Andy Sudduth. Entre los dos, buscan soluciones para erradicar el gusano. Andy publica un mensaje anónimo en Internet advirtiendo del peligro y de sus soluciones. Pero debido al intenso colapso de los sistemas, el mensaje no vio la luz hasta el 25 de Noviembre. Por suerte, Yee trabaja con su universidad y con el MIT para investigar el problema. La noche del 24 de Noviembre el gusano está totalmente descubierto y se publican los &#8220;antídotos&#8221; necesarios para prevenir la infección y destruir el gusano. Para cuando el mensaje de Andy fue leído, la infección estaba controlada y muchos servidores volvían a estar operativos y accesibles.</p>

<p>El gusano dejo tras de sí 6.000 ordenadores infectados (<strong>el 10% de la Red en aquel momento</strong>) y una estimación de pérdidas en tiempo y recursos entre 1 y 10 millones de dólares. Robert fue hallado culpable y condenado a una multa de 10.000 dolares y servicios a la comunidad (probablemente gracias al mensaje de Andy, que de alguna manera reflejaba su intención de arreglar el problema, y a que su padre era el jefe del National Computer Security Center, división de la NSA). Tiene el honor de ser la primera persona condenada por una ley relacionada con Internet. Hoy en día es un respetado profesor del MIT. Pese a su error de juventud, ha conseguido labrarse una carrera en la informática.</p>

<p>Pero el daño mayor fue otro: <strong>miedo</strong>. Internet había dejado de ser una comuna de intercambio de ideas y buenas intenciones. Ahora había problemas, Internet se podía usar para causar daños a gobiernos y empresas. Se escribieron cientos de artículos analizando las consecuencias principalmente intelectuales: había que aprender la lección y diseñar nuestros sistemas con la protección, casi rozando la paranoia, en mente. Un pequeño fallo en un programa y alguien malintencionado pueden provocar fallos catastróficos. El impacto fue tan grande que al gusano Morris se le llama el Gran Gusano, o simplemente El Gusano. No tanto por los sistemas infectados (cualquier virus hoy en día puede infectar más de 6.000 equipos), sino por el impacto psicológico que tuvo.</p>

<p>Sin embargo, en mi opinión, obviamente no hemos aprendido la lección. Internet sigue siendo un campo de batalla para miles de virus. Todos los días aparecen virus nuevos, que infectan sistemas y causan pérdidas. Después de Morris ha habido muchos otros virus que han pasado a la fama por los daños causados, como Nimda, Blaster o RedCode. En todos los casos, el problema ha sido el mismo: programas con una calidad baja que incorporan severos fallos en su funcionamiento. Y por desgracia, no falta quien ve una oportunidad en estos fallos para hacer maldades. Es una batalla en la que <strong>los verdaderos afectados son las proveedores de Internet</strong>. Los usuarios se infectan de vez en cuando, pero con cuidado uno puede estar años sin ser atacado por un virus de Internet. Sin embargo, por un proveedor de Internet pasan enormes cantidades diarias de virus, los cuales tiene que analizar y limpiar para mantener a salvo a sus clientes. Como dato, cuando trabajé en uno de estos proveedores observamos que aproximadamente la mitad de los correos gestionados estaban infectados. Esto quiere decir que si pagábamos 1000€ al mes por nuestra conexión, estábamos gastando 500€ mensuales solamente destinados a recibir virus. Los virus son una amenaza real con implicaciones económicas reales.</p>

<p>Sin embargo, en mi opinión, Robert no hizo algo especialmente malo. Algunos piensan que abrió las puertas a una época de virus y problemas, pero bajo mi punto de vista, simplemente descubrió un problema latente que ya existía. Mejor descubrirlo cuando solo hay 60.000 ordenadores y no ahora que se cuentan por millones. Si se hubiera descubierto antes, muchos servicios ya se habrían desarrollado con la seguridad en mente y quizás hoy Internet fuera un sitio más seguro. Sin embargo, construimos la Internet actual a partir de aquella red primitiva, arrastrando con nosotros las inseguridades de aquellos sistemas.</p>

<hr />

<p><strong>Referencias</strong></p>

<ul>
    <li><a href="http://snowplow.org/tom/worm/worm.html" class="liexternal">The What, Why and How of the 1988 Internet Worm</a></li>
    <li><a href="http://es.wikipedia.org/wiki/Gusano_Morris" rel="nofollow" class="liwikipedia">Gusano Morris</a>, Wikipedia</li>
</ul>

<p>Por si te gusta la arqueología informática, aquí puedes encontrar algunos de los mensajes originales publicados en los días siguientes al gusano Morris:</p>

<ul>
    <li><a href="http://groups.google.com/group/news.sysadmin/browse_thread/thread/8499e46a39a67973/d80ecde9e897b49d?lnk=st&amp;q=Andy+Sudduth+nov+1988#d80ecde9e897b49d" class="liexternal">Mensaje de Andy Sudduth</a></li>
    <li><a href="http://groups.google.com/group/news.sysadmin/topics?start=1320&amp;sa=N" class="liexternal">Mensajes del Jueves Negro</a></li>
</ul>
<ol class="footnotes"><li id="footnote_0_1046" class="footnote">Nota del editor: Desgraciadamente, el editor no tuvo tiempo de revisar la entrada hasta unos días después, disculpas&#8230;</li></ol>]]></content:encoded>
			<wfw:commentRss>https://eltamiz.com/elcedazo/2008/11/04/las-tripas-de-internet-historia-el-dia-del-gran-gusano/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.5/es/</creativeCommons:license>
	</item>
		<item>
		<title>Las tripas de Internet &#8211; Los dominios: servidores DNS</title>
		<link>https://eltamiz.com/elcedazo/2008/10/26/las-tripas-de-internet-los-dominios-servidores-dns/</link>
		<comments>https://eltamiz.com/elcedazo/2008/10/26/las-tripas-de-internet-los-dominios-servidores-dns/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 13:24:07 +0000</pubDate>
		<dc:creator>Kent Mentolado</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[Kent Mentolado]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://eltamiz.com/elcedazo/?p=911</guid>
		<description><![CDATA[Seguimos con otro artículo de Las tripas de Internet. En la anterior entrada hablamos sobre el sistema de nombres de dominio y el archivo hosts. En este artículo, veremos como se distribuye toda la información de los nombres y las direcciones IP a través de Internet, para que cualquier ordenador conectado a la red pueda [...]]]></description>
			<content:encoded><![CDATA[<p>Seguimos con otro artículo de <a href="http://eltamiz.com/elcedazo/2008/09/14/las-tripas-de-internet-presentacion/" class="liinternal">Las tripas de Internet</a>. En la anterior entrada hablamos sobre el sistema de <a href="http://eltamiz.com/elcedazo/2008/10/05/las-tripas-de-internet-los-dominios-nombres-de-dominio/" class="liinternal">nombres de dominio</a> y el archivo hosts. En este artículo, veremos como se distribuye toda la información de los nombres y las direcciones IP a través de Internet, para que cualquier ordenador conectado a la red pueda consultar esos datos.</p>

<p>Hasta ahora hemos visto el sistema de nombres de dominio, por el cual se puede asignar un nombre a cada dirección de Internet. Estos nombres tienen el formato <em>zona3.zona2.zona1</em>. Cada uno de las partes se llama <strong>zona</strong>, y en anterior artículo vimos que siguen una estructura jerárquica y delegada. Además, el sistema DNS es un sistema distribuido: no hay un ordenador central que guarda toda la información de los nombres, sino que esta información está repartida en miles de ordenadores por todo Internet.</p>

<p>Cada servidor del sistema de nombres de dominio (servidor DNS para abreviar) es <strong>responsable</strong> de una zona. Esto es, tiene guardada la información sobre una zona en concreto, por ejemplo <em>eltamiz.com</em>. Este servidor contiene información como la dirección IP correspondiente a <em>www.eltamiz.com</em> o la dirección IP del servidor de correo que se encarga de las direcciones de e-mail acabadas en <em>@eltamiz.com</em> (volveremos sobre este punto en los artículos referentes al sistema de correo de Internet). En el caso de que <em>www.eltamiz.com</em> sea una zona delegada (es decir, se ha cedido el control a otro ordenador para gestionar la zona <em>www.eltamiz.com</em> y crear nombres como <em>prueba.www.eltamiz.com</em>), el servidor de <em>eltamiz.com</em> también conoce <strong>la dirección IP del servidor de la zona</strong> <em>www.eltamiz.com</em>.</p>

<p>Este último es el que convierte el sistema DNS en un sistema distribuido. Quedará mas claro tras ver un ejemplo de como funciona una petición DNS (una petición es una consulta que lanza nuestro ordenador para saber la dirección IP correspondiente a un nombre, por ejemplo <em>correo.example.com</em>):</p>

<div id="attachment_981" class="wp-caption alignright" style="width: 310px"><a href="http://eltamiz.com/elcedazo/wp-content/uploads/2008/10/dns-wikipedia.gif" class="liimagelink"><img class="size-medium wp-image-981" src="http://eltamiz.com/elcedazo/wp-content/uploads/2008/10/dns-wikipedia-300x141.gif" alt="" width="300" height="141" /></a><p class="wp-caption-text">Ejemplo de una petición DNS. Vemos como las respuestas de los servidores (en verde) incluyen información para seguir la búsqueda. De WikimediaCommons</p></div>

<ol>
    <li>Nuestro ordenador tiene configurada la dirección de un servidor DNS, que normalmente pertenece a nuestro proveedor de Internet. Cuando quiere conocer la dirección IP correspondiente a un nombre (a esto lo llamamos <strong>resolver</strong> un nombre) lanza una petición a este servidor (enviando unos paquetes de datos al puerto del servidor DNS, normalmente el 53). No entraremos en detalles sobre esta petición, pero se podría traducir como &#8216;Dime la dirección IP del nombre <em>correo.example.com</em>&#8216;.</li>
    <li>Este servidor DNS comprueba si es el responsable de la zona <em>example.com</em>, para así poder responder a la petición. En caso de no ser el responsable de esa zona (casi nunca lo es), comienza una búsqueda por Internet del dato solicitado. Observa que no es nuestro ordenador quien busca, sino que ordena a otro servidor que busque por él. Decimos que esto es una <strong>búsqueda recursiva</strong>.</li>
    <li>El servidor busca en su memoria la dirección IP de los <strong>servidores raíz</strong> (un servidor raíz es el que actúa como zona &#8216;padre&#8217; de las zonas superiores como <em>.com</em> o <em>.es</em>). A continuación, manda una petición a alguno de los servidores raíz. Esta petición está en lenguaje binario, y seria muy engorroso entrar en detalles técnicos. Para entender el sistema DNS, podemos interpretar esa petición como: &#8216;Dime la dirección IP del nombre <em>correo.example.com</em>&#8216;. El servidor raíz nunca es el responsable de una zona, con lo que responde: &#8216;No tengo ni idea, pregunta al ordenador responsable de la zona .com. Su dirección es XX.XX.XX.XX&#8217;. Observa que en este caso, al contrario que en el paso anterior, el servidor no comienza una búsqueda por Internet, sino que responde &#8216;No se&#8217; y nos da una pista para seguir nuestra búsqueda. Por tanto, es una <strong>búsqueda iterativa</strong> o simplemente no recursiva.</li>
    <li>El servidor DNS inicial (el del proveedor de Internet) lanza ahora una petición similar al responsable de la zona <em>.com</em>: &#8216;Dime la dirección IP del nombre <em>correo.example.com</em>&#8216;. Este, vuelve a responder algo parecido: &#8216;No tengo ni idea, pregunta al servidor responsable de la zona <em>example.com</em>. Su dirección es YY.YY.YY.YY&#8217;</li>
    <li>Estos pasos se repiten hasta que nos topamos con el servidor responsable de la zona buscada, en este caso &#8216;<em>example.com</em>&#8216;. Este nos responde &#8216;Ah si, la dirección de <em>correo.example.com</em> es ZZ.ZZ.ZZ.ZZ&#8217;.</li>
    <li>El servidor del proveedor nos devuelve la respuesta a nuestro ordenador. Ahora que ya tenemos la dirección podemos, por fin, comunicarnos con el servidor llamado <em>correo.example.com</em>.</li>
</ol>

<p>En rigor, no es cierto que un servidor gestione una zona. Normalmente un servidor gestiona cientos de zonas, aunque el concepto es el mismo. Sin embargo, una misma zona no está en un servidor, sino en varios. Uno de esos servidores DNS es el servidor principal o <strong>maestro</strong>. El resto de servidores se llaman servidores secundarios o <strong>esclavos</strong>. El papel de los servidores esclavos es copiar la información del servidor maestro, de manera que si el servidor maestro deja de funcionar, el servidor esclavo retoma el trabajo y puede seguir proporcionando información sobre la zona.</p>

<p>Como habrás visto en el ejemplo, una simple resolución de un nombre puede originar bastante comunicación entre ordenadores repartidos por todo el mundo. Para optimizar este tráfico se utiliza un sistema de <strong>caché de datos</strong>. Una caché de datos consiste en guardar datos que te ha costado conseguir, para que la siguiente vez que tengas que consultarlos sea más rápido. Obviamente no puedes guardar esos datos indefinidamente, pues es posible que en el futuro los datos originales cambien y tu copia quede desfasada. En el sistema DNS, en cada respuesta el servidor informa de cuanto tiempo se puede guardar en caché ese mensaje. En el ejemplo, cada servidor añadiría a su respuesta &#8216;y puedes guardar esta respuesta durante N horas, no hace falta que me vueltas a preguntar en todo ese tiempo&#8217;. De esta manera, nuestro ordenador (o algún otro cliente de nuestro mismo proveedor) vuelva a resolver el nombre <em>correo.example.com</em>,  el servidor del proveedor nos responderá inmediatamente con la dirección IP, puesto que tendrá la respuesta anterior guardada en su caché.</p>

<p>Ahora ya podemos hacernos una idea de como funciona el sistema DNS. Las direcciones IP tienen asociado un nombre compuesto por zonas. La información de cada zona está distribuida entre miles (o quizá millones) de servidores DNS por todo el mundo. Cada uno de estos servidores es dueño y señor de su zona, una pequeña parte de todo el conjunto de nombres de Internet. Cuando alguien quiere resolver un nombre, consulta a un servidores DNS, que a través de varias preguntas a otros servidores encuentra la información correcta.</p>

<p>Como punto final, vamos a hacer un pequeño resumen de los datos que contiene una zona. Los diferentes tipos de datos se llaman <strong>registros</strong>. Hay muchos registros, pero los más importantes son estos:</p>

<ul>
<li><p>SOA (Start Of Authority): guarda información como la dirección de correo del responsable de la zona, la dirección del servidor maestro y el <strong>tiempo de vida</strong> de los datos en caché.</p></li>
<li><p>A (Address): almacena la dirección IP de una zona. Cuando resolvemos el nombre <em>www.eltamiz.com</em>, estamos consultando el registro A de la zona <em>www </em>en el servidor responsable de <em>eltamiz.com</em>.</p></li>
<li><p>NS (Name Server): guarda la dirección IP de los servidores DNS que tienen información de la zona (es decir, el servidor maestro y los esclavos).</p></li>
<li><p>MX (Mail eXchange): indica los servidores de correo que gestionan el email de la zona. Por ejemplo, el registro MX de la zona <em>eltamiz.com</em> señala el servidor de correo que se hace cargo de las direcciones acabadas en <em>@eltamiz.com</em></p></li>
</ul>

<p>Con esto, terminamos los artículos referentes al sistema DNS. Ahora ya podemos comprender todo el proceso que hace que nuestro ordenador pueda enviar datos a un ordenador llamado <em>prueba.example.com</em>. En los siguientes artículos veremos uno de los servicios más comunes: el servicio HTTP, en el cual se apoyan todas las páginas web para funcionar. Hablaremos sobre las direcciones URL, los componentes de una página web moderna&#8230;</p>

<hr />

<p><strong>Preguntas Frecuentes</strong></p>

<p><span style="underline;">¿Porqué crear una zona nueva es instantáneo mientras que para cambiar la dirección IP de una zona existente a veces hay que esperar días?</span></p>

<p>La respuesta está en las cachés. Cuando creamos una zona nueva, ningún otro servidor DNS del mundo tiene información sobre ella, luego nadie la tiene almacenada en caché. Por tanto, consultaran los datos al servidor responsable de la zona. Sin embargo, si la zona existía anteriormente, probablemente algunos servidores DNS tendrán información guardada de la zona y la mantendrán durante unas horas. Hasta que no transcurra ese tiempo los servidores no volverán a preguntar por la dirección de la zona, por lo tanto están devolviendo a sus clientes una información desfasada. Cuando pase ese tiempo (llamado <strong>tiempo de refresco</strong>), los cambios realizados en nuestra zona empezarán a <em>funcionar</em>. En resumen, el efecto de crear una nueva zona es instantáneo, pero modificar una zona existente puede llevar hasta 48 horas.</p>

<p><span style="underline;">¿Cuánto cuesta un dominio?</span> ¿Donde va ese dinero?</p>

<p>Si queremos comprar el dominio <em>eltamiz.com</em>, primero tenemos que pagar a la IANA (no directamente, sino a través de empresas llamadas <strong>registradores</strong>) para que reserve el nombre seleccionado y lo asocie a nuestro nombre (si queremos un dominio local, por ejemplo acabado en <em>.es</em>, tendremos que consultar al organismo responsable de esa zona). El precio depende del registrador y del modo de pago, pero en general es menos de $10 anuales (en el caso de los <em>.com</em>). Además de todo esto, tendremos que pagar a una empresa para que guarde los datos de nuestro dominio en sus servidores DNS. Es decir, para que se haga responsable de dar la información de nuestro dominio a cualquier ordenador que la solicite. Aquí los precios varían enormemente. En general, las empresas ofrecen los dos servicios a la vez, junto a un pequeño espacio de alojamiento y cuentas de correo electrónico. Pero el concepto es importante: una cosa es tener reservado el nombre de un dominio, y otra guardar la información de la zona y direcciones IP en un servidor DNS y ponerla a disposición del público.</p>

<hr />

<p><strong>Referencias</strong></p>

<ul>
    <li>Wikipedia &#8211; <a href="http://es.wikipedia.org/wiki/DNS" rel="nofollow" class="liwikipedia">Domain Name System</a></li>
    <li>ToolTutorials.com &#8211; <a href="http://www.tooltorials.com/Como_funciona_DNS_Videotutorial" class="liexternal">Video explicativo de DNS</a></li>
    <li>Libro <a href="http://www.amazon.com/Pro-DNS-BIND-Ron-Aitchison/dp/1590594940/ref=sr_1_3?ie=UTF8&amp;s=books&amp;qid=1225019749&amp;sr=1-3" class="liexternal">Pro DNS and BIND (2005 Apress)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://eltamiz.com/elcedazo/2008/10/26/las-tripas-de-internet-los-dominios-servidores-dns/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.5/es/</creativeCommons:license>
	</item>
		<item>
		<title>Las Tripas de Internet &#8211; Los dominios: nombres de dominio</title>
		<link>https://eltamiz.com/elcedazo/2008/10/05/las-tripas-de-internet-los-dominios-nombres-de-dominio/</link>
		<comments>https://eltamiz.com/elcedazo/2008/10/05/las-tripas-de-internet-los-dominios-nombres-de-dominio/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 13:30:32 +0000</pubDate>
		<dc:creator>Kent Mentolado</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[Kent Mentolado]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[tecnologia]]></category>

		<guid isPermaLink="false">http://eltamiz.com/elcedazo/?p=808</guid>
		<description><![CDATA[Continuamos nuestra travesía por Las tripas de Internet. Hasta ahora, hemos hablado de la dirección IP de los ordenadores. Como vimos anteriormente, es un número del tipo 123.123.123.123, que identifica a cada ordenador conectado a Internet. Pero seguro que tu estás acostumbrado a direcciones como &#8216;eltamiz.com&#8217; o &#8216;google.com&#8217;, y puede que no hayas usado esos [...]]]></description>
			<content:encoded><![CDATA[<p>Continuamos nuestra travesía por <a href="http://eltamiz.com/elcedazo/2008/09/14/las-tripas-de-internet-presentacion/" class="liinternal">Las tripas de Internet</a>. Hasta ahora, hemos hablado de la <a href="http://eltamiz.com/elcedazo/2008/09/17/las-tripas-de-internet-protocolos-ip/" class="liinternal">dirección IP</a> de los ordenadores. Como vimos anteriormente, es un número del tipo 123.123.123.123, que identifica a cada ordenador conectado a Internet. Pero seguro que tu estás acostumbrado a direcciones como &#8216;eltamiz.com&#8217; o &#8216;google.com&#8217;, y puede que no hayas usado esos números nunca. <em>¿Qué son esos nombres? ¿Como encajan con las direcciones IP?</em> Todo ello es el sistema de <strong>nombres de dominio</strong>, que veremos en este artículo.</p>

<p>Al principio, cuando Internet estaba cocinándose en los laboratorios, era una red extremadamente pequeña. Era sencillo recordar los números de todos los ordenadores. Sin embargo, poco a poco se fueron añadiendo más y más ordenadores, y pronto se comprobó que recordar todas las direcciones IP era inviable. Aparecieron los <strong>nombres de red</strong>. A cada ordenador se le asignaba un nombre arbitrario (por ejemplo, <em>ORD01</em> o <em>LaboratorioFisica</em>). Luego, alguien recopilaba todos los nombres de la red y su dirección IP real, y escribía esa relación en un archivo (por ejemplo, ORD01=192.168.1.1). Ese archivo se distribuía entre todos los ordenadores conectados a la red. De esta manera, era sencillo para un programa o un usuario acceder al ordenador <em>LaboratorioFisica</em>, un nombre sencillo de recordar. Solamente había que consultar en ese archivo de ordenadores cual era la dirección IP del ordenador solicitado.</p>

<p>Con el tiempo, ese sistema reveló su fallo: era muy difícil mantener ese archivo actualizado en todos los ordenadores, sobre todo teniendo en cuenta que cada vez se añadían más y más equipos a la red. Entonces se decidió formar un buen sistema, basado en la misma red, para solucionar de una vez por todas este problema. Es el sistema de los <strong>nombres de dominio</strong>.</p>

<div id="attachment_836" class="wp-caption alignright" style="width: 310px"><a href="http://eltamiz.com/elcedazo/wp-content/uploads/2008/10/dns_strom1.png" class="liimagelink"><img class="size-medium wp-image-836" src="http://eltamiz.com/elcedazo/wp-content/uploads/2008/10/dns_strom1-300x73.png" alt="Árbol jerárquico de DNS" width="300" height="73" /></a><p class="wp-caption-text">Vista en árbol de algunos nombres de dominio. Se pueden ver www.example.com o www.wikipediaz.cz, entre otros.</p></div>

<p>Antes de nada, había que estandarizar la nomenclatura. Si cada uno puede poner el nombre que quiera, al final será tan complicado recordar los nombres como las direcciones IP. Se decidió usar unos nombres <strong>jerárquicos</strong>. Por ejemplo, en el nombre tenia que quedar claro que ordenador era, a que departamento pertenecía y a que edificio: <em>ord-principal.dptofisica.edificionewton</em> (cuanto mas a la derecha, mas alto es el rango jerárquico). Cada uno de esos nombres separados por puntos se denomina <strong>zona</strong> (también hablaremos de subzonas cuando queramos señalar que una zona es &#8216;hija&#8217; de otra).</p>

<p>Es importante hacer un matiz. La dirección <em>ord-principal.dptofisica.edificionewton</em> puede corresponder a la dirección IP de un ordenador, y la zona <em>dptofisica.edificionewton</em> puede corresponder a otro. Es decir, un nombre puede pertenecer a un ordenador y a la vez ser el &#8216;padre&#8217; de otra subzona.</p>

<p>Las zonas son <strong>delegadas</strong>. Esto quiere decir que el responsable de la zona &#8216;edificionewton&#8217; le delega la responsabilidad de la zona &#8216;dptofisica&#8217; a otra persona. Quien gestiona &#8216;dptofisiica&#8217;, a su vez, puede delegar la zona &#8216;ord-principal&#8217; a un tercero. De esta manera, el responsable de la zona &#8216;dptofisica&#8217; puede agregar nuevos nombres a su red (cuyo nombre sería <em>&lt;unnombre&gt;.dpofisica</em>) sin tener que molestar al responsable de la zona &#8216;edificionewton&#8217;. Este a su vez, puede crear las zonas &#8216;dptomatematicas&#8217; sin molestar para nada a los equipos de &#8216;dptofisica&#8217;. En Internet, las zonas &#8216;padre&#8217; o <em>Generic Top Level Domain</em> (<strong>gTLD</strong>) son las archiconocidas .com, .net, .edu&#8230; Además, existe una zona padre por cada país o región (en este caso llamada <em>Country Code Top Level Domain</em>, <strong>ccTLD</strong>), de manera que tenemos .es, .fr, .us&#8230; Las gTLD suelen estar gestionadas por la <a href="http://www.iana.org/" class="liexternal">IANA</a> (la misma organización que asigna direcciones IP). Las ccTLD suelen estar gestionadas por un organismo propio de cada región.</p>

<p>En el mundo real, todo esto se traduce en lo siguiente: cuando compramos un dominio (ejemplo, <em>eltamiz.com</em>) realmente estamos pagando para que IANA, la organización responsable de la zona &#8216;com&#8217; cree una subzona llamada &#8216;<em>eltamiz</em>&#8216; y nos delegue su mantenimiento a nosotros. De esta manera, nosotros podremos crear nombres como <em>www.eltamiz.com</em> para nuestros ordenadores o crear subzonas como <em>elcedazo.eltamiz.com</em> y cederle a alguien su gestión.</p>

<p>Una vez que tenemos un sistema de nomenclatura, podemos atacar el siguiente punto: <em>¿cómo distribuimos la información de direcciones IPs y zonas para que todo el mundo la tenga actualizada?</em> En lugar de distribuir un archivo a cada ordenador (algo que tenía sentido cuando había muy pocos en la red, pero no ahora que hay montañas de ellos), se guarda ese archivo en ordenadores que actúan de &#8216;guías telefónicas&#8217; de los nombres de dominio, a los que se conectan los demás. Esos ordenadores tiene un programa que recibe peticiones a través de un puerto de red. El que quiera consultar los datos de una zona, solamente tiene que solicitar la información a ese ordenador central a través de la propia red. El protocolo para esas solicitudes se llama <strong>DNS</strong>, del inglés <em>Domain Name System</em>, o <em>Sistema de Nombres de Dominio</em>. Los ordenadores que actúan de &#8216;guía telefónica&#8217; se suelen llamar &#8216;<strong>Servidores DNS</strong>&#8216;. El puerto por defecto para un servidor DNS es el 53.</p>

<p>Por definición, no podemos acceder a ese servidor usando un nombre, puesto que necesitaríamos conocer la IP a la que está asociada ese nombre (a esto se le llama <em>resolver un nombre</em>). Y para poder resolver un nombre, antes necesitamos conectar a un servidor DNS, con lo que acabamos en un bucle sin fin. Por ello, cuando configuramos una conexión a Internet, tenemos que especificar la dirección IP del servidor DNS (normalmente asignado por nuestro proveedor) que queremos utilizar.</p>

<p>¿Recuerdas que al principio toda esta información se guardaba en un archivo propio del ordenador? Pues ese archivo sigue presente hoy en día en la mayoría de los ordenadores, y se llama <strong>archivo hosts</strong> (<em>host</em> es la palabra inglesa para referirse a un dispositivo conectado a una red). Aunque suele estar vacío, si tiene datos el ordenador hace más caso a este archivo que al servidor de nombres que hayamos designado. Ese archivo se encuentra en <em>/etc/hosts</em> en el caso de Linux, y en <em>C:\WINDOWS\system32\drivers\etc\hosts</em> en caso de utilizar Microsoft Windows.</p>

<p>Podemos hacer una pequeña prueba, pero<em> <strong>no hagas esto </strong>si no tienes claro lo que estás haciendo</em>, puedes cargarte algo y no quiero sentirme culpable por ello. Vamos a agregar la siguiente línea a nuestro archivo hosts:</p>

<blockquote>212.51.32.201   www.google.com</blockquote>

<p>Esa dirección IP pertenece a la página de <em>R</em>, un proveedor de Internet. Con esta línea, le indicamos al ordenador que cada vez que nos refiramos al nombre www.google.com, realmente queremos trabajar con la dirección IP 212.51.32.201. Para comprobar esto, podemos abrir un navegador e ir a la dirección <a href="http://www.google.com/" class="liexternal">http://www.google.com/</a>, y aparecerá en nuestro navegador la página de R. Para volver a recuperar el buscador, simplemente hay que borrar esa linea.</p>

<p>Nuestro ordenador no pregunta al servidor DNS cual es la IP de www.google.com, sino que se fía de lo que le hemos dicho en ese archivo. Si tenemos una pequeña red en nuestra casa, actualizando el archivo hosts podemos asignar un nombre a cada ordenador (por ejemplo, podemos llamarlos ordenadorpepe.lan, portatil.lan y router.lan). Yo suelo utilizar la zona &#8216;lan&#8217; porque no existe en el resto de Internet, con lo cual es seguro que nunca interferirá con el nombre de dominio de una página real. Naturalmente, estos nombres solamente los conocerán nuestros ordenadores, ya que el resto de ordenadores del mundo no tienen esas lineas en su archivo hosts.</p>

<p>Un dato importante, una dirección IP puede tener varios nombres (por ejemplo, <em>eltamiz.com</em> y <em>www.eltamiz.com</em> corresponden a la IP 68.178.254.21). Es más, un mismo nombre puede corresponder a varias direcciones IPs. En estos casos, cuando consultamos el nombre (por ejemplo, <em>googlemail.l.google.com</em>) obtenemos varias direcciones, y nuestro ordenador selecciona una al azar para conectar con ella. Esto se usa principalmente como un balanceo de carga primitivo: si tenemos dos servidores con los mismos contenidos, le podemos poner el mismo nombre a los dos, de manera que los usuarios se repartirán más o menos por igual entre los dos servidores.</p>

<p>En el <a href="http://eltamiz.com/elcedazo/2008/10/26/las-tripas-de-internet-los-dominios-servidores-dns/" class="liinternal">siguiente artículo</a> veremos cómo está organizado un servidor DNS, y cómo es posible que cualquier ordenador pueda conocer <em>al instante</em> la dirección de una nueva subzona que hayamos creado.</p>

<hr />

<p><strong>Referencias</strong></p>

<ul>
    <li>Wikipedia &#8211; <a href="http://es.wikipedia.org/wiki/Domain_Name_System" rel="nofollow" class="liwikipedia">Domain Name System</a><a href="http://es.wikipedia.org/wiki/TCP" rel="nofollow" class="liwikipedia"></a></li>
    <li><a href="http://www.ietf.org/rfc/rfc882.txt" class="liexternal">RFC882</a>, especificación inicial del protocolo (hoy en dia desfasado)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://eltamiz.com/elcedazo/2008/10/05/las-tripas-de-internet-los-dominios-nombres-de-dominio/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.5/es/</creativeCommons:license>
	</item>
		<item>
		<title>Las tripas de Internet &#8211; Protocolo TCP</title>
		<link>https://eltamiz.com/elcedazo/2008/09/25/las-tripas-de-internet-protocolo-tcp/</link>
		<comments>https://eltamiz.com/elcedazo/2008/09/25/las-tripas-de-internet-protocolo-tcp/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 14:00:48 +0000</pubDate>
		<dc:creator>Kent Mentolado</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[Kent Mentolado]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[tecnologia]]></category>

		<guid isPermaLink="false">http://eltamiz.com/elcedazo/?p=475</guid>
		<description><![CDATA[Continuamos con la segunda entrega de la serie Las tripas de Internet, hablando sobre el protocolo de control TCP. En la anterior entrega veíamos como Internet distribuye paquetes de un sitio a otro gracias al protocolo IP. Pero eso no es suficiente: necesitamos un control sobre dichos envíos: saber cuáles llegan, qué programa del ordenador [...]]]></description>
			<content:encoded><![CDATA[<p>Continuamos con la segunda entrega de la serie <a href="http://eltamiz.com/elcedazo/2008/09/14/las-tripas-de-internet-presentacion/" class="liinternal">Las tripas de Internet</a>, hablando sobre el protocolo de control TCP. En la <a href="http://eltamiz.com/elcedazo/2008/09/17/las-tripas-de-internet-protocolos-ip/" class="liinternal">anterior</a> entrega veíamos como Internet distribuye paquetes de un sitio a otro gracias al protocolo IP. Pero eso no es suficiente: necesitamos un control sobre dichos envíos: saber cuáles llegan, qué programa del ordenador se tiene que hacer cargo de ellos&#8230;</p>

<h2><strong>El protocolo TCP</strong></h2>

<div id="attachment_688" class="wp-caption alignright" style="width: 310px"><a href="http://eltamiz.com/elcedazo/wp-content/uploads/2008/09/799px-vintcerfji3.jpg" class="liimagelink"><img class="size-medium wp-image-688" src="http://eltamiz.com/elcedazo/wp-content/uploads/2008/09/799px-vintcerfji3-300x298.jpg" alt="" width="300" height="298" /></a><p class="wp-caption-text">Vinton Cerf, uno de los desarrolladores iniciales del protocolo TCP. También es presidente de la ICANN, organización internacional que asigna las direcciones IP y dominios. Y si, es clavado al Arquitecto de Matrix <img src='https://eltamiz.com/elcedazo/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></div>

<p>TCP son las siglas de <em>Transmission Control Protocol</em> (<em>Protocolo de Control de la Transmisión</em>, en español). Nació en 1974, y aunque se han incorporado algunas ideas desde entonces, ya ha sobrevivido todos estos años sin cambios importantes (prueba del excepcional trabajo que hicieron sus creadores). Hoy en día el protocolo se utiliza en el 95% de los paquetes que viajan por Internet. Incorpora varios mecanismos para controlar el tráfico de paquetes (ya que el protocolo IP se encarga de su envío, pero no impone control alguno sobre ellos). Vamos a ver algunos de esos mecanismos:</p>

<p><strong>Control del programa de destino</strong>: en nuestro ordenador podemos estar navegando por la web a la vez que chateamos con un amigo. Si llega un paquete de datos&#8230; <em>¿es para el navegador, o para el programa de chatear?</em> Es donde aparece el concepto de <strong>puerto</strong>. Un puerto es cada una de las &#8220;vías&#8221; por las que puede entrar un paquete en el ordenador, de manera que no enviamos a la &#8220;dirección X&#8221;, sino que enviamos un paquete a la &#8220;dirección X, puerto Y&#8221;. Cuando arrancamos un programa relacionado con Internet, éste le dice al sistema operativo &#8220;cuando llegue un paquete al puerto Y, me lo envías a mí y no a los otros programas&#8221;. A esto se le suele le llamar <em>escuchar</em> en un puerto.</p>

<p>De esta manera podemos enviar un paquete de datos a un ordenador concreto (protocolo IP) <strong>y a un programa en concreto</strong> (sabiendo previamente en qué puerto está escuchando, claro). Normalmente no es necesario conocer el puerto en el que escucha un programa, puesto que casi siempre se utilizan los mismos. Por ejemplo, un servidor de páginas web suele escuchar en el puerto número 80 y un servidor de correo en el número 25 (un ordenador tiene 65536 puertos). Los programas de los servidores suelen usar puertos con una numeración inferior a 1024. Pero el programa del remitente (es decir, el navegador web o el programa de chat) <strong>también escucha en un puerto</strong>. Es decir, el navegador sabe que tiene que enviar paquetes al puerto 80 del servidor para <em>pedir</em> una página web. Pero él también tiene que escuchar en un puerto, para poder recibir los paquetes devueltos por el servidor con la <em>respuesta</em>, la web solicitada. En este caso, el programa del cliente suele utilizar un puerto al azar por encima de 1024 para escuchar. Por tanto, en las cabeceras de los paquetes (además de la dirección IP del origen y del destino) también van <strong>los puertos de origen y destino</strong>.</p>

<p>Es como cuando, al enviar una carta a una empresa, no sólo incluyes en el sobre la dirección, sino también a qué departamento está dirigido. Este &#8220;Att.: Departamento de atención al cliente&#8221; es el equivalente (hablando burdamente, claro) del <em>puerto</em>.</p>

<p><strong>Control de la entrega</strong>: una pequeña foto puede necesitar dividirse en cientos de paquetes para poder enviarse, pero&#8230;<em> ¿como sabemos que han llegado todos los paquetes?</em>. Según el protocolo TCP, todos los paquetes tienen &#8220;acuse de recibo&#8221;. Esto quiere decir que, tan pronto como el destinatario reciba el paquete, debe <strong>reenviar otro informando que el paquete ha llegado</strong>. Este paquete va dirigido a la IP y puerto del remitente (de ahí la necesidad del concepto <em>puerto de origen</em>). Sin embargo, este paquete no lleva datos dentro, solamente una marca de <em>&#8220;ok, recibido&#8221;</em>. Es decir: <em>por cada paquete recibido, hay que enviar otro</em>. Eso sí, no hay que enviar la confirmación de un paquete de confirmación, sino no acabaríamos nunca.</p>

<p>Hay que destacar que el remitente original espera esa respuesta. Si el paquete de confirmación no llega pasado un tiempo, asume que el paquete original se ha perdido por el camino, y <strong>vuelve a reenviarlo</strong> a menor velocidad. Uniendo esta idea con la anterior, tenemos que nuestra capacidad para recibir paquetes rápidamente está influenciada por nuestra capacidad de enviar las respuestas debidamente.</p>

<p><strong>Control de la secuencia de paquetes</strong>: (<em>ver la corrección de este punto al final del artículo</em>). Los paquetes no tienen porqué llegar en el mismo orden en el que se enviaron (algunos se pierden y son retransmitidos, además puede que pasen por distinto número de nodos). Y el orden es importante, pues sin saber la ordenación de los paquetes, nunca podremos &#8220;desempaquetar&#8221; correctamente los datos para componer el mensaje original. El protocolo TCP impone una solución muy sencilla: cada paquete debe llevar en su cabecera un número de secuencia (el 1, el 2, el 3&#8230;), de manera que luego sea sencillo conocer el orden original y &#8220;recomponer&#8221; lo que hemos desmontado en paquetes.</p>

<p>Además, este número de secuencia sirve para controlar que se han recibido todos los paquetes. El último paquete que enviamos debe tener una marca especial llamada &#8220;FIN&#8221;, que indica que es el último paquete de esa transmisión. Como tenemos los números de secuencia, es sencillo ver si hay &#8220;huecos&#8221; y saber cuántos paquetes nos quedan por recibir.</p>

<p>En resumen, éstos son los tres tipos de control principales que impone el protocolo TCP:<em> puertos, acuse de recibo y secuencia</em>. Con estos tres conceptos tenemos cierto control sobre los paquetes que enviamos desde nuestro ordenador. Hay que tener una cosa clara: todos estos datos van incluidos en el paquete y <strong>ocupan espacio</strong>. Es decir, cada cabecera ocupa una cierta cantidad de bytes, y cuantas más cabeceras usemos, menos espacio tendremos para los bytes &#8220;reales&#8221;, los que representan nuestros datos.</p>

<h2><strong>Otros protocolos relacionados</strong></h2>

<p><strong>Protocolo UDP</strong>: este protocolo también tiene el concepto de puertos del protocolo TCP. Pero <em>nada más</em>. Es decir, no incorpora ni acuse de recibo ni la secuencia de llegada. Por tanto, los paquetes UDP se pueden perder por el camino o llegar en orden diferente. Principalmente se utilizan cuando transmitimos voz (por ejemplo Skype) o vídeo en tiempo real. En estos casos, hay que enviar paquetes muy rápidamente, para evitar demasiados retrasos que harían imposible la comunicación. Simplemente, <em>no podemos gastar espacio</em> usando demasiadas cabeceras <em>ni tiempo</em> para estar enviando acuses de recibo continuamente. En las aplicaciones que utilizan el protocolo TCP (por ejemplo, una página web) lo importante son los datos en sí (no podemos perder palabras de una web, por ejemplo), mientras que en el protocolo UDP lo importante es el <strong>flujo de paquetes</strong>: que los paquetes vayan llegando rápida y continuamente, aunque perdamos algunos por el camino. Esto hace posible que programas como Skype funcionen: la calidad no es perfecta y tiene ruido/saltos (normalmente debido a paquetes que se han perdido), pero es en tiempo real y, salvo que se hayan perdido demasiados, es posible entender lo que te está diciendo la persona del otro lado.</p>

<p><strong>Protocolo ICMP</strong>: este es un protocolo especial, en el que no vamos a entrar en mucho detalle. Su función es establecer una especie de control sobre el protocolo IP. Por ejemplo, se utiliza para ver si en una determinada dirección IP hay un ordenador capaz de responder y el <strong>tiempo que tardan los paquetes</strong> en llegar a esa dirección. Para ello, el remitente manda un paquete ICMP sin datos que el destinatario tiene que devolver inmediatamente. Midiendo el tiempo transcurrido, el remitente sabe cuanto tardan los paquetes en realizar el recorrido.</p>

<p>Como resumen, tenemos que quedarnos con lo siguiente:</p>

<p><em>La información se fragmenta en paquetes. Cada paquete tiene una dirección IP y puerto de origen, y va dirigido a una IP y puerto de destino, que Internet se encarga de entregar. Algunas comunicaciones son bidireccionales (tanto el emisor como el receptor se envían paquetes entre sí, ya sea de confirmación o con datos) y normalmente usan TCP, mientras que otras son unidireccionales (el emisor envía, si lo recibes bien y si no peor para ti) y suelen usar UDP.</em></p>

<p>Todo Internet (excepto alguna excepción) funciona así, paquetes con IPs y puertos que vienen y van. La VozIP, las paginas web, el eMule, el correo electrónico, el Messenger&#8230; todo. Sin embargo, aún nos faltan muchos protocolos. Solamente hemos hablado de enviar datos de un ordenador/programa a otro. Pero aún nos queda ver cómo <strong>están organizados</strong> esos datos. Los protocolos TCP/IP solamente se ocupan de transmitir datos de un sitio a otro, pero no dan ninguna instrucción sobre el significado de esos datos. En los siguientes artículos, veremos como están organizados algunos de los servicios que ofrece Internet.</p>

<hr />

<p><strong>Referencias</strong></p>

<ul>
    <li>Wikipedia &#8211; <a href="http://es.wikipedia.org/wiki/TCP" rel="nofollow" class="liwikipedia">Transmission Control Protocol</a></li>
    <li><a href="http://www.ietf.org/rfc/rfc675.txt" class="liexternal">RFC675</a>, especificación inicial del protocolo</li>
    <li>Libro <a href="http://www.amazon.com/Understanding-TCP-IP-clear-comprehensive/dp/190481171X/ref=sr_1_3?ie=UTF8&amp;s=books&amp;qid=1222238029&amp;sr=8-3" class="liexternal">Understanding TCP/IP (2006 Packt Publishing)</a></li>
</ul>

<hr />

<p><strong>Correcciones</strong></p>

<p>Como bien indica <span class="comment-author vcard"><span class="fn n"><a href="http://www.gravatar.com/" title="Consigue tu avatar" class="liexternal"> </a>Aracem en los comentarios, hay una importante equivocación en el artículo. El </span></span><em>Control de la secuencia de paquetes</em> no tiene nada que ver con el protocolo TCP. De hecho, es el protocolo IP el que se encarga de ese punto, que funciona (más o menos) de la manera explicada aquí. Para más detalles, ver el <a href="http://eltamiz.com/elcedazo/2008/09/25/las-tripas-de-internet-protocolo-tcp/#comment-452" class="liinternal">comentario de Aracem</a>.</p>

<p>Lo que si hace TCP es una especie de acuerdo previo al envío de paquetes. TCP está orientado a conexión, lo que quiere decir que antes de que los dos ordenadores se pongan a enviar paquetes el uno al otro, antes hay que enviar unos paquetes TCP especiales. Estos paquetes le avisan al ordenador de destino que vamos a empezar a enviar datos para que prepare los programas correspondientes para esos datos. Durante la transmisión también existen esos paquetes &#8220;especiales&#8221;, por ejemplo para indicar al ordenador que aunque tardemos un poquito, que mantenga abierta la conexión que vamos a seguir enviando cosas.</p>
]]></content:encoded>
			<wfw:commentRss>https://eltamiz.com/elcedazo/2008/09/25/las-tripas-de-internet-protocolo-tcp/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.5/es/</creativeCommons:license>
	</item>
		<item>
		<title>Las tripas de Internet &#8211; Protocolo IP</title>
		<link>https://eltamiz.com/elcedazo/2008/09/17/las-tripas-de-internet-protocolos-ip/</link>
		<comments>https://eltamiz.com/elcedazo/2008/09/17/las-tripas-de-internet-protocolos-ip/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 12:30:52 +0000</pubDate>
		<dc:creator>Kent Mentolado</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[Kent Mentolado]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[tecnologia]]></category>

		<guid isPermaLink="false">http://eltamiz.com/elcedazo/?p=459</guid>
		<description><![CDATA[Tras la introducción, ésta es la primera entrada de la serie &#8216;Las tripas de Internet&#8217;. En ella vamos a establecer algunos primeros conceptos generales de la informática; hablaremos sobre datos (qué es un bit o un byte y cosas parecidas), su transmisión entre ordenadores y qué es un protocolo, e introduciremos el protocolo IP, del [...]]]></description>
			<content:encoded><![CDATA[<p>Tras la <a href="http://eltamiz.com/elcedazo/2008/09/14/las-tripas-de-internet-presentacion/" class="liinternal">introducción</a>, ésta es la primera entrada de la serie &#8216;Las tripas de Internet&#8217;. En ella vamos a establecer algunos primeros conceptos generales de la informática; hablaremos sobre <strong>datos</strong> (qué es un <em>bit</em> o un <em>byte</em> y cosas parecidas), su <strong>transmisión</strong> entre ordenadores y qué es un <strong>protocolo</strong>,  e introduciremos el <strong>protocolo IP</strong>, del que seguro que has oído hablar alguna vez.</p>

<h2><strong>Los datos y su transmisión</strong></h2>

<p>Los ordenadores, además de trabajar en solitario, pueden comunicarse con otros ordenadores a traves de las redes informáticas. Probablemente ya estarás familiarizado con el concepto de &#8220;red&#8221;, puesto que en tu casa, en la universidad o en el trabajo seguramente usas una red. Internet es similar a esas redes domésticas, solo que mucho más grande. Una red doméstica típica suele tener 2, 10 o 500 ordenadores (por ejemplo), pero Internet tiene cientos de millones. Son tantos, que ni siquiera es facil determinar el orden de magnitud. Exceptuando el tamaño, funciona igual que cualquier red informática: <strong>ordenadores que se envían información unos a otros.</strong></p>

<p>Seguro que has oído que los ordenadores trabajan con los números 1 y 0. Esto es cierto. Toda la información con la que trabaja un ordenador (desde las fotos de las vacaciones hasta el icono que representa la flecha del ratón) se puede describir mediante números. Pero los ordenadores no trabajan con los números del 0 al 9 (base 10, la que usamos los humanos), sino que los transforman en números <em>binarios</em> (base 2). También se usan otros números, como <em>hexadecimales</em> y <em>octales</em>, pero no viene al caso. Cada uno de los dígitos (1 y 0) se llama <em>bit</em>, que es por lo tanto la unidad de información más pequeña que existe.</p>

<p>Por comodidad, los bits se agrupan en <em>bytes</em>, que son grupos de ocho <em>bits</em>. Por ejemplo, 10100111 es un <em>byte</em>. La velocidad de la conexión de un ordenador a la red se mide en <em>bytes por segundo</em>. Existen los múltiplos <em>kilobyte</em> (1000 bytes), <em>megabyte</em> (1000 kilobytes), <em>gigabyte</em> (1000 megabytes)&#8230; ¡Ojo! en otros aspectos de la informática un kilobyte son 1024 bytes (2<sup>10</sup>), pero en redes se utiliza el múltiplo 1000 (10<sup>3</sup>). Sin embargo, los operadores suelen ofrecer la velocidad en bits, de manera que &#8220;20 megas&#8221; son 20 megabits/segundo, que corresponden a 2,5 megabytes/segundo.</p>

<p>Pero para enviar información de un ordenador a otro, hay que imponer cierto orden. <em>No podemos enviar una ristra de bytes sin más.</em> Supongamos que quieres enviar las fotos de tus vacaciones a otro ordenador. Sin un orden, el ordenador receptor no sabría a qué foto corresponde cada uno de los millones de bytes que recibe, lo que haría la comunicación imposible. La solución a esto son los <em>protocolos</em>: <strong>unas convenciones establecidas de antemano para que los ordenadores sepan qué hacer con los bytes que les llegan a través de su red.</strong> En Internet, los dos protocolos más utilizados son <em>IP</em> y <em>TCP</em> (aunque técnicamente son dos protocolos diferentes, en la práctica siempre se usan los dos juntos en una combinación llamada <em>TCP/IP</em>).</p>

<h2><strong>El protocolo IP</strong></h2>

<p>Supongamos que queremos enviar una información cualquiera a otro ordenador, información que tenemos codificada en formato binario. Internet es una <em>red conmutadora de paquetes</em>, lo cual quiere decir que la información que hay que transmitir hay que dividirla en bloques (llamados <em>paquetes</em> o <em>datagramas</em>). Cada paquete será tratado y enviado por el ordenador y los elementos de red (nuestro <em>modem</em> o <em>router</em>, los equipos que tiene nuestro proveedor de Internet&#8230;) por separado. En el caso de Internet, el tamaño del paquete es de 1500 bytes, de manera que si queremos enviar 5000 bytes, nuestro ordenador los divide en 4 paquetes (aunque el último sea más pequeño, no pasa nada).</p>

<p>Una analogía para entenderlo mejor (que usaremos a lo largo de las siguientes explicaciones): quiero enviar toda mi biblioteca a un amigo de otra ciudad, pero la agencia de transportes me dice que las cajas tienen que ser máximo de 5 kilogramos. Así, cojo todos mis libros (mis bytes) y los distribuyo en cajas de menos de 5 kg (los paquetes).</p>

<p>Un paquete se envía desde nuestro ordenador a nuestro <em>router</em>, quien a través del cableado de la calle lo manda al <em>router</em> correspondiente de mi proveedor de Internet. Éste, a su vez lo manda al <em>router</em> del proveedor de Internet del receptor del paquete. Y así sucesivamente, hasta que el paquete llega a su destino. Por esto se llama <em>red conmutadora de paquetes</em>, <strong>los datos se codifican en paquetes que los diversos aparatos de la red se van enviando unos a otros hasta que llegan a su destinatario</strong>.</p>

<p>Siguiendo con el ejemplo de la librería, la empresa de transporte local envía cada paquete de libros a la central provincial de Correos, quien a su vez se lo reenvía a una empresa de transporte nacional, quien a su vez se lo reenvía a la oficina de Correos local del destinatario&#8230; En mi caso, cada paquete de datos que envío (o recibo) al servidor de eltamiz.com, pasa por más de 20 nodos intermedios.</p>

<p><a href="http://eltamiz.com/elcedazo/wp-content/uploads/2008/09/internet_map_in_february_82p.jpg" class="liimagelink"><img class="alignnone size-medium wp-image-507" src="http://eltamiz.com/elcedazo/wp-content/uploads/2008/09/internet_map_in_february_82p.jpg" alt="Internet en Febrero de 1982" /></a></p>

<p><em>Internet en Febrero de 1982, pocos años después de su creación. Imagen de Wikimedia Commons.</em></p>

<p>Pero por esos nodos intermedios <em>pasan millones de paquetes provenientes de otros ordenadores</em> y con destinos muy distintos. ¿Como sabe el nodo a quien tiene que enviarle el paquete? Aquí aparece el concepto de <em>dirección IP</em>. Cada ordenador o nodo conectado a Internet (o en general, a cualquier red que use TCP/IP) tiene una dirección única, como si fuera un número de teléfono. Por ejemplo, la dirección del ordenador donde está la página de eltamiz.com es 68.178.254.21. Los paquetes, además de llevar los datos (también llamada la <em>carga</em> o <em>payload</em>) llevan una cabecera con la dirección IP del destinatario y la del remitente.</p>

<p>En nuestro ejemplo, cada caja de libros lleva una pegatina con la dirección postal del destinatario y del remitente. De ese modo, pase por donde pase, su destino final siempre va con ella y (salvo que se produzca algún percance) acabará llegando a su destino. De hecho, es posible que unas cajas vayan por un camino y otras por otro, pero al final van llegando todas al destino final.</p>

<p>Hoy en día utilizamos la versión 4 del protocolo, llamada <em>IPv4</em>. En IPv4, se pueden tener algo más de 4000 millones de direcciones (concretamente 2<sup>32</sup>). Pueden parecer muchas, pero hoy en día <em>estamos llegando al límite de direcciones</em>. Algunas de las causas son que cuando este protocolo se diseñó, nadie pensó que Internet crecería tanto, y se asignaban alegremente bloques enteros de direcciones como si fueran infinitas (si te asignan un bloque de varios millones de IPs, nadie más podrá utilizarlas, aunque tu sólo uses una). Por otra parte, algunos bloques de direcciones están reservados para otros usos y no pueden usarse como una dirección IP de Internet. Se está trabajando en la siguiente versión, llamada <em>IPv6</em>, que soluciona ese problema. Se ha ampliado tanto el número de direcciones IP posibles, que cada milímetro cuadrado de la superficie terrestre podría tener más de 600.000 millones de direcciones. Esperemos que esta vez sí sean suficientes <img src='https://eltamiz.com/elcedazo/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://eltamiz.com/elcedazo/wp-content/uploads/2008/09/mapa_de_internet.jpg" class="liimagelink"><img src="http://eltamiz.com/elcedazo/wp-content/uploads/2008/09/mapa_de_internet.jpg" alt="Mapa de internet" /></a></p>

<p><em>Representación visual de los nodos de Internet en 2005. Pese a la complejidad, solamente están representados el 30% de los nodos. Imagen de Wikimedia Commons.</em></p>

<p>La clave para entender las redes de paquetes es la siguiente:</p>

<p><strong>Cada nodo de la red sabe a que direcciones está conectado directamente, y también la lista de nodos a la que tiene que enviar los demás paquetes.</strong></p>

<p>Cuando llega un paquete, mira su dirección IP de destino. Si está conectado directamente a ese ordenador, le entrega el paquete. Si no está conectado directamente, consulta en su lista de nodos buscando qué nodo puede estar conectado al ordenador destinatario. En mi caso, mi ordenador sabe que está conectado a los ordenadores cuya dirección empieza por 192.168.1., direcciones que corresponden a mis otros ordenadores. Si la dirección es otra, sabe que tiene que enviarlos al nodo que tiene la dirección 192.168.1.1 (mi <em>router</em>). A su vez, mi <em>router</em> sabe que esos paquetes los tiene que enviar al nodo 213.60.4.1, correspondiente a un <em>router</em> de mi proveedor de Internet.</p>

<p>En el ejemplo de los libros, la agencia de transporte local sabe a qué direcciones postales puede entregar los paquetes directamente, y en caso de que el destinatario esté fuera de esas direcciones, sabe la dirección de la agencia a la que tiene que enviar el paquete de libros para que se encarguen ellos (pueden ser una o varias, por ejemplo, puede saber la dirección de la oficina central para envíos nacionales, y la de la oficina en Francia para envíos al país galo).</p>

<p>En teoría, la red es redundante, lo que quiere decir que hay varias maneras de hacer llegar un paquete al mismo destino, de manera que si algunos nodos intermedios fallan, no pasa nada. Son los propios nodos los que se comunican entre sí, diciendo quien está operativo, quién esta saturado, a quién está conectado cada uno&#8230; de manera que el resto de nodos pueda buscar rutas alternativas. Por tanto, aunque un paquete determinado siga un camino entre los nodos, otro paquete distinto puede seguir otra ruta diferente, dado que los nodos pueden haber cambiado entre un envío y el siguiente. En la práctica, es muy costoso mantener una red así, y en algunos puntos muchos ordenadores dependen de un solo nodo. En el mapa de Internet, podéis apreciar estos puntos porque forman &#8220;estrellas&#8221; y grandes estructuras en forma de árbol: muchos nodos conectados únicamente a un nodo central.</p>

<p>En definitiva, <strong>nuestro ordenador no &#8220;sabe&#8221; como enviar datos a cada ordenador de Internet. Simplemente divide los datos a enviar en paquetes, los marca con la dirección IP correspondiente y los entrega a la estructura de Internet para que ella se encargue de hacérselo llegar al destinatario.</strong></p>

<p>Pero, una vez que llega el paquete al ordenador&#8230; <em>¿cómo sabe que tiene que hacer con él?</em> Por ejemplo, puede que estemos navegando a la vez que tenemos abierto algun programa de mensajeria. Si llega un paquete nuevo&#8230; ¿cuál de los dos programas se tiene que hacer cargo de él? Además, ¿como sabe el destinatario si no se ha perdido algún paquete por el camino, y si le han llegado todos en orden? Es donde aparece el siguiente protocolo: <a href="http://eltamiz.com/elcedazo/2008/09/25/las-tripas-de-internet-protocolo-tcp/" class="liinternal">TCP</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://eltamiz.com/elcedazo/2008/09/17/las-tripas-de-internet-protocolos-ip/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.5/es/</creativeCommons:license>
	</item>
		<item>
		<title>Las tripas de Internet &#8211; Presentación</title>
		<link>https://eltamiz.com/elcedazo/2008/09/14/las-tripas-de-internet-presentacion/</link>
		<comments>https://eltamiz.com/elcedazo/2008/09/14/las-tripas-de-internet-presentacion/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 12:30:37 +0000</pubDate>
		<dc:creator>Kent Mentolado</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[Kent Mentolado]]></category>
		<category><![CDATA[internet tecnología]]></category>

		<guid isPermaLink="false">http://eltamiz.com/elcedazo/?p=457</guid>
		<description><![CDATA[En esta serie vamos a hablar de Internet, repasando un poco su historia y centrándonos en el funcionamiento de la red de redes. Alguien sugirió una entrada sobre Internet en el foro, de manera que me lancé a ello. Sin embargo creo que es mejor escribir una serie, puesto que hay muchísimas ideas y tecnologías [...]]]></description>
			<content:encoded><![CDATA[<p>En esta serie vamos a hablar de Internet, repasando un poco su historia y centrándonos en el funcionamiento de la red de redes. Alguien sugirió una entrada sobre Internet en el foro, de manera que me lancé a ello. Sin embargo creo que es mejor escribir una serie, puesto que hay muchísimas ideas y tecnologías detrás de una simple acción como &#8220;ver una web&#8221;. No me centraré demasiado en aspectos más de telecomunicaciones (seguro que hay <em>cedaceros</em> mucho más cualificados que yo en esa materia), sino más bien en el funcionamiento de las webs, de los correos, de los chats&#8230;</p>

<p>Los artículos de los que consta la serie son:</p>

<ul>
    <li>Presentación</li>
    <li>Protocolos básicos
<ul>
    <li><a href="http://eltamiz.com/elcedazo/2008/09/17/las-tripas-de-internet-protocolos-ip/" class="liinternal">Protocolo IP</a></li>
    <li><a href="http://eltamiz.com/elcedazo/2008/09/25/las-tripas-de-internet-protocolo-tcp/" class="liinternal">Protocolo TCP</a></li>
</ul>
</li>
    <li>Los dominios
<ul>
    <li><a href="http://eltamiz.com/elcedazo/2008/10/05/las-tripas-de-internet-los-dominios-nombres-de-dominio/" class="liinternal">Nombres de Dominio</a></li>
    <li><a href="http://eltamiz.com/elcedazo/2008/10/26/las-tripas-de-internet-los-dominios-servidores-dns/" class="liinternal">Servidores DNS</a></li>
</ul>
</li>
    <li>Las páginas web</li>
    <li>El correo electrónico</li>
    <li>Momentos históricos
<ul>
    <li><a href="http://eltamiz.com/elcedazo/2008/11/04/las-tripas-de-internet-historia-el-dia-del-gran-gusano/" class="liinternal">El día del Gran Gusano</a></li>
</ul>
</li>
    <li>Glosario</li>
</ul>

<p>Esto es sólo un esquema. Seguramente algunos artículos acaben dividiéndose en varios, ya que como digo, son muchas las tecnologías implicadas. Por supuesto, no es una lista definitiva, está abierta a todo tipo de sugerencias. También tocaré temas sobre los &#8220;fallos&#8221; de los servicios y protocolos comentando como funcionan algunos &#8220;ataques&#8221;. Creo que esto último es necesario, pues últimamente se han descubierto algunos fallos realmente preocupantes y graves. Así tendremos una idea de que va todo esto.</p>

<p>Siguiendo la filosofía de <em>El Tamiz</em>, intentaré mantenerme dentro del &#8220;<em>antes simplista</em> <em>que incomprensible</em>&#8221; e intentaré evitar caer en demasiados tecnicismos. Como el tema me obliga a utilizar profusamente las siglas y alguna &#8220;palabreja&#8221; que otra, incluiré un artículo a modo de Glosario donde estarán recopiladas.</p>

<p>En la primera entrada, dentro de un par de días, hablaremos sobre el <a href="http://eltamiz.com/elcedazo/2008/09/17/las-tripas-de-internet-protocolos-ip/" class="liinternal">protocolo IP</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://eltamiz.com/elcedazo/2008/09/14/las-tripas-de-internet-presentacion/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.5/es/</creativeCommons:license>
	</item>
	</channel>
</rss>
