Nível de Transporte - Moodle

Propaganda
Módulo 3
Módulo 3 – Nível Transporte
Redes de Computadores - LTIC
António Casimiro
2º Semestre 2014/15
Adaptado a partir de: Computer Networking: A Top Down Approach , 6th edition. Jim Kurose, Keith Ross, Addison‐Wesley, 2012.
Versão customizada por José Rufino e António Casimiro
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
Módulo 3
Nível de transporte - Tópicos






Serviços de transporte, abstrações de programação
Multiplexagem e desmultiplexagem
Serviço não fiável: UDP
Serviço fiável: TCP
Controlo de fluxo
Controlo de congestão
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐2
Módulo 3
Serviços e protocolos de transporte
•
•
•
•
Do ponto de vista da aplicação a
comunicação é feita usando um
serviço de transporte
A aplicação usa uma interface
fornecida pelo serviço de
transporte para realizar a
comunicação
O protocolo de transporte é
executado em cada extremo:
– Emissor: divide as mensagens da
aplicação em segmentos, que
passa para o nível de rede
– Recetor: reagrupa os segmentos
para formar a mensagem, que
passa à aplicação
Há vários protocolos de transporte
– Internet: TCP e UDP
RC‐LTIC
aplicação
transporte
rede
lig. dados
físico
aplicação
transporte
rede
lig. dados
físico
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐3
Módulo 3
Interfaces do serviço de transporte
• Biblioteca com funções na linguagem C para
comunicação
– Que podem ser chamadas pela aplicação
• Função para obter um “comunicador”
– Usada no emissor e no recetor: socket()
• Como se fosse o “telefone”
• O tipo de serviço de transporte é especificado neste passo
• Funções para estabelecimento de ligação
– Usada no emissor : connect()
– Usadas no recetor: listen(), accept()
• Funções para transmissão
– Usada no emissor : send(), sendto()
– Usada no recetor: recv(), recvfrom()
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐4
Módulo 3
Sockets TCP
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐5
Módulo 3
Sockets UDP
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐6
Módulo 3
Nível de transporte vs nível de rede
• Nivel de rede: comunicação lógica entre nós
(máquinas) da rede
– Ex: Comunicação entre estações de correios, entrepostos, etc
• Nível de transporte: comunicação lógica entre
processos (aplicações)
– O nível de transporte usa os serviços do nível de rede
– O serviço prestado pelo nível de transporte é melhor que o
serviço do nível de rede
– Ex: Comunicação entre casas
• Num nó podem existir vários processos
– Diferentes processos usam diferentes sockets (portos)
– Diferentes nós usam diferentes endereços IP
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐7
Módulo 3
Nível de transporte - Tópicos






Serviços de transporte, abstrações de programação
Multiplexagem e desmultiplexagem
Serviço não fiável: UDP
Serviço fiável: TCP
Controlo de fluxo
Controlo de congestão
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐8
Módulo 3
Multiplexagem/desmultiplexagem
Desmultiplexagem no recep:
Entrega dos segmentos
recebidos ao socket correto
= socket
P3
aplicação
Multiplexagem no emissor:
Recolha de dados de vários sockets,
encapsulamento com cabeçalhos
(usados na desmultiplexagem)
= processo
P1
P1
aplicação
P4
P2
aplicação
transporte
transporte
transporte
rede
rede
ligação
ligação
ligação
físico
físico
físico
Nó 1
RC‐LTIC
rede
Nó 2
Nó 3
3‐9
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
Módulo 3
Como funciona a desmultiplexagem
• O nó recebe datagramas IP
– Cada datagrama tem o endereço
IP da origem e o endereço IP do
destino
– Cada datagrama contém um
segmento do nível de transporte
– Cada segmento tem o porto de
origem e o porto de destino
– Um socket é identificado pelo
número de porto, único num nó
– Porto bem conhecido: HTTP=80
32 bits
Porto origem
Porto destino
Outros campos cabeçalho
Dados da aplicação
(mensagem)
• O endereço IP e o porto são Formato do segmento TCP/UDP
usados para entregar
segmentos ao socket correto
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐10
Módulo 3
Desmultiplexagem sem ligação
• Serviço de transporte UDP não requer ligação
– Cada pedido de transmissão tem de indicar o destino
– Na programação: sendto (socket, message, destination)
• Quando o serviço de transporte num nó recebe um
segmento UDP:
– Verifica o porto de destino no segmento
– Encaminha o segmento UDP para o socket com esse porto
• Um socket sem ligação (UDP) pode receber
datagramas com vários endereços IP de origem e/ou
vários portos de origem
– Isto é possível porque o socket não está “ligado” a outro socket
RC‐LTIC
3‐11
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
Módulo 3
Desmultiplexagem sem ligação
Porto: 6428
P2
PO: 6428
PD: 9157
cliente
IP: A
P1
P1
P3
PO: 9157
PD: 6428
PO: 6428
PD: 5775
servidor
IP: C
PO: 5775
PD: 6428
cliente
IP: B
PO (Porto de Origem) Nota: fornece o “endereço de retorno”
PD (Porto de Destino)
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐12
Módulo 3
Desmultiplexagem com ligação
• Serviço de transporte TCP requer ligação
- Os pedidos de envio não indicam destino, pois a ligação já existe
- Na programação: send (socket, message)
• Um nó pode ter vários
sockets TCP:
• Um socket TCP é
identificado por:
–
–
–
–
– Várias ligações em
simultâneo
Endereço IP origem
Número porto origem
Endereço IP destino
Número porto destino
• P.ex., os servidores HTTP
têm um socket para cada
cliente que se liga
• Estes 4 valores são
usados para entregar o
segmento ao socket
correto
RC‐LTIC
– Se a ligação não for
persistente, cada pedido
origina a criação de um novo
socket no servidor
3‐13
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
Módulo 3
Desmultiplexagem com ligação
Porto: 80
P1
P4
P5
P2 P1P3
P6
PO: 5775
PD: 80
IP-O: B
IP-D: C
cliente
IP: A
PO: 9157
PD: 80
IP-O: A
IP-D: C
PO (Porto de Origem)
PD (Porto de Destino)
RC‐LTIC
servidor
IP: C
PO: 9157
PD: 80
IP-O: B
IP-D: C
cliente
IP: B
IP-O (IP de Origem)
IP-D (IP de Destino)
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐14
Módulo 3
Módulo 3 – Sumário: Serviços de transporte,
multiplexagem e desmultiplexagem
Ao concluir o estudo deste tema deverá ter capacidade para:
• Enumerar os serviços prestados pelo nível de transporte
• Identificar as operações de multiplexagem / desmultiplexagem como
fundamentais para a interface entre o nível de transporte e as
aplicações
• Descrever os conceitos de porto e de porto bem conhecido e
relacioná-los com o modelo cliente-servidor
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐15
Módulo 3
Bibliografia
• Versão Customizada por José Rufino e
António Casimiro de:
Computer Networking: a top-down approach
featuring the Internet. 6th Edition. J. Kurose
and K. Ross. Addisson Wesley. 2012.
 Capítulo 3
• TCP/IP Tutorial and Technical Overview, IBM
Redbooks, December 2006.
• Outros elementos de estudo complementares
indicados na página da unidade curricular.
RC‐LTIC
© 2011‐2015 J. Rufino, A. Casimiro © 1996‐2010 J. Kurose and K. Ross, All Rights Reserved.
3‐16
Download