Transcript IntroTCPIP
Introducción a TCP/IP características principales Dr. Roberto Gómez Cárdenas [email protected] http://webdia.cem.itesm.mx/dia/ac/rogomez ¿Qué es TCP/IP? Conjunto de protocolos que sirven para comunicar dos computadoras Encargado de manejar los errores en la transmisión, administrar el enrutamiento y entrega de los datos Controlar la transmisión real mediante el uso de señales de estado predeterminadas Los dos principales protocolos son: TCP: Transmission Control Protocol IP: Internet Protocol Objetivos de la arquitectura independencia de la tecnología de red y de la arquitectura de la computadora host conectividad universal a través de la red acknowledgements de punto a punto protocolos de aplicación estándares Principales características de la arquitectura TCP/IP protocolos tipo no-conexión en el nivel red nodos como computadoras de switcheo de paquetes protocolos de transporte con funciones de confiabilidad conjunto común de programas de aplicación ruteo dinámico Modelo de la Arquitectura TCP/IP Nivel de aplicación Terminal virtual Correo electrónico Protocolo de control de transmisión (TCP) Nivel de transmisión Nivel de internet Nivel de red Transferencia de archivos Servidor de nombres mount de NFS Protocolo de datagramas de usuario (UDP) Protocolo de Internet, (IP) y protocolo de control de mensajes ARPANET Red satelital X.25 Ethernet Token ring Los protocolos TCP/IP y el modelo OSI Niveles OSI: Aplicación Niveles TCP/IP: Aplicación Transmisión Internet Red TELNET FTP SMTP TFTP TCP,UDP IP Subred Presentación Sesión Transporte Red Enlace Físico TCP/IP y Unix Éxito TCP/IP y Unix: debido a Univ. Berkeley California Berkeley considera una implementación de TCP/IP, en lugar de DARPA, para sus sistemas Unix; y el código fuente lo pone disponible como software de dominio público en septiembre de 1983 Legalmente resultados de investigación y desarrollo de Univ. Americanas pertenecen al pueblo americano Prácticamente todas las implementaciones TCP/IP bajo Unix están basadas en el código de Berkeley Varias versiones no-Unix de TCP/IP tomaron como base el código de Berkeley El protocolo IP IP: Internet Protocol Piedra angular de la arquitectura TCP/IP Especificación: RFC 791 Todas las computadoras en Internet entienden IP Principales labores: direccionamiento de las computadoras fragmentación de mensajes No contiene funciones de control de flujo o de confiabilidad de mensajes de punto a punto Principales características de IP Protocolo orientado no conexión División, en caso necesario, de paquetes Direccionamiento con direcciones internet de 32 bits Direcciones protocolos de ocho bits Tamaño máximo del paquete: 65535 bytes Contiene solo un encabezado de checksum, no datos de checksum Campos de los protocolos no son necesarios siempre Tiempo de vida finito de los paquetes Entrega de acuerdo al “mejor esfuerzo” Encabezado protocolo IP 0 3 número versión 7 longitud 15 tipo de servicio 23 transporte 31 longitud del paquete D M F F identificación tiempo de vida 18 offset del fragmento checksum del encabezado dirección fuente dirección destino opciones relleno Direccionamiento a nivel IP Internet es vista como una red virtual, por lo que tiene su propia definición para manejar direcciones de cada host No depende del hardware subyacente A cada host en internet le es asignado un número entero y único como dirección, llamado dirección internet IP o dirección lógica No es una dirección física como la de ethernet La dirección IP mide 32 bits Una dirección IP contiene el identificador de la red a la cual el host está conectado así como el identificador (único) del host en esa red Una dirección IP es una pareja (netid, hostid) en donde: netid: identificador de la red hostid: identificador del host en esa red Se tienen tres clases de direcciones: redes grandes; primer bit es cero, hay 27-2 redes posibles cada una con 224-2 posibles hosts (más de 65,536) clase B: redes medianas; valor primeros bits: 10, hay 214--2 redes posibles, cada una con 28-2 a 216-2 posibles hosts clase C: redes chicas; valor primeros bits: 110, hay 221-2 redes posibles, cada una con 28-2 hosts clase A: Tipos de direcciones internet clase A 0 7 15 0 Ident. de red 23 31 Identificador del host clase B 01 Identificador de la red Identificador del host clase C 110 Identificador de la red Identificador host clase D 111 0 Identificador del grupo de hosts Notación decimal Una dirección IP es representada usando 4 dígitos separados por un punto Cada dígito representa 1 byte (8 bits) de la dirección IP Ejemplo: dirección IP: 10000000 00001010 00000010 00011110 equivalente decimal: 128 10 2 30 notación decimal: 128.10.2.30 Ejemplos direcciones Ejemplo dirección clase A: 10.0.0.3210 00001010.00000000.00000000.000100002 Ejemplo dirección clase B: 128.14.58.6010 10000000.00001110.00111010.001111002 Ejemplo dirección clase C 192.9.150.2210 11000000.00001001.10010110.110010102 El identificador de la red se encuentra en negrillas Direcciones especiales Una dirección internet puede ser usada para referirse a una red específica, además de un host Una dirección de red contiene 0’s en el campo de hostid ejemplo: Una dirección de broadcast contiene 1’s en el campo de hostid ejemplo: netid 000…0 netid 111…1 Broadcast limitado: no se puede enviar nada a dirección: 111...1 1111...1 Ejemplo asignaciones direcciones IP walhalla 231.1.2.7 empyree 231.1.2.1 españa 192.1.1.2 FDDI 192.1.1.7 paradis 231.1.2.2 canada 192.1.1.4 grecia 192.1.1.6 eden 231.1.2.3 elysee 231.1.2.5 bali 231.1.2.4 cuba 192.1.1. 3 ETHERNET svarga 231.1.2.6 mexico 192.1.1.1 francia 192.1.1.5 rusia 192.1.1.8 Mapeo direcciones lógicas a físicas Dada una dirección lógica o el nombre de un host, ¿como se puede conocer su dirección física? Tipos direciones físicas: ethernet: direcciones largas y fijas (únicas) 48 bits ProNET-10: direcciones chicas y configurables 8 bits Mapeo directo: Para tipos direcciones de ProNET-10 La dirección física es codificada en su dirección IP host dirección física 3, IP= 192.5.48.3 Mapeo dinámico dirección física de 48 bits en una de IP de 32 bits uso protocolo ARP Protocolo ARP Address Resolution Protocol Permite a un host conocer la dirección física de un host destino en la misma red física, dada únicamente la dirección IP del host destino Protocolo: Host A desea resolver dirección IP de B, IPB A realiza un broadcast de un paquete especial para pedir al host con dirección IB que responda con su dirección física Todos los hosts incluyendo a B, reciben la petición Host B reconoce su dirección y envía una respuesta conteniendo su dirección física Host A recibe respuesta y usa dirección física para comunicarse con host B Uso memoria cache Host que usa ARP mantiene en memoria Cache una lista de parejas (dirección IP y física) de las direcciones físicas recien adquiridas de esta forma se evita usar ARP cada vez que un host se desea comunicar cuando un host recibe una respuesta ARP actualiza su tabla cuando desea transmitir primero busca en su memoria cache Determinando una dirección IP al arranque Programas aplicación usuario siempre usan direcciones IP Normalmente la dirección IP de una máquina se almacena en disco El S.O. la puede encontrar al arrancar la máquina ¿Como puede una máquina determinar su dirección IP al arrancar, cuando esta no ha sido aún almacenada en disco, o cuando se carece de este último? Protocolo RARP Reverse Address Resolution Protocol Dirección física de red de una máquina es un identificador único y fácilmente disponible Una máquina utiliza el protocolo RARP para obtener su dirección IP a partir de un servidor RARP utiliza el mismo formato de mensaje que ARP Pasos protocolo RARP La fuente efectúa la difusión del mensaje RARP (RARP Req) Mensaje incluye información siguiente: SENDER HA: dirección física del emisor TARGET HA: dirección física del emisor (puede ser la dirección física de un tercer host) Todas las máquinas de la red reciben la petición Sólo las máquinas autorizadas para atender mensajes RARP envían una respuesta (Servidores RARP) La red debe contar con al menos 1 servidor RARP La máquina fuente recibe respuesta de todos los servidores RARP, sólo el primero es tomado en cuenta C, D: servidores RARP A: host solicitante A B C D A B C D El protocolo TCP TCP: Transmission Control Protocol Especificación RFC 793 y MIL-STD 1778 Principal tarea: transporte confiable de datos a través de la red Su funcionalidad no difiriere mucho de otros protocolos de transporte más complicados Diferencia: fronteras de bloques no son preservadas Características principales TCP Proporciona circuito virtual full duplex bidireccional Desde el punto de visto del usuario, los datos son transmitidos en streams y no en bloques Transmisión confiable usando: números de secuencia construcción de checksums con acks de recepción acknowledgements con timeout retransmisión segmentos después de ack timeout Ventana deslizante para obtener mayor eficiencia Funciones de datos urgentes y de push Direccionamiento vía número de puerto de 16 bits Números de puertos Usados para direccionamietno a nivel transporte 16 bits para números puertos, entonces se pueden establecer hasta 65,535 puertos diferentes Rango de validez puerto depende del host Juntos: el id de la red, el id del host y el número de puerto constituyen un punto terminal de comunicación (socket) Protocolo comunicación al estilo sistema telefónico (orientado conexión) Ejemplo números puertos Servicio daytime netstat chargen ftp-data ftp telnet smtp time exec login shell printer Número de puerto 13 15 19 20 21 23 25 37 512 513 514 515 Protocolo UDP UDP: User Datagram Protocol Especificación RFC 768 Conexión orientada no conexión Direccionamiento vía números puertos Checksums de datos Protocolo muy simple Seguimiento de acuerdo al mejor-esfuerzo Número de campos menor que IP y TCP, por lo que es considerado como un protocolo de peso ligero Protocolo ICMP ICMP: Internet Control Message Protocol Referencia: RFC 792 Principal responsabilidad: notificación de errores a los responsables y/o involucrados Es un componente de cada implementación de IP Transporta datos de error y diagnostico para el protocolo IP Existen diferentes tipos de mensajes, que son tratados por el resto de la red como cualquier otro datagrama Puede verse como un paquete IP comunicándose con otro paquete IP a través de la red Ejemplo de tipos paquetes ICMP Tipo 0 1 2 3 8 11 12 13 14 Función Respuesta de eco Destino inalcanzable Source quench (calmar la fuente) Redirección solicitada Petición de eco Tiempo excedido de un datagrama Problema parámetro en un datagrama Petición estampilla de tiempo Respuesta estampilla de tiempo Protocolos niveles 5 a 7 Telnet FTP SMTP TFTP Protocolo Telnet Especificación: RFC 854 Proporciona acceso, en forma de terminal de sesión a una computadora conectada a la red En unix se compone de dos partes cliente: comando telnet servidor: demonio telnetd Otra opción parecida es rlogin Ejemplo telnet Protocolo FTP FTP: File Transfer Protocol Especificación RFC 959 Puerto 21 de TCP especifica el canal de comandos y el puerto 20 el canal de datos Protocolo transferencia de archivos entre dos computadoras En Unix tiene dos partes cliente: comando ftp servidor: demonio ftpd Utiliza texto ASCII en formato NVT Ejemplo ftp Protocolo SMTP SMTP: Simple Mail Transfer Protocol Referencia RFC 821 Protocolo utilizado para la implementación de correo electrónico Puerto 25 de TCP es utilizado por SMTP Incorpora muchas características de FTP En Unix es implementado por el programa /usr/lib/sendmail Archivo configuración: /usr/lib/sendmail.cf Protocolo TFTP TFTP: Trivial File Transfer Protocol Especificación RFC 783 Utiliza puerto 69 de UDP Protocolo de transferencia de archivos de mínimos requerimientos Diferencia con FTP: uso de protocolos en modo no conexión Es responsable de la confiabilidad en la transmisión, a través timeouts No involucra un “logeo” en el servidor El DNS Computadoras son direccionadas con nombres simbólicos El mapeo de nombre simbólico a dirección internet lo hacía la computadora del NIC (Network Information Center) Crecimiento Internet hace lo anterior poco práctico DNS: Domain Name Service Conceptos y protocolos RFC 1034 y RFC 1035 con suplementos en RFC 1101 y RFC 1183 El procedimiento para participar en el mundo DNS con su propio nombre de red se encuentra descrito en el RFC 1032 Estructura del nombre Nombre esta dividido en dominios Dominios están acomodados de acuerdo a una estructura de árbol Existe una raíz y abajo se encuentran los dominios de alto nivel, los cuales se subdividen en subdominios Los nombres deben de ser únicos Los niveles de alto nivel son predefinidos por el NIC Existen nombres para los dominios de alto nivel de las organizaciones en USA (mil, edu, gov, com, org, etc) Para cada país conectado existen otros nombres para estos dominios (de, uk, mx, fr, etc) Ejemplo estructura nombre raíz mil brl nosc edu darpa arpa mit ksu yale cc cs ee inaddr sri-nic acc Otros protocolos BOOTP DHCP HDLC NAT Protocolo BOOTP BOOTP: Boostrap Protocol Referencia: RFC 951 Protocolo que permite que un usuario de red pueda ser automáticamente configurado (reciba una dirección IP) y que disponga de un sistema operativo booteado o inicializado sin intervención de usuario El servidor manejado por un administrador de red, asigna automáticamente una dirección IP de una piscina de direcciones. Esta dirección tiene una cierta duración de tiempo Es base de otros protocolos de manejo de red, p.e. DHCP Protocolo DHCP DHCP: Dynamic Host Configuration Protocol Referencia: RFC 1531 y 1541 Permite a administradores de red automatizar y centralizar la asignación de direcciones IP Util en el caso de computadoras cuya dirección IP no se debe de asignar manualmente (computadoras nómadas) Envía una dirección IP automáticamente cuando una computadora se conecta en un diferente lugar en la red La dirección tiene un tiempo durante el cual es válida para esa máquina 128.45.12.23 128.45.12.8 128.45.12.21 128.45.12.1 128.45.12.4 HDCL HDCL: High-level Data Link Control Grupo de protocolos o reglas para transmitir datos entre dos puntos de una red (a veces llamados nodos) Los datos son organizados en unidades llamadas frames y enviados a su destino que verifica su llegada exitosa Maneja flujo o “pacing” provocado por datos enviados Existen diferentes variantes de HDLC: NRM Normal Response Mode, (redes multipunto usando SDLC) LAP: Link Access Procedure (primeras implementacionex X.25) LAPB: Link Access Procedure Balanced (imp. act. de X.25) LAPD: Link Access Procedure for ISDN D channel (frame relay e ISDN D) LAPM: Link Access Procedure for Modems El NAT NAT: Network Address Translation Referencia: RFC 1631 Es la traducción de una dirección internet usada dentro de una red, en una otra direccion conocida en otra red Una red es llamada red interior, mientras que la otra se conoce como red exterior Usualmente se mapean direcciones locales de redes internas a una o mas direcciones exteriores También se unmapea las direcciones globales IP de paquetes de entrada en direcciones locales internas Toda petición de entrada o salida debe pasar por un proceso de traducción dirección Internet traducida dirección Servidor NAT Red privada HTTP Hypertext transfer protocol RFC 2616, 2068 Protocolo de nivel aplicación para intercambio de información hipermedia en internet Es distribuido y colaborativo Característica principal: negociación de representación de datos Usado en la WWW desde 1990