Nível Transporte Redes de Computadores - LTIC António Casimiro 2º Semestre 2014/15 Adaptado a partir de: Computer Networking: A Top Down Approach, 6 th edition. Jim Kurose, Keith Ross, Addison Wesley, 2012. Versão customizada por José Rufino e António Casimiro Nível de - Tópicos Serviços de, 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 3 2
Serviços e protocolos de Do ponto de vista da aplicação a comunicação é feita usando um serviço de A aplicação usa uma interface fornecida pelo serviço de para realizar a comunicação O protocolo de é executado em cada extremo: Emissor: divide as mensagens da aplicação em segmentos, que passa para o nível de Recetor: reagrupa os segmentos para formar a mensagem, que passa à aplicação Há vários protocolos de Internet: TCP e UDP aplicação lig. dados aplicação lig. dados 3 3 Interfaces do serviço de 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 é 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() 3 4
Sockets TCP 3 5 Sockets UDP 3 6
Nível de vs nível de Nivel de : comunicação lógica entre nós (máquinas) da Ex: Comunicação entre estações de correios, entrepostos, etc Nível de : comunicação lógica entre processos (aplicações) O nível de usa os serviços do nível de O serviço prestado pelo nível de é melhor que o serviço do nível de 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 3 7 Nível de - Tópicos Serviços de, 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 3 8
Multiplexagem/desmultiplexagem Desmultiplexagem no recep: Entrega dos segmentos recebidos ao socket correto Multiplexagem no emissor: Recolha de dados de vários sockets, encapsulamento com cabeçalhos (usados na desmultiplexagem) = socket = processo aplicação P3 aplicação P1 P2 P4 aplicação ligação ligação ligação Nó 1 Nó 2 Nó 3 3 9 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 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 O endereço IP e o porto são usados para entregar segmentos ao socket correto 32 bits Porto origem Porto destino Outros campos cabeçalho Dados da aplicação (mensagem) Formato do segmento TCP/UDP 3 10
Desmultiplexagem sem ligação Serviço de 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 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 3 11 Desmultiplexagem sem ligação Porto: 6428 P2 P3 P1P1 PO: 6428 PD: 9157 PO: 6428 PD: 5775 cliente IP: A PO: 9157 PD: 6428 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) 3 12
Desmultiplexagem com ligação Serviço de 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 socket TCP é identificado por: Endereço IP origem Número porto origem Endereço IP destino Número porto destino Estes 4 valores são usados para entregar o segmento ao socket correto Um nó pode ter vários sockets TCP: Várias ligações em simultâneo P.ex., os servidores HTTP têm um socket para cada cliente que se liga Se a ligação não for persistente, cada pedido origina a criação de um novo socket no servidor 3 13 Desmultiplexagem com ligação Porto: 80 P1 P4 P2 P5 P6 P1P3 PO: 5775 PD: 80 IP-O: B IP-D: C cliente IP: A PO: 9157 PD: 80 IP-O: A IP-D: C servidor IP: C PO: 9157 PD: 80 IP-O: B IP-D: C cliente IP: B PO (Porto de Origem) IP-O (IP de Origem) PD (Porto de Destino) IP-D (IP de Destino) 3 14
Sumário: Serviços de, multiplexagem e desmultiplexagem Ao concluir o estudo deste tema deverá ter capacidade para: Enumerar os serviços prestados pelo nível de Identificar as operações de multiplexagem / desmultiplexagem como fundamentais para a interface entre o nível de e as aplicações Descrever os conceitos de porto e de porto bem conhecido e relacioná-los com o modelo cliente-servidor 3 15 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. 3 16