• Nenhum resultado encontrado

REDES E SISTEMAS INTERNET

N/A
N/A
Protected

Academic year: 2018

Share "REDES E SISTEMAS INTERNET"

Copied!
45
0
0

Texto

(1)

REDES E SISTEMAS

INTERNET

Camada de Transporte

(2)

Roteiro

Introdução

Serviços

Conceitos de protocolos de transporte

UDP

TCP

Resumo

(3)

Protocolo da camada 5

Protocolo da camada 4 Protocolo da

camada 3 Protocolo da

camada 2

(4)

Introdução

Quais são as unidades em cada camada?

• Física: bits

• Enlace: quadros • Rede: pacotes

• Transporte: segmentos

• O livro texto do Tanenbaum chama de TPDU

(5)

• Fornecer uma abstração de comunicação fim a fim sem erros para a camada de aplicação

• Fornecer serviço confiável, eficiente e econômico

Também trabalha com serviços orientados a conexão e

sem conexões!

• Conexões: estabelecimento, transferência e encerramento

• Sem conexões: semelhante ao serviço sem conexões da camada de rede

(6)

Serviços para a Camada de Aplicação

29/05/2015 Camada de Transporte - Danilo R. B. de Araújo 6

As camadas de rede, de transporte e de aplicação

Interface aplicação-transporte

Interface transporte-rede

Camada de

Aplicação Camada de Aplicação

(7)

máquinas dos usuários

não depende dos ISPs

Blindagem contra problemas na camada de rede

Independência das características das redes

físicas

Conceito importante:

Camadas abaixo da camada de transporte: relacionadas aos

provedores de serviços para os usuários

(8)

Conceitos de Protocolos de Transporte

29/05/2015 Camada de Transporte - Danilo R. B. de Araújo 8

Aninhamento de TPDUs, pacotes e quadros

Cabeçalho de Transporte Cabeçalho de

Pacote Cabeçalho de

Quadro

Área de dados de transporte

Área de dados do pacote Área de dados do

(9)

Primitiva Pacote enviado Significado

LISTEN nenhum Bloquear ate que algum processo tente se

conectar

CONNECT CONNECTION REQ. Tentar ativamente estabelecer uma conexão

SEND DATA Enviar informações

RECEIVE nenhum Bloquear ate chegar um pacote DATA

(10)

Conceitos de Protocolos de Transporte

O que encontramos tipicamente em protocolos de

transporte?

Comparação transporte

x enlace de dados…

29/05/2015 Camada de Transporte - Danilo R. B. de Araújo 10

(a) Ambiente da camada de enlace de dados. (b) Ambiente da camada de transporte.

Canal de

comunicação físico

(11)

conexão

Em (b) há capacidade de armazenamento na sub-rede

Estabelecer conexão em (a) é simples

(a) Ambiente da camada de enlace de dados. (b) Ambiente da camada de transporte.

Canal de

comunicação físico

(12)

Conceitos de Protocolos de Transporte

Endereçamento:

• Quando um processo de aplicação quer se comunicar com processo remoto precisamos de um endereço...

• Endereços de transporte:

Os protocolos usados na Internet (TCP e UDP) usam

números de portas!

• Reflita sobre a entrega de cartas:

Qual a informação fornecida por um CEP e número da

rua?

Qual a informação que fornece o número do APTO?

(13)

IPs, portas e conexões de transporte.

Processo

aplicação AplicaçãoCamada

Camada Transporte Camada Rede Enlace dados Camada Física IP do TX

(14)

Conceitos de Protocolos de Transporte

Endereçamento:

1. Um servidor de “hora do dia” no host 2 se associa à porta 1522 para aguardar a chegada de uma chamada

2. Um processo de aplicação no host 1 deseja descobrir a hora do dia e chama CONNECT especificando a porta 1208 como

origem e a porta 1522 como destino

3. O processo de aplicação envia então uma solicitação para saber a hora

4. O processo servidor de hora responde com a hora atual 5. A conexão de transporte é então encerrada (liberada)

(15)

Como o cliente sabia que 1522 era um servidor de

timer

?

As portas são conhecidas?

Na Internet (protocolo TCP e UDP):

• Portas são números de 16 bits  65536 portas

• Portas reservadas: 1 – 1024

• Exemplos: HTTP – 80 ou 8080; FTP – 21

(16)

Prática:: O que é um soquete?

Um socket ou soquete é uma abstração computacional

para representar uma comunicação no nível de transporte

Em RFCs, um soquete de computador é simplesmente o

conjunto formado por:

• Endereço IP • Um protocolo

• Um número de porta de transporte

Normalmente as linguagens de programação oferecem

APIs que facilitam a programação no nível de soquetes

de rede

(17)

• Passo 1 o servidor está listen em uma porta conhecida/divulgada entre os clientes e um cliente solicita uma conexão

• Passo 2 - o servidor aceita a conexão e é atribuída uma nova porta para transferência de dados entre servidor e cliente

(18)

Prática:: Exemplo

Um servidor de um jogo multiplayer modela a

comunicação entre os jogadores por meio de soquetes

de rede usando o protocolo de transporte TCP

Um soquete será definido como cada conexão entre

um jogador e o servidor do jogo

29/05/2015 Sockets TCP/IP - Danilo R. B. de Araújo 18

Servidor

Viciado 1 Viciado 3

(19)

novos jogadores em uma porta conhecida, digamos 5540

Cada jogador se conecta ao servidor do jogo na porta 5540

O servidor do jogo cria um novo soquete para tratar futuras

comunicações entre o servidor e este jogador (5541, 5542,

etc)

Servidor

Listen no soquete

(187.45.241.241, TCP, 5540)

Viciado 1 Viciado 3

Viciado 2 Viciado 4

Porta 5541

Porta 5542

Porta 5543

Porta 5544 Porta 6001

Porta 6001 Porta 6001

(20)

Prática:: API de sockets para Java

Sockets em Java:

Pacote java.net

Classes Socket e ServerSocket

Soquetes oferecem implementação de comunicação no

nível de transporte

• Baixo nível de abstração  elevado desempenho contudo programação mais difícil

• Se for desejável comunicação em nível de abstração mais

elevado, existem outras classes na API (URL, URLConnection, URLEncoder)

(21)

serverSocket = new ServerSocket(4444);

} catch (IOException e) {

System.err.println("Não foi possível escutar na porta 4444.");

System.exit(1);

}

Socket clientSocket = null;

try {

clientSocket = serverSocket.accept(); } catch (IOException e) {

System.err.println("Falha no accept.");

System.exit(1);

}

PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);

out.println("Teste...");

out.close();

clientSocket.close(); serverSocket.close();

(22)

Prática:: API de sockets para Java

29/05/2015 Sockets TCP/IP - Danilo R. B. de Araújo 22

try {

kkSocket = new Socket("taranis", 4444);

out = new PrintWriter(kkSocket.getOutputStream(), true);

in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));

} catch (UnknownHostException e) {

System.err.println("O host taranis não foi encontrado.");

System.exit(1);

} catch (IOException e) {

System.err.println("Erro de IO com taranis.");

System.exit(1);

}

(23)

hora com o fuso horário de uma hora a mais

Exemplo:

• Servidor fica escutando na porta 3535

• O cliente faz uma requisição TCP ao servidor nesta porta em

“14/01/14 20:10”

(24)

Prática 2 (para o Lar)

Crie um chat simples para 2 clientes

conversarem usando os exemplos fornecidos em

Java

Use os comandos para entrada e saída de texto

que você esteja acostumado

Exemplos: Scanner, System.out.print, métodos Swing...

(25)

• O problema das duplicatas atrasadas...

Três cenários de protocolos para o estabelecimento de uma conexão com o uso de um handshake de três vias. CR denota CONNECTION REQUEST. (a)

Operação normal. (b) Duplicata antiga de CONNECTION REQUEST que surge repentinamente. (c) CONNECTION REQUEST e ACK duplicadas.

z != y

(26)

Conceitos de Protocolos de Transporte

Encerramento de conexões:

• Simétrico: exige que cada um interrompa a conexão separadamente

• Assimétrico: sistema telefônico

29/05/2015 Camada de Transporte - Danilo R. B. de Araújo 26

Desconexão abrupta com perda de dados.

(27)

• Há um exército azul dividido em dois agrupamentos e um exército branco no meio

• O exército branco é maior do que cada agrupamento azul individualmente

• É preciso combinar um horário de ataque para vencer! • Qual o protocolo de envio de mensageiros que funciona?

Exército branco Exército

Azul #1

(28)

Conceitos de Protocolos de Transporte

Analise o problema dos 2 exércitos:

• Troque a pergunta “Quando atacar?” por “Quando desconectar?” e perceba que o problema de desconexão é complexo!

• Na prática os protocolos usam three way handshake em conjunto

com timers para desconexão

• Não garante 100% mas é plausível...

29/05/2015 Camada de Transporte - Danilo R. B. de Araújo 28

Exército branco Exército

Azul #1

(29)

• Uso de buffers no transmissor e receptor

• Monitoramento buffer no receptor x monitoramento da capacidade da rede

• No transmissor  evitar que haja muitos pacotes de transporte não confirmados

Monitoramento da capacidade da rede

c

pacotes/s

Tempo de um ciclo

r

(transmissão, propagação,

(30)

Conceitos de Protocolos de Transporte

Multiplexação:

• Quando multiplexação pode ser útil na camada de transporte? •

Apenas um endereço de rede e várias conexões de

transporte

multiplexação ascendente

29/05/2015 Camada de Transporte - Danilo R. B. de Araújo 30

(31)

• UDP (User Datagram Protocol) • Sem conexões

• RFC 768

• Não há controle de fluxo, nem retransmissão!

• TCP (Transmission Control Protocol) • Orientado a conexões

• RFC 793 (original), 1122 e 1323 (correções/extensões)

(32)

UDP

Características:

• É um protocolo sem garantia de entrega • Não orientado à conexão

• A função é basicamente oferecer multiplexação (várias aplicações poderem coexistir em um servidor com um mesmo IP)

• Cabeçalho possui 8 bytes (64 bits)

29/05/2015 Camada de Transporte - Danilo R. B. de Araújo 32

Porta de origem Porta de destino

Comprimento UDP Checksum UDP

(33)

• Aplicações cliente/servidor

• Um cliente envia uma requisição por meio de UDP

• O servidor responde a requisição com outro segmento UDP

• Se depois de um tempo o cliente não receber resposta, a camada de aplicação gera um novo segmento

• Aplicações multimídia em tempo real

• Multiplexação de diversos fluxos de dados de tempo real em um único fluxo de pacotes UDP

(34)

TCP

29/05/2015 Camada de Transporte - Danilo R. B. de Araújo 34

Cabeçalho de 20 bytes e payload variável

Porta de origem Porta de destino

Número de sequência

Tamanho da janela

32 bits

Tamanho Cabeçalho

Número de confirmação (ACK)

UAPRSF RCSSYI GKHTNN

Checksum Ponteiro urgente

(35)

• 3-way handshake:

• TX envia SYN = 1 e ACK = 0

• RX envia de volta SYN = 1 e ACK = 1

• Se a conexão for rejeitada é enviado RST = 1

• O TX em seguida envia os números de sequência com dados

Desconexão:

• É simétrica  cada lado envia FIN • 4 mensagens no total  2 FIN e 2 ACK

(36)

TCP

Confiabilidade:

• Como a confiabilidade é obtida?

• Conjunto de técnicas  dentre elas retransmissão! • Envia um pacote e espera uma confirmação

• Após o tempo de “espera” , se não chegar confirmação, retransmite!

(37)

Procedimento de retransmissão de pacotes TCP.

Host 1 Host 2

Enviar mensagem 1

Enviar mensagem 2

Reenvia mensagem 2 Recebe ACK 1

Recebe ACK 2 Timer expira

Recebe mensagem 1

Recebe mensagem 2 Envia ACK 1

(38)

TCP

A retransmissão do TCP é adaptativa:

• Monitoramento dos tempos de ida e volta

• Criação de estatística dos tempos de ida e volta • Uso da variância

• A variância ajuda a adaptação em rajadas  o timer é aumentado para um valor acima da média

(39)

Retransmissão adaptativa do TCP.

t1

Timeout Perda de

pacote

t2

t1

Timeout

Perda de pacote

(40)

TCP

Retransmissão adaptativa:

• Algoritmo de Jacobson (1988):

RTT =

RTT + (1−

)M

D =

D + (1 -

) | RTT

M |

Timeout = RTT + 4 x D

Onde:

• D é o desvio médio

•  é um fator de suavização (usual  = 7/8)

• RTT é a melhor estimativa sobre o tempo de ida e volta

• M é a medida do tempo obtido quando é recebida uma confirmação

(41)

• Buffer no transmissor e receptor

• As informações de tamanho disponível nos buffers são trocadas para alcançar controle de fluxo

• É usado algoritmo de janela deslizante

(42)

TCP

Controle de Fluxo:

29/05/2015 Camada de Transporte - Danilo R. B. de Araújo 42

Enviar 1-1000

Recebe ACK para 1000

Aplicativo lê 2000 bytes Anuncia janela = 2500

Enviar 1001-2000 Enviar 2001-2500

Recebe ACK para 2000 Recebe ACK para 2500

Enviar 2501-3500

Recebe ACK para 3500

ACK até 3500, janela = 1000 ACK até 1000, janela = 1500 ACK até 2000, janela = 500 ACK até 2500, janela = 0

(43)

• Monitoramento das retransmissões (feedback implícito) e diminuição do tráfego

• Começa com poucos segmentos (usualmente 4)

• Vai aumentando de forma exponencial até alcançar a metade da janela do receptor, depois aumenta linearmente

• Esse algoritmo é conhecido como partida lenta

(44)

Atividade

A melhor estimativa atual para o tempo de ida e volta em

uma conexão fim a fim é RTT = 32 ms e o desvio é 2 ms

Suponha que chegam novas estimativas de tempos de

ida e volta iguais a 34, 52 e 32 ms

Qual será a nova estimativa de RTT após a chegadas

destas 3 novas estimativas?

Comente sobre o que pode estar acontecendo nesta

rede.

(45)

REDES E SISTEMAS

INTERNET

Camada de Transporte

Referências

Documentos relacionados

Para a confirmação da especificidade dos primers Cavis1F/Cavis4R, os produtos de amplificação específicos de 560 pb foram sequenciados e comparados em alinhamento com

Muitos foram os motivos que nos levaram a esco­ lher corno terna central do nosso estudo os encontros anuais da Associação Nacional de Pós-Graduação e Pesquisas

Nesta perspectiva, tem como tema “Uma Abordagem sobre a Formação do Professor na Escola Normal Rural no Brasil em Sergipe (1935-1960).” Minha experiência de professora de

Antes da sistematização da responsabilidade penal em termos de meio ambiente, todos os tipos penais e contravencionais referentes a con- dutas lesivas ao meio

O cenário delineado por Silviano comporta, como o próprio crítico assinala, diversos pontos de vista, embora todos eles privilegiem, de alguma maneira, a mudança, o desafio de

Further larger longitudinal studies are necessary to clarify if a universal screening for thyroid diseases should be recommended for FDR of patients with T1DM or if there

However, little emphasis has been given to the mechanisms by which aerobic physical activity can benefit brain functioning, the autonomic nervous system and result in better

referente ao custeio dos sorteios futuros e dos quais o Titular do direito de participação nos sorteios não concorrerá, será devolvido juntamente com o valor