TCP IP - Universidad Nacional de Luján

Anuncio
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
Descargar