Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Redes de computadoras Un enfoque descendente 7.a edición James F. Kurose Keith W. Ross mos.cbook ey en:adorgscaDe REDES DE COMPUTADORAS Un enfoque descendente SÉPTIMA EDICIÓN Cualquier form a de reproducción, dist r ibución, com unicación pública o t ransform ación de esta obra sólo puede ser realizada con la autor ización de sus t itulares, salvo excepción prevista por la ley. La infracción de los derechos m encionados puede ser const itut iva de delito cont ra la propiedad intelectual (arts. 270 y sgts. Código penal) . d e s c a r g a do en: e y b o oks. c o m Diríjase a CEDRO (Cent ro Español de Derechos Reprográficos -www.cedro.org) , si necesita fotocopiar o escanear algún fragm ento de esta obra. Todos los derechos reservados. © PEARSON , S.A., 2 0 1 7 C/ Ribera del Loira, 16- 18 28042 Madrid ( España) www.pearson.es I SBN: 978- 84- 9035- 528- 2 I SBN e- Book: 978- 84- 9035- 529- 9 Depósit o Legal: M- 7106- 2017 Equipo de edición: Edit or: Miguel Mart ín- Rom o Equipo de diseño: Diseña dora Senior : Elena Jaram illo Equipo de producción: Direct ora de producción: Mart a I llescas Coordina dora de producción: Tini Cardoso Diseño de cubier t a : Pearson Educación S. A. Tra ducción y Com posición: Vuelaplum a, S.L. I m preso por : Nota sobre enlaces a páginas w eb a jenas: Este libro incluye enlaces a sit ios web cuya gest ión, m antenim iento y cont rol son responsabilidad única y exclusiva de terceros ajenos a PEARSON EDUCACI ÓN, S. A. Los enlaces u ot ras referencias a sit ios web se incluyen con finalidad est r ictam ente inform at iva y se proporcionan en el estado en que se encuent ran en el m om ento de publicación sin garant ías, expresas o im plícitas, sobre la inform ación que se proporcione en ellas. Los enlaces no im plican el aval de PEARSON EDUCACI ÓN S. A. a tales sit ios, páginas web, funcionalidades y sus respect ivos contenidos o cualquier asociación con sus adm inist radores. En consecuencia, PEARSON EDUCACI ÓN S. A., no asum e responsabilidad alguna por los daños que se puedan derivar de hipotét icas infracciones de los derechos de propiedad intelectual y/ o indust r ial que puedan contener dichos sit ios web ni por las pérdidas, delitos o los daños y perjuicios derivados, directa o indirectam ente, del uso de tales sit ios web y de su inform ación. Al acceder a tales enlaces externos de los sit ios web, el usuario estará bajo la protección de datos y polít icas de pr ivacidad o práct icas y ot ros contenidos de tales sit ios web y no de PEARSON EDUCACI ÓN S. A. Este libro ha sido im preso con papel y t intas ecológicas Redes de com putadoras. Un enfoque descendente, 7 Ed Jam es F .Kurose; Keith W. Ross PEARSON EDUCACI ÓN, S. A., Madrid, 2017 I SBN: 978-84-9035-528-2 I SBN e-Book: 978-84-9035-529-9 Materia: I nform át ica, 004 Páginas: 704Form ato: 215 x 270m m . REDES DE COMPUTADORAS Un enfoque descendente SÉPTIMA EDICIÓN JAMES F. KUROSE University of Massachusetts, Amherst KEITH W. ROSS NYU and NYU Shanghai REVISIÓN TÉCNICA Carolina Mañoso Hierro Profesora Titular de Universidad Dpto. de Sistemas de Comunicación y Control Escuela Técnica Superior de Ingeniería Informática Universidad Nacional de Educación a Distancia Ángel Pérez de Madrid y Pablo Profesor Titular de Universidad Dpto. de Sistemas de Comunicación y Control Escuela Técnica Superior de Ingeniería Informática Universidad Nacional de Educación a Distancia Boston Columbus Indianapolis New York San Francisco Hoboken Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montréal Toronto Delhi Mexico City São Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo A Julie y a nuestras tres preciosidades —Chris, Charlie y Nina JFK Un enorme AGRADECIMIENTO a mis profesores, colegas y estudiantes de todo el mundo. KWR Acerca de los autores Jim Kurose Jim Kurose es un distinguido profesor universitario de Ciencias de la Computación en la Universidad de Massachusetts, Amherst. Actualmente disfruta en la univer- sidad de una excedencia y trabaja y trabaja como director adjunto en la US National Science Foundation, donde dirige la división de Ingeniería y ciencias de la computación y la información. Kurose ha recibido numerosos reconocimientos por sus actividades en el campo de la educación, entre los que se incluyen el premio a la excelencia en la labor pedagógica de la Universidad Tecnológica Nacional (ocho veces), la Universidad de Massachusetts y la asociación Northeast Association of Graduate Schools. Ha recibido la Medalla Taylor Booth del IEEE a la Educación y es bien conocido por haber liderado la iniciativa Commonwealth Information Technology de Massachusetts. Ha ganado varios premios al mejor artículo y recibido el IEEE Infocom Achievement Award y el ACM Sigcomm Test of Time Award. El Dr. Kurose ha sido editor jefe de las revistas IIEEE Transactions on Communications e IEEE/ACM Transactions on Networking. Ha participado varios años en los comités de programa de las conferencias EEE Infocom, ACM SIGCOMM, ACM Internet Measurement Conference y ACM SIGMETRICS. Es miembro del IEEE de la ACM. Entre sus intereses de investigación se incluyen las arquitecturas y protocolos de red, las medidas de red, las redes de sensores, la comunicación multimedia y el modelado y la evaluación de rendimiento. Es doctor en Ciencias de la Computación por la Universidad de Columbia. Keith Ross Keith Ross es el decano de Ingeniería y Ciencias de la Computación en NYU Shanghai y ostenta la cátedra Leonard J. Shustek en el departamento de Ingeniería y Ciencias de la Computación de NYU. Anteriormente trabajó en la Universidad de Pennsylvania (13 años), Eurecom Institute (5 años) y en la Universidad Poli- técnica (10 años). Se graduó en la Universidad Tufts, tiene un máster por la Universidad de Columbia y es doctor en Ingeniería de Control y Computación por la Universidad de Michigan. Keith Ross fue también el fundador principal y primer consejero delegado de Wimba, que desarrolla aplicaciones multimedia en línea para e-learning y fue adquirida por Blackboard en 2010. Entre los intereses de investigación del profesor Ross se encuentran las redes sociales, las redes P2P, las medidas para Internet, las redes de distribución de contenido y el modelado estocástico. Es miembro de ACM y del IEEE, ha recibido el premio Infocom 2009 al mejor artículo de investigación y fue galardonado también en 2011 y 2008 con los premios al mejor artículo sobre Comunicaciones multimedia por la IEEE Communications Society. Ha sido miembro del comité editorial de numerosas revistas y de los comités de programa de numerosas conferencias, incluyendo IEEE/ACM Transactions on Networking, ACM SIGCOMM, ACM CoNext y ACM Internet Measurement Conference. También ha actuado como asesor de la Comisión Federal de Comercio de los EE.UU: para el tema de la compartición de archivos P2P. Prefacio Bienvenido a la séptima edición de Redes de computadoras: un enfoque descendente. Desde la publicación de la primera edición hace 16 años, nuestro libro ha sido adoptado por centenares de universidades, traducido a 14 idiomas y utilizado por más cien mil estudiantes y profesionales de todo el mundo. Hemos tenido noticias de muchos de estos lectores y estamos abrumados por su positiva respuesta. Novedades en la séptima edición Creemos que una razón importante de este éxito ha sido que nuestro libro continúa ofreciendo un enfoque novedoso y oportuno para la formación en el campo de las redes de computadoras. Hemos realizado cambios en esta séptima edición, pero también hemos conservado todo aquello que creemos que constituyen (y en lo que coinciden los estudiantes y los profesores que han utilizado nuestro libro) los aspectos más importantes del libro: su enfoque descendente, el hecho de que está centrado en Internet y en un tratamiento moderno de las redes de computadoras, su atención tanto a los principios como a la práctica y su estilo y enfoquepedagógico accesibles en lo que respecta al aprendizaje de las redes de computadoras. No obstante, hemos revisado y actualizado esta séptima edición de forma sustancial. Los lectores familiarizados con las ediciones anteriores del libro observarán que, por primera vez desde que publicamos este texto, hemos cambiado la organización de los propios capítulos. La capa de red, que antes se cubría en un único capítulo, ahora se trata en el Capítulo 4 (que se centra en el denominado “plano de datos” de la capa de red) y en el Capítulo 5 (centrado en el “plano de control” de la capa de red). Este tratamiento ampliado de la capa de red refleja el rápido crecimiento de la importancia de las redes definidas por software (SDN), tal vez el más importante y fascinante avance de las últimas décadas en el campo de las redes. Aunque se trata de una innovación relativa- mente reciente, la tecnología SDN ha sido rápidamente adoptada en la práctica: tanto, que ya resulta difícil imaginar una introducción a las modernas redes de computadoras que no cubra SDN. El tema de la gestión de red, que antes se trataba en el Capítulo 9, ha sido ahora integrado en el nuevo Ca- pítulo 5. Como siempre, hemos actualizado también muchas otras secciones del texto, para reflejar los recientes cambios que el dinámico campo de las redes ha experimentado desde la sexta edición. También como siempre, el material que ha sido retirado del texto impreso puede consultarse en el sitio web de acompañamiento del libro. Las actualizaciones más importantes son las siguientes: • Hemos actualizado el Capítulo 1 para reflejar el alcance y utilización crecientes de Internet. • El Capítulo 2, que trata la capa de aplicación, ha sido significativamente actualizado. Hemos eliminado el material sobre el protocolo FTP y las tablas hash distribuidas, para hacer sitio para una nueva sección sobre flujos de vídeo de nivel de aplicación y redes de distribución de contenido, junto con los casos de estudio de Netflix y YouTube. Las secciones de programación de sockets se han actualizado de Python 2 a Python 3. • El Capítulo 3, dedicado a la capa de transporte, solo se ha actualizado ligeramente. El material sobre las redes de modo de transporte asíncrono (ATM) ha sido sustituido por material más moderno sobre la notificación explícita de congestión (ECN) de Internet, que enseña los mismos principios. • El Capítulo 4 cubre el “plano de datos” de la capa de red: la función de reenvío en cada router que determina cómo se reenvía hacia uno de los enlaces de salida de un router un paquete que llegue a uno de los enlaces de entrada de ese router. Hemos actualizado el material sobre el reenvío tradicional de Internet incluido en todas las ediciones anteriores, y hemos añadido nuevo material x PREFACIO sobre la planificación de paquetes. También hemos añadido una nueva sección sobre reenvío generalizado, como el utilizado en SDN. También hay numerosas otras actualizaciones por todo el capítulo. El material sobre comunicaciones de difusión y multidifusión se ha eliminado, para hacer sitio al nuevo material. • En el Capítulo 5, cubrimos las funciones del plano de control de la capa de red: la lógica global de la red que controla el modo en que se enruta un datagrama a lo largo de un camino extremo a extremo de routers, desde el host de origen hasta el host de destino. Como en las ediciones ante- riores, cubrimos tanto los algoritmos como los protocolos de enrutamiento (con un tratamiento actualizado de BGP) que se usan en la Internet actual. Hemos añadido una importante sección nueva sobre el plano de control en SDN, en el que el enrutamiento y otras funciones se imple- mentan en los denominados controladores SDN. • El Capítulo 6, que ahora cubre la capa de enlace, incluye un tratamiento actualizado de Ethernet y de las redes de centros de datos. • El Capítulo 7, dedicado a las redes inalámbricas y móviles, contiene material actualizado sobre las redes 802.11 (denominadas “redes WiFi) y las redes celulares, incluyendo 4G y LTE. • El Capítulo 8, que trata de la seguridad de red y fue actualizado en profundidad en la sexta edi- ción, solo tiene pequeñas actualizaciones en esta séptima edición. • El Capítulo 9, sobre redes multimedia, es ahora ligeramente más corto que en la sexta edición, ya que el material sobre flujos de vídeo y redes de distribución de contenidos se ha pasado al Capítulo 2 y el material sobre planificación de paquetes se ha incorporado al Capítulo 4. • Se ha añadido bastante material nuevo en relación con los problemas del final de cada capítulo. Como en todas las ediciones anteriores, se han revisado, añadido y eliminado los problemas asignados a los lectores. Como siempre, nuestro objetivo al desarrollar esta nueva edición de nuestro libro es continuar proporcionando un tratamiento centrado y moderno de las redes de computadoras, que pone el énfa- sis tanto en los principios como en la práctica. Audiencia Este libro de texto es para un primer curso sobre redes de computadoras. Se puede utilizar tanto en departamentos de informática como de ingeniería eléctrica. En relación con los lenguajes de progra- mación, se supone que el estudiante solo tiene experiencia con C, C++, Java o Python (e incluso esa suposición solo se hace en algunos pocos lugares). Aunque este libro es más preciso y analítico que muchos otros textos introductorios a las redes de computadoras, rara vez utiliza conceptos matemá- ticos que no se hayan aprendido en el bachillerato. Hemos hecho un esfuerzo deliberado por evitar el uso de cualquier concepto de cálculo avanzado, probabilidad o procesos estocásticos (aunque hemos incluido algunos problemas para los estudiantes que dominen estos conceptos). El libro es apropiado por tanto para cursos de primer ciclo y para el primer año de los cursos de segundo ciclo. También puede ser adecuado para los trabajadores del sector de las telecomunicaciones. ¿Qué hace especial a este libro de texto? El tema de las redes de computadoras es enormemente complejo, implicando muchos conceptos, protocolos y tecnologías que están entrelazados de una manera intrincada. Para abarcar este alcance y complejidad, muchos textos de redes se han organizado a menudo sobre las “capas” de una arqui- tectura de red. Con una organización en capas, los estudiantes pueden ver a través de la complejidad de las redes de computadoras y aprender los distintos conceptos y protocolos de una parte de la arquitectura a la vez que ven el gran esquema de cómo todas las partes se ajustan entre sí. Desde una perspectiva pedagógica, nuestra experiencia personal ha sido que dicho enfoque en capas es efecti- PREFACIO xi vamente muy deseable. Sin embargo, hemos comprobado que el enfoque tradicional de enseñanza ascendente, es decir, desde la capa física a la capa de aplicación, no es el mejor enfoque para un curso moderno sobre redes de computadoras. Un enfoque descendente Nuestro libro rompió moldes hace 16 años al abordar el tema de las redes de arriba hacia abajo; es decir, comenzando con la capa de aplicación y descendiendo desde allí hacia la capa física. Los comentarios recibidos tanto de profesores como de estudiantes nos confirman que el enfoque descendente tiene muchas ventajas y resulta pedagógicamente adecuado. En primer lugar, hace énfasis en la capa de aplicación (un “área de elevado crecimiento” en las redes). De hecho, muchas revoluciones recientes en las redes de computadoras, incluyendo la Web, la compartición de archivos P2P y los flujos multimedia, han tenido lugar en la capa de aplicación. Un énfasis inicial en la capa de aplicación difiere de los métodos considerados en la mayor parte de otros textos, que incluyen solo una pequeña cantidad de material sobre las aplicaciones de red, sus requisitos, paradigmas de la capa de aplicación (por ejemplo, cliente-servidor y P2P) e interfaces de programación de aplicaciones. En segundo lugar, nuestra experiencia comoprofesores (y de muchos profesores que han utilizado este texto) ha sido que el enseñar las aplicaciones de redes al principio de curso es una potente herramienta de motivación. Los estudiantes se emocionan al aprender cómo funcionan las aplicaciones de red, aplicaciones tales como el correo electrónico o la Web, que la mayoría de los estudiantes utilizan diariamente. Una vez que los estudiantes comprenden las aplicaciones, pueden entonces entender los servicios de red necesarios para proporcionarles ese soporte. El estudiante puede entonces, a su vez, examinar las distintas formas en que tales servicios pueden ser suministrados por, e implementados en, las capas inferiores. Por tanto, tratar las aplicaciones inicialmente proporciona motivación para abordar el resto del texto. En tercer lugar, un enfoque descendente permite a los profesores introducir el desarrollo de aplicaciones de red en una etapa temprana. Los estudiantes no solo ven cómo funciona una serie de populares aplicaciones y protocolos, sino que también aprenden lo fácil que es crear sus propias aplicaciones de red y protocolos del nivel de aplicación. Con el enfoque descendente, los estudian- tes descubren pronto las nociones acerca de la programación de sockets, los modelos de servicio y los protocolos (conceptos importantes que vuelven a serlo en todas las capas subsiguientes). Al proporcionar ejemplos de programación de sockets en Python, destacamos las ideas centrales sin confundir a los estudiantes con fragmentos complejos de código. Los estudiantes de primer ciclo de Ingeniería Eléctrica y Ciencias de la Computación no deben tener dificultades para comprender el código Python. Un enfoque Internet Aunque en la cuarta edición del libro eliminamos del título la frase “Caracterización de Internet”, ¡no quiere decir que hayamos eliminado el enfoque de Internet! ¡Nada más lejos de la realidad! En lugar de ello, y dado que Internet se ha vuelto tan ubicua, pensamos que cualquier libro de texto sobre redes debe centrarse significativamente en Internet, por lo que la frase del título era hasta cierto punto innecesaria. En el texto, continuamos utilizando la arquitectura y los protocolos de Internet como vehículo principal para estudiar los conceptos fundamentales de las redes de computadoras. Por supuesto, también incluimos conceptos y protocolos de las arquitecturas de red, pero el foco está centrado claramente en Internet, un hecho que se ha reflejado en la organización del libro, que está centrada alrededor de la arquitectura de cinco capas de Internet: las capas de aplicación, transporte, red, enlace y física. Otro de los beneficios de centrar la atención en Internet es que la mayoría de los estudiantes de Ciencias de la Computación y de Ingeniería Eléctrica están deseosos de aprender cosas sobre Internet y sus protocolos. Saben que Internet ha sido una tecnología revolucionaria y conflictiva que está cambiando profundamente nuestro mundo. Dada la enorme relevancia de Internet, los xii PREFACIO estudiantes sienten una natural curiosidad por ver lo que hay “entre bastidores”. Por tanto, es fácil para un profesor conseguir que los estudiantes se interesen por los principios básicos cuando se utiliza Internet como foco guía. Cómo enseñar los principios de las redes Dos de las características únicas del libro (su enfoque descendente y su foco puesto en Internet) se han utilizado en el título en sucesivas ediciones. Si hubiéramos podido introducir una tercera frase en el subtítulo, esta habría contenido la palabra principios. El campo de las redes está ahora lo su- ficientemente maduro como para que se puedan identificar una serie de temas fundamentalmente importantes. Por ejemplo, en la capa de transporte, los temas fundamentales son la comunicación fiable sobre una capa de red no fiable, el establecimiento y el cierre de la conexión y el proceso de acuerdo, el control de congestión y flujo, y la multiplexación. Tres temas enormemente importantes de la capa de red son la determinación de “buenas” rutas entres dos routers y la interconexión de un número grande redes heterogéneas y la gestión de la complejidad de una red moderna. En la capa de enlace de datos, un problema fundamental es la compartición de un canal de acceso múlti- ple. En el campo de la seguridad de red, las técnicas que permiten proporcionar confidencialidad, autenticación e integridad de los mensajes están basadas en los principios de la criptografía. Este texto identifica los temas fundamentales acerca de las redes y estudia los métodos para abordarlos. El estudiante que aprenda estos principios adquirirá una serie de conocimientos con una larga “vida útil”: mucho después de que los estándares y protocolos de red actuales hayan quedado obsoletos, los principios en que se basan continuarán teniendo importancia y siendo relevantes. Pensamos que la combinación del uso de Internet para atisbar las posibilidades y el énfasis posterior en los temas fundamentales y las soluciones permitirán al estudiante comprender rápidamente cualquier tecno- logía de redes. El sitio web Al adquirir este libro de texto, el lector podrá acceder durante doce meses al sitio web de acompaña- miento en la dirección http://www.pearsonhighered.com/cs-resources/. Este sitio incluye: • Material de aprendizaje interactivo. El sitio web de acompañamiento del libro contiene Notas de vídeo —presentaciones de vídeo de temas importantes de todo el libro hechas por los autores, así como resoluciones paso a paso de problemas similares a los del final de los capítulos—. Incialmente, hemos incluido en el sitio web VideoNotes y problemas en línea para los Capítulos 1 a 5, y continuaremos añadiendo y actualizando este material a lo largo del tiempo. Como en ediciones anteriores, el sitio web contiene applets Java interactivas con animaciones de muchos conceptos clave de las redes. El sitio contiene también exámenes interactivos que permiten a los estudiantes comprobar su comprensión básica de los temas tratados. Los profesores pueden integrar estas características interactivas en sus clases y usarlas como miniprácticas de laboratorio. • Material técnico adicional. A medida que hemos ido añadiendo nuevo material en cada edición del libro, hemos tenido que eliminar parte del tratamiento de alguno de los temas existentes, con el fin de que el libro tuviera una longitud aceptable. Por ejemplo, para hacer sitio para el nuevo material incluido en esta edición, hemos eliminado diversos materiales sobre FTP, tablas hash distribuidas y multidifusión. Pero el material incluido en las ediciones anteriores del libro sigue siendo de interés y puede encontrarse en el sitio web de acompañamiento. • Tareas de programación. El sitio web también proporciona una serie de tareas de programación detalladas, entre las que se incluyen la construcción de un servidor web multihebra, la construc- ción de un cliente de correo electrónico con una interfaz gráfica de usuario (GUI), la progra- mación de los lados emisor y receptor de un protocolo de transporte de datos fiable, la programa- ción de un algoritmo de enrutamiento distribuido y otros. PREFACIO xiii • Prácticas de laboratorio con Wireshark. La comprensión de los protocolos de red puede verse ampliada significativamente viendo esos protocolos en acción. El sitio web proporciona numerosas prácticas con Wireshark que permiten a los estudiantes observar la secuencia de mensajes intercambiados entre dos entidades de protocolo. El sitio web incluye prácticas de laboratorio con Wireshark independientes sobre HTTP, DNS, TCP, UDP, IP, ICMP, Ethernet, ARP, WiFi, SSL, y sobre cómo realizar una traza de todos los protocolos implicados en satisfacer una solicitud de extracción de una página web. Continuaremos añadiendo nuevas prácticas de laboratorio en el futuro. Además del sitio web de acompañamiento, los autores mantienen un sitio web público, http:// gaia.cs.umass.edu/kurose_ross/interactive,que contiene ejercicios interactivos que generan proble- mas similares a algunos de los incluidos al final de los capítulos (junto con sus correspondientes soluciones). Dado que los estudiantes pueden generar un número ilimitado de problemas similares (junto con sus soluciones), pueden trabajar hasta dominar completamente el material. Características pedagógicas Cada uno de nosotros lleva enseñando redes de computadoras durante más de 30 años. Proporcio- namos a este texto la experiencia combinada de enseñar durante 60 años a muchos miles de estu- diantes. Hemos sido también investigadores activos en redes de computadoras durante este tiempo. (De hecho, Jim y Keith se conocieron cuando eran estudiantes de máster en un curso sobre redes de computadoras impartido por Mischa Schwartz en 1979 en la Universidad de Columbia.) Pensamos que todo esto nos proporciona una buena perspectiva de cuál ha sido la evolución de las redes y ha- cia dónde es probable que vayan en el futuro. Sin embargo, hemos resistido a la tentación de dirigir el material de este libro hacia las preferencias de nuestros proyectos de investigación. Consideramos que el lector puede visitar nuestros sitios web personales si está interesado en nuestras investigaciones. Por tanto, este libro se ocupa de las redes de computadoras modernas (de los protocolos y tecno- logías contemporáneos, así como de los principios subyacentes a dichos protocolos y tecnologías). También creemos que aprender (y enseñar) redes puede ser divertido. Esperamos que el sentido del humor, el uso de analogías y los ejemplos del mundo real contenidos en el libro hagan el material más divertido. Suplementos para los profesores Proporcionamos un paquete de suplementos completo para ayudar a los profesores a la hora de impartir este curso. Se puede acceder a este material en el Centro de recursos de formación de Pearson (http://www.pearsonhighered.com/irc). Visite este centro para obtener información sobre cómo acceder a los suplementos para los profesores. • Diapositivas PowerPoint®. Proporcionamos diapositivas para los nueve capítulos. Las diapositivas para esta séptima edición se han actualizado de forma significativa. Estas presentaciones en diapositivas cubren cada capítulo en detalle. Se utilizan gráficos y animaciones (en lugar de emplear únicamente monótonas listas de viñetas) que hacen que las diapositivas sean interesantes y visualmente atractivas. Proporcionamos las diapositivas originales de PowerPoint de modo que pueda personalizarlas con el fin de adaptarlas a sus necesidades a la hora de impartir el curso. Algunas de estas diapositivas han sido aportadas por otros profesores que han enseñado con nuestro libro. • Soluciones de los problemas. Proporcionamos un manual de soluciones para los problemas incluidos en el texto, las tareas de programación y las prácticas de laboratorio con Wireshark. Como hemos dicho anteriormente, hemos añadido muchos problemas nuevos en los primeros seis capítulos del libro. xiv PREFACIO Dependencias de los capítulos El primer capítulo de este texto presenta una panorámica general autocontenida de las redes de computadoras, introduciéndose muchos conceptos clave y terminología; este capítulo define el escenario para el resto del libro. Todos los capítulos restantes dependen de este primer capítulo. Recomendamos a los profesores que, después de completar el Capítulo 1, aborden los Capítulos 2 a 6 en orden, siguiendo nuestra filosofía del enfoque descendente. Cada uno de estos cinco capítulos se apoya en el material de los capítulos anteriores. Una vez completados los seis primeros capí- tulos, el profesor tiene bastante flexibilidad. No existen interdependencias entre los tres últimos capítulos, por lo que se pueden abordar en cualquier orden. Sin embargo, cada uno de los tres últi- mos capítulos depende del material de los seis primeros. Muchos profesores explican los primeros seis capítulos y luego uno de los tres últimos como “postre”. Una última nota: agradecemos cualquier comentario Animamos a los estudiantes y profesores a enviarnos por correo electrónico cualquier comentario que tengan sobre nuestro libro. Ha sido maravilloso para nosotros escuchar opiniones de profesores y estudiantes de todo el mundo sobre las cinco primeras ediciones. Muchas de esas sugerencias se han incorporado en ediciones posteriores del libro. También animamos a los profesores a enviarnos nuevos problemas (y sus soluciones) que complementen los problemas actualmente incluidos, los cuales añadiremos únicamente en la parte de acceso exclusivo para profesores del sitio web. Animamos también a los profesores y estudiantes a crear nuevos applets Java que ilustren los conceptos y protocolos de este libro. Si tiene un applet que piensa que podría ser adecuado para este texto, por favor, envíenoslo. Si el applet (incluyendo la notación y terminología) es apropiado, estaremos encantados de incluirlo en el sitio web del libro, junto con la apropiada referencia a los autores del mismo. De modo que, como dice la famosa frase, “¡Que no pare la música!” En serio, continúen enviándonos direcciones URL interesantes, señalándonos los errores tipográficos, mostrándose en desacuerdo con cualquiera de nuestras afirmaciones y diciéndonos lo que creen que funciona y lo que no. Díganos qué es lo que piensa que debería o no debería ser incluido en la siguiente edición. Envíenos su correo electrónico a kurose@cs.umass.edu y keithwross@nyu.edu. Agradecimientos Desde que comenzamos a escribir este libro en 1996, muchas personas nos han proporcionado una ayuda inestimable y nos ha influido dando forma a nuestras ideas sobre cómo organizar e impartir un curso de redes. MUCHAS GRACIAS a todos los que nos han ayudado desde el primer borrador del libro hasta la séptima edición. Estamos también muy agradecidos a los muchos cientos de lec- tores de todo el mundo (estudiantes, profesores, usuarios) que nos han enviado ideas y comentarios sobre las ediciones anteriores del libro y sugerencias sobre las futuras ediciones del mismo. Gracias especiales a: Al Aho (Universidad de Columbia) Hisham Al-Mubaid (Universidad de Houston-Clear Lake) Pratima Akkunoor (Universidad del Estado de Arizona) Paul Amer (Universidad de Delaware) Shamiul Azom (Universidad del Estado de Arizona) Lichun Bao (Universidad de California en Irvine) Paul Barford (Universidad de Wisconsin) Bobby Bhattacharjee (Universidad de Maryland) Steven Bellovin (Universidad de Columbia) Pravin Bhagwat (Wibhu) PREFACIO xv Supratik Bhattacharyya (anteriormente en Sprint) Ernst Biersack (Eurécom Institute) Shahid Bokhari (University of Engineering & Technology, Lahore) Jean Bolot (Technicolor Research) Daniel Brushteyn (former University of Pennsylvania student) Ken Calvert (Universidad de Kentucky) Evandro Cantu (Universidad Federal de Santa Catarina) Jeff Case (SNMP Research International) Jeff Chaltas (Sprint) Vinton Cerf (Google) Byung Kyu Choi (Universidad Tecnológica de Michigan) Bram Cohen (BitTorrent, Inc.) Constantine Coutras (Pace University) John Daigle (Universidad de Mississippi) Edmundo A. de Souza e Silva (Universidad Federal de Río de Janeiro) Philippe Decuetos (Eurécom Institute) Christophe Diot (Technicolor Research) Prithula Dhunghel (Akamai) Deborah Estrin (Universidad de California, Los Angeles) Michalis Faloutsos (Universidad de California en Riverside) Wu-chi Feng (Oregon Graduate Institute) Sally Floyd (ICIR, Universidad de California en Berkeley) Paul Francis (Instituto Max Planck) David Fullager (Netflix) Lixin Gao (Universidad de Massachusetts) JJ Garcia-Luna-Aceves (Universidad de California en Santa Cruz) Mario Gerla (Universidad de California en Los Angeles) David Goodman (NYU-Poly) Yang Guo (Alcatel/Lucent Bell Labs) Tim Griffin (Universidad de Cambridge) Max Hailperin (Gustavus Adolphus College) Bruce Harvey (Florida A&M University, Florida State University) Carl Hauser (Universidad del Estado de Washington) RachelleHeller (Universidad George Washington) Phillipp Hoschka (INRIA/W3C) Wen Hsin (Park University) Albert Huang (antiguo estudiante de la Universidad de Pensilvania) Cheng Huang (Microsoft Research) Esther A. Hughes (Virginia Commonwealth University) Van Jacobson (Xerox PARC) Pinak Jain (former NYU-Poly student) Jobin James (Universidad de California en Riverside) Sugih Jamin (Universidad de Michigan) Shivkumar Kalyanaraman (IBM Research, India) Jussi Kangasharju (Universidad de Helsinki) Sneha Kasera (Universidad de Utah) Parviz Kermani (formerly of IBM Research) Hyojin Kim (antiguo estudiante de la Universidad de Pensilvania) Leonard Kleinrock (Universidad de California en Los Ángeles) David Kotz (Dartmouth College) Beshan Kulapala (Universidad del Estado de Arizona) Rakesh Kumar (Bloomberg) xvi PREFACIO Miguel A. Labrador (University of South Florida) Simon Lam (Universidad de Texas) Steve Lai (Universidad del Estado de Ohio) Tom LaPorta (Penn State University) Tim-Berners Lee (World Wide Web Consortium) Arnaud Legout (INRIA) Lee Leitner (Universidad de Drexel) Brian Levine (Universidad de Massachusetts) Chunchun Li (former NYU-Poly student) Yong Liu (NYU-Poly) William Liang (antiguo estudiante de la Universidad de Pensilvania) Willis Marti (Texas A&M University) Nick McKeown (Universidad de Stanford) Josh McKinzie (Park University) Deep Medhi (Universidad de Missouri, Kansas City) Bob Metcalfe (International Data Group) Sue Moon (KAIST) Jenni Moyer (Comcast) Erich Nahum (IBM Research) Christos Papadopoulos (Instituto del Estado de Colorado) Craig Partridge (BBN Technologies) Radia Perlman (Intel) Jitendra Padhye (Microsoft Research) Vern Paxson (University of California at Berkeley) Kevin Phillips (Sprint) George Polyzos (Athens University of Economics and Business) Sriram Rajagopalan (Universidad del Estado de Arizona) Ramachandran Ramjee (Microsoft Research) Ken Reek (Instituto de Tecnología Rochester) Martin Reisslein (Universidad del Estado de Arizona) Jennifer Rexford (Universidad de Princeton) Leon Reznik (Instituto de Tecnología Rochester) Pablo Rodríguez (Telefónica) Sumit Roy (Universidad de Washington) Dan Rubenstein (Universidad de Columbia) Avi Rubin (Universidad Johns Hopkins) Douglas Salane (John Jay College) Despina Saparilla (Cisco Systems) John Schanz (Comcast) Henning Schulzrinne (Universidad de Columbia) Mischa Schwartz (Universidad de Columbia) Ardash Sethi (Universidad de Delaware) Harish Sethu (Universidad de Drexel) K. Sam Shanmugan (Universidad de Kansas) Prashant Shenoy (Universidad de Massachusetts) Clay Shields (Universidad de Georgetown) Subin Shrestra (Universidad de Pensilvania) Bojie Shu (former NYU-Poly student) Mihail L. Sichitiu (NC State University) Peter Steenkiste (Universidad de Carnegie Mellon) Tatsuya Suda (Universidad de California en Irvine) Kin Sun Tam (Universidad del Estado de Nueva York en Albany) PREFACIO xvii Don Towsley (Universidad de Massachusetts) David Turner (Universidad del Estado de California, San Bernardino) Nitin Vaidya (Universidad de Illinois) Michele Weigle (Universidad de Clemson) David Wetherall (Universidad de Washington) Ira Winston (Universidad de Pensilvania) Di Wu (Sun Yat-sen University) Shirley Wynn (NYU-Poly) Raj Yavatkar (Intel) Yechiam Yemini (Universidad de Columbia) Dian Yu (NYU Shanghai) Ming Yu (Universidad del Estado de Nueva York en Binghamton) Ellen Zegura (Instituto de Tecnología de Georgia) Honggang Zhang (Universidad de Suffolk) Hui Zhang (Universidad de Carnegie Mellon) Lixia Zhang (Universidad de California en Los Angeles) Meng Zhang (antiguo estudiante de NYU-Poly) Shuchun Zhang (antiguo estudiante de la Universidad de Pensilvania) Xiaodong Zhang (Universidad del Estado de Ohio) ZhiLi Zhang (Universidad de Minnesota) Phil Zimmermann (consultor independiente) Mike Zink (Universidad de Massachusetts) Cliff C. Zou (Universidad de Central Florida) También queremos dar las gracias a todo el equipo de Pearson —en particular, a Matt Goldstein y Joanne Manning—que han hecho un trabajo absolutamente excelente en esta séptima edición (y que han sabido llevar a dos autores que parecen congénitamente incapaces de cumplir con los plazos). Gracias también a nuestros artistas, Janet Theurer y Patrice Rossi Calkin, por su trabajo en las bonitas figuras de esta y de las anteriores ediciones del libro, y a Katie Ostler y su equipo de Cenveo por el maravilloso trabajo de producción en esta edición. Por último, una gratitud muy especial a nuestros dos antiguos editores en Addison-Wesley—Michael Hirsch y Susan Hartman. Este libro no sería lo que es (e incluso puede que nunca hubiera llegado a ser) sin su apropiada gestión del proyecto, su apoyo constante, su paciencia casi infinita, su buen humor y su perseverancia. Contenido Capítulo 1 Redes de computadoras e Internet ...................................................................1 1.1 ¿Qué es Internet? ...........................................................................................................................2 1.1.1 Descripción de los componentes esenciales .....................................................................2 1.1.2 Descripción de los servicios .............................................................................................5 1.1.3 ¿Qué es un protocolo? ......................................................................................................6 1.2 La frontera de la red ......................................................................................................................8 1.2.1 Redes de acceso ................................................................................................................8 1.2.2 Medios físicos ................................................................................................................16 1.3 El núcleo de la red .......................................................................................................................18 1.3.1 Conmutación de paquetes ...............................................................................................18 1.3.2 Conmutación de circuitos ...............................................................................................23 1.3.3 Una red de redes .............................................................................................................27 1.4 Retardos, pérdidas y tasa de transferencia en las redes de conmutación de paquetes .................29 1.4.1 El retardo en las redes de conmutación de paquetes ......................................................30 1.4.2 Retardo de cola y pérdida de paquetes ...........................................................................33 1.4.3 Retardo extremo a extremo ............................................................................................35 1.4.4 Tasa de transferencia en las redes de computadoras ......................................................37 1.5 Capas de protocolos y sus modelos de servicio ...........................................................................39 1.5.1 Arquitectura en capas .....................................................................................................40 1.5.2 Encapsulación .................................................................................................................45 1.6 Ataques a las redes ......................................................................................................................46 1.7 Historia de Internet y de las redes de computadoras ...................................................................50 1.7.1 El desarrollo de la conmutación de paquetes: 1961–1972 .............................................50 1.7.2 Redes propietarias e interredes: 1972–1980 ...................................................................51 1.7.3 Proliferación de las redes: 1980–1990 ...........................................................................52 1.7.4 La explosión de Internet:década de 1990 ......................................................................53 1.7.5 El nuevo milenio ............................................................................................................54 1.8 Resumen ......................................................................................................................................55 Problemas y cuestiones de repaso ...........................................................................................................56 Prácticas de laboratorio con Wireshark ...................................................................................................65 Entrevista: Leonard Kleinrock ............................................................................................................... 67 Capítulo 2 La capa de aplicación ......................................................................................69 2.1 Principios de las aplicaciones de red ...........................................................................................70 2.1.1 Arquitecturas de las aplicaciones de red ........................................................................70 2.1.2 Comunicación entre procesos .........................................................................................73 2.1.3 Servicios de transporte disponibles para las aplicaciones ..............................................75 2.1.4 Servicios de transporte proporcionados por Internet ......................................................77 2.1.5 Protocolos de la capa de aplicación ................................................................................79 2.1.6 Aplicaciones de red analizadas en este libro ..................................................................81 2.2 La Web y HTTP ..........................................................................................................................81 2.2.1 Introducción a HTTP ......................................................................................................82 xx CONTENIDO 2.2.2 Conexiones persistentes y no persistentes ......................................................................83 2.2.3 Formato de los mensajes HTTP .....................................................................................86 2.2.4 Interacción usuario-servidor: cookies ............................................................................89 2.2.5 Almacenamiento en caché web ......................................................................................91 2.3 Correo electrónico en Internet .....................................................................................................96 2.3.1 SMTP .............................................................................................................................97 2.3.2 Comparación con HTTP ...............................................................................................100 2.3.3 Formatos de los mensajes de correo .............................................................................100 2.3.4 Protocolos de acceso para correo electrónico............................................................... 101 2.4 DNS: el servicio de directorio de Internet .................................................................................104 2.4.1 Servicios proporcionados por DNS ..............................................................................105 2.4.2 Cómo funciona DNS ....................................................................................................106 2.4.3 Registros y mensajes DNS ...........................................................................................112 2.5 Distribución de archivos P2P ....................................................................................................116 2.6 Flujos de vídeo y redes de distribución de contenido ................................................................121 2.6.1 Vídeo por Internet ........................................................................................................121 2.6.2 Flujos de vídeo HTTP y tecnología DASH ..................................................................122 2.6.3 Redes de distribución de contenido ..............................................................................123 2.6.4 Casos de estudio: Netflix, YouTube y Kankan ............................................................127 2.7 Programación de sockets: creación de aplicaciones de red .......................................................130 2.7.1 Programación de sockets con UDP ..............................................................................131 2.7.2 Programación de sockets con TCP ...............................................................................135 2.8 Resumen ....................................................................................................................................140 Problemas y cuestiones de repaso .........................................................................................................140 Tareas sobre programación de sockets ..................................................................................................148 Prácticas de laboratorio con Wireshark: HTTP .....................................................................................149 Prácticas de laboratorio con Wireshark: DNS .......................................................................................150 Entrevista: Marc Andreessen .................................................................................................................151 Capítulo 3 La capa de transporte ....................................................................................153 3.1 La capa de transporte y sus servicios ........................................................................................154 3.1.1 Relaciones entre las capas de transporte y de red ........................................................154 3.1.2 La capa de transporte en Internet .................................................................................156 3.2 Multiplexación y demultiplexación ...........................................................................................158 3.3 Transporte sin conexión: UDP ..................................................................................................164 3.3.1 Estructura de los segmentos UDP ................................................................................167 3.3.2 Suma de comprobación de UDP ..................................................................................167 3.4 Principios de un servicio de transferencia de datos fiable .........................................................169 3.4.1 Construcción de un protocolo de transferencia de datos fiable ....................................170 3.4.2 Protocolo de transferencia de datos fiable con procesamiento en cadena ....................178 3.4.3 Retroceder N (GBN) ....................................................................................................181 3.4.4 Repetición selectiva (SR) .............................................................................................186 3.5 Transporte orientado a la conexión: TCP ..................................................................................191 3.5.1 La conexión TCP ..........................................................................................................191 3.5.2 Estructura del segmento TCP .......................................................................................193 3.5.3 Estimación del tiempo de ida y vuelta y fin de temporización ....................................198 3.5.4 Transferencia de datos fiable ........................................................................................200 3.5.5 Control de flujo ............................................................................................................207 3.5.6 Gestiónde la conexión TCP .........................................................................................209 3.6 Principios del control de congestión ..........................................................................................214 3.6.1 Las causas y los costes de la congestión ......................................................................214 CONTENIDO xxi 3.6.2 Métodos para controlar la congestión ..........................................................................220 3.7 Mecanismo de control de congestión de TCP ...........................................................................221 3.7.1 Equidad .........................................................................................................................230 3.7.2 Notificación explícita de congestión (ECN): control de congestión asistido por la red .........................................................................................................232 3.8 Resumen ....................................................................................................................................233 Problemas y cuestiones de repaso .........................................................................................................236 Tareas de programación ........................................................................................................................248 Prácticas de laboratorio con Wireshark: exploración de TCP, UDP .....................................................249 Entrevista: Van Jacobson ......................................................................................................................250 Capítulo 4 La capa de red: el plano de datos .................................................................253 4.1 Introducción a la capa de red .....................................................................................................254 4.1.1 Reenvío y enrutamiento: los planos de datos y de control ...........................................254 4.1.2 Modelo de servicio de red ............................................................................................258 4.2 El interior de un router ..............................................................................................................259 4.2.1 Procesamiento en el puerto de entrada y reenvío basado en el destino ........................262 4.2.2 Conmutación ................................................................................................................264 4.2.3 Procesamiento en el puerto de salida ...........................................................................266 4.2.4 ¿Dónde se crean colas?................................................................................................. 266 4.2.5 Planificación de paquetes .............................................................................................270 4.3 Protocolo de Internet (IP): IPv4, direccionamiento, IPv6 y más ...............................................274 4.3.1 Formato de los datagramas IPv4 ..................................................................................274 4.3.2 Fragmentación del datagrama IPv4 ..............................................................................276 4.3.3 Direccionamiento IPv4 .................................................................................................277 4.3.4 Traducción de direcciones de red (NAT) .....................................................................286 4.3.5 IPv6 ..............................................................................................................................289 4.4 Reenvío generalizado y SDN ....................................................................................................294 4.4.1 Correspondencia ...........................................................................................................296 4.4.2 Acción ..........................................................................................................................297 4.4.3 Ejemplos de correspondencia-acción en OpenFlow ....................................................297 4.5 Resumen ....................................................................................................................................299 Problemas y cuestiones de repaso .........................................................................................................300 Práctica de laboratorio con Wireshark ..................................................................................................306 Entrevista: Vinton G. Cerf .....................................................................................................................307 Capítulo 5 La capa de red: el plano de control ..............................................................309 5.1 Introducción ...............................................................................................................................309 5.2 Algoritmos de enrutamiento ......................................................................................................311 5.2.1 Algoritmo de enrutamiento de estado de enlaces (LS)................................................. 314 5.2.2 Algoritmo de enrutamiento por vector de distancias (DV) ..........................................317 5.3 Enrutamiento dentro de un sistema autónomo en Internet: OSPF ............................................323 5.4 Enrutamiento entre los ISP: BGP ..............................................................................................326 5.4.1 El papel de BGP ...........................................................................................................327 5.4.2 Anuncio de la información de rutas BGP .....................................................................327 5.4.3 Determinación de las mejores rutas.............................................................................. 329 5.4.4 IP-Anycast ....................................................................................................................332 5.4.5 Política de enrutamiento ...............................................................................................333 5.4.6 Cómo encajan las piezas: obtención de presencia en Internet...................................... 335 5.5 El plano de control SDN ............................................................................................................336 xxii CONTENIDO 5.5.1 El plano de control SDN: controlador SDN y aplicaciones SDN de control de red ....338 5.5.2 Protocolo OpenFlow ....................................................................................................340 5.5.3 Interacción entre los planos de datos y de control: ejemplo......................................... 342 5.5.4 SDN: pasado y futuro ...................................................................................................343 5.6 Protocolo de mensajes de control de Internet (ICMP) ..............................................................346 5.7 Gestión de red y SNMP .............................................................................................................348 5.7.1 El marco conceptual de la gestión de red .....................................................................348 5.7.2 El protocolo SNMP ......................................................................................................350 5.8 Resumen ....................................................................................................................................352 Problemas y cuestiones de repaso .........................................................................................................353 Tarea de programación con socket ........................................................................................................358 Tarea de programación ..........................................................................................................................358Prácticas de laboratorio con Wireshark .................................................................................................359 Entrevista: Jennifer Rexford ..................................................................................................................360 Capítulo 6 La capa de enlace y las redes de área local ..................................................363 6.1 Introducción a la capa de enlace ................................................................................................364 6.1.1 Servicios proporcionados por la capa de enlace ...........................................................364 6.1.2 ¿Dónde se implementa la capa de enlace? ...................................................................366 6.2 Técnicas de detección y corrección de errores ..........................................................................367 6.2.1 Comprobaciones de paridad .........................................................................................369 6.2.2 Métodos basados en la suma de comprobación............................................................ 370 6.2.3 Comprobación de redundancia cíclica (CRC) ..............................................................371 6.3 Protocolos y enlaces de acceso múltiple ...................................................................................373 6.3.1 Protocolos de particionamiento del canal .....................................................................375 6.3.2 Protocolos de acceso aleatorio .....................................................................................377 6.3.3 Protocolos de toma de turnos .......................................................................................384 6.3.4 DOCSIS: el protocolo de la capa de enlace para acceso a Internet por cable ..............385 6.4 Redes de área local conmutadas ................................................................................................386 6.4.1 Direccionamiento de la capa de enlace y ARP............................................................. 387 6.4.2 Ethernet ........................................................................................................................393 6.4.3 Switches de la capa de enlace....................................................................................... 398 6.4.4 Redes de área local virtuales (VLAN) .........................................................................403 6.5 Virtualización de enlaces: la red como una capa de enlace .......................................................406 6.5.1 Conmutación de etiquetas multiprotocolo (MPLS) .....................................................407 6.6 Redes para centros de datos .......................................................................................................409 6.7 Retrospectiva: un día en la vida de una solicitud de página web ..............................................413 6.7.1 Inicio: DHCP, UDP, IP y Ethernet ...............................................................................414 6.7.2 Seguimos con el inicio: DNS y ARP ...........................................................................415 6.7.3 Seguimos con el inicio: enrutamiento dentro del dominio al servidor DNS ................416 6.7.4 Interacción web cliente-servidor: TCP y HTTP ...........................................................417 6.8 Resumen ....................................................................................................................................418 Problemas y cuestiones de repaso .........................................................................................................419 Prácticas de laboratorio con Wireshark .................................................................................................426 Entrevista: Simon S. Lam ......................................................................................................................427 Capítulo 7 Redes inalámbricas y móviles .......................................................................429 7.1 Introducción ...............................................................................................................................430 7.2 Características de las redes y enlaces inalámbricos ..................................................................434 7.2.1 CDMA ..........................................................................................................................437 CONTENIDO xxiii 7.3 WiFi: redes LAN inalámbricas 802.11 ......................................................................................440 7.3.1 La arquitectura 802.11 ..................................................................................................440 7.3.2 El protocolo MAC 802.11 ............................................................................................444 7.3.3 La trama IEEE 802.11 ..................................................................................................449 7.3.4 Movilidad dentro de la misma subred IP...................................................................... 452 7.3.5 Características avanzadas de 802.11 ............................................................................453 7.3.6 Redes de área personal: Bluetooth y Zigbee ................................................................454 7.4 Acceso celular a Internet ...........................................................................................................456 7.4.1 Panorámica de la arquitectura de las redes celulares ...................................................457 7.4.2 Redes de datos celulares 3G: llevando Internet a los abonados celulares ....................459 7.4.3 Hacia la tecnología 4G: LTE ........................................................................................461 7.5 Gestión de la movilidad: principios ...........................................................................................464 7.5.1 Direccionamiento .........................................................................................................467 7.5.2 Enrutamiento hacia un nodo móvil ..............................................................................468 7.6 IP móvil .....................................................................................................................................472 7.7 Gestión de la movilidad en redes celulares ...............................................................................476 7.7.1 Enrutamiento de llamadas hacia un usuario móvil ...........................................................477 7.7.2 Transferencia de llamadas en GSM ..................................................................................478 7.8 Tecnología inalámbrica y movilidad: impacto sobre los protocolos de las capas superiores ...481 7.9 Resumen ....................................................................................................................................483 Problemas y cuestiones de repaso .........................................................................................................483 Prácticas de laboratorio con Wireshark .................................................................................................487 Entrevista: Deborah Estrin ....................................................................................................................488 Capítulo 8 Seguridad en las redes de computadoras .....................................................491 8.1 ¿Qué es la seguridad de red? .....................................................................................................492 8.2 Principios de la criptografía .......................................................................................................494 8.2.1 Criptografía de clave simétrica..................................................................................... 495 8.2.2 Cifrado de clavepública ...............................................................................................500 8.3 Integridad de los mensajes y firmas digitales ............................................................................505 8.3.1 Funciones hash criptográficas ......................................................................................506 8.3.2 Código de autenticación del mensaje ...........................................................................507 8.3.3 Firmas digitales ............................................................................................................509 8.4 Autenticación del punto terminal ..............................................................................................514 8.4.1 Protocolo de autenticación ap1.0 .................................................................................515 8.4.2 Protocolo de autenticación ap2.0 .................................................................................515 8.4.3 Protocolo de autenticación ap3.0 .................................................................................516 8.4.4 Protocolo de autenticación ap3.1 .................................................................................516 8.4.5 Protocolo de autenticación ap4.0 .................................................................................517 8.5 Asegurando el correo electrónico ..............................................................................................518 8.5.1 Correo electrónico seguro ............................................................................................519 8.5.2 PGP ...............................................................................................................................522 8.6 Asegurando las conexiones TCP: SSL ......................................................................................523 8.6.1 Panorámica general ......................................................................................................524 8.6.2 Una panorámica más completa..................................................................................... 526 8.7 Seguridad de la capa de red: IPsec y redes privadas virtuales................................................... 528 8.7.1 IPsec y redes privadas virtuales (VPN) ........................................................................529 8.7.2 Los protocolos AH y ESP ............................................................................................530 8.7.3 Asociaciones de seguridad ...........................................................................................530 8.7.4 El datagrama IPsec .......................................................................................................531 xxiv CONTENIDO 8.7.5 IKE: gestión de claves en IPsec ...................................................................................534 8.8 Asegurando las redes LAN inalámbricas ..................................................................................535 8.8.1 WEP (Wired Equivalent Privacy) ................................................................................535 8.8.2 IEEE 802.11i ................................................................................................................537 8.9 Seguridad operacional: cortafuegos y sistemas de detección de intrusiones ............................539 8.9.1 Cortafuegos ..................................................................................................................539 8.9.2 Sistemas de detección de intrusiones ...........................................................................546 8.10 Resumen ....................................................................................................................................549 Problemas y cuestiones de repaso .........................................................................................................550 Prácticas de laboratorio con Wireshark .................................................................................................557 Prácticas de laboratorio con IPsec .........................................................................................................557 Entrevista: Steven M. Bellovin ..............................................................................................................558 Capítulo 9 Redes multimedia ...........................................................................................561 9.1 Aplicaciones multimedia en red ................................................................................................562 9.1.1 Propiedades del vídeo ...................................................................................................562 9.1.2 Propiedades del audio ...................................................................................................563 9.1.3 Tipos de aplicaciones multimedia en red .....................................................................564 9.2 Flujos de vídeo almacenado ......................................................................................................566 9.2.1 Flujos UDP ...................................................................................................................567 9.2.2 Flujos HTTP .................................................................................................................568 9.3 Voz sobre IP ..............................................................................................................................572 9.3.1 Limitaciones del servicio IP de entrega de mejor esfuerzo ..........................................572 9.3.2 Eliminación de las fluctuaciones al reproducir audio en el receptor ............................574 9.3.3 Recuperación frente a pérdidas de paquetes................................................................. 577 9.3.4 Caso de estudio: VoIP con Skype ................................................................................579 9.4 Protocolos para aplicaciones de conversación en tiempo real ...................................................582 9.4.1 RTP ...............................................................................................................................582 9.4.2 SIP ................................................................................................................................585 9.5 Soporte de red para aplicaciones multimedia ............................................................................589 9.5.1 Dimensionamiento de las redes con servicio de entrega de mejor esfuerzo ................591 9.5.2 Provisión de múltiples clases de servicio .....................................................................592 9.5.3 Diffserv .........................................................................................................................598 9.5.4 Garantías de calidad de servicio (QoS) por conexión: reserva de recursos y admisión de llamadas ................................................................................................601 9.6 Resumen ....................................................................................................................................604 Problemas y cuestiones de repaso .........................................................................................................605 Tarea de programación ..........................................................................................................................611 Entrevista: Henning Schulzrinne ...........................................................................................................613 Referencias ...............................................................................................................................615 Índice ........................................................................................................................................645 Hoydía, Internet es casi indiscutiblemente el sistema de ingeniería más grande creado por la mano del hombre, con cientos de millones de computadoras conectadas, enlaces de comunicaciones y switches; con miles de millones de usuarios que se conectan a través de computadoras portátiles, tabletas y teléfonos inteligentes; y con una amplia variedad de nuevas “cosas” conectadas a Internet, incluyendo consolas de juegos, sistemas de vigilancia, relojes, gafas, termostatos, básculas y vehículos. Dado que Internet es una red tan enorme e incluye tantos componentes distintos y tiene tantos usos, ¿es posible tener la esperanza de comprender cómo funciona? ¿Existen unos principios y una estructura básicos que puedan proporcionar los fundamentos para comprender un sistema tan asombrosamente complejo y grande? Y, en caso afirmativo, ¿es posible que pueda resultar interesante y divertido aprender acerca de las redes de computadoras? Afortunadamente, la respuesta a todas estas preguntas es un rotundo ¡SÍ! De hecho, el objetivo de este libro es proporcionar al lector una introducción moderna al dinámico campo de las redes de computadoras, exponiendo los principios y los conocimientos prácticos que necesitará para entender no solo las redes actuales, sino también las del futuro. En el primer capítulo se hace una amplia introducción al mundo de las redes de computadoras y de Internet. Nuestro objetivo es proporcionar una visión general y establecer el contexto para el resto del libro, con el fin de poder ver el bosque a través de los árboles. En este capítulo de introducción se abordan muchos de los fundamentos, así como muchos de los componentes que forman una red de computadoras, siempre sin perder de vista la panorámica general. Vamos a estructurar esta introducción a las redes de computadoras de la siguiente forma: después de exponer algunos conceptos y términos fundamentales, examinaremos los componentes hardware y software esenciales que forman una red de computadoras. Comenzaremos por la frontera de la red y echaremos un vistazo a los sistemas terminales y aplicaciones que se ejecutan en la red. A continuación, exploraremos el núcleo de una red de computadoras, examinando los enlaces y los switches que transportan los datos, así como las redes de acceso y los medios físicos que conectan los sistemas terminales con el núcleo de la red. Aprenderemos que Internet es una red de redes y cómo estas redes se conectan entre sí. 1CAPÍTULO Redes de computadoras e Internet 1 2 CAPÍTULO 1 • REDES DE COMPUTADORAS E INTERNET Una vez completada la introducción sobre la frontera y el núcleo de una red de computadoras, en la segunda mitad del capítulo adoptaremos un punto de vista más amplio y abstracto. Examinaremos los retardos, las pérdidas y la tasa de transferencia de datos en una red de computadoras y proporcionaremos modelos cuantitativos simples para los retardos y tasas de transferencia de terminal a terminal: modelos que tienen en cuenta los retardos de transmisión, de propagación y de cola. A continuación, presentaremos algunos de los principios básicos sobre las arquitecturas de red: en concreto, las capas de protocolos y los modelos de servicios. También veremos que las redes son vulnerables a muchos tipos distintos de ataques; revisaremos algunos de estos ataques y veremos cómo es posible conseguir que las redes sean más seguras. Por último, concluiremos el capítulo con una breve historia de las redes de comunicaciones. 1.1 ¿Qué es Internet? En este libro, vamos a emplear la red pública Internet, una red de computadoras específica, como nuestro principal vehículo para explicar las redes de computadoras y sus protocolos. Pero, ¿qué es Internet? Hay dos formas de responder a esta pregunta. La primera de ellas es describiendo las tuer- cas y tornillos que forman la red, es decir, los componentes hardware y software básicos que forman Internet. La segunda es describiéndola en términos de la infraestructura de red que proporciona ser- vicios a aplicaciones distribuidas. Comenzaremos por la descripción de los componentes esenciales, utilizando la Figura 1.1 para ilustrar la exposición. 1.1.1 Descripción de los componentes esenciales Internet es una red de computadoras que interconecta miles de millones de dispositivos informáticos a lo largo de todo el mundo. No hace demasiado tiempo, estos dispositivos eran fundamentalmente computadoras PC de escritorio tradicionales, estaciones de trabajo Linux y los llamados servidores, que almacenan y transmiten información tal como páginas web y mensajes de correo electrónico. Sin embargo, cada vez se conectan a Internet más “cosas” (dispositivos) no tradicionales, como computadoras portátiles, teléfonos inteligentes, tabletas, televisiones, consolas de juegos, termos- tatos, sistemas domésticos de alarma, electrodomésticos, relojes, gafas, vehículos, sistemas de control de tráfico y otros. De hecho, el término red de computadoras está comenzando a sonar algo obsoleto, a causa de la gran cantidad de dispositivos no tradicionales que se conectan a Internet. En la jerga de Internet, todos estos dispositivos se denominan hosts o sistemas terminales. Según algunas estimaciones, en 2015 había unos 5.000 millones de dispositivos conectados a Internet, y esa cifra alcanzará los 25.000 millones en 2020 [Gartner 2014]. Se estima que en 2015 había más de 3.200 millones de usuarios de Internet en todo el mundo, aproximadamente el 40% de la población mundial [ITU 2015]. Los sistemas terminales se conectan entre sí mediante una red de enlaces de comunicaciones y conmutadores de paquetes. En la Sección 1.2 veremos que existen muchos tipos de enlaces de comunicaciones, los cuales están compuestos por diferentes tipos de medios físicos, entre los que se incluyen el cable coaxial, el hilo de cobre, la fibra óptica y el espectro de radio. Los distintos enlaces pueden transmitir los datos a distintas velocidades y la velocidad de transmisión de un enlace se mide en bits/segundo. Cuando un sistema terminal tiene datos que enviar a otro sistema terminal, el emisor segmenta los datos y añade bytes de cabecera a cada segmento. Los paquetes de información resultantes, conocidos como paquetes en la jerga informática, se envían entonces a través de la red hasta el sistema terminal receptor, donde vuelven a ser ensamblados para obtener los datos originales. Un conmutador de paquetes toma un paquete que llega a través de uno de sus enlaces de comunicaciones de entrada y lo reenvía a través de a uno de sus enlaces de comunicaciones de salida. Los conmutadores de paquetes se suministran en muchas formas y modelos, pero los dos 1.1 • ¿QUé ES INTERNET? 3 Figura 1.1 ♦ Algunos de los componentes de Internet. Clave: Host (= sistema terminal) Servidor Disposit. móvil Router Switch de nivel de enlace Módem Estación base Teléfono inteligente Tableta Semáforo Termostato Nevera Monitor de pantalla plana Teclado ISP nacional o global Red móvil ISP local o regional Red empresarial Torre de telefonía móvil Red doméstica tipos más utilizados actualmente en Internet son los routers y los switches de la capa de enlace. Ambos tipos de conmutadores reenvían paquetes hacia sus destinos finales. Los switches de la capa de enlace normalmente se emplean en las redes de acceso, mientras que los routers suelen utilizarse en el núcleo de la red. La secuencia de enlaces de comunicaciones y conmutadores de paquetes que atraviesa un paquete desde el sistema terminal emisor hasta el sistema terminal receptor, se conoce con el nombre de ruta a través de la red. Según las predicciones de Cisco, el tráfico IP global anual sobrepasará el umbral del zettabyte (1021 bytes) a finales de 2016 y alcanzará los 2 zettabytes por año en 2019 [Cisco VNI 2015]. 4 CAPÍTULO 1 • REDES DE COMPUTADORAS E INTERNET Las redes de conmutación de paquetes (que transportan paquetes) son similares en muchos aspectos a las redes de transporte
Compartir