Está en la página 1de 24

Capítulo 3: Capa Transporte - I

ELO322: Redes de Computadores


Tomás Arredondo Vidal

Este material está basado en:


❒ material de apoyo al texto Computer Networking: A Top Down
Approach Featuring the Internet 3rd edition. Jim Kurose, Keith Ross
Addison-Wesley, 2004.

❒ material del curso anterior ELO322 del Prof. Agustín Gonzales

Capa Transporte 3-1


Capítulo 3: Capa Transporte
Objetivos:
❒ Entender los ❒ Aprender sobre los
principios detrás de protocolos de transporte
los servicios de la en la Internet:
capa transporte: ❍ UDP: transporte sin
❍ Multiplexing / conexión
demultiplexing ❍ TCP: transporte orientado a
❍ Transferencia de datos la conexión
confiable ❍ Control de congestión en
❍ Control de flujo TCP
❍ Control de congestión

Capa Transporte 3-2


Contenido de Capítulo 3
❒ 3.1 Servicios de la ❒ 3.5 Transporte
capa transporte orientado a la conexión:
❒ 3.2 Multiplexing y TCP
demultiplexing ❍ Estructura de un
segmento
❒ 3.3 Transporte sin
❍ Transferencia confiable
conexión: UDP de datos
❒ 3.4 Principios de ❍ Control de flujo
transferencia ❍ Gestión de la conexión
confiable de datos ❒ 3.6 Principios del control
de congestión
❒ 3.7 Control de
congestión en TCP

Capa Transporte 3-3


Protocolos y servicios de transporte
❒ Proveer comunicación lógica
application
entre procesos de aplicaciónes transport
network
corriendo en diferentes hosts data link network
physical
❒ Los protocolos de transporte network
data link

lo
physical

g
corren en sistemas terminales data link

ic
physical

a
(computadores, no equipos

le
network

nd
data link
internos como routers)

-e
physical network

nd
data link
❍ Lado Tx: divide el mensaje de physical

tr
an
la aplicación en segmentos, y network

spo
data link
los pasa a la capa de red

rt
physical

❍ Lado Rx: re-ensambla los


application
segmentos del mensaje , y lo transport
network
pasa a la capa aplicación data link
physical
❒ Hay más de un protocolo de
transporte disponible para las
aplicaciones
❍ Internet: TCP y UDP
Capa Transporte 3-4
Capa transporte vs. capa red
Analogía:
❒ Capa de red: encargada de ❒ 12 niños en una casa envían cartas
la comunicación lógica entre a 12 niños. en otra casa
hosts ❒ Ann y Bill recopilan las cartas en
❒ Capa transporte: encargada cada hogar y las envían por correo.
de la comunicación lógica También distribuyen las cartas que
entre procesos llegan.
❍ Depende de y mejora los ❒ Procesos = niños
servicios de la capa de red ❒ Mensajes aplicación = cartas en
sobres
❒ Hosts = casas
❒ Protocolo de transporte = Ann y
Bill
❒ Protocolo capa red = servicio de
correos

Capa Transporte 3-5


Protocolos de capa transporte en
Internet
❒ Entrega confiable y en orden application
(TCP) transport
network
data link
❍ Tiene: control de congestión physical
network
data link
Control de flujo network

lo
❍ physical

g
data link

ic
❍ Establecimiento de conexión physical

a le
network

nd
❒ Entrega no confiable, talvez data link

-e
physical network
desordenada: (UDP)

nd
data link
physical

tr
❍ Básicamente el mismo servicio

an
network

s
que “mejor esfuerzo (“best-

po
data link

rt
physical
effort”) IP
❒ Qué servicios no se ofrecen: application
transport
❍ Garantías de retardo network
data link
❍ Garantías de ancho de banda physical

❍ (Básicamente porque no es
fácil implementarlo basándose
en los servicios de IP)

Capa Transporte 3-6


Contenido de Capítulo 3
❒ 3.1 Servicios de la ❒ 3.5 Transporte
capa transporte orientado a la conexión:
❒ 3.2 Multiplexing y TCP
demultiplexing ❍ Estructura de un
segmento
❒ 3.3 Transporte sin
❍ Transferencia confiable
conexión: UDP de datos
❒ 3.4 Principios de ❍ Control de flujo
transferencia ❍ Gestión de la conexión
confiable de datos ❒ 3.6 Principios del control
de congestión
❒ 3.7 Control de
congestión en TCP

Capa Transporte 3-7


Multiplexación/demultiplexación
Multiplexación en host Tx:
Recolección de datos desde Demultiplexación en host Rx:
múltiples sockets, incorporar Entrega el segmento recibido
encabezado (luego usado al socket correcto
para demulteplexación

= socket = proceso

P3 P1
P1 P2 P4 aplicación
aplicación aplicación

transporte transporte transporte

red red red

enlace enlace enlace

física física física

host 2 host 3
host 1
Capa Transporte 3-8
Cómo trabaja la demultiplexación
❒ El host Rx recibe datagramas IP
❍ Cada datagrama tiene dirección 32 bits
IP fuente y dirección IP
destino # puerto fuente # puerto dest.
❍ Cada datagrama incluye 1
segmento de la capa transporte Otros campos
❍ Cada segmento tiene números del encabezado
de puerto fuente y destino
(recordar: hay números de
puerto conocidos para Datos de la aplicación
aplicaciones específicas)
(mensaje)
❒ El host usa direccion IP y número
de puerto para conducir un
segmento al socket apropiado
❒ Puertos 0-1023 reservados por
protocolos establecidos (well Formato de segmento TCP/UDP
known port numbers), HTTP: 80,
FTP: 21, ver RFC 1700
Capa Transporte 3-9
Demultiplexación sin conexión (UDP)
❒ Cuando la capa transporte en un host Rx recibe un
segmento UDP:
❍ Chequea número de puerto destino en segmento
❍ Dirige el segmento UDP al socket con ese número
de puerto
❒ Datagramas IP con direcciones IP y/o números de
puerto origen diferentes pueden ser dirigidos al
mismo socket destino

Capa Transporte 3-10


Repaso: Código Cliente Socket UDP
❒ Cliente: Creamos socket y datagrama con núm. de puerto:
DatagramSocket clientSocket = new DatagramSocket();
...
InetAddress IPAddress = InetAddress.getByName("hostname");
...
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
...
clientSocket.send(sendPacket);

❒ El Socket UDP queda identificado por (2-tuple):


(Dirección IP destino, Número puerto destino)

Capa Transporte 3-11


Repaso: Código Servidor Socket UDP
❒ Servidor crea el socket en un puerto especifico:
DatagramSocket serverSocket = new DatagramSocket(9876);
...
❒ Recibe paquete del cliente y saca ip y puerto para responder:
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
...
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress, port);
...
❒ Servidor responde usando la información obtenida del paquete:
serverSocket.send(sendPacket);
Capa Transporte 3-12
Demultiplexación sin conexión (cont)
P2 P1
P1
P3

PO: 6428 PO: 6428


PD: 9157 PD: 5775

PO: 9157 PO: 5775


cliente PD: 6428 PD: 6428 Cliente
servidor
IP: A IP: C IP:B

PO: puerto origen, provee “dirección de retorno”

Capa Transporte 3-13


Demultiplexación orientada a la
conexión
❒ Sockets TCP queda ❒ Un host servidor puede
definido por (4-tuple): soportar muchos sockets
❍ Dirección IP Origen TCP simultáneos:
❍ Número de puerto Origen ❍ Cada socket es
❍ Dirección IP Destino identificado por su 4-tupla
❍ Número de puerto Destino propia

❒ Host receptor usa los ❒ Servidores Web tiene


cuatro valores para sockets diferentes por
dirigir los segmentos al cada cliente conectado
socket apropiado. ❍ HTTP no-persistente
tendrá diferentes sockets
por cada petición de datos

Capa Transporte 3-14


Repaso: Código Cliente Socket TCP
❒ Cliente: Creamos socket con IP y núm. de puerto:
Socket clientSocket = new Socket("hostname", 6789);
...
DataOutputStream outToServer =
new
DataOutputStream(clientSocket.getOutputStream());

Capa Transporte 3-15


Repaso: Código Servidor Socket TCP
❒ Servidor crea el welcome socket en un puerto especifico:
ServerSocket welcomeSocket = new ServerSocket(6789);

❒ Se asocia el welcome socket al socket de conexión:


Socket connectionSocket = welcomeSocket.accept();

❒ Se lee del socket de conexion:


BufferedReader inFromClient =
new BufferedReader(new
InputStreamReader(connectionSocket.getInputStream()));

❒ Se responde usando el mismo socket de conexion:


DataOutputStream outToClient =
new DataOutputStream(connectionSocket.getOutputStream());

Capa Transporte 3-16


Demultiplexación orientada a la
conexión (cont.)

P1 P4 P5 P6 P2 P1P3

PO: 5775
PD: 80
IP-O: B
IP-D: C

PO: 9157 PO: 9157


cliente PD: 80 PD: 80 Cliente
servidor
IP: A IP-O: A IP-O: B IP:B
IP: C
IP-D: C IP-D: C

Capa Transporte 3-17


Demultiplexación orientada a la
conexión: Servidor Web con hebras
(cont.)
P1 P4 P2 P1P3

PO: 5775
PD: 80
IP-O: B
IP-D: C

PO: 9157 PO: 9157


cliente PD: 80 PD: 80 Cliente
servidor
IP: A IP-O: A IP-O: B IP:B
IP: C
IP-D: C IP-D: C

Capa Transporte 3-18


Contenido de Capítulo 3
❒ 3.1 Servicios de la ❒ 3.5 Transporte
capa transporte orientado a la conexión:
❒ 3.2 Multiplexing y TCP
demultiplexing ❍ Estructura de un
segmento
❒ 3.3 Transporte sin
❍ Transferencia confiable
conexión: UDP de datos
❒ 3.4 Principios de ❍ Control de flujo
transferencia ❍ Gestión de la conexión
confiable de datos ❒ 3.6 Principios del control
de congestión
❒ 3.7 Control de
congestión en TCP

Capa Transporte 3-19


UDP: User Datagram Protocol [RFC 768]
❒ Protocolo Internet de transporte
“sin costos adicionales” Por qué existe UDP?
❒ Servicio de “mejor esfuerzo”, un
❒ No requiere establecimiento
segmento UDP puede ser:
de conexión (lo cual agrega
❍ perdido retardo)
❍ Entregado a la aplicación ❒ simple: no se requiere
fuera de orden mantener estado en el Tx y el
❒ Sin conexión: Rx
❍ No hay handshaking ❒ Pequeño segmento de
(establecimiento de conexión) encabezado => menor
entre servidor y receptor UDP overhead
❍ Cada segmento UDP en ❒ No hay control de congestión:
manejado en forma UDP puede transmitir tan
independiente de los otros rápido como se desee

Capa Transporte 3-20


Largo, en
UDP: más bytes del
segmento UDP,
❒ A menudo es usado por flujos incluyendo
(streaming) multimedia en encabezados
aplicaciones por: 32 bits

❍ Tolerancia a pérdida # puerto origen # puerto dest.


❍ Sensibilidad a la tasa de largo checksum
transmisión
❒ Otros usos de UDP
❍ DNS Datos de la
❍ SNMP (Simple Network Aplicación
Management Protocol) (mensaje)
❒ Transferencia confiable sobre
UDP: agrega confiabilidad en la
capa aplicación
❍ Recuperación de errores Formato segmento UDP
específicos según la
aplicación! Capa Transporte 3-21
Checksum UDP (suma de chequeo)
Objetivo: detectar “errores” (e.g., bits cambiados) en
segmentos transmitidos

Transmisor: Receptor:
❒ Trata el contenido de cada ❒ Calcula el checksum del
segmento como una secuencia segmento recibido
de enteros de 16 bits
❒ Chequea si el checksum calculado
❒ checksum: suma del corresponde al valor de
contenido del segmento y
checksum recibido en el campo:
luego tomamos el
complemento 1. ❍ NO corresponde - error
❒ Transmisor pone el valor del detectado
checksum en el campo ❍ SI - no hay error detectado.
checksum del datagrama UDP Pero podrían haber errores
sin embargo?

Capa Transporte 3-22


Ejemplo Checksum en Internet
❒ Notar
❍ Cuando sumamos números, la reserva del bit más
significativo debe ser sumada al resultados
❍ Tomar el complemento 1 no es más que invertir
los bits
❒ Ejemplo: sumar dos enteros de 16-bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Sumar reserva 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

suma 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
Capa Transporte 3-23
Contenido de Capítulo 3
❒ 3.1 Servicios de la ❒ 3.5 Transporte
capa transporte orientado a la conexión:
❒ 3.2 Multiplexing y TCP
demultiplexing ❍ Estructura de un
segmento
❒ 3.3 Transporte sin
❍ Transferencia confiable
conexión: UDP de datos
❒ 3.4 Principios de ❍ Control de flujo
transferencia ❍ Gestión de la conexión
confiable de datos ❒ 3.6 Principios del control
de congestión
❒ 3.7 Control de
congestión en TCP

Capa Transporte 3-24

También podría gustarte