TCP/IP - tyr.unlu.edu.ar · Universidad Nacional de Luján - Seminario de Actualización I Tema:...
Transcript of TCP/IP - tyr.unlu.edu.ar · Universidad Nacional de Luján - Seminario de Actualización I Tema:...
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP
Juego de Protocolos
TCP/IP
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 2
Internetworking
“Conjunto de redes heterogéneas conectadas mediantesistemas intermedios (ruteadores/gateways)
Red 1 Red 2
Diferentes tecnologías: * medio
* método de acceso al medio
* direcciones físicas
* formatos de tramas
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 3
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 implementatanto en hosts como en ruteadores”
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 4
Internet•Conjunto de redes mundiales interconectadas•Operan bajo la pila de protocolos TCP/IP•Los servicios se implementan de forma estandarizada, abierta y gratuitapara 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
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 5
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
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 6
Juego de Protocolos TCP/IP
ENLACE
RED
TRANSPORTE
APLICACION
ETHERNET
ARP RARP
IP
IGMP ICMP
TCP UDP
APLICACION APLICACION APLICACION
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 7
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
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 8
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 participantede la red
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 9
Niveles de Direccionamiento
•Nombre de host (FQDN)www.unlu.edu.ar
pollito.tyr.unlu.edu.ar
•Dirección IP170.120. 44.12
168.10. 44.240
•Dirección física (de NIC)MAC Ethernet: 00:C4:06:13:4C:33
www.unlu.edu.ar
168.10.44.240
00:C4:06:13:4C:33
DNS
ARP
•Direcciones de 32 bits (4 bytes)notadas con decimales separados por puntos,
por ej. 198.107.2.25
•Dividida en dos partesidentificador (dirección) de red (Información usada para ruteo)
identificador (dirección) de host (nodo específico dentro de una red)
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 10
Direcciones IP (Versión 4)
Identificador de RED Identificador de HOST32 bits
198 107 2 25 8 bits . 8 bits . 8 bits . 8 bits
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 11
Clases de direcciones
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 12
Espacio de Direcciones
Clase Bits Iniciales Bits Red Bits HostsA 0 7 24 2 2̂4 16777216B 10 14 16 2 1̂6 65536C 110 21 8 2 8̂ 256D 1110 28 -E 11110 27 -
Espacio de Dir.
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 13
Direcciones Especiales
Este host de la red
Un host de esta red
Broadcast de red local
Broadcast red remota
Loopback (127.0.0.1)
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 14
Ejemplo de direccionamiento
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 15
Datagrama IP: Estructura de datos
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 16
Conceptos sobre IP
•IP permite que los datagramas seanDemorados
Entregados fuera de orden
Perdidos
•La red realiza su “Mejor esfuerzo”
•La entrega se realiza por “encaminamiento”ó “ruteo”
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 17
Ruteo IP
Ejemplo de tabla de ruteo
Destino Máscara Próximo salto40.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
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 18
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
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 19
Ejemplo de operación ARP
w (10.10.1.1) tiene queenviar un mensaje a10.10.1.14 (y)
Broadcast de nivel 2
Solo contesta y(10.10.1.14) con su MAC
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 20
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 Request11 - TTL Exceded12 - Parameter Problem on a Datagram
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 21
Protocolos auxiliares: ICMP
“Los mensajes ICMP requierende dos niveles de encapsulamiento”
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 22
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 desde 170.210.102.10: bytes=32 tiempo<10ms TDV=128Respuesta desde 170.210.102.10: bytes=32 tiempo<10ms TDV=128Respuesta desde 170.210.102.10: bytes=32 tiempo<10ms TDV=128Respuesta desde 170.210.102.10: bytes=32 tiempo<10ms TDV=128
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 23
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
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 24
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 sistemasfinales (end-to-end)
aplicaciónENVIO
RECEPCIÓN
aplicaciónRECEPCIÓN
ENVIO
Stream de datos simultáneos
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 25
TCP - Transmission Control ProtocolAplicación
Header TCP Datos de aplicación
Segmento TCP
Datagrama IP
Buffer de envío (n bytes) de TCP
Header IP
Encapsulamiento sobre IP
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 26
TCP - Transmission Control Protocol
TCP provee un Servicio de Transportecompletamente confiable sobre una red no
confiable (o de mejor esfuerzo)
¿Cómo es posible?
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 27
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
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 28
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 unaidentificación única para servicios de capa de aplicaciónen 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”
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 29
Identificación de Conexiones TCP•Una conexión TCP está identificada por un par desockets (del cliente y del servidor) a ambos entremos
•En el servidor se define un puerto donde la aplicaciónespera la conexión
•En el cliente se define un “puerto efímero” para crear elsocket (>1024)
IP: 170.210.102.10
Puerto3000(Efímero)
IP: 200.45.75.11
Puerto80 (www)
Conexión TCP(170.210.102.10: 3000, 200.45.75.11: 80)
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 30
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 Dirección local Dirección remota EstadoTCP 0.0.0.0:21 *:21 LISTENINGTCP 127.0.0.1:1025 127.0.0.1:1026 ESTABLISHEDTCP 127.0.0.1:1026 127.0.0.1:1025 ESTABLISHEDTCP 170.210.102.10:80 0.0.0.0:* LISTENINGTCP 170.210.102.10:137 0.0.0.0:* LISTENINGTCP 170.210.102.10:138 0.0.0.0:* LISTENINGTCP 170.210.102.10:139 0.0.0.0:* LISTENING
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 31
Encabezamiento TCPNúmero de puerto origen - 16 bits
Datos (opcional)
Número de puerto destino - 16 bits
Número de secuencia - 32 bits
Número de acuse de recibo - 32 bits
Tamaño de ventana - 16 bits
TCP checksum - 16 bits Puntero a datos urgentes - 16 bits
Opciones (si corresponde)
20 bytes
ReservadohlenURG
ACK
PSH
RST
SYN
FIN
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 32
TCP - Establecimiento de la conexión
•El solicitante envía un segmento con la flag SYNactivada, dirigido a un puerto en destino, dando unnúmero de secuencia inicial.
•El destino contesta con un segmento con las flagSYN y ACK activadas, y el número de secuenciaincrementado en uno.
•El solicitante retorna un segmento con la flag de ACKactivada, y el número de secuencia incrementado enuno.
“ThreeThree--way handshakeway handshake””
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 33
TCP - Establecimiento de la conexión
ORIGEN
170.210.102.12
SYN, 2282737755, WIN: 32120, MSS: 1460
DESTINO
170.210.102.10
SYN, 85096551, ACK 2282737756 WIN: 44032
ACK 85096552, WIN: 32120
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 34
TCP - Cierre de la conexión
•El solicitante envía un segmento con la flag FINactivada
•El destino responde con un segmento confirmando elcierre (ACK) Half-Close
•Se repite la secuencia en el otro sentido
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 35
TCP - Cierre de la conexión
ORIGEN
170.210.102.12
FIN, 85099472
DESTINO
170.210.102.10ACK 85099473
ACK 2282737764
FIN, 2282737763
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 36
TCP - Transferencia
•Tranferencia Interactiva
Ej: Telnet/RLogin
•Transferencia Masiva
Ej: FTP/Correo electrónico
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 37
TCP - Transferencia Interactiva
Tecla Segmento con 1 byte
Server
EcoACK
ACK
Segmento eco
A pantalla
•Delayed ACK
•Algoritmo de NAGLE
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 38
TCP - Transferencia Masiva
•Control de flujo
•Control de congestión
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 39
Funciones de TCP•Establece conexiones (three-wayhandshake)
•Segmenta datos para transmitir
•Numera los bytes de cadasegmento
•Maneja segmentos entrantesduplicados
•Computa checksums
•Controla flujo (ventanas)
•Señaliza datos urgentes
•Confirma segmentos yretransmite
•Calcula tiempos deretransmisión
•Regula el tráfico enredes congestionadas
•Reordena segmentos
•Cierra conexiones
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 40
UDP - User Datagram Protocol
•RFC 768
•Protocolo de transporte de Internet
•Servicio no orientado a la conexión
•Transporte no confiable
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 41
Encabezamiento UDP
Número de puerto origen - 16 bits
Datos (opcional)
Número de puerto destino - 16 bits
8 bytesLongitud datagrama - 16 bits UDP checksum - 16 bits
•Mínimo overhead
•Menor tiempo de procesamiento que TCP
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP 42
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 alorigen 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 losruteadores intermedios para llegar al host destino.
Universidad Nacional de Luján - Seminario de Actualización I
Tema: Juego de Protocolos TCP/IP
Juego de Protocolos TCP/IP
Interfaz de Sockets
AplicaciónPresentación
Sesión
RedTransporte
EnlaceFísico
AplicaciónPresentación
Sesión
RedTransporte
EnlaceFísico
Universidad Nacional de Luján - Seminario de Actualización I
Tema: La Interfaz de sockets 44
Programación de Red
“Consiste en escribir programas que secomunican con otros programas a través de una
red de computadoras”W. Richard Stevens
Host A Host BRED
Universidad Nacional de Luján - Seminario de Actualización I
Tema: La Interfaz de sockets 45
El modelo 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
CLIENTE
Solicitud de servicio
Respuesta
SERVIDOR
Universidad Nacional de Luján - Seminario de Actualización I
Servidores concurrentes206.62.226.35
listening socket
Server
(*:21, *:*)
170.210.102.10
Cliente
(170.210.102.10:1500)
solicitud deconexión
206.62.226.35
listening socket
Server
(*:21, *:*)
170.210.102.10
Cliente
(170.210.102.10:1500,206.62.226.35:21)
conexión
Server (child)
(206.62.226.35:21,170.210.102.10:1500)
fork
Tema: La Interfaz de sockets 46
Universidad Nacional de Luján - Seminario de Actualización I
Tema: La Interfaz de sockets 47
La Interfaz de Sockets
•API para la programación de comunicaciones
•Nativa de Unix - 4.2 BSD System. Berkley, 1983
•Standard POSIX (Portable Operating SystemInterfaz) de la IEEE
•Se implementa como parte del kernel del SO (Unix)o como librería
•Soporta varias familias de protocolos
•Alternativa: TLI (SVR4)
Universidad Nacional de Luján - Seminario de Actualización I
Tema: La Interfaz de sockets 48
Sockets y la pila de protocolos tcp/ip
7 Aplicación
6 Presentación
5 Sesión
4 Transporte
3 Red
2 Enlace
1 Físico
IP
TCP - UDP
Device Driver
Hardware
Aplicación
Sockets
XTI
Detalles deaplicación
Detalles decomunicación
Kernel
Procesosde usuario