Universidad Nacional de Luján - Seminario de Actualización I Juego de Protocolos TCP/IP Tema: Juego de Protocolos TCP/IP Universidad Nacional de Luján - Seminario de Actualización I Internetworking “Conjunto de redes heterogéneas conectadas mediante sistemas intermedios (ruteadores/gateways) Red 1 Red 2 Diferentes tecnologías: * medio * método de acceso al medio * direcciones físicas * formatos de tramas Tema: Juego de Protocolos TCP/IP 2 Universidad Nacional de Luján - Seminario de Actualización I Interred ó internet •Oculta la heterogeneidad •Crea una “red virtual“ •Esquema de direcciones propio •Esquema de nombres propio •Utiliza una pila de protocolos “El software de protocolo se implementa tanto en hosts como en ruteadores” Tema: Juego de Protocolos TCP/IP 3 Universidad Nacional de Luján - Seminario de Actualización I Internet •Conjunto de redes mundiales interconectadas •Operan bajo la pila de protocolos TCP/IP •Los servicios se implementan de forma estandarizada, abierta y gratuita para los usuarios, normalmente a través de los S.O. •¿Quíen controla Internet? •Nadie especificamente •IETF aprueba los estándares •IRTF investiga sobre el futuro de la red •La industria y las universidades proponen nuevos protocolos •Las especificaciones constan en documentos abiertos: RFC, STD, FYI Tema: Juego de Protocolos TCP/IP 4 Universidad Nacional de Luján - Seminario de Actualización I Juego de Protocolos TCP/IP •No es un solo protocolo, sino una familia •Ej.: IP, TCP, HTTP, SNMP •No se ajustan al modelo OSI •Define solo 5 niveles conceptuales Tema: Juego de Protocolos TCP/IP 5 Universidad Nacional de Luján - Seminario de Actualización I Juego de Protocolos TCP/IP APLICACION APLICACION APLICACION TCP APLICACION UDP IGMP TRANSPORTE ICMP RED IP ARP RARP ENLACE ETHERNET Tema: Juego de Protocolos TCP/IP 6 Universidad Nacional de Luján - Seminario de Actualización I Protocolo IP •Protocolo de capa de red •Define •Esquema de direccionamiento •Formato de mensaje (datagrama) •Mecanismo de encaminamiento entre redes (ruteo) •Características •End-to-end argument •Independiente del enlace subyacente •No orientado a la conexión •No fiable, no garantiza entrega •Permite la fragmentación Tema: Juego de Protocolos TCP/IP 7 Universidad Nacional de Luján - Seminario de Actualización I Direccionamiento IP •Abstracción de alto nivel •Independiente de las direcciones de hardware •Utilizada por las capas superiores •Se maneja por software •Permite identificar de manera única a cada participante de la red Tema: Juego de Protocolos TCP/IP 8 Universidad Nacional de Luján - Seminario de Actualización I Niveles de Direccionamiento •Nombre de host (FQDN) www.unlu.edu.ar pollito.tyr.unlu.edu.ar DNS •Dirección IP 170.120. 44.12 www.unlu.edu.ar 168.10. 44.240 •Dirección física (de NIC) 168.10.44.240 ARP 00:C4:06:13:4C:33 MAC Ethernet: 00:C4:06:13:4C:33 Tema: Juego de Protocolos TCP/IP 9 Universidad Nacional de Luján - Seminario de Actualización I Direcciones IP (Versión 4) •Direcciones de 32 bits (4 bytes) notadas con decimales separados por puntos, por ej. 198.107.2.25 198 107 2 25 8 bits . 8 bits . 8 bits . 8 bits •Dividida en dos partes identificador (dirección) de red (Información usada para ruteo) identificador (dirección) de host (nodo específico dentro de una red) Identificador de RED Identificador de HOST 32 bits Tema: Juego de Protocolos TCP/IP 10 Universidad Nacional de Luján - Seminario de Actualización I Clases de direcciones Tema: Juego de Protocolos TCP/IP 11 Universidad Nacional de Luján - Seminario de Actualización I Espacio de Direcciones Clase A B C D E Bits Iniciales Bits Red Bits Hosts 0 7 24 10 14 16 110 21 8 1110 28 11110 27 - Tema: Juego de Protocolos TCP/IP Espacio de Dir. 2^24 16777216 2^16 65536 2^8 256 12 Universidad Nacional de Luján - Seminario de Actualización I Direcciones Especiales Este host de la red Un host de esta red Broadcast de red local Broadcast red remota Loopback (127.0.0.1) Tema: Juego de Protocolos TCP/IP 13 Universidad Nacional de Luján - Seminario de Actualización I Ejemplo de direccionamiento Tema: Juego de Protocolos TCP/IP 14 Universidad Nacional de Luján - Seminario de Actualización I Datagrama IP: Estructura de datos Tema: Juego de Protocolos TCP/IP 15 Universidad Nacional de Luján - Seminario de Actualización I Conceptos sobre IP •IP permite que los datagramas sean Demorados Entregados fuera de orden Perdidos •La red realiza su “Mejor esfuerzo” •La entrega se realiza por “encaminamiento” ó “ruteo” Tema: Juego de Protocolos TCP/IP 16 Universidad Nacional de Luján - Seminario de Actualización I Ruteo IP Ejemplo de tabla de ruteo Destino Máscara Próximo salto 40.0.0.0 255.0.0.0 entrega directa 128.1.0.0 255.255.0.0 entrega directa 30.0.0.0 255.0.0.0 40.0.0.7 192.4.10.0 255.255.255.0 128.1.0.9 Tema: Juego de Protocolos TCP/IP 17 Universidad Nacional de Luján - Seminario de Actualización I Protocolos auxiliares: ARP •El hardware solo reconoce direcciones físicas (Por ej. MACs) •IP solo reconoce direcciones IP Se requiere una “traducción de direcciones” En TCP/IP se realiza mediante el protocolo auxiliar ARP Tema: Juego de Protocolos TCP/IP 18 Universidad Nacional de Luján - Seminario de Actualización I Ejemplo de operación ARP w (10.10.1.1) tiene que enviar un mensaje a 10.10.1.14 (y) Broadcast de nivel 2 Solo contesta y (10.10.1.14) con su MAC Tema: Juego de Protocolos TCP/IP 19 Universidad Nacional de Luján - Seminario de Actualización I Protocolos auxiliares: ICMP “Permite reportar errores ó información de control sobre la red” 0 - Echo Reply 3 - Destination Unreachable 4 - Source Quench 5 - Redirect (cambio de ruta) 8 - Echo Request 11 - TTL Exceded 12 - Parameter Problem on a Datagram Tema: Juego de Protocolos TCP/IP 20 Universidad Nacional de Luján - Seminario de Actualización I Protocolos auxiliares: ICMP “Los mensajes ICMP requieren de dos niveles de encapsulamiento” Tema: Juego de Protocolos TCP/IP 21 Universidad Nacional de Luján - Seminario de Actualización I Ejemplo clásico: Comando PING •Echo Request •Echo Reply •No es un error •Test de alcance de un destino D:\>ping 170.210.102.10 Haciendo ping a 170.210.102.10 con 32 bytes de datos: Respuesta Respuesta Respuesta Respuesta desde desde desde desde Tema: Juego de Protocolos TCP/IP 170.210.102.10: 170.210.102.10: 170.210.102.10: 170.210.102.10: bytes=32 bytes=32 bytes=32 bytes=32 tiempo<10ms tiempo<10ms tiempo<10ms tiempo<10ms TDV=128 TDV=128 TDV=128 TDV=128 22 Universidad Nacional de Luján - Seminario de Actualización I TCP - Transmission Control Protocol •RFC 793 •Protocolo de transporte de Internet •Servicio orientado a la conexión •Transferencia de datos full-duplex •Transporte confiable: Control de transmisión, de flujo, de errores, de congestión de red Tema: Juego de Protocolos TCP/IP 23 Universidad Nacional de Luján - Seminario de Actualización I TCP - Transmission Control Protocol •Servicio a la capa de aplicación •Multiplexa/demultiplexa conexiones por aplicación •Adaptable a LAN/WAN •Transferencia de un stream de bytes entre sistemas finales (end-to-end) aplicación ENVIO RECEPCIÓN Tema: Juego de Protocolos TCP/IP Stream de datos simultáneos aplicación RECEPCIÓN ENVIO 24 Universidad Nacional de Luján - Seminario de Actualización I TCP - Transmission Control Protocol Encapsulamiento sobre IP Aplicación Buffer de envío (n bytes) de TCP Header TCP Datos de aplicación Segmento TCP Header IP Datagrama IP Tema: Juego de Protocolos TCP/IP 25 Universidad Nacional de Luján - Seminario de Actualización I TCP - Transmission Control Protocol TCP provee un Servicio de Transporte completamente confiable sobre una red no confiable (o de mejor esfuerzo) ¿Cómo es posible? Tema: Juego de Protocolos TCP/IP 26 Universidad Nacional de Luján - Seminario de Actualización I Puertos •Entero de 16 bits definidos a nivel de aplicación •Usados para poder identificar cada aplicación •Los procesos “servidores” usan generalmente un “puerto bien conocido” (well known ports) Ej. FTP 20, HTTP 80, TELNET 23 •Los asigna la IANA (Internet Assigned Number Authority) 0 No usado 1-1023 Well Known Ports (servicios standard) 1024-65535 Usuarios (Clientes) •En Unix se definen en /etc/services Tema: Juego de Protocolos TCP/IP 27 Universidad Nacional de Luján - Seminario de Actualización I SOCKETS •Cada host tiene al menos una dirección de red (IP) •Cada aplicación en un host opera en un puerto •El par <dirección IP>, <Nro.de puerto> brinda una identificación única para servicios de capa de aplicación en un host •Se conoce como SOCKET. Dirección IP Nro.de Puerto <170.210.102.10>, <80> “La dirección IP en única a una interface de un hosts (ó ruteador), el número de puerto es único (por protocolo) en un nodo” Tema: Juego de Protocolos TCP/IP 28 Universidad Nacional de Luján - Seminario de Actualización I Identificación de Conexiones TCP •Una conexión TCP está identificada por un par de sockets (del cliente y del servidor) a ambos entremos •En el servidor se define un puerto donde la aplicación espera la conexión •En el cliente se define un “puerto efímero” para crear el socket (>1024) IP: 170.210.102.10 IP: 200.45.75.11 Puerto 3000 (Efímero) Puerto 80 (www) Conexión TCP (170.210.102.10: 3000, 200.45.75.11: 80) Tema: Juego de Protocolos TCP/IP 29 Universidad Nacional de Luján - Seminario de Actualización I Estado de conexiones TCP •netstat •Muestra estado de conexiones y estadísticas por protocolo (-a) •Muestra información acerca de las Interfaces (-i) netstat -a Conexiones activas Proto TCP TCP TCP TCP TCP TCP TCP Dirección local 0.0.0.0:21 127.0.0.1:1025 127.0.0.1:1026 170.210.102.10:80 170.210.102.10:137 170.210.102.10:138 170.210.102.10:139 Tema: Juego de Protocolos TCP/IP Dirección remota *:21 127.0.0.1:1026 127.0.0.1:1025 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* Estado LISTENING ESTABLISHED ESTABLISHED LISTENING LISTENING LISTENING LISTENING 30 Universidad Nacional de Luján - Seminario de Actualización I Encabezamiento TCP Número de puerto origen - 16 bits Número de puerto destino - 16 bits Número de secuencia - 32 bits hlen Reservado U A P R S F R C S S Y I G K H T N N TCP checksum - 16 bits 20 bytes Número de acuse de recibo - 32 bits Tamaño de ventana - 16 bits Puntero a datos urgentes - 16 bits Opciones (si corresponde) Datos (opcional) Tema: Juego de Protocolos TCP/IP 31 Universidad Nacional de Luján - Seminario de Actualización I TCP - Establecimiento de la conexión •El solicitante envía un segmento con la flag SYN activada, dirigido a un puerto en destino, dando un número de secuencia inicial. •El destino contesta con un segmento con las flag SYN y ACK activadas, y el número de secuencia incrementado en uno. •El solicitante retorna un segmento con la flag de ACK activada, y el número de secuencia incrementado en uno. “Three-way handshake” Tema: Juego de Protocolos TCP/IP 32 Universidad Nacional de Luján - Seminario de Actualización I TCP - Establecimiento de la conexión SYN, 2282737755, WIN: 32120, MSS: 1460 ORIGEN DESTINO 170.210.102.12 170.210.102.10 SYN, 85096551, ACK 2282737756 WIN: 44032 ACK 85096552, WIN: 32120 Tema: Juego de Protocolos TCP/IP 33 Universidad Nacional de Luján - Seminario de Actualización I TCP - Cierre de la conexión •El solicitante envía un segmento con la flag FIN activada •El destino responde con un segmento confirmando el cierre (ACK) Half-Close •Se repite la secuencia en el otro sentido Tema: Juego de Protocolos TCP/IP 34 Universidad Nacional de Luján - Seminario de Actualización I TCP - Cierre de la conexión FIN, 85099472 ORIGEN DESTINO 170.210.102.12 170.210.102.10 ACK 85099473 FIN, 2282737763 ACK 2282737764 Tema: Juego de Protocolos TCP/IP 35 Universidad Nacional de Luján - Seminario de Actualización I TCP - Transferencia •Tranferencia Interactiva Ej: Telnet/RLogin •Transferencia Masiva Ej: FTP/Correo electrónico Tema: Juego de Protocolos TCP/IP 36 Universidad Nacional de Luján - Seminario de Actualización I TCP - Transferencia Interactiva Tecla Segmento con 1 byte Server ACK Eco Segmento eco A pantalla ACK •Delayed ACK •Algoritmo de NAGLE Tema: Juego de Protocolos TCP/IP 37 Universidad Nacional de Luján - Seminario de Actualización I TCP - Transferencia Masiva •Control de flujo •Control de congestión Tema: Juego de Protocolos TCP/IP 38 Universidad Nacional de Luján - Seminario de Actualización I Funciones de TCP •Establece conexiones (three-way handshake) •Señaliza datos urgentes •Segmenta datos para transmitir •Confirma segmentos y retransmite •Numera los bytes de cada segmento •Calcula tiempos de retransmisión •Maneja segmentos entrantes duplicados •Regula el tráfico en redes congestionadas •Computa checksums •Reordena segmentos •Controla flujo (ventanas) •Cierra conexiones Tema: Juego de Protocolos TCP/IP 39 Universidad Nacional de Luján - Seminario de Actualización I UDP - User Datagram Protocol •RFC 768 •Protocolo de transporte de Internet •Servicio no orientado a la conexión •Transporte no confiable Tema: Juego de Protocolos TCP/IP 40 Universidad Nacional de Luján - Seminario de Actualización I Encabezamiento UDP Número de puerto destino - 16 bits Longitud datagrama - 16 bits UDP checksum - 16 bits 8 bytes Número de puerto origen - 16 bits Datos (opcional) •Mínimo overhead •Menor tiempo de procesamiento que TCP Tema: Juego de Protocolos TCP/IP 41 Universidad Nacional de Luján - Seminario de Actualización I Ejemplo de aplicación: TRACEROUTE “Permite determinar la ruta activa a una dirección IP destino” ¿COMO OPERA? * Se envía un mensaje UDP a un puerto no utilizado en destino, con TTL=1 * El primer ruteador decrementa el TTL, descarta el datagrama, e informa al origen mediante ICMP * El host retransmite el mensaje UDP con TTL=2 * El segundo ruteador en la ruta opera de igual forma y avisa a origen Se continúa hasta alcanzar al destino devuelve un mensaje ICMP al host origen, indicando que el puerto no existe. De esta forma, donde se ejecuta el comando, se muestran cada uno de los ruteadores intermedios para llegar al host destino. Tema: Juego de Protocolos TCP/IP 42 Universidad Nacional de Luján - Seminario de Actualización I Aplicación Aplicación Presentación Presentación Juego de Protocolos TCP/IPSesión Sesión Transporte Transporte Red Red Enlace Físico Tema: Juego de Protocolos TCP/IP Interfaz de Sockets Enlace Físico Universidad Nacional de Luján - Seminario de Actualización I Programación de Red “Consiste en escribir programas que se comunican con otros programas a través de una red de computadoras” W. Richard Stevens Host A Tema: La Interfaz de sockets RED Host B 44 Universidad Nacional de Luján - Seminario de Actualización I El modelo cliente/servidor Solicitud de servicio Respuesta CLIENTE SERVIDOR Aplicación CLIENTE Aplicación SERVIDOR •Solicita recursos a los servidores •Posee un recurso •Generalmente inicia la comunicación •Provee servicio a los clientes •Proceso de usuario final •No es un proceso de usuario final •Puede ser iterativo ó concurrente Tema: La Interfaz de sockets 45 Universidad Nacional de Luján - Seminario de Actualización I Servidores concurrentes 170.210.102.10 Cliente 206.62.226.35 solicitud de conexión (170.210.102.10:1500) Server (*:21, *:*) listening socket 206.62.226.35 170.210.102.10 Server Cliente (170.210.102.10:1500, 206.62.226.35:21) (*:21, *:*) conexión listening socket fork Server (child) (206.62.226.35:21, 170.210.102.10:1500) Tema: La Interfaz de sockets 46 Universidad Nacional de Luján - Seminario de Actualización I La Interfaz de Sockets •API para la programación de comunicaciones •Nativa de Unix - 4.2 BSD System. Berkley, 1983 •Standard POSIX (Portable Operating System Interfaz) de la IEEE •Se implementa como parte del kernel del SO (Unix) o como librería •Soporta varias familias de protocolos •Alternativa: TLI (SVR4) Tema: La Interfaz de sockets 47 Universidad Nacional de Luján - Seminario de Actualización I Sockets y la pila de protocolos tcp/ip 7 Aplicación 6 Presentación 5 Sesión 4 Transporte 3 Red 2 Enlace Device Driver 1 Físico Hardware Tema: La Interfaz de sockets Procesos de usuario Aplicación Detalles de aplicación Sockets TCP - UDP IP XTI Kernel Detalles de comunicación 48