44
CAP 258 - REDES E COMUNICAÇÃO DE DADOS Redes - PROTOCOLO TCP/IP 89 04/05/01 Ulisses Thadeu V Guedes Redes - Parte III PROTOCOLO TCP/IP _______________________________________ 91 1 ENDEREÇO IP _______________________________________________________ 91 1.1 MÁSCARA DE REDE _____________________________________________________ 92 1.2 ENDEREÇO DE BROADCAST. _____________________________________________ 93 1.3 ENDEREÇOS DE REDES ESPECIAIS: ______________________________________ 94 1.4 OUTRAS NOTAÇÔES DE ENDEREÇAMENTO ______________________________ 95 2 SUB-REDES E SUPER-REDES _________________________________________ 96 2.1 EXERCÍCIOS ____________________________________________________________ 98 2.2 Exercícios para Laboratório: ________________________________________________ 98 3 PROTOCOLOS ARP E RARP ___________________________________________ 98 3.1 ARP (Address Resolution Protocol)___________________________________________ 99 3.2 RARP (Reverse Address Resolution Protocol) __________________________________ 99 3.3 A FORMA DA MENSAGEM ARP ou RARP _________________________________ 100 3.4 EXERCÍCIOS: __________________________________________________________ 101 4 PROTOCOLO IP _____________________________________________________ 101 4.1 O FORMATO DE UM DATAGRAMA IP ____________________________________ 102 4.2 FRAGMENTAÇÃO E REMONTAGEM DOS DATAGRAMAS _________________ 106 5 ROTEAMENTO IP ___________________________________________________ 107 5.1 ENVIO DIRETO _________________________________________________________ 107 5.2 ENVIO INDIRETO_______________________________________________________ 110 5.3 ROTEAMENTO IP POR TABELAS ________________________________________ 110 5.4 ROTEAMENTO TIPO "NEXT-HOP"_______________________________________ 110 5.5 ROTA PADRÃO _________________________________________________________ 112 5.6 ROTAS ESPECIFICAS DE HOSTS _________________________________________ 112 5.7 ROTEAMENTO ENVOLVENDO SUB-REDES E SUPER-REDES ______________ 113 5.8 ALGORITMO DE ROTEAMENTO_________________________________________ 115 5.9 EXERCÍCIOS ___________________________________________________________ 116 6 PROTOCOLO ICMP __________________________________________________ 116 6.1 FINALIDADE ___________________________________________________________ 116 6.2 FORMATO DA MENSAGEM ICMP ________________________________________ 116

CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

Embed Size (px)

Citation preview

Page 1: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

89 04/05/01Ulisses Thadeu V Guedes

Redes - Parte III PROTOCOLO TCP/IP_______________________________________ 91

1 ENDEREÇO IP _______________________________________________________ 91

1.1 MÁSCARA DE REDE _____________________________________________________ 92

1.2 ENDEREÇO DE BROADCAST._____________________________________________ 93

1.3 ENDEREÇOS DE REDES ESPECIAIS: ______________________________________ 94

1.4 OUTRAS NOTAÇÔES DE ENDEREÇAMENTO ______________________________ 95

2 SUB-REDES E SUPER-REDES _________________________________________ 96

2.1 EXERCÍCIOS ____________________________________________________________ 98

2.2 Exercícios para Laboratório: ________________________________________________ 98

3 PROTOCOLOS ARP E RARP ___________________________________________ 98

3.1 ARP (Address Resolution Protocol)___________________________________________ 99

3.2 RARP (Reverse Address Resolution Protocol) __________________________________ 99

3.3 A FORMA DA MENSAGEM ARP ou RARP _________________________________ 100

3.4 EXERCÍCIOS: __________________________________________________________ 101

4 PROTOCOLO IP _____________________________________________________ 101

4.1 O FORMATO DE UM DATAGRAMA IP ____________________________________ 102

4.2 FRAGMENTAÇÃO E REMONTAGEM DOS DATAGRAMAS _________________ 106

5 ROTEAMENTO IP ___________________________________________________ 107

5.1 ENVIO DIRETO _________________________________________________________ 107

5.2 ENVIO INDIRETO_______________________________________________________ 110

5.3 ROTEAMENTO IP POR TABELAS ________________________________________ 110

5.4 ROTEAMENTO TIPO "NEXT-HOP"_______________________________________ 110

5.5 ROTA PADRÃO _________________________________________________________ 112

5.6 ROTAS ESPECIFICAS DE HOSTS _________________________________________ 112

5.7 ROTEAMENTO ENVOLVENDO SUB-REDES E SUPER-REDES ______________ 113

5.8 ALGORITMO DE ROTEAMENTO_________________________________________ 115

5.9 EXERCÍCIOS ___________________________________________________________ 116

6 PROTOCOLO ICMP __________________________________________________ 116

6.1 FINALIDADE ___________________________________________________________ 116

6.2 FORMATO DA MENSAGEM ICMP________________________________________ 116

Page 2: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

90 04/05/01Ulisses Thadeu V Guedes

7 PROTOCOLO DE PORTAS ____________________________________________ 118

8 PROTOCOLO UDP ___________________________________________________ 119

8.1 FORMA DAS MENSAGENS UDP __________________________________________ 119

8.2 QUANDO UTILIZAMOS O UDP? __________________________________________ 121

8.3 Exercícios: ______________________________________________________________ 121

9 PROTOCOLO TCP ___________________________________________________ 121

9.1 PROPORCIONANDO A CONFIABILIDADE NO ENVIO E RECEBIMENTO ____ 122

9.2 A IDENTIFICAÇÃO DAS CONEXÕES _____________________________________ 124

9.3 A FORMA DOS SEGMENTOS TCP ________________________________________ 124

9.4 INICIO E TÉRMINO DAS CONEXÕES - "THREE WAY HANDSHAKE" _______ 126

9.5 EXEMPLOS DE SERVIÇOS TCP: _________________________________________ 127

9.6 QUANDO UTILIZAMOS O TCP? __________________________________________ 127

9.7 EXERCÍCIOS: __________________________________________________________ 127

ANEXO: ____________________________________________________________________ 128

TESTE 1:_______________________________________________________________________ 128

TESTE 2:_______________________________________________________________________ 128

TESTE 3:_______________________________________________________________________ 129

TESTE 4:_______________________________________________________________________ 129

TESTE 5:_______________________________________________________________________ 130

TESTE 6:_______________________________________________________________________ 131

TESTE 7:_______________________________________________________________________ 131

TESTE 8:_______________________________________________________________________ 132

CONCLUSÕES DOS TESTES______________________________________________________ 132

Page 3: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

91 04/05/01Ulisses Thadeu V Guedes

Redes - Parte IIIPROTOCOLO TCP/IP

Denominamos de TCP/IP um conjunto de protocolos encontrados em todas as camadas domodelo TCP/IP. Todos, de alguma forma, usam endereços IPs. Mesmo aquelesencontrados na camada de interface (ARP e RARP) associam o endereço físico aoendereço IP.

Neste capítulo veremos alguns detalhes do TCP/IP, seus protocolos e respectivoscabeçalhos e detalhes de funcionamento e configuração de algumas aplicações.

1 ENDEREÇO IP

No protocolo TCP/IP, um nó com ou sem identidade física pode possuir sua identidadelógica IP. Esta identidade é um Número IP ou endereço IP. Este número tem um tamanhode 32 bits e é representado, normalmente, na forma decimal de cada byte separado por um"." (ponto).

Ao receber um datagrama IP o software TCP/IP de um equipamento compara o endereçode destino existente no cabeçalho do protocolo de rede com seu endereço IP. Se oresultado desta operação coincidir com seu endereço IP (ou um conjunto deles associadoàquela máquina), então a máquina de destino é ela mesma. Caso o endereço não coincidaentão o datagrama é descartado.

Um endereço IP é constituído por uma tripla (bits de identificação da classe, identificação darede - netid, identificação do nó lógico daquela rede - hostid). Quando aplicamos a máscara,tratamos o endereço IP como uma dupla (identificação de rede, que envolve os bits daclasse e o netid, e o hostid). Identificamos as classes de endereçamento como mostra afigura:

Assim, no formato decimal byte-a-byte, temos as seguintes faixas de endereçamento:

Page 4: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

92 04/05/01Ulisses Thadeu V Guedes

Classe Início FinalA 0.0.0.0 até 127.255.255.255B 128.0.0.0 até 191.255.255.255.C 192.0.0.0 até 223.255.255.255D 224.0.0.0 até 239.255.255.255E 240.0.0.0 até 255.255.255.255

Algumas faixas de endereçamento e endereços individuais são reservadas paraendereçamento específico. É o caso do endereço 0.0.0.0 que, dependendo do objetivo daimplementação TCP/IP (software de roteamento ou usado por uma estação) representa oendereço de uma máquina gateway ou mesmo um endereço global.

O endereço 255.255.255.255 representa um endereço coringa. Se não fosse pelasrestrições de roteamento, um pacote enviado para este endereço alcançaria TODAS asmáquinas de uma rede, por maior que ela fosse.

Cada rede tem, portanto, um endereço que a identifica, ou endereço de rede, querepresenta a identificação da rede; e um endereço coringa ou endereço de broadcast. querepresenta todos os nós lógicos daquela rede.

Com as classes de rede, temos um pequeno número de redes lógicas que admitem umgrande número de endereços de nós lógicos (redes da Classe A) e um grande número deredes lógicas com um pequeno número de nós lógicos (redes da Classe E).

As classes D e E são muito especiais. São representam endereços lógicas de multicast eexperimentais, respectivamente. Reparem que um endereço IP representa, neste caso, uma"rede" de máquinas.

1.1 MÁSCARA DE REDE

Como se identifica a rede?

Uma vez que o endereçamento IP possui 32 bits isto significa 4Giga-endereços diferentes oque exigiria uma tabela de igual tamanho para ser tratada caso o roteamento fosse porendereço absoluto. Separando em redes as tabelas são reduzidas. Para isto, usamos oendereço de máscara. Operando logicamente (AND) tais máscaras sobre o endereço IPo resultado fornece a identificação da rede. Um exemplo de máscara válida para umarede que contém a maquina de número IP 192.168.45.10 é: máscara = 255.255.255.0 , cujarepresentação binária é:

11111111 11111111 11111111 00000000.

Relembrando, a tabela verdade da função lógica E (AND):

Page 5: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

93 04/05/01Ulisses Thadeu V Guedes

0 AND 0 = 0 0 AND 1 = 0 1 AND 0 = 0 1 AND 1 = 1

Assim, na forma binária, considerando o endereço 192.168.45.10,

11000000 10101000 00101101 00001010 (192.168.45.10) AND11111111 11111111 11111111 00000000 (255.255.255.0) =11000000 10101000 00101101 00000000 (192.168.45.0 ) número IP de identificação

da rede)

ou, na representação decimal:

192.168.45.10 (número IP da máquina) AND255.255.255.0 (máscara) =192.168.45.0 (número IP de identificação da rede)

De forma genérica:

ID da Rede = #IP .AND. #MÁSCARA

1.2 ENDEREÇO DE BROADCAST.

E quanto ao endereço de broadcast?

Como dito anteriormente, o Endereço IP de broadcast é um endereço coringa, ou seja,todas as máquinas de uma mesma rede IP também se reconhecem por este endereço quetem os bits do hostid em 1, e pode ser calculado por:

(end. broadcast) = (ID da rede) + (NOT.máscara)

(NOT) é uma operação lógica e apresenta a seguinte tabela:NOT 1 = 0NOT 0 = 1

Assim, se a máscara é: 11111111 11111111 11111111 00000000

(NOT)11111111 11111111 11111111 00000000 = 00000000 00000000 00000000 11111111

Somando entre este resultado ao endereço da rede temos o endereço de broadcast.

11000000 10101000 00101101 00000000 . (192.168.45.0) +00000000 00000000 00000000 11111111 (0.0.0.255) =11000000 10101000 00101101 11111111 (192.168.45.255) (endereço de broadcast)

Visto a necessidade das máscaras, as classes de rede receberam as máscaraspadronizadas:

Page 6: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

94 04/05/01Ulisses Thadeu V Guedes

Classe Máscara PadrãoA 255.0.0.0B 255.255.0.0C 255.255.255.0D 255.255.255.255E 255.255.255.255

Com isto, a classe A possui 256 redes e cada rede (256*256*256) 16777216 endereços.Tirando o endereço IP da rede e o endereço de broadcast, uma rede classe A permite16777214 nós válidos (teoricamente). Por que teoricamente? Porque o endereço 0.0.0.0 nãofoi desconsiderado. Porque, apesar de válido, a classe A inicia em 0.1.0.0 que também nãofoi desconsiderado.

A Classe B permite 65536 redes e cada rede com este mesmo valor de nós Tirando oendereço de rede e o endereço de broadcast temos 65534 endereços válidos por rede.

A Classe C permite 16777216 redes e cada rede com 256 nós (teóricos). Tirando oendereço de rede e o endereço de broadcast temos 254 endereços válidos por rede.

As Classe D e E representam redes de um único nó lógico. Estas redes não possuemendereço de broadcast.

Assim, podemos generalizar para quaisquer redes oriundas das classes A, B e C as regrasde Identificação de Rede e do endereço de broadcast.

1.3 ENDEREÇOS DE REDES ESPECIAIS:

O IANA (Internet Address Number Authority) selecionou alguns espaços de endereçamentopara fins especiais (RFC1597, RFC1700). Estes espaços de endereçamento atendem àsredes públicas, privativas, multicast e redes lógicas puramente virtuais (rede local - internaao equipamento).

Os espaços de endereçamento de redes públicas são para aquelas interligadas à Internet.Os espaços de endereçamento de redes privadas não devem ser conectadas diretamente àInternet usando tais endereços (elas já existem lá!). As redes lógicas puramente virtuaisfazem parte de todo e qualquer implementação TCP/IP (qualquer equipamento com TCP/IPativo). As redes destinadas à multicast (propagação controlada de serviços dedicados),associam faixas de endereçamento para alguma atividade envolvendo um grupo específicode máquinas. Exemplo: videoconferência (áudio/vídeo). Todas as máquinas que farão parteda aplicação de videoconferência também se identificam com algum endereço do espaço IP224.2.0.0 até 224.2.255.255 (Multimedia Conference Calls).

Os valores das redes privativas são:

Page 7: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

95 04/05/01Ulisses Thadeu V Guedes

CLASSE Blocos de Endereços Faixa de endereçamento

A 10.0.0.0 10.0.0.0 -> 10.255.255.255

B 172.16.0.0 - 172.31.0.0 172.16.0.0 -> 172.16.255.255172.17.0.0 -> 172.17.255.255,

...172.31.0.0 -> 172.31.255.255

C 192.168.0 - 192.168.255.0 192.168.0.0 -> 192.168.0.255,192.168.1.0 -> 192.168.1.255,

...192.168.255.0 -> 192.168.255.255

Rede Interna Classe A 127.0.0.0

Redes Públicas Todas as outras do espaço de endereçamento das Classes A, B e C

Redes de Multicast Compreende os endereços a classe D.

Redes Reservadas Classe E

OBSERVAÇÔES: Estas atribuições de números podem sofrer alterações sem qualqueraviso prévio do IANA. É altamente recomendável manter atualizado sobre as RFCs. A últimamodificação ocorreu em outubro de 1994 (RFC1597 e RFC1700).

1.4 OUTRAS NOTAÇÔES DE ENDEREÇAMENTO

Com o aparecimento de endereçamento genérico (classless addressing [CIDR1, CIDR2]), aparte do número de identificação da rede pode ter qualquer tamanho, e toda a noção declasses de endereços torna-se sem importância.

Há casos especiais para o endereçamento IP que podem ser resumidos usando as recentesnotações de endereçamento IP:

Endereço IP ::= { <Número da Rede>, <Número do Nó> }

ou

Endereço IP ::= { <Número da Rede>, <Número da Subnet>,<Número do Nó> }

Também usarmos a notação "-1" para indicar que o campo contém todos os bits em 1

Seguem alguns casos especiais comuns:

(a) {0, 0}Este nó da rede. Pode ser usado como um endereço de origem.

Page 8: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

96 04/05/01Ulisses Thadeu V Guedes

(b) {0,<Número do Nó>}Nós especificado na mesma rede. Pode ser usado como um endereço de origem.

(c) { -1, -1}Propagação Limitada (Limited broadcast). Pode ser usado como um endereço dedestino, e um datagrama como este endereço nunca pode ser redirecionado pararede externas.

(d) {<Número da Rede>, -1}Broadcast Direcionado para uma rede (todas as máquinas conectadas àquela rede)Pode ser usado como um endereço de destino. D

(e) {<Número da Rede>, <Número da Sub-Rede>, -1}Ídem ao anterior, porém direcionado para a Sub-Rede especificada.

(f) {<Número de Rede>, -1, -1}Broadcast Direcionado a todas as sub-redes naquela rede. Somente pode ser usadocomo um endereço de destino.

(g) {127, <any>}Endereço de Nó de Loopback Interno. Nunca deve aparecer fora do nó.

Exemplos:1) Considerando os padrões de classes, identificar as classes e as redes dos endereçosIPs:a) 120.1.2.3.4b) 199.5.255.4c) 160.255.255.8d) 224.0.0.1e) 150.163.128.16

2) Escreva os endereços acima considerando a notação de classless.

2 SUB-REDES E SUPER-REDES

Como vimos a máscara aplicada em um endereço IP de um nó, identifica a rede lógica queaquele nó pertence. Vimos também a existência de máscaras padrões segundo as classesde rede. O uso de máscaras independe da classe que aquele bloco (ou blocos) pretence(m)

A capacidade de endereçamento IP da Internet pode alcançar seus limites em breve. Isto foiprevisto em 1994, e foi pedido aos integrantes da Internet para adotar técnicas desegmentação de redes. Com o crescimento da grande rede as tabelas de rotas também seampliaram gerando atrasos sensíveis nos sistemas de roteamento. Para contornar estesproblemas adota-se a técnica de segmentação (sub-redes) e fusão de redes contíguaspermitindo as super-redes.

Segmentar logicamente uma rede é dividi-la em novas redes lógicas aplicando máscarasnão convencionais, habilitando bits de menor ordem. Em outras palavras segmentar redes

Page 9: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

97 04/05/01Ulisses Thadeu V Guedes

significa habilitar bits (estado 1 à direita da máscara padrão) e fundir redes em desabilitar osbits (estado 0 - zero - à esquerda da máscara padrão).

Exemplo:1) Segmentar uma rede classe B em 2 sub-redes. Fornecer a nova máscara.

Partindo da máscara padrão para uma rede Classe B:255.255.0.0

Dividindo a rede em 2 sub-redes, ou "deslocamento à direita de 1 bit"

(máscara padrão) 11111111 11111111 00000000 00000000 =255.255.0.0(máscara apóssegmentação)

11111111 11111111 10000000 00000000 = 255.255.128.0

2) Qual o valor da máscara para uma super-rede resultante de 2 redes classe B(contíguas)?Partindo da máscara padrão para uma rede Classe B:255.255.0.0

Unir as 2 redes em 1 super-rede ou "deslocar à esquerda o último bit da máscara"

(máscara padrão) 11111111 11111111 00000000 00000000 =255.255.0.0(máscara apósunião)

11111111 11111110 00000000 00000000 = 255.254.0.0

Cabe lembrar a condição de endereço de identificação da rede e de broadcast não podemser esquecidos quando tratamos de redes que correspondem às classes A, B e C. Isto limitaa segmentação de redes até o bit 2 (inclusive) da máscara. Vamos considerar a máscarapadrão para a classe C.

255.255.255.0

Escrevendo o byte com o valor 0 na forma binária:

7 6 5 4 3 2 1 00 0 0 0 0 0 0 0

Para dividir em dois segmentos, este último byte apresenta-se:

7 6 5 4 3 2 1 01 0 0 0 0 0 0 0

Para 4 segmentos

7 6 5 4 3 2 1 01 1 0 0 0 0 0 0

Para 8 segmentos:

Page 10: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

98 04/05/01Ulisses Thadeu V Guedes

7 6 5 4 3 2 1 01 1 1 0 0 0 0 0

Ou seja, o número de segmentos está associado ao número de bits que estamospreenchendo com valor 1. Assim, é possível deduzir que o número de segmentos (S) e onúmero de bits deslocados (N) estão relacionados, por:

N2S ====

Isto é valido até que seja alcançado o bit 2 do último byte. Partindo da máscara padrão deuma única rede da classe A , N < 23 (4194304 sub-redes com 2 nós); partindo da máscarapadrão de rede classe B, N<15 (16384 sub-redes com 2 nós), e para rede classe C : N<7(64 sub-redes com 2 nós).

7 6 5 4 3 2 1 01 1 1 1 1 1 0 0

2.1 EXERCÍCIOS

3) Fazer o mesmo do exercício 1 para uma rede classe C4) Idem ao 2 para uma rede classe C.5) Identificar a máscara para segmentar uma rede classe C em 4 sub-redes6) Identificar a máscara para criar uma super-rede de 4 redes contíguas da classe C.7) Identificar os novos endereços de rede e broadcast para cada segmento de sub-rede edas super-redes.

2.2 Exercícios para Laboratório:

Considere um conjunto de 4 máquinas que fazem parte de uma rede classe C.

1) Teste a conectividade destas máquinas (use o comando ping)

2) Calcule a máscara necessária para dividir a rede em 2 segmentos. Modifique a máscarade duas das máquinas de modo que cada uma das selecionadas façam parte de uma sub-rede. Avise ao professor destas mudanças para que ele tome outras providencias deconfiguração. Teste a conectividade lógica entre as máquinas de segmentos diferente eentre uma máquina da rede padrão e a do segmento.

Descreva e explique os fatos ocorridos?

3 PROTOCOLOS ARP E RARP

Para explicar os protocolos ARP e RARP formulando duas perguntas:

Page 11: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

99 04/05/01Ulisses Thadeu V Guedes

• Se 2 máquinas compartilham da mesma rede física, como é que uma conhecerá oendereço ethernet da outra se a primeira só conhece o endereço Internet (IP) dasegunda?

• Como uma máquina diskless consegue determinar seu endereço IP?

Para resolver estes problemas foram inseridos no TCP/IP dois protocolos de baixo nível.Estes protocolos estão no limite inferior da camada IP e são conhecidos como ARP e RARP.

3.1 ARP (Address Resolution Protocol)

Uma forma de estabelecer o mapeamento entre endereço IP e endereço físico é o quedenominamos de mapeamento direto. Uma solução é tomar o hostid do endereço IP comoíndice de uma tabela contendo o endereço físico da interface correspondente. Esta tabelaestaria armazenada em memória (permanente ou não) e seria carregada em memória emtempo de boot.

Mas isto tem alguns inconvenientes, pois não é raro a atualização de placas de rede oumesmo o transporte de uma máquina para redes físicas diferentes, exigindo uma soluçãomais dinâmica. Para resolver este problema os projetistas buscaram uma solução bemsimples, que lembra a capacidade de broadcast das redes Ethernet, e que evita problemasde centralização de serviços e manutenção das tabelas de mapeamento. O protocoloprojetado denomina-se ARP (Address Resolution Protocol) e está fundamentado naseguinte idéia:

Quando um Host A quer conhecer o Endereço físico de um Host B cujo endereço Internet(IP) é conhecido, ele (Host A) envia um frame especial para a rede questionando qual oendereço físico Fb do Host de endereço IPb. Todos os hostes receberão o pacote, massomente o próprio Host de endereço IPb responderá à solicitação com seu endereçoEthernet. A partir de então, o host A poderá enviar pacotes diretamente para o host Busando o endereço físico informado.

Desta idéia elementar, surgiram otimizações:

- Ao enviar um pacote para o host de destino em frames de broadcast, o transmissor jáenvia as informações sobre si mesmo, prevendo a continuidade da comunicação,evitando a solicitação em sentido contrário.

- Todas as respostas são armazenadas em memória. Assim, antes de enviar um novoframe ARP, o host verifica o IP do destinatário em suas tabelas. O pacote com frame debroadcast só será enviado caso não encontre qualquer referencia ou associação entreendereço IP e endereço ethernet.

3.2 RARP (Reverse Address Resolution Protocol)

Page 12: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

100 04/05/01Ulisses Thadeu V Guedes

A resposta da segunda pergunta está no uso de máquinas que prestam serviço de RARP. Aidéia é a mesma do ARP, ou seja, por broadcast. Uma estação diskless (sem disco) enviapara o meio físico um frame tipo broadcast solicitando seu IP. Todas as máquinas quecompartilham daquela rede física recebem o frame. Apenas as que prestam serviço RARPresponderão a solicitação. A resposta estará em função do endereço ethernet informado. Háserviços alternativos ao RARP, conhecidos como BOOTP e DHCP.

3.3 A FORMA DA MENSAGEM ARP ou RARP

Uma mensagem ARP tem a forma apresentada pela figura abaixo. Os números indicam aordem do campo no frame e não a identificação do bit do campo.

Onde

HARDWARE TYPE Especifica o tipo da interface de onde se busca a informação.Para interface Ethernet o valor é 1.

PROTOCOL TYPE é o tipo de endereço do protocolo de maior nível. O valor é080016 para o protocolo IP.

HLEN é o tamanho do endereço de hardware (físico)

PLEN É o tamanho do endereço IP. Com estes dois campos HLEN ePLEN, é possível coletar informações de qualquer tipo de rede.

OPERATION Define o tipo de operação:1 - Requisição ARP,2 - Resposta ARP,3 - Solicitação RARP,4- Resposta RARP.

SENDER HA É o endereço de hardware do solicitante

SENDER IP É o endereço IP do solicitante

Page 13: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

101 04/05/01Ulisses Thadeu V Guedes

TARGET HA É o endereço de hardware da máquina de destino (RARP)

TARGET IP É o endereço IP da máquina de destino (RARP).

Quando o frame (quadro) chega ao destino, esta máquina lê a informação dos camposcorrespondentes ao emissor e retorna o pacote com suas informações.

3.4 EXERCÍCIOS:

1) Ao ligar o seu equipamento, verifique a tabela de endereços físicos através do comando" arp -a" (sem as aspas).

2) Selecione uma outra máquina da mesma rede física e repita o comando. Agora, de umadestas máquinas mande um pacote ICMP (PING) para a outra máquina. Verifique astabelas de ARP das duas máquinas.

3) Pesquise as RFCs que comentam sobre o ARP e RARP.

4 PROTOCOLO IP

O protocolo IP é um mecanismo utilizado para o envio de datagramas. Este mecanismoapresenta as seguintes características:

• É não confiável (não há garantias de recebimento). Um pacote pode serpedido, se atrasar, ser enviado fora de ordem, sem que exista uma forma dedetectar este tipo de condição nesta camada.

• É não orientado à conexão, pois cada datagrama é tratado de formaindependente um do outro;

• É dito "best-effort delivery" porque o software se esforça no envio dodatagrama, ou seja, somente descartará o datagrama após tentar todos osrecursos possíveis.

O protocolo IP proporciona 3 definições importantes:

• A unidade de transferencia de dados, os datagramas, tem uma forma exata.• Realiza a função de roteamento• Informa, de alguma forma, como os nós (hosts e roteadores) devem tratar o

datagrama, quando as mensagens de erro devem ser geradas, e em quaiscondições um datagrama deve ser descartado.

Page 14: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

102 04/05/01Ulisses Thadeu V Guedes

4.1 O FORMATO DE UM DATAGRAMA IP

Considerando a ordem de envio dos bits, o formato do datagrama IP é:

onde:

VER versão do protocolo IP. Este campo de 4 bits tem o valor=4 (IPv4)

HLEN Tamanho do cabeçalho em palavras de 32 bits. Omenor valor é 5 (sem opções IP ou padding)

SERVICE TYPE Ou TOS (Type of Service), é um campo de 8 bitscomposto por:

0 1 2 3 4 5 6 7

PREFER D T R SEM USO

PREFER - Especifica a preferencia/prioridade dodatagrama sobre outros. Admite os seguintes valores:

111 - Network Control (Controle de rede local)110 - Controle de Internetwork101 - CRITIC/ECP (É um datagrama Crítico)100 - Flash Override (mais rápido apagando o pacote

anterior)011 - Flash (mais rápido)010 - Imediato001 - Alguma Prioridade000 - Rotina (Normal)

Page 15: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

103 04/05/01Ulisses Thadeu V Guedes

Esta preferencia deve ser tratada adequadamente. Ocontrole destas preferencias deve ser feito localmente.

D: 0 = Normal , 1 = Reduzir o atraso.T: 0 = Throughput Normal, 1 = Alto Throughput.R: 0 = Confiabilidade Normal , 1 = Alta Confiabilidade.Bit 6-7: Reservado para uso futuro (não informado).

Selecionar os BITS D,R e T não significa melhorar odesempenho geral daquela rede. Em alguns casos,selecionar um deles implica na deterioração de outrorecurso.

TOTAL LENGTH É o tamanho daquele datagrama, incluindo os dados.(não se trata do tamanho de um datagrama original,caso tenha sido fragmentado)

IDENTIFICATION É uma identificação do datagrama. No caso de umafragmentação do datagrama, esta ID é COPIADA paracada fragmento

FLAGS É um conjunto de flags de fragmentação:

BIT 0 1 2

VALOR 0 DF MF

O bit 0 é sempre 0. É reservado.DF = 0, datagrama pode ser fragmentado,

= 1, o datagrama não pode ser fragmentadoMF =0, sinaliza que este datagrama é o último de uma

fragmentação;=1, sinaliza que há mais fragmentos em relaçãoao datagrama original.

FRAGMENT OFFSET é medido em unidades de 8 octetos (64 bits). O primeirofragmento tem offset=0. Representa a posição doprimeiro octeto de dados no pacote de referencia(original). Exemplo: Tamanho de dados de umdatagrama é 1500 e seja necessário atravessar umarede com MTU de 700. Primeiro fragmento contém 700(OFFSET = zero), o segundo contém os próximos 700(OFFSET = 700) e o último contém 100 (OFFSET =1400)

TIME TO LIVE Este campo indica o tempo máximo de vida dodatagrama tem para permanecer no sistema. Se contémum valor zero, então o datagrama deve ser destruído e

Page 16: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

104 04/05/01Ulisses Thadeu V Guedes

deve ser enviado para a origem do datagrama umamensagem de erro . Este campo tem seu valor reduzidode pelo menos 1 unidade todas as vezes que forprocessado, mesmo que o tempo de processamento deroteamento seja inferior a 1 segundo. O TTL é um limitesuperior de tempo de vida de um datagrama. O objetivoé descartar o datagrama no caso dele não conseguir serenviado para o destino.

PROTOCOL Especifica o tipo do protocolo que contém os dados,conforme os valores definidos em RFC1700 ou maisatual (Assigned Numbers)

HEADER CHECKSUM Considerando este valor inicialmente zero, tratando ocabeçalho como uma seqüência de 16 bits. Ver RFCs1071, 1624 e 1141

SOURCE IP ADDRESS Endereço IP de origem

DESTINATION IP ADDRESS Endereço IP de destino

IP OPTIONS O campo IP OPTIONS tem um tamanho variável edepende das opções selecionadas. Algumas opçõestem um tamanho de 1 octeto enquanto outras tem umtamanho variável. Quando as OPÇÕES IP estãopresentes no datagrama, elas aparecem de formacontínua, sem qualquer separador entre elas. Cadaopção consiste de um simples octeto que pode serseguido por um ou mais octetos de dados daquelaopção. O octeto de código de opções é dividido em 3campos:

BIT 0 1 2 3 4 5 6 7

CAMPO CP CLASSE NÚMERO OPÇÃO

CP É um flag que controla como os roteadorestratarão as opções durante a fragmentação. seCP =1 então o a opção deve ser copiada emtodos os fragmentos, Se 0 (zero), então a opçãoé copiada somente para o primeiro fragmento.

CLASSEDE

OPÇÃON.º daOpção

N.º deoctetos Descrição

Page 17: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

105 04/05/01Ulisses Thadeu V Guedes

0 0 -

Fim da lista de opções.Usado se as "opções"não terminarem nofinal do cabeçalho (VerPADDING)

0 1 -

Sem operação (usadopara alinhamento dosoctetos numa lista deopções).

0 2 11

Restrições desegurança etratamento (paraaplicações militares)

0 3 variável

Roteamento livre.Usado para rotear umdatagrama através deum caminhoespecífico.Neste caso, a rotafornecida deve serseguida, mas podeacontecer de existiralguns roteadoresintermediários que nãoconstam na lista.

0 7 variável Registro de rota.Usado para traçar rota.

0 8 4(Obsoleto) Era usadoem redes SATNETcomo um identificador.

0 9 variável

Roteamento forçado.Usado para rotear umdatagrama através deum caminhoespecificado. Nestecaso, o roteamentodeve seguir a lista derotas com rigor.

2 4 variável

Internet Timestamp.Usado para registraros tempos dosroteamentos

Um exemplo de campo de Opções:ROTEAMENTORegistro de rota livre - Cada roteador deve inserir seu IPna lista, após verificar se existe campo livre para isto,através dos campos de comprimento e do apontador.

Page 18: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

106 04/05/01Ulisses Thadeu V Guedes

Estas e outras opções podem ser encontradas comdetalhes nas RFCs 760 e 791

PADDING O campo PADDING é preenchido com ZEROS atécompletar os 32 bits quando o campo IP OPTIONSapresentar um tamanho inferior.

DATA O campo DATA possui o pacote do protocolo detransporte usado (UDP, TCP, ICMP, etc)

Os campos IP OTIONS e PADDING não são necessários em todos os datagramas IP.

4.2 FRAGMENTAÇÃO E REMONTAGEM DOS DATAGRAMAS

O tamanho de um datagrama depende da tecnologia empregada no meio físico. Uma redeEthernet, por exemplo, limita o tamanho dos dados de um frame em 1500 octetos. Quandousando com um cabeçalho SNAP o padrão é 1492 octetos. Uma rede FDDI permite 4470octetos de dados por frame. Estes limites são denominamos de MTU (Maximum TransferUnit). Ao atravessar redes físicas diferentes com MTUs diferentes, o datagrama deve serdivido em partes ou fragmentos. O processo de dividir o datagrama é conhecido porFRAGMENTAÇÂO.

Page 19: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

107 04/05/01Ulisses Thadeu V Guedes

Uma vez que um datagrama foi fragmentado, os fragmentos continuarão isoladamente até odestino e será remontado lá (só no destino!)

Na fragmentação, cada parte receberá um cabeçalho próprio, podendo conter campos docabeçalho original e acrescido de informações que permitirão a sua remontagem. Estasinformações consistem dos campos IDENTIFICATION, FRAGMENT OFFSET, e FLAGSbem definidos. Caso o flag de "não fragmentar" estiver definido (DF=1) e for necessário umafragmentação, o datagrama é descartado e o remetente receberá uma mensagem de erro(normalmente via ICMP).

5 ROTEAMENTO IP

Denominamos de ROTEAMENTO o mecanismo de escolha de um caminho usado paraenviar pacotes. Roteador é um equipamento com capacidade de realizar esta função. Umamáquina pode ser um roteador. Encontramos, também roteadores dedicados.

Como vimos, o datagrama IP contém em seu cabeçalho, dentre outras informações, oendereço IP de destino. Vimos, também, que um endereço IP pode ser desmembrado emum endereço de rede e endereço do nó naquela rede através da uma operação lógicaenvolvendo uma máscara. Vimos, ainda, que o cabeçalho de um frame encontramos osendereços físicos de um nó.

O Roteamento IP é, portanto, o mecanismo utilizado para transferir datagramas IP entreinterfaces após uma análise dos cabeçalhos destes datagramas selecionando um melhorcaminho (sob algum aspecto). A implementação de roteamento se localiza na camada derede.

Sob este ponto de vista, qualquer máquina conectada à rede física estabelece algum tipo deroteamento. Vejamos o por quê!

5.1 ENVIO DIRETO

Para definir Envio Direto, Comer (1995, Vol.1, página 111) resume:

Transmission of an IP datagram between two machines on a single physicalnetwork does not involve routers. The sender encapsulates the datagram ina physical frame, binds the destination IP address to a physical hardwareaddress, and sends the resulting frame directly to the destination.

Ou seja,

A transmissão de um datagrama IP entre 2 máquinas em uma única rede física não envolveroteadores. A máquina responsável pelo envio, encapsula o datagrama num frame físico,acopla o endereço IP de destino ao endereço físico do hardware, e envia o frame resultantediretamente para o destino.

Page 20: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

108 04/05/01Ulisses Thadeu V Guedes

Apesar de não ser um especialista de expressão como o Dr. Comer, que certamenteexplicaria esta afirmação de melhor modo que será apresentada aqui, gostaria de teceralguns comentários sobre esta afirmação. Isto não é uma crítica! É apenas um ponto devista.

A afirmação do Dr. Comer é válida desde que naquela rede física exista apenas uma redelógica IP e que o envio use recursos diretos da camada de interface. Vejamos o porquê. Agrande maioria das máquinas com TCP/IP implementam algum algoritmo de roteamentobaseado na rede de destino. O princípio básico do roteamento, neste caso, consiste naanálise do endereço IP de destino (parcela de rede de destino) em relação ao endereço IPde origem (parcela de rede da origem). Caso estas partes resultem em valores diferentes, odatagrama IP deve ser enviado para um roteador. Assim, de uma forma genérica (qualquertipo de roteamento) não basta só o compartilhamento da mesma rede física. É preciso umacondição mais ampla e a afirmação deve ser interpretada na forma:

A transmissão de um datagrama IP entre 2 máquinas em uma única rede (física + lógica IP)não envolve roteadores. A máquina responsável pelo envio, encapsula o datagrama numframe físico, acopla o endereço IP de destino ao endereço físico do hardware, e envia oframe resultante diretamente para o destino.

OBS: Uma aplicação que trabalha com acesso direto para envio em baixo nível (frame)estabelece um "by-pass" da pilha IP. Desta forma, a possibilidade de envio diretotorna-se possível, mesmo em redes lógicas diferentes. As aplicações "normais" nãosão capazes disto pois estariam fazendo um by-pass na camada de rede etransporte.

O protocolo ARP carrega os endereços físicos que pertencem à mesma rede física. Aquestão não está na montagem do frame, mas antes da montagem do datagrama IP para oenvio. Assim, dispensar roteadores em redes lógicas diferentes em uma mesma rede físicarequer "truques" de máscara na inicialização de um sistema. Este "truque" era possível emsistemas mais antigos baseados no BSD4.2. O "truque" consiste na modificação da máscarade rede, em tempo de inicialização do sistema, para um valor tal que as duas redes lógicasdiferentes possam ser consideradas uma única rede lógica, e depois, retornar a máscarapara os valores "nominais" (padrão). Exemplo: Sejam as redes A e B com da classe C,192.168.254.0 e 192.168.128.0. Em condições normais as máquinas de uma rede não sãocapazes de enviar um datagrama IP diretamente para máquinas de outra rede. Porém,modificando a máscara padrão para 255.255.0.0 temporariamente, isto torna possível, poisestas duas redes teriam o mesmo IP de identificação de rede (em caso de dúvida rever item2)

Uma outra forma, bem mais simples, é explorar a capacidade de roteamento encontrado noTCP/IP, definindo a segunda rede lógica na Tabela de Roteamento. Neste caso todas asmáquinas usam a capacidade de roteamento (tabelas), embora não possam agir como umroteador.

Foi realizado alguns testes de envio direto. O teste consiste em estabelecer a conexão entremáquinas de redes lógicas diferentes que compartilham da mesma rede física em uso eroteadores externos.

Page 21: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

109 04/05/01Ulisses Thadeu V Guedes

Foram usadas máquinas com hardware semelhantes, compatível com o IBM-PC,executando Windows NT Server 4, Windows NT Workstation 4 (os dois com ServicePack6a), e Linux (Kernel 2.2.13, distribuição RedHat). Todas as máquinas executavam somenteo protocolo de rede TCP/IP. Um mesmo teste foi repetido para as várias combinações deSistemas Operacionais. As condições de configuração para os testes estão resumidas noanexo deste capítulo.

CONCLUSÕES DOS TESTES

1. O ARP não é usado para decisões de roteamento2. O "envio direto" está sujeito ao procedimento que implementa algum roteamento

interno.

O envio direto, literalmente, só existe na conexão lógica entre as máquinas quando oroteamento interno contém informação adequada da tabela de rotas, quer seja por rotadefault ou de rede específica.

No envio de um datagrama IP, o roteamento USA a tabela de ARP para a criação do frame,embora isto só ocorra depois de um roteamento interno. No recebimento, a interfacereconhece o endereço MAC mas não é capaz de entregar o datagrama IP para a camada derede.

O envio direto sem roteadores (qualquer tipo) não é aplicável em condições normais (semuso de rotas) ou seja, somente considerando a rede física.

O roteamento IP interno existe e é o responsável pelo funcionamento adequado do TCP/IPno envio e recebimento de datagramas IP. Sem ele, o envio direto é impossível, exceto emaplicações especiais que pulam o roteamento IP.

Portanto, se EXISTE roteamento interno então existe roteador interno e é usado tanto norecebimento quanto no envio de um datagrama IP (Os detalhes de como isto éimplementado será discutido em CAP312), ou seja, qualquer máquina com TCP/IP contémalgoritmos de roteamento e agem como um roteador interno.

PROPOSTAS:

1) Isto é válido para outras implementações do TCP/IP (outros sistemas operacionais),tipo SunOS, OpenVMS com pilhas TCP/IP UCX e Multinet, AIX, HP-UX?

2) Uma aplicação para o "envio realmente direto", pulando o roteamento teria sucesso?

Page 22: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

110 04/05/01Ulisses Thadeu V Guedes

5.2 ENVIO INDIRETO

O envio indireto resume no fato de exigir a identificação de um roteador para onde odatagrama deverá ser enviado. O roteador, então, redirecionará aquele datagrama para arede de destino. Neste caso, como um roteador saberá para onde enviar o datagrama?

5.3 ROTEAMENTO IP POR TABELAS

Também conhecida como Tabela de Roteamento Internet, este tipo de roteamento consistena busca da rede de destino em tabelas de rotas, e está presente em hosts e emcomputadores "normais". Estas tabelas consistem de um número de rotas de, no mínimo,equivalente ao número de redes lógicas conectadas ao roteador. A tabela não armazena"todas as rotas possíveis" (host por host), apenas a parcela de identificação da rededo endereço IP dos nós daquele segmento lógico e as máscaras correspondentes, ouseja (rede por rede).

Surge, daí, uma nova questão: Como as tabelas são criadas ou mantidas?

A tabela de rotas é mantida manualmente (rota estática) ou através de protocolos especiais:RIP (Routing Information Protocol), BGP (Border Gateway Protocol), GGP (Gateway-To-Gateway Protocol), EGP (Exterior Gateway Protocol), OSPF (Open Shortest Path First); oumesmo através de protocolo mais simples: ICMP (Internet Control Message Protocol). Cadaum desses protocolos são específicos para certas situações. Não vamos entrar em detalhesde cada um destes protocolos. Estudaremos técnicas que permitirão analisar asespecificações deles e casos de roteamento, cuja solução pode ser o uso de um ou umconjunto destes protocolos.

No envio direto fizemos uma observação sobre o uso de tabelas quando temos duas (oumais) redes lógicas numa mesma rede física. Conforme a afirmação do Dr. Comer, e oscomentários seguintes, o envio direto torna-se possível sem uso de roteadores externos,mas com o uso da capacidade de roteamento embutida no TCP/IP em cada máquina,alimentando a tabela de rotas manualmente e usando o endereço IP da interface existentecomo gateway. Neste caso não estamos usando "roteadores externos", mas estamosusando o sistema de roteamento interno. Eis um relatório deste teste.

5.4 ROTEAMENTO TIPO "NEXT-HOP"

A idéia consiste em enviar o datagrama para o roteadores conectados diretamente naquelarede.

Page 23: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

111 04/05/01Ulisses Thadeu V Guedes

O roteador R1 trabalha com as seguintes informações:

Para alcançar nósna rede

Enviar o datagrama paraeste endereço

192.168.30.0 Enviar direto192.168.50.0 Enviar direto

192.168.127.0 192.168.30.91192.168.160.0 192.168.50.200

Ou seja, decidir caminhos usando somente a identificação da rede reduz o tamanho dastabelas e traz algumas conseqüências:

1. Todo o tráfego destinado para uma dada rede usa o mesmo caminho. Num casoonde existe um segundo caminho, eles não podem ser usados concorrentemente,mesmo que existam atrasos ou diferenças de velocidade do meio físico entre taiscaminhos.

2. Somente o roteador final é capaz de enviar o datagrama diretamente para o host dedestino e verificar se o host está operacional ou não. Neste caso, este roteador devepossuir mecanismos para avisar a origem do datagrama sobre eventuais problemasde conexão (se host de destino não existe ou não está operacional). Como veremos,este mecanismo pode ser estabelecido pelo protocolo ICMP.

3. Na presença de mais de uma rota, e neste caso elas não podem ser concorrentes,podemos ter caminhos diferentes para um datagrama enviado por um host A paraum B e um datagrama enviado do host B para o host A. Assim, os roteadores devemgarantir a comunicação nos dois sentidos. Olhando para a figura anterior, podemosquestionar: Como fica a tabela dos roteadores R2 e R3? As máquinas das redes192.168.160.0 e 192.168.127.0 apontam para onde?

Page 24: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

112 04/05/01Ulisses Thadeu V Guedes

5.5 ROTA PADRÃO

A idéia é ter um software de roteamento que, primeiro, procure a rede de destino na tabelade rotas. Caso não a encontre, as rotinas de roteamento enviam o datagrama para umaporta do roteador padrão.

Este roteador agirá da mesma forma. Ele buscará em suas tabelas de rotas a rede dedestino. Caso não encontre o datagrama IP é enviado para o roteador posterior (ou o seuroteador padrão). Isto vai acontecer até que ou o datagrama alcance o seu destino ou sejadescartado por algum roteador intermediário. Antes de descartar o datagrama este roteadorenviará à origem do datagrama um "recado" dizendo que aquela rede ou nó não foialcançado.

Tal rota pode ser aprendida (propagada) através de protocolos tidos como protocolos deroteamento (RIP, RIP2, OSPF, BGP, etc).

5.6 ROTAS ESPECIFICAS DE HOSTS

O uso de rotas baseando "por nó" dá um maior controle administrativo sobre o uso da rede,mas aumenta o tamanho das tabelas. Há alguns casos que este tipo de roteamento torna-seabsolutamente necessário. É quando uma máquina (H1) estabelece o roteamento entre arede física contínua e uma segunda máquina.

Neste caso, a tabela de R1 será :

Page 25: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

113 04/05/01Ulisses Thadeu V Guedes

Para alcançar hosts na rede Enviar o datagrama para este endereço192.168.30.0 Enviar direto (interf. 192.168.30.140)192.168.50.0 Enviar direto (interf. 192.168.50.87)192.168.127.0 192.168.30.91192.168.160.0 192.168.50.200192.168.50.21 192.168.50.10

5.7 ROTEAMENTO ENVOLVENDO SUB-REDES E SUPER-REDES

Até então, neste estudo de roteamento IP, consideramos as redes seguindo as respectivasclasses (A, B, C). Contudo, ao considerar o roteamento entre sub-redes e super-redes, asinformações constantes da tabela acima não são suficientes. A informação que falta é,justamente, a máscara da rede. No caso de um roteamento para um Host especifico,usamos a máscara de host (255.255.255.255).

A tabela de rotas deve ser escrita, na forma:

Para alcançarhosts na rede

Net-IPdMáscara de Rede

NETMASKEnviar o datagramapara este endereço

(hop)192.168.30.0 255.255.255.0 Enviar direto192.168.50.0 255.255.255.0 Enviar direto192.168.127.0 255.255.255.0 192.168.30.91192.168.160.0 255.255.255.0 192.168.50.200192.168.50.21 255.255.255.255 192.168.50.10192.168.75.0 255.255.255.128 Enviar direto

192.168.75.128 255.255.255.128 Enviar direto

Page 26: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

114 04/05/01Ulisses Thadeu V Guedes

Para o roteamento é OBSERVADO o endereço IP do destino. Vamos entender esteOBSERVADO. Digamos que uma máquina da rede 192.168.50.22 (M-50-22) queira enviarum datagrama IP para a máquina 192.168.127.10 (M-127-10). Vamos viajar com estepacote para entendermos como isto "funciona". A tabela acima é propagada de algumaforma (protocolo RIP, por exemplo) para todas as redes diretamente conectadas à R-1. Amáquina M-50-22 faz parte da rede 192.168.50, que recebe esta informação e armazena emsua memória. Agora ela quer enviar um pacote para M-127-10. Ao consultar a tabela, elareconhece que o datagrama IP deve seguir para o roteador R-1. Imaginemos o seguintediálogo de laboratório:

Qual endereço IP de destino ela vai inserir no datagrama IP?

É o endereço de destino do pacote! De M-127-10 (192.168.127.10).

Como ela enviará para o destino se ela não sabe onde isto fica?

Uma das formas, sem ajuda de outros protocolos, é o envio do pacote para a rede(lembram do ARP?) com endereço de broadcast num frame (que carregará aqueledatagrama). Ou seja TODAS as máquinas vão ler o frame.

Uma oura forma é questionar "quem tem o endereço ethernet de M-127-10?"

Neste caso a resposta não será atendida pois a máquina M-127-10 está muito além dosroteador R-1. Mas R-1 tem uma interface na mesma rede física de M-50-22. Ele tambémrecebe o datagrama IP encapsulado num frame com endereço ethernet de destino contendoum valor de broadcast. Ele, R-1, não sabe interpretar o Ethernet, mas sim o IP. Então, R-1,leva o pacote para a camada IP e identifica o destino (M-127-10).

Será que ele, R-1, possui informações sobre a rede 192.168.127.0?

Ele consulta sua tabela e lá está ela. No caso no terceiro registro.

Para onde ele deve enviar?

Pela tabela ele obtém o endereço 192.168.30.91.

E R-1 pergunta: " Eu, R-1, tenho a rota para 192.168.30.91?".

O software de roteamento responde: "Para a máquina não, mas para a rede 192.168.30.0sim! Pela tabela, basta enviar aquele datagrama diretamente para a interfacecorrespondente à rede 192.168.30.0". Caso ele saiba o endereço Ethernet da máquina192.168.30.91 então está resolvido! Basta inserir o datagrama IP, que veio de M-50-22, numframe contendo o endereço ethernet de destino de 192.168.30.91 e enviar para a rede física(Envio direto).

E se R-1 não sabe?

Ele pergunta: "Quem tem o endereço de ..." e aí ele fica sabendo (via ARP, lembram?192.168.30.91 está na mesma rede física que uma de suas interfaces). Este frame viaja

Page 27: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

115 04/05/01Ulisses Thadeu V Guedes

para 192.168.30.91 e lá, em R-2, repete-se o procedimento (perguntas). Só que, agora, R-2tem uma interface conectada diretamente à rede 192.168.127 e a máquina de destino, cujoendereço consta no datagrama IP, faz parte de uma das redes físicas onde R-2 estáconectado. Então, numa rede, o ARP de broadcast estará presente enquanto as máquinasque estabelecem uma comunicação não conhecerem TODOS os endereços (IP e MAC) daoutra.

O que? Isto gera tráfego demais, não?

Sim! Gera! Mas reparem que é só para o primeiro datagrama IP. Até ele chegar ao destinopela "primeira vez". Quando houver uma resposta daquele datagrama ou seguir uma novasolicitação nenhuma pergunta será feita, pois são conhecidos os endereços (MAC e IP) dosroteadores e máquinas vizinhas usadas no envio e recebimento dos datagramas.

Tudo isto pode ser observado quando usamos aplicações tipo TCPDUMP. Então? Gostaramda viagem? Mais uma perguntinha para não ficar, assim, no "vazio"!!!!

E como é o procedimento de busca das rotas no roteamento?

5.8 ALGORITMO DE ROTEAMENTO

Considerando tudo o que já foi visto até então, o algoritmo de roteamento IP é:

ROTEAMENTOIP(DATAGRAMA, TABELA_DE_ROTAS)

1. EXTRAIR O ENDEREÇO IP DO DESTINATÁRIO, IPD, DO DATAGRAMA.2. CALCULAR O NETID CORRESPONDENTE, NET-IPD USANDO MÁSCARA PADRÃO.3. SE NET-IPD É IDENTICO AO ENDEREÇO DE ALGUMA REDE CONECTADA

DIRETAMENTE AO ROTEADOR ENTÃO ENVIAR O DATAGRAMA PARA AQUELAREDE (ISTO REPRESENTA TRADUZIR O ENDEREÇO IP PARA O ENDEREÇO FÍSICO,ENCAPSULAR O DATAGRAMA NO FRAME E ENVIAR O FRAME)

4. SE A TABELA CONTÉM UMA ROTA ESPECIFICA PARA IPD ENTÃO ENVIAR ODATAGRAMA PARA O ENDEREÇO IP ESPECIFICADO NA TABELA

5. PARA CADA ENTRADA NA TABELA DE ROTAS FAÇA:I. CALCULAR, IPDM,FUNÇÃO LÓGICA AND ENTRE O IPD E A NETMASKII. SE IPDM É IGUAL AO CAMPO NET-IPD DA TABELA ENTÃO ENVIAR O

DATAGRAMA PARA O IP ESPEFICIADO (OU DIRETAMENTE PARA A REDE)6. SE NÃO FOR ENCONTRADO NENHUMA ROTA ENVIAR PARA A ROTEADOR PADRÃO

(ROTA DEFAULT)7. NÃO EXISTINDO ROTA DEFAULT DECLARAR ERRO DE ROTEAMENTO.

Leituras recomendadas: RFC1009, RFC1102, RFC1104, RFC1124 e RFC1716.

Page 28: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

116 04/05/01Ulisses Thadeu V Guedes

5.9 EXERCÍCIOS

1) Veja as rotas na tabela de seu computador usando o comando "route" (Unix). NoWindows, comande "route print" para ver a tabela de rotas.

2) Faça um teste de roteamento envolvendo duas redes lógicas diferentes compartilhandouma mesma rede física.

6 PROTOCOLO ICMP

Será que tudo está funcionando bem? Nenhum sistema funciona bem todo o tempo.Acontecem falhas de processamento, falhas nas linhas de comunicação, tráfego excessivo.etc.

6.1 FINALIDADE

O ICMP (Internet Control Message Protocol) é um mecanismo de reportagem de erro queacontece entre uma máquina (nó ou roteador) e o nó de origem que tomará alguma açãocorretiva.

O ICMP não é considerado um protocolo de transporte, embora use o IP para alcançar umdestino (o ICMP está encapsulado no IP), atravessando várias redes físicas. Conformeveremos, ele não apresenta um protocolo de portas, mas se tratarmos os campos TIPO +CÓDIGO como uma "espécie de protocolo de porta" (porta de destino) poderíamosconsiderá-lo como um protocolo de transporte realizando sua finalidade de suporte aoprotocolo IP. O ICMP é necessário para que o IP funcione corretamente.

6.2 FORMATO DA MENSAGEM ICMP

O cabeçalho ICMP tem um formato específico para cada tipo de mensagem. Contudo, todocabeçalho tem os 3 primeiros campos com o mesmo tamanho em bits. Os valores dos doisprimeiros campos definem o objetivo da mensagem ICMP.

Page 29: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

117 04/05/01Ulisses Thadeu V Guedes

CAMPO TIPO:

Este campo define o objetivo da mensagem e o formato dos campos: "campo 1", "campo 2"e "campo 3".

As RFCs 1122 (atualização) e 792 descrevem, em detalhes, os campos para cada um dostipos citados. Os diagramas e as descrições serão revistas em detalhes no curso deprogramação (CAP312).

Caramba! Este protocolo é do tipo "macabro"! Só leva/traz noticias ruins! (:(((

Não! Nem tudo é terror (quando bem usado, evidentemente!). Através do ICMP é possívelatualizar rotas e reconhecer o caminho feito por um datagrama IP até o destino final. Veja atabela:

VALOR DOCAMPO

TIPOOBJETIVO DAMENSAGEM

VALOR DO CAMPOCÓDIGO

0 Replicar Eco 0

3 Destino Não Alcançável

0 Rede Não Alcançável1 Nó Não Alcançável2 Protocolo Não Alcançável3 Porta Não Alcançável4 É necessário Fragmentação e DF=15 Falha na Rota de origem6 Rede de Destino Desconhecida7 Nó de Destino Desconhecido8 Rota de Origem Isolada9 Comunicação com a rede de destino está

proibida administrativamente10 Comunicação com o nó de destino está

proibida administrativamente11 Rede Não Alcançável para o TOS

informado12 Nó Não Alcançável para o TOS informado

4 Source Quench 0 (Ver RFC 896 e 1016)

5 Redirecionamento(mudança de rota)

0 Redirecionar Datagrama por Rede(obsoleto)

1 Redirecionar Datagrama por Nó2 Redirecionar Datagrama por TOS e Rede3 Redirecionar Datagrama por TOS e Nó

8 Requisitar Eco 0

11 Tempo do DatagramaExcedeu

0 Contador TTL excedido1 Tempo de remontagem de fragmento

Page 30: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

118 04/05/01Ulisses Thadeu V Guedes

excedido

12 Problema de Parâmetrosno Datagrama

0 O Apontador mostra o problema docabeçalho IP

1 Problema desconhecido com o CabeçalhoIP

13 Requisita Timestamp 0 (RFCs: 956, 967 e 1305)14 Resposta de Timestamp 0

15 Requisita Informação(obsoleto)

16 Resposta de Informação(obsoleto)

17 Requisitar Endereço deMáscara usada 0 ( RFC 950)

18 Resposta da requisição doendereço de máscara 0

7 PROTOCOLO DE PORTAS

Quando pressionamos o botão do mouse sobre um ícone numa janela, ou mesmoacionamos um programa digitando seu nome, é como se estivéssemos estabelecendo umcanal de comunicação entre o computador e o operador. No caso de um ícone, por exemplo,não é óbvio a identificação do programa (nome do aplicativo) que será executado, mas afinalidade sim. (O objetivo é este!)

Temos a impressão de que o ícone da aplicação está ali esperando para ser acionado,como uma porta para aquela aplicação.

Em termos de protocolo de transporte TCP/IP, estamos associando "atividades" às portas deserviços, ou seja, estamos usando portas para identificar "um conjunto de atividades" nummesmo protocolo de transporte. Denominamos esta abstração de protocolo de portas.

Da mesma forma que em um sistema "janelado" quando abrimos uma aplicação tipo "linhade comando" ela fica aguardando a entrada das instruções pelo teclado, as aplicaçõesTCP/IP, com recursos disponíveis pelo Sistema Operacional, implementam o aceso àsportas de forma síncrona. Ou seja , o S.O. bloqueia a execução daquela aplicação até queos pacotes cheguem. Normalmente as portas representam filas ou regiões temporárias dememória (buffers), porém os dados serão perdidos caso cheguem antes que um processoesteja pronto para recebe-los. Para reter tais pacotes, o software envia aqueles dados parauma porta específica (associada àquela uma aplicação) até que eles sejam extraídos. Deuma forma mais técnica o protocolo de portas corresponde à filas de execução e cada filarepresenta uma atividade, ou uma aplicação, que processará os dados daquela fila. Assim,podemos ter 2 aplicações diferentes usando uma mesma porta, mas usando protocolos detransporte diferentes.

Page 31: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

119 04/05/01Ulisses Thadeu V Guedes

Para que seja possível uma resposta, é preciso conhecer a porta de onde partiu aqueledado, assim como o endereço IP. Assim, para que uma comunicação se estabeleça e atransferencia de dados ocorra, cada mensagem deve carregar as portas de destino e deorigem. Os endereços de destino e de origem já estão embutidos no datagrama IP enquantoas portas nos cabeçalhos do protocolo de transporte.

Sob um ponto de vista técnico, os protocolos de transporte UDP e TCP implementam oconceito de multiplexação e demultiplexação das aplicações baseado nas portas.

Quando o protocolo de transporte (TCP ou UDP) recebe um datagrama, ele verifica seaquele número de porta está em uso (se existe alguma aplicação correspondente associadaàquela porta). Caso exista ele envia o datagrama para aquela fila. Caso contrário, ele enviauma mensagem ICMP tipo "porta não alcançável" (port unreachable, ICMP campo=3,código=3) para o remetente e descarta o datagrama. No caso da fila estar cheia o pacote é,simplesmente, descartado.

8 PROTOCOLO UDP

O protocolo UDP (User Datagram Protocol) usa o IP para transportar mensagensimplementando, apenas, o recurso de portas. Ou seja, uma aplicação que usa UDP aceitatoda a responsabilidade para manipular e controlar problemas de confiabilidade de envio,ordenação de pacotes, controle de duplicação, ou perda de conectividade. Normalmente, aodesenvolvermos alguma aplicação que usa o UDP testamo-la em um ambiente de redelocal. Uma aplicação UDP aplicável para a grande rede (a Internet), deve implementar osmecanismos de controle e manipulação, caso contrário ela está sujeita à falhas.

8.1 FORMA DAS MENSAGENS UDP

As mensagens UDP são denominadas datagramas de usuário (user datagram). Umdatagrama UDP consiste de 2 partes: cabeçalho UDP e dados UDP. O cabeçalho UDPcontém 4 campos onde são informadas as portas de origem e destino, o tamanho damensagem e o checksum UDP, conforme a figura abaixo:

Page 32: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

120 04/05/01Ulisses Thadeu V Guedes

A porta UDP de origem é opcional. Esta porta é usada para a aplicação de destino retornealguma informação para a aplicação da máquina de origem e deve ser zero quando não forusada. (Pensando nisso é que o protocolo ICMP poderia ser considerado um protocolo detransporte)

O tamanho da mensagem UDP é medido em número de octetos (número de bytes). Acontagem envolve o cabeçalho UDP e a área de DADOS. Assim, o valor mínimo é 8.

O Checksum é calculado usando um pseudo-cabeçalho. Este é constituído pelosendereços IP da origem e de destino, o código do tipo de protocolo IP (UDP tem o código17), e o tamanho do datagrama UDP (não incluir o pseudo-cabeçalho), conforme a figuraabaixo:

Reparem que este pseudo-cabeçalho não está incluso no datagrama UDP. Os endereçosIPs de origem e destino são obtidos do cabeçalho IP. Isto mostra uma forte interação entre oprotocolo UDP e o IP.

Exemplos de serviços UDP:

- TFTP (porta 69),- NTP (porta 123),- DOMAIN(DNS) (porta 53, protocolo UDP),- SYSLOG (porta 514)

Cada um destes serviços tem uma porta padronizada. Outras portas podem ser usadasdesde que não exista um outro serviço (aplicação) usando a mesma porta. As associaçãodas portas são definidas em arquivo denominado SERVICES na implementação do TCP/IPde cada sistema operacional. As padronizações são conhecidas como well-known portassignments e regidas por RFC (até o momento a RFC1700 é quem define estasassociações).

Page 33: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

121 04/05/01Ulisses Thadeu V Guedes

8.2 QUANDO UTILIZAMOS O UDP?

Usamos o protocolo UDP nas seguintes condições:

• A aplicação de serviço transferindo informações "dispensáveis" para umaaplicação local. Para justificar, tomemos o próprio serviço de tradução de nomes,o DNS. Há outras formas de implementar ou realizar a tradução de nomes sem ouso deste serviço.

• Quando há restrições quanto ao tamanho do código gerado. Na partida desistemas (rede local), precisamos de um código pequeno (armazenamento emmemória permanente, vide o TFTP).

• Aplicação estará restrita à rede local. Caso contrário, o programador deve prevercondições de controle dos datagramas UDP (tempos, ordenação, etc) para evitarfalhas.

8.3 Exercícios:

1) Usando um tcpdump para monitorar o trafego de uma rede, verifique o envio demensagens UDP de diversos tamanhos (64,128,256,512,1024, 2048, 4096 bytes).

2) Uma conexão UDP é confiável? Explique. Descreva um procedimento de teste queconfirme sua resposta usando o serviço que utilize o UDP.

9 PROTOCOLO TCP

Os protocolos IP e UDP não apresentam recursos para certificar o envio e recebimento deum datagrama ou mensagem. Para proporcionar esta garantia foi projetado o protocolo TCP(Transmission Control Protocol). Assim como o UDP, o TCP usa informações dodatagrama IP para seu próprio controle. Melhor ainda, o TCP incorpora recursos de controlede fluxo, controle envio e recebimento das mensagens, uma forma de prioridade demensagens urgentes, enfim, um conjunto de características:

Orientado à Cadeia(Stream Orientation)

O máquina de destino recebe exatamente a mesma seqüência debytes que o remetente enviou.

Conexão emCircuito Virtual

Antes de enviar a mensagem TCP, as aplicações se certificam seestão prontas para transferir a mensagem. Uma vez estabelecida aconexão e autorizada, as aplicações iniciam a transferencia.Durante a transferencia, as mensagens trocadas são verificadasquanto ao recebimento. Caso ocorra alguma falha, as duasmáquinas envolvidas detectam a falha e informam às respectivasaplicações sobre o ocorrido. Dizemos que o TCP implementa um

Page 34: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

122 04/05/01Ulisses Thadeu V Guedes

circuito virtual pois, sob o ponto de vista da aplicação, tudo se"parece" como se existisse um circuito de hardware dedicado.

TransferênciaBuferizada

O tamanho da mensagem pode ser qualquer. Mesmo que seja umsimples byte. O receptor verá os dados na mesma ordem que aaplicação (do emissor) enviou. O protocolo de software é livre paradividir a mensagem em blocos de menor tamanho. Para maximizar(sob algum aspecto), o tráfego da rede, os dados são mantidos embuffers até que estes alcancem um nível de preenchimentosuficiente para o envio. Por outro lado, há aplicações que exigem oenvio da informação de forma urgente. Para isto o serviço de enviodisponibiliza um mecanismo push forçando o envio, sem atrasos. Omecanismo push garante apenas o envio, e não estipula limites depreenchimento.

Cadeianão-estruturada

O serviço de envio não honra uma estrutura dos dados. Contudo,esta estrutura será restaurada na aplicação do receptor. Os dadossão transferidos!

ConexãoFull-Duplex eHalf-Duplex

As conexões proporcionadas pelo TCP permitem transferência nasduas direções, denominadas Full duplex. Exemplo: FTP (comandosnuma direção e fluxo de dados no sentido oposto). O serviço deenvio também permite que uma aplicação suspenda o fluxo numadireção enquanto se processa a transferência num sentido oposto(ou half duplex).

9.1 PROPORCIONANDO A CONFIABILIDADE NO ENVIO E RECEBIMENTO

Embora o protocolo IP não forneça recursos que garantam o envio/recebimento dosdatagramas, o TCP implementa sua confiabilidade baseando-se na técnica dereconhecimento positivo com retransmissão (positive acknowledgment with retransmission).A técnica consiste na resposta contendo uma mensagem de ACK para cada mensagem dedados.

Page 35: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

123 04/05/01Ulisses Thadeu V Guedes

Caso ocorra a perda do pacote (exemplo: ver pacote 2), o que representará o nãorecebimento do ACK do pacote, o mecanismo de envio aguarda por um intervalo de tempoe, findo este prazo, o pacote é retransmitido.

Para otimizar o desempenho do mecanismo de envio, o TCP implementa o conceito dejanelas deslizantes (sliding window). A idéia é deslizar uma janela de tamanho fixo sobreuma seqüência de pacotes que devem ser enviados. O desempenho depende do tamanhoda janela, ou seja, quantos pacotes serão enviados sem o recebimento dos respectivosACKs. O tamanho ideal é aquele que cobrirá o tempo de espera pelo retorno da resposta doACK do primeiro pacote, conforme a figura:

Page 36: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

124 04/05/01Ulisses Thadeu V Guedes

A figura acima mostra uma janela deslizante de 5 pacotes. O pacote 6 será transmitido apóso recebimento do ACK do pacote 1. No caso de falha de algum pacote (ACK não recebido),somente aquele pacote será retransmitido. O mecanismo de janela deslizante mantém arede completamente saturada com pacotes. Obtém-se, com isto, um troughtput mais altoquando comparamos com o envio isolado de um pacote e a espera da respectiva respostade ACK.

Uma janela de tamanho fixo pode não ser adequada assim como gerar problemas comobuffer-overflow. Para evitar isto, o tamanho das janelas pode variar acomodando o envio erecebimento dos pacotes. Para que o software reconheça este problema, o pacote de ACKdisponibiliza um "anúncio de janela" ajustando o tamanho dos buffers para acomodar otamanho das janelas. Procedimento semelhante é aplicável para o controle de fluxo dedados evitando congestionamentos.

9.2 A IDENTIFICAÇÃO DAS CONEXÕES

As conexões TCP são identificadas através da dupla (Endereço IP, número da porta) tantodo emissor quanto do receptor. Desta forma podemos ter várias conexões para um mesmoserviço. Este tipo de controle também é aplicável ao protocolo UDP.

9.3 A FORMA DOS SEGMENTOS TCP

As mensagens TCP são denominadas segmentos. Um segmento TCP consiste de 2 partes:um cabeçalho e dados. O cabeçalho TCP contém 12 campos onde são informadas asportas de origem e destino, número de seqüência dos dados, número de ACK, tamanho dajanela, checksum, bits de código, tamanho do cabeçalho, apontadores de urgência, e outrasopções. Estas informações são localizadas no cabeçalho TCP, conforme a figura abaixo:

A porta de origem e porta de destino são fundamentais, pois serão usadas para o enviode mensagens de controle. No início da comunicação (pelo solicitante) a porta de origem éselecionada pelo sistema segundo algum algoritmo e a porta de destino corresponde à porta

Page 37: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

125 04/05/01Ulisses Thadeu V Guedes

da aplicação no sistema remoto. Na resposta, ou na transferencia inversa, as portas sãocomutadas.

O número de seqüência identifica a posição do byte da cadeia naquele segmento.

O número de ACK identifica o número do octeto que a origem espera receber no próximaresposta ack.

HLEN é o tamanho do cabeçalho do segmento TCP, medido em múltiplos de 32-bits (long-word). Isto é necessário pois as campo OPÇÕES tem um tamanho variável.

RESERV. é um campo reservado para uso futuro e ocupa 6 bits. O valor é zero.

CÓDIGO define a finalidade do segmento. Apresenta a seguinte estrutura:

10 11 12 13 14 15

URG ACK PSH RST SYN FINSegmento tipo urgente.O apontador de urgênciaé válido. Com este bitem 1 e um valor definidono apontador deurgência define-se oOOB (Out-Of-Band)(*)

Segmentotipo ACK

Estesegmentorequer umPUSH

Re-inicializa aconexão

Sincronizao númerodeseqüência

O emissoralcançou ofinal dacadeia(mensagem)

(*) Os detalhes de como o TCP informa um programa de aplicação sobre dados urgentesdepende do sistema operacional do computador. Há algum tempo este tipo de opçãogerava transtornos em vários sistemas operacionais.

O Checksum é calculado usando um pseudo-cabeçalho. Este é constituído pelosendereços IP da origem e de destino, o código do tipo de protocolo IP (TCP tem o código 6),e o tamanho do segmento TCP (não incluir o pseudo-cabeçalho, mas incluir os dados),conforme a figura abaixo:

Reparem que este pseudo-cabeçalho não está incluso no datagrama TCP. Os endereçosIPs de origem e destino são obtidos do cabeçalho IP.

OBS.: A seqüência de segmentos envolvidos numa conexão TCP pode ser estudadaatravés de um modelo denominado máquina de estado finito. Este modelo seráestudado em CAP312.

Page 38: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

126 04/05/01Ulisses Thadeu V Guedes

9.4 INICIO E TÉRMINO DAS CONEXÕES - "THREE WAY HANDSHAKE"

O protocolo TCP é classificado como "orientado à conexão". Isto quer dizer que eleimplementa mecanismos que variam com o estado da conexão. Tal mecanismo segue umamáquina de estado finita (Finite State Machine). Ou seja, o estado da conexão variaconforme um "handshake" envolvendo os tipos do segmento TCP (campo CÓDIGO docabeçalho TCP).

Vamos admitir que a máquina A quer estabelecer uma conexão com a máquina B para atroca de dados usando o protocolo TCP. Muito antes de ocorrer a transferencia dos dadosentre as aplicações TCP, elas trocam segmentos específicos. Tais segmentos sãoidentificados como segmentos de sincronismo (SYN) e segmento de confirmação derecebimento (ACK). A finalidade do segmento tipo SYN é informar à outra máquina o"desejo" da conexão. A finalidade do segmento ACK é dizer que foi recebido algumsegmento TCP devidamente identificado.

Assim a Máquina A envia para B umsegmento tipo SYNA, informando queA quer estabelecer a conexão. Nomomento do envio é disparado umcronometro cujo alarme deve forçaruma nova transmissão caso amáquina A não receba umaconfirmação de recebimento. Asretransmissões vão acontecer por umnúmero de vezes previamentedefinido em variáveis do TCP/IP.Caso a máquina B receber osegmento SYNA ela responderá paraA com o segmento de confirmaçãoACKB.

Se houver recursos para aceitar aquele "convite" de conexão então a máquina B tambémenviará um segmento SYNB para a máquina A que, seguindo as mesmas condições,responderá com um segmento ACKA. Normalmente, os sinais de ACKB e SYNB seguemnum mesmo segmento. Esta troca de sincronismos e confirmações de recebimento,denominamos de Three-way-handshake.

Somente após este tratamento é que os segmentos de dados serão transferidos, massempre que for enviado algum segmento de dado para a outra máquina, esta responderácom um segmento ACK correspondente ao segmento recebido.

Isto sucederá até que uma das máquinas sinalize a intenção de término (por intervenção dousuário ou no término da aplicação). O término da conexão só acontecerá após oencerramento da aplicação (em condições normais, é claro!).

Para encerrar a conexão são trocados segmentos tipo FIN (substituindo o segmento tipoSYN) repetindo a mesma sequencia inicial.

Page 39: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

127 04/05/01Ulisses Thadeu V Guedes

A máquina de estado finita não se resume nestas transições. Ela é muito mais completa ecomplexa e será vista em detalhes em CAP-312.

9.5 EXEMPLOS DE SERVIÇOS TCP:

- HTTP (porta 80, protocolo TCP),- FTP (porta 21, protocolo TCP),- FTP-DATA (porta 20, protocolo TCP),- DOMAIN(DNS-XFER) (porta 53, protocolo TCP)

Cada um destes serviços tem uma porta padronizada. Outras portas podem ser usadasdesde que não exista um outro serviço (aplicação) usando a mesma porta naquela máquina.

As associação das portas são definidas em arquivo denominado SERVICES naimplementação do TCP/IP de cada sistema operacional. As padronizações são conhecidascomo well-known port assignments e regidas por RFC

9.6 QUANDO UTILIZAMOS O TCP?

Usamos o protocolo TCP nas seguintes condições:

• A informação a ser transferida é fundamental. Queremos certificar dorecebimento e do envio da mensagem.

• A máquina de destino ultrapassa a rede local.

• Os atrasos gerados pelo controle e procedimentos do TCP (controle enotificação), não prejudicam a atividade da aplicação. Aplicações de tempo-real,por exemplo, devem evitar o uso deste protocolo de transporte.

• Não há restrições de tamanho de código nem de uso da CPU e memória. Paragarantir alguns recursos o TCP requer uma reservas contínuas de memória.

9.7 EXERCÍCIOS:

1) Usando um tcpdump para monitorar o trafego de uma rede, verifique o envio desegmentos TCP de diversos tamanhos (64,128,256,512,1024, 2048, 4096 bytes).

2) Compare o protocolo TCP com o UDP? Implementar todos os recursos de controle doTCP no UDP é suficiente para garantir o envio/recebimento de forma confiável atravésdo UDP?

Page 40: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

128 04/05/01Ulisses Thadeu V Guedes

ANEXO:

Resultado de testes de roteamento

A pequena rede em topologia em barramento (10Mbps). O teste consiste em enviar 4pacotes ICMP ECHO_REQUEST (ping) com 32 bytes cada um, da máquina 1 para amáquina 2, e vice-versa.

Máquina 1: Endereço MAC: 00:40:95:E0:37:D6Máquina 2: Endereço MAC: 00:C0:DF:42:11:19

TESTE 1:

Máquina 1:Endereço IP: 192.168.254.1máscara: 255.255.255.0Tabela de rotas:Rota padrão não especificada.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.254.0 especificada, gw=192.168.254.1Tabela ARP inicial: sem entradaTabela ARP final: contém endereços MAC e IP da máquina 2

Máquina 2:Endereço IP: 192.168.254.10máscara: 255.255.255.0Tabela de rotas:Rota padrão não especificada.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.254.0 especificada, gw=192.168.254.10Tabela ARP inicial: sem entradaTabela ARP final: contém endereços MAC e IP da máquina 1

Resultado:Conectividade confirmada. Comprova que a conectividade entre as máquinas tantológica quanto física. Tabela de ARP contém o MAC da máquina remota.

TESTE 2:

Máquina 1:Endereço IP: 192.168.254.1máscara: 255.255.255.0Tabela de rotas:

Rota padrão não especificada.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.254.0 especificada, gw=192.168.254.1

Tabela ARP inicial: vaziaTabela ARP final: permaneceu vazia

Page 41: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

129 04/05/01Ulisses Thadeu V Guedes

Máquina 2:Endereço IP: 192.168.253.10máscara: 255.255.255.0Tabela de rotas:Rota padrão não especificada.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.253.0 especificada, gw=192.168.253.10Tabela ARP inicial: vaziaTabela ARP final: permaneceu vazia

Resultado:Sem conectividade. Resposta ao ECHO_REPLY: Destination host unreachable. Istosignifica que nem o datagrama IP nem o frame ethernet foram enviados ourecebidos. Este último pelo fato da tabela ARP permanecer vazia

TESTE 3:

Máquina 1:Endereço IP: 192.168.254.1máscara: 255.255.255.0Tabela de rotas:

Rota padrão não especificada.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.254.0 especificada, gw=192.168.254.1

Tabela ARP inicial: endereço MAC e IP da máquina 2 (entrada manual)Tabela ARP final: endereço MAC e IP da máquina 2

Máquina 2:Endereço IP: 192.168.253.10máscara: 255.255.255.0Tabela de rotas:

Rota padrão não especificada.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.253.0 especificada, gw=192.168.253.10

Tabela ARP inicial: endereço MAC e IP da máquina 1 (entrada manual)Tabela ARP final: endereço MAC e IP da máquina 1

Resultado:Sem conectividade. Resposta ao ECHO_REPLY: Destination host unreachable. Istosignifica que o datagrama IP embutido no frame ethernet não foi enviado e oendereço ARP não foi utilizado.

TESTE 4:

Máquina 1:Endereço IP: 192.168.254.1máscara: 255.255.255.0Tabela de rotas:

Rota padrão não especificada.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1

Page 42: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

130 04/05/01Ulisses Thadeu V Guedes

Rota para a rede 192.168.254.0 especificada, gw=192.168.254.1Rota para a rede 192.168.253.0 especificada, gw=192.168.254.1 (entradamanual)

Tabela ARP inicial: vaziaTabela ARP final: contém endereço MAC da máquina 2

Máquina 2:Endereço IP: 192.168.253.10máscara: 255.255.255.0Tabela de rotas:

Rota padrão não especificada.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.253.0 especificada, gw=192.168.253.10

Tabela ARP inicial: vaziaTabela ARP final: contém endereço MAC da máquina 1

Resultado:Sem conectividade, com resposta de "Request timed out". Significa que o datagramaIP (consequentemente o frame ethernet) foi enviado, mas para não houve resposta.O fato da máquina 2 conter o MAC da máquina 1, significa que 2 recebeu o frameethernet, mas não conseguiu enviá-lo para a camada IP. Houve o retorno de frame(máquina 1 contém o endereço MAC da máquina 2), mas, provavelmente, semencapsulamento IP.

TESTE 5:

Máquina 1:Endereço IP: 192.168.254.1máscara: 255.255.255.0Tabela de rotas:

Rota padrão não especificada.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.254.0 especificada, gw=192.168.254.1Rota para a rede 192.168.253.0 especificada, gw=192.168.254.1

Tabela ARP inicial: vaziaTabela ARP final: contém endereço MAC da máquina 2

Máquina 2:Endereço IP: 192.168.253.10máscara: 255.255.255.0Tabela de rotas:

Rota padrão não especificada.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.253.0 especificada, gw=192.168.253.10Rota para a rede 192.168.254.0 especificada, gw=192.168.253.10

Tabela ARP inicial: vaziaTabela ARP final: contém endereço MAC da máquina 1

Resultado: Conectividade confirmada. Isto indica que o uso da capacidade deroteamento embutido no TCP/IP.

Page 43: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

131 04/05/01Ulisses Thadeu V Guedes

TESTE 6:

Máquina 1:Endereço IP: 192.168.254.1máscara: 255.255.255.0Tabela de rotas:

Rota padrão : 0.0.0.0 especificada, gw=192.168.254.1.Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.254.0 especificada, gw=192.168.254.1

Tabela ARP inicial: vaziaTabela ARP final: contém endereço MAC da máquina 2

Máquina 2:Endereço IP: 192.168.253.10máscara: 255.255.255.0Tabela de rotas:

Rota padrão: 0.0.0.0 especificada, gw=192.168.253.10Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.253.0 especificada, gw=192.168.253.10

Tabela ARP inicial: vaziaTabela ARP final: contém endereço MAC da máquina 1

Resultado:Conectividade confirmada. Isto indica que o uso da capacidade de roteamentoembutido no TCP/IP usando a rota padrão.

TESTE 7:

Máquina 1:Endereço IP: 192.168.254.1máscara: 255.255.0.0Tabela de rotas:

Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.0.0 especificada, gw=192.168.254.1

Tabela ARP inicial: vaziaTabela ARP final: contém endereço MAC da máquina 2

Máquina 2:Endereço IP: 192.168.253.10máscara: 255.255.0.0Tabela de rotas:

Rota padrão: não especificadaRota para a rede 127.0.0.0 especificada, gw=127.0.0.1Rota para a rede 192.168.0.0 especificada, gw=192.168.253.10

Tabela ARP inicial: vaziaTabela ARP final: contém endereço MAC da máquina 2

Page 44: CAP258 - Redes de Computadores e Comunicação de Dados · TESTE 1: ... Ulisses Thadeu V Guedes Redes - Parte III ... (AND) tais máscaras sobre o endereço IP o resultado fornece

CAP 258 - REDES E COMUNICAÇÃO DE DADOS

Redes - PROTOCOLO TCP/IP

132 04/05/01Ulisses Thadeu V Guedes

Resultado:Conectividade confirmada. Isto indica que a máscara aplicada retrata que as duasmáquinas estão na mesma rede lógica e que há rota para ela. Este teste éequivalente ao TESTE 1.

TESTE 8:

Máquina 1:Endereço IP: 192.168.254.1máscara: 255.255.255.0Tabela de rotas:Rota para a rede 127.0.0.0 especificada, gw=127.0.0.1Tabela ARP inicial: endereço MAC e IP da máquina 2 (entrada manual)Tabela ARP final: endeereço MAC e IP da máquina 2Máquina 2:Endereço IP: 192.168.254.10máscara: 255.255.255.0Tabela de rotas:Rota padrão: não especificadaRota para a rede 127.0.0.0 especificada, gw=127.0.0.1Tabela ARP inicial: endereço MAC e IP da máquina 1 (entrada manual)Tabela ARP final: endereço MAC e IP da máquina 1Resultado: Sem Conectividade e estamos numa mesma rede lógica e rede física.

CONCLUSÕES DOS TESTES

1. O ARP não é usado para decisões de roteamento IP (teste 3)2. Dos testes 4, 5, 6 e 7 conclui-se que o "envio direto" está sujeito ao procedimento

que implementa algum roteamento interno.