Upload
lynhu
View
240
Download
0
Embed Size (px)
Citation preview
Introdução ao protocolo TCP/IP
Prof. Kleber Rezende
Protocolos Básicos e de Aplicações
Agenda
Conceitos Básicos
Camada Física
Endereçamento IP ClassFull
Protocolo ARP
Protocolo IP
Roteamento IP ClassFull
Interligação em Redes
Acomoda distintas tecnologias básicas e hardware.
Proporciona forma de interconectar redes heterogêneas.
Esconde detalhes de hardware.
Computadores se comunicam independentemente de suas
conexões físicas.
Interligação em Rede TCP/IP
Sistema aberto (RFC's podem ser obtidas via Internet).
Denominado oficialmente Pilha de Protocolos TCP/IP.
Pode ser usado em redes locais e/ou remotas.
Protocolos TCP/IP
Fornecem regras para a comunicação.
Define formato da mensagem
Descrevem o que um computador faz quando recebe
uma mensagem.
Especificam como um computador trata um erro.
É independente de hardware
Os protocolos estão para a comunicação assim como os
algoritmos estão para a computação.
Vantagens do uso de Protocolos
Programadores não precisam aprender ou lembrar-se de
todos os detalhes de hardware.
Programas não ficam restritos a uma arquitetura específica.
Podem promover comunicação direta entre um par de
máquinas arbitrário.
Tipos de Serviços TCP/IP
Serviço de entrega de pacotes sem conexão
Promove o roteamento de pequenas mensagens de uma máquina para outra.
Não há garantia de entrega nem de que os pacotes sejam entregues na mesma
ordem em que foram transmitidos.
É extremamente eficiente: Mapeamento direto em hardware
Serviço de transporte de streams confiáveis
Trata de problemas de perda ou falhas de comutação ao longo do caminho
percorrido por um pacote.
Em nível mais baixo as mensagens são divididas em pequenos pacotes.
Serviços de Aplicativos mais comuns
na Internet
Correio Eletrônico - Serviço sem conexão
Transferência de Arquivos - Serviço orientado à conexão
Login Remoto - Serviço orientado à conexão
Diferenças entre o TCP/IP e outras
tecnologias de rede
Independência de tecnologia de redes
Interconexão Universal
Confirmações fim-a-fim
Padrões de protocolos de aplicativos
Camada de Enlace de Dados Tipos básicos de Redes de Comunicação:
Comutação de Circuitos (Redes baseadas em conexões)
Exemplo: Sistema Telefônico
Vantagem: Capacidade fixa do circuito (64 Kbps)
Desvantagem: Custo fixo (alto) independente do tráfego
Comutação de Pacotes (Redes sem conexão)
Uso: Redes de Computadores
Vantagem: Realiza várias comunicações simultâneas
Desvantagem: Capacidade de comunicação descresce mediante aumento da
carga
Endereçamento de Rede
Todos os computadores de uma rede recebe um único
endereço inteiro.
Os pacotes possuem um campo de endereço de destino, que
aparece na mesma posição em todos os pacotes.
A tecnologia Ethernet
Criada pela Xerox em 1970 e padronizada pelo IEEE (Institute
for Eletrical and Eletronic Engineers) sob o número 802.3
Usa cabos coaxiais grosso, fino (Terminadores) e par-trançado
(HUB's)
Transceptor: Dispositivo de hardware usado para fazer a
conexão entre um computador e um cabo coaxial Ethernet.
Ethernet de Cabo Coaxial
Grosso
Ethernet de Cabo Coaxial Fino
Característica de uma Rede Ethernet
É uma tecnologia de barramento de difusão com método de
entrega sem garantia e controle de acesso distribuído.
Barramento = todas as estações compartilham o mesmo canal
Difusão = todos os tranceptores recebem cada uma das
transmissões
Entrega sem garantia = o hardware não fornece qualquer
informação sobre a entrega do pacote (Best Effort)
Controle de acesso distribuído = não possui nenhuma autoridade
central para permitir o acesso.
Esquema de acesso CSMA/CD (Carrier Sense
Multiple Access with Collision Detect)
Endereços Físicos Ethernet Possuem 48 bits
Cada computador conectado a uma Ethernet recebe um número
único.
Endereços Ethernet pertencem aos dispositivos de hardware
(endereços de hardware ou endereço físico)
Trocar uma interface hardware de um computador irá alterar o
seu endereço físico
Podem ser unicast, broadcast ou unicast.
O Formato do Quadro Ethernet
Preâmbulo: Usado para fins de sincronização.
Tamanho do Campo de Dados: Especifica o número de octetos no campo de dados de usuário.
CRC: Usado para fins de detecção de erro.
Aumentando o comprimento da
Ethernet
Repetidores: É um dispositivo de hardware que
transmite um sinal elétrico de um
cabo a outro.
Pontes: É um computador com duas ou mais
interfaces Ethernet;
"Aprende" dinamicamente quais
computadores fazem de parte de
cada um dos segmentos.
Redes FDDI
Fiber Distributed Data Interconnect
Opera em pequenas áreas geográficas e possui maior
largura de banda que a Ethernet.
Usa feixes de luz para transportar as informações.
Fibra ótica é imune a interferência eletromagnética.
É uma rede Token Ring.
É auto-reparável, pois o hardware contorna uma falha
automaticamente.
Redes FDDI
Redes ATM
Asynchronous Transfer Mode
Rede de alta velocidade, orientada à conexão.
Opera tanto em pequenas quanto em grandes áreas geo-gráficas.
É formada por um ou mais comutadores de alta velocida-de que
são conectados aos computadores hosts e a outros comutadores.
Utilizas fibras óticas para fazer as interconexões (inclusi-ve entre
o host e o comutador) que chegam a 622 Mbps.
Utilizam quadros de tamanho fixo (células)
Interligação em Redes
Diferença entre interconexão em nível de aplicativos e
interconexão em nível de rede.
Propriedades: 1. Usuários ou programas aplicativos não devem ter conhecimento dos
detalhes das interconexões de hardware;
2. Não é necessário conhecer a topologia;
3. Deve ser capaz de enviar dados através de redes intermediárias;
4. Todas as máquinas devem compartilhar um conjunto universal de
identificadores.
Arquitetura de Interligação em Redes
1. Duas redes só podem ser conectadas por um computador que esteja
ligado as duas.
2. Este computador deve cooperar com a comunicação entre duas
máquinas.
3. Os computadores que interligam duas redes e cooperam na
comunicação são chamados de gateways ou roteadores.
Interconexão através de roteadores IP
Roteadores necessitam saber sobre a topolo-gia da
interligação em redes, além das redes às quais estão
conectados.
Interconexão através de roteadores IP
Roteadores são computadores de pequeno porte. Geralmente
têm pouco ou nenhum espaço de armazenamento em disco e
pouca memória principal.
Roteadores usam redes de destino e não hosts de destino.
A visão do usuário
O usuário deve ver a interligação em redes como uma
rede única;
Além de roteadores que conecam redes físicas, o
software é necessário em cada host para que os
aplicativos usem a interligação como uma rede única.
No caso de mudança da rede física, somente o software
de interligação em redes deverá ser alterado.
A visão do usuário
O TCP/IP trata todas as redes do mesmo modo, seja
uma Ethernet ou a ANSNET.
Perguntas
Qual a forma do endereço numa inter-ligação em redes?
Como este endereço se relaciona com os endereços físicos?
O que acontece quando algum pacote chega muito rápido a
um roteador?
Como os roteadores aprendem as rotas?
Endereços de Interligação em Redes
Identificadores Universais: Para tornar universal um sistema
de comunicação deve-se aplicar um método de identificação dos
hosts que seja aceito globalmente.
Hosts são classificados por:
Nome: o que o objeto é.
Endereço: onde o objeto está.
Rota: como chegar até ele.
Endereçamento IP
Número inteiro de 32 bits
Projetado cuidadosamente para tornar o roteamento
eficiente
Hosts de uma mesma rede compartilham o mesmo prefixo
de endereço.
Cada endereço é o par (netid, hostid)
Classes de Endereços
Endereçamento IP
Endereço não identifica um host, mas sim uma conexão de rede. Ex.: Host Multi-homed possui dois ou mais endereços.
Um endereço onde o hostid igual a zero identifica uma rede.
Um endereço onde o hostid consista somente de bits 1 é reservado para broadcasting. (Difusão direcionada)
Um endereço de Difusão Limitada consiste de 32 bits 1. É usada quando um host necessita obter o seu endereço.
Endereçamento IP Um endereço com o netid igual a zero é interpretado
como “esta rede”, ou seja, a rede onde o pacote chegou.
Usado quando um host deseja se comunicar, mas não sabe o endereço da rede.
Se um host se move de uma rede para a outra, seu endereço deve ser mudado.
Hosts multi-homed podem não ser acessados, mesmo possuindo uma conexão física entre ele e os demais.
Endereçamento IP
Notação Ponto Decimal: Cada octeto é escrito como
um número decimal.
Exemplo: 10000000 00001010 00000010 00011110 é
representado por 128.10.2.30
Endereçamento IP
Endereço de Loopback (127.0.0.0): usado para comunicação na máquina local.
Resumindo
Exemplo
Exemplo
Mapeamento de Endereços Internet
para Endereços Físicos
Duas máquinas de uma determinada rede física podem
comunicar-se apenas se souberem o endereço físico uma
da outra.
Objetivo: Permitir que programas de alto nível
trabalhem somente com endereços de interligação em
redes.
Como possibilitar isso?
Mapeamento Direto
Exemplo: Rede proNET token ring Usa números inteiros pequenos para endereços físicos (até 256).
Permite que o usuário escolha um endereço de hardware para
uma máquina.
Solução de Mapeamento: Escolhe-se endereços físicos que sejam parte dos endereços IP.
Exemplo: Endereço físico = 3
Endereço IP = 192.5.48.3
Mapeamento Dinâmico Exemplo: Rede Ethernet
Problemas:
Cada interface recebe um endereço físico quando é fabricada. Assim, o
endereço físico da máquina muda quando trocamos a interface.
Endereço Ethernet tem 48 bits, enquanto o endereço IP tem, apenas,
32 bits.
Soluções:
Tabela de mapeamento.
Protocolo de Resolução de Endereços.
Address Resolution Protocol
Também conhecido
como ARP.
Fornece um meca-
nismo razoavelmen-te
eficiente e fácil de
manter.
Cache de Conversão Paradoxo: A pergunta para B, por difusão, “como posso
alcançar você?”
Entretanto, a difusão é muito cara, porque cada máquina da
rede deve processar cada pacote de difusão.
Assim, computadores que usam ARP mantém um cache com
mapeamento entre endereços físicos e endereços IP.
Cache de Conversão
Algoritmo:
1. Sempre que um computador recebe uma resposta ARP, ele
guarda em seu cache o mapeamento recebido.
2. Quando ele transmite um pacote, primeiro ele procura em seu
cache uma vinculação de endereços. Caso não encontre envia
uma solicitação ARP.
A prática mostra que, mesmo um cache pequeno é
bastante eficiente, já que a comunicação implica na
transferência de mais de um pacote.
Aprimoramentos ARP
1. Se A usar ARP para se comunicar com B, é bem provável que B
também tenha que se comunicar com A num futuro próximo.
B armazena o mapeamento em seu cache e, depois envia a resposta ARP
para A
2. Como A difunde sua solicitação inicial, todas a máquinas da rede
recebem o pacote.
Todas máquinas podem fazer um mapeamento em seus caches do
endereços físicos e IP de A.
3. Quando um computador tem sua interface substituída seu
endereço físico muda.
Esta máquina deve notificar as demais que seu endereço mudou, usando
ARP.
Implementação ARP
Algoritmo de Envio:
1. Dado um endereço IP, o software consulta seu cache para
verificar se o mapeamento existe
2. Se existir
2.1. O software retira o endereço físico
2.2. Coloca os dados num quadro contendo aquele endereço
2.3. Envia o quadro
Senão
2.4. Transmite uma mensagem de difusão ARP
2.5. Espera uma resposta
Implementação ARP Detalhes a serem cuidados:
1. Numa solicitação ARP a máquina de destino pode estar
desativada ou muito ocupada.
2. Numa rede Ethernet o pacote pode se perder.
3. Uma máquina A pode ter uma associação para máquina B, mas
o hardware de B é substituído.
Implementação ARP
Algoritmo de Recebimento:
1. Quando um pacote ARP chega, o software retira o par de
endereços (IP e físico) do transmissor.
2. Se existir uma entrada (IP) em seu cache local
2.1. Atualiza aquela entrada recarregando o endereço físico.
3. Processa o restante do pacote.
4. Se o receptor tiver o mesmo endereço IP de destino
4.1. Monta uma resposta, adicionando seu endereço físico
4.2. Envia, diretamente, ao solicitador
Senão
4.3. Ignora o pacote
Encapsulamento ARP
Transmissor designa um valor especial (080616) para o campo de tipo (no cabeçalho do quadro) para identificar uma mensagem ARP.
Formato do ARP
Valores do Campo Operação:
ARP - Solicitação (1); Resposta (2)
RARP - Solicitação (3); Resposta (4)
Protocolo IP - Introdução
Internet Protocol
Protocolo que define um mecanismo de transmissão sem conexão,
best-effort e não confiável.
Sem conexão: Cada pacote é independente dos outros.
Best-Effort: O software faz uma séria tentativa de entregar o pacote.
Não confiável: A entrega não é garantida.
Protocolo IP - Características
Define a unidade básica de transferência de dados através
da interligação em redes TCP/IP.
Especifica o formato exato de todos os dados.
Desempenha função de roteamento.
Define regras de: Como os hosts e roteadores devem processar os pacotes
Como e quando as mensagens de erro devem ser geradas
Em que condições os pacotes devem ser descartados
Protocolo IP - Formato
Formato Geral
• Formato Detalhado
Protocolo IP - Formato
VERS: Contém a versão do protocolo. Usado para assegurar que o formato do datagrama é o mesmo esperado. Versão atual é a quatro.
HLEN: Comprimento do cabeçalho medido em palavras de 32 bits. Cabeçalho típico possui 20 octetos, logo HLEN = 5.
TOTAL LENGTH: Comprimento total do datagrama. Tamanho máximo do datagrama é 216 = 65535 octetos.
TIME TO LIVE (TTL): Especifica quanto tempo o datagrama pode permanecer no sistema de interligação em redes.
PROTOCOL: Especifica qual protocolo de alto nível foi utilizado para utilizado para criar a mensagem que está sendo transportada na área de dados do datagrama.
HEADER CHECKSUM: Assegura integridade dos valores do cabeçalho. Reduz o tempo de processamento gastos pelos roteadores.
Protocolo IP - Formato
Service Type: Especifica como o datagrama deve ser
tratado. É dividido em cinco subcampos.
Precedence: Permite que os transmissores indiquem a
importância de cada datagrama. Varia de zero
(precedência normal) até sete (controle de rede)
Exemplo: Controle de congestionamento.
Bit D: Solicita um atraso (delay) baixo.
Bit T: Solicita uma vazão (throughput) alta.
Bit R: Solicita uma confiabilidade (reliable) alta.
Encapsulamento de Datagramas Que tamanho um datagrama deve ter? A princípio qualquer um, já
que são tratados por software e não por hardware.
Para tornar o transporte eficiente, é necessário que cada datagrama viaje dentro de um quadro físico distinto.
Problema: Cada rede física tem o seu próprio tamanho de quadro.
Os datagramas são encapsulados em quadro físico da rede e são tratados como uma mensagem qualquer a ser enviada de uma máquina a outra.
Fragmentação – Motivação
MTU (maximum transfer unit): Limite superior fixo no total de
dados que podem ser transferidos em quadro físico:
Exemplo: Ethernet tem MTU = 1500 octetos; FDDI tem MTU
= 4470 octetos
Soluções possíveis para o problema do tamanho do
datagrama:
Limitar os datagramas para encaixar na menor MTU possível -> Ineficaz
quando os datagramas trafegarem em redes com MTU maior.
Permitir datagramas maiores que a MTU mínima -> Datagrama nem sempre
irá se encaixar num quadro único da rede.
Fragmentação - Definição Solução usada pelo IP: Não fixar o tamanho do
datagrama. Determina-se um tamanho inicial e divide os
datagramas extensos em frações menores quando estes
atravessam uma rede com MTU pequena. Este processo
é conhecido como fragmentação.
Fragmentação - Exemplo
Cada fragmento tem o mesmo formato que o datagrama original.
Cada fragmento duplica a maior parte do cabeçalho do datagrama
original (exceto pelos campos FLAGS – que indica que ele é um
fragmento; e TOTAL LENGTH).
Remontagem dos Fragmentos
O datagrama deve ser remontado após passar em uma rede ou os fragmentos devem ser transportados até o destino final para ser remontados lá?
O TCP/IP leva os fragmentos até o destino final.
Vantagens: Cada fragmento pode ser roteado de forma independente
Não exige que roteadores intermediários armazenem ou remontem fragmentos
Desvantagens: Redes físicas com MTU grandes que se encontrem após o ponto de
fragmentação só transportarão pequenos fragmentos.
Se um fragmento qualquer for perdido, o datagrama não poderá ser remontado.
Controle de Fragmentação Os campos IDENTIFICATION, FLAGS e FRAGMENT OFFSET
controlam a fragmentação e remontagem de datagramas.
IDENTIFICATION: Contém um número inteiro que identifica o
datagrama. Todos os fragmentos de um datagrama recebem o
mesmo o número de identificação.
FRAGMENT OFFSET: Especifica o deslocamento, no datagrama
original, dos dados que estão sendo transportados no fragmento,
medido em unidades de oito octetos, iniciando em zero.
FLAGS:
1º não usado.
2º bit especifica se o datagrama pode ser fragmentado.
3º bit especifica se o fragmento é intermediário ou final.
Opções IP São incluídas, principalmente, para testes e depuração de erros na rede.
Todas opções possuem campos de código, comprimento e ponteiro.
O campo código é subdividido como mostrado a seguir:
• O campo copy é usado durante a fragmentação.
• Copy = 1 => opção deve ser copiada para todos os fragmentos.
• Copy = 0 => opção só deve ser copiada para um fragmento
Opção de Armazenamento de Rota Permite que a origem crie uma lista vazia de endereços IP
e faz com que o endereço de IP de cada roteador que processe o datagrama seja acrescentado à lista.
• Length: Especifica o comprimento total da opção
• Pointer: Especifica o deslocamento dentro da opção do próximo slot disponível.
• Campo Copy tem valor 0
Opção de Rota da Origem
Oferece uma maneira do transmissor impor um caminho
pelo qual o datagrama deve passar.
• Campo Copy tem valor 1
Roteamento de Datagramas IP Roteamento refere-se ao processo de selecionar um caminho pelo qual são
enviados pacotes.
Roteador se refere a um computador que executa tal seleção.
Qualquer computador com diversas conexões de rede pode atuar como
roteador, entretanto “hosts não devem atuar como roteadores”.
• Figura 8.1. Host deve tomar decisões de roteamento, mesmo estando
ligado a uma única rede.
Formas de Encaminhamento
Direto: É a transmissão de um datagrama, através de
uma única rede para outra máquina.
Indireto: Ocorre quando o destino não se encontra na
mesma rede que a origem. O transmissor passa o
datagrama a um roteador para que esta faça a entrega.
Como saber se o destinatário encontra-se ou não na
mesma rede?
Roteamento Orientado por Tabela O algoritmo de roteamento IP normal usa uma tabela de
roteamento em cada máquina que armazena informações sobre possíveis destinos e como acessá-las.
Que informações devem ser mantidas nestas tabelas?
Resposta: Apenas das redes que podem ser alcançadas por aquela máquina.
Roteamento do Próximo Passo
Tipicamente, uma tabela de roteamento contém pares
(N, R), onde N é o endereço IP da rede de destino e R é
o endereço IP do “próximo” roteador ao longo do
caminho até a rede N.
O roteador não conhece o caminho completo até o
destino.
Cada entrada na tabela aponta para um roteador que
pode ser acesso através de uma única rede.
(encaminhamento direto)
Exemplo