Juego de Protocolos TCP/IP Tema: Juego de Protocolos TCP/IP
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
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
Internet Universidad Nacional de Luján - Seminario de Actualización I 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
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
Juego de Protocolos TCP/IP APLICACION APLICACION APLICACION APLICACION TCP UDP TRANSPORTE IGMP IP ICMP RED ARP RARP ENLACE ETHERNET Tema: Juego de Protocolos TCP/IP 6
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
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
Niveles de Direccionamiento Nombre de host (FQDN) www.unlu.edu.ar pollito.tyr.unlu.edu.ar Dirección IP 170.120. 44.12 168.10. 44.240 Dirección física (de NIC) MAC Ethernet: 00:C4:06:13:4C:33 DNS ARP www.unlu.edu.ar 168.10.44.240 00:C4:06:13:4C:33 Tema: Juego de Protocolos TCP/IP 9
Direcciones IP (Versión 4) Direcciones de 32 bits (4 bytes) notadas con decimales separados por puntos, por ej. 198.107.2.25 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 198 107 2 25 8 bits. 8 bits. 8 bits. 8 bits Tema: Juego de Protocolos TCP/IP 10
Clases de direcciones Tema: Juego de Protocolos TCP/IP 11
Espacio de Direcciones Clase Bits Iniciales Bits Red Bits Hosts Espacio de Dir. A 0 7 24 2^24 16777216 B 10 14 16 2^16 65536 C 110 21 8 2^8 256 D 1110 28 - E 11110 27 - Tema: Juego de Protocolos TCP/IP 12
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
Ejemplo de direccionamiento Tema: Juego de Protocolos TCP/IP 14
Datagrama IP: Estructura de datos Tema: Juego de Protocolos TCP/IP 15
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
Ruteo IP Universidad Nacional de Luján - Seminario de Actualización I 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
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
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
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
Protocolos auxiliares: ICMP Los mensajes ICMP requieren de dos niveles de encapsulamiento Tema: Juego de Protocolos TCP/IP 21
Ejemplo clásico: Comando PING D:\>ping 170.210.102.10 Echo Request Echo Reply No es un error Test de alcance de un destino Haciendo ping a 170.210.102.10 con 32 bytes de datos: Respuesta desde 170.210.102.10: bytes=32 tiempo<10ms TDV=128 Respuesta desde 170.210.102.10: bytes=32 tiempo<10ms TDV=128 Respuesta desde 170.210.102.10: bytes=32 tiempo<10ms TDV=128 Respuesta desde 170.210.102.10: bytes=32 tiempo<10ms TDV=128 Tema: Juego de Protocolos TCP/IP 22
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
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 Stream de datos simultáneos aplicación RECEPCIÓN ENVIO Tema: Juego de Protocolos TCP/IP 24
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
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
Puertos Universidad Nacional de Luján - Seminario de Actualización I 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
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
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 Puerto 3000 (Efímero) Conexión TCP (170.210.102.10: 3000, 200.45.75.11: 80) IP: 200.45.75.11 Puerto 80 (www) Tema: Juego de Protocolos TCP/IP 29
Estado de conexiones TCP netstat netstat -a Muestra estado de conexiones y estadísticas por protocolo (-a) Muestra información acerca de las Interfaces (-i) Conexiones activas Proto Dirección local Dirección remota Estado TCP 0.0.0.0:21 *:21 LISTENING TCP 127.0.0.1:1025 127.0.0.1:1026 ESTABLISHED TCP 127.0.0.1:1026 127.0.0.1:1025 ESTABLISHED TCP 170.210.102.10:80 0.0.0.0:* LISTENING TCP 170.210.102.10:137 0.0.0.0:* LISTENING TCP 170.210.102.10:138 0.0.0.0:* LISTENING TCP 170.210.102.10:139 0.0.0.0:* LISTENING Tema: Juego de Protocolos TCP/IP 30
Encabezamiento TCP Número de puerto origen - 16 bits Número de puerto destino - 16 bits Número de secuencia - 32 bits hlen Reservado Número de acuse de recibo - 32 bits U R G A C K P S H R S T S Y N F I N Tamaño de ventana - 16 bits 20 bytes TCP checksum - 16 bits Puntero a datos urgentes - 16 bits Opciones (si corresponde) Datos (opcional) Tema: Juego de Protocolos TCP/IP 31
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
TCP - Establecimiento de la conexión SYN, 2282737755, WIN: 32120, MSS: 1460 ORIGEN 170.210.102.12 DESTINO 170.210.102.10 SYN, 85096551, ACK 2282737756 WIN: 44032 ACK 85096552, WIN: 32120 Tema: Juego de Protocolos TCP/IP 33
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
TCP - Cierre de la conexión FIN, 85099472 ORIGEN 170.210.102.12 ACK 85099473 DESTINO 170.210.102.10 FIN, 2282737763 ACK 2282737764 Tema: Juego de Protocolos TCP/IP 35
TCP - Transferencia Tranferencia Interactiva Ej: Telnet/RLogin Transferencia Masiva Ej: FTP/Correo electrónico Tema: Juego de Protocolos TCP/IP 36
TCP - Transferencia Interactiva Tecla Segmento con 1 byte ACK Segmento eco Server Eco A pantalla ACK Delayed ACK Algoritmo de NAGLE Tema: Juego de Protocolos TCP/IP 37
TCP - Transferencia Masiva Control de flujo Control de congestión Tema: Juego de Protocolos TCP/IP 38
Funciones de TCP Establece conexiones (three-way handshake) Segmenta datos para transmitir Numera los bytes de cada segmento Maneja segmentos entrantes duplicados Computa checksums Controla flujo (ventanas) Señaliza datos urgentes Confirma segmentos y retransmite Calcula tiempos de retransmisión Regula el tráfico en redes congestionadas Reordena segmentos Cierra conexiones Tema: Juego de Protocolos TCP/IP 39
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
Encabezamiento UDP Número de puerto origen - 16 bits Longitud datagrama - 16 bits Número de puerto destino - 16 bits UDP checksum - 16 bits 8 bytes Datos (opcional) Mínimo overhead Menor tiempo de procesamiento que TCP Tema: Juego de Protocolos TCP/IP 41
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
Aplicación Aplicación Presentación Sesión Transporte Red Enlace Físico Juego de Protocolos TCP/IP Interfaz de Sockets Presentación Sesión Transporte Red Enlace Físico Tema: Juego de Protocolos TCP/IP
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 RED Host B Tema: La Interfaz de sockets 44
El modelo cliente/servidor Solicitud de servicio Respuesta CLIENTE SERVIDOR Aplicación CLIENTE Solicita recursos a los servidores Generalmente inicia la comunicación Proceso de usuario final Aplicación SERVIDOR Posee un recurso Provee servicio a los clientes No es un proceso de usuario final Puede ser iterativo ó concurrente Tema: La Interfaz de sockets 45
Servidores concurrentes 170.210.102.10 206.62.226.35 Cliente solicitud de conexión Server (170.210.102.10:1500) (*:21, *:*) listening socket 206.62.226.35 170.210.102.10 Server Cliente (170.210.102.10:1500, 206.62.226.35:21) conexión (*:21, *:*) fork Server (child) listening socket (206.62.226.35:21, 170.210.102.10:1500) Tema: La Interfaz de sockets 46
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
Sockets y la pila de protocolos tcp/ip 7 Aplicación 6 Presentación Aplicación Procesos de usuario Detalles de aplicación 5 Sesión Sockets 4 Transporte TCP - UDP XTI 3 Red 2 Enlace IP Device Driver Kernel Detalles de comunicación 1 Físico Hardware Tema: La Interfaz de sockets 48