Uploaded by Berdi Serviços Elétricos

Introdução às Redes de Computadores 2a ed 140715

advertisement
ADEMAR FELIPE FEY
RAUL RICARDO GAUER
INTRODUÇÃO ÀS REDES
DE COMPUTADORES:
MODELOS OSI E TCP/IP
2ª edição
Caxias do Sul
Ademar Felipe Fey
2014
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Resumo:
As redes de computadores surgiram a partir da década de 1970 do século passado.
Na década seguinte, dois importantes modelos de protocolos de interconexão de
redes surgiram: o modelo TCP/IP e o modelo OSI. Este livro pretende apresentar os
principais fundamentos conceituais desses dois conjuntos de protocolos de
comunicação utilizados em redes de computadores, oportunizando aos leitores a
construção de uma base de conhecimento sólida para avançar na compreensão de
estudos mais complexos nessa área.
Fey, Ademar Felipe. Gauer, Raul Ricardo.
Introdução às Redes de Computadores: modelos OSI e TCP/IP / Ademar
Felipe Fey - 2. ed - Caxias do Sul: 2014
ISBN 978-85-916931-8-4
© Ademar Felipe Fey e Raul Ricardo Gauer
Todos os direitos reservados. Proibida a reprodução parcial ou total sem autorização
por escrito dos autores
Nota: apesar dos cuidados e revisões, podem ocorrer erros de digitação, ortográficos
e dúvidas conceituais. Em qualquer hipótese, solicitamos a comunicação para o email ademar.fey.aff@gmail.com, para que possamos esclarecer ou encaminhar a
questão.
Nem o editor nem os autores assumem qualquer responsabilidade por eventuais
danos ou perdas a pessoas ou bens, originados do uso desta publicação.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
2
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
APRESENTAÇÃO
Este livro é um esforço de pesquisa, tradução de artigos, anotações em sala de aula,
confecção de apresentações para nossas disciplinas de Redes de Computadores no
ensino presencial e no curso on-line de Fundamentos de Redes de Computadores,
no qual procuramos abordar os assuntos que consideramos mais importantes para
compor a base conceitual para os estudantes na área de redes de computadores.
Procuramos incluir os principais tópicos sobre os quais percebemos uma carência de
aprendizado de nossos alunos, presenciais ou à distância, nesses 12 anos de
docência no ensino técnico e ensino superior.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
3
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
NOTA DA 2ª EDIÇÃO
Após o lançamento da 1ª edição deste livro percebemos a necessidade da inclusão
de um capítulo específico sobre o modelo OSI, devido a importância teórica do seu
conhecimento e a carência de um material de estudo mais consistente sobre esse
assunto.
Além disso, procedemos a uma revisão geral sobre o texto da 1ª edição deste livro.
Com essas melhorias, nossa expectativa é que o livro traga ainda mais
conhecimento para o leitor e se torne bastante útil para o estudante e profissional da
área de Redes de Computadores.
Sugestões, críticas e pedidos de informações podem ser enviados para o e-mail
ademar.fey@gmail.com.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
4
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
AVISOS
Esta publicação pode conter imprecisões ortográficas e técnicas ou erros
tipográficos. Periodicamente são feitas alterações nas informações aqui contidas;
essas alterações serão incorporadas em novas edições da publicação. Os autores
podem fazer melhorias e/ou alterações nesta publicação a qualquer momento sem
aviso prévio.
As informações contidas nesta publicação são de caráter informativo e introdutório,
sendo da responsabilidade do leitor buscar aprofundamento no assunto desta
publicação em que desejar aplicar numa situação prática na área de sua atuação
profissional.
A reprodução parcial ou completa é proibida sem autorização escrita dos autores.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
5
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CONVENÇÕES UTILIZADAS NESTE LIVRO
•
•
•
•
•
•
•
Utilizamos a grafia de sub-rede, de acordo com a nova ortografia portuguesa.
Utilizamos a grafia sub-net da língua inglesa.
Em algumas palavras-chave ou termos chaves usamos e abusamos de
artifícios gráficos, tais como, negrito, aspas, colorido, primeira letra em
maiúscula, fonte do caractere aumentada, no intuito de chamar a atenção
dos leitores. Pedimos desculpas se elas ferem algumas regras ortográficas.
O plural de algumas palavras estrangeiras foi feito utilizando a letra “s” logo
após essas palavras (como exemplo, a palavra Bits ou a palavra Hosts), sem
usar o apóstrofo, portanto.
As citações estão no texto com números sobrescritos que remetem à obra
citada nas referências bibliográficas (conceito10, exemplificando).
Na explanação sobre o endereço IP (composto por 4 octetos ou bytes),
consideramos o 1º octeto como sendo o da esquerda (o mais significativo) e o
4º Octeto como sendo o da direita (o menos significativo). Esse 1º octeto
também foi considerado como sendo o 1º campo da representação do
endereço IP.
Nos exemplos de conversão binária e cálculos de sub-redes, nos capítulos
correspondentes, em algumas situações usamos referenciar a posição dos
bits como do 1º ao 8º bit (considerando o 1º bit, o mais da direita, ou seja, o
menos significativo) sem levar em consideração a convenção padrão (que
nomeia os bits como sendo de bit 0 a bit 7, sendo o bit 0 o de menor peso, ou
seja, o mais da direita). Utilizamos esse artifício por consideramos mais
didático, conforme o caso específico, mas sempre salientando a metodologia
usada.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
6
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CONSIDERAÇÕES INICIAIS.
Após 12 anos no ensino de Redes de Computadores, percebemos que alguns
conceitos devam fundamentar o conhecimento técnico dos profissionais que
trabalham na área de infraestrutura de redes.
Começando com uma visão geral e histórica do modelo de interconexão de redes
OSI e do modelo TCP/IP.
Depois desse alicerce de conhecimento estabelecido, é hora de avançar para
conhecer as camadas ou níveis de cada um desses modelos. Ali devemos nos focar
nas funções, protocolos, PDUs e equipamentos que rodam em cada uma dessas
camadas.
Querer ir adiante para um conceito mais avançado sem conhecer os fundamentos,
equivale a começar a construção de uma edificação pelo telhado e não pelas
fundações. A construção pode ruir ou apresentar falhas graves.
O objetivo deste livro é este: estabelecer os conceitos fundamentais das redes de
computadores. A partir desses fundamentos, o leitor pode projetar para alçar voo
para conhecimentos avançados.
Para atingir tal objetivo, o livro foi estruturado da seguinte forma:
No Capítulo 1 fazemos uma introdução às redes de computadores, explanando
sobre os conceitos básicos da área e iniciando o estudo dos modelos OSI e TCP/IP.
O Capítulo 2 trata especificadamente sobre o modelo de referência OSI de
protocolos de comunicação, contendo sua conceituação básica e a explicação sobre
cada uma de suas sete camadas, de forma introdutória. O tópico sobre a Camada de
Apresentação é baseado, em parte, no livro da referência 46, ou seja, ASN.1
Communication between Heterogeneous Systems, do autor Olivier Dubuisson, o
qual recomendamos a leitura para quem desejar se aprofundar no assunto.
No Capítulo 3 tratamos da introdução ao modelo de referência TCP/IP de protocolos
de comunicação, incluindo sua conceituação básica e a explanação básica sobre
cada uma de suas cinco camadas (modelo híbrido adotado neste livro).
O Capítulo 4 trata da Camada Física do TCP/IP, suas funções, sua PDU chamada
de Bit e os equipamentos que rodam nela. Todos os capítulos posteriores abordam
as demais camadas do modelo TCP/IP de 5 camadas.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
7
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
No Capítulo 5 abordamos a Camada de Enlace do TCP/IP, suas funções, sua PDU
chamada de Frame ou Quadro, o protocolo Ethernet e os equipamentos que nela
trabalham.
No Capítulo 6 analisamos a Camada de Rede do TCP/IP, a sua PDU chamada de
Pacote ou Datagrama, a função do roteamento e as sub-redes. Esse é um capítulo
importante para o profissional de TI em geral. Por isso ele merece um destaque
especial.
Já no Capítulo 7, explanamos sobre a Camada de Transporte do TCP/IP e sua
importante função de estabelecer comunicação entre máquinas finais. Da mesma
forma que nas camadas anteriores, as funções, a PDU (Segmento) e os protocolos
dessa camada são estudados neste capítulo.
Uma parte do Capítulo 7 foi baseada na tradução livre do capítulo da camada de
transporte do livro eletrônico Red Book da IBM4, sendo os créditos do(s) seu(s)
autor(es). A obra citada é recomendada para quem desejar aprofundar os conceitos
apresentados no capítulo específico e também nos demais assuntos deste livro.
Por último, no Capítulo 8 estudamos a Camada de Aplicação do TCP/IP, a que
recebe maior número de protocolos e a que serve de interface com os aplicativos e
usuários finais. Além das questões citadas e estudadas nos outros capítulos,
fazemos uma descrição dos principais protocolos da camada de aplicação e dos
principais utilitários do TCP/IP.
Esperamos que este livro traga para o leitor a compreensão dos conceitos
fundamentais das redes de computadores, atingindo com isso nosso objetivo
proposto.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
8
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
9
SUMÁRIO
CAPÍTULO 1 INTRODUÇÃO ÀS REDES DE COMPUTADORES ................................ 18
INTRODUÇÃO ............................................................................................................... 18
1.1 SISTEMA BÁSICO DE COMUNICAÇÃO ................................................................. 18
1.2 HISTÓRICO DA COMPUTAÇÃO E DAS REDES DE COMPUTADORES .............. 22
1.3 DOS MAINFRAMES ATÉ A INTERNET: O SURGIMENTO DAS REDES ............... 25
1.4 TIPOS DE REDES DE COMPUTADORES .............................................................. 27
1.4.1 Rede LAN de Computadores ................................................................................ 27
1.4.2 Rede MAN de Computadores ............................................................................... 28
1.4.3 Rede WAN de Computadores ............................................................................... 28
1.5 A NECESSIDADE POR UM PADRÃO DE PROTOCOLOS DE COMUNICAÇÃO ... 29
1.6 ORIGEM DO MODELO DE INTERCONEXÃO DE REDES TCP/IP ......................... 29
1.7 ORIGEM DO MODELO DE INTERCONEXÃO DE REDES OSI .............................. 32
1.8 TRAÇANDO UM PARALELO ENTRE A ORIGEM DO MODELO TCP/IP E OSI ..... 33
1.9 RESUMO DO CAPÍTULO ........................................................................................ 34
CAPÍTULO 2 MODELO DE REFERÊNCIA DE INTERCONEXÃO OSI ........................ 35
INTRODUÇÃO ............................................................................................................... 35
2.1 O MODELO OSI/ISO ................................................................................................ 35
2.2 RESUMO DA FUNÇÃO DE CADA NÍVEL (CAMADA) DO PROTOCOLO OSI ....... 37
2.3 COMO AS CAMADAS SE COMUNICAM................................................................. 38
2.4 CAMADAS DO MODELO OSI.................................................................................. 40
2.4.1 Camada Física do Modelo OSI ............................................................................. 40
2.4.1.1 Funções internas da camada física .................................................................... 41
2.4.1.2 Serviços prestados para a camada de enlace de dados .................................... 41
2.4.1.3 Protocolos da camada física do modelo OSI...................................................... 42
2.4.2 Camada de Enlace do Modelo OSI ....................................................................... 42
2.4.2.1 Funções interna da camada de enlace de dados ............................................... 43
2.4.2.2 Serviços prestados à camada de rede ............................................................... 44
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
10
2.4.2.3 Protocolos da camada de enlace no modelo OSI .............................................. 44
2.4.3 Camada de Rede do Modelo OSI ......................................................................... 44
2.4.3.1 Normas da camada de rede do modelo OSI ...................................................... 45
2.4.3.2 Arquitetua Interna da Camada de Rede ............................................................. 46
2.4.3.3 Serviço da Camada de Rede Sem Conexão (Connectionless) .......................... 47
2.4.3.4 Serviço da Camada de Rede Com Conexão...................................................... 48
2.4.3.5 Endereços da Camada de Rede ........................................................................ 48
2.4.3.6 Funções da Camada Rede................................................................................. 49
2.4.3.7 Serviços prestados à Camada de Transporte .................................................... 50
2.4.4 Camada de Transporte do modelo OSI ................................................................. 50
2.4.4.1 Classes de Serviços dos Protocolos da Camada de Transporte........................ 52
2.4.4.2 Normas da Camada de Trasporte do modelo OSI ............................................. 54
2.4.4.3 Funções internas da camada de transporte ....................................................... 54
2.4.4.4 Serviços prestados para a camada de sessão ................................................... 54
2.4.4.5 Protocolos da camada de transporte do modelo OSI: ........................................ 54
2.4.5 Camada de Sessão do modelo OSI ...................................................................... 54
2.4.5.1 Funções da camada de sessão.......................................................................... 56
2.4.5.2 Funções e responsabilidades da camada de sessão ......................................... 57
2.4.5.3 Exemplo de uso da camada de sessão .............................................................. 58
2.4.5.4 Protocolos da camada de sessão ...................................................................... 60
2.4.5.5 A camada de sessão nos aplicativos atuais (TCP/IP) ........................................ 61
2.4.6 Camada de Apresentação ..................................................................................... 61
2.4.6.1 Introdução .......................................................................................................... 61
2.4.6.2 Papel da Camada de Apresentação ................................................................... 62
2.4.6.3 Funções da Camada de Apresentação .............................................................. 64
2.4.6.3.1 Conversão interna dos dados (codificação) .................................................... 64
2.4.6.3.2 Compressão de dados .................................................................................... 66
2.4.6.3.3 Criptografia de dados ...................................................................................... 66
2.4.6.4 Exemplo de Uso da Camada de Apresentação.................................................. 67
2.4.6.5 Serviço de Conversão de Código da Camada de Apresentação ....................... 67
2.4.6.5.1 Sintaxe (Linguagem) Abstrata e Sintaxe (Linguagem) de Transferência ........ 68
2.4.6.6 Introdução ao ASN.1 .......................................................................................... 70
2.4.6.7 ASN.1 e BER...................................................................................................... 73
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
11
2.4.6.7.1 ASN.1 .............................................................................................................. 73
2.4.6.7.2 BER ................................................................................................................. 74
2.4.6.8 Contrastando o ASN.1 e o BER ......................................................................... 75
2.4.6.9 A XML................................................................................................................. 75
2.4.6.10 Tradutor ASN.1 para XML ................................................................................ 76
2.4.6.11 Os Padrões e Recomendações da Camada de Apresentação ISO/ITU-T ....... 76
2.4.6.12 Protocolos da Camada de Apresentação ......................................................... 76
2.4.6.12.1 Exemplos de protocolos no modelo OSI ....................................................... 77
2.4.6.12.2 Exemplos de protocolos de formatação ........................................................ 77
2.4.6.12.3 Exemplos de protocolos de codificação ........................................................ 77
2.4.6.13 Camada de Apresentação em redes modernas ............................................... 77
2.4.7 Camada de Aplicação do modelo OSI .................................................................. 78
2.4.7.1 Papel da camada de aplicação .......................................................................... 79
2.4.7.2 Processo de Construção de Entidades de Aplicação no OSI ............................. 79
2.4.7.3 Serviços da camada de aplicação ...................................................................... 81
2.4.7.4 Funções da camada de aplicação ...................................................................... 81
2.4.7.5 Classificação dos Protocolos da camada de aplicação. ..................................... 82
2.4.7.6 Padrões de Elementos de Serviço de Aplicação de Propósito Geral ................. 82
2.4.7.7 Padrões de Elementos de Serviço de Aplicação de Propósito Específico ......... 83
2.4.7.8 Implementações de protocolos da camada de aplicação no modelo OSI ......... 84
2.4.7.9 A camada de aplicação nos aplicativos atuais (TCP/IP) .................................... 85
2.5 USO DO MODELO OSI NA ATUALIDADE .............................................................. 85
2.6 RESUMO DO CAPÍTULO ........................................................................................ 87
CAPÍTULO 3 INTRODUÇÃO AO MODELO DE INTERCONEXÃO TCP/IP.................. 89
INTRODUÇÃO ............................................................................................................... 89
3.1 CONCEITOS DO TCP/IP ......................................................................................... 91
3.1.1 Camada Física/Enlace (Host/Rede) ...................................................................... 92
3.1.2 Camada de Rede (Inter-Rede) .............................................................................. 92
3.1.3 Camada de Transporte.......................................................................................... 92
3.1.4 Camada de Aplicação ........................................................................................... 93
3.1.5 Modelo TCP/IP de 5 camadas (modelo híbrido).................................................... 93
3.2 CONCEITOS FUNDAMENTAIS DA DIVISÃO POR CAMADAS .............................. 94
3.2.1 Encapsulamento .................................................................................................... 94
3.2.2 Desencapsulamento .............................................................................................. 94
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
12
3.2.3 Multiplexação ........................................................................................................ 94
3.2.4 Demultiplexação .................................................................................................... 94
3.2.5 Fragmentação ....................................................................................................... 95
3.3 COMPARAÇÃO ENTRE OS MODELOS DE REFERÊNCIA OSI E TCP/IP ............ 95
3.4 CRÍTICAS AOS MODELOS DE REFERÊNCIA ....................................................... 98
3.5 MODELO DE REFERÊNCIA DE PROTOCOLOS ADOTADO NO LIVRO ............... 98
3.6 RESUMO.................................................................................................................. 98
CAPÍTULO 4 CAMADA FÍSICA .................................................................................. 100
INTRODUÇÃO ............................................................................................................. 100
4.1 MEIO DE TRANSMISSÃO ..................................................................................... 100
4.1.1 Par metálico ........................................................................................................ 101
4.1.2 Cabo coaxial........................................................................................................ 101
4.1.3 Fibra ótica............................................................................................................ 102
4.1.4 Rádio transmissão ............................................................................................... 103
4.1.5 Satélite ................................................................................................................ 103
4.2 INTERFACES DE DADOS E VOZ PADRÕES DE MERCADO.............................. 105
4.2.1 V24 ...................................................................................................................... 105
4.2.2 V35 ...................................................................................................................... 106
4.2.3 V36 ...................................................................................................................... 107
4.2.4 G703.................................................................................................................... 107
4.2.5 RJ-45 ................................................................................................................... 108
4.2.6 RJ-11 ................................................................................................................... 109
4.2.7 V-21 ao V-92 ....................................................................................................... 109
4.3 INTERFACES DTE E DCE..................................................................................... 110
4.4 EQUIPAMENTOS QUE OPERAM NA CAMADA FÍSICA....................................... 111
4.4.1 Modems............................................................................................................... 112
4.4.2 Multiplexador ....................................................................................................... 112
4.4.3 Repetidor de Sinal ............................................................................................... 113
4.4.4 Hub ...................................................................................................................... 113
4.5 TOPOLOGIA UTILIZANDO OS CONCEITOS DA CAMADA FÍSICA ..................... 114
4.6 RESUMO................................................................................................................ 115
CAPÍTULO 5 CAMADA DE ENLACE ......................................................................... 116
INTRODUÇÃO ............................................................................................................. 116
5.1 FUNÇÃO DA CAMADA DE ENLACE ..................................................................... 116
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
13
5.2 QUADRO OU FRAME ............................................................................................ 117
5.3 MODELO TCP/IP ................................................................................................... 117
5.4 PROTOCOLOS DA CAMADA DE ENLACE........................................................... 118
5.4.1 Ethernet ............................................................................................................... 119
5.4.1.1 Quadro Ethernet ............................................................................................... 119
5.4.1.2 Funcionamento do protocolo Ethernet.............................................................. 121
5.4.1.3 Notação Hexadecimal ...................................................................................... 122
5.4.1.4 ARP ou Address Resolution Protocol ............................................................... 125
5.4.1.5 Padrões Ethernet e tipo de cabeamento .......................................................... 125
5.4.1.6 Evolução da Ethernet ....................................................................................... 127
5.4.1.7 Topologias Ethernet ......................................................................................... 128
5.4.1.8 Método de acesso ao meio .............................................................................. 129
5.4.1.9 Colisão ............................................................................................................. 129
5.4.1.10 Desenvolvimento do padrão Ethernet ............................................................ 129
5.4.1.11 Hub ................................................................................................................. 130
5.4.1.12 Switch ............................................................................................................. 130
5.4.1.13 Informação complementar sobre o protocolo Ethernet ................................... 131
5.4.2 PPP ..................................................................................................................... 131
5.4.2.1 Quadro PPP ..................................................................................................... 131
5.4.3 HDLC................................................................................................................... 132
5.4.3.1 Quadro HDLC................................................................................................... 132
5.4.4 Frame Relay ........................................................................................................ 133
5.4.4.1 Características ................................................................................................. 134
5.4.4.2 Quadro Frame Relay ........................................................................................ 135
5.4.4.3 Descrição dos campos do cabeçalho do Frame Relay..................................... 136
5.5 RESUMO................................................................................................................ 136
CAPÍTULO 6 CAMADA DE REDE .............................................................................. 137
INTRODUÇÃO ............................................................................................................. 137
6.1 CONCEITOS BÁSICOS DA CAMADA DE REDE .................................................. 137
6.1.1 Função ................................................................................................................ 137
6.1.2 Funcionamento.................................................................................................... 137
6.1.3 Protocolos da Camada de Rede ......................................................................... 138
6.2 FUNCIONAMENTO DO PROTOCOLO ROTEÁVEL IP ......................................... 138
6.2.1 Cabeçalho IP ....................................................................................................... 140
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
14
6.2.2 Campos do Cabeçalho IP.................................................................................... 140
6.2.3 Importância dos Campos de Endereço do cabeçalho IP ..................................... 142
6.3 ENDEREÇAMENTO IP .......................................................................................... 143
6.3.1 Formato do endereço IP ...................................................................................... 144
6.3.2 Conversão binária para decimal .......................................................................... 144
6.3.3 Determinando a Rede de um endereço IP .......................................................... 147
6.3.4 Aplicando a Máscara ........................................................................................... 148
6.3.5 Classes de Endereçamento IP ............................................................................ 149
6.3.6 Identificando a Classe de um endereço IP .......................................................... 152
6.3.7 Endereços IP Especiais e Reservados................................................................ 154
6.3.8 Exemplos de topologias de redes IP ................................................................... 155
6.3.9 Endereços de Sub-Rede ..................................................................................... 157
6.3.10 Criando Sub-Redes ........................................................................................... 157
6.3.11 Classificação dos endereços IP ........................................................................ 163
6.3.12 Roteador............................................................................................................ 163
6.4 IPv6 ........................................................................................................................ 164
6.4.1 Introdução ao IPv6. ............................................................................................. 164
6.4.2 Comparação entre cabeçalhos do IPv4 e do IPv6 .............................................. 164
6.4.3 Melhorias no cabeçalho IPv6 .............................................................................. 168
6.4.4 Cabeçalhos de extensão ..................................................................................... 168
6.4.5 Fragmentação no IPv6 ........................................................................................ 170
6.4.6 Estrutura do Endereçamento IPv6 ...................................................................... 171
6.4.7 Alocação de Endereço IPv6 ................................................................................ 172
6.4.8 Sub-redes no IPv6 ............................................................................................... 172
6.4.9 Representação dos Endereços no IPv6 .............................................................. 173
6.4.10 Terminologia técnica do IPv6 ............................................................................ 174
6.4.11 O escopo do Endereçamento no IPv6 ............................................................... 174
6.4.12 Tipos de endereços IPv6 ................................................................................... 175
6.4.13 Conjunto de Endereços de Interface ................................................................. 175
6.4.14 Tipos de Prefixo de Endereçamento ................................................................. 176
6.4.15 Roteamento no IPv6 .......................................................................................... 176
6.5 OUTROS PROTOCOLOS DA CAMADA DE REDE ............................................... 178
6.5.1 ICMP ................................................................................................................... 178
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
15
6.5.2 ARP ..................................................................................................................... 179
6.6 PROTOCOLOS DE ROTEAMENTO ...................................................................... 182
6.6.1 Rotas Estáticas e Dinâmicas ............................................................................... 182
6.6.2 Roteamento Dinâmico ......................................................................................... 183
6.6.3 Distâncias Administrativas................................................................................... 183
6.6.4 Classe dos Protocolos de Roteamento ............................................................... 184
6.6.5 Vetor distância..................................................................................................... 185
6.6.5.1 RIP (Router Information Protocol) .................................................................... 185
6.6.6 Estado do Link..................................................................................................... 186
6.6.6.1 OSPF (Open Shortest Path First) ..................................................................... 186
6.6.7 Algoritmo de protocolos de roteamento híbrido ................................................... 187
6.6.7.1 EIGRP (Enhanced Interior Gateway Routing Protocol) .................................... 187
6.6.7.2 Diffusion Update Algorithm ............................................................................... 188
6.7 Resumo .................................................................................................................. 188
CAPÍTULO 7 CAMADA DE TRANSPORTE................................................................ 190
INTRODUÇÃO ............................................................................................................. 190
7.1 CONCEITOS BÁSICOS DA CAMADA DE TRANSPORTE.................................... 190
7.2 Modelo cliente-servidor. ......................................................................................... 191
7.2.1 Servidores ........................................................................................................... 192
7.2.2 Cliente ................................................................................................................. 193
7.2.3 Principais protocolos da camada de transporte................................................... 193
7.3 PORTAS E SOCKETS ........................................................................................... 194
7.3.1 Portas .................................................................................................................. 195
7.3.2 Sockets................................................................................................................ 198
7.4 USER DATAGRAM PROTOCOL (UDP) ................................................................ 201
7.4.1 Formato do datagrama UDP ............................................................................... 203
7.4.2 Interface de programação de aplicativos do UDP ............................................... 204
7.4.3 Aplicações padronizadas que usam o protocolo UDP ......................................... 206
7.5 PROTOCOLO DE CONTROLE DE TRANSMISSÃO (TCP) .................................. 206
7.5.1 Conceitos do TCP ............................................................................................... 207
7.5.2 Formato do segmento TCP ................................................................................. 210
7.5.3 Comparação entre os protocolos UDP e o TCP .................................................. 212
7.5.4 Controle de fluxo pelo TCP ................................................................................. 213
7.5.4.1 O princípio da janela......................................................................................... 215
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
16
7.5.4.2 O princípio da janela aplicado ao TCP ............................................................. 218
7.5.4.3 Troca de dados normal (sem retransmissões) ................................................. 221
7.5.4.4 Reconhecimentos e retransmissões ................................................................ 222
7.5.4.5 Estabelecimento de uma conexão TCP ........................................................... 224
7.5.4.6 Interface de programação de aplicativos do TCP ............................................. 227
7.5.5 Algoritmos de controle de congestionamento do TCP ........................................ 229
7.5.6 Aplicações padronizadas que utilizam o protocolo TCP ...................................... 230
7.5.7 Relação de portas bem conhecidas de aplicações Internet ................................ 230
7.6 CONSIDERAÇÕES FINAIS DA CAMADA DE TRANSPORTE .............................. 231
7.7 RESUMO................................................................................................................ 231
CAPÍTULO 8 CAMADA DE APLICAÇÃO ................................................................... 233
INTRODUÇÃO ............................................................................................................. 233
8.1 PROTOCOLOS DA CAMADA DE APLICAÇÃO .................................................... 235
8.1.1 HTTP (HyperText Transfer Protocol) ................................................................... 235
8.1.1.1 Formato do pacote de dados de solicitação HTTP ........................................... 237
8.1.1.2 Formato do pacote de dados de resposta HTTP.............................................. 238
8.1.1.3 Versões do HTTP ............................................................................................. 239
8.1.2 Telnet (Telecommunication Networking) ............................................................. 239
8.1.3 FTP (File Transfer Protocol) ................................................................................ 244
8.1.3.1 Comandos e mensagens do FTP ..................................................................... 247
8.1.3.2 Exemplos de comandos do FTP ...................................................................... 247
8.1.3.3 Códigos de respostas (mensagens) do FTP .................................................... 248
8.1.4 SMTP (Simple Mail Transfer Protocol) ................................................................ 249
8.1.4.1 Enviando mensagens pelo SMTP .................................................................... 250
8.1.4.2 Texto de mensagem enviada pelo SMTP......................................................... 252
8.1.4.3 Códigos de Respostas do Protocolo SMTP ..................................................... 254
8.1.4.3.1 Primeiro Dígito do Código de Respostas....................................................... 254
8.1.4.3.2 Segundo Dígito do Código de Respostas...................................................... 254
8.1.4.3.3 Terceiro Dígito do Código de Respostas ....................................................... 254
8.1.4.4 Localizando mensagens no SMTP ................................................................... 254
8.1.4.5 Comandos adicionais no SMTP ....................................................................... 255
8.1.5 POP3 (Post Office Protocol) ................................................................................ 255
8.1.5.1 Para Acessar o Servidor de e-mail ................................................................... 257
8.1.5.2 Deletando mensagens lidas pelo POP ............................................................. 259
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
17
8.1.5.3 Benefícios do protocolo POP e SMTP.............................................................. 259
8.1.6 IMAP.................................................................................................................... 260
8.1.7 SNMP (Simple Networking Management Protocol) ............................................. 260
8.1.7.1 Base de Gerenciamento (MIB) do SNMP ......................................................... 262
8.1.7.2 Comandos de gerenciamento do SNMP .......................................................... 262
8.1.7.3 Objetos gerenciados pelo SNMP ..................................................................... 263
8.1.7.4 Mensagens do SNMP....................................................................................... 264
8.1.8 DNS (Domain Name Protocol) ............................................................................ 265
8.1.8.1 Introdução ........................................................................................................ 265
8.1.8.2 Registros do DNS ............................................................................................. 266
8.1.8.3 Funcionamento genérico do DNS .................................................................... 267
8.1.8.4 Navegando na WEB usando o Sistema de Nomes de Domínio (DNS) ............ 268
8.1.9 Protocolo e Serviço de compartilhamento de arquivo SMB................................. 269
8.1.10 Protocolo DHCP ................................................................................................ 271
8.1.10.1 Tipos de Mensagem DHCP ............................................................................ 273
8.1.10.2 Troca de mensagens DHCP ........................................................................... 274
8.2 UTILITÁRIOS DA CAMADA DE APLICAÇÃO........................................................ 275
8.2.1 Ipconfig ................................................................................................................ 276
8.2.2 Ipconfig /all .......................................................................................................... 277
8.2.3 Ping ..................................................................................................................... 278
8.2.4 Hostname ............................................................................................................ 278
8.2.5 Arp –a .................................................................................................................. 279
8.2.6 Netstat ................................................................................................................. 279
8.2.7 Route ................................................................................................................... 280
8.2.8 Tracert (Trace route no Linux) ............................................................................. 281
8.2.9 Nslookup ............................................................................................................. 281
8.3 CONSIDERAÇÕES FINAIS DA CAMADA DE APLICAÇÃO .................................. 282
8.4 RESUMO................................................................................................................ 282
CONCLUSÃO .............................................................................................................. 283
REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................ 284
APÊNDICE A – Cadastro no blog Infraestrutura de Redes ..................................... 289
APÊNDICE B – Indicações de cursos on-line e e-books por assunto ................... 290
APÊNDICE C – Outras obras dos autores ................................................................ 292
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CAPÍTULO 1 INTRODUÇÃO ÀS REDES DE COMPUTADORES
INTRODUÇÃO
Este capítulo visa introduzir os conceitos básicos utilizados nas redes de
computadores.
1.1 SISTEMA BÁSICO DE COMUNICAÇÃO
Os seres humanos perceberam, desde o início da humanidade, que a sua
sobrevivência dependia da comunicação. Desde então os homens buscam
aperfeiçoar os sistemas de comunicação.
Exemplos dos sistemas de comunicação utilizados são: sinais de fumaça, telégrafo,
telefone, redes de computadores.
Todos estes sistemas possuem cinco elementos, no mínimo, que são comuns:
•
•
•
•
•
Transmissor;
Mensagem;
Protocolo;
Meio de transmissão;
Receptor.
A figura abaixo exibe as características básicas de um sistema básico de
comunicação.
Figura 1.1 Sistema de Comunicação Básico.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
18
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Os especialistas em telecomunicações e de redes de computadores perceberam
também que a informação que deve ser transmitida à distância não pode ser
“inserida”” no meio de transmissão sem uma adaptação.
As adaptações do sinal dos computadores, que sabemos ser um sinal digital, ao
meio de transmissão, podem ser feitas de duas maneiras: através da modulação ou
através de codificação.
A modulação insere os sinais digitais oriundos do com
computador
putador num sinal analógico
(portadora) de forma que o sinal resultante (portadora modulada ou onda modulada)
consiga percorrer o meio de transmissão com maior facilidade.
Um exemplo de equipamento de comunicação de dados que utiliza a modulação é o
chamado
do modem analógico (“modem” é uma contração de duas palavras: “mod” de
modulador e “dem” de demodulador), utilizado para troca de dados entre
computadores e para acesso à Internet, entre outras aplicações.
Figura 1.2 Modem analógico
analógico.1
A codificação, por
or sua vez, altera os sinais digitais oriundos do computador num
sinal pseudo-analógico
analógico (pseudo
(pseudo-portadora)
portadora) de forma que o sinal resultante, que é
um sinal codificado, consiga percorrer o meio de transmissão com maior facilidade,
de certa forma “enganando” o meio de transmissão, fazendo-o
o supor que se trata
realmente de um sinal analógico (ou sinal eletromagnético).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
19
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 1.3 Modem Digital
Digital.1
Um exemplo de equipamento de comunicação de dados que utiliza a codificação é o
chamado modem digital, largamente utilizado pelas operadoras de telecomunicação
para montar os circuitos de comunicação de dados, que interliga a rede local de
computadores (LAN)) em empresas e escritórios até o seu backbone de comunicação
de dados (um circuito dedicado de acesso à Interne
Internet,
t, por exemplo, utiliza um par de
modems digitais).
Para interligar fisicamente o seu ponto de presença ao cliente, a operadora utiliza
diversos meios físicos, entre eles o par metálico, a fibra óptica e o rádio ponto a
ponto. Para cada meio físico desses a operadora utilizará um modem específico.
Figura 1.4 Conexão da rede local ao provedor Internet (via modem digital).1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
20
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Na figura anterior o modem digital que está no provedor Internet foi omitido. Os
modems sempre trabalham aos pares.
É importante também destacar a técnica chamada de multiplexação. Esta técnica
multiplexa (ou “mistura”) vários sinais oriundos de dispositivos de comunicação num
único meio de transmissão. A multiplexação, portanto, otimiza o meio de
transmissão, oportunizando às operadoras reduzirem os custos de investimentos
nos meios de transmissão.
A B C D
Figura 1.5 Multiplexação.1
Podemos citar as técnicas de multiplexação analógicas FDM e OFDM e as digitais
TDM, CDM, GSM, etc.
Voltando ao sistema básico de comunicação, convém destacar que a mensagem
não pode também ser enviada no seu conteúdo original de um computador para
outro.
Ocorre que para os computadores trocarem dados entre si eles precisam utilizar
procedimentos, protocolos e códigos de formatação dos dados padrões para que a
mensagem seja entendida de forma correta.
Podemos traçar um paralelo ao que acontece quando um americano deseja falar
com um chinês e nenhum dos dois interlocutores conhece o idioma do outro. Valese, nesse caso, de um tradutor que controla os procedimentos e estabelece
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
21
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
protocolos para a tradução da mensagem e entrega ao destino, de forma íntegra e
correta.
Dois estudiosos que pesquisaram o efeito do meio de transmissão (também
chamado de meio físico) sobre a velocidade que as informações podem ser
transmitidas nesse meio foram Nyquist (1928) e Shannon (1948).6
Eles criaram fórmulas que nos permitem calcular a quantidade de bits (menor
unidade de informação manipulada pelos computadores) possíveis de serem
transmitidos num meio de transmissão, por segundo.
Nyquist considerou o meio de transmissão como sendo ideal, não sofrendo,
portanto, interferência de sinais indesejáveis à comunicação de dados. O sinal
indesejável ao meio é chamado de ruído.
L
C = 2.W.log2 bps
Onde C é a capacidade de transmissão em bits por segundo, bps, e W é
largura de banda de um meio de transmissão (frequências aceitas no meio de
transmissão) e L é quantidade de bits codificados num ciclo da onda portadora
Shannon, por outro lado, considerou que em todo meio de transmissão existe a
interferência de ruído, em menor ou maior escala. Ele considerou, portanto, um
sistema de comunicação do mundo real.
C = W.log2
(1+S/N)
Onde S/N é a relação sinal ruído (quantas vezes o nível do sinal, dado em
decibéis, é maior do que o nível do ruído). Quanto maior a relação, maior a
qualidade do meio de transmissão.
Através da análise das duas fórmulas acima podemos concluir que a capacidade de
um meio de transmissão (bits por segundo transmitido no meio) é diretamente
proporcional à largura de banda daquele meio físico (faixa de frequência aceita pelo
meio físico).
Após esta introdução aos conceitos básicos de um sistema de comunicação vamos
conhecer um breve histórico das redes de computadores.
1.2 HISTÓRICO DA COMPUTAÇÃO E DAS REDES DE COMPUTADORES
O conflito da 2ª. Guerra Mundial acabou acelerando os progressos na computação
e, consequentemente, das redes de computadores.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
22
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
No entanto, os experimentos com máquinas para cálculos matemáticos começaram
séculos atrás com o Ábaco (3.500 AC), máquina de calcular de Pascal (1642),
máquina de calcular de Babbage (1833), a máquina do censo de Hollerith (1890), o
qual em 1924 cria a IBM, o computador Zuse (1938), entre outras máquinas.
Baseado nos livros de Jason Patterson em The History Of Computers During My
Lifetime e de Raúl Rojas e Ulf Hashagen, 2000, em The First Computers—History
and Architectures, além da apresentação dos 100 anos da IBM28, nós podemos citar
o seguinte retrospecto da história da computação de 1940 até os nossos dias:
Nos anos de 1940:
O Colossus (1943), o ENIAC (1945), o Baby (1948) e o EDSAC (1949), todos
experimentos computacionais de grande porte.
Nos anos de 1950:
O IBM 701 (1952), primeiro computador totalmente digital.
Nos anos de 1960:
A IBM lança o mainframe S/360 no mercado28.
Figura 1.6 Mainframe.28
Nos anos de 1970:
O primeiro microcomputador, o Apple II, que foi um dos mais populares
microcomputadores no Mundo, o Commodore PET e o TRS-80. O UNIX, a
programação de linguagem C, os minicomputadores VAX e o Cray 1.
Incluo aqui o surgimento do modelo de referência de protocolos TCP/IP, utilizado
para interconexão de computadores (lançado oficialmente em 1973).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
23
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 1.7 Minicomputador.8
Nos anos de 1980:
O Commodore 64, o IBM PC, o Apple Macintosh e o Commodore Amiga. A interface
Gráfica de usuário e o nascimento da multimídia. O Intel 80386. A linguagem C++. A
arquitetura RISC. A SPARC station 1, o Silicon Graphics IRIS e o NeXT.
Figura 1.8 IBM PC.28
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
24
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Incluo aqui o surgimento do modelo de referência de protocolos OSI, utilizado para
interconexão de computadores, da rede WAN X.25 e das redes locais de
computadores (LAN).
Figura 1.9 Rede Local de Computadores - sistema barramento.1
Nos anos de 1990:
O Microsoft Windows 3. A realidade virtual. O Alpha, o PowerPC e o Pentium. O
Power Macintosh. A Internet e o World Wide Web. O OS/2 Warp. O Windows '95. O
Toy Story.
Nos anos de 2000:
A Internet comercial com grande crescimento mundial, a computação em nuvem, o
Sistema operacional Linux se firma nos ambientes de servidores. A Microsoft avança
nos ambientes corporativos de redes locais. A rede sem fio começa a ser
protagonista juntamente com a rede cabeada,, tanto nas redes LANs como nas
Redes MANs.
1.3 DOS
OS MAINFRAMES ATÉ A INTERNET: O SURGIMENTO DAS REDES
Durante a Guerra fria (período após a 2ª. Guerra Mundial) o exército americano
sentiu a necessidade de interligar os computadores de suas principais bases
militares.
Até então os computadores de grande porte, chamados de mainframe, operavam de
forma isolada. Os trabalhos eram submetidos ao computador e o resultado dos
processos era entregue aos interessados, impressos ou gravados em mídia de
alguma espécie (cartão perfurado, fitas magnéticas, etc.). Em outras palavras, os
computadores não estavam interligados.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
25
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
No final dos anos de 1960 ocorreram os sistemas multiusuários de tempo
compartilhado (time sharing). Usando terminais interativos (teclado e vídeo ou
terminais “burros”), os usuários se revezavam na utilização do computador central. A
IBM reinava sozinha no mercado de computadores de grande porte daquela época.
Em 1965 houve a primeira conexão entre computadores (EUA) realizada por
Lawrence Roberts e Thomas Merril. A interligação foi efetuada por linha telefônica de
baixa velocidade (56 Kbps), entre os centros de pesquisa de Massachusetts e
Califórnia.
A partir de 1970 sugiram os primeiros minicomputadores de 32 bits (IBM, HP e
Digital), o que levou ao surgimento de um planejamento para distribuir o poder de
processamento dos mainframes.
O minicomputador VAX da Digital, lançado em 1977, já estava implementado para
criar uma estrutura de uma rede de computadores.
Figura 1.10 Minicomputador VAX.27
Neste meio tempo, o sistema operacional Unix, desenvolvido em 1969, nos
laboratórios da Bell, tornou-se popular nas universidades e centros de pesquisa a
partir de 1974. Implementado na linguagem C, o Unix possuía características de
portabilidade e modulariedade, podendo rodar em vários tipos de computadores (de
diferentes fabricantes).
Aplicativos como e-mail, Telnet e FTP foram agregados ao Unix e a partir daí se
tornaram a base dos serviços para a atual rede Internet.
Em 1972, Robert Metcalfe recebeu a incumbência de criar um sistema que
permitisse a conexão de estações de trabalho da Xerox, em Palo Alto, Califórnia,
com os servidores da mesma empresa.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
26
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 1.11 Rede Local de Computadores.1
Nasceu deste trabalho de Metcalfe a tecnologia Ethernet, sucesso absoluto na
interligação de computadores em ambientes de redes locais (que começariam a ser
implantadas na década seguinte).
Com a proliferação das redes locais de computadores (LAN) começou a surgir a
necessidade de interligação das LANs entre si.
Em seguida vamos distinguir os vários tipos de redes de computadores e depois
vamos abordar como surgiram os protocolos de comunicação de dados que
permitiram a interligação dessas redes de computadores.
1.4 TIPOS DE REDES DE COMPUTADORES
Tradicionalmente, as redes de computadores são divididas nos seguintes tipos,
referente à sua distância geográfica:
1.4.1 Rede LAN de Computadores
Normalmente compreende a rede de computadores de um escritório, empresa ou
prédio, numa única localização. Atinge alguns metros de distância. Na atualidade a
tecnologia dominante nesse tipo de rede é a Ethernet.
Figura 1.12 Rede Local de Computadores (LAN).1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
27
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
1.4.2 Rede MAN de Computadores
Normalmente compreende a rede de computadores de uma empresa que possui
vários pontos de atendimento (sites) numa mesma cidade, tais como matriz e
unidades de fabricação, ou mesmo uma universidade e vários campus interligados.
Atinge alguns quilômetros de distância.
Figura 1.13 Rede Metropolitana Computadores (MAN).1
1.4.3 Rede WAN de Computadores
Atinge dezenas a milhares de quilômetros de distância. A Internet é um exemplo
desse tipo de rede. Normalmente as redes WANs estão sob cuidados das
operadoras. Outros exemplos desse tipo de rede são: E1, X.25, Frame Relay, MPLS,
etc. (consulte nosso curso sobre Redes WAN).
Na prática, a rede WAN consiste de um grande número de redes LAN interligadas
pelo meio de transmissão ou meio físicos das operadoras de telecomunicações ao
núcleo central da rede WAN (backbone).
Figura 1.14 Rede de Computadores de Longa Distância (WAN).11
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
28
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
1.5 A NECESSIDADE POR UM PADRÃO DE PROTOCOLOS DE COMUNICAÇÃO
Na década de 1980 havia uma pressão muito alta para a conexão das redes locais
de computadores entre sites geograficamente separados. O lançamento dos PCs
favorecia a expansão das redes locais de computadores.
As soluções de conexão eram vistas como ilhas isoladas e proprietárias. Como
exemplo podemos citar o modelo de interconexão de computadores SNA da IBM, o
DECNET da Digital, o Netware da Novell e o NEtBIOS da Microsoft.
Duas soluções de padronização para estes softwares de comunicação de
computadores foram propostas pela comunidade internacional:
1) Um sistema aberto de interoperabilidade da ISO, chamado de modelo OSI de
interconexão, introduzido em 1984 através da ISO 7498 e pelo ITU-T X-200
2) Uma família de protocolos de interconexão TCP/IP, adotado pela rede
ARPANET em 1983 (que por sua vez foi derivada do projeto do exército
americano de interligação das bases militares a partir da década de 1960)
A seguir vamos resumir o histórico da origem do modelo OSI e do modelo TCP/IP,
obtido por pesquisa em documentos disponíveis na Internet, devidamente
referenciados.
1.6 ORIGEM DO MODELO DE INTERCONEXÃO DE REDES TCP/IP
O modelo TCP/IP surgiu da colaboração de vários segmentos da sociedade
americana, como as universidades, os centros de pesquisa e o exército americano.
Podemos dizer que o modelo TCP/IP seguiu uma linha de padronização desprovida
de formalidades burocráticas das entidades de padronizações existentes na época
(até se formar o IETF).
Segundo Zimmermann63, as primeiras redes de computadores foram a Arpanet e a
Cyclades, como podemos constatar na seguinte citação:
O desenvolvimento inicial das redes de computadores havia
sido promovido por redes experimentais como ARPANET [11]
ou CYCLADES [2], imediatamente seguido por fabricantes de
computadores [3], [4]. Enquanto as redes experimentais foram
concebidas como heterogêneas, desde o início, cada fabricante
desenvolveu seu próprio conjunto de padrões de protocolos
para interconectar seus próprios equipamentos, referindo-se a
isso como sua "arquitetura de rede" (ZIMMERMANN, 1980, p.
1, tradução nossa).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
29
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A rede Cyclades era uma rede francesa de pesquisa baseada em comutação por
pacotes projetada e dirigida por Louis Pouzin.62 Ela foi demonstrada pela primeira
vez em 1973, servindo como alternativa para o projeto da rede ARPANET e para
suportar redes de pesquisa genericamente. É possível que conceitos tecnológicos
usados na rede Cyclades tenham sido utilizados também nas redes TCP/IP (19731978) e nas redes X.25 (1976), esta última concebida pela antiga CCITT, atual ITUT, antes de o modelo OSI ter sido oficializado.
Por outro lado, a rede Arpanet (Advanced Research Projects Agency Network)
nasceu de uma parceria entre o departamento de defesa americano e 4
universidades daquele mesmo país, tornando-se conhecida como a primeira rede de
pacotes do mundo e a predecessora da internet. A Arpanet iniciou suas operações
em 1969 (PELKEY, 2007) e utilizava o protocolo chamado NCP (Network Control
Protocol) para interligar os computadores chamados na época de IMP (Interface
Message Processor). 61
O protocolo NCP foi o embrião do modelo TCP/IP, sendo que utilizava as camadas
Hosts/IMP, Host/Host, ICP, Telnet, FTP, RJE e alguns protocolos ad hoc (citados da
camada mais baixa para a mais alta).
Blank (2002, cap. 1, p. 7), em seu livro sobre a origem do TCP/IP e da Internet,
reitera a informação de Pelkey ao nos comunicar: 57
"Em 1978, testes e desenvolvimento desta linguagem levou a
um novo conjunto de protocolos chamado Transmission
Control Protocol/ Internet Protocol (TCP/IP). Em 1982,
decidiu-se que TCPIP iria substituir o NCP como a linguagem
padrão da ARPAnet. A RFC 801 descreve como e por que a
transição do NCP para o TCP aconteceu. Em 1 de Janeiro de
1983 a ARPAnet migrou para o TCP/IP e a rede continuou a
crescer exponencialmente " (tradução nossa).
Por sua vez, Kozierok (2005, p. 122) assim nos salienta a origem do TCP/IP na rede
Arpanet, corroborando com as duas citações anteriores: 58
Os protocolos TCP/IP foram desenvolvidos inicialmente como
parte da rede de pesquisa desenvolvida pela Agência de
Projetos de Pesquisa Avançada da Defesa dos Estados Unidos
(DARPA ou ARPA). Inicialmente, esta rede incipiente, chamado
de ARPAnet, foi projetada para usar uma série de protocolos
que foram adaptados a partir de tecnologias existentes. No
entanto, todos eles tinham falhas ou limitações, seja no
conceito ou em questões práticas, tais como a capacidade,
quando usado na ARPAnet. Os desenvolvedores da nova rede
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
30
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
reconheceram que a tentativa de usar estes protocolos
existentes poderia eventualmente levar a problemas com a
ARPAnet escalada para um tamanho maior e (eles) foram
adaptados para novos usos e aplicações (tradução nossa).
O mesmo Kozierok (2005, p. 122) nos auxilia com datas representativas do início da
utilização do TCP/IP no mundo das redes de computadores, deixando claro que a
Arpanet rodava principalmente baseada no protocolo TCP, deixando nas entrelinhas
a informação de que o protocolo IP foi adicionado posteriormente ao TCP, formando
o modelo de referência para protocolos de interconexão de redes heterogêneas
agora chamado de TCP/IP:
Em 1973, o desenvolvimento de um sistema completo de
protocolos de internetworking para a ARPAnet começou. O que
muitas pessoas não percebem é que nas primeiras versões
dessa tecnologia, havia apenas um protocolo central: o TCP. E,
na verdade, essas letras iniciais nem sequer definem o que
elas fazem hoje, elas eram iniciais para o Programa de
Controle de Transmissão. A primeira versão deste antecessor
do TCP moderno foi escrito em 1973, depois revisado e
formalmente documentado na RFC 675, Especificação do
Programa de Controle de Transmissão da Internet, em
dezembro de 1974 (tradução nossa).
A adição do protocolo IP no final dos anos de 1970 foi necessária devido à
implementação de protocolos não orientados à conexão, no caso o UDP, pela
necessidade de algumas aplicações em não haver a retransmissão de pacotes
proporcionada pelo protocolo TCP, conforme nos é relatado a seguir:
No entanto, o esforço inicial para implementar o TCP resultou
numa versão que somente permitiu circuitos virtuais. Esse
modelo funcionou bem para transferência de arquivos e
aplicações de login remoto, mas alguns dos primeiros trabalhos
avançados sobre aplicações de rede, em particular pacotes de
voz na década de 1970, deixou claro que, em alguns casos, a
perda de pacotes não deve ser corrigido pelo TCP, mas deve
ser deixado a cargo da aplicação gerenciar. Isso levou a uma
reorganização do TCP original em dois protocolos em
separado, o IP simples que fornecia apenas o endereçamento
e encaminhamento de pacotes individuais e o TCP, que estava
preocupado com as características de serviços, tais como o
controle de fluxo e recuperação de pacotes perdidos. Para as
aplicações que não queriam os serviços do TCP, uma
alternativa chamada User Datagram Protocol (UDP) foi
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
31
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
adicionada a fim de fornecer acesso direto ao serviço básico do
IP (LEINER, 2011, p. 3, tradução nossa). 60
1.7 ORIGEM DO MODELO DE INTERCONEXÃO DE REDES OSI
O modelo OSI foi criado a partir do movimento de organizações internacionais de
padronização, especialmente a ISO e o ITU-T. Podemos dizer que o modelo OSI
seguiu uma padronização dentro de linhas formais e burocráticas adotada nessas
organizações.
Zimmermann (1980, p. 1), cita que, em 1977, a ISO (International Organization for
Standardization) reconheceu a crucial importância de se criar um protocolo de
comunicações para redes de computadores heterogêneas e criou um subcomitê
para esse propósito, chamado de SC6 (subcomitê 6).
Larmouth (1977, cap. 1, p. 1), em seu livro sobre o modelo de referência OSI,
informa o início do trabalho do OSI para criação deste padrão mundial aberto para
interconexão de redes, bem como os anos da sua maturação: 59
"O trabalho sobre o OSI foi iniciado no final de 1970, e chegou
a um nível de maturidade no final de 1980 e início de 1990. No
momento em que escrevo este texto, há muitos padrões OSI no
mercado, e implementações dos padrões mais populares estão
disponíveis como produtos comerciais. A compra em larga
escala e uso de uma ampla gama de produtos OSI, contudo,
ainda não é uma realidade, com o software livre da Internet
(baseado no TCP/IP) ainda continuando a ter a maior
participação de mercado " (tradução nosssa).
Por outro lado, Kozierok (2005, p. 82), no seu guia on-line sobre o TCP/IP, confirma
a narrativa de Larmouth na citação a seguir, no entanto nos relata que tanto a ISO
como o antigo CCITT (atual ITU-T) iniciaram projetos independentes para criar o
modelo OSI:
"No
final
de
1970,
dois
projetos
começaram
independentemente, com o mesmo objetivo: definir um padrão
unificador para a arquitetura de sistemas de redes. Um deles
foi administrado pela Organização Internacional de
Normatização (ISO), enquanto o outro foi realizado pelo Comitê
Consultivo de Telegrafia e Telefonia, ou CCITT (a sigla é a
partir da versão francesa do nome). Esses dois organismos
internacionais de normatização desenvolveram cada um seu
próprio documento que definia modelos de redes semelhantes”
(tradução nossa).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
32
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Continua Kozierok (2005, p. 82), informando a data da publicação de documentos
que elucidam a questão investigada:
Em 1983, esses dois documentos foram unificados para formar
um padrão chamado de Modelo Básico de Referência para
Interconexão de Sistemas Abertos. Isso é um bocado de
palavras, de modo que o padrão é geralmente referido como o
Modelo Referência de Interconexão de Sistemas Abertos, ou
apenas de modelo de referência OSI, ou mesmo apenas de
modelo OSI. Foi publicado em 1984, tanto pela ISO, chamado
de padrão ISO 7498, como pelo renomeado CCITT (agora
chamado União Internacional de Telecomunicações, ou ITU-T
), chamado de padrão X.200" (tradução nossa).
Portanto, fica claro que o modelo OSI (X.200) foi oficialmente divulgado em 1984,
conjuntamente pela ISO e o atual ITU-T (antigo CCITT). Cabe lembrar que editar
uma norma não corresponde a termos a sua implementação aplicada. A partir da
divulgação do padrão OSI, a comunidade internacional começou a verificar a
possibilidade de sua implantação prática nos computadores e sistemas operacionais
da época. Da mesma forma, deve-se recordar que no início de 1983 a Arpanet
estava migrando sua rede para o TCP/IP (KOZIEROK, 2005).
1.8 TRAÇANDO UM PARALELO ENTRE A ORIGEM DO MODELO TCP/IP E OSI
É interessante, para estabelecermos esta comparação entre os dois modelos de
referência estudados neste trabalho, citarmos os principais acontecimentos citados
nas seções anteriores:
•
•
•
•
•
•
•
•
•
•
1959 O Departamento de Defesa Americano cria a ARPA (Advanced
Research Projects Agency)
1969 A Arpanet é ativada com 4 computadores interligados via
protocolo NCP
1973 A RFC 675 tratando do protocolo TCP foi documentada
1976 Documentos do CCITT (atual ITU-T) sobre o X.25 são publicados
1977 A ISO reconhece a necessidade de um padrão aberto no mundo
redes
1978 O conjunto de protocolos chamado de TCP/IP é testado.
1982 A Arpanet decide adotar o TCP/IP.
1983 O protocolo TCP/IP substitui o protocolo NCP na Arpanet
1983 ISO e CCITT juntam-se para editar o documento “The Basic
Reference Model for Open Systems Interconnection”
1984 A recomendação conjunta OSI/CCITT do modelo OSI foi
publicada (X.200)
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
33
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Verifica-se, nas datas acima exibidas, que a origem dos dois protocolos é distinta,
assim como o próprio percurso para o seu amadurecimento tecnológico.
Parece claro, no entanto, que o modelo TCP/IP foi o primeiro deles a ser
efetivamente implementado em redes de computadores, a partir dos dados
coletados e analisados.
1.9 RESUMO DO CAPÍTULO
Um sistema de comunicação depende basicamente de cinco componentes:
transmissor, informação, meio de transmissão, protocolo e receptor. A
informação é inserida num sinal que percorre o meio. O meio de transmissão pode
sofrer a ocorrência de um sinal indesejável chamado de ruído.
Os computadores de grande porte começaram a ser construídos entre 1940 e 1950.
Os minicomputadores apareceram próximo a 1970 e os microcomputadores e as
redes locais de computadores surgiram aproximadamente em 1980. A internet se
tornou comercial em 1995 no Brasil.
Em redes de computadores, dois modelos de referência de protocolos de
comunicação predominam: o modelo OSI e o modelo TCP/IP. O modelo TCP/IP
surgiu em 1973 e o modelo OSI foi oficializado em 1984. O modelo OSI serve como
referência no ensino e o modelo TCP/IP se transformou num modelo de fato.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
34
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CAPÍTULO 2 MODELO DE REFERÊNCIA DE INTERCONEXÃO OSI
INTRODUÇÃO
Este capítulo aborda o modelo de referência de protocolos de comunicação OSI
(Open Systems Interconnection). Esse modelo é a base teórica conceitual de redes
de computadores.
2.1 O MODELO OSI/ISO
No final da década de 70 do século passado havia uma situação agravante no
cenário da comunicação de dados, ocasionada pela necessidade da interligação dos
computadores: a adoção das redes de computadores estava em crescimento, mas
computadores de diferentes fabricantes não se comunicavam entre si, pois cada
fabricante adotava um modelo de software de comunicação proprietário, a parte da
estrutura do computador chamada de Comunicação (Rede) exibida na figura a
seguir.
Figura 2.1 Arquitetura de um computador Von Neumann.3
Os governos dos países, juntamente com as operadoras de telecomunicações,
precisavam interligar as suas redes de comunicação de forma segura, obedecendo a
algum padrão internacional e repassaram esta necessidade aos fabricantes de
computadores e aos órgãos de padronização internacionais.
Para atender a solicitação mencionada, a ISO (International of Standardization
Organization) em 1977 propôs o modelo OSI (Open Systems Interconnection).
Em 1984, a ISO, juntamente com o ITU-T (International Telecommunication Union –
Telecommunication Standardization Sector) publicaram oficialmente o padrão X.200
(modelo OSI).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
35
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Para descrever os problemas referentes ao processo de comunicação entre
equipamentos em rede, a ISO criou um modelo de referência - o OSI – padrão
mundial aberto.
O OSI, como veremos a seguir, é um modelo que divide a complexa tarefa de
comunicação entre dois computadores em sete etapas, que chamaremos de sete
camadas ou sete níveis. A figura a seguir especifica estas sete camadas.
Figura 2.2 Modelo OSI.1
O OSI é uma proposta para a interconexão de sistemas abertos, onde os
especialistas têm acesso às especificações e podem fazer implementações. Visa
prover uma base comum de informações, para a coordenação do desenvolvimento
de padrões voltados para a interconexão de sistemas de redes de computadores.
Este modelo obedece a uma estrutura hierárquica de níveis, ou camadas, o que
incentiva a modularização do software de suporte às redes.
Cada módulo forma um nível no modelo e é responsável por prover determinados
serviços aos níveis superiores. Cada camada implementa os serviços de acordo
com suas funções, e faz uso dos serviços oferecidos pelos níveis inferiores.
A divisão deste modelo em camadas simplifica tanto o processo de
desenvolvimento de novos protocolos como a manutenção de eventuais
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
36
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
problemas que venha a surgir, pois ele será delimitado pela atuação do protocolo
problemático em certa camada do modelo OSI.
2.2 RESUMO DA FUNÇÃO DE CADA NÍVEL (CAMADA) DO PROTOCOLO OSI
O nível físico fornece as características mecânicas, elétricas, funcionais e de
procedimento para ativar, manter e desativar conexões físicas para a transmissão
de bits entre duas máquinas.
Isto é, cabe ao projetista deste nível definir como representar os níveis de sinais em
0s e 1s, quantos microssegundos durará um bit, quantos pinos possuirá o conector
da interconexão da rede, etc.
O objetivo do nível de enlace é estabelecer a conexão entre dois dispositivos
físicos (vizinhos entre si) que compartilham o mesmo meio físico.
Detecta e opcionalmente pode corrigir erros que ocorram no nível físico, tornando
este canal de transmissão mais confiável.
A função de correção de erros, seja por retransmissão ou por bits de
redundância, é opcional neste nível de protocolo.
A tarefa principal do nível de rede é rotear os pacotes da origem para o destino.
Gerencia também os endereços lógicos dos hosts.
As rotas são caminhos a serem seguidos pelos pacotes de dados e podem ser fixas
ou dinâmicas. Se forem dinâmicas, as rotas variam dependendo da condição da
linha de transmissão, no que tange ao volume de tráfego e às suas condições de
largura de banda, entre outros itens.
O controle de congestionamento (excesso de pacotes) na rede também pode ser
gerenciado por esta camada.
O nível de rede não garante necessariamente que a cadeia de bits chegue a seu
destino.
O nível de transporte, através de protocolo específico, fornece uma comunicação
fim a fim verdadeiramente confiável, controlando o fluxo e a sequência de pacotes.
A principal função do nível de sessão é fornecer a conexão entre dois processos.
Melhora a forma de endereçamento, permitindo a referência a endereços na rede
por nomes simbólicos.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
37
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A função do nível de apresentação é a de realizar transformações adequadas nos
dados, antes de seu envio para a camada de aplicação.
Como exemplos de transformações nos dados, podemos citar: compressão de
textos, criptografia, conversão de padrões de terminais, etc.
Por último, o nível de aplicação, por ser o mais alto nível do modelo OSI, oferece
seus serviços a usuários (ou aplicativos propriamente ditos) e não a níveis
superiores de protocolos.
O propósito deste nível é o de servir como janela ou interface entre usuários
(aplicativos) que querem se comunicar através desse modelo.
2.3 COMO AS CAMADAS SE COMUNICAM
Uma maneira bastante fácil e simplista de se enxergar a funcionalidade de um
modelo em camadas, como o modelo OSI, é imaginar que cada camada tem como
função adicionar um cabeçalho aos dados do usuário a serem transmitidos para
outro sistema (veja a figura a seguir). Deste modo, a função de cada camada do
outro sistema é exatamente a inversa, ou seja, retirar os cabeçalhos dos dados que
chegam e entregar os dados ao usuário em sua forma original.
Figura 2.3 Encapsulamento e Transferência de Dados entre Camadas.1
Veja na figura anterior como cada camada adiciona o seu cabeçalho e como estes
cabeçalhos são inseridos um após o outro, desde a camada superior (aplicação) até
a camada inferior (enlace), já que a última camada (física) tem a função de
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
38
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
transformar os dados em bits e adaptá
adaptá-los
los para serem transmitidos ao meio de
transmissão.
No lado do equipamento que está recebendo as mensagens, imagine que os
cabeçalhos são retirados um a um
um,, desde a camada de enlace até a camada da
aplicação, onde finalmente os dados da aplicação são entregues para o aplicativo
propriamente dito.
Esse é o conceito chamado de encapsulamento na transferência dos dados entre
camadas, na transmissão, e de desencapsulamento,, no repasse dos dados para
cada camada, na recepção.
Observe que em cada camada é inserido um cabeçalho antes do conjunto de dados
que devam ser transmitidos para outro equipamento.
A esse conjunto do cabeçalho mais os dados encapsulados chamamos
genericamente de PACOTE
PACOTE, que constitui a unidade básica de transmissão de
dados na rede.
Nesse modelo, cada camada além de se comunicar com suas camadas adjacentes
também se comunica logicamente com suas camadas pares do outro computador
(através de protocolos).
Em função de cada camada de origem, o pacote recebe um nome específico.
Este nome é chamado, em inglês, de PDU (Protocol Data Unit) e abaixo temos a
designação das PDUs de cada camada do modelo OSI:
Figura 2.4 PDUs das camadas no modelo OSI.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
39
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A PDU pode ser entendida como uma espécie de “matéria
“matéria-prima”
prima” trabalhada em
cada camada.
A seguir iremos abordar cada uma das sete camadas do modelo OSI com maiores
detalhes.
2.4 CAMADAS DO MODELO OSI
2.4.1 Camada Física do Modelo OSI
A Camada Física é a de número um no
o modelo OSI e pertence às chamadas
camadas inferiores.
A camada física atende solicitações da camada de enlace e realiza o
interfaceamento com o meio físico
físico.
Figura 2.5 Posição da camada Física no modelo OSI
OSI.
A unidade de dados padrão do protocolo (PDU) da camada Física é chamada de
"Bit".
A camada física transfere
ransfere dados na forma de dígitos binários ao longo de um meio
físico, após a devida adequação ao mesmo. Ela se encarrega dos requisitos
elétricos, mecânicos e funcio
funcionais para essa transmissão e com o procedimento da
ativação e desativação do sistema físico.
Nesta camada, as normas
ormas abrangendo características elétricas,
elétricas níveis de tensão,
equipamentos de aterramento
aterramento, especificações mecânicas, pinagem
inagem do conector,
comprimentos de cabo, sincronismo, taxa de dados e assim por diante são
razoavelmente bem estabelecidas.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
40
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A camada física transmite o fluxo de bits através da rede em nível de padrão elétrico
e mecânico. Ele fornece o hardware necessário para o envio e recepção de dados
sobre um circuito de comunicação de dados de uma operadora.
Ela também oferece o mecanismo para um DTE (equipamento terminal de dados)
transmitir dados para um DCE (equipamento de comunicação de dados); nesta
camada, os dados são vistos como um fluxo de bits sem agrupamento em bytes.
A camada física determina, normalmente, os seguintes padrões:56
•
•
•
•
Características Mecânicas - Definem detalhes como a disposição de pino e o
tamanho e forma do conector.
Características Elétricas - Especificam se a ligação eletrica é balanceada ou
desbalanceada, os níveis de tensão utilizados (e as tolerâncias), valor da
impedância de entrada, etc.
Características Funcionais - Definem características que dizem respeito ao
que o circuito realiza e qual a sua função (possivelmente com qual
sincronismo). Em termos gerais, existem quatro grandes categorias de
funções: dados , controle, sincronismo (clock) e aterramento.
Características Processuais - Especificam procedimentos necessários para
realmente usar os circuitos de interconexão.
Esta camada, por exemplo, define a conexão física com o modem e pode usar as
interfaces V24, X21, X21bis, V35, etc (V24 e X21bis são semelhantes, usam o
mesmo conector de 25 pinos, e têm a mesma norma definida no ITU - CCITT).
Os dados são enviados como um fluxo de dados serial contínuo, síncrono ou
assíncrono.
2.4.1.1 Funções internas da camada física
A seguir estão listadas as funções internas da camada física.56
1. ativação e desativação da conexão física;
2. transmissão de unidades de dados de serviço da camada física;
3. gerenciamento da camada física.
2.4.1.2 Serviços prestados para a camada de enlace de dados
A seguir estão listados os serviços prestados pela camada física à camada de
enlace:38
1. conexões físicas;
2. unidades de dados de serviço da camada física (PDU);
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
41
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
3.
4.
5.
6.
7.
pontos finais para conexão física;
identificação de circuito de dados;
sequenciamento;
condição de notificação de falhas;
parâmetros de qualidade de serviço.
2.4.1.3 Protocolos da camada física do model
modelo OSI
V24, V35, V92, G704, X21, QAM, AMI, HDB3.
2.4.2 Camada de Enlace do Modelo OSI
A Camada de Enlace é a de número dois do modelo OSI e pertence às chamadas
camadas inferiores.
A camada de Enlace atende solicitações da camada de rede e solicita serviço para a
camada física.
Figura 2.6 Posição da camada de Enlace no modelo OSI
OSI.
A unidade de dados padrão do protocolo (PDU) da camada de Enlace é chamada de
"frame" ou “quadro”.
Esta camada transfere o frame entre dois dispositivos de comunicação vizinhos
entre si, separados pelo meio físico.
Ela realiza a sincronização dos bits transmitidos para o nível físico e provê a técnica
do bit-stuffing
stuffing quando o número de bits 1 sucessivos for superior a 5, além de prover
protocolos com reconhecimento
conhecimento e gereciamento da transmissão de dados.
dados
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
42
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A camada de enlace de dados fornece o 'enquadramento', ou seja, a determinação
de quais sinais elétricos representam bits e caracteres, para transferência de dados
através de uma conexão física, além de prover a detecção e recuperação de erros.
Se a recuperação não for possível, a camada de rede é notificada do erro.
Ela prove o controle de erro para compensar as imperfeições do meio físico e o
controle de fluxo para evitar que um transmissor rápido sobrecarregue de dados um
receptor lento.
Tradicionalmente, os protocolos têm confiado na presença de bits adicionais no fluxo
de dados para o enquadramento de caracteres (protocolos assíncronos) ou definem
caracteres adicionais para a sincronização e controle (protocolos síncronos
“orientados a byte", tais como o IBM BSC).
Numa abordagem mais moderna, os protocolos síncronos são 'orientados a bit' com
um quadro de formato fixo com comprimento em bytes variável – o frame (por
exemplo, os protocolos PPP, HDLC da Cisco e SDLC da IBM são síncronos).
A camada de enlace de dados pode usar mais de uma conexão física para suportar
uma única conexão de enlace de dados e, em tais casos, será responsável por
assegurar que os dados serão entregues à camada de rede em sequências corretas.
No caso em que um meio físico conecta mais de dois sistemas finais, por exemplo,
numa rede de área local (LAN), a camada de enlace de dados pode incluir uma
função de roteamento básico, por exemplo, os protocolos CSMA/CD (Ethernet) e
token-passing (Token Ring).
2.4.2.1 Funções interna da camada de enlace de dados
A seguir estão listadas as funções internas da camada de enlace.56
• estabelecimento e liberação da conexão de enlace;
• serviço de mapeamento de unidades de dados de serviço de enlace de dados;
• divisão (splitting) da conexão de enlace;
• formato do frame;
• delimitação e sincronização do frame;
• controle da sequência;
• detecção de erros;
• recuperação de erros;
• controle de fluxo;
• identificação e parâmetros de intercâmbio;
• controle de interconexão de circuitos de dados;
• gerenciamento da camada de enlace de dados.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
43
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2.4.2.2 Serviços prestados à camada de rede
A seguir estão listados os serviços prestados pela camada de enlace à camada de
rede:38
• conexão no enlace de dados;
• serviço de mapeamento d
de unidades de dados de serviço de enlace (PDU);
• identificação dos terminais da conexão de enlace de dados;
• sequenciamento;
• notificação de erro;
• controle de fluxo;
• parâmetros de qualidade de serviço.
2.4.2.3 Protocolos da camada de enlace no modelo OSI
X.25 nível 2, PPP, HDLC, Frame Relay, ATM, IEEE 802.3.
2.4.3 Camada de Rede do Modelo OSI
A Camada de Rede é a de número três do modelo OSI e pertence às chamadas
camadas inferiores.
A camada de rede atende solicitações da camada de transporte e solicita serviço
para a camada de enlace
enlace.
A unidade de dados padrão do protocolo (PDU) da camada de Rede é chamada de
"pacote".
Figura 2.7 Posição da camada de Rede no modelo OSI
OSI.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
44
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
De uma forma geral, podemos dizer que a camada de rede fornece os meios para
estabelecer, manter e encerrar conexões de rede entre sistemas abertos que se
comunicam através de entidades de aplicação.
Ela provê também os meios funcionais e de procedimentos para a troca de unidades
de dados de serviços de rede (PDUs) entre entidades de transporte que estão
utilizando conexões de rede.
O conjunto de protocolos de comunicação do modelo OSI especifica dois protocolos
de roteamento na camada de rede: End-System to Intermediate-System (ES-IS) e
Intermediate-System to Intermediate-System (IS-IS). Além disso, a pilha de
protocolos OSI implementa dois tipos de serviços de rede: 35
•
•
serviço não orientado a conexão (serviço sem conexão) e
serviço orientado a conexão (serviço com conexão)
A função básica da camada de rede é a interconexão de circuitos de comunicação
de dados em uma rede global que conecta todos os sistemas abertos. Assim, a
camada de rede executa tanto o endereçamento ponta a ponta como as funções de
encaminhamento, para permitir que os sistemas finais troquem dados. Existem
vários protocolos de rede, cada um otimizado num maior ou menor grau, para
satisfazer os requisitos específicos para a transmissão de dados entre redes
distintas. Redes X.21 de comutação de circuitos, redes de comutação de pacotes
X.25 (RENPAC no Brasil, por exemplo) e redes de área local, são exemplos de
protocolos de rede ou sub-redes nesse contexto.
A camada de rede é, portanto, em última instância, responsável pelo roteamento de
pacotes de uma comunicação entre os sistemas abertos envolvidos. Isso tem a
implicação de que os endereços de rede (os quais identificam os pacotes) devem ser
globalmente únicos.
2.4.3.1 Normas da camada de rede do modelo OSI
Um protocolo frequentemente citado como estando em conformidade com o nível da
camada de rede é o X.25 nível 3 (ou nível 3 do X.25).
Abaixo estão relacionadas algumas das normas que especificam protocolos e
serviços da camada de rede do OSI, além de documentos que descrevem outras
especificações dessa camada:35
•
ISO 8648 - Essa norma define a organização interna da camada de rede
(Internal Organization Network Layer - IONL), dividindo a camada de rede em
três subcamadas distintas para suportar diferentes tipos de sub-rede (no
sentido de infraestrutura de redes WAN).56
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
45
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
•
•
•
•
•
a norma define o endereçamento da
a camada de rede e
ISO 8348 - Essa
descreve os serviços orientados à conexão e sem conexão fornecidos pela
camada de rede do OSI.
ISO TR 9575 - Es
Essa
a norma descreve a estrutura, conceitos e terminologia
utilizada em relação aos protocolos de roteamento do OSI.
ISO 8473 – Define o p
protocolo
rotocolo para a prestação do serviço de rede no modo
sem conexão.
ISO 8878 – Estabelece o u
uso de X.25 para prestar
ar o serviço de rede orientado
a conexão do OSI.
ISO 8880 – Define a p
prestação
restação de serviço de rede orientado a conexão em
redes de área local funcionando com o controle de link lógico tipo de 2 (LLC
tipo 2).
2.4.3.2 Arquitetua Interna da Camada de Rede
A camada de rede tem uma arquitetura interna definida pela ISO 8648 e está
dividida em três subcamadas.
Figura 2.8 Subcamadas da camada de Rede do modelo OSI
OSI.56
As duas subcamadas inferiores são dependentes da sub
sub-rede
rede a ser utilizada, sendo
que a subcamada superior é independente.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
46
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2.4.3.3 Serviço da Camada de Rede Sem Conexão (Connectionless)
Nos primeiros anos do modelo OSI, houve um pressuposto implícito de que a
comunicação deveria ocorrer por meio de conexões lógicas, no modo de
transferência de dados com conexão (que utiliza os “pacotes”, como será visto a
seguir). Ou seja, a entidade que necessita de comunicação iniciaria a ligação (e,
durante esta fase inicial, discutiria os parâmetros da interação com a entidade de
destino); em seguida ocorreria a troca de dados; finalmente, na última fase, ela iria
encerrar a conexão.
Em muitos casos, esse era um modo conveniente de se usar (e tinha sido
anteriormente utilizado em muitas redes de "circuitos virtuais").
No entanto, existe outro modo de comunicação (modo de transferência sem conexão
que utiliza os "datagramas") em que um pacote de dados é transmitido de forma
completamente independente de todos os outros pacotes a serem transmitidos entre
as duas entidades (pelo menos ao nível da camada de rede – pois deve haver um
nível mais elevado que impõe ordenação e recuperação de erro).
A necessidade de tal modo surge especialmente em redes locais e na interconexão
de redes em geral.
O serviço da camada de rede OSI sem conexão é implementado usando o protocolo
de rede sem conexão (ConnectionLess Network Protocol - CLNP) e o serviço de
rede sem conexão (ConnectionLess Network Service - CLNS). O CLNP e o CLNS
são descritos na norma ISO 8348.37
O CLNP é um protocolo da camada de rede do OSI que transporta dados de
camadas superiores e indicações de erro em links sem conexão. O CLNP fornece a
interface entre o serviço sem conexão de rede (CLNS) e as camadas superiores.
O CLNS fornece serviços da camada de rede para a camada de transporte através
do CLNP. O CLNS não executa a configuração da conexão ou a sua desconexão
porque os caminhos são determinados de forma independente para cada pacote que
é transmitido através de uma rede. Isso contrasta com o Serviço de Rede no modo
com conexão (Connection-Mode Network Service - CMNS). Além disso, o CLNS
prevê a entrega na base do melhor esforço, o que significa que não há garantias de
que os dados não serão perdidos, corrompidos, desordenados ou duplicados. O
CLNS depende de protocolos da camada de transporte para realizar a detecção e
correção de erros.
O CLNS pode ser comparado ao serviço sem conexão prestado pelo protocolo IP da
camada de rede do modelo TCP/IP (que estudaremos no próximo capítulo).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
47
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2.4.3.4 Serviço da Camada de Rede Com Conexão
O modo de transferência com conexão era o modo preferencial para transferência de
dados do OSI, o qual utiliza os pacotes na troca de dados entre sistemas finais.
O serviço de rede do OSI orientado a conexão é implementado usando o Protocolo
de Rede Orientado a Conexão (Connection-Oriented Network Protocol - CONP) e o
Serviço de Rede Orientado a Conexão (Connection-Mode Network Service - CMNS).
O CONP é um protocolo da camada de rede OSI que transporta dados da camada
superior e provê indicações de erro em links orientados a conexão. O CONP baseiase na rede de pacotes X.25 - protocolo de camada de pacote (PLP), designação
utilizada na rede X.25 para a camada de rede, e é descrito na norma ISO 8208,
"X.25 Packet-Layer Protocol for DTE” (Protocolo X.25 da Camada de Pacote para o
DTE). O CONP fornece a interface entre o CMNS e as camadas superiores .
O CMNS é um serviço orientado a conexão da camada de rede, que atua como a
interface entre a camada de transporte e o CONP (protocolo orientado a conexão), e
é descrito na norma ISO 8878. O CMNS desempenha funções relacionadas com o
estabelecimento explícito de caminhos entre entidades da camada de transporte que
estão se comunicando. Estas funções incluem a configuração da conexão,
manutenção e a desconexão (término da conexão). O CMNS também fornece um
mecanismo para solicitar uma qualidade específica de serviço (QoS). Isso contrasta
com o serviço prestado pelo CLNS (Serviço sem conexão).
2.4.3.5 Endereços da Camada de Rede
O endereçamento da camada de rede OSI é implementado usando dois tipos de
endereços hierárquicos: endereços de pontos de acesso de serviços de rede
(network service access point - NSAP) e de títulos de entidades de rede (network
entity titles - NET).
Um ponto de acesso de serviços de rede (NSAP) é um ponto conceitual situado na
fronteira entre as camadas de rede e de transporte. O NSAP é o local em que os
serviços de rede OSI são fornecidos para a camada de transporte. Para cada
entidade da camada de transporte é atribuído um único NSAP, que é endereçado
individualmente em uma interconexão de redes OSI usando endereços NSAP.
Por sua vez, o endereço de um título de entidades de rede (NET) é usado para
identificar a camada de rede de um sistema sem associar esse sistema com uma
entidade da camada de transporte específico (como um endereço NSAP faz). Os
NETs são úteis para abordar sistemas intermediários (IS), como roteadores, que não
interfaceiam com a camada de transporte. Um IS pode ter um único NET ou vários
NETs, neste último caso ele participa em várias áreas ou domínios.35
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
48
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
O NET tem função semelhante ao endereço IP de um host no modelo TCP/IP.
Esta camada gerencia o encaminhamento dos dados (como enviá-los na direção
certa para o destino certo em transmissões de saída e como receber transmissões
de entrada no nível do pacote). A camada de rede faz o roteamento e a
retransmissão dos pacotes.
Em outras palavras, a camada de rede é responsável pelo encaminhamento de
dados (pacotes) através de uma infraestrutura de rede; lida com o endereçamento e
a entrega de dados. Esta camada fornece o controle de congestionamento, a
informação para gerenciamento da rede, o roteamento, o endereçamento e várias
outras funções.
Algumas características importantes de protocolos da camada de rede:
•
•
•
•
Preocupa-se com a transmissão de pacotes entre redes distintas.
Escolhe o melhor caminho para enviar um pacote (roteamento).
O encaminhamento pode ser complexo em uma grande rede.
O encaminhamento de pacotes através de uma rede pode ser realizado pela
utilização de rotas estáticas simples ou por meio de algoritmos dinâmicos
complexos de encaminhamento.
Dentro de uma rede de área local, muitas vezes não há função de rotina para a
camada de rede realizar (por exemplo, em uma rede CSMA/CD todos os dados são
transmitidos em broadcast).
A camada de rede não se limita a uma única rede e, de fato, grande parte da sua
complexidade deriva do fato de que as redes com infraestrutura diferentes podem
ser ligadas à camada de rede (por conseguinte, os protocolos pertinentes são muitas
vezes referidos como "os protocolos inter-redes"), de tal modo, a camada de rede
deve fornecer funções de retransmissão de pacotes entre as redes (ou sub-redes).
2.4.3.6 Funções da Camada Rede
A seguir estão listadas as funções internas da camada de rede.56
1.
2.
3.
4.
5.
6.
7.
8.
roteamento;
retransmissão (relaying);
conexões de rede;
multiplexação de conexão de rede;
segmentação e blocagem (blocking – agrupamento de PDUs menores);
detecção de erros;
recuperação de erros;
sequenciamento;
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
49
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
9. controle de fluxo;
10. transferência de dados acelerada;
11. reset;
12. seleção de serviços;
13. gerenciamento da camada de rede.
2.4.3.7 Serviços prestados à Camada de Transporte
A seguir estão listados os serviços prestados pela camada de rede à camada de
transporte:38
1. endereços de rede;
2. conexões de rede;
3. identificadores dos pontos finais da conexão de rede;
4. transferência unidades de dados de serviço de rede (PDU);
5. parâmetros de qualidade de serviço;
6. notificação de erro;
7. sequenciamento;
8. controle de fluxo;
9. transferência acelerada de unidade de dados de serviço de rede (PDU);
10. reset;
11. liberação;
12. recebimento da confirmação.
2.4.4 Camada de Transporte do modelo OSI
A Camada de Transporte é a de número quatro do modelo OSI. Ela pode ser
considerada uma camada pertencente às chamadas camadas inferiores. Outros
autores defendem que ela seja uma camada diferenciada, ou independente,
servindo como um divisor ou elo entre as camada superiores e as camadas
inferiores.
A camada de transporte atende solicitações da camada de sessão e solicita serviço
para a camada de rede.
A unidade de dados padrão do protocolo (PDU) da camada de Transporte é
chamada de "segmento”.
A camada de transporte é às vezes chamada de camada fim a fim pois sua
preocupação básica é transferir os dados entre um sistema final de origem e um
sistema final de destino.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
50
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 2.9 Posição da camada de Transporte no modelo OSI
OSI..
A camada de transporte
rte gerencia e controla
a a transmissão de dados fim a fim (por
exemplo, determina se todos os pacotes chegaram ao destino e na sequência
correta),, ou seja, a comunicação entre máquinas finais, e verifica ocorrência de
erros.
Ela garante a transferência de dados completa e segura entre sistemas finais, sendo
sua principal responsabilidade a integridade de dados,, verificando se a transmissão
de dados entre hosts é realizada de forma confiável e em tempo hábil.
Mensagens de grande tamanho em bytes
bytes, vindas da
a camada superior,
superior são divididas
em tamanhos menores de dados (os chamados segmentos) para serem entregues
para a camada de rede, caso seja necessário, e, em seguida, implementa o controle
de transmissão adequado. A camada de transporte cria uma ou mais conexões de
transporte sobre uma conexão de rede, dependendo das condições. Esta camada
também lida com o tipo de conexão que será criada.
A camada de transporte pode ser vista como prestando um serviço fim a fim
confiável, independente da infraestrutura de rede. Além disso, ela pode reduzir os
custos de rede, por exemplo, provendo a multiplexação para várias conexões de
transporte em uma única
ca conexão de rede, ou provendo a qualidade do serviço,
incluindo a capacidade de usar várias conexões de rede para transportar a carga de
uma única conexão de transporte.
Características importantes de camada de transporte:
•
•
Garante
arante um serviço confiável
confiável;
Divide a mensagem ((vinda da camada de sessão) em pacotes menores,
atribui número de seq
sequência e envia-os ao destino.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
51
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
O conjunto de protocolos de interconexão OSI implementa dois tipos de serviços na
camada de transporte:
• serviço de transporte orientado a conexão;
• serviços de transporte sem conexão (não orientado a conexão).
2.4.4.1 Classes de Serviços dos Protocolos da Camada de Transporte
As cinco classes, também chamadas de níveis de serviço, definidas para a camada
de transporte do modelo OSI são as seguintes:56
•
•
•
•
•
0 - classe simples - compatível com as recomendações para teletexto do ITUT (antigo CCITT);
1 - classe com recuperação de erro básico - com overhead mínimo, mas
capaz de se recuperar de erros sinalizados na camada de rede;
2 - classe com multiplexação - permite que várias conexões de transporte
sejam realizadas em uma única conexão de rede, mas sem recuperação de
erros;
3 - classe com recuperação de erros e multiplexação - como a classe 2, com
a capacidade de recuperar erros sinalizados na camada de rede;
4 - classe com detecção e recuperação de erros - como a classe 3, com a
detecção de erros não sinalizados pela camada de rede que ocorrem como
resultado de serviço de rede não confiável, por exemplo, perda de dados
corrompidos, falta de seqüenciamento e duplicação.
A escolha de classe pode ser negociada no momento da conexão, de acordo com a
natureza das exigências des rede e dos usuários subjacentes.
O Serviço de rede sem conexão é suportado apenas pela Classe de Protocolo de
Transporte 4 (TP4).
A Classe de Protocolo de Transporte 0 (TP0), usa o protocolo mais simples de
transporte OSI e desempenha funções de segmentação e remontagem. O TP0
requer serviço de rede no modo orientado a conexão.
A Classe de Protocolo de Transporte 1 (TP1) realiza segmentação e remontagem, e
oferece recuperação de erro básica. A classe TP1 sequencia as unidades de dados
de protocolo (PDUs) e irá retransmiti-las ou reiniciar a conexão se um número
excessivo de PDUs não for reconhecido. O TP1 requer serviço de rede orientado a
conexão.
A Classe de Protocolo de Transporte 2 (TP2) realiza segmentação e remontagem,
bem como a multiplexação e demultiplexação dos fluxos de dados ao longo de um
único circuito virtual. O TP2 requer serviço de rede orientado a conexão.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
52
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
53
A Classe de Protocolo de Transporte 3 (TP3) oferece a recuperação de erros básica
e executa a segmentação e a remontagem, além de multiplexação e
demultiplexação dos fluxos de dados ao longo de um único circuito virtual.
O TP3 também sequencia as PDUs e as retransmite ou reinicia a conexão se um
número excessivo delas não for reconhecido. O TP3 requer serviço de rede
orientado a conexão.
A Classe de Protocolo de Transporte 4 (TP4) oferece recuperação de erros básica,
realiza segmentação e remontagem e realiza a multiplexação e demultiplexação de
fluxos de dados ao longo de um único circuito virtual. O TP4 sequencia PDUs e as
retransmite ou reinicia a conexão se um número excessivo delas não for
reconhecido.
O TP4 presta serviço de transporte confiável e funciona com qualquer serviço de
rede sem conexão ou orientado a conexão. Ele é baseado no Protocolo de Controle
de Transmissão (TCP) na suíte de Protocolos do TCP/IP e é a única classe de
protocolo OSI que suporta o serviço de rede sem conexão.35
Tabela 2.1 Resumo das classes da camada de transporte do OSI.55
Nome da Característica
TP0 TP1 TP2 TP3 TP4
Rede orientada a conexão
S
S
S
S
S
Rede não orientada a conexão
N
N
N
N
S
Concatenação e separação
N
S
S
S
S
Segmentação e remontagem
S
S
S
S
S
Recuperação de erros
N
S
S
S
S
Reiniciar a conexão (se um número excessivo de PDUs não
N
forem reconhecidas)
S
N
S
S
Multiplexação e demultiplexação sobre um único circuito
N
virtual
N
S
S
S
Controle de fluxo explícito
N
N
S
S
S
Retransmissão no caso de timeout
N
N
N
N
S
Serviço de transporte confiável
N
S
N
S
S
A camada de transporte esconde os peculariedades da rede a serem usadas pelas
camadas superiores.
No caso de uma rede comutada de pacotes os seguintes detalhes seriam
escondidos:
1. Limitações de tamanho de pacote (por segmentação e concatenação);
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2. Limitações de taxa de transferência (por multiplexação ou divisão);
3. Perda de dados causada por redefinições de rede e resets.
2.4.4.2 Normas da Camada de Trasporte do modelo OSI
• ISO 7498 funções da camada de transporte.
• ISO 8072 definição de serviços da camada de transporte.
• ISO 8073 especificação do protocolo da camada de transporte.
2.4.4.3 Funções internas da camada de transporte
A seguir estão listadas as funções internas da camada de transporte:56
1.
2.
3.
4.
5.
mapeamento de endereço de transporte para o endereço de rede;
multiplexação (fim a fim) de conexões de transporte em conexões na rede;
estabelecimento e liberação de conexões de transporte;
controle de sequência fim a fim em conexões individuais;
detecção de erro fim a fim e qualquer monitoração necessária da qualidade
de serviço;
6. recuperação de erros fim a fim;
7. segmentação fim a fim, blocagem e concatenação;
8. controle de fluxo fim a fim em conexões individuais;
9. transferência rápida de unidade de dados de serviço de transporte;
10. gerenciamento.
2.4.4.4 Serviços prestados para a camada de sessão
A seguir estão listados os serviços prestados pela camada de transporte à camada
de sessão:38
1. estabelecimento da conexão de transporte;
2. a transferência de dados;
3. liberação da conexão de transporte.
2.4.4.5 Protocolos da camada de transporte do modelo OSI:
Protocolo de Transporte (Transport Protocol - TP) classes TP0 a TP4.
2.4.5 Camada de Sessão do modelo OSI
A Camada de Sessão é a de número cinco do modelo OSI e pertence às chamadas
camadas superiores.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
54
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A camada de sessão atende solicitações da camada de ap
apresentação
resentação e solicita
serviço para a camada de transporte.
Figura 2.10 Posição da camada de Sessão no modelo OSI
OSI.
A unidade de dados padrão do protocolo (PDU) da camada de Sessão é chamada
de "dados" ou “mensagem
mensagem”.
Figura 2.11 Estrutura da camada de sessão.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
55
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A camada de sessão é a primeira do modelo OSI a gerenciar troca de dados entre
aplicações nos sistemas finais, através do envio das PDUs (SPDU) entre eles.
Figura 2.12 PDU da camada de sessão.45
2.4.5.1 Funções da camada de sessão
A camada de sessão assume que uma conexão virtual confiável ponto a ponto tenha
sido estabelecida (pela camada inferior, ou seja, pela camada de transporte) e
contém especificações para gerenciar o diálogo entre dois sistemas fim a fim.
Ela é responsável pela criação, gerenciamento
nciamento e término de sessões entre
sistemas aplicativos. Uma sessão pode ser descrita como um tipo de gerenciamento
de conexões entre sistemas aplicativos com a finalidade de um tipo específico de
comunicação. Por exemplo, uma sessão pode ser criada com a finalidade de
autenticação do usuário, ou para iniciar uma transferência de um arquivo.
Podemos entender também que as ssessões de comunicação consistem em pedidos
e respostas que ocorrem entre aplicações. Os serviços da camada
amada de sessão são
comumente usados em ambientes de aplicativos que fazem uso de chamadas de
procedimento remoto (RPC)
(RPC).
O controle de diálogo na transferência de dados é usado para determinar qual
computador está realizando pedidos e qual o computador está providenciando
respostas. Além disso, determina se reconhecimentos são necessários para a
transmissão de dados.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
56
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A camada de sessão também é responsável pela diferenciação entre múltiplas
conexões de rede, assegurando que os dados sejam enviados através da conexão
correta, além de retirar os dados de uma conexão e retransmiti-los para a aplicação
correta.
Serviços prestados pela camada de sessão são:
•
•
•
Autenticação;
Permissão;
Restauração da sessão (checkpointing e recuperação).
2.4.5.2 Funções e responsabilidades da camada de sessão
A seguir listamos as principais funções da camada de transporte:56
•
•
•
•
Permite a comunicação entre processos de aplicações locais e remotos,
determinando o modo de comunicação entre os pontos finais (half-duplex ou
full-duplex);
Ela estabelece, gerencia e termina as conexões entre dois processos de
aplicação;
Sincroniza a comunicação, adicionando pontos de checagem de erros no
fluxo de dados;
Informa erros das camadas superiores para o usuário.
Para executar as duas funções iniciais, comunicação entre processos finais, a
camada de sessão tem que determinar se os dados permanecerão localmente a um
computador ou se devem ser obtidos ou se devem ser enviados a um dispositivo de
uma rede remota. No último caso, a camada de sessão inicia a conexão.
Nessas mesmas funções, a camada de sessão é também responsável pela
coordenação da maneira como a comunicação entre os sistemas applicativos
acontece, o que é conhecido como controle de diálogo. Em algumas sessões,
apenas um sistema está autorizado a transmitir num determinado período de tempo,
conhecido como modo de comunicação half-duplex. A camada de sessão seria
responsável por determinar de quem é a vez, nessas situações, e por quanto tempo
cada sistema é permitido se comunicar. Em outros casos, dois sistemas podem
transmitir ao mesmo tempo, que é também conhecido como modo de comunicação
full-duplex. Se o fluxo de comunicação foi de alguma forma interrompido, a
camada de sessão seria responsável por reconhecer isso e restabelecer a
sessão.
Ou seja, no gerenciamento de sessões, com controle de fluxo, esta camada irá
determinar se a comunicação na sessão será usada em modo simplex, half-duplex
ou duplex. Em cada um dos casos, é a camada de sessão quem vai controlar o fluxo
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
57
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
das transmissões de dados. Este gerenciamento pode ser feito de diversas formas.
Uma das formas mais comuns é o uso de fichas, ou tokens, os quais determinam
qual dos lados pode estabelecer uma comunicação em determinado momento
(apenas quem possui o token pode se comunicar em determinado momento).
Uma outra função, a da sincronização do trabalho de comunicação, também é
importante, pois imagine o caso de comunicações de longa duração. A não
existência de pontos intermediários de checagem de erros/falhas e de sincronização
poderia ocasionar problemas sérios. No caso, por exemplo, de uma linha de
comunicação que apresentasse um tempo médio entre falhas de uma hora, um
processo de transferência de informação que demorasse duas horas, ou mais,
jamais ocorreria se não existisse um trabalho de sincronização em pontos
intermediários.
Devido a essas características, a camada de sessão (ou nível de sessão, como
também é chamado), pode ser vista como uma versão aprimorada da camada de
transporte. Ela fornece uma metodologia para controle do diálogo, de forma a
estabelecer qual das partes está falando, além de fornecer também facilidades para
a sincronização. Está última facilidade permite aos usuários inserir pontos de
controle em transferências muito longas de dados, de maneira que, na
eventualidade de uma falha, seja necessário apenas retornar a transmissão para o
último ponto de controle, em vez de retornar a transmissão ao seu inicio, no caso em
que seria necessário retransmitir todos os dados antes da falha.
É importante destacar que, enquanto a camada de transporte controla a transmissão
confiável de um fluxo de bytes entre aplicativos finais, utilizando confirmações e
janelas deslizantes, por sua vez a camada de sessão controla a sequência lógica na
troca de mensagens entre aplicativos finais. Nesse controle de mensagens entre
aplicativos, ela pode especificar parâmetros utilizados, sequências e finalizações
para uma dada aplicação.
Em última análise, as sessões são usadas para manter o controle de conexões
individuais entre sistemas aplicativos finais.
Porém, na prática, nem todas as aplicações fazem uso da camada de sessão.
2.4.5.3 Exemplo de uso da camada de sessão
Um exemplo de um protocolo da camada de sessão do modelo OSI é o X.235 ou
ISO 8327. Este protocolo pode tentar recuperar a conexão em caso de falha na
sessão. Se uma conexão não for usada por um longo período, o protocolo da
camada de sessão pode fechá-la e abri-la novamente. Portanto, ele fornece pontos
de sincronização no fluxo de mensagens trocadas.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
58
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
ma analogia com relação aos sistemas atuais, sseu
eu navegador é um
Usando uma
excelente exemplo do uso de sessões. Imagine seu navegador (um objeto de
camada de aplicação)) abrindo uma página da web num determinado servidor. Essa
página contém textos, gráficos
gráficos, objetos Macromedia Flash e talvez até applet em
Java. Os gráficos, os objetos Flash e applets Java são armazenados como arquivos
separados no servidor web. Para acessá-los, um download separado deve ser
iniciado. Seu navegador abre uma sessão separada para o servidor
servi
web para baixar
todos os arquivos individuais. A camada de sessão mantém informações de quais
pacotes e dados pertencem a qual arquivo e mantém o controle para onde os
arquivos devem ser enviados (neste caso, para o seu navegador da web).
d técnica de host
Um outro exemplo da utilização da camada de sessão é a da
multihoming proposta para melhorar a qualidade de serviço de aplicações através do
estabelecimento de várias sessões dist
distintas,
ntas, conforme podemos ver na figura a
44
seguir.
Figura 2.13 Arquitetura proposta para dividir a camada de sessão.44
Na figura acima vemos a arquitetura proposta44 para dividir “n” sessões iniciadas
pelas aplicações, visando a melhoria da performance dos aplicativos, na qual cada
sessão escolhe o serviço a ser prestado pela camada de transporte, a partir da
solicitação vinda da camada de aplicação.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
59
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Para atender solicitações da camada de aplicação e para solicitar serviços à camada
de transporte a camada de sessão utiliza diretivas de software. A seguir listamos
algumas dessas diretivas.
Tabela 2.2 Exemplo de diretivas de uma API da camada de sessão.44
Função
Parâmetros
Propósito
session
Semântica desejada
Criar ponto final de
socket
comunicação
session
Descritor da Sessão, número de
“Escutar” a porta local
bind
porta
session
Descritor da Sessão, endereço
Estabelecer sessão com o
connect
remoto e número de porta
host remoto
session
read
session
write
session
close
Descritor da Sessão, flag de
blocagem
Descritor da Sessão,
quantidade de dados, flag da
blocagem
Descritor da Sessão
Solicitar dados da camada de
sessão
Entregar dados para a
camada de sessão
Terminar a sessão
2.4.5.4 Protocolos da camada de sessão
No modelo OSI os protocolos da camada de sessão são os seguintes.
X.225 ISO 8327 (Session-layer protocol - SP OSI) Definição do protocolo orientado
a conexão básico (Basic connection - oriented session protocol definition).
X.235 ISO 9548-1 Protocolo simples para a transferência de dados e controle de
informações entre duas entidades da camada de sessão.
X.215 ISO 8326 Definição do serviço orientado a conexão básico (Basic connection oriented session service definition).
Seguem alguns outros protocolos que, embora não sejam do modelo OSI, realizam a
função da camada de sessão desse modelo:
Network File System (NFS): acesso ao sistema de arquivos em rede do Unix, o
qual usa o RPC;
Structured Query Language (SQL): consultas à base de dados local ou remota;
Remote Procedure Call (RPC): mecanismo de comunicação cliente-servidor;
AppleTalk Session Protocol (ASP): mecanismo de comunicação cliente-servidor
da AppleTalk;
X Windows: sessões de desktop remoto;
Server Message Block (SMB): protocolo de compartilhamento de arquivos em rede;
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
60
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Network Basic Input/Output System (NetBIOS): protocolo de interconexão de
aplicações de computadores numa rede LAN;
Session Initiation Protocol (SIP): Protocolo de iniciação de sessão;
Session Control Protocol DECnet (SCP): Protocolo de controle de sessão.
2.4.5.5 A camada de sessão nos aplicativos atuais (TCP/IP)
Em aplicações
cações de Internet mais modernas, a camada de sessão não existe no
modelo TCP/IP, sendo absor
absorvida
vida pela camada de aplicação naquela pilha de
protocolos (juntamente com a camada de apresentação).
Muitas aplicações de rede contêm pouca ou nenhuma das especificações da
camada de sessão e deixam estas decisões para a camada de aplicação.
aplicação
Portanto, caso
aso as funções da camada de sessão do modelo OSI são exigidas, num
determinado aplicativo, algum protocolo que execute essas funções é executado na
camada de aplicação do TCP/IP.
2.4.6 Camada de Apresentação
2.4.6.1 Introdução
A Camada de Apresentação é a de número seis do modelo OSI2 e pertence às
chamadas camadas superiores
superiores.
A sua PDU é chamada de Dados ou Mensagem.1
Figura 2.14 Posição da camada de Apresentação no modelo OSI.
OSI
No modelo OSI, ela atende as solicitações de serviço da camada de aplicação e
solicita serviço para a camada de sessão
sessão.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
61
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 2.15 Modelo de Protocolo da Camada de Ap
Apresentação
resentação.45
No mundo real, as PPDUs são mensagens com regras de codificação básicas do
ASN.1 (BER), mas poderiam ser primitivas da camada de aplicação mapeadas em
primitivas da camada de sessão (“Phantom” PPDUs).45
2.4.6.2
2 Papel da Camada de Apresentação
A camada de apresentação é a primeira das camadas do modelo OSI que provê a
interoperabilidade entre mensagens trocadas entre aplicações. As primeiras cinco
camadas prestam um serviço de comunicação, transferindo um conjunto de bytes,
mas não abordam o significado (semântica) ou estrutura (sintaxe) da comunicação.
Portanto, como veremos em seguida, a camada de apresentação tem a ver com a
sintaxe
axe e a semântica das mensagens, conversão de códigos entre máquinas e
outros serviços de conversão de dados para que possa ocorrer a troca de
informações entre aplicações finais.
Quando utilizamos em nossos aplicativos e na tela de um computador caracteres
caracte
intermitentes, vídeo reverso, formatações especiais para entrada de dados, gráficos
e outros recursos, estamos atuando exatamente na camada de apresentação.
Portanto, ao executar tais tarefas, as pessoas começam a se preocupar com o que
elas estão enviando
ando em um nível mais avançado do que apenas usar ou transferir
uma quantidade de zeros e uns. Esta camada lida com questões como quanto à
forma de como as sequências são representadas – por exemplo, se elas usam o
método do Visual Basic ("13, thisisastrin
thisisastring") ou o método do C/C + + ("thisisastring \
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
62
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
0"). A ideia é que a camada de aplicação deve ser capaz de apontar para os dados a
serem movidos, e a camada de apresentação irá se encarregar de transferi-los
corretamente.
A camada de apresentação, conforme seu próprio nome diz, apresenta dados para a
camada de aplicação. Ela é essencialmente um tradutor e fornece funções de
codificação e conversão. A técnica de transferência de dados bem-sucedida é
aquela que adapta os dados em um formato padrão antes da transmissão. Os
computadores são configurados para receber esses dados genericamente
formatados e, em seguida, converter os dados de volta para o seu formato nativo
para uma leitura real (por exemplo, EBCDIC para ASCII). Ao fornecer serviço de
tradução, a camada de apresentação assegura que os dados transferidos a partir da
camada de aplicação de um sistema final possam ser lidos pela camada de
aplicação de outro sistema final.
O papel da camada de apresentação é transformar os dados no formato que a
camada de aplicação possa aceitar. O serviço prestado pela camada de
apresentação é o de lidar com os problemas de compatibilidade de representação
dos dados. Esta camada converte, comprime, formata e criptografa os dados a
serem enviados através de uma rede.
Nesse sentido, a camada de apresentação fornece independência aos processos de
aplicação contra diferenças na representação dos dados (sintaxe), permitindo que o
usuário selecione o contexto da apresentação, para tentar atenuar as diferenças na
representação dos dados entre os hosts. Permite processos incompatíveis na
camada de aplicação se comunicar por meio da camada de sessão.
A camada de apresentação é responsável pela entrega e formatação das
informações para a camada de aplicação para processamento posterior ou exibição.
Ela libera a camada de aplicação da preocupação com as diferenças sintáticas em
representação de dados nos sistemas do usuário final. Um exemplo de um serviço
de apresentação seria a conversão de um arquivo de texto com código EBCDIC para
um arquivo com código ASCII.
A camada de apresentação se preocupa com a representação dos dados
transferidos entre as aplicações, possuindo as seguintes responsabilidades:
•
•
Tradução (Sintaxe e semântica da Informação transmitida): gerencia
informações em formato de dados para comunicações em rede;
Codificação de padrões de transmissão da Informação (ASCII, EBCDIC,
Unicódigo): para mensagens enviadas, ela converte os dados em um formato
genérico para transmissão em rede; para as mensagens recebidas, ela
converte os dados do formato de rede genérico para um formato que o
aplicativo destinatário possa entender;
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
63
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
•
•
•
Compatibilização das estruturas de representação de dados para a
comunicação de computadores baseados em diferentes processadores, com
diferentes representações da informação, através do uso de códigos de dados
abstratos (linguagem abstrata ASN.1);
Criptografia e descriptografia (propósitos de segurança);
Compressão e descompressão de dados (melhoria da eficiência na
transmissão dos dados).
2.4.6.3 Funções da Camada de Apresentação
Existem três funções básicas normalmente associadas com esta camada:
• conversão interna de representação de dados (codificação),
• criptografia,
• compressão.
Dessas funções, uma (ou mais) pode ser usada por protocolos de camada de
aplicação.
2.4.6.3.1 Conversão interna dos dados (codificação)
Provavelmente, a tarefa mais básica que a Camada de Apresentação do OSI é
confrontada a realizar, é aquela referente com as preocupações das diferenças nas
maneiras em como os dados são armazenados internamente em várias arquiteturas
de computadores. Os problemas não se estendem apenas aos caracteres
alfanuméricos, mas também para os dados numéricos.52
Como exemplo de incompatibilidade de representação interna de dados, podemos
citar a forma como os microprocessadores da Intel e da Motorola representam seus
dados: enquanto que os processadores da Intel (família 8086) representam seus
bytes da direita para esquerda, ou seja, de forma invertida, os microprocessadores
da Motorola (família 68000) os representam da esquerda para direita.
Os PCs baseados em chips Motorola 68000 PCs compartilham muitas
características com arquiteturas dos mainframes da IBM. Entre elas está o fato de
que esses computadores são chamados de "big endian". Em uma arquitetura big
endian, o byte mais significativo da palavra é armazenado com o menor endereço de
memória. Isso significa que eles armazenam seus bytes (octetos) formalmente na
memória a partir de byte 0 dentro de uma "palavra" (geralmente 32 bits).
Assim, nessa arquitetura, a sequência de caracteres ASCII "cd" (63 64 em
hexadecimal) é armazenada internamente como 11000011 11000100 (byte 0, byte
1).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
64
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Por sua vez, produtos baseados em chips Intel são chamados de "little endian".
Numa arquitetura little endian, o byte menos significativo da palavra é armazenado
com o menor endereço de memória.
Assim, nessa outra arquitetura, a seqüência de caracteres ASCII "cd" (63 64 em
hexadecimal) é armazenado internamente como 11000100 11000011 (byte1, byte 0)
nessas máquinas.
Os termos little endian e big endian vêm do livro “As Viagens de Gulliver” de Swift
onde os políticos lutam guerras para definir qual extremidade do ovo deve ser
quebrada em primeiro lugar. Não existe o melhor caminho; eles são apenas
diferentes.52
Números inteiros são diferentes também. Alguns computadores com arquiteturas de
32 bits armazenam o inteiro "2" na memória como uma sequência de 32 bits. Isso
ocorre porque o local de armazenamento de memória básico é de 32 bits de
comprimento (daí o nome).
Outros computadores com arquiteturas de 64 bits armazenam o inteiro na memória
como uma sequência de 64 bits. Mais uma vez, não é melhor nem pior, apenas
diferente.
Em nenhum dos casos existe um problema com a representação interna de cadeias
de caracteres e números. O problema é quando esses dados são enviados através
da rede a partir de um tipo de computador para outro. Como deve ser a string "cd" e
o número "2" ser representado na rede de modo que eles não cheguem como "dc"
ou um "0 " seguido de um "2" ou algo ainda pior?52
Pelo exposto acima, podemos dizer que a principal tarefa desta camada é codificar
dados estruturados de acordo com o formato interno do transmissor a um formato
adequado para transmissão dos mesmos e depois decodificá-los de acordo com o
exigido no equipamento de destino. Essa camada é responsável pela formatação de
telas e de arquivos, de modo que o produto final tenha a aparência que o
programador deseja.
Fica claro que se os dados fossem transmitidos diretamente haveria uma grande
confusão quando da comunicação e interpretação dos dados. Para evitar isso, em
algum lugar deve ser feita uma conversão desses dados.
Essa conversão poderia ser feita de duas maneiras: cada receptor decodificaria os
dados recebidos ou o transmissor e o receptor codificariam os dados para um
formato de transmissão padronizado e os decodificariam de acordo com sua
representação original.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
65
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A primeira solução seria inconveniente, pois o receptor deveria ser capaz de
identificar as diferenças entre ele e todos os demais processadores com os quais vai
se comunicar para ser capaz de adaptar os dados recebidos a seu formato interno.
Já para a segunda solução teríamos um algoritmo bem mais simples: o codificador e
o decodificador poderiam se basear em uma estrutura padrão para transmissão e o
formato de representação interna dos dados seria irrelevante. É neste ponto que a
linguagem ASN.1 mostra sua importância, conforme veremos mais adiante neste
livro.
2.4.6.3.2 Compressão de dados
A compressão é um método de representação de dados com menor quantidade de
bits pela remoção de redundâncias, compactando deste modo os dados originais.
Como a compressão é tecnicamente uma questão de representação de dados, ela
se encaixa na camada de apresentação. A compressão reduz a quantidade de bytes
necessários ao armazenamento (o espaço de disco) dos dados. A largura de banda
necessária para transmitir os dados também é reduzida com essa técnica. Os dados
comprimidos devem ser descompactados antes do uso. Os esquemas de
compressão e descompressão devem ser compatíveis, pois com a variedade de
fornecedores de softwares e hardwares que precisam interoperar, deve haver
normas definidas para tal tarefa.
2.4.6.3.3 Criptografia de dados
A criptografia é o processo de disfarçar os dados que serão transmitidos. Aqueles
que não conhecem o método de disfarce utilizado não podem decifrá-lo; aqueles que
conhecem o método, podem fazê-lo.
A criptografia é tecnicamente uma função de representação de dados, portanto, da
mesma forma que a compressão, ela é tipicamente feita também na camada de
apresentação, embora possa ser feita na camada de aplicação, de sessão, de
transporte, ou na camada de rede, tendo cada uma dessas opções suas próprias
vantagens e desvantagens.
Com a criptografia, documentos de real importância podem ser enviados por redes
de computadores sem que sejam lidos por pessoas não autorizadas.
Quando é feita uma criptografia dos dados, uma unidade de criptografia é inserida
entre as duas máquinas, sendo que primeiramente os dados são codificados de
forma a serem entendidos por ambas as máquinas e depois são criptografados de
forma que só as duas máquinas vão conseguir interpretar os dados.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
66
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2.4.6.4 Exemplo de Uso da Camada de Apresentação
Em um exemplo prático, duas empresas - A e B - implementam um sistema de
intercâmbio eletrônico de dados (EDI) para compartilhar a troca de informações de
compra e venda de produ
produtos entre seus sistemas de computadores corporativos. Por
questões de segurança e privacidade, a Empresa A e a Empresa B desejam
criptografar todas as mensagens eletrônicas trocadas entre elas.
el
A tarefa de
criptografia reside na camada de apresentação, que é responsável por todas as
conversões "geralmente úteis".52
Figura 2.16 Exemplo da Camada de Apresentação.52
No cenário da Internet a exigência de criptografia é muito real. Trocas EDI
frequentemente
entemente envolvem a transferência de fundos monetários, bem como a
entrada de um pedido. Uma série de protocolos de criptografia foram desenvolvidos
para uso em aplicações d
da Internet. Um que é amplamente utilizado, especialmente
em sistemas baseados em PC, é chamado de Pretty Good Privacy (PGP).
2.4.6.5 Serviço de Conversão de Código da Camada de Apresentação
O serviço de conversão de código da camada de apresentação pode ser realizado
pela linguagem abstrata Abstract Syntax Notation One (ASN.1). Ela resolve o
problema de formatos de dados inconsistente
inconsistentes
s suportados em vários computadores,
especificando um formato de dados padrão. Nesse caso, a camada de apresentação
presta um serviço de modo geral que é usado por muitos protocolos da camada de
aplicação. Embora os serviços de camada de apresentação po
possa
ssam ser oferecidos
pela camada de aplicação, eles são colocados na camada de apresentação, porque
eles são gerais e devem estar disponíveis para todas as aplicações.52
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
67
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2.4.6.5.1 Sintaxe (Linguagem) Abstrata e Sintaxe (Linguagem) de Transferência
Na camada de Apresentação, considera-se que os dados do usuário são
informações puras, separadas de qualquer representação. No transmissor, o
protocolo da camada de apresentação gera uma string de octetos apropriados
(acordados por negociação) para o serviço de sessão transportar esta informação
durante a transferência de dados entre sistemas finais, e decodifica a string de
octetos recebidos para produzir as informações puras no receptor, para que possam
ser entregues para a camada de aplicação.46
Esse pode ser um conceito difícil de entender, principalmente para aqueles que
veem as camadas como uma arquitetura de implementação. É evidente que é um
pouco difícil de passar informações puras divorciadas de representação em uma
interface de implementação real, e as pessoas às vezes dizem que "a Camada de
Apresentação mapeia uma representação local para uma representação de
transferência negociada", porque isso é o que alguma parte de código em algum
lugar na implementação estará realmente fazendo. É, no entanto, um modelo
impróprio, uma vez que implicaria que os (protocolos) padrões da camada de
aplicação especificariam valores em alguma representação local - claramente um
absurdo. Representações locais de informação são parte da implementação, e não
têm visibilidade no trabalho dos padrões (OSI).46
Em outras palavras, a sintaxe de transferência fornece bitstrings que de forma
inequívoca (mas não necessariamente com exclusividade) representam os valores
abstratos (valores de dados de apresentação) na sintaxe abstrata com a qual eles
estão associados. Onde houver mais de um bitstring na sintaxe de transferência
associado com algum valor abstrato particular, então é uma opção da
implementação definir qual deles usar em qualquer transferência particular. Se uma
sintaxe de transferência tem um único bitstring para cada valor abstrato, chamamos
isso de uma sintaxe de transferência canônica (a qual se refere a questões de
segurança.)
Analisando o conjunto de valores de dados de apresentação para este protocolo de
aplicação podemos pensar nele como uma coleção de valores, e nós damos um
nome a esta coleção. Nós a chamamos de sintaxe abstrata do protocolo. Então
projetistas de protocolos na camada de aplicação especificam a sua sintaxe abstrata
(de alguma forma - notação formal, Inglês comum, qualquer que seja).
Uma sintaxe abstrata, então, é uma coleção de valores de dados de apresentação
(às vezes chamada apenas de valores de dados, e às vezes chamada apenas de
valores ou valores abstratos) a ser transferida pela camada de apresentação através
da operação de algum protocolo específico.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
68
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Para que o mecanismo do protocolo de apresentação possa converter esses valores
abstratos em bits para a camada de sessão poder transferir, é necessário ter
associado a esta sintaxe abstrata (esta coleção de valores de dados de
apresentação) um conjunto de bitst
bitstrings.
rings. Este conjunto de bitstrings é chamado de
sintaxe de transferência para aquela sintaxe abstrata.
A sintaxe de transferência (conjunto de bitstrings) para uma sintaxe abstrata tem as
seguintes propriedades:47
•
•
Para cada valor de dados (apresentação) na sintaxe abstrata há um ou mais
bitstrings na sintaxe de transferência associados a esse valor.
Cada bitstring na sintaxe de transferência é distinto, e tem um valor abstrato
precisamente associado a ele.
Figura 2.17 Princípio da camada de Apresenta
Apresentação do OSI.40
Um contexto da camada de apresentação é definido como uma associação entre
uma sintaxe abstrata e uma sintaxe de transferência associada. Em outras palavras,
é um conjunto de valores de dados de apresentação (aqueles na sintaxe abstrata)
para o qual a sintaxe de transferência foi acordada, e que representa uma instância
de uso de uma sintaxe abstrata em alguma conexão da camada de apresentação.
Para cumprir os requisitos discutidos acima, nós reconhecemos que qualquer
sintaxe abstrata dada p
pode
ode ter várias instâncias de uso (múltiplos contextos de
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
69
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
apresentação, com a mesma ou com diferentes sintaxes de transferência), e que a
unidade básica de transferência de dados deve ser a transmissão de um valor dos
dados de apresentação de algum contexto de apresentação identificado.
Em qualquer ponto no tempo em uma conexão, um número (potencialmente
ilimitado) de contextos de apresentação terá sido acordado para uso (definido), e os
valores a partir de qualquer um desses contextos pode ser transferido. Este conjunto
de contextos de apresentação é chamado o conjunto de contexto definido (defined
context set - DCS).47
2.4.6.6 Introdução ao ASN.1
Ao contrário das camadas mais abaixo na pilha OSI, cuja função é transferir bits de
um transmissor para um receptor, de forma confiável e eficiente, a camada de
apresentação cuida dos significados desses bits. As mensagens não são compostas
de um conjunto de bits agrupados de forma aleatória, mais sim de informação bem
estruturada, tal como nomes de pessoas, endereços, saldos bancários e assim por
diante.
Na camada ou nível de apresentação é possível definirem-se registros contendo
campos para recebimento de informação estruturada, e então fazer com que o
transmissor informe ao receptor que a mensagem é composta por registros em
determinados formatos. Isto facilita muito a comunicação entre máquinas com
diferentes representações internas.46
A camada de apresentação estabelece um contexto entre as entidades da camada
de aplicação, no qual as entidades de camadas mais altas podem usar diferentes
sintaxes e semânticas se o serviço de apresentação fornecer um mapeamento entre
eles. Se um mapeamento está disponível, unidades de dados de serviços de
apresentação (PPDUs) são encapsuladas em unidades de dados de protocolo de
sessão, e passadas para baixo na pilha.
Essa camada fornece independência para a representação de dados (por exemplo,
criptografia), traduzindo os formatos dos aplicativos e da rede. A camada de
apresentação transforma os dados num formato que o aplicativo aceita. Esta
camada formata e criptografa os dados a serem enviados através de uma rede. Por
isso, às vezes a camada de apresentação é chamada de camada de sintaxe.47
Por outro lado, "Chamamos de sintaxe concreta, a representação, em uma
determinada línguagem de programação, das estruturas de dados a serem
transferidas. É uma 'sintaxe' porque respeita as regras lexicais e gramaticais de
uma linguagem (C por exemplo); é chamada “concreta” porque é realmente
manipulada por aplicativos (implementados nesta mesma linguagem) e que está em
conformidade com as restrições das arquiteturas de máquinas".46
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
70
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
“A fim de se libertar da diversidade de sintaxes concretas acima mencionadas, as
estruturas de dados a serem transmitidas deverão ser descritas independentemente
das linguagens de programação utilizadas. Esta descrição deve também respeitar as
regras lexicais e gramaticais de uma determinada língua (ou linguagem), mas deve
manter-se independente da linguagens de programação e nunca ser diretamente
implementada em uma máquina. Por essas razões, chamamos de sintaxe abstrata
tal descrição e de Abstract Syntax Notation ou ASN a linguagem em que esta
sintaxe abstrata é denotada”.46
A estrutura de apresentação original usa as regras básicas de codificação da
Abstract Syntax Notation One (ASN.1), com capacidades, tais como a conversão de
um arquivo de texto com código EBCDIC para um arquivo com código ASCII, ou
serialização de objetos e outras estruturas de dados de e para a linguagem XML.47
Uma especificação ASN.1 é apenas uma descrição estática dos dados; ele não pode
descrever as operações a ser aplicadas a esses dados.
Muitas diferentes mensagens podem ser trocadas entre as aplicações. A sintaxe
abstrata deve então descrever de forma mais condensada todo o conjunto dessas
mensagens.
Resumindo, a ASN.1 não é uma sintaxe abstrata mas uma linguagem para
descrevê-las.
Parece ser vantajosa uma transferência de dados quando ela é independente das
arquiteturas de máquinas. Tal como para os dados recebidos na forma de fluxos de
bytes ou bits, eles devem estar de acordo com uma sintaxe chamada sintaxe de
transferência para que estes fluxos possam ser devidamente reconhecidos pelas
máquinas pares.
Naturalmente, esta sintaxe de transferência depende completamente da sintaxe
abstrata, uma vez que estabelece como os dados devem ser transmitidos de acordo
com esta sintaxe abstrata. Na verdade, a sintaxe de transferência estrutura e ordena
os bytes que são enviados para a outra máquina. Mas ao contrário da sintaxe
abstrata, é uma grandeza física e, por isso, deve ter em conta a ordenação dos
bytes, o peso dos bits, etc.
Sintaxes de transferências diferentes podem ser associadas com uma única sintaxe
abstrata. Isto é particularmente interessante quando o rendimento aumenta e faz
com que a codificação mais complexa seja necessária: nesse caso, no entanto, é
possível alterar a sintaxe de transferência, sem alterar a sintaxe abstrata.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
71
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 2.18 Linguagem abstrata (ASN1) e linguagens concretas.46
Analisando a figura anterior
anterior, nós verificamos existirem quatro sintaxes: uma sintaxe
abstrata, duas sintaxes concretas e uma sintaxe de transferência. As setas
estabelecem as ligações que existem entre a
as sintaxes.
A partir de uma única descrição de dados ASN.1, podemos derivar automaticamente
muitas sintaxes concretas necessárias (ou seja, num maior número de linguagens
l
de
programação), e muitos procedimentos implementando a sintaxe de transferência
em codificadores (que codificam os dados em um fluxo bit
bits ou de bytes) e em
decodificadores, como é desejado
desejado.
Figura 2.19 Assimetria da linguagem abstrata (ASN1).46
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
72
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Portanto, é um compilador ASN.1 que realiza a geração automática das derivações
das sintaxes concretas em abstratas, poupando, assim, considerável esforço. Além
disso, torna possível a interconexão de qualquer número de máquinas.
O compilador deve ser implementado com algumas regras de codificação, as quais
descrevem as ligações entre a sintaxe abstrata e a sintaxe de transferência. Muitos
padrões (incluindo a ISO8822 na definição de serviço de apresentação, por
exemplo), por vezes, não distinguem a noção de uma sintaxe de transferência
daquela de regras de codificação.
2.4.6.7 ASN.1 e BER
Esta seção é a transcrição resumida do texto da Microsoft que descreve o Abstract
Syntax Notation One (ASN.1) e Basic Encoding Rules (BER), e esclarece as
diferenças entre os dois.48
A ASN.1 (Abstract Syntax Notation One) pode ser definida como um padrão
internacional que visa especificar os dados utilizados em protocolos de
telecomunicações. É uma linguagem de computação que é poderosa e complexa:
ela foi projetada para modelar de forma eficiente a comunicação entre sistemas
heterogêneos.46
Já o BER é um conjunto de regras para codificação de dados no ASN.1.
A seguir vamos aprofundar os estudos do ASN.1 e do BER.
2.4.6.7.1 ASN.1
A Abstract Syntax Notation One (normalmente conhecido como ASN.1) é uma
linguagem para definição de padrões de conversão de códigos de dados
transmitidos (sintaxe abstrata) sem levar em consideração a implementação no
aplicativo (sintaxe concreta). A ASN.1 pode ser considerada a linguagem de
programadores padrão para a codificação dos dados a serem transferidos entre
duas máquinas com arquiteturas diferentes.
Imagine um arquivo que necessita ser transferido entre duas máquinas com
arquiteturas diferentes. A linguagem ASN.1 vai transformar as linguagens concretas
das duas máquinas em uma linguagem abstrata, definindo regras para essa
tradução.48
Por exemplo, o ASN.1 define:48
•
•
•
O que é "Tipo".
O que é um "módulo" e qual deve ser sua aparência.
O que é um INTEIRO.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
73
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
•
•
•
•
O que é um BOOLEANO.
O que é um "tipo estruturado".
Qual o significado de determinadas palavras-chave (por exemplo,
INÍCIO, FIM, IMPORTAR, EXPORTAR, EXTERNO e assim por diante).
Como colocar um tipo entre "tags" para que possa ser devidamente
codificado.
O ASN.1 não leva em consideração nenhum padrão específico, método de
codificação, linguagem de programação ou plataforma de hardware. É simplesmente
uma linguagem para definição de padrões. Em outras palavras, padrões são
programados em ASN.1.48
Como o ASN.1 é a linguagem dos padrões, é muito comum encontrar
recomendações de padrões programados no ASN.1. Profissionais de suporte,
consultores e especialistas em tecnologia da informação são beneficiados pelo
conhecimento de ASN.1, já que isso lhes permite um aprofundamento nos padrões e
na decodificação e na compreensão do conteúdo dos dados do problema que estão
tentando solucionar. Os padrões mais comuns programados no ASN.1 são aqueles
produzidos pela CCITT (International Telegraph and Telephone Consultative
Committee) e pela ITU (International Telecommunications Union).48
No entanto, membros da IETF (Internet Engineering Task Force) estão usando cada
vez mais o ASN.1 para expor sutilmente suas recomendações. O ASN.1 expõe em
uma página o que ocuparia cinco ou seis páginas para ser programado em outro
formato.48
A seguir está uma lista dos padrões comumente usados que são programados no
ASN.1:
• X.400 (Mensagens eletrônicas);
• X.500 (Serviços de diretório);
• X.200 (Comunicações em redes de pacotes);
• Documentos de padrões Internet (RFCs) 2251-2256 do protocolo LDAP
(Lightweight Directory Access Protocol - LDAP);
• Muitas outras RFCs.
O ASN.1 está definido nas recomendações ITU-T X.209 e X.690.
2.4.6.7.2 BER
BER (pronuncia-se "burr") é o nome comum para as Regras de Codificação Básica
(Basic Encoding Rules) do ASN.1. O BER está definido nas recomendações ITU-T
X.209 e X.690. BER é um conjunto de regras para codificação de dados do ASN.1
para um fluxo de octetos que pode ser transmitido por um link de comunicações
(sintaxe de transferência). Entre outros métodos de codificação de dados do ASN.1
estão o DER (Distinguished Encoding Rules), o CER (Canonical Encoding Rules) e o
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
74
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
PER (Packing Encoding Rules). Cada método de codificação possui sua própria
aplicação, mas o BER é o método de codificação usado com mais frequência e o
mais comentado.48
O BER define:
•
•
•
Métodos para codificação de valores ASN.1.
Regras para decisão de quando usar um determinado método.
O formato de octetos específicos nos dados.
2.4.6.8 Contrastando o ASN.1 e o BER
O ASN.1 é como uma linguagem de programação (por exemplo C), enquanto o BER
é como um compilador para essa linguagem. Compiladores são específicos de
plataforma, enquanto muitas linguagens de programação de alto nível não o são.
A linguagem C define as regras e o idioma para a programação de um programa.
Um programa não é C, mas programado em C. O programa não será útil até que
seja compilado para uma plataforma específica (como a Intel x86). Assim funciona
com o ASN.1 e o BER. O ASN.1 é a linguagem para programação de um padrão.
Um padrão não é ASN.1, mas programado em ASN.1.
Os dados, gerados por um programa compatível com o padrão, podem ser
chamados erroneamente de "dados do ASN.1”. Os dados ASN.1 não são úteis (ou
seja, não podem ser transmitidos por uma LAN) até que os dados ASN.1 sejam
codificados em um fluxo de octetos (sintaxe de transferência) que pode ser
facilmente decodificado no destino.48
Profissionais de tecnologia de informação (especialista em computação,
desenvolvedor de software em rede, especialista em infraestrutura de redes) que
realmente desejam se destacar, precisam ter pelo menos um conhecimento básico
de ASN.1 e BER.
Como muitos sistemas operacionais ou sistemas de comunicação modernos
implementam os padrões mencionados, acima de uma forma ou de outra, ter
fluência na leitura e compreensão do ASN.1 e BER facilita a solução dos problemas
nesses sistemas.
2.4.6.9 A XML
Um outro exemplo de linguagem que realiza a função da camada de apresentação
de representação da estrutura de dados a serem transferidos entre duas máquinas
com arquiteturas distintas é a XML.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
75
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A XML (eXtensible Markup Language, ou Linguagem de Marcação Estendida) é um
subconjunto da SGML (Standard Generalized Markup Language, ou Linguagem de
Marcação Padrão Generalizada) que permite que uma marcação específica seja
criada para especificar ideias e compartilhá-las na rede. Ela tem as virtudes da
SGML e da HTML sem qualquer das limitações dessas duas últimas linguagens.50
2.4.6.10 Tradutor ASN.1 para XML
A Abstract Syntax Notation One (ASN.1) é um framework (estrutura) para
representar dados estruturados em árvore. É amplamente utilizada em protocolos de
comunicação (por exemplo, SNMP e LDAP), protocolos de segurança (por exemplo,
X.509), formatos de dados (por exemplo, PKCS # 7), e assim por diante.
A ASN.1 é projetada para a eficiência e os dados são geralmente formatados em
com comprimentos limitados em bytes, e, portanto, não é muito legível e é difícil de
manipular. Como os dados ASN.1 são estruturados, deve ser possível representar a
mesma informação em Extensible Markup Language (XML).
A XML não é particularmente eficiente em termos de comprimento de dados, mas é
mais legível, e tem muitas ferramentas alternativas grátis (por exemplo,
processadores de XML para análise e geração, processadores XSL para
renderização, editores XML para autoria e assim por diante).
Por tais razões, a tradução entre ASN.1 e XML nos permitirá manipular dados ASN.1
eficientes de uma forma amigável. Existe uma biblioteca em Java para tal tradução.
Utilizando a biblioteca, a ASN.1 pode ser traduzida em XML e vice-versa.
O grupo do projeto da linguagem ASN.1 da ITU-T começou a trabalhar (em conjunto
com a ISO) em duas iniciativas relacionadas a XML, que têm objetivos
semelhantes.49
2.4.6.11 Os Padrões e Recomendações da Camada de Apresentação ISO/ITU-T
O serviço da camada de apresentação do modelo OSI é definido no padrão ISO
8822 e na recomendação da ITU-T X.216. O protocolo de apresentação no OSI é
definido no padrão ISO 8823 e na recomendação da ITU-T X.226. A versão sem
conexão do protocolo da camada de apresentação é especificado no padrão ISO
9576.
2.4.6.12 Protocolos da Camada de Apresentação
Como vimos, a camada de apresentação possui várias funções e protocolos
correspondentes.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
76
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2.4.6.12.1 Exemplos de protocolos no modelo OSI
No modelo OSI os protocolos da camada de sessão são os seguintes:
Presentation-layer protocol (PP OSI) – Recomendações ISO/IEC 8823, X.226;
ISO/IEC 9576-1, X.236 - protocolo de apresentação do OSI que realiza negociação
de contexto e de gestão entre sistemas abertos;
ASN.1 – Recomendações ISO-X208; ISO-X722 - linguagem de sintaxe abstrata
usada como protocolo de conversão de sintaxe;
X.25 PAD (Packet Assembler/Disassembler Protocol) – usado para converter o fluxo
de dados assíncronos para síncrono e vice-versa.
Seguem alguns outros protocolos que, embora não sejam do modelo OSI, realizam a
função da camada de apresentação do modelo OSI:
2.4.6.12.2 Exemplos de protocolos de formatação
AFP, AppleTalk Filing Protocol
LPP, Lightweight Presentation Protocol
NCP, NetWare Core Protocol
NDR, Network Data Representation
XDR, eXternal Data Representation
2.4.6.12.3 Exemplos de protocolos de codificação
JPEG, ASCII, EBCDIC, TIFF, GIF, PICT, encryption, MPEG, MIDI
2.4.6.12.4 Exemplo de protocolos de conversão de sintaxe
XML (Extensible Markup Language) - usada como linguagem de sintaxe na
representação da estrutura de dados.
2.4.6.13 Camada de Apresentação em redes modernas
As funções da Camada de Apresentação, em geral, são úteis para a comunicação
de dados, mas não são essenciais para o bom funcionamento da rede.
A tendência no TCP/IP foi a dispersão das funções da camada de apresentação em
outras camadas, principalmente na camada de Aplicação.
No TCP/IP, em muitas aplicações e protocolos amplamente utilizados, não é feita
qualquer distinção entre as camadas de apresentação e aplicação. Por exemplo, o
HTTP, em geral, considerado como um protocolo da camada de aplicação, possui
aspectos da camada de apresentação, tais como a capacidade para identificar as
codificações para a conversão adequada.52
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
77
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2.4.7 Camada de Aplicação do modelo OSI
A Camada
ada de Aplicação é a de número sete do modelo OSI e pertence às
chamadas camadas superiores
superiores.
A unidade de dados padrão do protocolo (PDU) da camada de Aplicação
Ap
é chamada
de "dados" ou “mensagem
mensagem”.
Figura 2.20 Posição da camada de Aplicação no modelo OSI..
A camada de aplicação
licação atende solicitações dos aplicativos ou usuários finais e
solicita serviço para a camada de apresentação.
Figura 2.21 PDU da camada de aplicação.40
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
78
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2.4.7.1 Papel da camada de aplicação
A camada de aplicação fornece um meio para que o usuário acesse informações
sobre a rede através de um aplicativo.
A camada de aplicação desempenha o mesmo papel que a "interface do aplicativo"
na operação de sistemas. Fornece serviços de rede para os usuários (aplicações) da
rede em um ambiente de processamento distribuído.
A camada de aplicação destaca o ponto onde o usuário efetivamente se comunica
com o dispositivo. Utilizando um exemplo dos sistemas atuais, se num navegador da
Web, você desinstalar tudo relacionado com os componentes de rede, como os
protocolos do TCP/IP, placa de rede e mais alguma coisa, você ainda pode utilizar
os poucos recursos de que o navegador vai dispor, por exemplo para ver o código
interno de um arquivo local HTML.
Mas com certeza você não terá sucesso se tentar visualizar um arquivo HTML
remoto que pode ser acessado através de HTTP, FTP ou TFTP. É porque
navegador vai responder a pedidos como os de tentativa de acessar a camada de
Aplicação. E o que ocorre é que a camada de aplicação está funcionando como um
ponto de passagem entre o programa de aplicação real, que não é parte da estrutura
em camadas (como o OSI ou o TCP/IP) e a forma dada pela próxima camada
(apresentação) para a informação da aplicação, descendo na pilha de protocolos.
A camada de aplicação é responsável por reconhecer e criar a acessibilidade do
parceiro de comunicação proposto e descobrir se existem recursos suficientes para
a comunicação proposta. Principalmente nas aplicações em rede que oferecem
serviços de comunicação através de grandes redes interconectadas (como a
Internet), a necessidade é o rápido desenvolvimento de soluções para se chegar
mais longe do que os limites da rede física.39
A camada de aplicação provê um conjunto de interfaces para os aplicativos obterem
acesso aos serviços de rede, bem como para acessar todo o tipo de serviços de
rede que suportem as aplicações diretamente.
Finalmente, a camada de aplicação funciona como uma interface entre os
programas aplicativos específicos e o modelo de referência de protocolos de
comunicação OSI.
2.4.7.2 Processo de Construção de Entidades de Aplicação no OSI
Embora a noção do processo de aplicação seja comum ao OSI e ao TCP/IP, suas
soluções para construir entidades de aplicação são diferentes.37
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
79
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 2.22 Solução na construção de entidades de aplicação.37
A abordagem OSI, consistente com a noção generalizada de camadas, tem sido
chamada de uma abordagem horizontal. Nessa abordagem as aplicações
aplica
de usuário
final são desenvolvida
as usando uma infraestrutura de desenvolvimento de
37
aplicações comum. É como se existisse uma camada adicional com a qual a
entidade de aplicação deverá ser relacionar, conforme pode ser visto na figura
acima.
No OSI, as entidades de aplicação podem ter muitos elementos de serviço de
aplicação (Application Service Elements - ASE). No TCP/IP, cada aplicação possui
apenas um elemento de serviço, sendo que cada aplicação é desenvolvida
independentemente, do topo para baixo.
O OSI determina que aplicações distribuídas operem sobre uma hierarquia rígida de
camadas e que elas são construídas a partir de um conjunto de ferramentas comum
de elementos de serviço de aplicação padronizados (CASEs) e os harmoniza com
elementos de serviço de aplicação que executam funções específicas (SASE) para
determinado serviço requisitado pelo u
usuário ou aplicativo final.37
No TCP/IP o processo de criação de aplicação é chamado de solução vertical. Cada
C
entidade de aplicação é composta de qualquer conjunto de funções que necessita
de transporte fim a fim para suportar um serviço de comunicações distribuídas. 41
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
80
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Também no TCP/IP, a maioria desses processos de aplicação baseia-se no que ele
precisa e assume apenas que um mecanismo de transporte subjacente (datagrama
ou conexão) será fornecido.41
2.4.7.3 Serviços da camada de aplicação
No modelo de protocolos de comunicação do modelo de Sistemas Abertos de
Interconexão (OSI), a camada de aplicação fornece serviços para um programa
aplicativo a fim de garantir que a comunicação eficaz com outro programa aplicativo
em uma rede seja possível.
A camada de aplicação não é a aplicação propriamente dita que está realizando a
comunicação, mas uma camada do modelo OSI que presta os seguintes serviços:
•
•
•
•
•
Providencia que a outra parte seja identificada e possa ser alcançada;
Se for o caso, autentica o remetente da mensagem ou o receptor, ou ambos;
Providencia que existam recursos de comunicação necessários;
Garante acordo em ambas as extremidades sobre os procedimentos de
recuperação de erros, integridade de dados e privacidade;
Determina as regras de protocolo e de sintaxe de dados no nível do aplicativo.
Pode ser conveniente pensar na camada de aplicação, como um conjunto de
serviços de alto nível para que o programa aplicativo ou um usuário num sistema
final possa realizar a comunicação com parceiros em outro sistema final.
A camada de aplicação é a camada OSI mais próxima do usuário final, o que
significa que tanto a camada de aplicação como o usuário interagem diretamente
com um aplicativo de software. Essa camada interage com os aplicativos de
software que implementam um componente de comunicação.
Tais programas aplicativos estão fora do âmbito de atuação do modelo OSI.
2.4.7.4 Funções da camada de aplicação
As funções da camada de aplicação tipicamente incluem:
•
•
•
identificação de parceiros de comunicação;
determinação da disponibilidade de recursos;
sincronização da comunicação.
Ao identificar parceiros de comunicação, a camada de aplicação determina a
identidade e disponibilidade dos parceiros de comunicação para um intercâmbio de
dados entre eles. Ao determinar a disponibilidade de recursos, a camada de
aplicação deve decidir se existem recursos de rede suficientes para a comunicação
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
81
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
solicitada. Ao sincronizar a comunicação, a camada de aplicação gerencia a
cooperação entre aplicações em sistemas finais que trocam dados entre si.
2.4.7.5 Classificação dos Protocolos da camada de aplicação.
Protocolos da camada de aplicação são classificados em duas categorias:
Elementos Específicos de Aplicação Comum (Common Application Specific
Elements - CASE) e Elementos Específicos de Aplicação Específica (Specific
Application Specific Elements - SASE).
Elementos CASE são comumente necessários por elementos de serviço de
aplicação de usuários (ASEs) e SASEs, enquanto os SASEs só são incluídos no
processos de aplicação quando o seu serviço particular é especificamente
necessário.
2.4.7.6 Padrões de Elementos de Serviço de Aplicação de Propósito Geral
Os Padrões de Elementos de Serviço de Aplicação de Propósito Geral (Common
Application Service Element - CASE) da camada de aplicação do OSI são os
seguintes:
– Association Control Service Element (ACSE) - Recomendações X.2x7.
Responsável pelo gerenciamento das associações de aplicação.56
– Commitment, Concurrency and Recovery (CCR) - Recomendações X.85x.
Gerencia a troca de dados entre aplicações e provê ponto de recuperação de falha
na comunicação.56
– Remote Operations Service Element (ROSE) – Recomendações X.219; X.229;
X.8xx. Oferece suporte a aplicações interativas (equivale ao RPC).56
– Reliable Transfer Service Element) (RTSE) – Recomendações: ISO 7498;
ISO/TR 8509; ISO 8649; ISO 8650; ISO 8822; ISO 8824; ISO 8825; ISO/IEC 9066-2
(Fonte: ISO). Realiza a transferência de dados confiável através de uma associação
de aplicação, oferecendo transparência em relação a todos os mecanismos de
recuperação de erros adotados.56
– Transaction Processing (TP) - Recomendações: ISO/IEC 10026:1992; Modelo do
processamento de transações: ITU-T X.860; definição do serviço: ITU-T X.861;
Especificação do protocolo: ITU-T X.862 (Fonte: ISO). O protocolo padrão de
processamento de transações do OSI (TP) define uma estrutura para o
desenvolvimento de padrões de processamento de transações relacionadas ou
distribuídas (U-ASES).56
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
82
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2.4.7.7 Padrões de Elementos de Serviço de Aplicação de Propósito Específico
Os padrões de Elementos de Serviço de Aplicação de Propósito Específico
(Especific Application Service Element - SASE) da camada de aplicação (podemos
compará-los aos protocolos da camada de aplicação do TCP/IP) do modelo OSI são:
– Message Handling Systems (MHS) - Recomendações X.4xx. Provê um
mecanismo de transporte para aplicações de mensagens eletrônicas e outras
aplicações usando serviços de armazenagem e retransmissão (store-and-forward). É
um protocolo específico de correio eletrônico muito usado no EDI (troca eletrônica de
documentos). No TCP/IP, protocolos equivalentes seriam o SMTP mais o POP.
– File Transfer, Access and Manipulation (FTAM) - Gerenciador de transferência
de arquivos entre servidores. Provê serviços de transferência de arquivos e
facilidades de acesso a arquivos.
– Virtual Terminal (VT) - Acesso remoto a servidores. Provê emulação de terminal
que permite acesso a um sistema de computadores remoto parecendo como se ele
estivesse diretamente conectado ao terminal local.
– Job Transfer Management (JTM) - Gerenciamento de transferência de tarefas.
– Directory Services (DS) - Recomendações X.5xx. Serviço de diretório. Serve
como um diretório distribuído que é usado para o endereçamento e identificação de
nós em interconexão de redes no OSI. É um protocolo específico de serviço de
diretório. No TCP/IP, um protocolo equivalente é o LDAP (Light DAP).
– Remote Database Access (RDA) - Acesso remoto a base de dados.
– Manufacturing Message Specification (MMS) - Troca de mensagens de
manufatura. Tem por objetivo a interconexão de sistemas computacionais de
fabricantes distintos em ambiente de automação industrial.56
– Network Management Specification (NMS) - Gerenciamento de redes. Deve
prover mecanismos que permitam monitorar, controlar, contabilizar, organizar e até
planejar recursos durante a troca de comunicação entre entidades de aplicação.56
Um exemplo de protocolo específico desse grupo é o Common Management
Information Protocol (CMIP), recomendação X.700. No TCP/IP, um protocolo
equivalente é o SNMP (Simple Network-Management Protocol).
Veja a seguir uma tabela contendo os principais protocolos das sete camadas do
modelo OSI.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
83
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Tabela 2.3 Protocolos modelo OSI por camada.43
2.4.7.8 Implementações
mplementações de protocolos da camada de aplicação no modelo OSI
Podemos citar o protocolo X.400 utilizado na indústria autom
automobilística
bilística para troca de
dados de forma eletrônica (EDI)
EDI) entre montadores e seus fornecedores.
No Brasil o serviço STM400 da operadora EMBRATEL é uma rede padrão
padrã OSI,
utilizando o protocolo X.400 (atualmente chama
chama-se
se serviço EMVIA).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
84
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Outro padrão que pode ser citado é o X.25, usado na primeira rede de pacotes
comercial, ainda em operação em alguns países. No Brasil, o nome dessa rede é
RENPAC (Rede Nacional de Pacotes).
2.4.7.9 A camada de aplicação nos aplicativos atuais (TCP/IP)
A camada de Aplicação recebe o mesmo nome no modelo TCP/IP, embora com
diferente solução para o uso e criação do processos dessa camada, conforme visto
anteriormente.
Não há compatibilidade entre os protocolos criados para um modelo com o outro,
aliás, como ocorre nas outras camadas.
É na camada de aplicação que se constata a adoção do modelo TCP/IP como um
modelo de facto, ficando o modelo OSI, que originalmente era tido como um modelo
de jure, hoje mais como um modelo acadêmico e conceitual. O número de
aplicações do TCP/IP é muito maior do que no modelo OSI.
2.5 USO DO MODELO OSI NA ATUALIDADE
Na atualidade, é inegável que o uso principal do modelo OSI é como uma referência,
principalmente na área de ensino.
O modelo OSI é usado como referência porque esclarece, de forma a não deixar
dúvidas e de forma global, as suas sete camadas, as funções de cada camada, a
PDU de cada camada, o tipo de endereçamento de cada camada e os
equipamentos que operam em cada camada.
Na pratica, verifica-se também que as camadas 1 e 2 do modelo OSI são utilizadas
no modelo TCP/IP de cinco camadas (chamado de modelo híbrido). Por sua vez, as
camadas de sessão, apresentação e aplicação do OSI são unificadas na camada de
aplicação deste mesmo modelo híbrido do TCP/IP, o qual iremos estudar nos
próximos capítulos.
Veja a seguir uma tabela contendo os principais conceitos do modelo OSI.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
85
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Tabela 2.4 Comparação do Modelo OSI com outros modelos..
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
86
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A seguir apresentamos um comparativo entre os modelos OSI, TCP/IP e SNA (IBM).
Tabela 2.5 Comparação do Modelo OSI com outros modelos
modelos..
2.6 RESUMO DO CAPÍTULO
O modelo OSI foi editado oficialmente em 1984 conjuntamente pela ISO e ITU-T.
O modelo OSI é um conjunto de protocolos de comunicação hierárquico baseado em
7 camadas bem definidas: física, enlace, rede, transporte, sessão, apresentação
e aplicação.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
87
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Cada camada oferece serviços para a camada superior e solicita serviços para
camada inferior.
Em cada Camada temos uma Unidade de Dados Padrão de Protocolo (PDU).
Cada camada possui um ou mais protocolos específicos.
Implementações do modelo OSI bem sucedidas são o X.25, X.400 e o X.500.
Hoje o modelo OSI serve como referência no ensino.
Concluímos aqui este capítulo que teve por objetivo uma introdução ao modelo OSI
de interconexão.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
88
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CAPÍTULO 3 INTRODUÇÃO AO MODELO DE INTERCONEXÃO
TCP/IP
INTRODUÇÃO
No final dos anos 1960s, a Agência de Projeto de Pesquisa Avançada (ARPA) nos
EUA desejava conectar seus computadores (posteriormente, a ARPA ficou
conhecida como a Agência de Pesquisa de Projeto de Defesa Avançada - DARPA).
A rede produzida ficou conhecida como a ARPAnet. Esta rede Interligou
universidades e agências de governo. Outra necessidade da ARPAnet, pretendida
pelas forças armadas dos USA na época, era que, em caso de guerra, com a
possibilidade de uma parte da rede ser parcialmente destruída, as demais conexões
pudessem ser mantidas e serviços como transferência de arquivos e de voz não
fossem afetados.
É importante citar que a ARPANET era essencialmente um projeto de hardware. O
Departamento Americano de Defesa (DOD) estava fortemente envolvido na
fundamentação nessa fase. O protocolo inicial usado pela ARPANET foi chamado de
NCP. Não se havia pensado na época quanto à expansão dessa rede.
Porém, na metade da década de 1970, o protocolo NCP já não podia lidar com o
tamanho da rede e foi substituído então pelo Suíte Internet Protocol. O Suíte Internet
Protocol foi nomeado posteriormente como TCP/IP, devido aos seus dois protocolos
principais.
A partir de janeiro de 1983 a todos os computadores que desejassem se conectar à
ARPANET era exigido deles o uso dos protocolos TCP/IP. Também em 1983, o
Departamento de Defesa separou a rede ARPANET em duas redes independentes:
•
•
ARPANET para pesquisa experimental
MILNET para uso militar.
Posteriormente, a ARPANET foi substituída através de novas tecnologias, mas a
MILNET ainda forma o backbone das comunicações militares dos EUA. O sucesso
do TCP/IP e da Internet levaram outros grupos a adotá-lo. A National Science
Foundation dos EUA (Fundação de Ciência Nacional) teve um papel ativo
habilitando o protocolo TCP/IP em suas máquinas, possibilitando a conexão de
tantos cientistas quanto possível.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
89
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Universidade de Berkeley
Nos princípios dos anos de 1980 a Universidade de Berkeley (universidade
americana berço do UNIX) migrou os protocolos de TCP/IP para a versão do UNIX
deles. Isso tornou o TCP/IP cada vez mais popular e também assegurou que o
TCP/IP se tornasse o método principal de se conectar máquinas UNIX (o sistema
operacional dominante da época). Também, com a migração, os protocolos da
Berkeley adicionaram aplicações TCP/IP baseadas em UNIX.
Origem da Internet
Da ARPANET veio a Internet. Os pesquisadores que desenvolveram a arquitetura de
Internet pensaram na ARPANET como um backbone de rede de longa distância
(rede WAN) segura, ao redor do qual a Internet poderia ser construída.
A Internet começou próximo de 1980, quando o DARPA começou convertendo
máquinas ligadas às redes de pesquisa aos protocolos de TCP/IP.
O que é a Internet
A Internet é um exemplo de interconexão de redes. Consistia de mais de 5.000 LANs
no seu início e em 2009 o número estava perto de 1.000.000 de LANs e é baseada
no TCP/IP. Muitos problemas na Internet resultam em desenvolvimentos do TCP/IP
para superá-los.
A Internet foi inicialmente descrita como um grande projeto de pesquisa para o qual
qualquer um poderia contribuir via RFCs. A Internet conectava a maioria das
instituições de pesquisa nos EUA, mas se expandiu pelo mundo todo.
O IAB (Internet Architecture Board) e as RFCs (Request for Comments)
O TCP/IP não surgiu de um desenvolvedor ou de um fabricante em particular ou de
corpo de padrões reconhecido (como a ISO e o ITU-T).
O TCP/IP é “controlado” pelo Internet Architecture Board (IAB), hoje um comitê do
IETF (explicado abaixo). O papel principal do IAB é:
•
•
Gerenciar a direção técnica do TCP/IP
Padronizar protocolos pertinentes.
A documentação para o TCP/IP vem na forma de documentos chamados RFCs
(Request for Comments). Antes das RFCs, a documentação era conhecida como
IENS (Internet Engineering Notes).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
90
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
O IETF (Internet Engineering Task Force), antigamente chamado de Network
Information Center (NIC - Centro de Informação de Rede), distribui as RFCs para
todo o mundo.
Todas as RFCs são numeradas. Uma atualização para um RFC resultará em um
número novo e a RFC antiga ficará obsoleta.
Exemplos de RFCs:
RFC 760 IP (01/1980)
RFC 761 TCP (01/1980)
RFC 768 UDP (08/1980)
RFC 2474 QoS baseado na técnica Differentiated Service (DSCP)
RFC 5321 Protocolo SMTP (Simple Mail Transfer Protocol)
3.1 CONCEITOS DO TCP/IP
O TCP/IP é o
especializados
especificações
equipamentos.
camadas para
aplicação.
nome genérico para um conjunto de protocolos de comunicação
que compartilha um padrão comum de endereçamento, cujas
são abertas e são desenvolvidas independentes de programas e
Podemos dividir conceitualmente o TCP/IP em 4 camadas ou 5
facilitar o seu entendimento: física, enlace, rede, transporte e
Embora o TCP/IP e o OSI não sejam compatíveis entre si, ou seja, um protocolo de
um modelo não roda no outro, é muito útil, conceitualmente, estabelecermos a
relação das funções de uma determinada camada do modelo OSI às funções de
uma camada similar no TCP/IP.
No modelo TCP/IP de 4 camadas, a camada Física/Enlace (também chamada de
Host/Rede) é a mais baixa e se comunica com o meio físico.
Tabela 3.1 Camadas do modelo de referência TCP/IP.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
91
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
3.1.1 Camada Física/Enlace (Host/Rede)
Esta camada não faz distinção às redes físicas que são interligadas para formar a
chamada Host/Rede (também denominada de sub-rede). Portanto, como foi
pensado no projeto do TCP/IP, qualquer rede pode ser interligada, bastando para
isto que seja desenvolvida uma interface que compatibilize as tecnologias
empregadas com o protocolo IP. A função da interface é de receber os pacotes IP
da camada de inter-rede e de transmiti-los para a rede específica.
Para realizar essa tarefa, os endereços lógicos IP são traduzidos para os endereços
físicos dos hosts ou roteadores conectados à rede (cada interface tem um endereço
único, composto pelo código do fabricante mais um número de série, o também
chamado endereço MAC).
Esta camada agrega as funções da camada Física (transmissão de Bits) e da
camada de Enlace (transmissão de Frame) do MR OSI/ISO.
3.1.2 Camada de Rede (Inter-Rede)
Esta camada é baseada na solução dos problemas apresentados na conexão das
inter-redes. O modelo TCP/IP é baseado na técnica de comutação de pacotes, na
qual os hosts podem enviar pacotes para qualquer destino, não interessando até
mesmo a ordem de recepção dos pacotes, obrigando as camadas superiores a
reordená-los.
Para isso a camada inter-rede define o formato de um pacote padrão (PDU,
denominada de Datagrama) e um protocolo chamado de IP.
A função principal desta camada é de entregar pacotes IP ao seu destino.
Esta camada também tem a função de roteamento e de controle de tráfego, sendo
semelhante à camada de rede do MR OSI/ISO.
Esta camada recebe por alguns a denominação de Internet (por isso o termo Interrede), pois Internet significa “interconexão de redes”. É equivalente à camada de
Rede do MR OSI.
3.1.3 Camada de Transporte
Esta camada é responsável pela comunicação fim a fim entre uma máquina de
origem e uma máquina de destino. Para isso foram definidos dois protocolos:
• TCP (Transmission Control Protocol) – protocolo orientado à conexão confiável.
Este protocolo fragmenta um fluxo de bytes em mensagens e as entrega a
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
92
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
camada inter-rede (rede). No destino o TCP remonta as mensagens recebidas em
fluxo de bytes. Responsável pelo controle de fluxo, controle de erro,
sequencialização e multiplexação do acesso ao nível inter-rede (rede).
• UDP (User Datagram Protocol) – é um protocolo sem conexão e não confiável
para aplicações que não necessitem de controle de fluxo, nem de
sequencialização das mensagens (voz e vídeo). O serviço fornecido é somente o
de multiplexação e demultiplexação do acesso ao nível inter-rede (rede).
3.1.4 Camada de Aplicação
A arquitetura de rede TCP/IP não implementa as camadas de apresentação e de
sessão de acordo com o MR OSI/ISO, porque na prática elas são pouco usadas
pelas aplicações.
Na realidade, o modelo TCP/IP concentra as funções das três camadas superiores
do modelo OSI, Sessão, Apresentação e Aplicação, numa única camada chamada
de Aplicação.
A camada de aplicação presta serviço aos processos aplicativos ou processos finais.
Ela é uma espécie de interface entre o aplicativo propriamente dito e a pilha de
protocolos do TCP/IP.
Os protocolos mais conhecidos desta camada são: FTP (File Transfer Protocol),
TELNET (Terminal ou Telecommunication Network), SMTP (Simple Mail Transfer
Protocol), DNS (Domain Name Server), HTTP (Hypertext Transfer Protocol), etc.
3.1.5 Modelo TCP/IP de 5 camadas (modelo híbrido)
Há a tendência de se unificar os conceitos e denominações das camadas do modelo
OSI para um modelo híbrido do TCP/IP com 5 camadas7.
No modelo TCP/IP de 5 camadas, a camada Física se interliga ao meio físico e a
camada de Enlace é inserida entre a camada Física e a camada de Rede.
A camada Física tem a função de adaptar os bits ao meio físico. A camada de
Enlace tem a função de transmitir a sua PDU, chamada de Frame (ou Quadro),
entre dois dispositivos de comunicação separados pelo meio físico.
A camada de Rede (também chamada de Internet ou Inter-rede) é responsável por
localizar e descobrir um caminho (rota) para enviar as informações para o
computador de destino, a partir de um endereço lógico.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
93
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A camada de Transporte é responsável por estabelecer a uma conexão virtual para
a comunicação entre dois computadores finais.
A camada de Aplicação é mais elevada, responsável pela comunicação com os
programas aplicativos propriamente ditos. A camada de Aplicação serve como uma
interface entre o TCP/IP e os aplicativos ou usuários finais.
Todo computador conectado à Internet possui um endereço IP único, representado
por 4 grupos de 8 bits (octetos). A representação mais comum é a decimal, com
ponto separando os octetos, como por exemplo, 200.255.125.213.
Como é difícil memorizar estes números, existem mecanismos de tradução de
nomes para o endereço IP (protocolo DNS, que roda na camada de aplicação) e
assim podemos chegar ao computador através de seu nome na rede, como por
exemplo, www.google.com.br, ou através de seu endereço IP.
3.2 CONCEITOS FUNDAMENTAIS DA DIVISÃO POR CAMADAS
Com a divisão por camadas no modelo TCP/IP temos cinco conceitos fundamentais:
3.2.1 Encapsulamento
Cada camada apanha os dados da camada superior e encapsula estes dados na
área de dados de seu próprio “pacote”. Uma analogia é que cada camada apanhará
os dados e envelope da camada superior e os colocará em seu próprio envelope o
qual, por sua vez, é passado para a camada inferior.
3.2.2 Desencapsulamento
É o contrário do encapsulamento. Os dados ao chegarem ao destinatário deverão
ser desencapsulados, ou seja, cada camada retira o seu cabeçalho e passa a
informação para a camada superior, até atingir a camada de aplicação.
3.2.3 Multiplexação
No host transmissor as camadas superiores, transporte, por exemplo, utiliza a
camada de rede, através de várias aplicações simultâneas, realizando o processo de
multiplexação (várias requisições na camada de transporte usam a camada de rede
para atuar como “meio físico” para repasse dos dados).
3.2.4 Demultiplexação
Ela é o contrário de multiplexação. Quando um pacote chega a um Host, as
camadas (através dos protocolos) têm que passar o pacote até a camada superior.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
94
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Não é atípico ter mais que uma conexão de uma camada apoiada no topo de uma
outra camada. Nesse caso, a camada mais baixa tem que decidir para qual conexão
da camada superior passar a informação. Em outras palavras alguma forma de
Demultiplexação é requerida.
3.2.5 Fragmentação
Resumidamente, a fragmentação ocorre quando os dados numa camada são
divididos em unidades menores de forma que as camadas mais baixas possam
controlá-los corretamente. No host receptor, o pacote original deverá ser
remontando. Isto será explorado em detalhes posteriormente.
Figura 3.1 Comparação entre o Modelo OSI e o TCP/IP de 4 camadas.1
3.3 COMPARAÇÃO ENTRE OS MODELOS DE REFERÊNCIA OSI E TCP/IP
Os modelos OSI e TCP/IP possuem muitos pontos em comum e também muitos
pontos diferentes.
Pontos em comum:
•
•
•
Modelo baseado em camadas com pilha de protocolos independentes;
A camada de transporte implementa serviços orientados à conexão e não
orientados à conexão;
A camada de rede realiza basicamente a mesma tarefa de endereçamento lógico
e encaminhamento de pacotes (no OSI denominados de pacotes e no TCP/IP
chamados de datagramas).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
95
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Principais diferenças:
•
•
•
•
•
Número de camadas;
As camadas de Aplicação, Apresentação e Sessão do modelo OSI estão
agregadas na camada de Aplicação do TCP/IP;
No modelo TCP/IP de 4 camadas; a camada Host/Rede agrega as camadas
Física e Enlace do OSI;
A camada Host/Rede do modelo TCP/IP de 4 camadas não é muito bem definida;
Os serviços da camada de Rede no modelo TCP/IP são implementados pelo IP,
como um serviço sem conexão, enquanto que no modelo OSI/ISO a camada de
rede implementa serviço com conexão (X.25, por exemplo).
Na figura a seguir temos a representação de três modelos de referência de
protocolos (OSI, TCP/IP e o SNA da IBM) e os protocolos mais utilizados em cada
uma das camadas dos respectivos modelos.
Tabela 3.2 Protocolos padrões nas camadas dos modelos de referências.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
96
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Temos percebido que alguns especialistas da área de networking (Tanenbaum3, por
exemplo) já estão utilizando o modelo TCP/IP com 5 camadas, pois na prática a
camada física e de enlace são definidas conforme regras do modelo OSI.
O TCP/IP, nessa visão, teria a composição da figura a seguir:
Tabela 3.3 Modelo TCP/IP com cinco camadas (versão moderna).1
Abaixo temos a comparação entre o modelo OSI e o TCP/IP de 4 e 5 camadas.
Figura 3.2 Comparação entre o modelo OSI e o TCP/IP (4 e 5 camadas).1
Percebemos que o TCP/IP agrega as camadas de Aplicação, Apresentação e de
Sessão do modelo OSI numa única camada chamada de aplicação.
No modelo TCP/IP de 4 camadas, a camada de acesso à rede engloba as camadas
de Enlace e Física do modelo OSI.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
97
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Já o modelo TCP/IP de 5 camadas adota a equivalência entre as funções das 4
camadas inferiores do modelo OSI (Transporte, Rede, Enlace e Física) mais a
camada de Aplicação. Esta é uma tendência atual de representar o TCP/IP
(TANEMBAUM7 e KUROSE & ROSS8).
3.4 CRÍTICAS AOS MODELOS DE REFERÊNCIA
Também existem críticas3 feitas tanto a um modelo como a outro. Vamos a elas:
Modelo OSI/ISO:
1. Momento ruim – não havia definição de um padrão de fato; muito consumo
de recursos para os computadores da época;
2. Tecnologia ruim – somente uma opção no MR OSI/ISO, sendo baseada na
arquitetura SNA (IBM);
3. Implementação ruim – lenta e vários problemas na sua implementação;
4. Política ruim – visto como um modelo dos ministérios das telecomunicações
europeus e americanos.
Modelo TCP/IP:
1. Não distinguia claramente serviço, interface e protocolo, o que é contrário
aos conceitos de Engenharia de Software;
2. Não consegue descrever outras pilhas de protocolos a não ser a própria;
3. A camada Física/Enlace (Host/Rede) não é conceitualmente uma camada
de protocolos hierarquizados;
4. Não distingue as camadas Física e Enlace, ou seja, não especifica a parte
das interfaces físicas da parte da delimitação de quadros;
5. Havia muita diversidade de implementações.
3.5 MODELO DE REFERÊNCIA DE PROTOCOLOS ADOTADO NO LIVRO
Nos demais capítulos deste livro adotaremos o modelo híbrido de 5 camadas do
TCP/IP. Portanto, os capítulos posteriores irão contemplar maiores informações
sobre a camada 1 (Física), camada 2 (Enlace), camada 3 (Rede), camada 4
(Transporte) e camada 5 (Aplicação) do modelo híbrido do TCP/IP.
3.6 RESUMO
O modelo TCP/IP surgiu oficialmente em 1973, a partir dr uma evolução do conjunto
de protocolos chamado NCP utilizado inicialmente na ARPANET.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
98
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
O modelo TCP/IP se transformou num modelo de fato, pela sua simplicidade de
uso, exigir menor poder de processamento dos computadores e por ser distribuído
livremente.
Assim como o modelo OSI, o TCP/IP se baseia em camadas ou níveis. Cada
camada possui suas funções próprias e trabalha com uma unidade de dados
padrão de protocolo bem definida (PDU).
Importante destacar que em cada camada roda um ou mais protocolos
encarregados de realizar as funções definidas para aquela camada.
Ao longo deste livro iremos estudar as funções, os principais protocolos, PDUs e
equipamentos que rodam nas cinco camadas do modelo híbrido de 5 camadas do
TCP/IP.
Termina aqui este capítulo introdutório às redes de computadores. Uma nova leitura
atenta a este capítulo é recomendada.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
99
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CAPÍTULO 4 CAMADA FÍSICA
INTRODUÇÃO
A camada física é a primeira camada do modelo OSI e do modelo TCP/IP (de 5
camadas, conforme veremos oportunamente).
É a camada responsável pela padronização das interfaces elétricas, mecânicas e
funcionais.
A camada física também se encarrega em transmitir o fluxo de bits recebido da
camada de enlace e adaptá-los ao meio de transmissão.
A unidade de dados padrão dos protocolos que trabalham nesta camada é o bit.
Todos os equipamentos que trabalham ligados ao meio de transmissão (meio físico)
atuam, portanto, na camada física.
Os modems, os multiplexadores, os repetidores elétricos, os hubs, são exemplos de
dispositivos que trabalham na camada física.
4.1 MEIO DE TRANSMISSÃO
O meio de transmissão, ou meio físico, importante elemento de um sistema de
comunicação, também faz parte da camada física.
Os principais meios físicos utilizados na atualidade são:
•
•
•
•
•
Par metálico;
Cabo coaxial;
Fibra ótica;
Rádio transmissão;
Satélite.
Os meio físicos em que um condutor guia o sinal da origem até o destino são
chamados de meios guiados.
Os meios físicos em que o ar representa o condutor do sinal são chamados de
meios não guiados.
Cada meio físico apresenta vantagens e desvantagens. Embora este curso não
tenha intenção de entrar em detalhes sobre este assunto, vamos descrever pelo
menos as principais características dos meios físicos citados acima.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
100
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
4.1.1 Par metálico
De longe o meio físico mais utilizado e com maior parque instalado. Por outro lado é
o meio físico que mais sofre a influência de interferências eletromagnéticas e tem
maior atenuação do sinal ao longo do seu percurso. Podemos dizer que quanto
maior a taxa de transmissão que se utiliza neste meio, menor a distância entre o
ponto de origem e destino.
Figura 4.1 Cabo Metálico.1
A utilização do par metálico ocorre na rede telefônica e de comunicação de dados.
Nas redes locais de computadores o par trançado é utilizado com muito sucesso.
4.1.2 Cabo coaxial
Figura 4.2 Cabo coaxial (Corte Transversal).1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
101
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 4.3 Cabo coaxial (Partes constituintes).1
Meio físico utilizado na TV a cabo, interligação de Multiplexadores nas operadoras e
em instalação de antenas de rádio ou de antena de satélite. Possui uma boa
imunidade contra interferência eletromagnética e normalmente é utilizado numa
distância máxima de 500 metros (sem utilização de repetidores ou amplificadores de
sinal). É formado por condutores concêntricos e protegidos por uma capa plástica.
O cabo coaxial foi utilizado no inicio da implantação de redes locais de
computadores, mas agora foi suplantado pelo par trançado.
4.1.3 Fibra ótica
Meio físico que revolucionou as telecomunicações e expandiu a capacidade de
transmissão do backbone das operadoras e das redes de computadores.
Figura 4.4 Fibra Ótica.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
102
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Imune a interferência eletromagnética, de longo alcance, devido possuir baixa
atenuação. Tem alta capacidade de transmissão. Os únicos inconvenientes são o
custo de instalação e manutenção.
4.1.4 Rádio transmissão
Utiliza o ar para conduzir o sinal eletromagnético. Pode ser do tipo de visada direta
ou não. Pode sofrer interferência de outros sinais eletromagnéticos e também de
obstrução do sinal que transmite. Normalmente possui alcances limitados,
dependendo da frequência e potência utilizada no rádio transmissor (no máximo 50
km em rádio ponto a ponto, com visada direta).
Figura 4.5 Rádios Transmissores.1
Com o advento das novas tecnologias da telefonia celular, Wi-Fi, Wi-MAX, LTE,
entre outras, o meio físico não guiado se tornou, provavelmente, o mais pesquisado
e “badalado” da atualidade.
4.1.5 Satélite
O satélite é um meio de transmissão não guiado e de grande utilidade em regiões
onde não existe outro meio físico disponível, sendo, portanto, tido como de longo
alcance, alta disponibilidade e alta confiabilidade. Como desvantagem, podemos
citar o delay característico das transmissões pelo satélite.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
103
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 4.6 Estação Terrena de Satélite.10
Figura 4.7 Satélite em órbita e a zona de cobertura no globo terrestre.10
Se desejar maiores informações sobre os meios de transmissão consulte
nosso curso on-line de Fundamentos de Telecomunicações e Comunicação de
Dados
(http://ademarfey.wordpress.com/2014/01/04/curso-on-linefundamentos-de-telecomunicacoes-e-comunicacao-de-dados/).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
104
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
4.2 INTERFACES DE DADOS E VOZ PADRÕES DE MERCADO
As interfaces de dados são elementos importantes de um sistema de
telecomunicação e de redes de computadores.
Você já pensou o que ocorre ao comprar um equipamento que não é compatível
com os demais equipamentos de um sistema de comunicação? Imagine viajar 600
km para fazer uma manutenção num cliente e ao chegar ao mesmo perceber que as
interfaces elétricas não são compatíveis?
Existem interfaces para as várias aplicações existentes no mercado, sejam voz,
dados ou vídeo. Da mesma foram existem interfaces para os vários meios físicos
existentes, sejam eles o par metálico, cabo coaxial, fibra ótica, etc.
Em seguida faremos uma descrição das principais interfaces utilizadas em
telecomunicações, comunicação de dados e redes de computadores, sabendo já
previamente que este trabalho não está completo, pois são muitas as novas
interfaces (fibra ótica, por exemplo) surgindo no mercado.
4.2.1 V24
A V.24 é uma das primeiras interfaces de dados. É aquela utilizada em modems
analógicos e nas interfaces assíncronas de comunicação de dados (terminais burros
interligados ao mainframe, por exemplo).
Figura 4.8 Interface Mecânica da RS232 e pinagem do DB25 (vista frontal).10
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
105
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Essa interface é também chamada de RS-232, posteriormente foi padronizada pelo
atual ITU-T
T como interface V.24
V.24, e o seu padrão mecânico é chamado de DB-25
DB
(ou
DB-9).
9). É uma interface para baixa velocidade de dados, normalmente utilizada para
até 48 Kbps.
4.2.2 V35
Interface padronizada para transmissão de dados entre 64 Kbps
bps e 2 Mbps e é ainda
hoje a interface padrão adotad
adotada
a para modems digitais e roteadores, operando dentro
das velocidades
des citadas. O V35 é o padrão elétrico/funcional e o conector segue o
padrão mecânico M34.
O padrão V35 é um típico padrão de mercado
mercado, pois era para ter sido substituído há
um bom tempo pela interface V36
V36, mas o mercado continua utilizando este padrão.
Pino Sinal
Pino Sinal
A
Chassis Ground
B
Signal Ground
C
Request to Send
D
Clear to Send
E
Data Set Ready
F
Receive Line Signal Detect
H
Data Terminal Ready
J
Ring Indicator
P
Transmitted Data (Signal A) R
Recieved Data (Signal A)
S
Transmitted Data (Signal B) T
Received Data (Signal B)
U
Terminal Timing
V
Receive Timing A
W
Terminal Timing
X
Receive Timing
Y
Transmit Timing
AA
Transmit Timing
4.9 Pinagem da V35 e conector M
M-34.10
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
106
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
4.2.3 V36
Como citado anteriormente, a V36 é o sucessor do padrão V35, mas com pouca
aceitação no mercado até o momento. Ele também é utilizado para equipamentos de
comunicação de dados entre 64 Kbps e 2 Mbps.
Circuito
102
102a
102b
103/TD
104/RD
105/RTS
106/CTS
107/DSR
108/DTR
109/DCD
113/SCT
Pino
19
37
20
4-22
6-24
7-25
9-27
11-29
12-30
13-31
17-35
114/SCT 5-23
115/SCR
125/RI
140/RL
141/LL
142/TI
8-26
15
14
10
18
Designação
Signal Ground
Signal Ground a
Signal Ground b
Transmit Data
Receive Data
Request To Send
Clear To Send
Data Set Ready
Data Terminal Ready
Data Carrier Detect
Serial Clock Transmit
(from DTE)
Serial Clock Transmit
(from DCE)
Serial Clock Receive
Ring Indicator
Remote Loop Back
Local Loop Back
Test Indicator
Figura 4.10 Pinagem interface V36 (conector DB-37).10
4.2.4 G703
A G703 é uma interface utilizada em sistemas E1 (2 Mbps) para transmissão de voz
e de dados.
Mecanicamente se compõe de dois conectores BNCs, um para a transmissão e
outro para a recepção de dados.
Veja a figura a seguir.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
107
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 4.11 Interface G.703.10
Verifique que a interface G.703 funciona a 4 fios, full-duplex.
4.2.5 RJ-45
Padrão nas redes locais que utilizam o par trançado como meio físico. É uma
interface composta por 8 pinos onde normalmente 4 pinos apenas eram utilizados
antes do padrão 1GigaBaseT. A partir dessa rede Ethernet Gigabit os 4 pares são
utilizados.
Na rede FastEthernet os pinos 1 e 2 do RJ-45 são para transmissão (TX) e os pinos
3 e 6 são para recepção do sinal (RX).
Nas redes GigaEthernet os 4 pares são utilizados tanto para a transmissão como
para a recepção de dados (full-duplex).
Figura 4.12 Interface RJ-45.10
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
108
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
4.2.6 RJ-11
Padrão nas redes internas telefônicas para conexão do telefone à própria rede
interna.
Figura 4.13 Conector
onector fêmea 6 pinos RJ11 para fone ou tomadas de parede.10
Figura 4.14 Conector
onector macho de 6 pinos RJ11 usado no cabo.10
4.2.7 V-21 ao V-92
Padrões adotados pelo ITU
ITU-T
T (antigo CCITT) para modems analógicos.
O V21 é o padrão adotado para o modem analógico de 300 bps, modulação FSK,
lançado em 1964. O V.92 foi o último padrão adotado para modems analógicos, o
qual permite transmissão a 28,8Kbps/56Kbps e utiliza a modulação PCM.
Como visto anteriormente
anteriormente, percebemos que cada interface possui suas
s
características próprias, segundo regras e recomendações, que se não seguidas
impossibilitam uma comunicação adequada entre estas interfaces.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
109
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
4.3 INTERFACES DTE E DCE
Os equipamentos que processam os dados (por exemplo, os computadores) não
possuem internamente meios que permitam a codificação/modulação dos dados de
modo a obter o sinal adequado para se transmitir no meio de transmissão.
Geralmente os dados são gerados e recebidos numa codificação NRZ (Non-Returnto-Zero), sendo que este tipo de codificação é extremamente limitada.
Nestes casos é necessária a interposição de um dispositivo separado que
transforma o sinal digital original (NRZ) num sinal digital mais eficiente (codificação)
ou num sinal analógico (modulação).
Os equipamentos processadores (geram e recebem os dados) são conhecidos por
DTE (“Data Terminal Equipment”) e os equipamentos que se encarregam de
codificar ou modular os dados de uma forma adequada às condições do meio de
transmissão são conhecidos por DCE (“Data Circuit-terminating Equipment”).
Existem diversos tipos de equipamento que podem assumir o papel de DCE,
recebendo e enviando dados ao DTE. Como exemplo de DCE, podemos citar o
modem e comutadores das redes WAN das operadoras. Como exemplo de DTE,
podemos citar os terminais e os computadores.
A comunicação entre o DTE e o DCE envolve geralmente vários condutores, já que
além de dados também há a necessidade de circular bastante informação de
controle. Trata-se da interface DTE-DCE, existindo várias implementações padrões,
das quais uma das mais importantes é a RS-232
De qualquer forma, tanto a interface DTE, também conhecida como ETD
(Equipamento Terminal de Dados), como a DCE, também conhecida como ECD
(Equipamento de Comunicação de Dados), possuem sinais de controle que são
gerados por uma interface, DCE, por exemplo, e esperados por outra, DTE, por
exemplo.
Os tipos de sinais normalmente enviados pelas interfaces são:
- Sinais de transmissão.
- Sinais de recepção.
- Sinais de sincronismo e controle.
Eles são enviados e recebidos em posições definidas segundo regras e
recomendações próprias das interfaces DTE e DCE, portanto, deve-se respeitar e
seguir tais recomendações ou não haverá comunicação entre as interfaces caso
haja desatenção quanto a este requisito extremamente importante.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
110
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Veja as figuras a seguir.
Figura 4.15 Interfaces DTE e DCE
DCE.10
Veja agora uma topologia genérica identificando dois possíveis equipamentos, um
DTE (servidor) e outro DCE (modem).
Figura 4.16 Topologia prática interfaces DTE e DCE
DCE.1
4.4
.4 EQUIPAMENTOS QUE OPERAM NA CAMADA FÍSICA
A maioria dos padrões da camada física do modelo OSI e TCP/IP refere-se
refere
ao
hardware e não ao software.
Por isso, os equipamentos que trabalham na camada física sã
são
o representados pelos
modems, multiplexadores, repetidores de sinal, hub, conversores de mídia, etc.
Vamos fazer uma breve exposição das funções desses equipamentos.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
111
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
4.4.1 Modems
Realizam a adaptação do sinal digital proveniente de um ETD (computador ou
outro gerador de um trem de bits) ao meio de transmissão (que normalmente só
aceita sinais analógicos).
Os modems podem ser analógicos (utilizam a técnica de modulação para
transportar os bits do ETD em uma portadora analógica) ou digitais (codificam os
bits, fazendo com que o meio de transmissão pense que o sinal sendo transmitido é
analógico quando na realidade é um sinal digital codificado, também chamado de
sinal pseudo-analógico ou de pseudo-portadora).
Figura 4.17 Modem analógico e digital (corporativos).1
4.4.2 Multiplexador
Permite que vários canais de transmissão de informação compartilhem o mesmo
meio físico.
Figura 4.18 Multiplexadores.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
112
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
4.4.3 Repetidor de Sinal
Equipamento que tem a função de regenerar a potência do sinal elétrico, sem
entretanto alterar as propriedades fundamentais do mesmo. Podem também ser
chamados de amplificadores de sinal.
Figura 4.19 Repetidores de sinal.34
4.4.4 Hub
Equipamento utilizado numa rede local de computadores (Rede LAN) que tem a
propriedade de repetir o sinal elétrico numa porta (ou interface RJ-45) para
todas as demais portas. O Hub é, na realidade, um repetidor de sinal mais
sofisticado.
.
Figura 4.20 Hubs.29
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
113
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
4.5 TOPOLOGIA UTILIZANDO OS CONCEITOS DA CAMADA FÍSICA
Figura 4.21 Topologia com interfaces e meios físicos.1
Na topologia acima podemos ver a interligação de uma rede local com a Internet.
Observe os meios físicos, as interligações entre equipamentos e as interfaces
utilizadas.
Normalmente cada meio físico interligado possui interfaces específicas que deve
seguir padronizações da indústria de telecomunicações e de redes de
computadores.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
114
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
4.6 RESUMO
A camada física é responsável pela transmissão dos bits ao meio de
transmissão.
Antes dessa transmissão, a camada física adapta os bits através da modulação ou
da codificação, para que o sinal que contém a informação percorra de forma efetiva
o meio de transmissão.
A camada física é responsável pelos padrões elétricos, funcionais e mecânicos
das interfaces utilizadas para interconexão dos equipamentos de comunicação de
dados.
A unidade de dados padrão dos protocolos da camada física (PDU) é o bit.
Os meios de transmissão fazem parte da camada física e são divididos em meios
guiados (um cabo interliga os elementos de comunicação) e não guiados (onde o
ar atua como meio de interligação).
Os principais meios de transmissão são o par metálico, cabo coaxial, fibra óptica
e transmissão por ondas de rádio (sistemas sem fio).
Os principais equipamentos que trabalham na camada física são: modem,
multiplexador, repetidor de sinal, Hub.
Terminamos aqui este capítulo que tem o objetivo de esclarecer as funções da
camada física, descrever os equipamentos e padrões que atuam nesta camada.
Para maiores informações sobre modems, multiplexadores e comunicação de
dados consulte nosso curso on-line de Fundamentos de Telecomunicações e
Comunicações de Dados (http://ademarfey.wordpress.com/2014/01/04/cursoon-line-fundamentos-de-telecomunicacoes-e-comunicacao-de-dados/).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
115
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CAPÍTULO 5 CAMADA DE ENLACE
INTRODUÇÃO
Este capítulo trata da função da camada de enlace e apresenta os
o principais
protocolos que rodam nela
nela,, tanto na rede LAN como na rede WAN.
5.1
.1 FUNÇÃO DA CAMADA DE ENLACE
A camada de Enlace é a camada 2 no Modelo OSI. Como todas as camadas, nela
são usados protocolos específicos que têm como função proporcionar ao Pacote,
recebido da Camada 3, uma estrutura capaz de ser transmitida através de um link ou
circuito de comunicação de dados, de forma segura, controlada e organizada,
possivelmente livre de erros. Veja a figura abaixo.
enlace.1
Figura 5.1 Função da Camada de enlace
Note que, no meio de transmissão, a informação trafega bit a bit continuamente.
Imagine uma interface na ponta distante recebendo um fluxo de bits e repassandorepassando
os à Camada de Enlace.. Se não houverem regras a serem seguidas nesta camada,
não seria possívell interpretar a informação associada aos bits. Por exemplo:
Quando começa uma informação? O que significa os primeiros 10 bits e os próximos
20, 30 bits que estão chegando? Quando termina a informação e quando começa a
próxima? Percebe-se
se que sem um Protocolo que estabeleça regras, orientando a
interpretação do significado do fluxo de bits, não haverá entendimento entre os
dispositivos de comunicação.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
116
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Pois bem. É esta a função que a Camada 2 executa (presta serviço) para a Camada
3. Monta uma estrutura
a baseada nas regras do protocolo específico desta camada,
chamada “Quadro” ou “Frame
Frame” (em Inglês), e encapsula o Pacote para encaminhá-lo
encaminhá
através da Camada
amada Física no link. (caso você faça o curso on-line
on
Fundamentos
de Redes de Computadores, consulte o ar
arquivo
quivo disponível “Enlace.ppt” para
maiores detalhes).
5.2 QUADRO OU FRAME
Diferentes protocolos possuem diferentes regras, porém todos eles montam um
Quadro ou Frame composto da seguinte estrutura: Veja figura abaixo.
Figura 5.2 Quadro (Frame) na camada de enlace.1
Onde:
- Cabeçalho,, inserido em frente do Pacote da Camada 3.
- Controle de erro, inserido no final do Pacote da Camada 3.
Observe que essa é a estrutura básica das PDUs de todas as demais camadas do
TCP/IP ou do OSI, não tendo, porém, a parte de correção de erros.
5.3 MODELO TCP/IP
Como os protocolos da Camada 2 executam sua função entre as Camadas 3 e 1,
dependendo do protocolo, muitas vezes fica difícil estabelecer onde começa e
termina a responsabilidade de uma camada (física) ou outra (enlace). Por isso, no
Modelo TCP/IP original de 4 camadas, os níveis ou as camadas 1 e 2 foram
agrupadas em uma única camada chamada de Acesso à Rede,, (não confundir com
a Camada de Rede do Modelo OSI, que é a camada 3 nesse modelo, e que no
Modelo TCP/IP chama-se
se Internet/Rede/Inter-Rede).
Independente do nome dado, camada de enlace (OSI), ou camada de acesso à
rede (TCP/IP), a função será sempre a citada, qual seja, a de montar o frame ou
quadro e transmitir para o equipamento de comunicação vizinho (separado apenas
pelo meio físico).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
117
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Veja a comparação OSI e TCP/IP feita a seguir.
Modelo OSI
Modelo TCP/IP 4 camadas
Modelo TCP/IP de 5 camadas
Figura 5.3 Camada de Enlace na Comparação entre modelo OSI e o TCP/IP.1
5.4
.4 PROTOCOLOS DA CAMADA DE ENLACE
Existem dois grupos de protocolos na camada 2.
1 Protocolos que operam em Redes Locais (LAN), sendo os mais utilizados:
•
•
•
•
•
•
Ethernet
802.11 Wi-Fi
IEEE 802.1q
802.11g
Token Ring
FDDI.
2 Protocolos que operam em Redes de Longa Distância (WAN), sendo os mais
utilizados:
•
•
•
PPP
HDLC e
Frame Relay.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
118
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
5.4.1 Ethernet
Não se pode falar em protocolos de comunicação sem mencionar a tecnologia
Ethernet, não só pelo seu sucesso em ter atingido cerca de 85% das redes locais de
computadores - devido ao preço acessível das placas de rede -, como também por
ter evoluído rapidamente para oferecer taxas de linha na ordem de 1 e 10 Gbps. O
termo Ethernet refere-se à família de produtos para redes locais.
A origem da tecnologia Ethernet remonta ao ano de 1970, quando a Xerox
desenvolveu o protocolo de detecção de colisão para acesso múltiplo com detecção
de portadora (CSMA-CD). A taxa de dados era de apenas 3 Mbps, mas, nos anos
80, o seu sucesso foi o suficiente para atrair outros participantes para a criação do
padrão de 10 Mbps.
5.4.1.1 Quadro Ethernet
PRE
SFD
DA
SA
Comp/Tipo Dados PAD
FCS
Figura 5.4 Formato do Quadro (Frame) do protocolo Ethernet.1
Onde:
PRE (Preâmbulo)
Contendo 7 bytes, o campo PRE é um padrão alternado de uns e zeros. Indica às
estações receptoras a chegada de um quadro, e fornece os meios para sincronizar
os circuitos de recepção das camadas físicas com o feixe de dados entrante.
SFD (Start Frame Delimiter, Delimitador de Início de Quadro)
Contendo 1 byte, o campo SFD é um padrão alternado de uns e zeros, encerrando
com 2 bits de "uns" consecutivos. Indica que o próximo bit é o primeiro bit, do
primeiro byte, do endereço de destino.
DA (Destination Address, Endereço de Destino ou MAC de Destino)
Contendo 6 bytes, representados na numeração do sistema hexadecimal, o campo
DA identifica as estações que devem receber o quadro, da seguinte forma:
• O primeiro bit à esquerda indica se o endereço é individual (indicado por 0), ou
de grupo (indicado por 1).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
119
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
• O segundo bit à esquerda indica se o DA é administrado globalmente (indicado
por 0), ou localmente (indicado por 1).
• Os valores dos 46 bits restantes são atribuídos exclusivamente para identificar
uma única estação, um grupo definido de estações, ou todas as estações na rede.
SA (Source Address, Endereço Fonte ou MAC de Origem)
Contendo 6 bytes, representados na numeração do sistema hexadecimal, o campo
SA identifica a estação emissora. O SA é sempre um endereço individual, e o
primeiro bit do primeiro byte é sempre 0. No Wireshark, este campo aparece da
seguinte forma:
Figura 5.5 Dados do endereço MAC coletados no Wireshark.1
Comprimento/Tipo (Length/Type)
Tanto no endereço MAC de origem, como no endereço MAC de destino, os três
primeiros bytes (mais significativos) identificam o código único do fabricante da placa
de redes (OUI) e os outros 3 bytes identificam o número de série da placa de rede.
Comprimento/Tipo (Length/Type)
Contendo 4 bytes, este campo indica tanto o número de bytes de dados da
subcamada MAC - contidos no campo de dados do quadro -, como a ID do tipo de
quadro – se o quadro foi montado usando um formato opcional:
• Se o valor do campo Comprimento/Tipo for menor do que 1500, o número de
bytes LLC no campo de dados será igual ao valor do campo Comprimento de
Dados.
• Se o valor do campo Comprimento/Dados for maior do que 1536, o quadro será
um quadro do tipo opcional, e o valor do campo identifica o Tipo específico do
quadro que está sendo transmitido ou recebido.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
120
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Dados.
O campo de dados é uma sequência de n bytes de qualquer valor, onde n é menor
ou igual a 1500. Se o comprimento do campo de dados for menor do que 46, ele
deve ser estendido, adicionando-se um enchimento (pad) suficiente para aumentar o
comprimento do campo de dados para 46 bytes.
PAD.
Enchimento para campo de dados menor de 46 bytes.
FCS (Frame Check Sequence, Sequência de Verificação de Quadros)
Com 4 bytes, o campo FCS contém um valor com 32 bits correspondentes à
verificação cíclica de erro no frame (CRC), que é criado pelo emissor e recalculado
pelo receptor para verificar os quadros danificados. A sequência FCS é gerada pelos
campos DA, SA, Comprimento/Tipo e Dados.
5.4.1.2 Funcionamento do protocolo Ethernet
Para que o Quadro possa ser transmitido há necessidade de completá-lo com os
dados dos campos SA e DA, que são, respectivamente, os endereços físicos de
Origem e de Destino, ou seja, os endereços MAC de Origem e Destino.
O endereço físico de um elemento que opera com a tecnologia Ethernet chama-se
de endereço MAC (Media Access Control), o qual é representado por um conjunto
de 48 bits sendo divididos em 6 campos separados por dois pontos “:”, conforme
visto anteriormente, e escritos em notação hexadecimal (veremos em seguida a
conversão de binário para hexadecimal).
O endereço MAC é dividido em duas partes:
Os primeiros 24 bits são fornecidos por uma entidade internacional de controle
(IANA) para cada fabricante de equipamentos que operam com a tecnologia
Ethernet. Por exemplo: Fabricantes de placas de rede, hubs, switches, roteadores
etc.
Os 24 bits restantes representam o número de série do equipamento construído por
este fabricante. Por exemplo: A empresa USRobotics coloca na identificação de
suas placas de rede um número único formado pelos 1ºs 24 bits que foram
fornecidos pelo IANA e os 24 bits restantes que representam o número de série de
cada placa. Isto garante que não haverá duas placas de rede com o mesmo
endereço físico (MAC).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
121
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
5.4.1.3 Notação Hexadecimal
Exemplo de um endereço MAC. 19:ab:c9:48:de:fa
ou
19:AB:C9:48:DE:FA
tanto pode ser representado com letras maiúsculas como minúsculas. O endereço
MAC também pode ser representado usando-se o “-“ ao invés do “:”.
Veja o seguinte exemplo:
19-ab-c9-48-de-fa
Cada campo do endereço é composto de 8 bits (octeto). Veja abaixo o endereço
MAC representado na notação binária:
XXXXXXXX:XXXXXXXX:XXXXXXXX:XXXXXXXX:XXXXXXXX:XXXXXXXX
Sendo que X poderá assumir valores 1 ou 0
Como podemos deduzir, um octeto binário é representado por dois números
hexadecimais. Isto significa que 4 bits formam um número hexadecimal.
Hexadecimal é uma notação base 16, significa que possui somente 16 valores
possíveis. Veja a correlação abaixo entre hexadecimal e decimal.
Hexadecimal
Decimal
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Para convertermos um número binário em hexadecimal uma das possibilidades é
considerarmos o sistema de “peso” da posição do bit.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
122
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
123
Suponha a posição dos 4 primeiros bits menos significativos, ou seja, da esquerda
para a direita:
Bits
3 2 1
Peso
8 4
(em computação o primeiro bit menos significativo é o da
posição ou bit zero - por convenção)
0
2
mas por quê ?
1
Porque a representação “8 4 2 1” são os "pesos" dos bits que serão usados para
fazer a conversão.
Observe que em qualquer base numérica a posição dos dígitos tem peso:
Base Decimal=
102
101
milhar
centena
unidade
(posição
dos
números)
100 (valor posição= base numérica elevada no algarismo da posição)
100 10
(valor do peso)
1
2
Base Hexadecimal=
1
0 (posição dos bits)
162 161 160 (valor numérico na posição)
256 16
1
(peso)
Base Binária=
3
2
1
0 (posição dos bits)
23
22
21
20 (valor numérico na posição)
8
4
2
1 (peso)
Como já citamos, uma das técnicas utilizadas para fazer a conversão do número
binário em hexadecimal é dividir os 8 bits do número binário em 2 grupos de 4 bits e
depois fazer a conversão de binário para decimal utilizando o conceito do "peso" da
posição dos bits.
Achando o valor em decimal, para finalizar, converte-se o valor achado para
hexadecimal (exemplo o “14” em decimal vira o “E” em hexadecimal). Vejam mais
detalhes a seguir.
Neste sistema, então, procede-se da seguinte maneira:
Representando somente um octeto, faz-se a conversão para decimal.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
XXXXXXXX
Separando em 2 partes de 4 bits cada fica;
XXXX
Usando o esquema de valores decimais para
cada bit segundo sua posição fica;
XXXX
8 4 2 1
XX XX
8 4 2 1
X XXX
Veja o exemplo abaixo de binário convertido para decimal.
10111110
Separando o octeto em duas partes de 4 bits cada.
8 4 2 1
1 0 1 1
8 4 2 1 Valores decimais correspondentes à posição.
1 1 1 0
Efetuando a operação de conversão teremos:
1x8=8
0x4=0
1x2=2
1x1=1
11
Decimal 11 corresponde a B em Hexadecimal.
1x8=8
1x4=4
1x2=2
0x1=0
14
Decimal 14 corresponde a E em Hexadecimal, logo:
Portanto, o número binário 1 0 1 1 1 1 1 0 corresponde ao hexadecimal BE
Outro exemplo:
O binário 0 0 0 1 1 0 0 1
convertendo
0001
em decimal fica 1
logo, 1 decimal = 1 hexadecimal.
1001
em decimal fica 9
logo, 9 decimal = 9 hexadecimal
Então teremos o binário 0 0 0 1 1 0 0 1
que corresponde ao 19 em hexadecimal.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
124
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
5.4.1.4 ARP ou Address Resolution Protocol
Voltando ao ponto em que comentávamos sobre a inserção do endereço MAC no
campo de SA e DA do quadro Ethernet.
Todos os elementos de rede que operam com Ethernet mantêm uma tabela que
relaciona o endereço lógico IP com o endereço físico MAC. Esta tabela é
conhecida como Tabela ARP.
Quando um emissor ao preencher o campo DA não encontra na Tabela ARP um
MAC relativo a um IP conhecido, é ativado um protocolo conhecido como ARP que
fará uma solicitação requerendo da Máquina portadora do IP conhecido, a
informação de seu endereço físico (MAC).
Esta solicitação é feita através de um endereço de Broadcast que é enviado a todos
os elementos da rede. Todos os elementos da rede devem aceitar esta solicitação,
porém somente o “dono” do IP informado na solicitação responderá com a
informação de seu MAC. O segmento da rede onde a transmissão do Broadcast
alcançar é chamado de domínio de broadcast.
O emissor solicitante da informação acrescenta o novo MAC na sua tabela ARP
podendo assim completar os dados do campo DA no quadro que será enviado à
camada física.
5.4.1.5 Padrões Ethernet e tipo de cabeamento
O padrão Ethernet tem tido um desenvolvimento constante, sempre com ganhos em
termos de performance. Isso se deve muito às melhorias no meio físico empregado,
seja ele par trançado, cabo coaxial ou fibra óptica. A seguir apresentamos as
primeiras redes padrão Ethernet e posteriormente uma tabela com o
desenvolvimento mais completo.
10BASE5
•
•
•
•
•
10Mbps
500 metros de comprimento
100 usuários por segmento
No máximo 4 repetidores
Utiliza coaxial grosso (Thick Coax),
Desvantagens do cabo coaxial grosso:
É relativamente rígido e difícil de ser manuseado, pois o seu diâmetro é cerca de
1,25 cm e utiliza conector AUI.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
125
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
10BASE2 Cheapernet:
•
•
•
•
•
10 Mbps
185 metros de comprimento.
30 usuários por segmento
Repetidores de sinais
Utiliza cabo coaxial fino e leve (Thin Coax)
Vantagens: fácil instalação, redução dos custos em hardware e na instalação
(desenvolvimento dos conectores BNC).
Desvantagens: não suportava muitas estações (reflexão do sinal causada pelos
BNCs em T), fragilidade.
10BASE-T (twisted pair):
• 10 Mbps
• 100 metros de comprimento sem repetidores, utilizando de cabos de pares
trançados
• 1024 usuários por segmento
• Mecanismo de acesso CSMA/CD
• Topologia em estrela (Hub-and-spoke)
Permite operações em:
Full Duplex
Half Duplex
Os dois ao mesmo tempo
10BASE-F (Fiber-Optic):
•
•
•
•
10 Mbps
2000 metros de comprimento sem repetidores
1024 usuários por segmento
Utiliza a fibra óptica
Características da fibra óptica:
Dimensões Reduzidas;
Capacidade para transportar grandes quantidades de informação (Dezenas de
milhares de conversações num par de fibra);
Atenuação muito baixa, que permite grandes espaçamentos entre repetidores,
com distância entre repetidores superiores a algumas centenas de quilômetros.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
126
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Imunidade às interferências eletromagnéticas;
Matéria-prima muito abundante;
Depois desses primeiros padrões, houve a adoção do protocolo Ethernet como
padrão de facto do mercado de redes locais. Nos anos seguintes a esses primeiros
padrões, surgiram o padrão GigaEthernet, 10GigaEthernet, 40GigaEthernet e
atualmente o padrão 100GigaEthernet está em desenvolvimento.
Por outro lado, o par trançado avançou nas suas categorizações, partindo do CAT3
(10 Mbps) para as atuais CAT7 e CAT8 (40 Gbps), este último também em
desenvolvimento.
A fibra óptica, por sua vez, foi sendo aperfeiçoada e diversificada, surgindo modelos
de fibra ópticas para laser otimizado (VCSEL), possibilitando uma maior taxa de
transmissão com um maior alcance físico.
Na rede local se discute atualmente a tecnologia de redes de fibras ópticas passivas
(OLAN - Optical LAN). Os especialistas afirmam que o custo da implementação de
uma rede local com essa tecnologia está chegando próximo a de uma rede cabeada
com par trançado.
As fibras ópticas continuam sendo pesquisadas e tendem a tornar-se o meio físico
do futuro nas redes locais. Atualmente as fibras ópticas possuem a categorização de
OM1 até OM4.
5.4.1.6 Evolução da Ethernet
A tecnologia Ethernet revolucionou a comunicação entre computadores, a partir da
década de 1980.
Saindo de um ambiente de computadores de grande porte, e até de um ambiente
com minicomputadores, as redes locais de computadores possibilitaram o
movimento chamado de “downsizing”, diminuição de tamanho dos computadores,
possibilitando que as empresas diminuíssem o custo de investimento nos
computadores e na troca de comunicação entre eles.
E o protocolo ou tecnologia Ethernet teve um papel importante nesse movimento,
pois possibilitou que os computadores numa rede local pudessem compartilhar
recursos. Observe a evolução da tecnologia Ethernet no quadro seguinte.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
127
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Tabela 5.1 Evolução Ethernet.1
5.4.1.7 Topologias Ethernet
O protocolo Ethernet originalmente foi implementado conforme a topologia abaixo.
Figura 5.6 Topologia em Barramento com Cabo Coaxial Grosso.1
O que acontece nessa topologia é que qualquer informação colocada no cabo
alcança todos os hosts da rede, ficando óbvio que quando uma máquina está
transmitindo nenhuma outra poderá fazê-lo. Essa topologia forma o que chamamos
de Domínio de Colisão.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
128
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
5.4.1.8 Método de acesso ao meio
Devido ao problema visto acima se criou uma técnica que controla o acesso ao meio
chamada de CSMA/CD, que basicamente orienta os elementos presentes na
topologia a “escutar” o barramento. Se não houver tráfego, então o host que
necessita iniciar uma comunicação acessa o meio. Todos os outros hosts detectam
o tráfego no barramento e aguardam até que o cabo fique livre para poderem
trafegar.
5.4.1.9 Colisão
Pode acontecer que dois hosts ao “escutarem” o barramento percebam que não há
tráfego e iniciam ao mesmo tempo uma transmissão, causando o que se chama de
colisão. Nesse caso, o CSMA/CD orienta os hosts a provocarem uma tempestade
de colisão para informar a todos os elementos da rede de que está havendo colisões
e que ninguém deve transmitir. Ao mesmo tempo orienta para que cada elemento da
rede aguarde um tempo aleatório antes de tentar iniciar novamente uma
transmissão.
5.4.1.10 Desenvolvimento do padrão Ethernet
Com o passar do tempo novas tecnologias e técnicas foram sendo introduzidas nas
redes Ethernet, tais como:
Barramento em Estrela, com o uso de equipamentos que centralizam o cabeamento
conforme podemos ver na figura abaixo.
Figura 5.7 Topologia em Estrela com uso de Hub ou Switch.1
Existe também a topologia em anel (Token Ring), que na realidade é uma tecnologia
concorrente do padrão Ethernet proposta pela IBM, onde a saída de um computador
se liga na entrada do outro, formando um circuito em série. Veja a próxima figura.
O meio de acesso usa o chamado sistema de contenção. Cada computador recebe
sua vez para transmitir quando possui a permissão através de um token (bastão).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
129
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 5.8 Topologia em Anel ou Token Ring.1
5.4.1.11 Hub
Equipamento que disponibiliza uma topologia física em Estrela, porém devido sua
característica operacional continua provendo uma topologia Lógica em Barramento,
isto porque um sinal emitido por uma porta do Hub é retransmitido a todas as portas
ao mesmo tempo formando um grande Domínio de Colisão. Na topologia em
estrela com Hub temos também um único Domínio de Broadcast (pois quando um
pacote de broadcast for enviado por uma porta do hub, este último repetirá o sinal
para as demais portas).
5.4.1.12 Switch
Equipamento que disponibiliza uma topologia física e lógica em Estrela devido a
característica de operação de só transmitir dados na porta onde está ligado o host
envolvido em um enlace. Por exemplo: Um transmissor e um Receptor.
Figura 5.9 Switches Cisco linha 2960.30
Isto cria diversos domínios de colisão menores. Na condição de tráfego normal não
haverá colisão uma vez que se formam, com o uso de Switch, circuitos individuais e
colisões somente podem acontecer quando for transmitido um Broadcast. Desta
forma o Switch proporciona na rede, a quebra do domínio de colisão, mas ainda
mantém um grande domínio de Broadcast.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
130
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
5.4.1.13 Informação complementar sobre o protocolo Ethernet
Como dissemos anteriormente, no Modelo TCP/IP original de 4 camadas as funções
das camadas 2 e 1 foram agrupadas em uma única camada chamada de Acesso à
Rede. O protocolo Ethernet, operando nesta camada então, possui na sua estrutura
uma divisão de funções que são executadas por:
LLC- Logic Link Control, é uma subcamada que interage com os dados recebidos da
camada superior (Internet).
MAC- Media Access Control, é uma subcamada que passa a executar a interface
entre os dados fornecidos pela subcamada LLC e o meio físico (linha). Veja figura
abaixo.
Figura 5.10 Camada física e camada de enlace com suas subcamadas.1
5.4.2 PPP
O PPP é um dos protocolos de enlace mais utilizados em redes de Longa Distância
(WAN). Os dados recebidos da Camada 3, assim como com outros protocolos da
Camada 2, são encapsulados de acordo com as regras específicas do PPP e
passam a serem transmitidos na linha através da Camada Física.
5.4.2.1 Quadro PPP
Veja os campos do Quadro PPP na figura a seguir.
Figura 5.11 Formato do Quadro (Frame) do protocolo PPP.10
Pela própria definição vista nos requisitos acima, o quadro PPP deverá ser capaz de
enquadrar um pacote proveniente da camada superior, especificar o protocolo ao
qual ele pertence e entregar no outro ponto o pacote completo. Para isso, o quadro
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
131
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
precisa reservar um espaço extra para a informação de controle. O quadro contém
os seguintes campos:
Flag - Todo quadro começa e termina com um byte de valor 01111110.
Endereço - Por enquanto apenas o valor de broadcast é utilizado: 11111111. O PPP
permite que este não seja enviado.
Controle - Apenas o valor 00000011 foi especificado até o momento. O campo foi
criado prevendo a necessidade de abranger mais de uma especificação. É possível
não transmiti-lo, assim como o campo de endereço.
Protocolo - Este campo informa ao receptor PPP a qual protocolo da camada de
rede pertence o pacote enquadrado como informação. Ao receber um quadro, o
receptor verifica a existência de erros e em caso negativo repassa os dados
encapsulados - o pacote - ao protocolo apropriado. O RFC 1700 define os códigos
utilizados pelo PPP. Como exemplo temos o IP (21h), o DECnet (29h) e o protocolo
de controle de enlace PPP (C021h).
Informação - Contém o pacote encapsulado proveniente da camada de rede. O
comprimento máximo padrão deste campo é 1500 bytes, embora seja possível a
mudança na primeira vez em que o enlace é configurado.
Verificação - Utiliza um código de redundância cíclica, padrão HDLC, para detectar
erros de bits em um quadro transmitido.
5.4.3 HDLC
Assim como o PPP, o HDLC é utilizado em redes WAN. Cada frame do protocolo
HDLC pode conter seis campos. O frame é constituído basicamente de: campos flag
(bandeira) de início e fim, campo de endereço, campo de controle, campo de
informação e campo FCS. Nas transmissões de múltiplos frames, o campo flag de
fim de um frame pode servir como flag do próximo.
5.4.3.1 Quadro HDLC
Veja a seguir o formato do Quadro HDLC.
Figura 5.12 Formato do Quadro (Frame) do protocolo HDLC.10
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
132
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Campo Flag
O campo flag do protocolo HDLC é uma sequência de 8-bits, cujo padrão é
01111110, que identifica tanto o início quanto o final de um frame e serve para
sincronizar receptor e transmissor.
Campo de Endereço
O segundo campo de um frame HDLC endereça a estação secundária que é a
origem ou destino do frame, ou talvez, uma estação funcionando como estação
secundária no caso de combinação das estações. Se a estação principal montar o
frame, o campo de endereço desse frame contém um endereço de destino. Caso
contrário, o campo de endereço do frame contém um endereço de origem. O
tamanho de um campo de endereço pode ser um ou muitos bytes, dependendo do
tipo e tamanho da rede. Um byte identifica univocamente 128 estações, porque um
bit é utilizado para outro propósito.
Redes muito grandes requerem muitos bytes de identificação no campo de
endereços.
Campo de Controle
O campo de controle é um segmento do frame de 1 ou 2 bytes utilizados para
controle de fluxo e erros. A interpretação dos bits deste campo é diferente para
diferentes tipos de frames.
Campo de Informação
O campo de informação contém os dados na camada ou nível de rede ou
informação sobre o gerenciamento da rede. O tamanho desse campo pode variar,
dependendo da rede, mas é sempre fixo dentro de uma mesma rede.
Campo FCS
O campo de detecção de erro do protocolo HDLC é o FCS (frame check sequence).
Este campo pode conter 2 ou 4 bytes de CRC (padrão ITU-T).
5.4.4 Frame Relay
O Frame Relay pode ser tanto um protocolo do nível ou camada de enlace quanto
uma tecnologia de rede WAN.
Como protocolo da camada de enlace ele é utilizado nos circuitos de comunicação
de dados para interligar as redes locais ao backbone das operadoras.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
133
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Como tecnologia de rede WAN o Frame Relay é utilizado para criação de redes
corporativas, tendo alcançado grande sucesso nas décadas de 1990 e 2000.
5.4.4.1 Características
É um protocolo WAN5 de alta performance que opera na camada física e de enlace
do modelo OSI. Esta tecnologia utiliza comutação por pacotes para promover a
interface com outras redes através de dispositivos de borda (roteadores),
compartilhando dinamicamente os meios de transmissão e a largura de banda
disponível, de forma mais eficiente e flexível.
O protocolo Frame Relay, sendo descendente direto do X-25, utiliza-se das
funcionalidades de multiplexação estatística e compartilhamento de portas, porém
com a alta velocidade e baixo atraso (delay) dos circuitos TDM. Isto é possível, pois
o mesmo não utiliza o processamento da camada de rede (layer 3) do X.25. Isto
exige redes confiáveis para a sua implementação eficiente, pois em caso de erro no
meio de transmissão, ocorre um aumento significativo no número de retransmissões,
pois a checagem de erros ocorre somente nas pontas.
O protocolo Frame Relay proporciona orientação à conexão em sua camada de
trabalho (modelo OSI - Camada de Enlace de Dados ou camada 2).
O Frame Relay é baseado no uso de Circuitos Virtuais (VCs). Um VC é um circuito
de dados virtual bidirecional entre 2 portas quaisquer da rede, que funciona como se
fosse um circuito dedicado. Existem 2 tipos de Circuitos Virtuais: O Permanent
Virtual Circuit (PVC) e o Switched Virtual Circuit (SVC).
O PVC é um circuito virtual permanente configurado pelo operador na rede através
de um sistema de Gerência de Rede, como sendo uma conexão permanente entre 2
pontos. A rota através dos equipamentos de rede pode ser alterada ao passo que
ocorrem falhas ou reconfigurações, mas as portas de cada extremidade são
mantidas fixas. Já o SVC é um circuito virtual comutado, que é disponibilizado na
rede de forma automática, conforme a demanda, sendo utilizado principalmente por
aplicações de Voz que estabelecem novas conexões a cada chamada.
O Frame Relay também possibilita a utilização de múltiplos canais lógicos em uma
mesma linha de acesso, o que torna o mesmo ponto-multiponto. Isto significa que
podemos, utilizando uma única linha dados em um ponto de concentração (No CPD,
por exemplo), acessar diversos pontos remotos. Cada ponto remoto é acessado
através de um endereço lógico diferente, chamado DLCI.
Outra característica interessante do Frame Relay é a CIR (Commited Information
Rate). O Frame Relay é um protocolo de redes estatístico, voltado principalmente
para o tráfego tipo rajada, em que a sua infraestrutura é compartilhada pela
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
134
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
operadora de telefonia e, consequentemente, tem um custo mais acessível do que
uma linha privada. Isto significa que quando um usuário de serviços de
telecomunicações contrata uma linha Frame Relay com 128 Kbps, não quer dizer
que ele tenha alocado na rede da operadora esta banda todo o tempo, pois, já que a
infraestrutura é compartilhada, haverá momentos em que ocorrerá
congestionamento.
No ato da assinatura
inatura do contrato com a operadora, o usuário escolhe uma taxa de
CIR,, que pode ser de 25%, 50%, a que o usuário escolher, e no momento do
congestionamento, a operadora garante que terá disponível a banda correspondente
ao CIR.
Por exemplo, se um usuári
usuário tem um Frame Relay de 128 Kbps com um CIR de
50%, caso a rede não esteja congestionada o mesmo poderá realizar uma rajada de
tráfego de até 128 Kbps. Porém, caso haja congestionamento, esta banda vai sendo
automaticamente reduzida até o valor de CIR, podendo
endo este usuário,
usuário no pior caso,
trafegar a 64 Kbps,, que corresponde a 50% de 128 K
Kbps.. Quanto maior a CIR, maior
o custo da linha .
5.4.4.2
.2 Quadro Frame Relay
Veja a seguir o formato do Quadro Frame Relay.
Figura 5.13 Formato do Quadro (Frame) do protocolo Frame Relay.
Relay 5
Na figura anterior cada
ada linha representa 1 byte.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
135
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
5.4.4.3 Descrição dos campos do cabeçalho do Frame Relay
DLCI
FCS
FECN
BECN
DE
EA
C/R
Payload
Data Link Connection ID
Frame Check Sequence
Forward Explicit Congestion Notification
Backward Explicit Congestion Notification
Discard Eligibility
Extended address
Command/Response bit
1 to 4096 bytes
5.5 RESUMO
A camada de enlace provê a comunicação entre dois equipamentos vizinhos
num link de dados e monta o Frame que vai ser transmitido entre esses
equipamentos.
A unidade de dados padrão dos protocolos da camada de enlace (PDU) é o frame
ou quadro.
A camada de enlace trabalha com os endereços físicos (na LAN também
chamados de endereços MAC ou endereços de hardware) que já vem prédefinidos do fabricante da placa de rede.
Os principais protocolos da camada de enlace da rede LAN são o Ethernet e o
Token Ring.
Na rede WAN, os protocolos de enlace mais conhecidos são o PPP, Frame Relay,
ATM e HDLC.
Os principais equipamentos que trabalham na camada física são: switch na rede
local e comutadores de nível 2 no backbone da operadora (rede WAN).
Termina aqui este capítulo que tratou da camada de enlace do modelo TCP/IP e
modelo OSI.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
136
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CAPÍTULO 6 CAMADA DE REDE
INTRODUÇÃO
Este capítulo visa o estudo da camada de rede do modelo TCP/IP, a qual é
equivalente à camada de rede do modelo OSI.
6.1 CONCEITOS BÁSICOS DA CAMADA DE REDE
6.1.1 Função
A Camada 3 do Modelo de Referência OSI, também chamada de Camada Internet
(ou de Rede) no Modelo TCP/IP, é a camada que possui uma função clara e bem
definida, ou seja: deve prover meios eficazes para encaminhar, através das
melhores rotas, o conjunto de dados transmitidos de uma origem para um destino,
utilizando os endereços lógicos. Como isto é feito, será visto a seguir. Apesar de, à
primeira vista parecer complicado, se bem entendido, torna-se simples.
6.1.2 Funcionamento
É de conhecimento geral de que para haver comunicação entre dois elementos é
necessária a utilização de uma linguagem comum isto é, se devem utilizar as regras
e procedimentos iguais, ou seja, o mesmo Protocolo.
Cada camada do Modelo OSI ou TCP/IP utiliza seus protocolos específicos, sendo
indispensável a utilização do mesmo protocolo na origem e no destino, sempre que
estes tenham uma comunicação par-a-par, peer-to-peer ou ponto-a-ponto. Aqui é
necessária uma observação: muitas vezes a comunicação entre a origem e o destino
não é feita ponto-a-ponto, mas sim através de diversos dispositivos instalados no
caminho. Veja na figura abaixo.
Figura 6.1 Protocolos de comunicação.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
137
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Note que numa ponta podemos ter o Sistema Operacional Windows da Microsoft e
na outra o OS/2 da IBM, ou seja, um aplicativo na origem será implementado
diferentemente no destino, porém par-a-par os dispositivos deverão comunicar-se
usando os mesmos protocolos, em todas as camadas.
6.1.3 Protocolos da Camada de Rede
Encontramos na Camada de Rede dois tipos de protocolos:
a- Protocolos de Roteamento.
Têm a função de determinar e selecionar os melhores caminhos por onde serão
encaminhados os Protocolos Roteáveis. Alguns dos Protocolos de Roteamento são:
BGP, OSPF, IGRP. EIGRP e RIP.
b- Protocolos Roteáveis.
Têm como função proporcionar uma estrutura capaz de identificar a origem e o
destino dos dados gerados na Camada de Aplicação e que serão encaminhados de
um ponto a outro.
Alguns dos Protocolos Roteáveis são: IP, IPX e AppleTalk.
6.2 FUNCIONAMENTO DO PROTOCOLO ROTEÁVEL IP
O Protocolo IP é o protocolo da Camada de Rede do TCP/IP, mundialmente
conhecido e usado. Por esta razão, iremos nos focar no estudo das características
do mesmo.
Vamos desenvolver nosso raciocínio considerando os dados sendo analisados da
origem para o destino, ou seja, da Camada de Aplicação para a Camada de Rede,
que é o objetivo deste capítulo.
A Camada 3, ao receber o conjunto de dados proveniente das camadas superiores,
não analisa se o conteúdo que chega possui informações de uma camada ou de
outra. Para a Camada de Rede tudo que for passado a ela é considerado um bloco
único de dados e que deve ser preparado com o objetivo de identificar a origem e o
destino dos dados. Como o IP realiza esta tarefa será detalhado em seguida.
Verifique a figura abaixo e procure compreender os passos que os dados originados
na Camada de Aplicação devem seguir até a Camada de Rede (no mesmo
computador), considerando o modelo OSI.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
138
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
D
A
D
S
A
D
T
S
A
D
T
S
A
D
A
S
T
R
R
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace
Figura 6.2 Encapsulamento no modelo OSI.1
Os dados gerados na Camada de Aplicação (A) são passados para a Camada de
Apresentação, que insere seus controles antes dos dados (A–D), formando sua PDU
no processo chamado de encapsulamento. Por sua vez, a Camada de Apresentação
passa seus dados mais seus controles (PDU) para a Camada de Sessão, que insere
seus controles (S-A-D) antes dos dados recebidos, formando sua própria PDU, e
assim sucessivamente, até a Camada de Transporte, que realiza o mesmo
procedimento, montando sua PDU (T-S-A-D) e a entrega para a Camada de Rede
onde serão tratados conforme explicações que detalharemos em seguida.
Inicialmente, a camda de Rede ao receber o bloco de dados proveniente da Camada
de Transporte insere na frente desses dados o seu cabeçalho de controle, montando
a sua PDU (R-T-S-A-D).
Se realizarmos o mesmo processo de encapsulamento no TCP/IP, veremos que ele
é mais simples, pois acima da Camada de Rede temos apenas a Camada de
Transporte e a de Aplicação. A PDU da Camada de Rede do TCP/IP conteria
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
139
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
apenas o seu próprio cabeçalho mais o cabeçalho do prot
protocolo
ocolo de transporte e o
cabeçalho do protocolo da aplicação encapsulados ((R-T-D).
Devido à importância do cabeçalho do protocolo IP, iremos descrever os campos
que o compõe a seguir.
6.2.1 Cabeçalho IP
Figura 6.3 Campos do cabeçalho no protocolo IP.1
6.2.2 Campos do Cabeçalho IP
Version (Versão): 4 bits. A versão atual é a 4.
IHL (Internet Header Length – Comprimento do Cabeçalho Internet): 4 bits.
Informa o comprimento do cabeçalho Internet em palavras de 32 bits (4 octetos ou 4
bytes). O tamanho mínimo do cabeçalho é de 5 palavras de 32 bits (20 octetos), e o
tamanho máximo (o campo Option + Padding tem tamanho variável) é de 15
palavras de 32 bits (60 octetos). Aponta para o início do campo de dados.
TOS (Type of Service – Tipo de Serviço): 8 bits. É utilizado para indicar o QoS
(Quality of Service – Qualidade de Serviço) desejado. Seus bits caracterizam os
serviços escolhidos para serem considerados pelos gateways para processar o
pacote, como por exemplo, a precedência de um pacote. Um roteador (o
( qual pode
ser chamado de gateway) pode em situações de grande congestionamento, por
exemplo, aceitar somente pacotes com um certo nível mínimo de precedência.
Geralmente, numa transmissão de dados, deseja-se
se baixo atraso, alta confiabilidade
e alto throughput (vazão).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
140
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Total Length (Comprimento Total): 16 bits. Informa o comprimento do datagrama,
em octetos (bytes). O tamanho máximo do datagrama pode ser 65.535 octetos (64
KB).
B). Esse tamanho de octeto é impraticável para a maior parte de hosts e redes.
Todos os hosts devem ser capazes de no mínimo aceitar datagramas de 576
octetos, fragmentados
entados ou não. Esse número foi determinado, partindo-se do
pressuposto que 512 octetos seria um número razoável de dados a ser enviado,
considerando-se
se mais 64 by
bytes
tes de cabeçalho, sendo que o tamanho máximo do
cabeçalho Internet é de 60 octetos, mas o tamanho típico é de 20 octetos, dando-se
dando
margem para cabeçalhos de outras camadas. Recomenda-se
se que os hosts só
enviem datagramas maiores que 576 bytes se houver a certeza
rteza de que o endereço
de destino aceita receber essa quantidade de dados.
Identification (Identificação): 16 bits. Número de identificação do datagrama para
permitir que o destino remonte os datagramas.
Flags (Sinalizadores): 3 bits. Bits de controle da
a fragmentação do datagrama.
datagrama
Figura 6.4 Significado dos bits do campo Flags
Flags.1
Fragment Offset (Deslocamento do Fragmento): 13 bits. Esse campo indica a
posição desse fragmento em relação ao do datagrama original. O valor desse campo
é expresso em unidades de 8 octetos (64 bits), portanto
portanto, o tamanho mínimo do
campo de dados de um fragmento é de 64 bits. O primeiro fragmento tem valor 0
nesse campo.
TTL (Time to Live – Tempo de Vida): 8 bits. Indica o tempo máximo que o
datagrama pode permanecer na rede. Se o valor nesse campo for 0, o datagrama
deve ser descartado. A intenção desse campo é não permitir que datagramas cujo
destino seja inalcançável fiquem eternamente circulando pela rede. Inicialmente, a
unidade do TTL era definida em segundos, mas ccomo
omo cada unidade processadora
de datagramas (roteadores, switches de camada 3, etc.) deve diminuir o TTL de uma
unidade (decrementar de um) e
este
ste campo passou a controlar o número de passos
(hops) pelos quais o pacote atravessa entre origem e destino
destino, tornando-se
torna
somente
um limite superior da existência de cada datagrama
datagrama.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
141
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Protocol (Protocolo): 8 bits. Indica o protocolo da camada superior que está
utilizando os serviços da camada IP. Esses valores estão definidos no RFC 790 –
Assigned Network Numbers (Números de Redes Designadas) de 1981. Esse RFC
foi substituído pelo RFC 1700 – Assigned Numbers. O número do TCP, por exemplo,
é 6. Quando o IP estiver encapsulado em outra camada IP, como em uma Virtual
Private Network, por exemplo, o valor desse campo é 4.
Header Checksum (Verificação da Soma do Cabeçalho): 16 bits. Esse checksum
é calculado somente sobre o cabeçalho IP. Como alguns campos mudam
frequentemente, como o TTL, esse valor tem que ser recalculado. Para se calcular
esse checksum, faz-se o complemento de um de cada palavra de 16 bits do
cabeçalho, soma-se elas e faz-se o complemento de um da soma total (para efeitos
de cálculo, o campo Header Checksum vale 0). Embora esse algoritmo seja simples,
ele é suficiente e seguro para a maioria das situações. Pode ser que ele seja
substituído por um algoritmo do tipo CRC.
Source Address (Endereço de Origem): 32 bits. Informa o endereço de origem.
Destination Address (Endereço de Destino): 32 bits. Informa o endereço de
destino. Essa informação é utilizada pelos roteadores para o encaminhamento
(roteamento) do datagrama. Alguns equipamentos podem utilizar os campos IP de
origem, de destino e até mesmo informações de protocolos de níveis superiores e o
tipo de dado sendo transmitido para realizar o roteamento de pacotes e juntamente
realizar algum tipo de priorização ou QoS.
Options (Opções): Tamanho variável, entre 0 e 320 bits (40 octetos). O que é
opcional é a transmissão ou não desse campo, não a sua implementação. Todo os
roteadores e gateways devem implementar meios de codificação/decodificação
desse campo. Pode haver mais de uma opção nesse campo. As opções servem,
entre outras coisas, para informar se o próprio campo Option deve ou não ser
copiado para os fragmentos, caso o pacote venha a ser fragmentado, para embutir
um timestamp da rede, adicionar informações relativas ao nível de segurança do
pacote (confidencialidade) ou para especificar uma rota para um determinado
destino. Mais informações sobre esse campo pode ser encontrado no RFC 791.
Data: É o campo que contém os dados efetivos do pacote, oriundos das camadas
superiores.
6.2.3 Importância dos Campos de Endereço do cabeçalho IP
Apesar de todos campos terem sua devida importância, os campos a seguir são de
relevância fundamental para a perfeita atuação do IP. São eles:
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
142
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Source Address (Endereço de Origem): 32 bits. Informa o endereço de origem.
Estes 32 bits são divididos em quatro (4) campos de 8 bits (octeto) separados por
um ponto (.).
Como as máquinas só entendem a linguagem Digital, bit 1 e bit 0, portanto binária,
os campos do endereço ficam assim representados:
1º campo 2º campo 3º campo 4º campo
xxxxxxxx . xxxxxxxx . xxxxxxxx . xxxxxxxx com o x (bit) podendo assumir valor
1 e 0,, imaginemos o seguinte endereço IP.
10100000.00000011.00000001
Para a melhor compreensão ao ser
11000000.10100000.00000011.00000001
humano, passou-se
se a representar o endereço IP através de notação decimal. Com
isto é necessário converter
converter-se o número binário em decimal.
6.3 ENDEREÇAMENTO IP
O endereço IPv4 é composto por 32 bits, divididos em 04 bytes (octetos).
Uma parte do endereço IP identifica a Rede e a outra parte identifica o Host (numa
determinada rede).
Na parte do Host dois endereços são reservados (não podem ser utilizados):
•
•
•
O primeiro, com bits todos zerados, identifica a própria rede
O último, com bits todos em um (1), identifica o endereço de broadcast da
rede
Os demais endereços compreendidos entre o primeiro e último são chamados
de endereços IPs válidos
Como vimos, os endereço IPv4 é dividido em duas partes:
•
•
Prefixo de Rede:: identifica o endereço IP de uma determinada
eterminada Rede de
Computadores
Identificação do Host: identifica o endereço IP de um Host de uma
determinada Rede de Computadores
Figura 6.5
.5 Estrutura básica do IPv4.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
143
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
O endereço IPv4 segue a mesma lógica da rede telefônica, onde temos o Prefixo da
área telefônica (Rede) e a identificação do número telefônico (Host).
6.3.1 Formato do endereço IP
A segui veremos o formato do endereçamento IPv4 em detalhes.
Figura 6.6 Estrutura do endereço IPv4.1
Os endereços IP são expressos como números decimais com pontos: divide-se os
32 bits do endereço em quatro octetos (um octeto é um grupo de 8 bits). O valor
decimal máximo de cada octeto é 255. O maior número binário de 8 bits é 11111111.
Esses bits, da esquerda para direita, têm os valores decimais (pesos) 128, 64, 32,
16, 8, 4, 2 e 1. Somados, eles totalizam 255.
Como as máquinas só entendem a linguagem Digital, bit 1 e bit 0, portanto binária,
os campos do endereço ficam assim representados:
1º campo 2º campo 3º campo 4º campo
xxxxxxxx . xxxxxxxx . xxxxxxxx . xxxxxxxx com o x (bit) podendo assumir valor
1 e 0, imaginemos o seguinte endereço IP.
11000000.10100000.00000011.00000001
Para a melhor compreensão ao ser
humano, passou-se a representar o endereço IP através de notação decimal. Com
isto é necessário converter-se o número binário em decimal.
6.3.2 Conversão binária para decimal
Veja a seguir o valor decimal correspondente (peso) a cada Bit, segundo sua
posição no Octeto.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
144
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Tabela 6.1 A posição dos bits num byte e seu peso em binário e decimal.1
No exemplo abaixo, multiplique o valor do Bit pelo seu correspondente decimal e
some os resultados.
11010101
128+64+0+16+0+4+0+1= 213
Vamos analisar somente um octeto.
X X X X X X X X como o X pode assumir dois valores (0 e 1), segundo sua posição
no octeto (menos significativo da direita para a esquerda), teremos os seguintes
valores decimais correspondentes a estas posições.
128 64 32 16 8 4 2 1
X X X X X X X X
27 26 25 24 23 22 21 20
Valores decimais (peso)
Valores em binário
Para converter o número binário para decimal faz-se o seguinte:
Dado o número 1 1 0 0 0 0 0 0
correspondente.
128 64 32 16 8 4 2 1
1 1 0
0 0 0 0 0
multiplica-se o valor decimal da posição, pelo bit
valores decimais referentes à posição do bit.
Temos que:
0x1=0
0x2=0
0x4=0
0x8=0
0 x16= 0
0 x32= 0
1 x64= 64
1x128=128
Soma-se os valores encontrados.
192
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
145
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Portanto o número 192 decimal corresponde ao número
1
1
0
0 0 0 0 0
no sistema binário.
Outro exemplo:
128
0
64 32 16 8 4 2 1
0 1 1 1 1 0 0
valores decimais referentes à posição do bit.
0 x 128 = 0
0 x 64 = 0
1 x 32 = 32
1 x 16 = 16
1x 8=8
1x 4=4
0x 2=0
0x 1=0
60
0 0 1 1 1 1 0 0
Portanto o número. 60 decimal corresponde ao número
no sistema binário.
Da mesma forma, porém no sentido inverso, procede-se para converter um número
decimal em binário, por exemplo:
O número 210 decimal será qual valor em binário? Sabendo-se os valores
correspondentes de cada bit no octeto, segundo sua posição, podemos fazer o
seguinte cálculo:
210 é um valor mais alto que o valor decimal do 8º bit do octeto, que é de 128, logo
o nosso número binário, começando pelo 8º bit será:
1 x x x x x x x
Continuando com nosso cálculo; 210-128= 82 que é maior
que o valor decimal do 7º bit do octeto, que é 64, logo o nosso número binário terá
também o 7º bit com o valor 1, ficando assim:
1 1 x x x x x x
Continuando com nosso cálculo; 82-64= 18 que é menor
que o valor decimal do 6º bit do octeto, que é 32, logo o nosso número binário terá o
valor 0 para o 6º bit, ficando assim:
1 1 0 x x x x x
Continuando com nosso cálculo; 18 é maior que o valor
decimal do 5º bit do octeto, que é 16, logo o nosso número binário terá o valor 1 no
5º bit, ficando assim:
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
146
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
1 1 0 1 x x x x
Continuando com nosso cálculo; 18-16= 2 que é o valor
correspondente ao valor decimal do 2º bit do octeto, portanto, nosso número binário
ficará assim:
este número representa em binário, o valor 210 em decimal.
1 1 0 1 0 0 1 0
Outra forma de fazer a conversão de decimal para binário é dividindo o número
decimal por 2 sucessivamente. Veja o exemplo:
210/2= 105
105/2= 52
52/2= 26
26/2= 13
13/2= 6
6/2= 3
3/2= 1
sobra
sobra
sobra
sobra
sobra
sobra
sobra
0
1
0
0
1
0
1
1
o número 1 ficou para ser dividido por 2, o que não é
possível, portanto é anexado ao final do processo. Agora é só realizar a leitura do
numero formado pelos restos de cada operação, no sentido de baixo para cima,
ficando assim:
que é o número binário correspondente ao número 210
1 1 0 1 0 0 1 0
decimal.
Muito bem, uma vez relembrado os processos de conversão, vejamos como
representamos o seguinte endereço IP.
11000000.10111111.00000011.00000001
192
.
191 .
3
.
1
Então 192.191.3.1 é o
endereço IP que representa uma máquina ou host em uma determinada rede.
Mas a que rede afinal este host pertence?
6.3.3 Determinando a Rede de um endereço IP
No esquema do endereçamento IP foi estabelecido que: Parte dos octetos
representa o host e a parte restante representa a rede a que este host pertence.
Mas quem é quem neste esquema? Quem decide qual parte é rede e qual parte é
host?
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
147
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Para solucionar este problema foi criada uma estrutura composta de 32 bits, também
dividida em quatro campos separados por um ponto, que foi chamada de
MÁSCARA.
Como nesta máscara os bits podem assumir os valores 1 e 0, foi estabelecido que
os campos que possuem seus bits com os valores em 1 representarão a Rede e os
campos com os bits em 0 representarão os hosts.
Veja o seguinte exemplo:
1º octeto
11111111
.
2º octeto
11111111
3º octeto
00000000
.
Rede
255
.
.
4º octeto
00000000
host
255
.
0
.
0
Outro exemplo:
11111111.11111111.11111111.00000000
rede
ou
255.255.255.0
host
6.3.4 Aplicando a Máscara
Para descobrir qual parte do endereço IP representa a rede e qual representa o host
devemos aplicar a Máscara no endereço IP. Aplicar a Máscara significa realizar com
o endereço IP dado e a Máscara, uma operação lógica AND, isto é multiplica-se um
valor pelo outro. Por exemplo:
10.10.0.1 com Máscara 255.0.0.0
Convertendo para binário teremos:
00001010.00001010.00000000.00000001
11111111.00000000.00000000.00000000
endereço do host
Máscara
00001010.00000000.00000000.00000000
Resultado da operação AND
Convertendo para decimal teremos:
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
148
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
10.0.0.0 logo o endereço IP 10.10.0.1 pertence à rede 10.0.0.0
Outro exemplo:
192.168.10.5 com máscara 255.255.255.0
Convertendo para binário teremos:
11000000.10101000.00001010.00000101
11111111.11111111.11111111.00000000
endereço do host
Máscara
11000000.10101000.00001010.00000000
Convertendo para decimal teremos:
Resultando da operação AND
192.168.10.0
logo o endereço IP 192.168.10.5 pertence à rede 192.168.10.0
Desta forma, então o equipamento descobrirá a qual rede um determinado IP de
host pertence.
6.3.5 Classes de Endereçamento IP
Como é de nosso conhecimento, o endereço IP é composto de 32 bits, sendo que os
mesmo podem assumir dois (2) valores (0 e 1), logo teremos um número máximo de
endereços IP derivados do seguinte cálculo:
232= 4.294.967.296
de endereços IP possíveis.
Figura 6.7 Classes A, B e C do IPv4.1
Verifique que cada classe comercial (A, B e C) divide os 4 bytes do IPv4 em duas
partes: a da Rede (R - Network) e a do Host ou computador (H - Host):
•
•
R (rede - network) que é o número de rede atribuído pelo ARIN;
H (host) que é o número de host atribuído pelo administrador da mesma.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
149
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Para uma melhor organização na utilização destes endereços, eles foram divididos
em Classes, segundo determinadas regras.
Foram criadas as Classes A, B, C, D e E.
A Classe D é usada para endereçamento Multicast e a Classe E foi reservada para
uso futuro.
Iremos nos focar somente nas Classes A, B e C que são as mais utilizadas.
Tabela 6.2 Classes comerciais dos endereços IPv4.1
Foi definido então que a Classe A seria representada pela Máscara 255.0.0.0 e
que o 1º octeto do endereço IP seria usado para representar as Redes Classe A,
enquanto que os 2º, 3º e 4º octetos seriam usados para representar os hosts
pertencentes às Redes Classe A
Exemplo:
20.10.5.1
255.0.0.0
IP de host
Máscara Classe A
20.0.0.0
Rede Classe A a que pertence o host 20.10.5.1
Outro exemplo:
100.0.1.10
255.0.0.0
IP de host
Máscara Classe A
100.0.0.0
Rede Classe A a que pertence o host 100.0.1.10
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
150
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Se dispusermos do 1º octeto para endereçar Redes Classe A, teremos 28=256
possíveis redes Classe A, com 224=16.777.216 possíveis endereços para hosts em
cada Rede. No entanto, devido a só utilizarmos 7 bits para definir as redes classe A
e também devido às redes 0.x.x.x e 127.x.x.x serem reservadas, na prática só
dispomos de 126 redes classe A (conforme veremos mais adiante).
Foi definido que a Classe B seria representada pela Máscara 255.255.0.0 e que os
1º e 2º octetos seriam utilizados para endereçar as Redes Classe B, enquanto que
os 3º e 4º octetos seriam utilizados para endereçar os hosts pertencentes a esta
Classe.
Por exemplo:
128.10.3.5
255.255.0.0
IP de host
Máscara Classe B
128.10.0.0
Rede Classe B a que pertence o host 128.10.3.5
Outro exemplo:
IP de host
Máscara Classe B
150.0.1.1
255.255.0.0
150.0.0.0
Rede Classe B a que pertence o host 150.0.1.1
Da mesma forma que raciocinamos para a Classe A vale para Classe B, logo
teremos:
2x8=16, então teremos 216=65.536 redes Classe B possíveis, com 216=65.536
endereços de hosts possíveis para cada rede Classe B.
Foi definido que a Classe C seria representada pela Máscara 255.255.255.0 e que
os 3 primeiros octetos seriam utilizados para endereçar as redes Classe C e que o
último octeto seria utilizado para endereçar os hosts pertencentes a estas classes.
Por exemplo:
200.100.50.5
255.255.255.0
IP de host
Máscara Classe C
200.100.50.0
Rede Classe C a que pertence o host 200.100.50.5.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
151
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Outro exemplo:
196.10.1.10
255.255.255.0
IP de host
Máscara Classe C
196.10.1.0
Rede Classe C a que pertence o host 196.10.1.10.
Na mesma linha de raciocínio usado anteriormente teremos:
3x8= 24, então
224= 16.777.216 redes Classe C possíveis com 28= 256
possíveis endereços de hosts para cada rede Classe C.
6.3.6 Identificando a Classe de um endereço IP
Como fazer para identificar se um determinado endereço IP pertence a uma rede
Classe A, B ou C?
Inicialmente qualquer bom estudante diria; “É só olhar a Máscara”. Correto? Não.
Nem sempre esta resposta é verdadeira. Vejamos o seguinte exemplo:
10.0.3.5
com Máscara
255.255.255.0
Olhando a Máscara diríamos que o dado endereço IP pertence a uma rede Classe
C, porém isto não é verdadeiro. Vejamos então porque não é correto definir a rede
olhando somente para a Máscara.
Quando foi criado o esquema de endereçamento IP baseado em Classes, definiramse as seguintes regras:
Todo endereço IP que pertença a uma Classe A deve obrigatoriamente possuir no
seu 1º octeto, o 8º bit, com o valor fixo em 0 (zero). Então representado o 1º octeto
como:
0XXXXXXXX
cálculos:
sendo que X pode assumir os valores 0 ou 1, façamos os seguintes
Se X = 0 o valor decimal do octeto será 0, não esqueça de que o 8º bit do 1º octeto
será sempre 0 quando se tratar de rede Classe A. Vejamos então como ficará o
octeto quando X = 1.
01111111 convertendo em decimal teremos o valor 127 logo;
Redes Classe A possuem necessariamente os valores do seu 1º octeto
compreendidos entre 0 e 127. No entanto a rede 0 e 127 são reservadas, ficando
como classe A utilizadas apenas aquelas entre 1 e 126.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
152
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Exemplo:
e
1.10.50.10
126.10.1.25
Para Classe B ficou definido que no 1º octeto o 8º bit teria valor fixo 1 e o 7º bit teria
valor fixo 0 ficando assim;
10XXXXXX
10000000
De forma análoga, quando X = 0 teremos:
Convertendo em decimal teremos o valor
128
Quando X = 1 teremos;
10111111
Convertendo em decimal teremos o valor
191 logo;
Redes Classe B possuem necessariamente no seu 1º octeto valores compreendidos
entre 128 e 191.
Exemplo:
e
128.0.10.1
191.10.250.20
Para Classe C ficou definido que no 1º octeto o 8º bit seria 1, o 7º bit seria 1 e o 6º
bit seria 0 ficando assim:
110XXXXX
11000000
Analogamente teremos, quando X = 0;
Convertendo para decimal teremos o valor
192
Quando X = 1 teremos:
11011111
Convertendo para decimal teremos o valor
223 logo;
Redes Classe C possuem necessariamente no seu 1º octeto valores compreendidos
entre 192 e 223.
Exemplo:
192.50.20.10
e
223.10.10.1
Percebemos então que para definir se um endereço IP pertence a uma rede Classe
A, B ou C devemos olhar única e exclusivamente para o 1º octeto do endereço dado.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
153
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
ndereços IP Especiais e Reservados
6.3.7 Endereços
No nosso estudo feito acima, notamos que alguns endereços tais como o e 127 não
apareceram em nenhuma classe. Isto se deve ao fato de que existem números IPs
conhecidos como Especiais e Reservados.
Figura 6.8 Endereços IP
Pv4 especiais.1
Tabela 6.3 Endereços IP
Pv4 privativos (reservados para uso na LAN).
LAN 1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
154
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Sobre os endereços IP reservados para uso em redes privadas, precisamos fazer
uma observação. São endereços não permitidos a trafegarem na rede mundial
Internet, pois como são utilizados em redes privadas, é possível que 2 hosts
possam estar usando o mesmo endereço IP, em redes distintas, o que é
perfeitamente possível e autorizado, uma vez que as redes privadas são
independentes. Porém, teremos problemas com uma situação semelhante se formos
interligar duas redes privadas, pois, nesse caso, não poderemos ter 2 redes IP com
o mesmo endereço de Rede, ou mesmo 2 hosts com o mesmo endereço IP.
Devido a esta possível duplicidade de endereços IP o uso destes endereços
privados não é permitido na Internet.
6.3.8 Exemplos de topologias de redes IP
A seguir exibimos algumas topologias de redes utilizando o protocolo IP.
Figura 6.9 Topologia de rede IP com acesso à Internet via Cable Modem.
Observe na rede acima que o roteador e os três hosts estão numa mesma rede (o IP
do roteador seria o default gateway para os três hosts). O Cable Modem está numa
outra rede (da operadora).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
155
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 6.10 Topologia de rede IP com acesso à Internet dedicado.1
Na topologia anterior, o escritório central de uma empresa se interliga a Internet por
um circuito dedicado. Se a empresa montar uma rede corporativa (Rede IP WAN),
cada site deve possuir um endereçamento de rede IP próprio na LAN. Nesse caso, o
roteador WAN de um site se ligará ao roteador da operadora através de endereços
IP WAN.
Figura 6.11 Topologia de rede IP com acesso à Internet via linha dedicada.1
Na topologia acima é usado o NAT (tradução de endereços privativos para públicos
e vice-versa) entre a rede 192.168.100.0 (privada) e a rede pública (145.12.131.7).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
156
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
6.3.9 Endereços de Sub-Rede
Se o endereçamento IP é baseado em classes, por que vemos endereços IPs de
uma classe com Máscara de outra? Aqui precisamos fazer uma outra observação:
O uso de endereçamento por classes gerou um desperdício de endereços IP.
Vejamos o seguinte exemplo:
Uma grande empresa possui uma única rede de computadores com 300 hosts
interligados. A empresa solicita um endereço de rede capaz de suprir sua
necessidade para acesso à Internet.
Não é possível designar um endereço de rede Classe C, pois como sabemos uma
Classe C disponibiliza para endereços de host o último octeto que permite 254
endereços válidos para hosts. Como a empresa necessita de 300 endereços IP há a
necessidade de receber uma rede Classe B que disponibiliza 216 = 65.530 possíveis
endereços para hosts. Veja que se a empresa necessita 300 endereços e a rede
Classe B fornece 65.530 endereços, haverá um desperdício de 65.230 endereços
que não poderão ser designados a nenhuma outra empresa ou cliente.
Para minimizar este problema de desperdício, foi desenvolvida uma técnica que
permite criar, a partir de um endereço de rede padrão, diversas sub-redes. Esta
técnica ficou conhecida como CIDR, ou seja; “Roteamento Interdomínio sem
Classes”.
Neste esquema de endereçamento, a Máscara que era representada pelos 4
octetos, passou a ser representada pelo uso da barra (/) seguida de um número, que
define a quantidade de 1s presentes na Máscara. Veja o seguinte exemplo:
192.168.10.1 255.255.255.0
Endereço IP com a Máscara no esquema de
endereçamento baseado em Classe. Veja como fica a representação no esquema
CIDR:
192.168.10.1/24 sendo que o número 24 representa o número de 1s presentes na
Máscara.
6.3.10 Criando Sub-Redes
Como então criar sub-redes a partir de um endereço de rede padrão? Vejamos o
exemplo abaixo:
Dado o endereço de rede 192.168.10.0, com máscara de 255.255.255.0,
representado no CIDR ficará:
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
157
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
192.168.0/24
Convertendo a máscara para binário, teremos:
11111111.11111111.11111111.00000000
Então, para criarmos sub-redes a partir desta máscara, deveremos solicitar bits
emprestados do 4º octeto que é reservado aos hosts, ficando assim:
11111111.11111111.11111111.11000000
representa a sub-rede
representa os hosts
Convertendo em decimal teremos:
Portanto a representação da rede acima
255
.
255
. 255
. 192
poderá ser representada das seguintes formas:
192.168.10.0/26
ou
192.168.10.0 255.255.255.192
“Observação” Se usarmos 2 bits emprestados teremos 22 = 4 sub-redes.
Se usarmos 3 bits emprestados teremos 23 = 8 sub-redes
Se usarmos 4 bits emprestados teremos 24 = 16 sub-redes
E assim sucessivamente, até o limite de 6 bits emprestados, pois precisamos deixar
no mínimo 2 bits para serem usados para endereçar hosts.
Voltando ao exemplo anterior. Como definimos os endereços das sub-redes e dos
hosts pertencentes a cada sub-rede? Primeiramente, devemos nos lembrar dos
valores decimais que cada bit representa, segundo sua posição no octeto. Veja o
exemplo:
11111111.11111111.11111111.11000000
analisando somente o 4º octeto:
128 64
1 1 0 0 0 0 0 0
O bit menos significativo que foi emprestado é o 7º
bit do octeto cujo valor decimal é 64, logo este valor é o número chave, neste
caso.
Para descobrirmos o endereço das sub-redes devemos agir assim:
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
158
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A 1ª sub-rede é conhecida como sub-net 0 (zero), que é a rede padrão de onde
estarão sendo derivadas as outras sub-redes.
No nosso exemplo 192.168.10.0/26
A 2ª sub-rede é obtida pela soma do número chave (64 no caso) pelo número da
sub-rede anterior. A sub-rede anterior é:
192.168.10.0 logo
192.168.10.64
0+ 64 = 64
então a 2ª sub-rede fica:
A 3ª sub-rede é obtida pela soma do número chave (64 no caso) pelo número da
sub-rede anterior. A sub-rede anterior é:
192.168.10.64 logo 64+64 = 128 então a 3ª sub-rede fica:
192.168.10.128
A 4ª sub-rede é obtida pela soma do número chave (64 no caso) pelo número da
sub-rede anterior. A sub-rede anterior é:
192.168.10.128 logo 128+64 = 192 então a 4ª sub-rede fica:
192.168.10.192
Resumindo teremos:
Sub-rede
1ª
2ª
3ª
4ª
número IP
192.168.10.0/26
192.168.10.64/26
192.168.10.128/26
192.168.10.192/26
Para descobrirmos os endereços IP dos hosts é só verificarmos o número da subrede e o número da próxima sub-rede. Os endereços IP dos hosts estão
compreendidos entre estes valores. Veja o exemplo:
1ª
192.168.10.0
192.168.10.1
192.168.10.2
192.168.10.62
logo o 1º endereço válido para host desta sub-rede é:
o 2º será;
e assim sucessivamente até o último que será;
e por que não 192.168.10.63?
Porque o último endereço de host de qualquer sub-rede é um endereço especial
conhecido como endereço de Broadcast (futuramente iremos comentar sobre este
endereço especial).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
159
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
2ª 192.168.10.64 logo o 1º endereço válido para host desta sub-rede é:
192.168.10.65 o 2º será;
192.168.10.66 e assim sucessivamente até o último que será;
192.168.10.126 e por que não 192.168.10.127? Lembra do endereço
de Broadcast? Então, nunca esquecer de que o último endereço será sempre o
endereço especial Broadcast desta sub-rede.
E assim sucessivamente para as outras sub-redes.
Vejamos agora como proceder para descobrir se um endereço IP dado pertence a
um host, a uma rede ou a uma sub-rede. Veja o seguinte exemplo:
Dado o endereço IP 200.100.50.33/27 perguntamos se este é um endereço de host,
rede ou sub-rede?
Primeiramente devemos verificar a qual classe o endereço dado pertence.
Segundo nossos estudos, verificando o 1º octeto descobrimos que o endereço dado
pertence a uma Classe C .
Relembrando.
Classe C endereços do 1º octeto compreendidos entre;
192 e 223. Logo, 200 pertence a Classe C.
Sendo assim, a máscara deste endereço deveria ser /24 e não /27, o que nos leva a
concluir que foi solicitado 3 bits emprestados para formação de sub-redes. Correto?
Corretíssimo.
Muito bem. Definido então que o endereço citado é parte de uma sub-rede ou pode
ser a própria sub-rede, derivada de uma rede Classe C. devemos nos concentrar na
quantidade de bits emprestados.
Veja a seguir o raciocínio:
11100000 Qual o valor decimal do bit menos significativo que foi emprestado?
32
portanto este é o número chave (neste caso). Utilizando a técnica para
descobrir os números das sub-redes formadas teremos:
(Consulte nosso livro Como Criar Sub-redes em Redes IP – Apêndice C)
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
160
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Sub-net 0 (zero)
2ª sub-rede
200.100.50.0
número chave + sub-rede anterior
200.100.50.32
Logo o endereço IP 200.100.50.33/27 é o 1º endereço válido de host para a subrede 200.100.50.32/27.
Após a explicação do campo de endereço IP de origem, continuaremos com a
análise dos demais campos do cabeçalho IP.
Destination Address (Endereço de Destino): 32 bits. Informa o endereço de
destino.
“Todas as peculariedades verificadas para o endereço de origem, vistas acima,
valem também para o endereço de destino”.
O endereço de Destino será analisado pela camada de rede do dispositivo que o
recebe, ou envia, com o objetivo de decidir para qual interface, deste dispositivo, o
pacote deverá ser encaminhado para ser entregue ao dono do endereço IP de
destino.
De que forma então a camada de rede toma esta decisão? É o que veremos a
seguir:
Ao analisar o endereço IP de destino, a camada 3 consulta sua tabela de Rotas
(todo equipamento que opera na camada 3 tem uma tabela de Rotas conseguida
através de uma configuração manual, pelo administrador da rede ou através dos
Protocolos de Roteamento, matéria a ser discutida a seguir neste capítulo) e aplica
no endereço IP de destino todas as máscaras contidas na sua tabela de rotas. Caso
haja uma correspondência entre o resultado desta aplicação com alguma rota
contida na tabela, este pacote então será encaminhado para a interface associada à
rota correspondente. Veja o exemplo abaixo:
Supondo que a camada de rede analise o seguinte endereço de destino;
192.168.29.5
O equipamento que recebeu o endereço IP de destino consulta sua tabela de rotas
e começa a fazer a aplicação de cada máscara contida na tabela para ver se há
alguma correspondência. Veja uma suposta tabela de rotas deste dispositivo.
Rota
Rota
Rota
Rota
10.0.0.0 máscara 255.0.0.0 encaminha para interface 1
100.25.0.0 máscara 255.255.0.0 encaminha para interface 1
200.100.1.0 máscara 255.255.255.0 encaminha para interface 3
192.168.29.0 máscara 255.255.255.0 encaminha para interface 2
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
161
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
E assim poderá haver diversas rotas.
Primeiramente a camada 3 do dispositivo aplica a 1ª máscara contida na tabela em
cima do endereço IP de destino. No nosso exemplo;
192.168.29.5
aplicando a máscara 255.0.0.0 teremos o seguinte resultado:
192.0.0.0
não corresponde à rede 10.0.0.0 logo a camada 3 passa a aplicar a
2ª máscara de sua tabela;
192.168.29.5 aplicando a máscara 255.255.0.0 teremos o seguinte resultado:
192.168.0.0 não corresponde à rede 100.25.0.0 logo a camada 3 passa a aplicar
3ª máscara de sua tabela;
192.168.29.5 aplicando a máscara 255.255.255.0 teremos o seguinte resultado:
192.168.29.0 não corresponde à rede 200.100.1.0 logo a camada 3 passa a aplicar
a 4ª máscara de sua tabela;
192.168.29.5 aplicando a máscara 255.255.255.0 teremos o seguinte resultado:
192.168.29.0 o que corresponde à rede 192.168.29.0 que está expressa na tabela
de rotas, sendo então o pacote encaminhado para a interface 2, que é a interface
associada a esta rota.
Caso não haja uma correspondência entre o endereço analisado e as rotas contidas
na tabela o pacote IP será descartado.
Veja a figura a seguir.
Figura 6.12 Topologia de rede IP utilizando sub-redes.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
162
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
6.3.11 Classificação dos endereços IP
Podemos classificar os endereços IP como segue abaixo:
Unicast são endereços correspondentes a um único host.
Multicast são endereços correspondentes a um grupo de hosts.
Broadcast são endereços correspondentes a todos os hosts pertencentes a uma
rede ou sub-rede.
Loopback são endereços usados para testes de interface ou gerenciamento.
6.3.12 Roteador
O roteador é um equipamento que roda na camada 3 do modelo OSI e tem a
finalidade de interconectar redes de computadores entre si.
O roteador recebe um pacote IP por uma interface de entrada (normalmente LAN),
analisa o endereço IP da rede de destino e procura uma saída (normalmente uma
WAN) na tabela de roteamento. Veja as figuras a seguir.
Figura 6.13 Roteador (Interface LAN e WAN).1
Figura 6.14 Roteador Cisco 1941 (Vista Traseira).31
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
163
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
6.4 IPv6
O IPv6 é um novo protocolo que roda na camada de rede do TCP/IP. Ele deve
substituir o IPv4 nos próximos anos. Por isso, a importância do seu estudo. Esta
seção é uma introdução ao estudo desse protocolo.
6.4.1 Introdução ao IPv6.
Com a iminente exaustão do IPv4, torna-se urgente a atualização técnica dos
profissionais da área de Tecnologia de Informação a respeito desse novo protocolo
de interconexão de redes. Especialistas da área de infraestrutura de redes
consideram que o IPv6 estará sendo adotado de forma mais efetiva no cenário da
Internet a partir de 2014.
Figura 6.15 Diminuição dos endereços IPv4 disponíveis.32
Como se pode notar no gráfico acima, a ARIN entregou o último bloco de IPv4 /8 em
2011.
Alguns continentes, como o asiático, já está adotando o IPv6 devido ao alto
consumo dos seus endereços em dispositivos móveis de comunicação (smartphone,
tablets, etc.) e por não mais disporem de endereços do IPv4.
6.4.2 Comparação entre cabeçalhos do IPv4 e do IPv6
Relembrando, o IPv4 possui 32 bits de extensão e teóricos 2 elevado na 32
possibilidades de endereços IPs.
IPs = 2 32
É importante uma rápida revisão nos campos do cabeçalho do protocolo IPv4 para
percebermos as diferenças em relação ao cabeçalho do IPv6. Veja a seguir.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
164
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
IPv4.1
Figura 6.16 Cabeçalho IPv4
Note que no cabeçalho acima exibido, o campo do endereço de origem e o campo
do endereço de destino tem um comprimento de 32
2 bits no IPv4,
IPv4 conforme
estudamos anteriormente.
Recordando, o IPv4 está dividido conceitualmente em porção da rede e na porção
de hosts (da mesma forma que a telefonia utiliza, como estrutura básica do
endereço telefônico, o código de área e o número do telefone naquela área). Então,
no IPv4, a partir da divisão dos 4 bytes do endereço IP em porção de rede e porção
do host,, foi criado o conceito de classes A, B, C, D e E.
A classe C é aquela utilizada mais comercialmente e a que ainda possui algum
espaço
ço de endereçamento disponível atualmente (algo em torno de 8% de classe C
com endereçamento ainda disponível).
Já o endereçamento no IPv6 possui um comprimento de 128 bits e teóricos 2
elevado na 128 endereços disponíveis. No IPv6 não existe mais o conceito
conce
de
classes de endereços. O IPv6 trabalha no conceito de redes sem classes utilizando,
portanto, a técnica CIDR de atribuição de endereços, conforme veremos adiante.
No cabeçalho do IPv6 houve várias alterações que vamos detalhar a seguir.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
165
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
IPv6.17
Figura 6.17 Cabeçalho IPv6
Campos:
Version (versão) = versão do protocolo IP. Versões 4 e 6 disponíveis e válidas.
Class ou Traffic Class = Classe de Tráfego (antigo Type of Service no IPv4) =
campo de 8 bits que determina a prioridade da classe de tráfego
tr
(QoS) a ser
transmitido.
Flow Label (rótulo de fluxo) = Campo que foi adicionado no IPv6 para controle de
fluxo.
Payload length (comprimento do payload) = comprimento da carga útil.
Next Header (próximo cabeçalho) = antigo campo Protocol no IPv4. Identifica
Identi
o
próximo protocolo, da camada superior, encapsulado no IPv6.
Hop Limit (Limite de Hops) = antigo campo TTL (Time to Live) no IPv4. Determina o
número máximo de hops pelos quais o pacote IPv6 irá passar.
Source Address (Endereço IPv6 de Origem) = me
mesmo
smo campo do IPv4, mas
estendido de 32 para 128 bits.
Destination Address (Endereço IPv6 de Destino) = mesmo campo do IPv4, mas
estendido de 32 para 128 bits.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
166
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 6.18 Cabeçalhos do IPv4 e IPv6.17
Observa-se que vários campos contidos no IPv4 foram excluídos no IPv6 (os que
estão em vermelho na figura):
•
•
•
•
•
•
•
Header Length (comprimento do cabeçalho), também chamado de IHL;
Identification (identificação);
Flags;
Fragment Offset (deslocamento do fragmento);
Header Checksum (checagem do cabeçalho);
Options (opções);
Padding (enchimento).
Nota-se então que o cabeçalho do IPv6 foi simplificado e os campos ligados às
funções de fragmentação, aumento do cabeçalho (option) e checksum do cabeçalho
foram eliminados.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
167
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
6.4.3 Melhorias no cabeçalho IPv6
• Retirada do campo Opções
Opções: Substituído pelo campo extension header.
header Resulta
num comprimento fixo do cabeçalho IP
IPv6 de 40 bytes.
• Retirada do campo Checksum do cabeçalho: Resulta num processamento mais
rápido.
• Retirada da fragmentação nos nós intermediários: Resulta
ta numa retransmissão
do pacote IP mais rápida.
6.4.4 Cabeçalhos de extensão
Outra mudança importante com o Ipv6 foi a criação do conceito de cabeçalhos de
extensão.
Os cabeçalhos de extensão localizam
localizam-se
se entre o cabeçalho Base (camada de Rede
– Ipv6) e o cabeçalho da camada de Transporte. Veja na figura seguinte a inserção
do cabeçalho de extensão.
Figura 6.19 Cabeçalho de Extensão.17
De modo a tratar as opções, o IPv6 apresenta um esquema de módulos: a
informação adicional é transmitida através dos cabeçalhos de extensão. Esse
Es
esquema fornece ao IPv6 a flexibilidade para transportar informações
informaç
relevantes de
encaminhamento e das aplicações, bem como fornece mecanismos de segurança,
fragmentação, qualidade de serviço e gestão de rede, com escalabilidade
escalabilida ilimitada.
Na medida em que esses módulos são opcionais, esse esquema ajuda também
a reduzir o custo de processamento de pacotes IPv6.
Os cabeçalhos de extensão são colocados entre o cabeçalho base do IPv6 e o
cabeçalho do protocolo d
da camada de
e transporte, estando ligados entre si pelo
campo Próximo Cabeçalho (Next Header)
Header),, formando uma cadeia.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
168
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Os cabeçalhos de extensões no IPv6 podem ser encapsulados em três etapas;
Cabeçalho IPv6
Próximo
Cabeçalho =
TCP
TCP Header + dados
Cabeçalho IPv6
Próximo
Cabeçalho
=
Roteamento
Cabeçalho Roteamento
Próximo Cabeçalho =
TCP
Cabeçalho TCP + dados
Cabeçalho IPv6
Próximo
Cabeçalho
=
Roteamento
Cabeçalho Roteamento
Próximo Cabeçalho =
Fragmento
Cabeçalho
Fragmento
Próximo Cabeçalho
= TCP
Cabeçalho TCP
+ dados
Figura 6.20 Cabeçalhos de Extensão (extension headers).17
Geralmente os cabeçalhos são processados apenas pelos nós
n
intermediários
através do campo Endereço de Destino do IPv6, causando muito menos overhead
do que no processamento de opções no IPv4. A única exceção é o header Options
Hop-by-Hop
O limite de Options de 40 bytes no IPv4 foi eliminado. No IPv6, o limite é o tamanho
total do de pacote ou, em alguns casos, o Path MTU.
Figura 6.21 Encapsulamento dos cabeçalhos de extensão.17
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
169
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Os Cabeçalhos (Headers) de extensão atualmente definidos são: Fragment, Hopby-Hop, Routing, Authentication, Encryption, Destination Options.
•
•
•
•
•
•
•
Hop-by-Hop.Usado para transportar informação opcional que tem de ser
examinada por cada nó ao longo do caminho do pacote.
Opções de Destino IPv6 (Destination Options Header). Usado para
transportar informação opcional a ser analisada apenas no destino do pacote.
Porém ele pode ser usado para listar dispositivos que devam examiná-la na
rota de destino, além do dispositivo final. Nesse caso, ele aparece antes do
cabeçalho de extensão de roteamento (como neste exemplo). Este cabeçalho
pode aparecer duas vezes no pacote IPv6 (veja o último cabeçalho descrito
abaixo).
Roteamento (Routing Header). Usado por uma origem IPv6 para listar um ou
mais nós intermediários que devem ser visitados até o pacote chegar ao
destino.
Fragmentação (Fragmentation Header). Usado para enviar módulos de
dados maiores do que a Maximum Transmit Unit (MTU) de um caminho.
Autenticação (Authentication Header). Usado para providenciar autenticação
e garantia de integridade aos pacotes IPv6.
Criptografia (IPv6 Encryption Header). Usado para providenciar
confidencialidade e integridade através de uma chave de dados.
Opções de Destino IPv6 (End-to-End Option Header). Usado para o
transporte de informação opcional que apenas necessita de ser examinado
pelo nó destino de um pacote. Este cabeçalho pode surgir duas vezes no
mesmo datagrama.
Não há uma quantidade fixa de cabeçalhos de extensão que podem ser anexados
ao cabeçalho base, porém, caso existam múltiplos cabeçalhos de extensão no
mesmo pacote, eles serão adicionados em série formando uma “cadeia de
cabeçalhos”.
6.4.5 Fragmentação no IPv6
Agora no IPv6 as funções de fragmentação e remontagem do pacote ficam por conta
dos usuários finais (ou aplicações), ou seja, a fragmentação e remontagem de
pacotes no IPv6 é uma função fim a fim.
Roteadores não fragmentam pacotes
Se os pacotes forem muito grandes os roteadores enviam a mensagem ICMP
“packet too big”.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
170
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Embora desencorajado, a extensão de cabeçalho Fragment pode ser usada para
suportar protocolos das camadas superiores (aplicações) que ainda não realizam a
operação de descoberta do Path MTU. Veja a explicação sobre os cabeçalhos de
extensão na seção anterior.
Next Header
Reservado
Fragment
00M
Offset
Identificação do Pacote Original
Figura 6.22 Cabeçalho de Fragmentação.17
6.4.6 Estrutura do Endereçamento IPv6
O IPv6 está estruturado atualmente19 como dividido em duas porções: uma que
identifica a rede e outra que identifica o host (ou interface ID). Cada uma delas
possui 64 bits (RFC 6177).
A primeira parte que identifica a rede é subdividida em parte de endereço unicast
global (48 bits)
ts) e na parte que identifica as sub-redes (16 bits). Após esses 64 bits
iniciais (endereço
endereço global + endereço de sub
sub-redes), temos, finalmente, os 64 bits de
Interface ID (similar ao Host do IPv4) ou equipamentos,, que nada mais é do que o
número MAC da máquina, o que faz do IPv6 um protocolo de endereçamento direto.
Como o IPv6 utiliza o CIDR, os números atribuídos para o Prefixo Global pode
mudar para menos ou mais, dependendo da política de alocação de endereços
endereço IPv6.
A figura ilustrada abaixo é a alocação recomendada.
Figura 6.23 Endereçamento IPv6.19
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
171
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
.4.7 Alocação de Endereço IPv6
6.4.7
Figura 6.24 Alocação de Endereçamento IPv6.18
O processo de alocação de endereços é realizado pela IANA e pelos Registros
Regionais (RIRs), da seguinte forma (podendo alterar de região para região):
região)
•
•
•
•
IANA aloca o 2001::/12 para registros regionais
Cada alocação de um registro regional é ::/23
Alocação de ISPs a partir dos registros regionais é um ::/36 (alocação
imediata) ou ::/32 (alocação inicial) ou menor, com justificação.
A política de alocação espera que um ISP aloque um prefixo ::/48 para cada
cliente corporativo ou um prefixo ::/64 a /56 para clientes domésticos.
6.4.8 Sub-redes
redes no IPv6
Sub-redes
des são criadas nos últimos 16 bits do endereço de rede do IPv6.
Figura 6.25 Sub-redes
redes no IPv6.17
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
172
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Podemos perceber que o IPv6 mantém a estrutura básica do IPv4, dividindo-se em
Endereço de Rede (primeiros 64 bits no total) e Endereço de Interface ID, similar ao
Host no IPv4 (últimos 64 bits). Dessa forma o aprendizado realizado no IPv4 auxilia
na compreensão do IPv6.
Analisando a figura anterior, podemos realizar os seguintes cálculos com o
endereçamento do IPv6:
•
•
•
•
Com 128 bits o Ipv6 tem 340 x 1036 (undecilhões) de endereços disponíveis.
Com 48 bits alocados para Endereço de Rede teremos 281 trilhões de
redes
Com 16 bits alocados para Endereço de Sub-Rede teremos 65.536 de subredes
Com 64 bits alocados para Endereço de Equipamentos teremos 18
quintilhões (18 x 1018) de equipamentos.
6.4.9 Representação dos Endereços no IPv6
Embora o protocolo IPv6 traga diversas mudanças significativas em todas sua
estrutura, as principais alterações estão relacionadas ao modo de endereçamento
do novo protocolo.
As principais mudanças:
-
Aumento do espaço de endereçamento;
A sintaxe usada para representar os endereços.
Se no IPv4 os endereços são de uma extensão de 32 bits, os quais são divididos em
4 grupos de 8 bits cada, separados por ``.´´ escritos com dígitos decimais.
Ex.:
192.168.10.1
No IPv6, os endereços são de uma extensão de 128 bits, divididos em 8 grupos de
16 bits cada, separados Por ``:´´ escritos com dígitos hexadecimais. Ex.:
2001:abcd:0001:0000:12ef:0234:dfa1:0021
Fica evidente então que o profissional da área de infraestrutura de redes vai precisar
conhecer bem os números hexadecimais e a conversão para binário e vice-versa.
Os endereços no IPv6 podem ser representados das seguintes formas:
Forma preferida: 1080:0:FF:0:8:800:200C:417A
Forma comprimida: FF01:0:0:0:0:0:0:43 torna-se FF01::43
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
173
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Mapeado no IPv4: 0:0:0:0:0:FFFF:10.1.68.3 ou ::FFFF:10.1.68.3
A representação da MÁSCARA, que indica o prefixo, é feita como no CIDR.
Exemplo:
REDE
HOST
2001:db8:3003:1234::1/48 significa
2001:db8:3003::/48
2001:db8:3003:1234::1/48 (1º. Host válido da rede)
6.4.10 Terminologia técnica do IPv6
Nó
Roteador
Host
Link
Neighbors
Interface
Endereço
um módulo de protocolo que implemente o IPv6
um nó que retransmita pacotes IPv6 não explicitamente endereçado
para ele
qualquer nó que não é um roteador
uma facilidade de comunicação ou mídia sobre qualquer nó que pode
se comunicar na camada de enlace, isto é, a camada abaixo do IPv6
nós interligados no mesmo link (vizinhos)
uma ligação de um nó para um link
uma identificação do IPv6 para uma interface ou um conjunto de
interfaces
6.4.11 O escopo do Endereçamento no IPv6
Os endereços são designados para interfaces (muda o conceito em relação ao
modelo do IPv4). As interfaces “esperam” ter múltiplos endereços.
Os endereços IPv6 têm o seguinte escopo (abrangência):
Link Local Unique Local Global
Figura 6.26 Hierarquia de Endereçamento IPv6.17
Os endereços IPv6 podem dividir uma rede corporativa em partes separadas da
organização inteira, de maneira muito similar como as máscaras de sub-redes fazem
no IPv4. Isso permite o controle e otimização do tráfego entre essas partes distintas
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
174
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
da rede. Os endereços de redes IPv6 unicast (que definem uma interface) são os
seguintes:
• Link-Local é um endereço gerado automaticamente para cada interface IPv6.
É similar aos endereços APIPA no IPv4. Eles são utilizados para comunicação
de equipamentos vizinhos (neighboors) num mesmo link. As informações de
atualização de roteamento e descoberta de vizinhos utilizam o endereço link-local.
Roteadores não irão retransmitir pacotes com um endereço Link-Local, dessa
forma restringindo pacotes que utilizam esse endereço apenas para o link
envolvido.
• Unique-Local é o site da organização inteira ou parte de um site da organização
inteira. Um roteador pode retransmitir pacotes de endereços unique local
address para qualquer porção de um site da organização, mas não para fora da
rede da organização (similar aos endereços privativos do IPv4). Esse é um
endereço configurado manualmente.
• Global address é o endereço Internet usado para identificar a rede local e é
administrado pela IANA. É equivalente ao endereço público utilizado na Internet
para o IPv4. Esse é um endereço configurado manualmente ou autoconfigurável (stateless ou stateful).
6.4.12 Tipos de endereços IPv6
Basicamente o IPv6 possui três tipos de endereços:18
Unicast
Um endereço numa única interface
Entrega para uma única interface
Multicast
Endereço de um conjunto de interfaces
Entrega para todas as interfaces de um conjunto
Anycast
Endereço de um conjunto de interfaces
Entrega para uma única interface no conjunto
No IPv6 não existe o endereço de broadcast.
6.4.13 Conjunto de Endereços de Interface
O IPv6 traz novo conceito em termos de variedades de interfaces e tipos de
endereçamento. Seguem abaixo alguns exemplos desses endereços de interface:
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
175
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Loopback
(designado apenas para uma única interface por nó)
Link local
(requerido para todas as interfaces)
Unique local
Auto-configured 6to4
(se o endereço público é um endereço disponível)
Auto-configured IPv4 compatible
(desencorajado operacionalmente)
Solicited node Multicast
(requerido para descoberta de vizinhos)
All node multicast
Global anonymous
Global published
6.4.14 Tipos de Prefixo de Endereçamento
Semelhante ao que ocorre com o prefixo do endereçamento no IPv4, o IPv6 possui
prefixos definidos:
Tabela 6.4 Prefixo do endereçamento IPv6.18
Tipo de endereçamento
Compatível IPv4
Unicast Global
Unicast Link Local
Unicast Unique Local
Multicast
Prefixo Binário
0000...0 (96 bits zero)
001
1111 1111 10
1111 110
1111 1111
6.4.15 Roteamento no IPv6
O IPv6 utiliza o mesmo processo de “localize o prefixo mais longo” do roteamento do
CIDR IPv4, usando, portanto, o endereço do destinatário do pacote para análise.
No entanto, mudanças pontuais no roteamento existente no IPv4 foram realizadas
no IPv6, para os protocolos manusearem endereços maiores:
•
•
Unicast: OSPF, RIP-II, IS-IS, BGP4+, s
Multicast: MOSPF, PIM, s
O uso de cabeçalhos de extensão de roteamento (routing), com qualquer endereço
anycast, permite o roteamento de pacotes através de redes pré- selecionadas.
Ex.: para seleção de provedores, políticas, performance, etc.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
176
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 6.27 Cabeçalho de extensão de Roteamento.18
Percebe-se que o IPv6, de fato, é um novo protocolo da camada de rede do TCP/IP,
com novos conceitos e funcionalidades.
Nosso propósito nesta seção foi o de despertar a atenção para as novas
funcionalidades do protocolo IPv6 e suas potencialidades na interconexão de redes.
Vários aspectos precisam ser estudados em relação ao IPv6 como a questão de
segurança no IPv6 e as técnicas de coexistência entre o IPv4 e o IPv6.
Recomendamos o nosso curso on-line IPv6: Teoria e Prática17
(http://ademarfey.wordpress.com/2014/01/04/curso-on-line-ipv6-teoria-epratica/) para quem desejar aprofundar os conhecimentos nesse protocolo e se
preparar para o futuro das redes IPv6.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
177
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
6.5 OUTROS PROTOCOLOS DA CAMADA DE REDE
6.5.1 ICMP
Operando conjuntamente com o Protocolo IP temos o Protocolo ICMP que atua
quando há necessidade de se transmitir mensagens de controle e erros.
O ICMP (Internet Control Message Protocol - Protocolo de Controle de Mensagem
Internet) é um protocolo de manutenção. Permite dois sistemas em uma rede IP
compartilharem status e informação de erro.
O utilitário ping usa pacotes de pedido de eco e de resposta de eco ICMP para
determinar se um sistema de IP particular em uma rede está funcional. Por isso, a
utilização de ping é útil para diagnosticar rede IP ou falhas de roteador.
O Protocolo Internet de Controle de Mensagem (Internet Control Message Protocol ICMP) é um mecanismo para informar erros devido a problemas de entrega. É um
serviço sem conexão por natureza.
As mensagens de ICMP mais comuns são requisição de eco, resposta de eco,
redirecionamento, tempo excedido e destino inalcançável. As mensagens de ICMP
estão contidas dentro de datagramas IP. Isto assegura que a mensagem de ICMP
poderá achar seu caminho ao host apropriado dentro da internet.
Mensagens geradas pelo protocolo ICMP
Como já vimos acima, o ICMP (Internet Control Message Protocol) é um protocolo
da camada de rede, cuja função é produzir informações sobre erros no
processamento do pacote na rede, gerando mensagens como:
Destino inalcançável: quando o roteador é incapaz de enviar o pacote ao seu
destino final porque o computador de origem solicitou um endereço não existente,
ou, o roteador não possui uma rota de destino para o pacote, e então descarta o
pacote original.
Solicitação de eco:
Originada pelo comando ping enviado por qualquer computador.
É uma mensagem para testar a resposta de um nó através de uma interconexão de
rede.
Veja a seguir uma figura com a captura de uma mensagem ICMP.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
178
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 6.28 Solicitação de Eco. 1
Resposta de eco:
As mensagens de eco de resposta indicam que o nó pode ser atingido com sucesso.
Redirecionamento:
Mensagem enviada pelo roteador para o computador de origem, indicando que
existe um caminho mais eficiente de roteamento.
Por exemplo, se ao usar um roteador como destino, o computador verifica se ele não
serve como rota de tráfego, o ICMP envia uma mensagem de redirecionamento para
o computador identificando a melhor opção de rota.
O redirecionamento permite que as tabelas de roteamento permaneçam pequenas,
porque é necessário conhecer o roteamento de apenas um roteador, mesmo que
esse caminho não seja teoricamente o melhor.
Tempo excedido:
Mensagem enviada pelo roteador, quando o campo "tempo de duração" de um
pacote IP atinge o limite de zero.
O campo "tempo de duração" evita que os pacotes circulem continuamente em um
hipotético loop da rede, fazendo com que o roteador simplesmente descarte o
pacote original.
Nota: Estas mensagens somente aparecem quando você encontra algum problema
de rota e, portanto, não é muito comum de serem obtidas em capturas de pacotes
bem-sucedidas com o Wireshark. Em geral, as correções dos pacotes com erros são
feitas pelo TCP.
6.5.2 ARP
Outro protocolo que atua na camada de rede é o ARP. O Protocolo de Resolução de
Endereço (ARP) é um dos protocolos de manutenção que suporta o TCP/IP.
Se dois sistemas estão se comunicando por uma rede TCP/IP, o sistema enviando o
pacote tem que mapear o endereço IP do destino final ao endereço físico do destino
final.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
179
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Um sistema baseado em IP irá transmitir em broadcast um pacote ARP sobre a
rede local em um esforço para determinar o endereço de MAC do host de destino. A
resposta será armazenada em memória cache (no cache do ARP) durante vários
minutos.
O ARP irá resolver apenas os endereços de MAC para hosts locais. As
comunicações para hosts remotos são alcançadas pelo default gateway, ou algum
outro roteador. É o endereço de MAC do roteador que seria resolvido nesta situação.
Veja as figuras a seguir.
Figura 6.29 Protocolo ARP para resolução de endereço local. 1
• a qualquer momento que um host tenta se comunicar com outro host, um pedido
de ARP é iniciado
• Quando o endereço foi determinado ser um endereço local o host de origem
checa seu cache ARP (1) para o endereço de hardware requerido (endereço MAC)
do host de destino
• Se não está presente no cache, então o ARP constrói um pedido que é então
transmitido em broadcast sobre a rede (2)
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
180
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
• Cada host recebe o pedido de broadcast, e a menos que o pedido contenha seu
próprio endereço IP, ele ignora o pedido (3)
• O host apropriado reconhece seu próprio endereço (4), e responde para o host de
origem (6). Ele então atualiza seu próprio cache com os detalhes do host de origem
(5)
• O host de origem recebe a resposta, e atualiza sua tabela cache (7), e a
comunicação é estabelecida.
Figura 6.30 Protocolo ARP para resolução de endereçamento Remoto. 1
• Quando um pedido para comunicação é iniciado, o endereço de IP é
determinado ser remoto.
• O host enviando (fonte) confere a tabela de roteamento local (1) para uma rota
para o host de destino ou rede, e se mal sucedido determina o endereçamento IP do
default gateway.
• A fonte então examina o cache ARP (2) para o necessário mapeamento do
endereço IP/ endereçamento MAC ao especificado gateway.
• Se o mapeamento para o endereço do gateway não for localizado, então um
pedido de ARP é transmitido em broadcast (3) para o endereço do default gateway,
mas NÃO o endereço de destino do host remoto
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
181
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
• Com sucesso, o roteador responderá (4) ao pedido devolvendo seu endereço de
hardware. A fonte envia o pacote então para o default gateway entregar à rede
remota e ao host de destino
• No roteador, o IP determina se o destino é local ou remoto. Se local, usa o ARP
para a resolução de endereço. Se remoto, confere sua tabela de roteamento (5) para
um gateway apropriado para a rede remota. O pacote é remetido ao host de destino
(6)
• O host de destino recebe o pacote, e responde com um eco ICMP, usando sua
tabela de roteamento local para determinar uma rota apropriada de volta para o host
de origem.
Cache ARP
Quando o host originador recebe o endereço físico, o endereço IP e físico são
armazenados localmente como uma entrada no cache do ARP. Todos os hosts
mantêm um cache do ARP que inclui o seu próprio mapeamento do endereço IPendereço físico (MAC). O cache do ARP sempre é conferido para um mapeamento
do endereço IP- endereço físico antes de iniciar uma transmissão em broadcast.
Para o Windows 2000, por exemplo, as entradas do cache ARP expiram depois de
10 minutos.
A vida potencial de uma entrada é de 10 minutos, embora se permanecer sem uso
durante 2 minutos ou mais será removido do cache.
6.6 PROTOCOLOS DE ROTEAMENTO
6.6.1 Rotas Estáticas e Dinâmicas
A definição das Rotas é muito importante no processo de encaminhamento dos
Pacotes, sendo que a Rota é uma estrutura montada na Camada de Rede que
disponibiliza aos dados um caminho da Origem ao Destino. Sem uma rota o pacote
não será entregue.
Existem dois tipos de rotas:
•
•
Rota Estática
Rota dinâmica
Rota Estática é a rota definida através da configuração manual pelo administrador
da rede. É uma rota que só pode ser modificada manualmente.
Rota Dinâmica é a rota definida através de Protocolos de Roteamento. Chama-se
Dinâmica porque pode mudar segundo propriedades do Protocolo que a definiu, não
necessitando da atuação do administrador da rede.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
182
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
As rotas dinâmicas podem ser definidas por diversos protocolos de roteamento, os
quais veremos a seguir.
6.6.2 Roteamento Dinâmico
As principais vantagens do roteamento dinâmico são:
Simplifica o gerenciamento da rede.
• Viável em grandes ambientes de produção, com várias redes e ambientes
diferentes.
•
As principais desvantagens do roteamento dinâmico são:
Utiliza largura de banda da conexão para troca de informações sobre roteamento
entre os roteadores.
• Consome processamento da CPU do roteador.
• Menor controle, o que resulta em menor segurança do ambiente.
•
O processo de roteamento dinâmico utiliza protocolos para encontrar e atualizar
tabelas de roteamento de roteadores.
Os quatro protocolos de roteamento mais usados são: RIP (Routing Information
Protocol), IGRP (Interior Gateway Routing Protocol), EIGRP (Enhanced Interior
Gateway Protocol) e OSPF (Open Shortest Path First).
Os protocolos de roteamento utilizados em redes pertencem a duas categorias:
IGP (Interior Gateway Protocol) e EGP (Exterior Gateway Protocol).
Protocolos IGP são usados para troca de informações entre roteadores pertencentes
a um mesmo Sistema Autônomo, que é uma coleção de redes sob um mesmo
domínio administrativo.
Já protocolos EGP são utilizados para comunicação entre roteadores pertencentes a
Sistemas Autônomos diferentes.
6.6.3 Distâncias Administrativas
Distâncias Administrativas são métricas utilizadas para classificar a confiabilidade
das informações recebidas pelo roteador através de seus vizinhos.
A Distância Administrativa é um número inteiro entre 0 (zero) e 255, sendo que
quanto menor mais confiável é a rota. Ou seja, 0 (zero) é a rota mais confiável e 255
indica uma rota inalcançável.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
183
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Na tabela a seguir, veremos os principais protocolos de roteamento e a distância
administrativa padrão utilizada pelos mesmos.
Tabela 6.5 Distância administrativa dos protocolos de roteamento.1
Origem da Rota
Distâncias administrativas padrão
Rota estática
1
Rotas Sumarizadas EIGRP
5
BGP
20
EIGRP Interno ao Sistema Autônomo
90
IGRP
100
OSPF
110
IS-IS
115
RIP
120
EGP
140
ODR (On Demand Routing)
160
EIGRP Externo ao Sistema Autônomo
170
BGP Interno
200
Desconhecido
255
A distância administrativa é usada para decidir qual rota a usar quando há mais que
uma rota disponível na tabela para um mesmo destino.
6.6.4 Classe dos Protocolos de Roteamento
Os protocolos de roteamento podem ser de três classes:
Vetor distância – Protocolos de roteamento classificados nessa categoria
utilizam a distância a uma rede para definição do melhor caminho. A distância é
medida de acordo com o número de roteadores que o pacote percorre até o destino
(hop). Exemplo: RIP e IGRP.
• Estado do link – Protocolos de roteamento classificados nessa categoria utilizam
diversos fatores do link, como banda disponível, processamento, por exemplo, para
identificar o melhor caminho. Exemplo: OSPF e IS-IS.
• Híbrido – Protocolos de roteamento classificados nessa categoria possuem
características de ambas as classes anteriores. Exemplo: EIGRP.
•
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
184
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
6.6.5 Vetor distância
O algoritmo de roteamento vetor distância envia as tabelas de roteamento completa
para os roteadores vizinhos através de todas as interfaces ativas, que então
combinam as tabelas recebidas com as tabelas que já possuem e completam o
mapa da rede. Quando existem caminhos alternativos para o mesmo destino o fator
da Distância Administrativa é levado em consideração pelo protocolo de roteamento.
6.6.5.1 RIP (Router Information Protocol)
O RIP, no entanto, utiliza apenas a contagem de saltos como métrica para a escolha
do melhor caminho. Se houver dois caminhos com o mesmo custo, ou seja, a
mesma quantidade de saltos para o destino, será realizado o round-robin load
balance, ou seja, distribuirá a carga igualmente entre os links. Essa técnica pode ser
aplicada até um máximo de 6 conexões com o mesmo custo.
E o que acontece quando ocorre uma mudança na topologia? Como o algoritmo
realiza o envio da tabela de tempos em tempos, haverá um tempo para a
convergência de todo o ambiente. No entanto, durante o período de convergência,
nenhuma informação é transmitida, o que torna o tempo um fator crítico no processo.
Um dos maiores problemas do RIP é seu intervalo de convergência demasiado alto.
Durante o período de convergência, podem ocorrer inconsistências nas tabelas de
roteamento, ocasionando loops de roteamento. Para minimizar o efeito, algumas
técnicas são adotadas, como descritas a seguir:
Contagem máxima de saltos (Maximum Hop Count) – uma maneira simples de
evitar que sejam criadas referências infinitas na tabela de roteamento, é a definição
de um limite para o número de saltos. No caso do RIP, o limite é até 15 saltos. Uma
rede disponível apenas 16 saltos depois será considerada inacessível.
• Split Horizon – solução em que o roteador que receber uma atualização da
tabela de roteamento por uma interface não irá propagar o resultado pela mesma
interface. Esse recurso é ativado por padrão em roteadores.
• Envenenamento do Roteador (Route Poisoning) – faz com que no momento
que um roteador detectar que seu vizinho possui uma tabela de roteamento com
problemas, ele propaga para a rede que o vizinho estará a 16 saltos de distância, ou
seja, inalcançável.
• Holddowns – previne que uma mensagem regular de atualização reative uma
rota que, na verdade, encontra-se inalcançável por algum motivo. Faz com que
mudanças repentinas sejam efetivadas apenas de algum tempo.
• Envia a tabela de roteamento completa para todas as interfaces a cada 30
segundos.
• Utiliza apenas a contagem de saltos como métrica.
•
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
185
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Limita a contagem máxima a 15 saltos consecutivos, ou seja, não é viável em
redes de grande porte ou com muitos roteadores.
• O RIP versão 1 utiliza roteamento classful.
•
Para que o protocolo de roteamento mantenha-se ativo e disponível é necessário o
uso de diversas técnicas para auxiliar em sua performance. O RIP utiliza a seguinte
especificação:
Route Update Timer – Intervalo em que as atualizações são enviadas. O RIP
envia a cada 30 segundos.
• Route Invalid Timer – Intervalo de tempo que deve ocorrer antes de um roteador
determinar que uma rota tornou-se inválida. Essa conclusão será atingida se não
ocorrerem atualizações sobre uma determinada rota até o fim do período. O RIP
normalmente mantém um tempo de 180 segundos.
• Route Holddown Timer – Intervalo de tempo que o roteador irá reter as
atualizações entres de efetivá-las. O RIP normalmente mantém por um tempo de
180 segundos.
• Route Flush Timer – Intervalo de tempo para remover uma rota que se tornou
inválida. Antes de eliminar uma rota de sua tabela de roteamento, o roteador avisa
aos vizinhos que determinada rota encontra-se inativa. O RIP normalmente espera
por 240 segundos.
•
6.6.6 Estado do Link
O algoritmo de roteador estado de link envia as tabelas de roteamento de acordo
com modificações no ambiente, sendo que as atualizações são incrementais.
6.6.6.1 OSPF (Open Shortest Path First)
Não sendo o único exemplo de protocolo baseado em estado de link, o OSPF
contém as seguintes características:
Protocolo aberto e padronizado pelo IETF, o que permite que diversas
plataformas diferentes utilizem o mesmo protocolo de roteamento.
• Utiliza o algoritmo SPF (Shortest Path First, também conhecido como Dijkstra)
para definição do melhor caminho, de acordo com um custo. Cada interface de saída
do roteador possui um custo associado, sendo que o custo total de um caminho é a
soma dos custos de todas as interfaces que serão ultrapassadas no caminho.
• Transmissão das atualizações da tabela de roteamento através de Multicasts, e
não broadcasts, como o RIPv1.
• Atualização incremental da tabela de roteamento, o que economiza a banda entre
os vizinhos.
• Divisão da rede em áreas.
•
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
186
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Com relação a áreas, alguns conceitos são importantes terem sido definidos, mesmo
que seja abordado o uso de apenas uma única área.
A área zero sempre deve existir em redes com mais de uma área. Essa área é
conhecida como “backbone area”.
• Todas as outras áreas devem sempre se conectar a área zero.
• Áreas que não estão diretamente conectadas à área zero devem criar o artifício
de virtuais-links.
• Roteadores da área zero devem possuir uma capacidade de processamento
elevada devido o alto tráfego que será intenso nessa área.
•
6.6.7 Algoritmo de protocolos de roteamento híbrido
Alguns algoritmos de roteamento Híbridos combinam o que existem de melhor entre
os dois mundos: algoritmos vetor distância e algoritmos estado do link.
Sendo assim, o comportamento pode ser algo único para cada protocolo, já que
cada um irá escolher o que é mais adequado ao seu propósito.
6.6.7.1 EIGRP (Enhanced Interior Gateway Routing Protocol)
O EIGRP é um protocolo do tipo classless, com algumas características de vetor
distância como de estado de link. A Cisco algumas vezes refere-se ao protocolo
como sendo vetor distância, vetor distância híbrido ou apenas híbrido. O EIGRP
possui as seguintes características:
Suporte a VLSM, CIDR e sumarização de rotas.
• Suporte a autenticação.
• Limite de 224 saltos.
• Suporta múltiplos protocolos de cada de rede (IPX, AppleTalk) além do IP.
• Suporte a sumarização e redes não contíguas.
• Utiliza o algoritmo DUAL (Diffusion Update Algorithm) para inibir a formação de
loops.
• Troca de pacotes “hello” em tempos periódicos, de maneira a identificar caso
algum vizinho pare de responder.
• Troca de atualizações incrementais quando ocorrem mudanças na rede.
• Envio da tabela completa de roteamento apenas quando é detectado um novo
vizinho.
• Apenas troca informações com vizinhos que pertençam ao mesmo sistema
autônomo.
• Provê balanceamento de carga em até quatro conexões desiguais (por padrão) ou
seis ao máximo.
•
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
187
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
O EIGRP também se utiliza de um protocolo proprietário chamado RTP (Reliable
Transport Protocol) para gerência do fluxo de informações entre os roteadores.
Quando o EIGRP não recebe uma resposta de algum dos vizinhos depois de um
multicast, o RTP transforma o “hello” em unicast apenas para o vizinho indisponível.
Se após 16 tentativas ainda não houver resposta, o vizinho é tido como “dead”
(morto).
6.6.7.2 Diffusion Update Algorithm
O EIGRP utiliza o DUAL (Diffusion Update Algorithm) para selecionar e manter em
sua tabela de roteamento as melhores rotas para as redes. As principais funções
desse algoritmo são:
Determinação de rotas alternativas quando possível. Essa rota alternativa chamase “feasible succesor”, que é armazenada na tabela topológica. Um “succesor” é a
rota primária, armazenada em ambas as tabelas; topológica e de roteamento.
• Suporte VLSM e CIDR.
• Identificação dinâmica de rotas através de perguntas aos vizinhos.
• Procura por rotas alternativas caso ele desconheça.
•
O EIGRP com o algoritmo DUAL oferece um dos melhores tempos de convergência
da rede. Suas vantagens para tornar isso possível são:
O EIGRP armazena todas as rotas que são recebidas pelos vizinhos, de maneira
a construir uma tabela topológica em busca da melhor rota alternativa.
• Caso o EIGRP não possua uma rota alternativa para um destino, o protocolo irá
realizar um processo de “query” (consulta) nos vizinhos, os questionando sobre a
existência de alguma rota.
•
O EIGRP, como mencionado, mantém três tabelas em um roteador:
Tabela dos Vizinhos (Neighbor table) – informações sobre os roteadores vizinhos.
• Tabela Topológica (Topology table) – informações sobre as rotas propagadas por
cada vizinho.
• Tabela de Roteamento (Routing table) – rotas que estão efetivamente em uso no
momento.
•
6.7 Resumo
A camada de rede provê o roteamento dos pacotes e o gerenciamento dos
endereços lógicos.
A unidade de dados padrão dos protocolos da camada de rede (PDU) é o
datagrama ou pacote.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
188
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A camada de rede trabalha com os endereços lógicos (também chamados de
endereços IP) que devem ser utilizados de acordo com as normas definidas para o
endereçamento IP (classes, endereços públicos x privados, etc.).
Os protocolos da camada de rede são o IP (dominante) e o IPX (em desuso).
O IP na atualidade é utilizado na rede LAN, na interligação de Redes e em algumas
redes WAN.
O endereço IP mais utilizado no momento é a versão IPv4 (com mais de 25 anos de
existência) mas o IPv6 deve estar com utilização considerável em 2014, devido ao
término das faixas de endereçamento IPv4 disponíveis para entrega a
provedores de acesso à Internet e empresas que possuem sistema autônomo de
domínio de redes.
Consulte sobre nosso curso on-line IPv6 para se atualizar no assunto
(http://ademarfey.wordpress.com/2014/01/04/curso-on-line-ipv6-teoria-epratica/ ).
Os principais equipamentos que trabalham na camada de rede são: roteadores e
switch de nível 3.
Nosso curso de Configuração de Roteadores e Switches Nível Básico
aprofunda o estudo teórico/prático sobre o TCP/IP e Roteadores e Switches
(http://ademarfey.wordpress.com/2014/01/04/curso-on-line-configuracao-deroteadores-e-switches-nivel-basico/).
Termina aqui este capítulo que tratou da camada de rede do modelo TCP/IP e
modelo OSI.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
189
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CAPÍTULO 7 CAMADA DE TRANSPORTE
INTRODUÇÃO
Este capítulo trata da camada de transporte, responsável pela troca de dados entre
duas máquinas finais. É uma das camadas mais antigas do TCP/IP e possui funções
semelhantes no modelo OSI.
7.1 CONCEITOS BÁSICOS DA CAMADA DE TRANSPORTE
A camada de transporte é a primeira camada no modelo OSI e TCP/IP que se
preocupa
a com a comunicação fim a fim, ou seja, com a comunicação entre a
máquina de origem e de destino.
Ela utiliza os serviços das camadas inferiores para atingir sua finalidade.
A camada de transporte está diretamente relacionada com a camada de aplicação,
pois no modelo TCP/IP, ambas são camadas vizinhas. Vide a figura a seguir,
Figura 7.1
.1 A camada de Transporte no modelo TCP/IP (TCP e UDP).1
Para estabelecer a comunicação entre o host de origem e de destino a camada de
transporte estabelece um
uma conexão ou circuito virtual entre ambos. Chamamos de
virtual, pois ele não existe fisicamente.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
190
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Convém lembrar que a camada de rede, através do protocolo IP, não garante o
mesmo caminho para a passagem dos pacotes e nem mesmo a entrega deles.
A PDU da camada de transporte é o segmento. Segmento significa que a informação
vinda da camada de aplicação é dividida ou então segmentada em diversas partes,
quando necessário.
Os protocolos que rodam na camada de transporte podem trabalhar de duas formas:
•
•
Orientado a conexão
Não orientado a conexão
Os protocolos da camada de transporte orientados a conexão estabelecem o circuito
virtual e controlam o tráfego de dados entre origem e destino. Esses protocolos são
mais sofisticados e mais complexos de implementar. Um exemplo de protocolo
orientado a conexão é o protocolo TCP.
Os protocolos da camada de transporte não orientados a conexão não controlam o
tráfego de dados entre origem e destino, sendo, portanto protocolos mais simples de
implementar. Um exemplo de protocolo não orientado a conexão é o protocolo UDP.
7.2 Modelo cliente-servidor.
Para entendermos o funcionamento dos protocolos da camada de transporte é
importante revisar o conceito do modelo de aplicações chamado de o modelo
cliente-servidor.
O nome cliente/servidor surgiu quando a comunicação em rede começou a ocorrer
fora do domínio dos grandes mainframes, ou seja, quando surgiram as redes locais,
com a consequente descentralização do controle das redes de computadores para
as pontas (máquinas nas redes locais).
Quando as pessoas tentam acessar informações através de um dispositivo, seja ele
um PC, laptop, PDA, telefone celular, smartphone, tablet ou qualquer outro
dispositivo conectado a uma rede, os dados normalmente não podem ser
armazenados fisicamente nesse dispositivo. Portanto, a solicitação de acesso a
informação deve ser feita para o dispositivo onde os dados residem.
No modelo cliente/servidor, o dispositivo que pede a informação é chamado de
cliente (client) e o dispositivo que responde ao pedido é chamado de servidor
(server). Processos no modelo cliente e servidor são considerados como rodando na
camada de aplicação. O cliente inicia o intercâmbio, solicitando os dados do
servidor, que responde através do envio de um ou mais fluxos de dados para o
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
191
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
cliente. Os protocolos da camada de aplicação descrevem o formato das solicitações
e respostas entre clientes e servidores.
Além da transferência de dados propriamente dita, essa troca pode também exigir
informação de controle, tais como a autenticação do usuário e a identificação de um
arquivo de dados a ser transferido.
Um exemplo de uma rede cliente/servidor é um ambiente corporativo, onde os
funcionários usam um servidor de e-mail da empresa para enviar, receber e
armazenar e-mail. O cliente de e-mail em um computador do empregado da
empresa emite uma solicitação para o servidor de e-mail para envio de qualquer email não lido. O servidor responde enviando o(s) e-mail(s) solicitado(s) para o
cliente.
Embora os dados sejam tipicamente descritos como fluindo a partir do servidor para
o cliente, alguns dados sempre fluem a partir do cliente para o servidor. O fluxo de
dados pode ser igual em ambas as direções, ou pode mesmo ser maior na direção
que vai do cliente para o servidor. Por exemplo, um cliente pode transferir um
arquivo para o servidor para fins de armazenamento. A transferência de dados de
um cliente para um servidor é conhecido como um upload e dados de um servidor
para um cliente como um download.
7.2.1 Servidores
Em um contexto de rede geral, qualquer dispositivo que responde a solicitações dos
aplicativos clientes está funcionando como um servidor. Um servidor é geralmente
um computador que contém informações que sejam compartilhadas com muitos
sistemas clientes. Por exemplo, páginas web, documentos, bases de dados,
imagens, vídeos e arquivos de áudio podem ser armazenados em um servidor e
entregues a clientes solicitantes. Em outros casos, como uma impressora de rede, o
servidor de impressão oferece os pedidos de impressão do cliente para a impressora
especificada.
Normalmente o servidor é uma máquina com grande capacidade de processamento
e armazenamento de dados. Isso ocorre porque ela terá que gerenciar uma grande
quantidade de solicitações por parte de clientes e dar conta do recado.
Diferentes tipos de aplicações de servidor podem ter diferentes requisitos para o
acesso do cliente. Alguns servidores podem exigir autenticação de informações da
conta do usuário para verificar se o usuário tem permissão para acessar os dados
solicitados ou para usar uma operação particular. Esses servidores contam com uma
lista central de contas de usuário e as autorizações ou permissões, (tanto para o
acesso e as operações de dados) atribuído a cada usuário. Ao usar um cliente de
FTP, por exemplo, se você pedir para fazer o upload dos dados para o servidor de
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
192
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
FTP, você pode ter permissão para gravar em sua pasta individual, mas não para ler
outros arquivos no site.
Em uma rede cliente/servidor, o servidor executa um serviço, ou processo, às vezes
chamado de daemon servidor. A maioria dos serviços, daemons normalmente são
executados em segundo plano e não estão sob o controle direto de um usuário final.
Os daemons são descritos como estando em "listening", ou seja, em espera (em
escuta) por uma requisição de um cliente, porque eles são programados para
responder sempre que o servidor recebe uma requisição para o serviço prestado
pelo daemon. Quando um daemon "ouve" uma requisição de um cliente, ele troca
mensagens apropriadas com o cliente, como exigido pelo Protocolo, e começa a
enviar os dados solicitados para o cliente no formato adequado.
7.2.2 Cliente
Qualquer dispositivo de uma rede IP que envie requisições para um servidor pode
ser considerado um dispositivo cliente.
Esses dispositivos possuem um software de aplicação em rede que requisita e
recebe informações do servidor através de uma rede de telecomunicações.
Na atualidade, a Internet é a rede de telecomunicações mais utilizada e os
dispositivos móveis ganham destaque e ampliam as aplicações que utilizam o
modelo cliente/servidor.
Os protocolos da camada de transporte criam uma conexão virtual entre essa
máquina cliente e uma máquina servidor (por isso do sistema ser chamado de
cliente/servidor ou client/server.
Podemos dizer que parte do sofware aplicativo reside no cliente (menor parte) e
parte (maior parte) no servidor.
Os navegadores web são exemplos de software cliente, permitindo que usuários
acessem informações disponíveis em servidores na Internet.
7.2.3 Principais protocolos da camada de transporte
Neste capítulo vamos estudar dois dos mais importantes e comuns protocolos da
camada de transporte do modelo TCP/IP. São eles:
• User Datagrama Protocol (UDP)
• Transport Control Protocol (TCP)
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
193
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Dizemos que o UDP presta um serviço não confiável (pois não garante a entrega
dos pacotes, nem o seu ordenamento e sem controle de fluxo).
Dizemos que o TCP presta um serviço confiável (pois garante a entrega dos
pacotes, o seu ordenamento e o controle de fluxo).
Construídos na funcionalidade provida pelo Protocolo Internet (IP), os protocolos de
transporte entregam dados para as aplicações que rodam nos hosts IP. Isso é feito
usando as portas como será descrito a seguir, em “Portas e Sockets”. Os protocolos
de transporte podem prover funcionalidades adicionais, tais como o controle de
congestionamento, entrega segura de dados, supressão de dados duplicados e o
controle de fluxo (a maioria dessas funcionalidades providas apenas pelo TCP).
Como todas as demais camadas do modelo TCP/IP, a camada de transporte possui
o seu próprio endereçamento: as portas lógicas das aplicações. Iremos discutir o
conceito das portas lógicas em seguida.
7.3 PORTAS E SOCKETS
Como na camada de transporte o tipo de endereçamento utilizado tem a ver com as
portas lógicas em uso por um processo aplicativo, é importante introduzirmos os
conceitos de portas e socket.
A utilização da porta e do socket4 permite determinar qual processo local ligado a um
determinado host de fato se comunica com qual processo e com qual host remoto,
usando qual protocolo.
Vejamos o seguinte:4
• Para cada processo aplicativo que roda num computador é designado um
número identificador de processo (ID do processo), o qual é diferente a cada
vez que o processo é iniciado.
• Os identificadores de processos diferem entre plataformas de diferentes
sistemas operacionais, consequentemente, eles não são uniformes.
• Um processo no servidor pode ter múltiplas conexões a múltiplos clientes ao
mesmo tempo, consequentemente, os identificadores de conexões simples
devem ser diferentes.
Os conceitos de portas e sockets possibilitam um modo uniforme e exclusivo para
identificar as conexões, os programas e os hosts que estão usando tais conexões,
independente dos identificadores de processos específicos.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
194
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
7.3.1 Portas
Os números de portas identificam o aplicativo a partir do qual os dados foram
transmitidos e recebidos.
Como mencionamos acima, a camada de transporte usa números de porta para
diferenciar entre várias aplicações que podem precisar de serviços de comunicação.
Portanto, há uma associação entre os números de porta e as diferentes aplicações
rodando num servidor ou num cliente.
Cada processo que deseja se comunicar com outro processo identifica-se4 para o
suíte de protocolos TCP/IP por uma ou mais portas. Uma porta é um número de 16
bits (de 0 a 65535), usado pelo protocolo fim a fim (host-a-host) para identificar para
qual protocolo de nível mais alto ou programa de aplicação (processo) tem que
entregar as mensagens entrantes.
Existem três tipos de portas:
• Portas bem conhecidas
As portas bem conhecidas4 pertencem a servidores com aplicações padronizadas,
por exemplo, o Telnet usa a porta 23. A faixa de números de portas bem conhecidas
fica entre 0 e 1023 (antes de 1992, a faixas de portas entre 256 e 1023 era usada
para servidores específicos usando o Unix, ou seja, as portas bem conhecidas
originalmente estavam na faixa entre o e 255).
A porta 0 (zero) é reservada, tanto para o TCP como para o UDP, não podendo ser
utilizada para aplicações comuns (RFC 6335).
Os números de portas bem conhecidas são tipicamente ímpares, porque sistemas
mais antigos usavam o conceito de porta como consistindo de um par de portas
ímpares/pares para operações duplex.
Atualmente, normalmente, a maioria das aplicações só requer a identificação com o
uso de um número de porta. Porém, existem exceções, como o antigo protocolo
BOOTP (“protocolo Bootstrap”) que usa duas: 67 e 68 e a aplicação de FTP que
também usa duas: 20 e 21. O bootstrap protocol (BOOTP) é um protocolo para
configuração de host desenvolvido antes do DHCP. O DHCP trouxe vantagens sobre
o BOOTP, resolvendo limitações específicas do serviço de configuração de host do
BOOTP. A RFC 951 define o antigo protocolo BOOTP.
As portas bem conhecidas são controladas e nomeadas pela Internet Assigned
Number Authority (IANA) e na maioria dos sistemas só podem ser usadas através de
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
195
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
processos de sistema ou através de programas executados por usuários
privilegiados.
O argumento para se usar as portas bem conhecidas é permitir aos clientes
poderem achar servidores sem necessidade de informações adicionais de
configuração.
Alguns exemplos de portas bem conhecidas são apresentados a seguir:
•
•
•
•
•
•
•
•
FTP (porta 21 TCP)
Telnet (porta 23 TCP)
SMTP email (porta 25 TCP)
POP3 email (porta 110 TCP)
DNS (porta 53TCP ou UDP)
TFTP (porta 69 UDP)
SNMP (porta 161 UDP)
RIP (porta 520 UDP)
As portas bem conhecidas foram definidas na RFC 1700.
• Portas registradas
As portas registradas são aquelas compreendidas entre os números 1024 e 49151
(RFC 6335). Elas são designadas pelo IANA e em muitos sistemas podem ser
utilizadas por aplicações ou programas executados por usuários. O IANA registra o
uso dessas portas como uma conveniência para a comunidade da Internet. As
portas registradas podem ser usadas tanto pelo TCP como pelo UDP.
Alguns exemplos de portas registradas são apresentados a seguir:
•
•
•
•
Chamada em conferência (porta 1167 TCP)
Microsoft SQL Server (porta 1433 TCP)
Protocolo de Tunelamento L2TP (porta 1701 TCP)
Protocolo de Tunelamento PPTP (porta 1723 TCP)
As portas registradas entre 1024 e 5000 também são chamadas de forma talvez
inapropriada (RFC 6335) como portas efêmeras.
• Portas dinâmicas
As portas dinâmicas são também referidas como privadas ou efêmeras e estão
compreendidas entre os números 49152 a 65535 (nunca designadas pelo IANA,
segundo a RFC 6335).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
196
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Os softwares clientes4 não precisam de números de portas bem conhecidas porque
são eles que iniciam a comunicação com os servidores, sendo que o número da
porta que eles estão usando está contido no datagrama UDP (ou no segmento do
TCP) enviado ao servidor. A cada processo cliente iniciado é alocado um número de
porta, pelo próprio aplicativo ou pelo sistema operacional (SO) no host em que ele
está rodando.
Um software cliente pode usar qualquer número alocado a ele, portanto a
combinação <protocolo de transporte, endereço IP, número de porta> é única.
Veremos em seguida que a essa associação dá-se o nome de Socket.
Figura 7.2 O uso de portas dinâmica e bem conhecida.1
As portas dinâmicas não são controladas pela IANA e podem ser usadas através de
programas usuais desenvolvidos pelos usuários na maioria dos sistemas aplicativos.
Quando duas aplicações diferentes4 tentam usar o mesmo número de porta em um
host, a confusão é evitada programando essas aplicações para solicitar uma
determinada porta disponível ao TCP/IP. Como esse número de porta é
dinamicamente nomeado, ele pode variar de uma aplicação para a próxima.
Normalmente, um servidor usará ou o protocolo TCP ou o UDP, mas há exceções.
Por exemplo, servidores de nomes de domínio (DNS) usam ambos os protocolos, a
porta 53 UDP e a porta 53 TCP. O protocolo LDAP também utiliza o UDP e o TCP
na porta 389.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
197
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
7.3.2 Sockets
Como já explicado, a maioria dos interprocessos de comunicação na Internet usam o
modelo cliente servidor (client server model). Esses termos referem-se aos dois
processos que irão se comunicar entre si, nos pontos finais da rede, ou seja, nos
hosts finais.
Como os computadores atuais são multitarefas e multiprocessamento, o processo
cliente precisa de alguma forma identificar qual processo ele está iniciando e com
qual processo no servidor ele irá se comunicar. Para essa identificação, os conceitos
de portas lógicas, socket e API são utilizados.
Explicamos o conceito de porta, vamos agora detalhar um pouco o conceito de
Socket e API.
Sockets podem ser definidos como pontos finais de comunicação entre processos
aplicativos rodando, portanto, nas máquinas finais.
O socket é uma maneira encontrada para um processo aplicativo “falar” com outro
processo aplicativo num outro computador. Do ponto de vista do programador de
aplicação, o socket é uma maneira de “falar” com outros processos aplicativos em
outro computador usando descritores de arquivos padrão, num determinado sistema
operacional (Unix, Linux, Windows, etc.). O socket surgiu no sistema operacional
Unix, onde cada ação de I/O (entrada e saída) é feita lendo ou escrevendo num
descritor de arquivo. Um descritor de arquivo é um número inteiro associado a um
arquivo aberto que pode representar uma conexão de rede (nosso caso), um
terminal, ou algo nesse sentido.
O Socket também pode ser entendido como uma interface entre a camada de
aplicação e a camada de transporte.
Podemos imaginar o socket como uma “nova camada” na pilha TCP/IP, como
exibido na figura a seguir.
Figura 7.3 Camada de Socket (imaginária) na pilha TCP/IP.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
198
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A “camada de socket” faria o interfaceamento entre a camada de aplicação (que
interage com o aplicativo propriamente dito) e com a camada de rede (que interage
com a infraestrutura física da rede).
Por outro lado, a interface que um aplicativo usa quando interage com o software de
protocolo da camada de transporte é conhecida como Interface de Programação
de Aplicativos (em inglês, Application Program Interface, API). Uma API define um
conjunto de operações que um aplicativo pode executar quando interage com o
software de protocolo de comunicação da camada de transporte.
Podemos dizer também que a API determina um conjunto de funcionalidades que
está disponível a um aplicativo, ou para o programador de aplicações que está
desenvolvendo esse aplicativo. Em outras palavras, o acesso às funcionalidades de
uma API pode determinar o nível de dificuldade de se criar um programa aplicativo.
A interface de Socket é uma de várias interfaces de programação de aplicativos
(APIs)4 para os protocolos de comunicação. Projetado para ser uma interface de
programa de comunicação genérica, a API foi introduzida primeiramente pelo
sistema operacional BSD 4.2 (Berkeley Software Distribuition). Embora não tenha
sido padronizada, se tornou um padrão de indústria de facto.
Outras APIs que podem ser citadas são a WINAPI do SO Windows da Microsoft e a
X/Open Tranport Interface (XTI) desenvolvida pela AT&T (tradicional empresa
fabricante de equipamentos de telecomunicações).
Quando analisarmos a API do UDP e do TCP entraremos em maiores detalhes
sobre a API.
Cada socket baseado na aplicação se identifica com um número de porta exclusivo
(número sem igual ou único).
Vamos considerar as seguintes terminologias:
• Um socket4 é um tipo especial de gerenciador de arquivo, o qual é usado por um
processo de requisição de serviços de rede pelo sistema operacional.
• Um endereço de socket possui três identificadores:
<protocolo, endereço local, processo local>.
Por exemplo, no suíte TCP/IP:
<tcp, 193.44.234.3, 12345>
• Uma conversação4 é o link de comunicação entre dois processos.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
199
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
• Uma associação4 possui 5 identificadores que especificam completamente os
dois processos aos quais pertencem uma conexão:
<protocolo, endereço local, processo local, endereço remoto, processo remoto>
No suíte TCP/IP, o exemplo seguinte poderia ser uma associação válida:
<tcp, 193.44.234.3, 1500, 193.44.234.5, 21>
• Uma meia-associação4 podem ser ambos os exemplos abaixo:
<protocolo, endereço local, processo local>
ou
<protocolo, endereço remoto, processo remoto>
Ou seja, uma meia-associação especifica cada metade de uma associação ou
conexão.
• A meia-associação também é chamada de socket ou um endereço de
transporte. Quer dizer, um socket é um ponto final para a comunicação que pode
ser nomeado e endereçado numa rede.
Dois processos se comunicam por sockets TCP. O modelo de socket provê um
processo com uma conexão de stream de bytes full-duplex para o outro processo. A
aplicação não tem necessidade de se preocupar com a administração desse fluxo;
essas facilidades são providas pelo TCP.
O TCP usa o mesmo princípio de porta do UDP para prover multiplexação. Como o
UDP, o TCP usa portas bem conhecidas e dinâmicas (efêmeras). Cada lado de uma
conexão TCP tem um socket que pode ser identificado pelos três indicadores <TCP,
endereço IP, número de porta>. Se dois processos estiverem se comunicando via
TCP, eles têm uma conexão lógica que é exclusivamente identificável pelos dois
sockets envolvidos, quer dizer, pela combinação <TCP, endereço IP local, porta
local, endereço IP remoto, porta remota>. Processos de servidor podem administrar
conversações múltiplas por uma única porta.
Os números de portas no lado de cliente são dinamicamente nomeados pelo sistema
operacional quando um serviço é pedido, ou seja, um processo aplicativo é iniciado.
Porém, os números de portas para servidores de aplicações bem conhecidas são
pré-nomeadas pelo IANA e normalmente não são mudadas.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
200
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Um socket é o ponto final (endpoint) para uma comunicação de rede. Designando o
endereço IP do Host de destino, o tipo de serviço (TCP ou UDP) e a porta a ser
usada, nós criamos um socket.
Existem dois tipos de socket mais usados, stream sockets e datagram sockets. O
socket stream trata a comunicação como um fluxo contínuo de caracteres, enquanto
o socket datagrama tem que ler a mensagem inteira de cada vez. O socket stream
usa o protocolo TCP (Transmission Control Protocol), para controlar a transmissão
do fluxo de caracteres (fluxo de bytes), pois ele é confiável, pois é um protocolo
orientado a fluxo de bytes. Por outro lado, o socket datagrama usa o protocolo UDP
(User Datagram Protocol), o qual não é confiável (não garante a entrega do
datagrama) e é orientado a mensagem (não controla o fluxo de bytes).
Existe um terceiro tipo de socket, chamado de raw socket16, o qual permite os
protocolos da camada de aplicação acessarem o protocolo IP diretamente, sem ter
que usar o TCP ou UDP.
Resumindo: um socket funciona como um ponto final de comunicação para a rede
de computadores. Uma aplicação cria um socket stream ou socket datagrama
especificando três itens: o endereço IP de um host, o protocolo que presta um tipo
de serviço na camada de transporte (TCP para o serviço orientado a conexão e UDP
para serviço não orientado a conexão) e a porta da aplicação que está usando.
Portanto, 2 sockets, um para cada ponto final da conexão, formam um caminho de
comunicação bidirecional. Por outro lado, para o socket tipo raw, a aplicação precisa
especificar o payload inteiro do protocolo IP, pois a camada de transporte não é
envolvida na transação.
A seguir vamos estudar os dois tipos de protocolos citados, ou seja, o UDP e o TCP.
7.4 USER DATAGRAM PROTOCOL (UDP)
O UDP é um protocolo da camada de transporte do modelo TCP/IP que trabalha no
modo não orientado a conexão, não provendo confiabilidade ao protocolo IP.
O UDP (User Datagram Protocol) é um protocolo com status de padrão, descrito
pela RFC 768. Na prática, quase toda a implementação de aplicações TCP/IP que
se destinam a transferir pequenas unidades de dados ou aquelas que podem perder
uma pequena quantidade de dados (como streaming de multimídia, consulta de
dados não críticos ou VoIP) incluirá o UDP.
As principais características do protocolo UDP são:
•
•
Não orientado a conexão
Baixo overhead cabeçalho enxuto
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
201
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
•
•
•
Não controla o fluxo de dados
Não garante a entrega dos segmentos (datagramas)
Transmissão do segmento (datagrama) mais rápida
O UDP provê um mecanismo para uma aplicação enviar um datagrama para outra. A
camada do UDP pode ser considerada como sendo extremamente enxuta e, por
conseguinte, tem baixo overhead, mas exige que a aplicação assuma a
responsabilidade pela recuperação de erro e demais controles necessários.
O UDP4 é basicamente uma interface de aplicação para o IP. Não adiciona nenhuma
confiabilidade, controle de fluxo, ou recuperação de erro para o IP. Simplesmente
serve como um multiplexador/demultiplexador para enviar e receber datagramas,
usando portas para direcionar datagramas, como mostrado na figura a seguir.
Processo 1
Porta a
Processo 3
Processo 2
Porta b
..........
Porta z
Multiplexação de Portas UDP
IP
Figura 7.4 Multiplexação baseada em portas UDP sobre o IP.16
Observe que estamos usando o termo “datagrama” ao invés de segmento, pelo fato
de o UDP não conferir confiabilidade na transferência dessa unidade de dados
padrão. No entanto, lembre-se que, oficialmente, datagrama é a PDU do protocolo
IP. A IBM4 associa o termo datagrama ao UDP e o termo segmento ao TCP (este
último considerado por nós o termo padrão para a PDU da camada de transporte).
Aplicações enviando datagramas para um host necessitam identificar um destino
mais específico do que o endereço IP, pois os datagramas normalmente são
dirigidos para certos processos aplicativos e não para o sistema como um todo. O
UDP provê esse endereçamento único usando as portas.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
202
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
7.4.1 Formato do datagrama UDP
Cada datagrama UDP é enviado encapsulado num único datagrama IP. Embora o
datagrama IP possa ser fragmentado durante a transmissão, a implementação IP no
receptor irá remontá-lo antes de apresentá-lo à camada do UDP. Todas as
implementações IP devem aceitar4 datagramas de 576 bytes, o que significa que
para o tamanho máximo do cabeçalho IP de 60 bytes, um datagrama UDP de 516
bytes é aceitável em todas as implementações. Muitas implementações vão aceitar
datagramas maiores, mas isso não é garantido. O datagrama UDP tem um
cabeçalho de 8 bytes que é exibido na figura abaixo.
Figura 7.5 Formato do Datagrama UDP.1
Onde:
• Porta de origem: Indica a porta do processo enviador. É a porta para as quais as
respostas deveriam ser endereçadas.
• Porta de destino: Especifica a porta do processo de destino no host de destino.
• Comprimento: O comprimento (em bytes) desse datagrama do usuário, incluindo
o cabeçalho.
• Checksum: Um campo opcional de 16 bits que consiste no complemento de um
da soma do pseudocabeçalho IP, do cabeçalho UDP e dos dados do UDP.
Quando não usado, este campo deve ficar zerado.21
Na figura a seguir vemos o pseudocabeçalho IP, que estende o checksum para
incluir o datagrama IP original (não fragmentado).
Figura 7.6 Pseudo Cabeçalho IP do UDP.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
203
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
origem endereço IP de
O pseudocabeçalho IP contém os campos endereço IP de origem,
destino e protocolo do cabeçalho do IP, mais o campo comprimento do datagrama
UDP.
7.4.2
.2 Interface de programa
programação de aplicativos do UDP
Uma interface de programação de aplicativos (API) provê serviços para que as
aplicações possam usar um endereço IP e uma porta num host de origem para
iniciar e aceitar conexão para ou de um endereço IP e uma porta específica de um
host de destino, além de per
permitir
mitir transmitir e receber dados e terminar uma conexão.
A interface de programação de aplicativos4 (API) oferecida pelo UDP é descrita na
RFC 768. Ela provê:
• A criação de novas portas para a recepção de dados.
• A operação de recepção que entrega os byt
bytes
es de dados e uma indicação da porta
de origem e do endereço IP de origem.
• A operação de transmissão de dados que tem, como parâmetros, os dados, as
portas e endereços IP de origem e de destino.
Figura 7.7 Exemplo da API para o UDP e TCP
TCP, segundo a Microsoft.16
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
204
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Podemos dizer também que os sockets permitem o envio de mensagens entre dois
pontos finais (ou seja, envio de mensagens entre dois sockets nos hosts finais).
Figura 7.8 Troca de mensagem entre sockets (diagrama simplificado).23
O processo aplicativo utiliza as diretivas da API (instruções básicas para envio e
recepção das mensagens). Veja abaixo algumas diretivas utilizadas via socket.
Figura 7.9 Troca de mensagem entre sockets (diretivas da API).23
Os sockets podem ser usados para outras finalidades além de interconexões de
redes usando o UDP (ou o TCP).23 Por exemplo, os sockets podem ser usados para
comunicações entre componentes em nível de sistema operacional, como
dispositivos de entrada e saída (I/O) e drivers de dispositivos (interfaces entre o SO
e o hardware de um computador).
O modo como essa interface deveria ser implementada foi deixado para a definição
de cada desenvolvedor.4
Lembre-se que o UDP e o IP não proveem entrega garantida, controle de fluxo ou
recuperação de erro, assim esses itens devem ser providos pela aplicação.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
205
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
7.4.3 Aplicações padronizadas que usam o protocolo UDP
Algumas aplicações padronizadas que usam o UDP incluem:
•
•
•
•
•
•
•
•
Aplicação de dados multimídia (Streaming multimídia - dados)
Aplicação de Voz sobre IP (VoIP - dados)
Protocolo de roteamento dinâmico (RIP - Routing Protocol)
Protocolo de Transferência de Arquivo Trivial (TFTP – Trivial Files Transfer
Protocol)
Servidor do Sistema de Nomes de Domínio (DNS – Domain Name System)
Chamada de Procedimento Remoto (RPC – Remote Procedure Call), usado pelo
Sistema de Arquivo de Rede (NFS – Network File System)
Protocolo de Gerenciamento Simples de Rede (SNMP – Simple Network
Management Protocol)
Protocolo Leve de Acesso a Diretório (LDAP – Light Directory Acess Protocol)
Observa-se nas aplicações citadas que o ponto de interesse no uso do protocolo
UDP é a rapidez na transferência do segmento (datagrama) e não no controle dos
dados transmitidos.
Nesses casos, o controle dos segmentos transmitidos via UDP, normalmente fica
sob responsabilidade da aplicação propriamente dita.
7.5 PROTOCOLO DE CONTROLE DE TRANSMISSÃO (TCP)
O TCP é um protocolo da camada de transporte do modelo TCP/IP que trabalha no
modo orientado a conexão, provendo confiabilidade ao protocolo IP.
O TCP (Transmission Control Protocol) é um protocolo com status de padrão,
descrito pela RFC 793. Na prática, toda implementação de aplicações TCP/IP que
tenha necessidade de confiabilidade4 na troca de dados incluirá o TCP.
O TCP provê consideravelmente mais facilidades para as aplicações do que o UDP,
especialmente a recuperação de erro, o controle de fluxo e a confiabilidade.
O TCP é um protocolo orientado a conexão, diferente do UDP que é sem conexão. A
maioria dos protocolos de aplicação de usuário, como o Telnet e FTP, usam o TCP.
Veja a seguir a figura representando a comunicação entre dois processos aplicativos
via o protocolo da camada de transporte TCP.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
206
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Processo 1
Processo 2
..... Porta m .......
TCP
....... Porta n
Conexões TCP
confiáveis
........
TCP
IP
IP
Datagramas IP
não confiáveis
Figura 7.10 Conexões do TCP transportados por datagramas IP.4
Os dois processos se comunicam entre si via uma conexão TCP (Comunicação
Interprocessos - IPC), como mostrado na figura anterior.
7.5.1 Conceitos do TCP
Como observado anteriormente, o propósito primário do TCP é prover uma circuito
lógico (virtual) seguro ou serviço de conexão entre pares de processos. Não assume
confiança nos protocolos de baixo nível (como o IP), assim o TCP tem que se
garantir por si mesmo.
O TCP pode ser caracterizado pelas seguintes facilidades providas para as
aplicações que o usam:4
• Transferência de Stream de Dados: Do ponto de vista da aplicação, o TCP
transfere um fluxo contíguo de bytes pela rede. A aplicação não tem que se
preocupar em dividir os dados em blocos básicos ou datagramas. O TCP faz isto
agrupando os bytes em segmentos TCP que são passados ao IP para a transmissão
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
207
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
ao destino. Além disso, o próprio TCP decide como segmentar os dados e ele pode
remeter os dados conforme a sua própria conveniência.
Às vezes, uma aplicação precisa estar segura de que todos os dados passados ao
TCP foram transmitidos de fato ao destino. Por isso, uma função “push” está
definida. Ela irá empurrar (transmitir) todos os segmentos restantes ainda
armazenados para o host de destino. A função de término de conexão normal
também empurra os dados para o destino.
• Confiabilidade: O TCP nomeia um número de sequência a cada byte transmitido e
espera um reconhecimento positivo (ACK) do TCP receptor. Se o ACK não for
recebido dentro de um intervalo de tempo, os dados são retransmitidos.
Como os dados são retransmitidos em blocos (segmentos TCP), só o número de
sequência do primeiro byte de dados no segmento é enviado ao host de destino. O
TCP receptor usa o número de sequência para rearranjar os segmentos quando eles
chegam fora de ordem e eliminar segmentos duplicados.
• Controle de fluxo: O TCP receptor, ao mandar de volta um ACK para o remetente,
também indica ao remetente o número de bytes que pode receber além do último
segmento TCP recebido, sem causar sobrecarga ou estouro (overflow) em seus
buffers internos. Isso é enviado no ACK, na forma do número de sequência mais alto
que ele pode receber sem problemas. Esse mecanismo é também chamado de um
mecanismo de janela, e nós o discutiremos em maiores detalhe mais tarde neste
capítulo.
7.11 Controle de fluxo via TCP.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
208
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Na figura anterior, vemos que os dois hosts enviam e confirmam os dados para
podem transmitir novos segmentos, segundo regras estabelecidas no início da
conexão, conforme veremos adiante
• Multiplexação: Obtido pelo uso de portas, da mesma maneira que com o UDP,
sobre uma conexão IP.
7.12 Multiplexação de conexões TCP sobre uma conexão IP.1
No receptor, o processo contrário irá ocorrer, ou seja, a demultiplexação.
7.13 Demultiplexação de conexões TCP sobre uma conexão IP.1
• Conexões lógicas: Os mecanismos de confiabilidade e de controle de fluxo
descrito acima requerem que o TCP inicialize e mantenha certo status das
informações para cada fluxo de dados. A combinação desse status, incluindo,
sockets, número de sequência e tamanho da janela, é chamado de conexão lógica.
Cada conexão é identificada exclusivamente pelo par de sockets usado pelos
processos transmissores e receptores.
• Full-Duplex: O TCP provê fluxos de dados simultâneos em ambas as direções.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
209
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
7.5.2 Formato do segmento TCP
Como qualquer PDU de outras camadas, a PDU do protocolo TCP possui o
cabeçalho com os campos de controle que ditam o que deve ser feito com os dados
transportados.
Como o TCP possui muitas funcionalidades, o que ocorre é que ele possui vários
campos para poder implementá-las e controlar o processo de troca de segmentos.
O formato do segmento no TCP é mostrado como segue.
Figura 7.14 Formato do Segmento TCP.1
Na figura acima podemos verificar a PDU do protocolo TCP, consistindo do
cabeçalho mais a parte de dados.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
210
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Normalmente o cabeçalho utiliza as 5 primeiras linhas, ou seja, possui 20 bytes. Em
determinadas situações o cabeçalho TCP pode ser expandido (assim como ocorre
com o cabeçalho do protocolo IP), usando-se o campo Opções do TCP.
Vamos detalhar o nome e função dos campos do cabeçalho do TCP:
• Porta de origem (Source Port.): O número da porta de origem de 16 bits, usado
pelo receptor para responder.
• Porta de destino (Destination Port.): O número da porta de destino de 16 bits.
• Número de sequência (Sequence Number): O número de sequência do primeiro
byte de dados neste segmento. Se o bit de controle SYN está setado (1), o número
de sequência é o número inicial de sequência (n) e o primeiro byte de dados é n+1.
• Número de reconhecimento (Acknowledgment Number): Se o bit de controle
ACK está setado (1), este campo contém o valor do próximo número de sequência
que o receptor está esperando receber.
• Deslocamento dos Dados (Data Offset): O número de palavras de 32 bits no
cabeçalho TCP. Indica onde os dados começam.
• Reservado: Seis bits reservados para uso futuro; deve ser zero.
• FLAGs: 6 campos de 1 bit cada, com os seguintes significados:
• URG: Indica que o campo de ponteiro urgente é significante neste
segmento.
• ACK: Indica que o campo de reconhecimento é significante neste segmento.
•
PSH: Função PUSH (empurre). Prioriza o envio dos dados na transmissão
(envie com prioridade para a outra ponta) e recepção (envie os dados com
prioridade para a camada de aplicação).22
• RST: Reseta a conexão.
• SYN: Sincroniza os números de sequência. Inicie uma conexão.
• FIN: Sem mais dados do remetente. Finaliza a conexão.
• Janela (Window): Usado em segmentos ACK. Especifica o número de bytes de
dados, começando com aquele indicado no campo de número de reconhecimento,
que o remetente desse segmento está disposto a aceitar.
• Checksum: Um campo de 16 bits que consiste no complemento de um da soma
de todas as palavras de 16 bits do pseudo cabeçalho IP, do cabeçalho TCP e do
campo de dados do TCP. Enquanto calculando o checksum, o próprio campo de
checksum é considerado zero.
No TCP, O pseudocabeçalho IP possui o mesmo conceito usado pelo UDP21 e é
usado para calcular o checksum, incluindo campos do cabeçalho IP original,
possuindo o seguinte formato:
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
211
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Endereço IP de Origem
Endereço IP de Destino
Zero
Protocolo
Comprimento TCP
Figura 7.15 Pseudo Cabeçalho do TCP.1
7.5.3 Comparação entre os protocolos UDP e o TCP
Pelo estudo dos dois principais protocolos da camada de transporte, o UDP e o TCP,
podemos resumir as principais características e funcionalidades de cada um deles,
podendo ser verificada as suas principais diferenças.
Verifique na tabela a seguir.
Tabela 7.1 Diferenças funcionais entre os protocolos UDP e TCP.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
212
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
7.5.4 Controle de fluxo pelo TCP
O TCP é dito um protocolo confiável, porque garante a entrega dos segmentos
ordenados no destino, realizando o chamado controle de erro através da
retransmissão dos segmentos quando necessário.
Para realizar a tarefa do controle de fluxo, ele utiliza o chamado mecanismo do
tamanho de janela. Esse mecanismo também é chamado de janela deslizante
(porque muda o valorr do tamanho da janela conforme a situação em que o host se
encontra em termos de poder de processamento e armazenamento das informações
que estão sendo trocadas, ou seja, os fluxos de bytes).
Figura 7.16 Aplicativos trocando dados via TCP.25
É útil pensarmos
ensarmos como o processo de transmissão de segmentos ocorre via TCP.
O TCP, ao executar o controle de fluxo faz uso de buffers de memória nos hosts
finais tanto para armazenar os bytes a transmitir (vindos dos processos aplicativos)
quanto os bytes recebidos
dos (que deverão ser enviados para os processos aplicativos).
Na figura acima vemos esses buffers de transmissão e de recepção. O
processamento desses buffers exige e consome muitos recursos de computação das
máquinas envolvidas.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
213
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Após a conexão ser estabelecida (Three-way handshaking) entre os dois hosts
finais, temos as seguintes parâmetros definidos (valores dos campos do cabeçalho
do TCP):
•
•
•
Número de sequência
Número de reconhecimento
Tamanho de janela
Número de sequência
Número de reconhecimento
Tamanho da janela
Figura 7.17 Cabeçalho do TCP com os campos do controle de fluxo.1
Ou seja, os dados serão enviados de um host para o outro seguindo os campos com
os parâmetros citados definidos.
Os dados serão armazenados nos buffers de transmissão (send buffer) e de
recepção (recv buffer). À medida que os segmentos são confirmados e
posteriormente remontados (caso tenha ocorrido a segmentação) e entregues para a
camada de aplicação e daí até o aplicativo final.
O tamanho de janela de um host é justamente a capacidade de armazenagem dos
dados e de processamento desses dados que um determinado host possui.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
214
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Como essa capacidade de armazenamento e de processamento pode sofrer
variações em função de sobrecarga de processamento da máquina, o mecanismo de
controle de janela é dinâmico, ou seja, os hosts podem aumentar ou diminuir a
janela do TCP.
Vamos verificar agora detalhes deste mecanismo.
7.5.4.1 O princípio da janela
Figura 7.18 TCP e o princípio da janela (adaptado).4
Para simplificação das explicações, vamos considerar que o protocolo de transporte
está controlando o mecanismo de janela e realizando o controle do fluxo através do
envio e recebimento de pacotes (depois veremos que na realidade o controle é feito
pelo número de bytes transmitidos e recebidos).
Um protocolo da camada de transporte simples4 poderia usar o seguinte princípio:
envie um pacote (segmento) e então espere por um reconhecimento do receptor
antes de enviar o próximo pacote. Se o ACK não for recebido dentro de um certo
tempo, retransmita o pacote. Veja a figura anterior para mais detalhes.
Embora este mecanismo assegure confiabilidade, ele só usa uma parte da largura
da banda disponível na rede, pois o transmissor ficará ocioso enquanto não receber
a confirmação do receptor (ACK = reconhecimento).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
215
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Agora, considere um protocolo onde o remetente agrupa seus pacotes para serem
transmitidos, como na figura seguinte e usa as seguintes regras:
• O remetente pode enviar todos os pacotes dentro da janela sem receber um ACK,
mas tem que disparar um temporizador para cada um deles.
• O receptor tem que reconhecer cada pacote recebido, indicando o número de
sequência do último pacote bem recebido.
• O remetente desloca a janela em cada ACK recebido.
Figura 7.19 Pacotes TCP (segmentos) e o tamanho da janela.4
Vemos na figura acima que a janela é composta por 5 pacotes, portanto, o
remetente pode transmitir pacotes 1 a 5 sem esperar por qualquer reconhecimento
por parte do receptor.
Cabe lembrar que a negociação envolvendo o tamanho de janela é feita no
estabelecimento da conexão virtual entre o transmissor e receptor.
Na mesma figura, podemos observar que o transmissor não poderia enviar os
pacotes 6, 7, 8, 9 e superiores, enquanto não chegar o reconhecimento por parte do
receptor.
Porém, na media em que chegar o reconhecimento de pacotes por parte do receptor
o transmissor pode avançar a janela, em função dos pacotes reconhecidos. Por isso
esse mecanismo é chamado de janela deslizante, conforme veremos a seguir.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
216
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 7.20 TCP e o princípio de Janela (adaptado).4
No momento em que o remetente recebe o ACK 1 (reconhecimento para o pacote
1), ele tem permissão para deslocar sua janela de um pacote, e, a partir desse
momento, pode também transmitir o pacote 6.
Imagine alguns casos especiais4, a partir do envio dos 5 pacotes originais:
• Pacote 2 se perde: O remetente não receberá o ACK 2, assim sua janela vai
permanecer na posição 1 (como na figura anterior). Na realidade, como o receptor
não recebeu o pacote 2, reconhecerá os pacotes 3, 4, e 5 com um ACK 1, pois o
pacote 1 foi o último recebido em sequência. No lado remetente, eventualmente um
estouro de tempo (timeout) acontecerá para o pacote 2 e o mesmo será
retransmitido. Note que a recepção desse pacote pelo receptor vai gerar um ACK 5,
pois que ele recebeu agora com sucesso todos os pacotes de 1 a 5, e a janela do
remetente deslocará quatro posições ao receber este ACK 5.
Figura 7.21 TCP e o princípio de Janela.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
217
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
• Pacote 2 chegou, mas o reconhecimento se perde: O remetente não recebeu o
ACK 2, mas receberá o ACK 3.
Nesse caso, o ACK 3 é um reconhecimento para todos os pacotes até o 3 (inclusive
o pacote 2) e o remetente pode deslocar agora sua janela para o pacote 8 (janela 5
+3 pacotes confirmados).
Veja essa situação na próxima figura.
Figura 7.22 TCP e o princípio de Janela.1
O mecanismo de janela (ou janela deslizante, como também é chamado) assegura:
• Transmissão segura.
• Melhor uso da largura da banda da rede (melhor rendimento).
• Controle de fluxo, pois o receptor pode demorar na resposta de um pacote com um
reconhecimento, sabendo-se que os seus buffers livres estão disponíveis e o
tamanho de janela da comunicação está aberto.
7.5.4.2 O princípio da janela aplicado ao TCP
O princípio da janela explicado na seção anterior é usado no TCP, mas com
algumas diferenças:
• Considerando que o TCP provê uma conexão de fluxo de bytes, números de
sequência são nomeados para cada byte no fluxo. O TCP divide esse fluxo de bytes
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
218
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
contíguo em segmentos TCP para transmiti-los. O princípio da janela é usado ao
nível de byte, quer dizer, os segmentos enviados e os recebidos carregarão o
número de sequência de bytes e o tamanho de janela é expresso como um número
de bytes, em lugar de números de pacotes.
• O tamanho de janela é determinado pelo receptor quando a conexão for
estabelecida e é variável durante a transferência de dados. Cada mensagem de
reconhecimento (ACK) inclui o tamanho de janela que o receptor está pronto para
negociar num determinado momento.
Figura 7.23 Mecanismo de janela em ação.1
Na figura acima, vemos que no controle de fluxo à esquerda, o Host A pode
transmitir uma janela de 100 bytes. Após isso, deve aguardar a confirmação (ACK).
No controle de fluxo à direita, o Host A pode transmitir uma janela de 200 bytes.
Nesse exemplo, o host transmite dois segmentos de 100 bytes e depois aguarda a
confirmação do receptor.
Comparando as duas trocas de dados representadas acima, verificamos que no
fluxo da direita a comunicação ocorre com maior vazão, pois o host A pode enviar
dois segmentos seguidos, sem ter que esperar a resposta do host B.
Ou seja, quanto maior a largura da janela maior a vazão na comunicação fim a fim
proporcionada pelo TCP.
O tamanho de janela é definido por cada host ao se criar a conexão virtual, ou seja,
é definido quando ocorre o chamado three-way handshaking.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
219
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Na figura a seguir temos uma representação do mecanismo da janela e
possibilidades de troca de dados entre dois hosts.
Figura 7.24 Princípio da Janela aplicado ao TCP (adaptado).4
Onde:
• A: Bytes que foram transmitidos e reconhecidos.
• B: Bytes que foram enviados, mas ainda não reconhecidos.
• C: Bytes que podem ser enviados sem esperar por qualquer reconhecimento.
• D: Bytes que ainda não podem ser enviados.
Conclui-se que o host remetente tem total liberdade de envio dos segmentos dentro
da janela negociada. Ao se esgotar o tamanho da janela, o remetente deverá
aguardar a confirmação do receptor para ajustar o tamanho da janela.
Esse ajuste é dinâmico, dependendo da situação de carga de processamento dos
dois hosts que estão em comunicação.
Lembre-se que o TCP irá dividir os bytes recebidos da aplicação, em forma de
mensagens, em segmentos. Num segmento do TCP só é indicado o primeiro byte
transmitido desse segmento no campo número de sequência.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
220
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
7.5.4.3 Troca de dados normal (sem retransmissões)
Vamos verificar agora uma troca de dados entre dois hosts sem nenhuma falha no
fluxo de bytes entre os mesmos.
Figura 7.25 Tráfego normal entre dois hosts via TCP.1
Observe na figura acima que o host A transmite para o host B 500 bytes por
segmento O número de sequência do segmento 1, de A para B, é de 1000 e o
número de sequência do segmento 2 é de 1500, com diferença de 500 bytes entre
eles.
No segmento 1, A diz para B que espera receber deste último a partir do byte 0
(ACK=0). O B então envia o segmento 1 (BA) com sequência (seq) igual a 0 e
número de reconhecimento igual a 1500 (indicando para A que recebeu os bytes de
1000 a 1499 normalmente e que A deve transmitir para B - no próximo segmento a
enviar - a partir do byte 1500, portanto, indicando o número de sequência no
próximo segmento com 1500).
A recebe o segmento 1 de B e transmite o segmento 2, com número de sequência
(seq) igual a 1500 e um reconhecimento (ack) igual a 500 (indicando para B que
recebeu normalmente os bytes de 0 a 499).
O processo se repete até que algum fato novo ocorra (alguma falha no fluxo ou
término da conexão virtual). Observe que o controle do fluxo do TCP é realizado de
acordo com o número de bytes transmitidos.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
221
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
7.5.4.4 Reconhecimentos e retransmissões
O TCP envia dados em segmentos de comprimento variáveis. Para controlar a
transmissão dos dados entre os hosts finais, o TCP utiliza os campos Número de
Sequência, Número de Reconhecimento e Tamanho de Janela (já explicado).
Os três campos citados controlam o fluxo baseado na contagem de bytes.
O valor do número de sequência, num determinado segmento, indica o valor do
primeiro byte sendo transmitido ( o segmento pode conter “n” bytes).
O valor do número de reconhecimento (ACK), num determinado segmento,
especifica o próximo byte a partir do qual o host que está transmitindo o segmento
deseja receber.
Ou seja, o número de reconhecimento indica o próximo número de sequência que o
host remoto deveria transmitir, indicando o próximo byte que o transmissor do
presente segmento espera receber (me envie a partir do byte X, respeitando o
tamanho da janela). Ao enviar o número de reconhecimento com valor X, o host
confirma o reconhecimento de todos os bytes anteriores a X (confirma tudo até X-1).
Figura 7.26 Reconhecimento e processo de retransmissão no TCP.1
Na figura acima, considere o seguinte: O Host A transmite um segmento para o B
com o número de sequência igual a 100, num total de 500 bytes. Transmite,
portanto, o byte 100, 101, 102, e assim por diante, até o byte 599. Transmite
também o número de reconhecimento igual a 200 (o Host A indica para o Host B que
deseja receber bytes a partir do 200, pois todos os anteriores foram recebidos
corretamente).
Por sua vez, o Host B recebe o segmento anterior de A e toma as seguintes
providências: transmite um segmento para A com o número de sequência igual a
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
222
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
200 (atendendo a solicitação do Host A), num total de 500 bytes. O Host B também
confirma o recebimento dos bytes de 100 a 599, pois envia o número de
reconhecimento igual a 600 (Host A, me envie agora a partir do byte 600, OK?).
E assim o controle de fluxo entre os dois hosts continua. Verifique que, nesse
exemplo, todos os segmentos foram enviados sem nenhum problema de perda ou
extravio, não sendo necessário nenhuma retransmissão, assunto que veremos em
seguida.
Considere que um segmento se perca ou é corrompido. Nesse caso, o receptor vai
reconhecer todos segmentos bem recebidos com um reconhecimento referindo-se
ao primeiro byte do pacote perdido. Ou seja, o receptor confirma o recebimento
de todos os bytes anteriores ao que ele está indicando no reconhecimento
atual. O remetente irá parar a transmissão quando ele enviar todos os bytes na
janela. Eventualmente, um timeout irá acontecer e o segmento perdido será
retransmitido.
A figura a seguir ilustra e exemplifica quando é usado um tamanho de janela de
1500 bytes e segmentos de 500 bytes.
Figura 7.27 Reconhecimento e processo de retransmissão no TCP.4
Um problema surge agora, pois o remetente sabe que o segmento 2 está perdido ou
corrompido, mas não sabe nada sobre os segmentos 3 e 4. O remetente deve
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
223
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
retransmitir o segmento 2 pelo menos, mas também poderia retransmitir os
segmentos 3 e 4 (pois eles estão dentro da janela atual). Analisando essa situação4,
é possível que:
1. o segmento 3 foi recebido, e nós não sabemos sobre o segmento 4. Ele poderia
ter sido recebido, mas o ACK não foi localizado, contudo, ou ele poderia ter se
perdido.
2. o segmento 3 se perdeu, e nós recebemos o ACK 1500 referente a recepção do
segmento 4.
Cada implementação do TCP é livre para reagir a um timeout conforme a
implementação desejar. Ele poderia retransmitir só o segmento 2, mas no caso 2,
nós estaremos esperando novamente até o segmento 3 esgotar o seu tempo
(timeout). Nesse caso, nós perdemos toda a vantagem do throughput do mecanismo
de janela. Ou o TCP poderia reenviar imediatamente todos os segmentos na janela
atual.
Qualquer que seja a escolha, o máximo throughput está perdido. Isso porque o ACK
não contém um segundo número de sequência de reconhecimento indicando o
frame atual recebido.
Intervalos de timeout variáveis
Cada implementação do TCP deveria prover um algoritmo para adaptar o valor de
timeout a ser usado durante o round trip time dos segmentos (tempo de viagem de
ida-e-volta). Para fazer isso, o TCP registra o tempo no qual um segmento foi
enviado e o tempo no qual o ACK é recebido. Uma média ponderada é calculada em
cima de vários desses tempos de viagem de ida-e-volta, para ser usado como um
valor de timeout pelo próximo segmento(s) a ser(em) enviado(s).
Essa é uma característica importante, porque demoras podem variar na rede IP,
dependendo de fatores múltiplos, como a carga de uma rede intermediária de baixa
velocidade ou a saturação de um roteador IP intermediário.
7.5.4.5 Estabelecimento de uma conexão TCP
Diferentemente do UDP, protocolo não baseado em conexão, o TCP é um protocolo
orientado a conexão. Ele estabelece uma conexão virtual entre os hosts finais.
O procedimento do TCP para estabelecer uma conexão virtual entre dois hosts é
realizado em 3 etapas, como podemos ver na próxima figura, de forma simplificada.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
224
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 7.28 Estabelecimento de Conexão no TCP.1
Essa conexão tem que ser estabelecida entre os dois hosts, para que a
transferência de dados entre eles possa ser iniciada. Vamos analisar o procedimento
da criação da conexão virtual com um pouco mais de detalhes. Um dos processos
aplicativos (normalmente no servidor) abre uma chamada passiva OPEN e o outro
processo aplicativo (normalmente o cliente) abre uma chamada ativa OPEN. A
chamada passiva OPEN permanece dormente (em listening) até que outro processo
tente se conectar a ela por uma chamada ativa OPEN.
Nesse procedimento, na rede, portanto, são trocados três segmentos de TCP:
Figura 7.29 O procedimento do three-way handshaking.1
Após o recebimento pelo ACK 3 pelo servidor (veja figura), a conexão virtual entra
no estado de estabelecida.
Agora sim, os processos aplicativos rodando nos dois hosts poderão iniciar a fase de
troca de dados.
Esse procedimento inteiro é conhecido como three-way handshaking, algo como
um “acordo em três etapas” ou “aperto de mão de três etapas”. Note que os
segmentos TCP trocados incluem os números de sequência iniciais de ambos os
lados, para serem usados em transferências de dados subsequentes.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
225
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
No final do procedimento ilustrado, inicia a fase de troca de segmentos entre os dois
processos. Como citado, a troca de dados entre os hosts é full-duplex e cada lado
controla o fluxo através dos campos número de sequência, número de
reconhecimento e tamanho de janela.
O fechamento da conexão é feito implicitamente enviando um segmento TCP com o
flag FIN setado (sem mais dados). Como a conexão é full-duplex (quer dizer,
existem dois streams de dados independentes, um em cada direção), o segmento
FIN só fecha a transferência de dados em uma só direção. O outro processo enviará
agora os dados restantes que ele ainda tem que transmitir e também termina com
um segmento TCP onde o bit FIN é setado. A conexão é deletada (informação de
estado em ambos os lados) uma vez que o fluxo (stream) de dados for fechado em
ambas as direções.
Veja na figura a seguir, de forma simplificada, o procedimento de término de
conexão no TCP, realizada em 4 etapas (four-way handshaking). Observe que a
conexão será considerada desfeita apenas após a troca de 4 segmentos e de uma
série de temporizações (usadas para garantir que a desconexão seja feita com
sucesso).
Figura 7.30 Término de Conexão no TCP (four-way handshaking).1
Veja abaixo uma lista dos diferentes estados4 de uma conexão TCP:
• LISTEN: Aguardando uma requisição de conexão vinda de outra camada TCP
(cliente).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
226
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
• SYN-SENT: Um flag SYN foi enviado e o TCP está aguardando um flag SIN como
resposta.
• SYN-RECEIVED:: Um flag SYN foi recebido, um flag SYN foi enviado e o TCP
está aguardando um flag ACK.
• ESTABLISHED: O three-way handshake foi completado e a conexão
estabelecida.
• FIN-WAIT-1:: A aplicação local enviou um CLOSE. O TCP enviou um flag FIN e
está aguardando um flag ACK o
ou um flag FIN.
• FIN-WAIT-2:: Um flag FIN foi enviado e um flag ACK recebido. O TCP está
aguardando um flag FIN da ca
camada TCP remota.
• CLOSE-WAIT:: O TCP recebeu um flag FIN e enviou um flag ACK. Ele está
aguardando uma requisição close da aplicação
o local antes de enviar um flag FIN.
• CLOSING:: Um flag FIN foi recebido e um flag FIN + um flag ACk foram enviados.
O TCP está aguardando um flag ACK para o flag FIN enviado.
• LAST-ACK:: Um flag FIN foi recebido, e um flag ACK e um flag FIN foram
fo
enviados.. O TCP está aguardando um ACK (o ultimo).
• TIME-WAIT: Os flags FIN foram recebidos e confirmados pelos ACKs e o TCP
está aguardando a finalização das temporizações para remover a conexão da
tabela.
• CLOSED: Estado imaginário, indicando que uma conexão foi removida da tabela
de conexão.
7.5.4.6 Interface de programa
programação de aplicativos do TCP
A interface de programação de aplicativos (API) do TCP é semelhante à API do
UDP, no entanto, ela possui outras diretivas, em função da complexidade do controle
do fluxo realizado pelo TCP.
Figura 7.31 API do TCP no estado de escuta.24
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
227
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Na figura anterior vemos o servidor em estado de espera (Listening) por conexões
vindas do cliente.
Figura 7.32
32 API do TCP no estado de conectado.24
Nessa última figura vemos a conexão estabelecida entre o cliente e o servidor e os
dois podem trocar dados.
A interface de programação de aplica
aplicativos do TCP4 não está definida
completamente. Só algumas funções básicas
básicas, as quais ela deveria prover,
prover são
descritas na RFC 793 – Transmission Control Protocol. Como é o caso com a
maioria das RFCs no suíte de protocolo TCP/IP, um grande grau de liberdade é
deixado aos
s implementadores, permitindo assim ótimas implementações
(dependentes do sistema operacional), resultando em melhor eficiência (maior
throughput).
As seguintes chamadas de função (primitivas3) são descritas na RFC:4
• Open:: Para estabelecer uma conexão recebe vários parâmetros, como:
o
o
o
o
Active/passive (ativo/passivo)
Foreign socket (socket remoto)
Local port number (Número de porta local)
Timeout value (Valor do timeout - opcional)
Isso
o devolve um nome de conexão local que é usado para referenciar essa
es conexão
particular em todas as outras funções.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
228
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
• Send (Enviar): Ocasiona que os dados num referenciado buffer de usuário serem
enviados através da conexão. Opcionalmente pode setar o flag URGENT ou o flag
PUSH.
• Receive (Receber): Copia os dados TCP entrantes para um buffer de usuário.
• Close (Terminar): Finaliza a conexão; causa um push (empurrão) de todos os
dados restantes e um segmento TCP com o flag FIN é setado.
• Status (Estado): Uma chamada dependente da implementação que poderia
devolver informações, como:
o
o
o
o
Socket local e remoto
Tamanhos de janelas de transmissão (Send) e recepção (Receive)
Estado da conexão
Nome da conexão local
• Abort: Ocasiona todas as operações para Enviar (Send) e Receber (Receive)
pendentes serem abortadas e o envio de um RESET para o TCP remoto.
Maiores detalhes sobre o protocolo TCP podem ser encontrados na RFC 793 Transmission Control Protocol.
7.5.5 Algoritmos de controle de congestionamento do TCP
Uma diferença grande entre o TCP e o UDP é o algoritmo de controle de
congestionamento. O algoritmo de congestionamento do TCP impede que um
remetente sobrecarregue a capacidade da rede (por exemplo, links WANs mais
lentos).
O TCP pode adaptar a taxa do remetente para a capacidade de transmissão da rede
e tentar evitar situações potenciais de congestionamento. Para entender a diferença
entre o TCP e o UDP, é muito útil entender o conceito básico dos algoritmos de
controle de congestionamento do TCP.
Várias melhorias no controle de congestionamento21 foram adicionadas e sugeridas
para o TCP durante os últimos anos. Esta ainda é uma área de pesquisa ativa e
contínua,26 mas implementações modernas do TCP contêm quatro algoritmos4
entrelaçados como padrões básicos da Internet:
• Slow Start (Começo lento)
• Congestion avoidance (Prevenção de congestionamento)
• Fast retransmit (Retransmissão rápida)
• Fast recovery (Recuperação rápida)
Indicamos o livro Red Book4 da IBM – Capítulo sobre a camada de transporte - para
quem desejar saber mais sobre o controle de congestionamento provido pelo TCP.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
229
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
7.5.6 Aplicações padronizadas que utilizam o protocolo TCP
Algumas aplicações padronizadas que usam o TCP incluem:
• Protocolo de Transferência de E-mail (IMAP - Internet Message Access
Protocol)
• Protocolo de Transferência de News na Rede (NNTP - Network News Transfer
Protocol)
• Protocolo de Roteamento BGP (BGP -Border Gateway Protocol)
• Protocolo de Transferência de Arquivo (FTP – File Transfer Protocol)
• Protocolo de Sistema de Nome de Domínio (DNS – Domain Name System)
• Protocolo de Transferência de Hipertexto (HTTP – HiperText Transfer Protocol)
• Protocolo de Transferência de E-mail (POP – Post Office protocol)
• Protocolo Simples de Transferência de E-mail (SMTP – Simple Mail Transfer
Protocol)
• Protocolo de Login Remoto ou Protocolo de Terminal Virtual (TELNET –
Telecommunication Network)
• Protocolo de Transferência em Tempo Real (RTP – Real Time Protocol)
Na realidade, a maioria dos protocolos da camada de aplicação usados na Internet
da atualidade utiliza o protocolo TCP na camada de transporte.
7.5.7 Relação de portas bem conhecidas de aplicações Internet
Veja a seguir algumas aplicações mais populares da Internet, o protocolo de
Transporte e a porta lógica utilizada. Observe que, conforme comentado, o protocolo
TCP é utilizado na maioria das aplicações apresentadas.
Tabela 7.2 Aplicações, protocolo de transporte e portas lógicas.1
Protocolo da Camada Protocolo da Camada Número da Porta
de Aplicação
de Transporte
HTTP
TCP
80
FTP
TCP
20 e 21
Telnet
TCP
23
SMTP
TCP
25
POP
TCP
110
NNTP
TCP
119
SNMP
UDP
161 e 162
DNS
UDP e TCP
53
LDAP
UDP e TCP
389
TFTP
UDP
69
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
230
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
7.6 CONSIDERAÇÕES FINAIS DA CAMADA DE TRANSPORTE
A camada de transporte tem recebido melhoria ao longo do tempo, justamente para
resolver problemas relacionados ao controle de fluxo entre os hosts finais e
congestionamento na rede WAN.
O conhecimento dos protocolos da camada de transporte é fundamental para o
profissional de redes de computadores que deseja especializar-se em segurança de
redes de computadores, pois ataques via Internet usam falhas nesses protocolos.
Neste capítulo procurarmos dar ênfase nos conceitos de protocolos orientados a
conexão, protocolos não orientados a conexão, porta, socket, cabeçalhos dos
protocolos UDP e TCP.
Para aprofundamento neste assunto aconselhamos leitura de livros especializados e
a utilização do software Wireshark para análise do controle de fluxo e cabeçalhos
dos protocolos da camada de transporte.
7.7 RESUMO
A camada de transporte provê a comunicação fim a fim entre máquinas finais.
A unidade de dados padrão dos protocolos (PDU) da camada de transporte é o
segmento.
A camada de transporte trabalha com os endereços das portas das aplicações
que devem ser utilizados sempre que uma máquina de origem deseja transportar
dados de uma aplicação para uma máquina de destino.
Os principais protocolos da camada de transporte são o TCP (orientado a conexão)
e o UDP (não orientado a conexão).
Os protocolos orientados a conexão controlam a transferência de dados entre
máquinas finais.
Os protocolos não orientados a conexão não controlam a transferência de
dados entre máquinas finais, transferindo para a camada de aplicação essa
responsabilidade.
A camada de transporte trabalha diretamente com a camada de aplicação no
modelo TCP/IP, interagindo com o Sistema Operacional da máquina, com a API e
com o aplicativo.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
231
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Os principais equipamentos que trabalham na camada de transporte são:
computadores de usuário final, servidores, proxy e firewall.
Termina aqui este capítulo que tratou da camada de transporte do modelo TCP/IP
e modelo OSI.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
232
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CAPÍTULO 8 CAMADA DE APLICAÇÃO
INTRODUÇÃO
A camada de aplicação é a interface entre o modelo de referência de protocolo (OSI
ou TCP/IP) e o software aplicativo propriamente dito.
É a camada que possui a maior diferença entre o modelo OSI e TCP/IP. Enquanto
no modelo OSI a camada de Sessão, Apresentação e Aplicação são camadas
individuais, no modelo TCP/IP estão inseridas na mesma camada, ou seja, a
camada de aplicação do TCP/IP engloba as camadas de sessão, apresentação e
aplicação do modelo OSI.
A unidade de dados padrão da camada de aplicação (PDU) é a mensagem ou
dados.
No modelo TCP/IP, devemos recordar que a camada de transporte trabalha
diretamente com a camada de aplicação, prestando serviço para a mesma. Na
camada de transporte, a definição de qual aplicação estará requisitando serviço se
dá através do chamado endereçamento de portas de aplicação.
O desenvolvedor da aplicação escolhe livremente o protocolo da camada de
transporte que vai utilizar em sua aplicação, normalmente tendo à sua disposição os
dois tipos mais usuais de protocolos da camada de transporte:
TCP – protocolo orientado a conexão – dito protocolo confiável
UDP – protocolo não orientado a conexão – dito protocolo não confiável
A maioria das aplicações ou serviços do TCP/IP trabalha na arquitetura ou ambiente
Cliente/Servidor, onde, conforme já vimos anteriormente, uma máquina requisita
serviço (o cliente) e outra máquina atende as solicitações (o servidor).
Recentemente, no entanto, temos visto o crescimento de aplicações peer to peer
que alternam o papel de cliente/servidor entre as duas máquinas que trocam
comunicação fim a fim (Shareaza, BitTorrent, Limeware, etc.), utilizando um sistema
de compartilhamento de arquivos de forma dinâmica.
Interessante destacar também que no modelo TCP/IP nós podemos dividir a camada
de aplicação como prestando dois serviços distintos:
•
Conjunto de protocolos que servem de interface para o software aplicativo,
tais como o HTTP, FTP, TELNET, SMTP, POP3, DNS, etc., oferecendo um
determinado serviço de rede.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
233
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
•
Conjunto de utilitários que oferecem ao profissional da área de redes e de TI
ferramentas para diagnósticos de eventuais problemas que possam acontecer
numa rede de computadores, tais como o Ping, Ipconfig, Arp –a, Route, Trace
route, etc.
Os serviços de rede (Internet) utilizam os protocolos da camada de aplicação do
modelo TCP/IP, conforme pode ser visto na figura abaixo, para serem
implementados.
Figura 8.1 Interação aplicativo e Camada de Aplicação no TCP/IP. 1
A aplicação, ao iniciar um processo aplicativo, cria um socket para identificar de
forma inequívoca um processo e um host na origem com um processo e um host no
destino, solicitando que a camada de transporte crie uma conexão virtual entre os
dois, conforme vimos no capítulo anterior.
A seguir vamos conceituar e explanar, de forma resumida, a função dos
d principais
protocolos e utilitários da camada de aplicação do modelo TCP/IP.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
234
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
.1 PROTOCOLOS DA CAMADA DE APLICAÇÃO
8.1
Veremos a seguir como alguns dos protocolos específicos
s comumente usados na
camada da aplicação oferecem uma interface e acesso à rede para o usuário final
(aplicativo).
Como já citado anteriormente neste livro
livro,, a camada de transporte utiliza um
esquema de endereçamento chamado de número de porta. Os números de porta
identificam aplicações e serviços da camada de aplicação que são a origem e o
destino dos dados. Programas de servidor geralmente usam números de porta prépré
definidos que são comumente conhecidos pelos clientes. Ao examinarmos os
diferentes protocolos TCP/IP da camada de aplicação e serviços, estaremos nos
referindo a números de portas TCP e UDP normalmente associados a esses
es
serviços.
ext Transfer Protocol)
8.1.1 HTTP (HyperText
Protocolo utilizado na navegação web permitindo a tro
troca
ca de arquivos HTML de um
computador para outro.
Utiliza normalmente a porta 80 e o protocolo da camada de transporte TCP.
Foi o protocolo que ocasionou a popularidade da Internet.
Figura 8.2
.2 O protocolo HTTP em ação.1
Quando um endereço web (ou URL) é digitado em um navegador web, o navegador
estabelece uma conexão com o serviço web em execução no servidor usando o
protocolo HTTP. URLs (ou Uniform Resource Locator) e URI (Uniform Resource
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
235
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Identifier) são os nomes que a maioria das pessoas associam com endereços da
web. A URL http://www.meusite.com/index.html é um exemplo de um URL que se
refere a um recurso específico - uma página web chamada index.html em um
servidor identificado como meusite.com.
O Hypertext Transfer Protocol (HTTP), um dos protocolos da suíte TCP/IP, foi
originalmente desenvolvido para publicar e recuperar páginas HTML e agora é
usado para sistemas de informação distribuídos e colaborativos. O HTTP é usado
em toda a World Wide Web para transferência de dados e é um dos protocolos de
aplicação mais usados.
As mensagens são passadas em um formato similar ao usado pelo Correio
Eletrônico da Internet e pelo MIME (Multipurpose Internet Mail Extensions).
Trata-se de um protocolo bastante simples, que apenas comanda requisições de
páginas armazenadas em servidores. A fase pré-Internet é considerada a fase
anterior ao protocolo HTTP, quando não se acessava um site com as páginas da
forma como conhecemos hoje, porém com o aspecto de protocolo como o FTP que
veremos posteriormente, e com monitores preto e branco, ou com fósforo verde,
contendo strings de textos simples.
O HTTP especifica um protocolo de pedido/resposta. Quando um cliente,
normalmente um navegador web, envia uma mensagem de solicitação a um
servidor, o protocolo HTTP define os tipos de mensagem que o cliente utiliza para
solicitar a página web e também os tipos de mensagem o servidor usa para
responder. Os três tipos de mensagem comuns no HTTP são GET, POST e PUT.
Figura 8.3 O protocolo de requisição/resposta do HTTP.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
236
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.1.1.1 Formato do pacote de dados de solicitação HTTP
Método: método a ser usado no recurso. Em geral, o GET, o qual é também uma
ordem para a requisição.
Versão HTTP: versão HTTP que está sendo usada (no caso abaixo, a 1.1).
User-Agent: código para informar o tipo de browser.
Host: recurso da rede à qual será aplicada a solicitação, isto é, a URL ou URI. O
HTTP chama de Host.
Accept: com o símbolo "/" que significa aceitar tudo.
(Nota: os símbolos \r\n significam a quebra de linha na mensagem).
O GET é uma solicitação do cliente para obter dados. Um navegador da Web envia
a mensagem GET para solicitar páginas de um servidor web. Como mostrado na
figura a seguir, uma vez que o servidor recebe o pedido GET, ele responde com uma
linha de estado, tal como HTTP/1.1 200 OK, e uma mensagem em si, o corpo, o qual
pode ser o arquivo solicitado, uma mensagem de erro, ou alguma outra informação.
Figura 8.4 Comando Get do HTTP. 1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
237
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.1.1.2 Formato do pacote de dados de resposta HTTP
Versão HTTP: versão que está sendo usada.
Código de status: código de 3 dígitos indicando a tentativa de entender e satisfazer
a solicitação. No exemplo abaixo, é o código 200, dizendo que o host foi encontrado
e está ok.
Frase da razão: descrição textual do código de status, que não aparece na
mensagem abaixo.
Server: sistema operacional do servidor.
Data: data da requisição.
Figura 8.5 Resposta do protocolo HTTP 1.1
Os códigos HTTP, que aparecem junto ao pacote de resposta, formam as
combinações convencionais do tipo "segue o documento", "não autorizado", "erro de
servidor", e o mais conhecido deles - que você encontra ao digitar uma URL errada
ou não existente - é o 404 Page not found.
Além do comando GET, temos também o comando POST e o comando PUT que
são utilizados para mensagens que enviam dados para o servidor web (upload). Por
exemplo, quando o usuário introduz dados num formulário incorporado em uma
página da web, o POST inclui os dados na mensagem enviada para o servidor.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
238
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
O PUT envia recursos ou conteúdo para o servidor web.
Em síntese, o protocolo HTTP é que comanda as requisições das páginas Web. Ele
informa ao browser sobre a existência da página, o sistema operacional do servidor,
e todos os dados necessários à montagem da página.
Contudo, embora seja extremamente flexível, o HTTP não é um protocolo seguro. As
mensagens POST enviam informações para o servidor em texto simples que podem
ser interceptados e lidos. Da mesma forma, as respostas do servidor, páginas
HTML, normalmente também não são criptografadas.
Para comunicação segura através da Internet, o protocolo HTTP seguro (HTTPS) é
usado para acessar ou postar informações sobre o servidor web. O HTTPS pode
utilizar autenticação e criptografia para proteger os dados que trafegam entre o
cliente e o servidor. O HTTPS especifica regras adicionais para a passagem de
dados entre a camada de aplicação e a camada de transporte.
8.1.1.3 Versões do HTTP
Após a versão original 1.0, na versão 1.1 o HTTP incorporou mais dados no
cabeçalho, tais como os tipos de imagens de composição da página, o tipo de
linguagem (idioma, português - brasileiro), a codificação, uma advertência sobre
modificação da página, etc., até o nome da página requisitada que aparece como
host.
Para melhoria da performance do HTTP, a versão 2.0 está sendo implementada.
8.1.2 Telnet (Telecommunication Networking)
Protocolo utilizado para que, de uma máquina local, possamos nos logar numa outra
máquina remota.
Muito utilizado para manutenção remota em equipamentos, software e diagnóstico
em falhas de redes de computadores.
Utiliza normalmente a porta bem conhecida 23 e o protocolo de transporte é o TCP.
Muito antes de os computadores desktop com interfaces gráficas sofisticadas
existirem, as pessoas usavam sistemas baseados em texto que eram muitas vezes
apenas terminais fisicamente ligados a um computador central. Uma vez que as
redes se tornaram disponíveis, as pessoas precisavam de uma maneira para
acessar remotamente os sistemas de computador da mesma maneira que eles
fizeram com os terminais diretamente conectados a eles. O Telnet foi desenvolvido
para atender a essa necessidade.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
239
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
o dos protocolos da
O Telnet remonta ao início dos anos 197016 e é o mais antigo
camada de aplicação e dos serviços na suíte TCP/IP. O Telnet fornece um método
padrão
drão de emular terminais baseados em texto sobre a rede de dados. Tanto o
protocolo como o próprio software cliente que implementa o protocolo são
comumente referidos como Telnet. De forma apropriada,
propriada, uma conexão usando o
Telnet é chamada de sessão de term
terminal virtual (VTY).
O Telnet é uma aplicação de emulação de terminal que permite uma estação de
trabalho se conectar a um host que usa uma ligação TCP/IP e interagir com ele
como se estivesse num terminal diretamente conectado ao mesmo. É uma aplicação
client/server.
lient/server. O servidor roda em um host no qual aplicações estão rodando, e passa
informação entre as aplicações e o cliente Telnet.
Figura 8.6 Protocolo Telnet.1
Clientes Telnet têm que converter os dados de usuário entre a forma na qual é
transmitido e a forma na qual é exibido. Es
Essa
a é a parte difícil da aplicação, a
emulação de terminal, e tem pouco a ver com o próprio protocolo Telnet.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
240
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Comandos do protocolo Telnet são principalmente usados para permitir ao cliente e
ao servidor negociarem as opções de exibição, porque os clientes Telnet e
servidores não fazem suposições sobre capacidades de um e do outro. O TCP provê
a confiabilidade para o Telnet. Nem o cliente e nem o servidor precisam ficar
interessados sobre o reenvio de dados que são perdidos, nem sobre a verificação de
erro.
Isso torna o protocolo Telnet muito simples. Não há nenhum formato especial para
segmentos de TCP que contêm comandos - eles simplesmente formam parte do
fluxo de dados.
Dados são enviados, normalmente com o código ASCII de 7 bits, em pacotes TCP (o
qual você pode recordar que é chamado de segmento). Um byte de valor 255,
"interprete como comando" (IAC), significa que os bytes que seguem serão tratados
como comandos Telnet e não como dados de usuário. Ele é seguido imediatamente
por um byte que identifica o próprio comando, e depois um valor. Muitos comandos
são de comprimento fixo, assim o byte depois disso, se não for outro IAC, seria
tratado como dados de usuário. Para enviar o byte 255 como sendo dados, dois
bytes sucessivos de valor 255 (IAC) são usados.
O protocolo Telnet utiliza vários comandos para controlar a conexão entre o cliente e
o servidor. A sintaxe dos comandos pode mudar entre sistemas operacionais
distintos.
Seguem alguns exemplos de comandos do protocolo Telnet:
Are You There (AYT) - Permite a solicitação do usuário de que algo apareça na tela
do terminal para indicar que a sessão VTY está ativa.
Erase Line (EL) - Apaga todo o texto da linha atual.
Interrompa o processo (IP) - Suspende, interrompe, aborta, ou termina o processo
ao qual o Terminal Virtual está conectado.
SB (subnegotiation) – usado para negociação de parâmetros opcionais.
WONT (refusing to perform--won't) – opção não habilitada.
GA (go ahead) – comando aceito, pode prosseguir na execução.
EC (erase character) – apagar caractere digitado.
Do (do) – proceda a opção negociada.
Ao (abort output) – abortar a saída de dados para o terminal.
Alguns comandos, como aqueles que incluem valores de texto, são de comprimento
variável. Estes são implementados usando bytes de comando da sub-opção de
início (SB) e sub-opção de fim (SE). Esses bytes de comando incluem os dados de
comprimento variáveis como se fossem parênteses.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
241
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Os principais comandos de Telnet usados para negociar as opções de exibição,
quando um cliente se conecta a um servidor, são WILL (remetente quer habilitar esta
opção), WONT (remetente não quer habilitar esta opção), DO (remetente quer que o
receptor habilite esta opção) e DONT (remetente não quer que o receptor habilite
esta opção).
Figura 8.7 Comando Do Protocolo Telnet.1
Para se perceber como isso trabalha, considere o seguinte exemplo. Você inicia seu
cliente Telnet, que é configurado para emular um terminal VT 220, e se conecta a
um host.
O cliente envia WILL <terminal-tipo> (onde <terminal-tipo> é o valor em byte que
representa a opção de exibição de tipo de terminal) para dizer que quer controlar o
tipo de terminal que irá ser usado. O servidor responderá com DO <terminal - tipo>
mostrando que está de acordo que o cliente controle esta opção.
Figura 8.8 Comando Will Protocolo Telnet.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
242
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Depois o servidor enviará SB <terminal - tipo> <send> SE. Isso é um convite ao
cliente para informar ao servidor que tipo de terminal é: <send> é um byte que
significa "enviar a informação". O cliente responde com SB <terminal - tipo> <is> VT
220 SE: (<is> é um byte que indica que a informação solicitada segue) e assim o
servidor é informado da emulação de terminal que o cliente estará usando. O cliente
e servidor negociarão várias outras opções no começo de uma conexão.
Também podem ser mudadas certas opções durante a sessão Telnet.
A opção de eco determina se os caracteres que são enviados pelo cliente serão
ecoados ou não na exibição na ponta local e na ponta remota. Se os caracteres que
são digitados no terminal devem ser ecoados de volta pela aplicação do host, o
servidor de Telnet enviará WILL <eco> para o cliente, o qual aceita essa opção
enviando DO <eco>.
Essa opção pode ser mudada durante uma sessão para suprimir a exibição de
caracteres de senhas.
Outra opção do Telnet a ser negociada é o modo de transmissão. O modo habitual é
modo de um caractere por vez, onde cada caráter digitado no terminal é ecoado de
volta pelo servidor, a menos que a aplicação de servidor especificamente desabilitou
a função do eco.
Você pode constatar quando o modo de um caractere por vez estiver sendo usado
porque há uma demora entre uma tecla pressionada e a exibição da mesma na tela
do terminal. Esse é o tempo de demora da transmissão, da máquina local até o
servidor e depois o retorno para a máquina transmissora.
A alternativa principal para o modo de um caractere por vez é o modo de linha.
Nesse modo, o cliente exibe os caracteres digitados e provê uma linha que edita
capacidades pelo usuário. São enviadas somente linhas completadas ao servidor. O
modo de linha é usado por algumas emulações de terminais de mainframe.
Novamente, é possível trocar de modo durante uma sessão Telnet, se for exigido
interagir com a aplicação que roda no host, a qual responde por separar a entrada
individual de caractere em lugar de entrada de linhas inteiras.
O urgent flag e o urgent pointer num segmento TCP entram em uso quando num
Telnet o usuário no terminal aperta a tecla Break para interromper um processo no
servidor. O Break é convertido pelo cliente Telnet em dois comandos Telnet que são
enviados ao servidor: IP (interrompe processo) seguido por DO <timing mark>
(novamente, nós usamos os sinais de maior e menor para representar uma opção).
O servidor responde a esse último comando com DO <timing mark> seguido por um
comando DM (Data Mark). O urgente pointer é utilizado para apontar o byte do
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
243
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
comando DM, então até mesmo se o controle de fluxo parou a transmissão de dados
normal, este comando ainda será recebido. O DM (Data Mark) é um marcador de
sincronização, o qual ocasiona que qualquer fila de dados até aquele ponto será
descartada.
A maioria dos dados que passam entre o cliente e o servidor durante uma sessão
Telnet são entrada de dados de usuário e dados da aplicação. A coisa importante a
perceber é que o Telnet não empacota os dados com cabeçalhos adicionais ou
informações de controle: simplesmente é passado diretamente ao TCP. Um efeito
colateral disso é que você pode usar um cliente Telnet para se comunicar com
outras aplicações TCP que usam protocolos baseados no ASCII, simplesmente se
conectando na porta apropriada. Embora normalmente pudesse não ser sensato se
fazer isso, pode ser uma ferramenta de diagnóstico bastante útil.
8.1.3 FTP (File Transfer Protocol)
Protocolo utilizado para transferência de arquivo entre duas máquinas distintas.
Muito utilizado no início da Internet, sendo digitado através de linha de comandos.
Hoje normalmente ele está rodando por trás de uma interface gráfica de um browser.
Utiliza duas portas distintas do protocolo de transporte TCP:
•
•
Porta 21 é a conexão de controle (passagem de comandos entre hosts)
Porta 20 é a conexão para troca de dados entre os dois hosts
O FTP permite copiar um arquivo do disco rígido de um computador remoto para o
seu, além de permitir você realizar um upload de arquivos do seu computador para
um sistema remoto.
O FTP permite também que comandos sejam executados nos hosts envolvendo a
troca de arquivos, além da transferência de arquivos propriamente dita.
A especificação do FTP satisfaz vários tipos de arquivos, estruturas e modos de
transferência diferentes, mas na prática as implementações do FTP reconhecem ou
arquivos textos ou arquivos binários.
Os arquivos de texto são convertidos do formato nativo deles para o ASCII 7 bits, no
qual cada é linha terminada por um caractere de carriage-return ou line feed na
transmissão.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
244
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 8.9 Protocolo FTP - Transferência de Arquivo.1
Eles são convertidos de volta ao formato de arquivo de texto nativo pelo cliente do
FTP. O FTP, portanto, provê um mecanismo de transferência de arquivos de texto
via uma plataforma computacional. Os arquivos
rquivos binários são transmitidos
exatamente como eles são.
Os dados são transferidos como um fluxo contínuo de bytes. O protocolo de
transporte TCP provê toda a confiabilidade, tendo
tendo-se certeza que aqueles dados que
são perdidos são reenviados e conferidos para verificar se são recebidos
corretamente. É importante notar que a detecção de erro utiliza um checksum de 16
bits, assim a probabilidade
abilidade de erros não detectada é alta
alta, comparado a um protocolo
de transferência de arquivo como Zmodem que usa um CRC de 32 bits.
O FTP é incomum quando comparado a outras aplicações TCP
TCP,, visto que usa duas
conexões TCP. A conexão de controle é feita p
pela
ela porta de FTP bem conhecida
número 21 e é usada para enviar comandos e respostas FTP. Uma conexão de
dados separada é estabelecida (porta 20)
20), sempre que um arquivo ou outra
informação forem transferid
transferidos. Ela é fechada quando a transferência de dados
termina. Manter os dados e comandos separados facilita a implementação do
software cliente e significa que a conexão de controle está sempre livre para enviar
um comando ABOR (aborte) para terminar uma transferência de dados prolongada.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
245
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 8.10 Protocolo FTP - Transferência de Arquivo.1
São enviados comandos de FTP em texto puro ASCII de 7 bits, os quais consistem
de até 4 caracteres seguidos por zero ou mais parâmetros. As respostas consistem
em um número de três dígitos seguido por uma explicação de texto opcional, por
exemplo, "250 CWD command sucessful". Os números são para a fácil interpretação
através do software cliente FTP e as explicações são para a melhor compreensão do
usuário.
É instrutivo ver o que ocorre durante uma sessão simples de FTP. Quando você se
conecta ao servidor de FTP (TCP porta 21) ele envia sua mensagem de bem-vindo
anteposta pelo código numérico 220. O cliente FTP exibe o prompt de username, o
qual é então enviado usando o comando FTP "USER username”. O servidor pode
responder com "331 need password for username". O cliente detecta isso, exibindo o
prompt de password para você e a envia ao servidor usando o comando "PASS
password". Se a password está correta o cliente receberá a resposta "230 Access
Granted."
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
246
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A próxima coisa que você poderia fazer é digitar o comando DIR, o que irá listar o
diretório atual no servidor. Esse comando no lado cliente gera dois comandos FTP
emitidos ao servidor. O primeiro, "Port x,x,x,x,y1,y2" informa ao servidor o IP de
origem (x.x.x.x) e o número de porta (y1 * 256 + y2) usada para a conexão de dados.
O número de porta está na faixa de 1024 a 4999, uma faixa usada para conexões
dinâmicas ou efêmeras (essas que são brevemente usadas para algum propósito
específico). O segundo, LIST, ocasiona no servidor abrir a porta especificada, enviar
a lista de diretório, e fechá-la novamente.
A sequência para carregar um arquivo é bem parecida com essa para obter uma
lista de diretório. Primeiro, um comando PORT é usado para especificar a porta de
conexão de dados, e então o comando "RETR filename" é enviado para recuperar o
arquivo (baixar o arquivo). O servidor abre a porta dos dados e envia os dados, os
quais o software cliente escreve no disco rígido. O servidor fecha a conexão TCP
para a porta de dados quando a transferência de arquivo termina e esse é o sinal ao
cliente para fechar o arquivo recentemente criado.
8.1.3.1 Comandos e mensagens do FTP
Vários comandos podem ser utilizados no FTP e a seguir temos a sintaxe deles:
ABOR ACCT ALLO APPE CDUP CWD
MKD NLST NOOP PASS
PASV
PORT
RETR RMD
RNFR RNTO SITE SMNT
SYST TYPE USER
DELE HELP LIST MODE
PWD QUIT
REIN
REST
STAT STOR STOU STRU
8.1.3.2 Exemplos de comandos do FTP
Como citado anteriormente, é possível utilizar comandos para realizar algumas
tarefas antes da transferência de arquivos. Seguem alguns outros exemplos de
comandos FTP:
dir: o host remoto envia a listagem de diretório para o host local.
get <file-name>: o host remoto envia o arquivo chamado <file-name> para o host
local.
put <file-name>: o host remoto envia o arquivo chamado <file-name> para o host
remoto.
cd <directory-name>: o diretório de trabalho no host remoto é mudado para
<directory-name>
A seguir veremos os códigos de respostas do FTP que se assemelham a códigos
dos outros protocolos e serviços mais antigos da Internet (TELNET, por exemplo).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
247
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.1.3.3 Códigos de respostas (mensagens) do FTP
A troca de mensagem no FTP, a exemplo de outros protocolos, utiliza códigos que
indicam o status da conexão, conforme pode ser visto na tabela a seguir, onde são
exibidos alguns dos códigos de respostas do FTP.
Tabela 8.1 Códigos de resposta do FTP (lista parcial).4
Códigos
Descrição
100 Série
110
120
125
150
200 Série
202
211
212
213
214
220
221
300 Série
331
332
350
A ação requisitada iniciada, esperada outra resposta.
Reinicie a marcação na marca (ponteiros de arquivos).
Serviço pronto em n minutos.
Conexão de dados aberta, iniciando a transferência.
Status OK; abre a conexão.
A ação requisitada foi concluída com sucesso.
Comando não implementado.
Status do sistema ou resposta de ajuda do sistema.
Status do diretório.
Status do arquivo.
Mensagem de ajuda ao usuário.
Serviço pronto ao novo usuário.
Conexão sendo fechada.
Comando aceito, mas a requisição está em espera, aguardando informações.
User name OK, necessita a password.
Nome da conta necessária para o login.
Ação de arquivo pendente, aguardando maiores informações.
O comando não foi aceito e ação da requisição não foi realizada,
temporariamente.
Serviço não disponível, fechando a conexão.
Não pode abrir a conexão de dados.
Conexão fechada; transferência abortada.
Inválido username ou password
Host requisitado indisponível.
Erro de sintaxe, comando não reconhecido e ação não executada.
Erro de sintaxe em parâmetros ou argumentos.
Comando não implementado.
Sequência errada de comandos.
Respostas faltando confidencialidade e integridade
Resposta de integridade protegida.
Resposta de confidencialidade e integridade protegida.
Resposta de confidencialidade protegida.
400 Série
421
425
426
430
434
500 Série
501
502
503
600 Serie
631
632
633
Lembramos que a tabela acima não contempla todos os códigos de respostas do
FTP, pois foram selecionados os que consideramos os principais.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
248
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.1.4 SMTP (Simple Mail Transfer Protocol)
Protocolo utilizado para transferência de e-mails da máquina cliente para a máquina
servidora de e-mails e entre máquinas servidoras de e-mails dos provedores de
acesso à Internet.
Utiliza a porta 25 e o protocolo da camada de transporte é o TCP.
Figura 8.11 Envio de e-mails através de dois servidores SMTP.1
O “Protocolo Simples de Transferência de Correio Eletrônico” (SMTP) é um dos mais
antigos e usados protocolos da Internet. Projetado no início dos anos 1980, sua
função é pura e simplesmente transferir correio eletrônico para e entre redes e
outros sistemas de transporte.
Como tal, sua necessidade de uso não se restringe a sistemas que usam o TCP/IP.
Qualquer comunicação que seja capaz de controlar até 1.000 linhas de caracteres
ASCII de 7 bits poderia ser usada para levar mensagens que usam o SMTP. Em
uma rede TCP/IP, porém, como citado, o TCP provê o mecanismo de transporte
para o protocolo SMTP.
No SMTP, o remetente é o cliente, mas um cliente pode se comunicar com muitos
servidores diferentes. O e-mail pode ser enviado diretamente do host remetente para
o host receptor, exigindo fazer uma conexão de TCP separada para cada cópia de
cada mensagem. Porém, poucos destinatários de e-mails rodam seus próprios
servidores de SMTP.
É mais habitual para o destinatário de uma mensagem SMTP ter um servidor que
serve um grupo de usuários como todos aqueles de um domínio. O servidor recebe
todo os e-mails direcionados para seus usuários e então lhes permite coletá-los
usando o POP3 (“Protocolo de Correio Eletrônico versão 3”) ou algum outro
protocolo de e-mail compatível. Semelhantemente, a maioria dos clientes SMTP
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
249
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
enviam mensagens a um único servidor, o qual retransmite essas mensagens para
os eventuais destinatários.
Uma transação SMTP começa quando o software cliente do remetente abrir uma
conexão TCP com o receptor que usa a bem conhecida porta número 25. O servidor
reconhece a conexão mandando de volta uma mensagem na forma "220 Servidor de
SMTP Pronto". O SMTP usa um formato semelhante de respostas do FTP. Os três
dígitos do código é tudo que o software cliente precisa analisar para verificar se tudo
está OK. O texto da mensagem é para ajudar os humanos que poderiam estar
diagnosticando um problema através da análise de um log de transação.
Um servidor relay SMTP poderia recusar uma conexão mandando de volta uma
mensagem com um código de resposta "421 Serviço não disponível". Por exemplo,
um servidor SMTP de um Internet Service Provider, provido para uso por seus
assinantes para retransmitir e-mails de saída, poderia recusar uma conexão de um
host cujo endereço IP indica que não é um dos seus assinantes.
O SMTP não tem nenhuma forma de controle de acesso - o modo usado para
retransmitir mensagens tornaria esta tarefa não prática - assim esse é o único modo
que os ISPs podem impedir que os não assinantes, como os spammers, usem os
seus servidores de correio eletrônicos para enviar mensagens.
Tendo recebido o reconhecimento correto, o remetente assina no servidor enviando
a string "HELO hostname". HELO é o comando de assinatura e o hostname é o
nome do host. Como nós veremos adiante, o hostname é usado no campo
“Recebido” no cabeçalho que o servidor acrescenta à mensagem quando a envia.
Essa informação permite ao destinatário localizar o caminho percorrido pela
mensagem.
8.1.4.1 Enviando mensagens pelo SMTP
Uma vez que o remetente recebe um reconhecimento "250 OK" pode começar a
enviar mensagens. O protocolo é extremamente simples. Tudo que o remetente tem
que fazer é dizer de quem é a mensagem, quem é ele e prover os conteúdos da
mensagem.
O remetente da mensagem está especificado no comando "Mail From: <endereço>".
Esse comando também informa quem é o remetente para o receptor que está a
ponto de receber uma mensagem nova, assim ele saberá esvaziar sua lista de
mensagens recebidas de um remetente aprovado. O endereço destacado entre o
símbolo de maior e menor (os quais são requeridos) é o caminho para o retorno da
mensagem. O caminho é o endereço pelo qual qualquer relatório de erro é enviado.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
250
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Por exemplo, o relatório de erro seria gerado e enviado caso a mensagem não
pudesse ser entregue.
A partir daí o computador continua conectado, porém transacionando os protocolos
da família TCP/IP, conforme o critério dos cliques, pois as mensagens dos e-mails
de entrada e saída acabaram.
É válido para o caminho de retorno ser nulo, como em "MAIL FROM: <>". Isso é
tipicamente usado ao enviar um relatório de erro. Isso significa que com o caminho
de retorno nulo, nenhum relatório de fracasso de entrega é requerido. Seu propósito
principal é evitar se entrar na situação na qual mensagens de fracasso de entrega
são transportadas continuamente para frente e para trás na rede, quando endereços
de remetente e de destinatário são inalcançáveis.
Os destinatários de mensagem são definidos usando o comando "RCPT TO:
<endereço>". Cada endereço é incluso entre o símbolo de maior e menor. Uma
mensagem pode ter muitos destinatários, e um comando “RCPT TO:” é enviado para
cada um. É o comando “RCPT TO:”, não qualquer coisa, no cabeçalho da
mensagem que resulta numa mensagem chegar a seu destino. No caso de cópia
oculta ou mensagens de servidor de lista, o endereço de destinatário não aparecerá
no cabeçalho.
Cada destinatário é reconhecido com uma resposta do destinatário "250 OK". Um
destinatário pode ser rejeitado também usando uma resposta com um código de
resposta 550. Isso depende de como o servidor foi configurado. Servidores de Relay
SMTP de ISP alcançados por Dial-Up podem aceitar todo comando “RCPT TO:”, até
mesmo se o endereço especificado é inválido, porque o servidor não sabe que o
endereço é inválido até que faça um lookup no DNS dele. Porém, um servidor de
correio eletrônico configurado para só receber mensagens de usuários locais
rejeitaria destinatários que não estão naquele domínio.
Podem ser recebidas outras respostas com respeito às mensagens “RCPT TO:”
como resultado de operações efetuadas no servidor de SMTP, o que é útil. Por
exemplo: se um endereço está incorreto, mas o servidor sabe o endereço correto,
ele poderia responder com "251 Usuário não local; será remetido para <endereço>"
ou "551 Usuário não local; por favor tente <endereço>".
Note que os códigos de resposta diferentes significam tanto que o servidor roteou ou
não a mensagem. Essas respostas não são comuns, e um cliente de correio pode
tratar a resposta 551 simplesmente como um erro, em lugar de tentar analisar
gramaticalmente a alternativa de encontrar o endereço no texto da resposta.
Para ser mais rigoroso, deveria ser observado que os comandos “RCPT TO:” podem
especificar rotas, não somente endereços. Uma rota seria expressa na forma "RCPT
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
251
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
TO: <server1,server2:someone@server3>. Essa capacidade hoje é raramente
necessária.
8.1.4.2 Texto de mensagem enviada pelo SMTP
Uma vez que todos os destinatários foram especificados, todo o restante da
mensagem é utilizado para o remetente enviar a própria mensagem.
Figura 8.12 Mensagem enviada pelo SMTP. 1
Na figura anterior, exibimos a captura do envio de uma mensagem de e-mail através
do protocolo SMTP. Observe que o protocolo da camada de transporte TCP é
utilizado.
Observe também que, alternativamente, pacotes TCP (na cor branca) informam o
envio dos dados sequencializados (controle de fluxo do TCP) até que o corpo de
dados da mensagem acabe.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
252
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Atente também para o fato que primeiro o SMTP envia o comando "DATA", e então
espera para uma resposta como: "354 começo da entrada de e-mail; termine com
<CRLF>. - <CRLF>". A mensagem é enviada então como uma sucessão de linhas
de texto.
Nenhum reconhecimento é recebido para cada linha, entretanto o remetente precisa
olhar para uma resposta que indica uma condição de erro.
O fim da mensagem é indicado por um período (ponto final) em uma linha de seu
próprio conteúdo.
Assim, uma das mais simples tarefas, mas a mais essencial, que um cliente de
correio tem que fazer, é assegurar que uma linha que contém um único período
(ponto final) não apareça no texto sendo editado.
O fim da mensagem é reconhecido com "250 OK.". Depois da resposta "250 OK"
que reconhece o fim da mensagem enviada, o remetente pode começar novamente
com uma nova mensagem, enviando um novo comando “MAIL FROM:” ou pode sair
do servidor usando o "QUIT". Uma resposta 221 vai ser recebida em resposta ao
comando “QUIT”.
Veja a seguir um exemplo da finalização de uma conexão (comando QUIT):
Figura 8.13 Desconexão de chamada SMTP. 1
É importante notar que o SMTP não está interessado no detalhe do bit, no conteúdo
da mensagem. Esse conteúdo poderia ser absolutamente qualquer coisa, entretanto
no sentido exato não deveria conter qualquer caractere ASCII disponível na faixa de
128 a 255, e as linhas de texto não podem exceder 1.000 caracteres.
Não há nenhuma exigência para os cabeçalhos exibirem os endereços para os
mesmos remetentes e destinatários que foram usados nos comandos SMTP, o que
torna fácil de fazer uma mensagem parecer que veio de alguém diferente do
verdadeiro remetente.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
253
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.1.4.3 Códigos de Respostas do Protocolo SMTP
Como estamos constatando, muitos protocolos da camada de aplicação Internet que
estão baseados em comandos de texto ASCII, usam um sistema de respostas nas
quais um código de três dígitos iniciais provê a informação de estado essencial
(status). Cada dígito tem um significado particular, como mostrado abaixo.
8.1.4.3.1 Primeiro Dígito do Código de Respostas
1xx: Resposta Preliminar Positiva. Comando aceito, mas continua esperando um
comando de confirmação adicional (continue ou aborte).
2xx: Resposta de Conclusão Positiva. Comando completado. Esperando próximo
comando.
3xx: Resposta Intermediária Positiva. Comando aceito, mas continua esperando
informação adicional (como uma contra-senha).
4xx: Resposta de Conclusão Negativa Passageira. Comando não aceito devido a
uma condição de erro temporária (como um servidor de HTTP ocupado). O comando
pode ser tentado novamente mais tarde.
5xx: Resposta de Conclusão Negativa Permanente. Comando não aceito devido a
uma condição de erro permanente. O comando será improvavelmente aceito se
repetido mais tarde.
8.1.4.3.2 Segundo Dígito do Código de Respostas
x0x: Erro de sintaxe. Por exemplo, comando não implementado ou válido, mas
incorreto nas circunstâncias.
x1x: Informação. O texto que segue o código contém a resposta ao pedido de
informação.
x2x: Conexões. Resposta de mensagem relacionada ao canal de comunicações.
x5x: Servidor. Resposta de mensagem relacionada ao estado do servidor.
8.1.4.3.3 Terceiro Dígito do Código de Respostas
Usada para distinguir mensagens individuais.
8.1.4.4 Localizando mensagens no SMTP
Conforme citado anteriormente, quando uma mensagem é retransmitida pelo
servidor, ele insere um cabeçalho “RCPT TO:” (Recebido por) no começo da
mensagem que mostra a identidade do host que enviou a mensagem, seu próprio
nome de host e uma indicação da data. Cada servidor de SMTP em que uma
mensagem passa adiciona seu próprio cabeçalho "Recebido:". Assim é possível
localizar o caminho tomado por uma mensagem.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
254
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Embora isso não identifique o remetente, pode ajudar a descobrir se o endereço que
a mensagem aparentemente contém é na realidade verdadeiro ou não.
8.1.4.5 Comandos adicionais no SMTP
Os servidores SMTP deveriam suportar dois comandos adicionais para uma
implementação mínima.
•
•
NOOP não faz nada, mas deveria provocar uma resposta "250 OK".
RSET aborta uma transação de mensagem atual.
Há outros comandos, como o HELP, que realmente só é de interesse a quem tentar
comunicar-se com os servidores SMTP interativamente, e não é então realmente
pertinente a protocolos de trabalho de uso compreensivo dentro do uso cotidiano.
8.1.5 POP3 (Post Office Protocol)
Protocolo utilizado para realizar o download de e-mails do servidor de e-mail do
provedor de acesso à Internet para a máquina cliente do usuário.
Utiliza a porta 110 e o protocolo de transporte é o TCP.
Poderíamos dizer que os protocolos SMTP e POP trabalham em conjunto. Um
realiza a transferência de e-mails entre servidores (SMTP) e o outro realiza o
download de e-mails que estão num servidor para o software cliente do usuário
(POP). No linguajar técnico, o primeiro recebe a denominação de MTA (Mail Transfer
Agent) e o segundo de MUA (Mail User Agent).
O SMTP é capaz de entregar e-mails diretamente no desktop do destinatário, mas
na prática não é o protocolo ideal para isso. Se um relay SMTP não puder entregar
uma mensagem para o próximo (ou final) host na cadeia, tentará novamente
entregar em intervalos de períodos de até alguns dias antes de desistir e enviar uma
notificação de fracasso de entrega ao endereço do caminho de retorno.
O SMTP não oferece nenhum modo para o destinatário solicitar a um servidor enviar
o e-mail que está tentando entregar. Se um destinatário se conecta
infrequentemente à Internet, o servidor dele pode nunca estar ativo no momento
certo. Nesse caso, ele descartará (bounce) o e-mail eventualmente.
O funcionamento do SMTP é como um serviço de entrega por mensageiro. Se você
não está em casa quando é chamado, então, depois que um par de tentativas de
entrega é feita, a mensagem é devolvida ao remetente.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
255
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
O protocolo de correio eletrônico POP3 (que poderia ser traduzido para protocolo de
agência postal versão 3) - como o nome sugere – permite ter seu e-mail seguro na
agência postal eletrônica e assim você pode coletá-lo cada vez que o desejar.
Figura 8.14 SMTP – POP – IMAP em ação.1
Como citado, o POP3 é outra aplicação que usa o TCP e utiliza a porta bem
conhecida 110. Tal qual outra aplicação de protocolos baseada em texto, você pode
se conectar com um servidor de POP3 que aceite o emulador de terminal Telnet e
pode interagir com ele usando comandos do POP3. Isso às vezes pode ser útil,
como por exemplo, se desejar manualmente apagar uma mensagem corrompida que
causa falha num cliente de e-mail sempre que ele é carregado.
O servidor deveria responder com a mensagem "+OK servidor de POP3 pronto" ao
se conectar ao servidor. O POP3 usa "+OK" e "- ERR" no começo de respostas,
para indicar aceitação ou rejeição de comandos. Isso é mais simples que os códigos
numéricos usados pelo SMTP e outros protocolos: o software só necessita conferir o
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
256
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
primeiro caráter buscando um caractere de mais (+) ou um de menos (-). O texto que
pode aparecer depois de um "+OK" é um lembrete para o que fazer depois. Depois
de "- ERR" está uma descrição de erro. O conteúdo exato do texto pode variar entre
implementações de servidores.
8.1.5.1 Para Acessar o Servidor de e-mail
Um servidor POP3 guarda o e-mail pessoal dos usuários, assim, sem surpresa, você
precisa entrar com um nome de usuário e uma contra-senha antes de você poder
ganhar acesso a ele. Você tem que enviar "USER username”. Uma resposta "+OK"
mostra que o nome de usuário é válido.
Você tem que enviar "PASS password” então. Se a contra-senha está correta você
receberá outro reconhecimento positivo em uma resposta como de “+OK username
tem duas mensagens (914 octetos)". A mensagem "- ERR" pode ser recebida como
resposta se o nome de usuário não for conhecido, a contra-senha está incorreta ou o
servidor está por alguma razão incapaz de abrir a caixa postal de um usuário.
Uma vez que um cliente esteja logado com sucesso, ele pode emitir vários
comandos diferentes que permitem a ele descobrir quantas mensagens estão
esperando, verificar o tamanho delas e carregar as mensagens (no software Cliente)
e as apagar no servidor.
O comando "STAT" retorna o número de mensagens aguardando (message waiting mw) e o tamanho total delas em bytes (size bytes - sb), como uma resposta na forma
"+OK mW sb". Note que é a mesma informação fornecida no reconhecimento de
login, mas nessa (dois números separados por um único espaço) fica mais fácil para
o software cliente processar.
O comando "LIST" pode ser usado para determinar o tamanho de cada mensagem.
Depois do "+OK" o servidor envia, em linhas separadas, o número da mensagem
(mn) e o tamanho da mensagem (ms) separado por um espaço. Mensagens
aguardando são numeradas sequencialmente a partir de 1. O comando "LIST mn”
pode ser usado para descobrir o tamanho de uma mensagem específica. O
comando LIST é tipicamente usado em clientes de correio que implementam uma
restrição definida pelo usuário no tamanho de mensagens que serão carregadas, ou
desejam exibir um indicador de progresso que mostra quanto de cada mensagem foi
carregado.
Veja a seguir a listagem de uma conexão ao servidor de e-mail utilizando o protocolo
POP.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
257
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 8.15 Sequência de acesso aos e-mails pelo protocolo POP.1
Na figura anterior podemos analisar a sequência de acesso do protocolo POP para
baixar e-mail para o software cliente do usuário. Observe que a conta e senha
aparecem claramente, demonstrando que a conexão não é segura nesse protocolo.
O POP3 não provê nenhum comando que permite a um cliente descobrir o assunto
de uma mensagem ou de onde ela vem. Porém, o comando TOP deixa o cliente
carregar os cabeçalhos de uma mensagem e um número especificado de linhas do
corpo de mensagem do qual estas informações podem ser obtidas. TOP é um
comando opcional do POP3, mas sua implementação é recomendada fortemente.
O formato do comando é "TOP nl mn" onde mn é o número de mensagem e nl o
número de linhas requerido. A resposta é “+OK" (se o "mn” é válido) seguido por um
download parcial da mensagem. O fim do download é indicado por uma linha que
contém um único período (ponto final).
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
258
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Alguns softwares que filtram spam - que deletam mensagens não desejadas sem as
carregar - usam o comando TOP para determinar se uma mensagem possui os
critérios para ser deletada ou não. Porém, o tempo levado para adquirir essas
informações para todas as mensagens pode exceder o tempo que teria levado para
carregar o spam e apagá-lo depois simplesmente.
O comando "RETR mn" é usado para recuperar mensagens do servidor.
O comando tem que incluir o número da mensagem (mn). Depois de um
reconhecimento "+OK" o servidor envia a mensagem inteira. Novamente, o fim da
mensagem é indicado por uma linha que contém apenas um período.
8.1.5.2 Deletando mensagens lidas pelo POP
O comando "DELE mn" é usado para apagar uma mensagem. Na realidade, o
comando DELE só marca mensagens para apagamento.
Qualquer mensagem marcada para o apagamento durante uma sessão talvez seja
desmarcada usando um comando "RSET." As mensagens só são apagadas uma
vez que o cliente fechar a sessão POP3 digitando o comando "QUIT" Se um cliente
nunca consegue fechar uma sessão corretamente, ou porque a conexão se perde ou
porque a temporização se esgota, então você poderá se deparar com a situação em
que algumas mensagens são carregadas novamente da próxima vez que você se
conectar ao servidor.
Para evitar a carga da mensagem duas vezes, um cliente POP3 pode usar o
comando "UIDL" ou "UIDL mn" para obter um Id único gerado pelo servidor para
cada mensagem. Armazenando os UIDLs de mensagens carregadas em um
arquivo, um cliente pode determinar facilmente se uma mensagem no servidor foi ou
não previamente recuperada.
A implementação do comando UIDL é opcional, mas a maioria dos servidores POP3
parece suportá-lo e a maioria dos clientes de correio eletrônico usa-o.
8.1.5.3 Benefícios do protocolo POP e SMTP
O SMTP e POP3 são dois protocolos da Internet geralmente mais usados e é por
isso que nós os estudamos com algum detalhe.
A natureza baseada em texto deles torna possível enviar e receber mensagens
comunicando com um servidor interativamente, usando um simples cliente Telnet.
Também se torna mais fácil escrever um software cliente que usa qualquer
linguagem de programação para enviar e receber texto usando o TCP. Esta
simplicidade está em contraste total com muitas outras arquiteturas de rede que
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
259
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
requerem o uso de APIs proprietárias e linguagens que suportam estruturas de
dados complexas.
8.1.6 IMAP
O IMAP (Internet Message Access Protocol) é um outro protocolo, assim como o
POP3, usado para acessar os e-mails num servidor de e-mail remoto, a partir de
cliente local.
O IMAP e o POP3 são dois dos mais comumente usados protocolos de e-mail da
Internet.
O protocolo IMAP é mais sofisticado do que o protocolo POP.
A principal diferença entre eles é que, enquanto o POP3 é utilizado por um cliente
apenas, o IMAP pode ser utilizado por múltiplos clientes. No caso do IMAP, portanto,
vários usuários podem gerenciar uma única caixa de e-mail.
Também as mensagens podem ser armazenadas em vários diretórios e
compartilhadas entre os vários usuários.
Além disso, o IMAP possui uma melhor integração com o protocolo MIME, esse
último utilizado para anexar arquivos no e-mail.
O usuário do e-mail pode acessar as mensagens e escolher qual deve baixar.
O IMAP utiliza a porta TCP de número 143 e está na sua versão de número quatro
(IMAP4).
8.1.7 SNMP (Simple Networking Management Protocol)
O SNMP (Simple Networking Management Protocol) é um protocolo utilizado para
gerenciamento de ativos de redes, permitindo aos administradores de redes controle
sobre equipamentos que compõe a sua rede de computadores, tanto em nível local
como remoto.
Criado em 1988, o SNMP foi adotado mundialmente, tendo superado a solução
baseada na arquitetura CMIS/CMIP (Common Management Information
Service/Protocol), esta última proposta segundo o modelo OSI e adotada por
grandes operadoras de telecomunicações.
Normalmente, o SNMP utiliza a porta 161 UDP para o agente (software que roda no
objeto gerenciado) e a porta 162 UDP para o gerente (software que controla os
objetos gerenciados). Ambas são portas para recebimentos de mensagens, sendo
que tanto o agente como o gerente pode transmitir por qualquer porta.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
260
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Considerado um membro da família TCP/IP, o SNMP é um protocolo da camada de
aplicação, usado para gerenciamento de rede
rede, que possui
ossui as seguintes funções:
•
•
•
informar as anomalias da rede,
estabelecer os valores dos limites,
trocar informações entre os dispositivos da rede.
Uma rede gerenciada pelo protocolo SNMP consiste de 3 componentes principais:
•
•
•
dispositivos gerenciados
gerenciados:: todos os nós de rede, isto é, todos os
equipamentos ligados na rede.
agentes:: software de gerenciamento residente no nó da rede.
sistemas de gerenciamento de redes
redes:: executa as aplicações de coleta e
organização das informações que chegam a ssua
ua base de dados, chamada
MIB.
Veja na figura a seguir os 3 componentes do sistema SNMP.
Figura 8.16 Processo de troca de informações do SNMP.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
261
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.1.7.1 Base de Gerenciamento (MIB) do SNMP
O SNMP possui uma Base de Informações de Gerenciamento (MIB) constituída
por uma coleção de informações organizadas hierarquicamente. As MIBs são
acessadas usando um protocolo de gerenciamento de rede, como o SNMP (em tese
poderia ser utilizado outro protocolo proprietário).
Os protocolos de gerenciamento de rede permitem a leitura de uma enorme
quantidade de dados sobre os equipamentos instalados na rede, desde alarmes até
inventários de placas. Eles são essenciais para diagnosticar a rede e administrar as
reservas dos recursos disponíveis.
Apesar de o SNMP ser uma especificação para o desenvolvimento de sistemas de
gerenciamento, as empresas de telecomunicações desenvolveram aplicativos
gráficos - para interagir com seus próprios protocolos - criando diagramas com a
estrutura da rede. Com isso, a rede pode ser vista tal como ela é, sendo que cada
equipamento ligado a ela permite apresentar os dados armazenados na MIB, além
de estarem dispostos de maneira a serem acessados pela gerência de rede, através
de recursos de software, tais como conhecemos de outros aplicativos.
Como em sua grande maioria os protocolos de gerenciamento de redes das
operadoras de telecomunicação são proprietários, infelizmente essas informações
quase nunca chegam ao terminal do usuário comum.
A vantagem do SNMP, como qualquer outra aplicação do TCP/IP, é a
disponibilidade do protocolo, baixo custo e desenvolvimento facilitado.
8.1.7.2 Comandos de gerenciamento do SNMP
Na rede gerenciada pelo SNMP, cada elemento (nó) de rede possui um software,
chamado agente, com uma base de dados contendo todos os dados a serem
gerenciados. Esses dados são fornecidos pelo administrador da rede e fazem parte
intrínseca da configuração do equipamento. As operações do SNMP são feitas com
os seguintes comandos:
Read - leitura, isto é, monitoramento de variáveis armazenadas no nó de rede.
Write - grava dados, isto é, modifica os valores das variáveis armazenadas no nó de
rede.
Trap - usado no modo assíncrono para reportar eventos ao sistema de
gerenciamento de rede. O trap é a captura de um evento e sua posterior informação
ao sistema de gerenciamento.
Traversal Operation - operações usadas pelo gerenciamento de rede para
determinar as variáveis que um dispositivo suporta, e recolher as informações em
tabelas que compõem a MIB.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
262
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.1.7.3 Objetos gerenciados pelo SNMP
Os objetos gerenciados são definidos como escalares e tabulares. Os tabulares são
os objetos que compõem as tabelas, e os escalares definem uma única instância de
objeto.
Cada objeto possui sua identidade única. As hierarquias têm formato de árvore,
com:
•
•
•
o objeto raiz (root) sendo o nível mais alto,
passando pelos níveis organizacionais, e,
descendo até os objetos simples.
Veja na figura a seguir a hierarquia em árvore do SNMP.
Figura 8.17 Árvore de objetos gerenciados no SNMP.11
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
263
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.1.7.4 Mensagens do SNMP
O SNMP é considerado um protocolo de perguntas e respostas. O sistema de
gerenciamento de rede emite uma solicitação e os dispositivos gerenciados retornam
as respostas. As mensagens (ou comandos) do protocolo permitem implementar as
perguntas e respostas.
O SNMP foi desenvolvido e aperfeiçoado em duas versões consecutivas, com
mensagens constituídas por:
•
•
•
Um cabeçalho contendo o número da versão (1 ou 2),
Um nome de comunidade, isto é, um nome de domínio para um grupo de
sistemas de gerenciamento, e,
Uma unidade de dados, chamada PDU, sigla para unidade de dados de
protocolo.
Os conteúdos das PDUs são:
PDU type: especifica o tipo de unidade de dados transmitida.
Por exemplo, uma PDU trap vai indicar:
• O tipo de objeto gerenciado,
• O endereço do agente,
• Um número representando o tipo genérico da captura,
• Um registro de tempo, e,
• Uma variável de ligação que associa a instância de um objeto com seu valor
corrente.
Request ID: associa as perguntas do SNMP com as respostas.
Error status: indica um número do tipo de erro.
Error index: associa um erro com uma instância de objeto específica.
O SNMP usa cinco tipos básicos de mensagem para se comunicar entre o gerente e
o agente:
GET, GET-NEXT, GET-RESPONSE, SET e TRAP
As 4 primeiras (GET, GET-NEXT, GET-RESPONSE, SET) são utilizadas pelo
gerente para requisitar mensagens do agente ou mudanças em valores de variáveis
no agente. A mensagem TRAP é a única que pode ser enviada, a qualquer
momento, do agente para o gerente, normalmente indicando um alarme ou que um
evento anteriormente programado ocorreu.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
264
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
A versão atual do SNMP é versão 3 (SNMP v3), sendo sua principal proposta a
melhoria de questões relacionadas com a segurança dos dados monitorados.
Figura 8.18 SNMP em ação. 11
8.1.8 DNS (Domain Name Protocol)
Protocolo utilizado para localizar o endereço IP de uma máquina de destino a partir
do seu nome de domínio. Facilita a vida dos usuários da Internet ou de qualquer
rede IP, pois é mais fácil decorar um nome do que o endereço IP. O DNS é um
protocolo hierárquico, bastante complexo e importante na fase atual da Internet.
O DNS usa a porta 53 e os protocolos UDP (pesquisa do IP a partir do nome de
domínio) e TCP (atualização das bases de dados, ou transferência de zonas, entre
servidores DNS).
8.1.8.1 Introdução
Os endereços IP são fáceis para os computadores trabalharem, mas difíceis para
humanos se lembrarem. O Sistema de Nome de Domínio (DNS) resolve esse
problema permitindo que nos refiramos a hosts através de nomes como
"itit.moodlelivre.com" em vez de "200.200.200.1". Um computador chamado de
servidor de nome de domínio (Domain Name System) deixa as aplicações Internet
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
265
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
observarem (look up) o endereço de IP de qualquer host conhecido, e
reciprocamente obter o hostname associado com um determinado endereço IP.
O DNS foi criado para que o servidor de nome de domínio realize a resolução para
os endereço IPs de determinados domínios de redes. O DNS usa um conjunto
distribuído de servidores para resolver os nomes associados a esses endereços
numerados.
O protocolo DNS define um serviço automatizado que localiza os nomes de
recursos e resolve com o endereço de rede numérico desejado. Ele inclui o formato
para consultas, respostas e dados. Comunicações com o protocolo de DNS utilizam
um formato único chamado de mensagem. Esse formato de mensagem é usado
para todos os tipos de consultas de clientes e respostas do servidor, mensagens de
erro e de transferência de informações de registro de recursos entre os servidores.
Como citado, os nomes de domínio são organizados hierarquicamente. À direita está
o nível mais alto do domínio o qual pode indicar uma classe de organização tal como
.com ou .gov, ou um país, como .br ou .ar. Os domínios de mais alto nível são
divididos em domínios de segundo nível, como .com.br. Domínios de segundo nível
podem ser adicionalmente subdivididos, e assim por diante.
As organizações que administram os domínios de nível mais alto (primeiro nível)
mantêm servidores de nome, chamados de servidores de nome raiz (root name
server), os quais conhecem os endereços IP dos servidores de nome do segundo
nível de domínio. Os gerentes do segundo nível de domínios têm que manter os
seus servidores, os quais conhecem os endereços IP dos servidores de nome de
domínio de terceiro nível, e assim por diante. Um domínio de baixo nível como
"scopus.com" ou "compuarte.com.br" podem representar uma rede inteira. Os
servidores de nome de domínio daquele nível têm que prover os endereços IP de
todos os hosts dentro dele.
Em um nome de domínio completamente qualificado, o nome de host é o nome da
esquerda. Então, para que o "www.scopus.com" leve você até o WEB site da
Scopus, a Scopus precisa nomear seu servidor de WEB "www" e ter uma entrada
em seus servidores de nome unindo este nome com o endereço IP do servidor.
8.1.8.2 Registros do DNS
Um servidor DNS fornece a resolução de nomes usando o nome do daemon, que é
chamado frequentemente de named, (pronuncia- se name-dee).
Lembre-se de que um daemon é um programa de computador que roda em
processo background, sob controle de um sistema operacional multitarefa, sem
controle direto interativo de um usuário. A princípio, a maioria das aplicações no
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
266
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
TCP/IP rodam “debaixo” de um daemon, devido à característica do modelo
cliente/servidor das aplicações atuais.
O servidor DNS armazena diferentes tipos de registros de recursos usados para
resolver nomes. Esses registros contêm o nome, endereço e tipo de registro.
Alguns desses tipos de registro são:12
A - o endereço do dispositivo final
NS - um servidor de nome de autoridade
CNAME - nome canônico (ou Fully Qualified Domain Name) para um alias,
utilizado quando vários serviços têm um único endereço de rede, mas cada
serviço tem a sua própria entrada no DNS
MX - registro de troca de mensagem de correio eletrônico; mapeia um nome de
domínio para uma lista de servidores de troca de mensagem de correio eletrônico
para esse domínio
Exemplo de um Registro de DNS com Sintaxe:
exemplo.com.br IN A 200.200.200.1
Onde:
IN indica Internet
A indica o endereço (Address) do registro.
O exemplo acima indica que o Endereço IP para o domínio example.com.br is
200.200.200.1 (nome e IP são fictícios).
Veja a seguir o funcionamento genérico do DNS.
8.1.8.3 Funcionamento genérico do DNS
Quando uma aplicação tenta contatar um host através do nome, a pilha TCP/IP, roda
um módulo chamado de o resolvedor (resolver). Primeiro, ele tenta localizar (look
up) o endereço IP localmente. Em um Windows PC, ele verifica no arquivo
C:\WINDOWS\HOSTS, que é um arquivo de texto que contém uma lista de entradas
no formato <endereço IP> <nome do host>.
Esse era o caminho onde todos “olhavam” e que era clonado (copiado pelos
administradores das outras redes) nos dias anteriores ao servidor de nome de
domínio ter sido inventado.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
267
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Se o nome não é achado no arquivo HOSTS, o software contata um do servidores
de nome de domínio locais, cujo endereço IP está na configuração de TCP/IP, para
ver se ele sabe o endereço. Se o host que você busca não está na zona local, ele
provavelmente não vai ser localizado, a menos que aquele host tenha sido
contatado recentemente e o seu endereço estiver na memória cache. Servidores de
nome colocam os endereços IPs na memória cache e assim eles não têm que
descobrir os endereços de hosts populares , toda vez que eles são contatados.
Se o servidor de nome local não conhece o endereço do host que você quer, ele
contata o servidor de nome de raiz (root name system) para o domínio de primeiro
nível daquele host cujo endereço ele sabe. O servidor de nome de nível raiz dá ao
servidor de nome local o endereço do servidor de segundo nível apropriado. O
servidor de segundo nível passa para ele o endereço do servidor de terceiro nível e
assim por diante, até eventualmente o servidor desejado ser localizado.
8.1.8.4 Navegando na WEB usando o Sistema de Nomes de Domínio (DNS)
Vamos examinar agora o método básico que permite um servidor de Nomes de
Domínio conduzir os clientes para um WEB site.
O diagrama a seguir descreve um pedido feito pelo browser WEB de um cliente
quando ele tenta se logar ao web site.
Figura 8.19 Processo geral de localização do nomes de domínio.15
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
268
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Para determinar qual servidor de nomes primário (primary name server) contém
seus Registros de Nomes de Domínio, um servidor de nomes local (local name
server) contata o servidor de nomes de domínio raiz (root name server) mantido
pelo InterNIC.
O servidor de nomes de domínio raiz então retorna o endereço IP do servidor de
nomes primário responsável pelo domínio que é pedido.
O servidor de nomes primário se torna a próxima máquina contatada pelo servidor
de nomes local.
O servidor de nomes primário mantém o endereço IP do servidor de nomes de
domínio que satisfaz o pedido do servidor de nomes local.
Então o servidor de nomes local pode finalmente retornar o endereço de IP ao
browser WEB.
Usando o endereço IP, o browser WEB pode contatar o servidor WEB da companhia
e baixar suas páginas WEB.
Você pode ver como o DNS utiliza bem os papéis do TCP e do UDP no TCP/IP.
Desde que ambos os protocolos de transporte podem ser usados, servidores de
nome de domínio “escutam” (listening) por requisições UDP e TCP no mesmo
número de porta bem conhecida 53. O dispositivo que age como o cliente usa um
número de porta efêmera para a transação.
Todas as mensagens de DNS são enviadas de forma unicast diretamente de um
dispositivo para outro.
Portanto, como conceito fundamental, verifica-se que o DNS usa o UDP e o TCP
para enviar mensagens. Trocas de mensagem convencionais são "curtas e menos
importantes" e assim bem apropriadas ao uso muito rápido do UDP; O próprio DNS
controla a detecção e retransmissão de requisições perdidas. Para trocas maiores
ou mais importantes de informação, especialmente transferências de zona, o TCP é
usado – tanto pela sua confiabilidade como pela sua habilidade em controlar
mensagens de qualquer tamanho.
8.1.9 Protocolo e Serviço de compartilhamento de arquivo SMB
O Server Message Block (SMB) é um protocolo de compartilhamento de arquivos
cliente/servidor. A origem do SMB ocorre a partir do DOS (Disk Operation System)
em 1984, sendo que a IBM desenvolveu o Server Message Block (SMB) no final dos
anos 1980 para descrever a estrutura de recursos de rede compartilhados, como
diretórios, arquivos, impressoras e portas seriais.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
269
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
O protocolo da camada de aplicação SMB utiliza o TCP como protocolo da camada
de transporte e a porta lógica 445.
de arquivos e de impressão tornaram-se a
Os serviços SMB de compartilhamento d
base da interconexão de redes da Microsoft, pois, a partir do Windows 2000,
2000 todos
os produtos posteriores da Microsoft usam o DNS para resolução de nomes de
domínio. Isso permite que os protocolos TCP/IP suportem diretamente o
compartilhamento de recursos SMB (anteriormente a Microsoft utilizava um protocolo
não TCP/IP para interação a resolução de nomes). A microsoft tem proposto várias
modificações desse protocolo ao longo do tempo.
Os sistemas operacionais Linux e UNIX também fornecem um método de
compartilhamento de recursos com redes Microsoft usando uma versão do SMB
chamada SAMBA.
Os sistemas operacionais Apple Macintosh também suportam o compartilhamento
de recursos utilizando o protocolo SMB.
Às vezes o SMB é chamado de protocolo Common Internet File System (CIFS).
(
O
conjunto de pacotes de mensagem que define uma versão particular de um
protocolo é chamado de dialeto.14 Nesse sentido, o CIFS é um dialeto do SMB.
Figura 8.20 SMB em ação.33
Basicamente, o SMB é um protocolo de solicitação-resposta.. O protocolo SMB
descreve o processo de acesso ao sistema de arquivos e como os clientes podem
fazer pedidos de arquivos
arquivos. Ele também descreve o protocolo de comunicação entre
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
270
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
processos SMB. Todas as mensagens SMB compartilham um formato comum. Este
formato usa um cabeçalho de tamanho fixo seguido por um parâmetro de tamanho
variável e componente de dados.
O SMB pode ser considerado um suíte de protocolo relativamente simples13. Ele
possui comandos para operações de arquivo e impressão que você poderia realizar
num disco local ou numa impressora, tais como:
•
•
•
•
•
Abrir e fechar um arquivo
Criar e deletar arquivos e diretórios
Ler e escrever um arquivo
Procura de arquivos
Enfileirar e retirar da fila arquivos numa fila de impressão
Como qualquer sistema cliente/servidor, os clientes SMB estabelecem uma conexão
aos servidores. Uma vez que a conexão é estabelecida, o usuário do cliente pode
acessar os recursos do servidor, como se o recurso fosse local para o host cliente.
O SMB possui versões 1.0, 2.0 e 3.0.
8.1.10 Protocolo DHCP
O serviço Dynamic Host Configuration Protocol (DHCP), protocolo de configuração
dinâmico do host, permite que os dispositivos em uma rede obtenham endereços IP
e outras informações de um servidor DHCP. Esse serviço automatiza a atribuição de
endereços IP, máscaras de sub-rede, gateway e outros parâmetros de rede IP. O
DHCP permite que um host obtenha um endereço IP dinamicamente quando ele se
conecta à rede. O servidor DHCP é contatado e um endereço solicitado. O servidor
DHCP escolhe um endereço de um intervalo configurado de endereços chamado de
pool e o atribui ("aluga") para o host por um período definido.
O DHCP utiliza normalmente duas portas bem conhecidas: a porta 67 UDP para o
servidor DHCP e a porta 68 UDP para o cliente no Host. Ou seja, o host DHCP vai
enviar mensagens pela porta 68 e o servidor DHCP irá enviar mensagens utilizando
a porta 67, ambos utilizando o protocolo UDP da camada de transporte.
Numa rede de computadores existem várias possibilidades de alocação de
endereços IP para máquinas clientes, sendo que algumas servem de razões para o
uso do DHCP:
1. Alocar automaticamente um endereço IP permanente para uma máquina
cliente;
2. Alocar automaticamente um endereço IP para uma máquina cliente durante uma
quantidade finita de tempo, ou até que o cliente DHCP renove o endereço IP;
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
271
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
3. Alocar manualmente um endereço IP de uma máquina cliente, quando um
administrador de redes realiza a configuração manualmente.
Em grandes redes locais, ou onde as mudanças nas máquinas dos usuários da rede
são frequentes, o uso do DHCP é normalmente preferido. Novos usuários podem
chegar com laptops e precisam de uma conexão. Outros têm novas estações de
trabalho que precisam ser ligadas. Ao invés de o administrador de rede ter que
atribuir manualmente endereços IP para cada estação de trabalho, é mais eficiente
ter endereços IP atribuídos automaticamente usando o DHCP.
Os endereços distribuídos pelo DHCP normalmente não são atribuídos
permanentemente aos hosts, mas só são designados por um período de tempo. Se
o host for desligado ou retirado da rede, o endereço é retornado ao pool de
endereços para reutilização. Isso é especialmente útil com usuários móveis que
entram e saem de uma rede. Os usuários podem se mover livremente de local para
local e re-estabelecer conexões de rede.
O host pode obter um endereço IP uma vez que a conexão de hardware é feita, quer
através de uma LAN com fio ou sem fio. O DHCP permite que você acesse a
Internet usando hotspots nos aeroportos e cafés. Quando você entra na área de
atendimento do protocolo DHCP, o cliente DHCP do seu laptop contata o servidor
DHCP local através de uma conexão sem fio. O servidor DHCP atribui um endereço
IP para o seu laptop. Vários tipos de dispositivos podem ser servidores DHCP ao
executarem um software de serviço DHCP, tais como: servidores independentes,
roteadores, firewall, proxy, etc..
O servidor DHCP na maioria das médias e grandes redes geralmente é um servidor
baseado em PC dedicado local. Em redes domésticas o servidor DHCP geralmente
está localizado no roteador doméstico e um host na rede doméstica recebe sua
configuração IP diretamente desse roteador. Por sua vez, o endereço público
utilizado pelo roteador doméstico é recebido via servidor DHCP do prestador de
serviço Internet (ISP).
A utilização do DHCP pode representar um risco de segurança, pois qualquer
dispositivo conectado à rede pode receber um endereço. Esse risco torna a
segurança física um fator importante na determinação da utilização dinâmica ou
manual do endereçamento IP. Tanto o endereçamento IP estático como o dinâmico
têm seus lugares cativos em projetos de rede. Muitas redes usam tanto o DHCP
como o endereçamento estático.
O DHCP é usado para propósitos gerais, tais como dispositivos de usuários finais, e
endereços fixos são usados para dispositivos de rede, como gateways, switches,
servidores, roteadores e impressoras.
Veja a figura a seguir.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
272
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Figura 8.21 Escopo do DHCP.1
Por outro lado, sem a utilização do DHCP, significa que os usuários têm que inserir
manualmente o endereço IP, máscara de sub-rede e outras configurações de rede, a
fim de terem acesso à rede. O servidor DHCP mantém um pool de endereços IP e
designa um endereço para qualquer cliente DHCP ativado quando o cliente está
ligado. Como os endereços IP são dinâmicos (designados temporariamente) ao
invés de estáticos (atribuídos de forma permanente), endereços não mais em uso
são automaticamente retornados ao pool de endereços para realocação.
8.1.10.1 Tipos de Mensagem DHCP
O protocolo DHCP tem 3 tipos principais de mensagens:4
1. DHCPDISCOVER
Esse tipo de mensagem DHCP é usada pelo cliente DHCP para descobrir um
servidor DHCP.
2. DHCPOFFER
Esse tipo de mensagem DHCP é usada pelo servidor DHCP para responder a uma
mensagem DHCPDISCOVER enviada por um cliente DHCP e também oferecer
detalhes de configuração a qualquer momento em que houver uma requisição.
3. DHCPREQUEST
Esse tipo de mensagem vem de um cliente DHCP para um servidor DHCP
representando três mensagens distintas. A primeira é solicitar detalhes de
configuração de um servidor DHCP específico e rejeitar especificamente a oferta de
quaisquer outros potenciais servidores DHCP. Em segundo lugar, pode ser utilizada
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
273
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
para verificação do endereço de IP anteriormente utilizado, depois que um sistema
sofreu uma reinicialização. A última, pode ser usada para estender a cessão
(empréstimo) de um endereço de IP específico.
8.1.10.2 Troca de mensagens DHCP
Quando um dispositivo configurado com o DHCP é inicializado ou se conecta à rede,
o cliente transmite um pacote DHCP DISCOVER para identificar todos os servidores
DHCP disponíveis na rede. Um servidor DHCP responde com uma DHCP OFFER,
que é uma mensagem de oferta de atribuição temporária de um endereço IP,
máscara de sub-rede, servidor DNS e gateway padrão, bem como a duração do
contrato de atribuição temporária. O cliente pode receber vários pacotes DHCP
OFFER se houver mais de um servidor DHCP na rede local, por isso deve escolher
entre eles e transmitir um pacote DHCP REQUEST que identifica o servidor explícito
e a oferta de locação que o cliente está aceitando.
Figura 8.22 Troca de mensagens no DHCP. 1
Um cliente pode optar por solicitar um endereço que já havia sido atribuído pelo
servidor. Supondo-se que o endereço IP solicitado pelo cliente, ou oferecidos pelo
servidor, ainda é válido, o servidor retornaria uma mensagem DHCP ACK que
reconhece ao cliente a locação e o processo é finalizado. Se a oferta não é mais
válida - talvez devido a um tempo limite ou outro cliente receber a locação - o
servidor selecionado irá responder com uma mensagem DHCP NAK (Negative
Acknowledgement). Se uma mensagem DHCP NAK é devolvida, o processo de
seleção deverá recomeçar com uma nova mensagem DHCP DISCOVER sendo
transmitida. Uma vez que o cliente obtenha a concessão, ela deve ser renovada
antes da expiração da concessão através de outra mensagem DHCP REQUEST.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
274
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
O servidor DHCP garante que todos os endereços IP sejão únicos (um endereço IP
não pode ser atribuído a dois dispositivos de rede diferentes simultaneamente). O
uso do DHCP permite que os administradores de rede reconfigurem facilmente
endereços IP do cliente, sem ter que fazer manualmente as alterações para os
clientes. A maioria dos provedores de Internet usam o DHCP para alocar endereços
aos seus clientes que não necessitam de um endereço estático.
8.2 UTILITÁRIOS DA CAMADA DE APLICAÇÃO
Utilitários da camada de aplicação do TCP/IP são utilizados para testar, avaliar,
detectar e gerenciar problemas na rede de computadores.
O nome dos utilitários pode mudar em função do sistema operacional usado.
A seguir apresentamos os utilitários TCP/IP para o sistema operacional Windows 7
da Microsoft.
Para reproduzir os comandos, o leitor deve clicar no botão Iniciar do Windows 7,
depois digitar o comando CMD. Após isso feito, teremos acesso ao prompt do DOS,
onde poderemos digitar os comandos utilitários a seguir explanados.
Para o ambiente de teste dos utilitários, utilizamos uma rede TCP/IP doméstica,
envolvendo 2 desktops e um modem ADSL. Este último serve como gateway dos
dois desktops.
A maioria dos utilitários TCP/IP aceita ou exige argumentos que podem ser
pesquisados com o comando help (símbolo de interrogação - ?) no Windows 7.
Figura 8.23 Exemplo do comando de ajuda (?) nos utilitários TCP/IP.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
275
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.2.1 Ipconfig
O utilitário que retorna as informações básicas do endereço IP da máquina local e o
Ipconfig.
Usando o utilitário Ipconfig, vamos verificar os dados do TCP/IP da máquina que
nos auxiliará na demonstração dos demais utilitários TCP/IP do Windows 7.
Figura 8.24 Resultado do comando utilitário Ipconfig.1
O resultado do utilitário nos exibe que o endereço IPv4 da máquina é o 10.1.1.2 e o
gateway dessa máquina é o IP 10.1.1.1. O endereço IPv6 da máquina é o
fe80::fcf7:5a2b:ac85:ed57
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
276
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.2.2 Ipconfig /all
Utilitário que retorna todas as informações referentes ao endereço IP da máquina
local.
Figura 8.25 Resultado do comando utilitário Ipconfig/all.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
277
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Perceba que, além dos endereços IP, com o utilitário Ipconfig /all nós obtivemos
também o endereço MAC (endereço físico), ou seja, o endereço da camada de
enlace, que é o 84-2B-2B-7D-24-EB. Várias outras informações são exibidas.
8.2.3 Ping
Utilitário utilizado para testar a conectividade (da camada física até a camada de
rede) entre duas máquinas na rede.
Através dele também temos uma ideia do delay na transmissão do sinal entre as
duas máquinas.
No exemplo abaixo, fizemos um Ping da máquina local até o gateway da rede
doméstica. Ping realizado com sucesso e tempo de resposta de 1 ms no máximo.
Figura 8.26 Resultado do comando utilitário Ping.1
8.2.4 Hostname
Utilitário que retorna o nome do host
Figura 8.27 Resultado do comando utilitário Hostname.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
278
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.2.5 Arp –a
Utilitário que retorna as informações da tabela ARP armazenada na máquina local.
Figura 8.28 Resultado do comando utilitário Arp -a.1
Percebemos a relação dos endereços lógicos com os endereços físicos (MAC)
armazenados na tabela ARP da máquina local.
8.2.6 Netstat
Utilitário que retorna as conexões ativas do protocolo TCP/I`P
Figura 8.29 Resultado do comando utilitário Netstat -a.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
279
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Na figura anterior, é exibida uma relação parcial das conexões virtuais estabelecidas
na camada de transporte (TCP).
Observe que cada utilitário poderá requisitar parâmetros adicionais na linha de
comando, os quais podem ser verificados utilizando o Help desses comandos.
8.2.7 Route
Utilitário que retorna as informações da tabela de roteamento armazenada na
máquina local.
Figura 8.30 Resultado do comando utilitário Route Print.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
280
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.2.8 Tracert (Trace route no Linux)
Utilitário que retorna as informações da rota ou caminho percorrido entre um host A
e um Host B.
Figura 8.31 Resultado do comando utilitário Tracert.1
8.2.9 Nslookup
Utilitário que resolve um nome de domínio para o endereço IP (simulando o serviço
DNS).
Figura 8.32 Resultado do comando utilitário Nslookup.1
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
281
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
8.3 CONSIDERAÇÕES FINAIS DA CAMADA DE APLICAÇÃO
A camada de aplicação do modelo TCP/IP é a que recebe maior número de
protocolos, tanto no modelo cliente/servidor quanto no modelo peer to peer.
O objetivo deste capítulo foi apresentar os conceitos básicos da camada e a
apresentação geral dos seus principais protocolos.
O leitor poderá avançar no estudo de cada protocolo específico que desejar ou
precisar.
Um livro recomendado para o estudo mais aprofundado da camada de aplicação é
Redes de Computadores e Internet: uma abordagem top-down. 15
8.4 RESUMO
A camada de aplicação provê uma interface para os aplicativos utilizarem os
serviços de rede do modelo de referência adotado (OSI ou TCP/IP).
A unidade de dados padrão dos protocolos da camada de aplicação (PDU) é dados
ou mensagem.
A camada de aplicação trabalha com os endereços dos processos aplicativos e
cria os sockets para gerenciar a troca de dados entre aplicações, via camada de
transporte, de uma aplicação numa máquina de origem a uma máquina de destino.
Os principais protocolos da camada de aplicação são: HTTP, FTP, SMTP, POP
(IMAP), SNMP, Telnet, entre outros.
A camada de aplicação do TCP/IP também possui os utilitários utilizados para testar,
avaliar, gerenciar e monitorar a rede de computadores. Os principais utilitários do
TCP/IP são: Ping, Tracert, Route, Arp, Netstat, Lookup, Ipconfig, etc.
Os principais equipamentos que trabalham na camada de aplicação são máquinas
finais, clientes ou servidores.
Neste capítulo final procurou-se dar uma visão geral dos protocolos e dos utilitários
da camada de aplicação no modelo TCP/IP.
Não foi objetivo esgotar o assunto: o profissional de rede de computadores deve
buscar literatura especializada, caso necessitar se aprofundar em qualquer um dos
protocolos e utilitários vistos nessa camada.
Termina aqui este capítulo que tratou da camada de aplicação do modelo TCP/IP.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
282
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
CONCLUSÃO
Concluímos aqui este livro esperando que ele traga conhecimento para o leitor nos
Fundamentos de Redes de Computadores.
Conhecer os Fundamentos de Redes de Computadores possibilita ao leitor,
estudante ou profissional da área de Infraestrutura de Redes de Computadores,
avançar no estudo de tópicos mais específicos e avançados dessa área.
Convidamos ao leitor a participar de nosso curso on-line Fundamentos de Redes
de Computadores onde qualquer dúvida sobre o exposto neste livro pode ser
retirada.
Verifique as informações constantes no Apêndice A deste livro para a inscrição no
curso citado (cadastre-se em nosso blog para participar de vagas gratuitas no curso
citado).
Att.,
Ademar Felipe Fey
Raul Ricardo Gauer
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
283
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
REFERÊNCIAS BIBLIOGRÁFICAS
1. FEY, Ademar; Gauer, Raul R. Fundamentos de Redes de Computadores.
Curso on-line. www.itit.moodlelivre.com. 2009-2013.
2. FEY, Ademar F. Mas afinal o que é o modelo OSI? 2010. Disponível em:
<http://ademarfey.wordpress.com/2010/12/25/mas-afinal-o-que-e-o-modelo-osi/>.
Acesso em 09/08/2013.
3. TANEMBAUM, Andrew S. Redes de Computadores. 5ª. Ed. Rio de Janeiro:
Campus, 2011.
4. IBM. TCP/IP Tutorial and Technical Overview. 2006. Capítulo 4 - Camada de
Transporte.
Disponível
em:
<http://www.redbooks.ibm.com/redbooks/pdfs/gg243376.pdf>.
Acesso
em:
18/07/2013.
5. FEY, Ademar Felipe. Introdução as Redes WAN. 2013. 2009-2013.
6. SOARES, Luiz F. G; LEMOS, Guido; COLCHER, Sérgio. Redes de
Computadores: das LANs, MANs e WANs às redes ATM. 6ª. Ed. Rio de Janeiro:
Campus, 1995.
7. PATTERSON, Jason. The History Of Computers During My Lifetime.
Disponível em: <http://www.straipsniai.lt/en/Computers/page/7768>. Acesso em:
22/08/2013.
8. ROJAS, Raúl; HASHAGEN, Ulf. The First Computers - History and
Architectures. MIT Press. 2000.
9. FEY, Ademar Felipe; GAUER, Raul Ricardo. Redes WAN. Curso on-line.
www.itit.moodlelivre.com. 2009-2013.
10. FEY, Ademar Felipe; GAUER, Raul Ricardo. Fundamentos de
Telecomunicações
e
Comunicação
de
Dados.
Curso
on-line.
www.itit.moodlelivre.com. 2009-2013.
11. DPSTELECOM. SNMP Tutorial: An Introduction to SNMP. Disponível em:
<http://www.dpstele.com/layers/l2/snmp_tutorials.php>. Acesso em: 22/08/2013.
12. HUQUE, Shumon. DNS and DNSSEC. University of Pennsylvania. Disponível
em:
<http://www.huque.com/~shuque/doc/2012-05-DNS-DNSSEC-Tutorialhuque.pdf>. Acesso em: 24/08/2013.
13. ECKSTEIN, Robert; COLLIER-BROWN, David; KELLY, Peter. Using Samba.
1st Edition November 1999.
14. MICROSOFT. Microsoft SMB Protocol and CIFS Protocol Overview.
Disponível
em:
<http://msdn.microsoft.com/enus/library/windows/desktop/aa365233%28v=vs.85%29.aspx>.
Acesso
em:
25/08/2013.
15. KUROSE, James F.; ROSS, Keith W. Redes de Computadores e Internet:
uma abordagem top-down. 5. ed. São Paulo: Addison, Wesley, 2010.
16. MICROSOFT. TCP/IP Fundamentals for Microsoft Windows. 2008. Disponível
em: <http://www.microsoft.com/en-us/download/details.aspx?id=8781>. Acesso em:
17/08/2013.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
284
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
17. FEY, Ademar; Gauer, Raul R. IPv6: Teoria e Prática. Curso on-line.
www.itit.moodlelivre.com. 2011-2013.
18. HAIN,
Tony.
IPv6
Basics.
Cisco
Systems.
Disponível
em:
<http://www.nanog.org/meetings/nanog26/presentations/hain.pdf>.
Acesso
em:
18/07/2013.
19. LINKOVA,
Jena.
IPv6:
What,
Why,
How.
Disponível
em:
<http://www.openwall.com/presentations/IPv6-1.pdf>. Acesso em: 28/08/2013.
20. INGALLS,
Robert.
Sockets
Tutorial.
Disponível
em:
<http://www.cs.rpi.edu/~moorthy/Courses/os98/Pgms/socket.html>.
Acesso
em:
03/11/2013.
21. JAIN, Raj. TCP tutorial. Ohio State University. USA. Disponível em:
<http://www.cse.wustl.edu/~jain/bnr/ftp/f20_tcp.pdf>. Acesso em: 13/11/2013.
22. GUANG, Cheng. TCP Analysis Based on Flags. College of Computer Science
& Engineering. Southeast University, Nanjing, P.R. China. Disponível em:
<http://www.nordu.net/development/2nd-cnnw/tcp-analysis-based-on-flags.pdf>.
Acesso em: 13/11/2013.
23. CULLER, David E. Wireless Embedded Internetworking Short Course.
University of California at Berkeley. Department of Electrical Engineering and
Computer
Science.
Disponível
em:
<http://www.eecs.berkeley.edu/~culler/WEI/labs/lab5-sockets/sockets-intro.html>.
Acesso em: 14/11/2013.
24. SHIEH, Chin-Shiuh. Internet Programming in Microsoft WinSock API. 2008.
Disponível em: <http://bit.kuas.edu.tw/~csshieh/teach/np/winsock/> Acesso em:
15/11/2013.
25. HOLGATE, Len. TCP flow control and asynchronous writes. 2011. Disponível
em:
<://www.serverframework.com/asynchronousevents/2011/06/tcp-flow-controland-asynchronous-writes.html>. Acesso em: 15/11/2013.
26. ROUGHAN, Matthew. TCP Flow Controls. Adelaide-Melbourne Grampians
Workshop.
1999.
Disponível
em:
<http://www.maths.adelaide.edu.au/matthew.roughan/Papers/tcptute.pdf>.
Acesso
em: 15/11/2013.
27. MICROSOFT.
Digital
Computing
Timeline.
Disponível
em:
<http://research.microsoft.com/en-us/um/people/gbell/Digital/timeline/1977-3.htm>.
Acesso em: 15/11/2013.
28. IBM. IBM 100. 100 anos da história da IBM. Disponível em: <http://www03.ibm.com/ibm/history/ibm100/us/en/icons/personalcomputer/transform/>. Acesso
em: 15/11/2013.
29. CISCO.
Hubs.
Disponível
em:
<http://www.cisco.com/en/US/products/hw/hubcont/ps853/tsd_products_support_eol
_series_home.html>. Acesso em: 15/11/2013.
30. CISCO.
Switches.
Disponível
em:
<http://www.cisco.com/cisco/web/solutions/small_business/products/routers_switche
s/catalyst_2960_series_switches/index.html>. Acesso em: 15/11/2013.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
285
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
31. CISCO. Overview of the Cisco MWR 1941-DC Router. Disponível em:
<http://www.cisco.com/en/US/docs/wireless/mwr_1941/hardware_install/1941_hardw
are_install/guide/1941ovr.html>. Acesso em: 15/11/2013.
32. ARIN.
IPv4
Depletion
and
IPv6
Adoption
Today.
Disponível
em:
<https://www.arin.net/knowledge/ipv6_info_center.html>. Acesso em: 15/11/2013.
33. MICROSOFT. Microsoft SMB Protocol and CIFS Protocol Overview.
Disponível
em:
<http://msdn.microsoft.com/enus/library/windows/desktop/aa365233%28v=vs.85%29.aspx>.
Acesso
em:
15/11/2013.
34. BLACK
BOX.
Repetidor.
Disponível
em:
<http://www.blackbox.com/Store/Results.aspx/search-repeter%60%60si_product>.
Acesso em: 15/11/2013.
35. CISCO.
Open
System
Interconnection
Protocols.
<http://docwiki.cisco.com/wiki/Open_System_Interconnection_Protocols>.
Acesso
em: 14/04/20.
36. ALLIEDTELESIS. AlliedWare OS Software Reference. Chapter 24: Open
Systems
Interconnection
(OSI)..
Disponível
em:
<http://www.alliedtelesis.com/media/fount/software_reference/291/at9800/osi.pdf>Ac
esso em: 23/04/2014.
37. PISCITELLO, David M., CHAPIN, A. Lyman. Open Systems Networking:
TCP/IP and OSI. 1993 by Addison-Wesley Professional.
38. BAKER, Martin John. Telecommunications - OSI Protocols. Disponível em:
<http://www.euclideanspace.com/coms/stack/osi/index.htm>.
Acesso
em:
23/04/2014.
39. COMPUTER & TECHNOLOGY. Application Layer of the OSI Reference
Model Function. Disponível em> <http://www.learn44.com/application-layer-of-theosi-reference-model-function>. Acesso em: 03/05/2013.
40. UNIVERSITEIT TWENTE. Presentation Layer. 1998. Disponível em:
<http://wwwhome.cs.utwente.nl/~widya/AP/sh-col3b.pdf>. Acesso em: 18/04/2014.
41. ANDREW TAN TENG HONG; MAH CHEE MENG; CHEE YEW WAI; TAN YOKE
CHUAN; CHEONG KIM MING. Comparison and Contrast between the OSI and
TCP/IP Model. Apresentação PowerPoint.
42. TECHTARGET.
Aplication
layer.
Disponível
em:
<http://searchnetworking.techtarget.com/definition/Application-layer>. Acesso em
20/04/2013.
43. CISCO. Open System Interconnection Protocols. Disponível em:
<http://docwiki.cisco.com/wiki/Open_System_Interconnection_Protocols>.
Acesso
em: 14/04/20.
44. HABIB, Ahsan (Berkeley); CHRISTIN, Nicolas (Carnegie Mellon University);
CHUANG, John (Berkeley). Taking Advantage of Multihoming with Session
Layer Striping.
45. UNIVERSITEIT DE TWENTE. Session Layer. PDF. Disponível em:
<http://wwwhome.cs.utwente.nl/~widya/AP/sh-col3a.pdf>. Acesso em: 24/04/2014.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
286
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
46. DUBUISSON, Olivier. ASN.1 Communication between Heterogeneous
Systems. 2000. http://www.oss.com/asn1/booksintro.html.17/04/2014.
47. PACKETIZER. Chapter 7: The encoding question, Introduction to
Presentation
Layer
concepts.
Disponível
em:
<http://www.packetizer.com/osi/understandingosi/chapter7.html>.
Acesso
em:
17/04/2014.
48. MICROSOFT. Uma breve introdução ao ASN.1 e ao BER. Disponível em:
<http://support.microsoft.com/kb/252648/pt-br>. Acesso em: 14/09/2012.
49. IBM.
ASN.1/XML
Translator.
Disponível
em:
<http://www.research.ibm.com/trl/projects/xml/xss4j/docs/axt-readme.html>. Acesso
em: 18/04/2014
50. OOCITIES.ORG.
Presentation
Layer.
Disponível
em:
http://www.oocities.org/starwosi/apresent.htm. Acesso em: 14/09/2012
51. INETDAEMON.COM.
Presentation
Layer.
Disponível
em:
<http://www.inetdaemon.com/tutorials/basic_concepts/network_models/osi_model/tra
nsport.shtml>. Acesso em: 17/09/2012.
52. HILL2DOT0.
Presentation
Layer.
Disponível
em:
<http://www.hill2dot0.com/wiki/index.php?title=Presentation_Layer>. Acesso em:
28/03/2012.
53. WIKIPEDIA.
Presentation
layer.
Retirado
de.
Disponível
em:
<http://en.wikipedia.org/wiki/Presentation_layer>. Acesso em: 14/09/2012.
54. ENOTES.
Presentation
Layer.
Disponível
em:
<http://www.enotes.com/topic/OSI_model#Layer_6:_presentationr>. Acesso em:
14/09/2012.
55. WIKIPEDIA.
OSI
Model.
Disponível
em:
<http://en.wikipedia.org/wiki/OSI_model#Layer_3:_network_layer>.
Acesso
em:
25/04/2014.
56. BRISA. Arquiteturas de redes de computadores OSI e TCP/IP. Macron
Books: Rio de Janeiro, 1994.
57. BLANK, Andrew G. TCP/IP Jumpstart: Internet Protocol Basics. John Wiley &
Sons
Inc
(US).
Second
Edition.
2002.
Disponível
em:
<http://media.wiley.com/product_data/excerpt/13/07821410/0782141013.pdf>.
Acesso em: 10/03/2012.
58. KOZIEROK, Charles M. The TCP/IP Guide: A Comprehensive, Illustrated
Internet Protocols Reference [Hardcover]. Versão on-line. 2005. Disponível em: <
http://www.amazon.com/dp/159327047X#reader_159327047X>.
Acesso
em:
10/03/2012.
59. LARMOUTH, John. Understanding OSI. 10 Nov 1997 Revision. Versão on-line.
Disponível em: <http://www.packetizer.com/osi/understandingosi/chapter1.html>.
Acesso em: 10/03/2012.
60. LEINER, Barry M. et al. Brief History of the Internet. Internet Society.
Disponível
em:
<http://www.internetsociety.org/internet/internet-51/historyinternet/brief-history-internet>. Acesso em: 11/03/2012.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
287
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
61. PELKEY,
James.
Entrepreneurial
Capitalism
and
Innovation:
A
History
of
Computer
Communications.
1968-1988.
2007.
Disponível
em:
<http://www.historyofcomputercommunications.info/index.html>.
Acesso em: 10/03/2012.
62. POUZIN, Louis. The Cyclades network - present state and development
trends. Symposium on Computer Networks, 1975 pp 8-13. Disponível em:
<http://rogerdmoore.ca/PS/CIGALE/CYCL2.html>. Acesso em: 11/03/2012.
63. ZIMMERMANN, Hubert. OSI Reference Model-The IS0 Model of Architecture
for Open Systems Interconnection. IEEE Transactions .on Communications, VOL.
COM-28,
No.
4,
APRIL
1980.
Pag.425-432.
Disponível
em:
<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.136.9497&rep=rep1&type
=pdf>. Acesso em: 10/03/2012.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
288
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
APÊNDICE A – Cadastro no blog Infraestrutura de Redes
Cadastrando-se em nosso blog (www.ademarfey.wordpress.com) você recebe
promoções mensais de nossos cursos e e-books, inclusive com vagas gratuitas aos
cursos.
Para cadastro em nosso blog envie um e-mail para cursosead.aff@gmail.com, com
as seguintes informações:
• Assunto: cadastro no blog.
• Nome completo.
• E-mail em que deseja receber novidades sobre cursos, artigos e e-books.
Att.,
Prof. Ademar e Prof. Gauer
www.ademarfey.wordpress.com
www.itit.moodlelivre.com
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
289
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
APÊNDICE B – Indicações de cursos on-line e e-books por assunto
Cursos On-Line em Infraestrutura de Redes de Computadores
Indicamos a seguir por assunto a ser estudado nossos cursos on-line/e-books
Assunto
Curso/E-book
Modelo OSI conceitos básicos
Fundamentos de Redes de Computadores
Introdução às Redes de Computadores (ebook)
Fundamentos de Redes de Computadores:
365 resolvidas e comentadas (e-book)
Fundamentos de Redes de Computadores
Introdução às Redes de Computadores (e-
Modelo TCP/IP conceitos básicos
book)
Fundamentos de Redes de Computadores:
365 questões resolvidas e comentadas (ebook)
Sub-rede
Fundamentos de Redes de Computadores
Como criar sub-redes em redes IP (e-book)
Dominando Sub-redes no IPv4 e no IPv6 (ebook)
CIDR
Como Criar Sub-redes em Redes IP (e-book)
Dominando Sub-redes no IPv4 e no IPv6 (ebook)
VLSM
Como Criar Sub-redes em Redes IP (e-book)
Dominando Sub-redes no IPv4 e no IPv6 (ebook)
Cabeamento Estruturado
Cabeamento Estruturado
Cabeamento Estruturado (e-book)
Fundamentos de Telecomunicações
Fundamentos de Telecom. e Com. de Dados
Comunicação de Dados
Fundamentos de Telecom. e Com. de Dados
Telefonia básica
Telefonia básica
IPv6
IPv6: teoria e prática
Dominando o IPv6 a partir do IPv4 (e-book)
VLAN
Configuração de Roteadores e Switches
Básico
Desvendando VLANs (e-book)
Tópicos avançados em configuração Configuração de Roteadores e Switches de
Roteadores e Switches
Intermediário
Problemas em redes de Computadores Como Resolver Problemas em Redes de
Computadores
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
290
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
Redes WAN
Redes WAN
Introdução às Redes WAN (e-book)
Veja detalhes dos cursos no link http://ademarfey.wordpress.com/cursos-online/
Veja detalhes dos e-books no link http://ademarfey.wordpress.com/e-books
Entre em contato pelo e-mail cursosead.aff@gmail.com
Att.,
Prof. Ademar Felipe Fey.
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
291
INTRODUÇÃO ÀS REDES DE COMPUTADORES: MODELOS OSI E TCP/IP
APÊNDICE C – Outras obras dos autores
Cursos On-Line na área de Infraestrutura de Redes de Computadores
•
•
•
•
•
•
•
•
•
Fundamentos de Redes de Computadores
Fundamentos de Telecomunicações e Comunicação de Dados
Telefonia Básica
Cabeamento estruturado
Redes WAN
Configuração de Roteadores e Switches Básico
Configuração de Roteadores e Switches Intermediário
IPv6: teoria e prática
Como Resolver problemas de Comunicação em Redes de Computadores
E-books em na área de Infraestrutura de Redes de Computadores
•
•
•
•
•
•
•
•
Introdução às Redes de Computadores
Fundamentos de Redes de Computadores: 365 questões resolvidas e
comentadas
Introdução às Redes WAN: redes de longa distância
Como Criar Sub-redes em Redes IP
Cabeamento Estruturado: da teoria à prática
Desvendando VLANs
Dominando o IPv6 a partir do IPv4
Dominando Sub-redes no IPv4 e no IPv6
Veja detalhes dos cursos no link http://ademarfey.wordpress.com/cursos-online/
Veja detalhes dos e-books no link http://ademarfey.wordpress.com/e-books
Entre em contato pelo e-mail cursosead.aff@gmail.com
Att.,
Prof. Ademar Felipe Fey
Ademar Felipe Fey e Raul Ricardo Gauer. Direitos Reservados. 2014.
292
Download