Nível de Transporte Portas, Protocolos UDP e TCP · § Associação do T-SAP ao SAP de rede ......
-
Upload
vuongthien -
Category
Documents
-
view
224 -
download
0
Transcript of Nível de Transporte Portas, Protocolos UDP e TCP · § Associação do T-SAP ao SAP de rede ......
Departamento de Ciência da Computação - UFF
Nível de Transporte Portas, Protocolos UDP e TCP
Profa. Débora Christina Muchaluat Saade
Disciplina: Redes de Computadores
5
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-fim
6
Redes 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
7
Redes de Computadores
Services Provided to the Upper Layers
The network, transport, and application layers.
11
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 – Servidor de nomes
17
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
18
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)
19
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
22
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 • Selective Repeat • Go Back N
33
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
camada de transporte
35
Redes de Computadores
Transporte TCP UDP
Inter-rede
Aplicação
Camada de Transporte
Função básica: multiplexação/ demultiplexação
36
Redes de Computadores
Multiplexação e Demultiplexação
Aplicação 1
IP
Aplicação 2
Porta 34 Porta 22
TCP/UDP Porta 126
37
Redes 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
– (End. IP, Porta) em TCP/IP ⇔ T-SAP no OSI
38
Redes de Computadores
apl
apl
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
39
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 5 10 11 25 221 2430
40
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 • Protocolo TCP
42
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 • Menor tráfego e mais eficiência
43
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 . . .
46
Redes de Computadores
Porta 34 Porta 22
UDP Porta 126
Aplicação 1
IP
Aplicação 2
Multiplexaçã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 Unreachable
47
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
aleatória pelo SO)
50
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 • Fluxos independentes nas duas direções
52
Redes de Computadores
Conexão =
(139.82.17.10,22) + (139.82.55.3,2340) TCP
IP
TCP
IP
Porta 22 Porta 2340
Host 139.82.17.10 Host 139.82.55.3 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
um mesmo host simultaneamente
53
Redes de Computadores
Espera conexão (passiva) Estabelece conexão (ativa)
Requisição de estabelecimento
Resposta de requisição Bin
d c/
po
rta
OR
IG
Bind c/
porta DEST
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? • Aplicação ativa X Aplicação passiva
54
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
55
Redes de Computadores
Aplicação Transmissora
IP
Porta 126
TCP Em 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
da aplicação
56
Redes de Computadores
Aplicação Receptora
IP
Porta 126
TCP
Segmentaçã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
58
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)
60
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
§ Controle de fluxo • Mecanismo de janelas deslizantes (Sliding Windows)