• Nenhum resultado encontrado

Redes de Computadores

N/A
N/A
Protected

Academic year: 2021

Share "Redes de Computadores"

Copied!
7
0
0

Texto

(1)

R d d C

t d

F

RGS

Redes de Computadores

c

a

-U

F

NAT/NAPT

U D t

P t

l UDP

o

rmáti

c

User Datagram Protocol – UDP

Introdução a protocolos de aplicação (sockets)

d

e Inf

o

tituto

d

Ins

t

Aula 22

Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Introdução

ç

Entidades da camada de transporte também podem oferecer

serviços não orientados a conexão

M t ti d t d d d ã d li ã l t  Mesmo sem ter garantias de entrega, de ordem e de não duplicação eles tem

o seu valor.

 Na arquitetura TCP/IP corresponde ao protocolo UDP

U

FRGS

q p p

Funcionamento do NAPT (vulgarmente conhecido como NAT)

 Envolve itens da camada de rede e da camada de transporte

rmática

-U

Os serviços das entidades de transporte são disponibilizados para a

camada de nível superior

juin-1

7

u

to de

InfoNa arquitetura TCP/IP isso é feito através da interface de sockets

. Carissimi -15-j

3 assuntos

Instit u Redes de Computadores 2 (c) A

3 assuntos

User Datagram Protocol (UDP)

g

(

)

Descrito na RFC 768

PDU do UDP é denominada datagrama

 Orientado a mensagem

 Encapsula uma mensagem da aplicação sem realizar fragmentação  Controle é do próprio processo usuário

U

FRGS

 Controle é do próprio processo usuário

Protocolo de transporte da família TCP/IP não orientado à conexão

 Por não fazer controle de fluxo e de erro possui baixo custo de processamento

rmática

-U

juin-1

7

 Por não fazer controle de fluxo e de erro possui baixo custo de processamento  Em relação ao IP agrega funcionalidade de multiplexação e demultiplexação

entre processos u to de Info . Carissimi -15-j

Processos origem e destino são identificados através de portas

Instit

u

Redes de Computadores 3

(c) A

Formato do datagrama UDP (relembrando...)

g

(

)

S P t D ti ti P t 32 bits IP Header DATA DATA Tr a

Source Port Destination Port length Checksum DATA DATA asnferênci a U FRGS a Cabeçalho IP Cabeçalho 802.3 rmática -U juin-1 7

Data Cabeçalho IPCabeçalho UDP

u

to de

Info

. Carissimi

-15-j

Área de dados UDP

Instit

u

Redes de Computadores 4

(c) A PDU – Protocol Data Unit

Área de dados 802.3Área de dados IP

(2)

Campos do datagrama UDP

p

g

Porta fonte

 Associada ao processo de origem (multiplexação)

 Permite ao destino retornar mensagens ao processo de origem  Permite ao destino retornar mensagens ao processo de origem

Porta destino

 Usada para demultiplexação das mensagens encapsuladas nos datagramas

U

FRGS

p p ç g p g

Tamanho

 Tamanho total do datagrama UDP (inclui cabeçalho + dados)

C

rmática -U juin-1 7

Checksum

 Verificação da integridade dos dados (complemento de 1 em 16 bits)

 Calculado sobre um pseudo-cabeçalho (IP destino IP fonte campo protocolo

u

to de

Info

. Carissimi

-15-j Calculado sobre um pseudo cabeçalho (IP destino, IP fonte, campo protocolo,

tamanho TPDU e a constante zero), o cabeçalho UDP e os dados

Dados

Instit

u

Redes de Computadores 5

(c) A

Razões para usar UDP

p

Menor custo computacional

 Não há estabelecimento de conexão, nem estados a monitorar e gerenciar Nã f t l d d ti ã d t ti t  Não faz controle de perda, repetição, ordenamento e congestionamento

 Usado em aplicativos que toleram erros de entrega (ex. DNS)  Cabeçalho simplificado

U

FRGS

Cabeçalho simplificado

Melhor controle dos dados enviados pela aplicação

 Dados da aplicação são empacotados pelo UDP e enviados ao IP

rmática

-U

juin-1

7

p ç p p

 Cada mensagem aplicação deve caber em um datagrama UDP  Desejável que caiba em um datagrama IP para evitar fragmentação

u

to de

Info

. Carissimi

-15-j

Emprego de broadcast ou multicast

Instit

u

Redes de Computadores 6

(c) A

NAT- Network Address Translation (relembrando...)

(

)

Endereços IPs devem ser únicos

Constatação: nem toda máquina precisa ter endereço Internet válido

 Para que desperdiçar endereços IP válidos?

Endereços IP reservados para redes não conectadas (RFC 1918)

U

FRGS

 Bloco/Classe A: 10.0.0.0 – 10.255.255.255/8 (16.777.216 IPs)

 Bloco/Faixa de classe B: 172.16.0.0 - 172.31.255.255/12 (1.048.576 IPs)  Bloco/Faixa de classe C: 192 168 0 0 - 192 168 255 255/16 (65 536 IPs)

rmática

-U

juin-1

7

 Bloco/Faixa de classe C: 192.168.0.0 - 192.168.255.255/16 (65.536 IPs)

Atenção: endereços especiais

u to de Info . Carissimi -15-j Endereço interno Internet Servidor NAT Instit u (c) A Servidor NAT

Segurança → efeito colateral positivo

Funcionamento do NAT

Rede

interna externaRede

End origem IP: 200.0.2.78 IP: 10.1.1.1 End. destino End. origem U FRGS 10.1.1.1 10.8.8.8 200.0.2.78 IP: 200.0.2.78 requisição rmática -U juin-1 7 Dispositivo 10.8.8.8 200.0.2.78 resposta u to de Info . Carissimi -15-j 10.2.2.2 NAT IP: 10.2.2.2 IP: 200.0.2.78 End origem Instit u (c) A

QUESTÃO: para quem direcionar a resposta?

(3)

Funcionamento do NAPT (Cont.)

(

)

src: 10.1.1.1 | 1456 dst: 143.54.11.130 | 80 src: 200.0.2.78 | 9385 dst: 143.54.11.130 | 80 10.1.1.1 Dispositivo NAPT 10.8.8.8 200.0.2.78 U FRGS 143.54.11.130 src: 10.2.2.2 | 1456 src: 200.0.2.78 | 2167 rmática -U juin-1 7 10.2.2.2 src: 10.2.2.2 | 1456 dst: 143.54.11.130 | 80 dst: 143.54.11.130 | 80 T b l t u to de Info . Carissimi -15-j 10.1.1.1 :1456 10.2.2.2 :1456 :9385 :2167   Tabela mapeamento Tradução de Portas

(Network Address and Port Translation)

Instit

u

Redes de Computadores 9

(c) A

Traduções de endereços, portas e protocolos

ç

ç , p

p

NAT (RFC 1631)

 Mapeamento de um endereço IP em outro E i t i d d N 1 M N 1 1  Existem variedades: N:1, M:N; 1:1

NAPT (RFC 3022)

 Mapeamento de endereços e portas em outros endereços e portas

U

FRGS

 Mapeamento de endereços e portas em outros endereços e portas  Denominado corriqueiramente de “NAT” (ou NAT tradicional)

NAT-PT (RFC 2766)

rmática

-U

NAT PT (RFC 2766)

 Mapeamento de endereços e portas em outros endereços e portas

Capacidade de traduzir protocolos da camada de rede (Protocol Translation)

juin-1

7

u

to de

Info  Um dos mecanismos previstos para a transição IPv4-IPv6

. Carissimi -15-j Instit u Redes de Computadores 10 (c) A

Críticas ao NAT/NAPT

Viola regra do endereço IP ser único

Viola a independência de camadas

 Mistura informações nível 3 (end. IP) com informações do nível 4 (porta)

Só funciona com protocolos TCP e UDP (porta)

U

FRGS

Transforma a Internet (rede orientada a pacotes) em uma rede

orientada a conexão (circuito virtual)

N id d d t t d A B B C i ã A C

rmática

-U Necessidade de manter estado A-B; B-C para comunicação A-C

Aplicações que inserem o IP, ou porta, no corpo de suas mensagens

podem apresentar disfunção com o NAT

juin-1

7

u

to de

Info

podem apresentar disfunção com o NAT

 Ex.: FTP, H.323 e IPsec . Carissimi -15-j Instit u Redes de Computadores 11 (c) A

Nível de aplicação

p

ç

P t l í l d t ã

Protocolo nível de aplicação

Aplicação Aplicação

Protocolo nivel de sessão Protocolo nível de apresentação Sessão Apresentação Sessão Apresentação U FRGS Transporte

Protocolo nivel de transporte

Sessão Sessão Transporte rmática -U juin-1 7 E l Protocolo nível de enlace

Protocolo nível de rede E l Rede Rede u to de Info . Carissimi -15-j Enlace Protocolo nível de físico

Protocolo nível de enlace Físico Enlace Físico Instit u Redes de Computadores 12 (c) A

(4)

Visão da camada de transporte pela camada aplicação

p

p

p

ç

Interface de sockets

 Interface entre a aplicação e as entidades de transporte

Conjunto de primitivas para definir portas estabelecer conexão (ou não)  Conjunto de primitivas para definir portas, estabelecer conexão (ou não),

enviar e receber dados

Originalmente proposta para ambientes Unix e linguagem C

U

FRGS

Originalmente proposta para ambientes Unix e linguagem C

 Adotada em várias plataformas e linguagens (java, C#,...)  Concebido para ser genérico

rmática

-U

juin-1

7

 A Internet corresponde a família AF_INET

Construída sobre a abstração de socket

u

to de

Info

. Carissimi

-15-j

Na Internet um endpoint é representado pelo par (endereço IP e porta)No TCP, cada conexão é identificada por um par de endpoints (socket pair)

Instit

u

Redes de Computadores 13

(c) A

Modelo cliente-servidor

Paradigma empregado na implementação de serviços na Internet

 Cliente: envia requisição a um servidor

S id b i i ã t i d li t  Servidor: recebe requisição, executa serviço, responde ao cliente

Serviços baseados em

 TCP: multiplexação e demultiplexação é feita com base na conexão

U

FRGS

 TCP: multiplexação e demultiplexação é feita com base na conexão  Um buffer para cada conexão estabelecida

Servidor possui um socket em modo passivo (listen) e um socket para

rmática

-U p p ( ) p

cada conexão estabelecida com cliente (established)

Cliente possui um socket ativo que passa para established (por conexão) UDP lti l ã d lti l ã é f it b t

juin-1

7

u

to de

Info  UDP: multiplexação e demultiplexação é feita apenas com base nas portas

 Uma fila única para cada porta (“vala comum”)

Sockets de cliente e servidores não possuem estados associados

. Carissimi

-15-j

Instit

u Sockets de cliente e servidores não possuem estados associados

Redes de Computadores 14

(c) A

Socket no lado cliente

Configuração default do endpoint

 Local: IP especial 0.0.0.0 e porta arbitrária definida pelo sistema operacional R t IP i l 0 0 0 0 t i l ANY (*)

 Remoto: IP especial 0.0.0.0 e porta especial ANY (*)

Podem ser atribuídos valores específicos via programação

 Local: não se modifica

U

FRGS

 Local: não se modifica

 Remoto: define IP e porta no servidor

rmática -U juin-1 7 u to de Info . Carissimi -15-j Instit u (c) A

Socket no lado servidor

Configuração default do endpoint

 Local: IP especial 0.0.0.0 e porta arbitrária definida pelo sistema operacional R t IP i l 0 0 0 0 t i l ANY (*)

 Remoto: IP especial 0.0.0.0 e porta especial ANY (*)

Podem ser atribuídos valores específicos via programação

 Local:

U

FRGS

 Local:

 IP específico: define qual interface de rede recebe as 4-PDUs

 Endereço 0.0.0.0 significa “qualquer uma das interfaces”

rmática

-U ç g q q

 Porta específica: define a porta do processo que atende o serviço  Remoto: define de quem receberá dados

juin-1

7

u

to de

InfoAssociação default: “de qualquer IP, qualquer Porta”

Configuração usual do socket de listen (protocolo TCP)

 IP e porta específicos: define que só recebe de dado IP e/ou porta

. Carissimi

-15-j

Instit

u IP e porta específicos: define que só recebe de dado IP e/ou porta

(5)

Interface de sockets

Socket é um descritor de arquivo

 Paradigma abrir-ler-escrever-fechar

As primitivas básicas são:

As primitivas básicas são:

 socket( ): cria novo socket (cliente e servidor)

 bind( ): associa IP e porta ao endpoint local (servidor, típico)

U

FRGS

( ) ( )

 Cliente não faz bind porque é o sisop que inicializa

 listen( ): coloca socket a receber pedidos conexão (servidor TCP)  accept( ): bloqueia até receber pedidos conexão (servidor TCP)

rmática

-U

juin-1

7

 accept( ): bloqueia até receber pedidos conexão (servidor TCP)

 Select(): permite esperar por pedidos em vários sockets

 connect( ): estabelece conexão endpoint remoto (cliente TCP)

it ( ) dt ( ) i d d k t TCP/UDP u to de Info . Carissimi -15-j

 write( ), sendto( ): envia dados para socket TCP/UDP  read( ), recvfrom( ): lê dados de socket TCP/UDP  close( ): destroi socket (cliente e servidor)

Instit

u

Redes de Computadores 17

(c) A

( ) ( )

Clientes e servidores UDP

Servidor UDP

socket bind recvfrom sendto close

U

FRGS socket sendto recvfrom close

Comunicação rmática -U juin-1 7 Cliente UDP u to de Info . Carissimi -15-j

Não há estados em sockets UDP (serviço sem conexão)

Instit

u

Redes de Computadores 18

(c) A Fonte: Arquitetura e protocolos de Rede TCP-IP, 2ª edição. G. Elias, Lobato, L.C. Escola Superior de Redes. RNP. 2013.

Clientes e servidores TCP

Servidor TCP

socket bind listen accept read write close

U FRGS Comunicação Sincronização rmática -U juin-1 7 Cliente TCP

socket connect write read close

u

to de

Info

. Carissimi

-15-j Cliente TCP

Socket original (listen) Fonte: Arquitetura e protocolos de Rede TCP IP 2ª edição G Elias

Instit

u

Redes de Computadores 19

(c) A

Socket original (listen)

Socket conectado (criado no accept)

Fonte: Arquitetura e protocolos de Rede TCP-IP, 2ª edição. G. Elias, Lobato, L.C. Escola Superior de Redes. RNP. 2013.

Exemplo sockets (lado servidor TCP)

p

(

)

main() {

a

main() {

int cont,create_socket,new_socket,addrlen; int bufsize = 1024;

char *buffer = malloc(buffsize); struct sockaddr in address;

do{

recv(new_socket,buffer,bufsize,0); // do service...

send(new_socket,buffer,bufsize,0); struct sockaddr_in address;

printf("\x1B[2J");

if ((create_socket = socket(AF_INET,SOCK_STREAM,0)) > 0) printf("The socket was created\n");

( ) .... }while(strcmp(buffer,"/q")) close(new_socket); close(create_socket); U FRGS

printf( The socket was created\n ); address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(15000);

if (bind(create socket (struct sockaddr *)&address sizeof(address)) == 0) }

rmática

-U

juin-1

7

if (bind(create_socket,(struct sockaddr )&address,sizeof(address)) == 0) printf("Binding Socket\n");

listen(create_socket,3); addrlen = sizeof(struct sockaddr_in);

new socket = accept(create socket (struct sockaddr *)&address &addrlen);

u

to de

Info

. Carissimi

-15-j new_socket = accept(create_socket,(struct sockaddr )&address,&addrlen);

if (new_socket > 0){

printf("The Client %s is connected...\n",inet_ntoa(address.sin_addr)); for(cont=1;cont<5000;cont++) printf("\x7"); Instit u Redes de Computadores 20 (c) A printf( \x7 ); }

(6)

Exemplo sockets (lado cliente)

p

(

)

main(int argc char *argv[]) { main(int argc,char *argv[]) {

int create_socket, buffsize = 1024; char *buffer = malloc(buffsize); struct sockaddr_in address;

if ((create_socket = socket(AF_INET,SOCK_STREAM,0)) > 0) printf("The Socket was created\n");

address.sin_family = AF_INET; address sin port = htons(15000);

U

FRGS

address.sin_port = htons(15000);

inet_pton(AF_INET,argv[1],&address.sin_addr);

if (connect(create_socket,(struct sockaddr *)&address,sizeof(address)) == 0)

printf("The connection was accepted with the server %s \n" inet ntoa(address sin addr));

rmática

-U

juin-1

7

printf( The connection was accepted with the server %s...\n ,inet_ntoa(address.sin_addr)); do{

gets(buffer);

send(cria_socket,buffer,bufsize,0); recv(create socket buffer bufsize 0);

u

to de

Info

. Carissimi

-15-j recv(create_socket,buffer,bufsize,0);

printf("Message recieved: %s\n",buffer); if (strcmp(buffer,"/q")) printf("Message to send: "); }while (strcmp(buffer "/q")); Instit u Redes de Computadores 21 (c) A }while (strcmp(buffer, /q )); close(create_socket); }

Servidor iterativo (single threaded)

( g

)

Adequado para serviços com reduzida taxa de requisições e

serviços cujas requisições possuem baixa carga de processamento

Servidor TCP

U

FRGS

socket bind listen accept read write close

rmática

-U

juin-1

7

Socket original (listen) Novo socket (conectado)

u to de Info . Carissimi -15-j Instit u Redes de Computadores 22

(c) A Fonte: Arquitetura e protocolos de Rede TCP-IP, 2ª edição. G. Elias, Lobato, L.C. Escola Superior de Redes. RNP. 2013.

Servidor concorrente (multithreaded)

(

)

Serviços com elevada taxa de requisições e serviços cujas

requisições possuem alta carga de processamento

Implementado com várias threads ou processos independentes

U

FRGS

Servidor TCP

read write close

rmática

-U

juin-1

7 socket bind

read write close

listen accept u to de Info . Carissimi -15-j

read write close

Socket original (listen) Novo socket (conectado)

Instit

u

(c) A Fonte: Arquitetura e protocolos de Rede TCP-IP, 2ª edição. G. Elias, Lobato, L.C. Escola Superior de Redes. RNP. 2013.

Funcionamento de sockets: lado servidor

> netstat -uan

Proto Recv-Q Send-Q Local Address Foreign Address State

udp 0 0 192.168.1.33:161 0.0.0.0:* d 0 0 192 168 1 65 161 0 0 0 0 * > netstat -tan udp 0 0 192.168.1.65:161 0.0.0.0:* udp 0 0 0.0.0.0:161 0.0.0.0:* U FRGS

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN Tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 150.1.20.1:25 192.10.1.50:57568 ESTABLISHED tcp 0 0 150 1 20 1:25 200 50 2 10:58461 ESTABLISHED rmática -U juin-1 7 tcp 0 0 150.1.20.1:25 200.50.2.10:58461 ESTABLISHED tcp 0 0 150.1.20.1:25 150.10.1.20:60496 ESTABLISHED

Fonte: Arquitetura e protocolos de Rede TCP-IP, 2ª edição. G. Elias, Lobato, L.C. Escola Superior de Redes. RNP. 2013.

u

to de

Info

. Carissimi

-15-j

Na demultiplexação, a associação default só é usada se não houver outro socket mais específco

Instit

u

(c) A

(7)

Situação de portas e sockets no servidor

ç

p

 Servidores TCP

Socket inicial (estado de LISTEN)

 Endpoint local possui endereço IP 0 0 0 0 e porta específica do servidor  Endpoint local possui endereço IP 0.0.0.0 e porta específica do servidor  Endpoint remoto possui endereço IP.0.0.0.0 e porta ANY

Socket escravo (estado ESTABLISHED)

U

FRGS

( )

 Endpoint local possui endereço IP e porta específica do servidor  Endpoint remoto possui endereço IP e porta do cliente

rmática

-U

Servidores interativos tem 1 socket em listen e no máximo um em establishedServidores concorrentes tem 1 socket em listen e n em established

 Servidores UDP juin-1 7 u to de Info  Servidores UDP

Há sempre um socket no servidor por associação IP/Porta  Não há estados . Carissimi -15-j Instit u Redes de Computadores 25 (c) A

Leituras complementares

p

Tanenbaum, A. Redes de Computadores (4

a

edição), Campus,

2000.

C ít l 5 ã 5 6 (NAT)  Capítulo 5, seção 5.6 (NAT)  Capítulo 6, seção 6.1

Carissimi A ; Rochol J; Granville L Z; Redes de Computadores

U

FRGS

Carissimi, A.; Rochol, J; Granville, L.Z; Redes de Computadores.

Série Livros Didáticos. Bookman 2009.

 Capítulo 5, seção 5.5.1 rmática -U juin-1 7 p , ç  Capítulo 7, seção 7.2 u to de Info . Carissimi -15-j Instit u Redes de Computadores 26 (c) A

Referências

Documentos relacionados

Determine analiticamente as zonas de funcionamento do transístor ao longo de um período da tensão de entrada e esboce a forma de onda da tensão tirada do

ACESSÓRIOS PVC-C PRESSÃO - CPVC PRESSURE FITTINGS 36 PV C -U PV C -C V álvulas Industriais PP PE100 Sobresselentes TÊ 90º REDUÇÃO 90º REDUCING TEE Colar solvent socket CP... PV C

In another vein, whole-body 131 I scintigraphy has proven to be a minimally invasive and safe technique that allows the diagnosis metastasis and recurrence after thyroidectomy

Titulação Mínima Exigida: Graduação em Engenharia Civil, com Doutorado em Engenharia Civil, ou com Doutorado em Geotecnia, ou com Doutorado em Métodos Numéricos Aplicados

A partir das atividades desenvolvidas pelo PADI serão elaborados relatórios informativos para fundamentar pesquisas e avaliações dos processos acompanhados, podendo

Campral só deverá por isso ser usado durante a gravidez após avaliação cuidadosa da relação benefício/risco, quando a paciente não se consegue abster de beber álcool sem

A nota final dos candidatos habilitados para os cargos de Analista Judiciário - Área Judiciária, Analista Judiciário - Área Ju- diciária - Especialidade Execução de Mandados

2.3.8 Caso a FAI, depois de finalizado o período de inscrições, opte pela não realização do Vestibular Tradicional Digital 2 (VTD 2) para algum curso