Departamento de Ciência da Computação - UFF
Nível de Transporte
Portas, Protocolos UDP e TCP
Profa. Débora Christina Muchaluat Saade
debora@midiacom.uff.br
Redes de Computadores
Redes de Computadores
Camada de Transporte
Aplicação Apresentação Sessão Transporte Rede Enlace Físico Rede Enlace Físico Rede Enlace Físico Aplicação Apresentação Sessão Transporte Rede Enlace Físico Host B Aplicação Apresentação Sessão Transporte Rede Enlace Físico Host A comunicação fim-a-fimRedes de Computadores
Camada de Transporte
§ Fornece meios para estabelecer, manter e
liberar conexões de transporte no serviço orientado à conexão
§ Transporte de unidades de dados do serviço de
transporte (SDUs ou mensagens)
§ Segmentação e blocagem
§ Detecção e correção de erros fim a fim
§ Sequenciação
§ Controle do fluxo de dados nas conexões de
transporte § Multiplexação ou splitting Aplicação Apresentação Sessão Transporte Rede Enlace Físico
Redes de Computadores
Services Provided to the Upper Layers
Redes de Computadores
Transport Service Primitives (2)
Redes de Computadores
Addressing
Redes de Computadores
Endereçamento
§
Associação do T-SAP ao SAP de rede
•
endereço hierárquico
– O endereço do SAP de rede pode ser um
campo do endereço do SAP de transporte
•
Endereço horizontal
Redes de Computadores
Estabelecimento de Conexão Indevida
E1 E2 PC(1) PC(2) PC(2) CC(2) CC(2) D(1) D(2) D(2) PC(1) CC(1) CC(1) D(1) PC - Pedido de Conexão CC - Confirmação da Conexão D - Dados Timeout
Redes de Computadores
Estabelecimento de Conexões
Utilizando Three-way Handshake
E1 E2 PC(a) PC(a) CC(b,a) CC(b,a) D(a,b) D(a,b)
PC(i) = Pedido de conexão (seq=i)
CC(j,i) = Confirmação de conexão (seq=j, ack=i) D(i,j) = Dados (seq=i, ack=j)
Redes de Computadores
R(j) = Rejeita conexão (ack=j) E1 E2 PC(a) PC(b) PC(b) CC(c,b) CC(c,b) D(b,c) D(b,c) D(b,c) PC(a) CC(k,a) CC(k,a) D(b,c) R(k) R(k) Timeout
Estabelecimento de Conexões
Utilizando Three-way Handshake
Redes de Computadores
Protocolos de Transporte
§
Mesmas técnicas do nível de enlace
agora aplicadas fim-a-fim
§
Controle de Fluxo
• Stop-and-Wait
• Sliding Windows
§
Controle de Erro
• ARQ Automatic Repeat Request
Redes de Computadores
Nível de Transporte na Arquitetura TCP/IP
Portas
Redes de Computadores
Inter-rede Intra-rede
Int. de adaptação
Dados encapsulados pelo datagrama IP
AP2
AP1
• Em geral, uma aplicação é o destinatário
final de uma mensagem
Identificação do destinatário final
§ Protocolo IP não possui um mecanismo
próprio para endereçar mais de uma aplicação destino na mesma máquina
• IP oferece um único SAP de rede
• Solução: uma aplicação só acessa a rede via
Redes de Computadores
Transporte
TCP
UDP
Inter-rede
Aplicação
Camada de Transporte
Função básica: multiplexação/ demultiplexaçãoRedes de Computadores
Multiplexação e Demultiplexação
Aplicação 1IP
Aplicação 2 Porta 34 Porta 22TCP/UDP
Porta 126Redes de Computadores
Identificação do destinatário final
§
Utilizar um esquema próprio para a camada
de transporte e independente dos SOs
• Camada de transporte fornece às aplicações um
conjunto de portas que dão acesso ao SC provido pelo IP
• Aplicação origem deve conhecer end. IP do host
onde está a aplicação destino e porta a qual a aplicação está ligada
Redes de Computadores apl apl apl apl apl apl apl Aplicações Distribuídas
Endereçamento hierárquico em TCP/IP
G Inter-rede Rede B Rede C Rede A H H H H H H H H
Redes de Computadores
Portas
§
Identificadores numéricos de 16 bits (0 a 65535)
§
Antes de utilizar o UDP ou TCP, a aplicação deve
se associar a um número de porta (bind)
• Identificação (End. IP, Porta) é comumente
chamada de socket
• Berkeley sockets (Unix) e Winsock (Windows):
APIs que possibilitam a criação e uso de sockets em uma aplicação
UDP ou TCP
Redes de Computadores
Protocolos de Transporte
§
Serviço sem conexão não confiável
•
Protocolo UDP
§
Serviço orientado a conexão confiável
Redes de Computadores
Redes de Computadores
Protocolo UDP
(User Datagram Protocol)
§
Fornece serviço sem conexão fim-a-fim não
confiável utilizando os serviços do protocolo IP
diretamente
§
Permite a multiplexação/demultiplexação do SAP
IP entre várias aplicações por meio de portas
§
Ideal para aplicações que não precisam de conexão
Redes de Computadores
Formato da mensagem UDP
0 7 15 23 31
Octeto 1 Octeto 2 Octeto 3 Octeto 4
UDP SOURCE PORT UDP DESTINATION PORT
UDP MESSAGE LENGTH UDP CHECKSUM
DATA . . .
Redes de Computadores Porta 34 Porta 22
UDP
Porta 126 Aplicação 1IP
Aplicação 2Multiplexação e demultiplexação UDP
§ Em um mesmo host, duas
aplicações distintas podem usar a mesma porta (em tempos
diferentes)
• Portas UDP ⇔ Filas de
mensagens
§ Se a fila correspondente à porta
estiver cheia, a mensagem UDP é descartada
§ Se uma mensagem UDP for
endereçada a uma porta não utilizada no momento, a mesma é descartada e é gerada uma mensagem ICMP Port
Redes de Computadores
Uso de portas UDP
§
Aplicações devem entrar em acordo quanto às portas a
serem utilizadas
§
Abordagem 1:
• Números bem-conhecidos para serviços, atribuídos pela IANA – Portas < 1024 (Well-Known Ports - WKPs)
• Geralmente utilizada por servidores
– Exemplos:
53 DNS Server 69 TFTP
67/68 DHCP Server/Client
§
Abordagem 2:
• Alocação dinâmica de portas (em geral, controlada de forma
Redes de Computadores
Redes de Computadores
Protocolo TCP
(Transmission Control Protocol)
§
Multiplexação do SAP IP por meio de portas
§
Serviço orientado a conexão (circuito virtual) e confiável
• Sequenciação
• Controle de fluxo e erro fim-a-fim
§
Transmissão de fluxos de bits
• Menor unidade de transmissão: octeto
§
Desassociação da qtd. de dados enviados pela aplicação
• Segmentação e blocagem
§
Conexão full-duplex
Redes de Computadores Conexão = (139.82.17.10,22) + (139.82.55.3,2340) TCP IP TCP IP Porta 22 Porta 2340 Inter-rede
Multiplexação e demultiplexação TCP
§
Para o TCP, não basta associar uma porta a uma aplicação.
É necessário o estabelecimento de uma conexão entre a
aplicação origem e a aplicação destino
• Uma conexão é identificada por um par de sockets
• Uma porta pode ser compartilhada entre várias conexões em
Redes de Computadores
Espera conexão (passiva) Estabelece conexão (ativa)
Requisição de estabelecimento Resposta de requisição Bind c/ p o rta O R IG porta Bind c/ D EST
Após o estabelecimento da conexão, as aplicações podem transmitir fluxos de dados entre si,
independentemente da passividade ou atividade das mesmas durante o estabelecimento
Estabelecimento de conexões
§
Quem inicia o estabelecimento da conexão?
Redes de Computadores
Uso de portas TCP
§
Bind da aplicação ativa: alocação dinâmica de
portas
§
Bind da aplicação passiva: Well-Known Ports
– Exemplos:
20 FTP-DATA
79
Finger
21 FTP Control
80
HTTP
23 Telnet
110 POP3
25 SMTP
161 SNMP
53 DNS Server
443 HTTPS
Redes de Computadores Aplicação Transmissora
IP
Porta 126 TCPEm geral, o tamanho máx. de um segmento TCP corresponde a um datagrama IP que não
sofra fragmentação na origem. Isso não significa que os segmentos relativos a uma
conexão precisem ter sempre o mesmo tamanho.
Fluxo de bits original
Segmentação e blocagem no transmissor
Segmentos TCP enviados Padrão gerado pela escrita
Redes de Computadores Aplicação Receptora
IP
Porta 126 TCPSegmentação e blocagem no receptor
Fluxo de bits original
Segmentos TCP recebidos Padrão gerado pela leitura
da aplicação
Aplicação receptora recebe os bits do fluxo original na mesma ordem em que
foram enviados pela aplicação transmissora
Redes de Computadores
Formato do segmento TCP
Octeto 1 Octeto 2 Octeto 3 Octeto 4
0 7 15 23 31
TCP DESTINATION PORT TCP SOURCE PORT
DATA (IF ANY) ...
WINDOW HLEN
SEQUENCE NUMBER
RESERVED CODE BITS
ACKNOWLEDGEMENT NUMBER
URGENT POINTER CHECKSUM
PADDING OPTIONS (IF ANY)
Redes de Computadores
Sequenciação, controle de erro e de fluxo
§
Controle de segmentos perdidos, recebidos fora de ordem
ou duplicados
• Cada segmento possui um número de seqüência
§
Detecção de erros
• Checksum (em caso de erro, segmento é descartado) • Reconhecimento de segmentos
§
Correção de erros (por perda ou descarte)
• Retransmissão de segmentos não reconhecidos