Você está na página 1de 90

Redes IP

Captulo 3 - Protocolo IP
Camada Inter-Redes - Protocolo IP
Caractersticas do Protocolo IP
O Datagrama IP
Encapsulamento de Datagramas
Tamanho do Datagrama, MTU da Rede e Fragmentao
IP verso 6 (IPng)

Neste captulo ser mostrado o funcionamento do Protocolo IP (Internet Protocol)


que o principal protocolo na camada de Inter-Rede. As caractersticas deste
protocolo assim como seu datagrama, que a sua unidade de dados tambm sero
estudados. Estes datagramas so enviados para a camada de Interface de Rede e
encapsulados como sendo um quadro fsico de rede para transmisso. Os
datagramas podem ainda sofrer um processo de fragmentao quando
transmitidos em uma rede que tenha uma unidade de transmisso menor que o
datagrama.
E, finalmente, ser mostrado algumas caractersticas da nova verso do
protocolo IP que o chamado IP verso 6 ou IP v6 ou simplesmente IPng.

Protocolo IP

Protocolo IP

Aplicao

Telnet HTTP FTP POP3 SMTP DNS

Transporte

TCP
(Transmission Control Protocol)

Bootp

UDP
(User Datagram Protocol)

IP (Internet Protocol)
Inter-Rede

ARP
Interface
de Rede

Intra-Rede

Ethernet

ICMP

RARP

Token Ring

X.25

ATM

MEIO FSICO (UTP, Coaxial, Fibra ptica, etc)

O protocolo IP um dos principais protocolos da pilha de protocolo TCP / IP. Ele


o responsvel pelo roteamento dos pacotes dentro de uma rede TCP / IP.
O protocolo IP est localizado na Camada Inter-Redes da pilha de camadas do
protocolo TCP / IP.

Protocolo IP

A Camada Inter-Redes - Protocolo IP


HOST A

HOST B
Mensagem Idntica

Aplicao

Aplicao

Pacote Idntico
Transporte

Transporte
Roteador

Inter-Rede

Inter-Rede

Datagrama
Idntico

Interface de Rede
Quadro
Idntico

Intra-Rede
Rede Fsica 1

Interface
de Rede

Datagrama
Idntico

Interface
de Rede

Inter-Rede

Interface de Rede
Quadro
Idntico

Intra-Rede
Rede Fsica 2

O IP o protocolo que oculta a rede fsica subjacente, criando uma viso virtual
da rede. um protocolo de entrega de pacotes no-confivel, de melhor esforo e
sem conexo. O IP um dos principais protocolos utilizados em interligao de
redes. O IP o responsvel por receber os pacotes da camada de transporte,
encapsular estes pacotes em um datagrama IP (que contm informaes para o
roteamento do datagrama na rede), e envi-lo para a camada de interface de rede
para transmisso na rede fsica. Na recepo, o IP recebe um quadro fsico de
rede (Frame), retira o datagrama e o entrega para a camada de transporte.
Repare que o protocolo IP a camada de interligao da rede fsica com a rede
lgica (internetworking).

Protocolo IP

Caractersticas do Protocolo IP
Define unidade bsica de transferncia de dados (datagramas)
Desempenha a funo de roteamento dos dados
Aplicao

Transporte

Pacote

Inter-Rede

Datagrama

Interface de Rede

Informaes de
Roteamento IP
no cabealho do
Datagrama

Intra-Rede
4

A unidade bsica de transferncia de um pacote de dados na rede TCP / IP


chama-se Datagrama. Ele formado por um cabealho contendo informaes
para o IP (roteamento) e dados que so relevantes apenas para os protocolos de
nvel mais alto.
Um pacote vindo da camada de transporte encapsulado em um datagrama IP,
que armazena em seu cabealho os endereos IP de origem e destino do
datagrama, e estas informaes so utilizadas para roteamento dos datagramas
pela rede, atravs dos roteadores.

Protocolo IP

Caractersticas do Protocolo IP
Define mecanismo de transmisso sem conexo
Entrega no confivel de Datagramas (pacotes)
(sem controle de erros e sem reconhecimento)

Transmisso do tipo melhor esforo (best-effort)


(os pacotes no so descartados sumariamente)
Datagramas IP

1
5 4 3 2 1

Net
5 4 2

Net

5 5 1 4 2
Net

Net

O servio de entrega de datagramas prestado pelo protocolo IP, definido,


tecnicamente, como um servio de transmisso sem conexo, com melhor
esforo e no confivel.
O servio conhecido como no confivel porque a entrega dos datagramas no
garantida. O datagrama pode ser perdido, duplicado, atrasar-se ou ser entregue
com problemas, e nem informar isso ao transmissor nem ao receptor. O IP no
se responsabilizar por estas situaes. Tratar destas situaes fica a cargo dos
protocolos de camada mais alta.
Ele denominado sem conexo porque cada datagrama independente dos
outros. Uma seqncia de datagramas enviados de um computador a outro pode
trafegar por caminhos diferentes, ou alguns podem ser perdidos enquanto outros
so entregues. Uma das razes para o uso do protocolo de rede sem conexo foi a
de minimizar a dependncia de centros de computao especficos que usavam
redes hierrquicas orientadas a conexo. A proposta do TCP / IP o
funcionamento em uma rede que ainda fosse operacional mesmo que partes desta
rede no funcionem por algum motivo.

Protocolo IP

O Datagrama IP
Formato Geral:
Cabealho do Datagrama

rea de Dados do Datagrama

Formato Detalhado:
Octeto 1
Verso

Octeto 2

HLEN

Octeto 3

Tipo de Servio

Comprimento Total

Identificao
Tempo de Vida

Octeto 4

Flags

Nmero do Protocolo

Deslocamento do Fragmento
Check-Sum do cabealho

Endereo IP de Origem
Endereo IP de Destino
Opes (opcional)

Preenchimento

DADOS
6

. . . .

A analogia entre uma rede fsica e uma interligao em redes TCP / IP grande.
Numa rede fsica, a unidade de transferncia um quadro (frame) que contm um
cabealho e dados, onde o cabealho fornece informaes como endereo fsico
(MAC) de origem e de destino. A interligao em redes denomina sua unidade
bsica de transferncia de um datagrama IP, ou simplesmente datagrama. Como
um quadro de rede fsica, o datagrama dividido em cabealho e rea de dados.
Tambm como um quadro, o cabealho de um datagrama contm os endereos de
origem e de destino e um tipo de campo que identifica o contedo do datagrama.
Naturalmente, a diferena que o cabealho do datagrama contm os endereos
IP, enquanto o quadro contm os endereos fsicos.
O comprimento mximo de um datagrama IP de 65.535 bytes (ou octetos). H
tambm uma exigncia para que todos os hosts e roteadores TCP / IP suportem
datagramas IP com at 576 bytes sem fragmentao, acima deste valor,
dependendo da rede um datagrama pode ser fragmentado em vrios pedaos.
O cabealho de um datagrama IP, tem no mnimo 20 bytes (octetos) de
comprimento e possui os seguintes campos descritos a seguir.

Protocolo IP

O Datagrama IP
Descrio dos Campos:
VERSO: verso do protocolo IP. (verso atual = 4)
HLEN: comprimento do cabealho IP expresso em valores de 32 bits (4 bytes), no
incluindo o campo de dados.
Mnimo (sem opes) : 5 (20 bytes)
Mximo (com opes): 15 (60 bytes)

Tipo de Servio: indicao da qualidade do servio requerido pelo datagrama IP


0

Precedncia

000
001
010
011
100
101
110
111

5
R

C MBZ

Rotina
Prioridade
Imediato
Flash
Anulao de Flash
Crtico
Controle (inter-redes)
Controle de Rede

Reservado para uso futuro (deve ser = 0)

D - Delay (Atraso)  0 = normal, 1 = baixo


T - Troughput (Vazo)  0 = normal, 1 = alto
R - Reliability (Confiabilidade)  0 = normal, 1 = alta
C Cost (Custo)  0 = normal, 1 = baixo

VERS: Informa a verso do protocolo IP sendo carregado. Atualmente a verso


de IP 4.
HLEN: Informa o tamanho do cabealho IP em grupos de 4 bytes (32 bits). No
inclui o campo de dados.
TIPO DE SERVIO: Informa como o pacote deve ser tratado, de acordo com
sua prioridade e o tipo de servio desejado como Baixo Retardo, Alta Capacidade
de Banda ou Alta Confiabilidade. uma indicao da qualidade de servio
requerido por este datagrama.

Protocolo IP

O Datagrama IP
Descrio dos Campos (continuao):
Comprimento Total: comprimento total do datagrama (cabealho + dados) em bytes

Identificao: nmero designado pelo remetente para ajudar no reagrupamento de um


datagrama fragmentado.

Flags: Flags de controle

0 DF MF
Mais fragmentos (0 = ltimo fragmento, 1 = no o ltimo fragmento)
No Fragmentar (0 = permitir fragmentao, 1 = no permitir fragmentao)
Reservado (deve ser = 0)
8

COMPRIMENTO TOTAL: Especifica o comprimento total do datagrama


(cabealho e dados), especificado em bytes.
IDENTIFICAO: Identifica o pacote IP unicamente entre os outros
transmitidos pela mquina. Este campo usado para identificar o pacote IP no
caso de haver fragmentao em mltiplos datagramas, onde todos os fragmentos
tero o mesmo nmero de identificao.
FLAGS (3 bits): um bit (MF - More Fragments) identifica se este datagrama o
ltimo fragmento de um pacote IP ou se existem mais. Outro bit (DNF - Do Not
Fragment) informa aos roteadores no caminho se a aplicao exige que os
pacotes no sejam fragmentados. O outro bit reservado e deve ser sempre 0
(zero).

Protocolo IP

O Datagrama IP
Descrio dos Campos (continuao):
Deslocamento do Fragmento: o nmero de partes de 64 bits (8 bytes) sem contar
o cabealho, que esto contidos em fragmentos anteriores. No primeiro ou nico 0.
Tempo de Vida (TTL): Marca o nmero de saltos entre roteadores.
Cada roteador decrementa este campo.
Se igual a 0, descarta o datagrama.
Nmero do Protocolo: indica o protocolo de nvel superior para quem o IP deve
entregar os dados do datagrama.

0
1
2
3
4
6
8
17
:

Reservado
ICMP
IGPM
GGP
IP
TCP
EGP
UDP
:

DESLOCAMENTO DO FRAGMENTO: usado com datagramas


fragmentados, para ajudar no reagrupamento completo do datagrama. O valor o
nmero de partes de 64 bits (8 bytes), onde os bytes do cabealho no so
contados, que esto contidos em fragmentos anteriores. No primeiro fragmento
ou se o datagrama no est fragmentado, este valor sempre zero.
TEMPO DE VIDA (TTL - Time To Live): Este valor decrementado a cada 1
segundo que o pacote passa na rede e a cada roteador pelo qual ele passa. Serve
para limitar a durao do pacote IP e evitar que um pacote seja roteado
eternamente na rede como resultado de um loop de roteamento. O TTL torna-se
uma medida de nmero de saltos (nmero de roteadores pelo qual o datagrama
passa) em vez de ser uma medida de tempo. Quando o valor chega a zero,
assume-se que este datagrama tenha viajado em crculos e ele ento descartado.
O valor inicial deve ser configurado pelo protocolo de nvel superior que cria o
datagrama.
NMERO DO PROTOCOLO: Indica o protocolo de nvel superior para quem
o IP deve entregar os dados contidos neste datagrama.

Protocolo IP

O Datagrama IP
Descrio dos Campos (continuao):
Check-Sum do Cabealho: uma verificao de soma s dos bytes do cabealho.
Endereo IP de Origem: endereo IP do host que envia este datagrama.
Endereo IP de destino: endereo IP do host de destino para este datagrama.
Opes: para uso do IP, o seu formato depende do valor da opo (opcional).
0

Copy Classe

Nmero da opo

Classe da opo

0
1
2
3

Nmero da opo
Controle
Reservado
Depurao (debug)
Reservado

0 = opo deve ser copiada apenas no primeiro fragmento


10

1 = opo deve ser copiada para todos os fragmentos

1
2
3
4
7
8
9
11
12
18

No operation
Security
Loose Route
Timestamp
Record Route
Stream Identifier
Strict Source Route
MTU Probe
MTU Reply
Traceroute

CHECK-SUM DO CABEALHO: Valor que ajuda a garantir a integridade do


cabealho do pacote IP. Se o check-sum do cabealho no for igual ao contedo,
o datagrama descartado porque pelo menos 1 bit no cabealho est danificado e
o datagrama pode at mesmo ter chegado no destino errado.
ENDEREO IP DE ORIGEM: Endereo IP do host de origem do datagrama
IP.
ENDEREO IP DE DESTINO: Endereo IP do host de destino do datagrama
IP.
OPES: Opes com informaes adicionais para o protocolo IP. Consiste de
um byte com a identificao da opo e uma quantidade de bytes varivel com as
informaes especficas. Um pacote IP pode transportar vrias opes
simultaneamente.
Se o valor de Copy for 0 significa que este campo de opo deve ser copiado
apenas para o primeiro fragmento do datagrama. Se for 1 significa que o campo
de opo deve ser copiado para todos os fragmentos do datagrama.
A classe pode ser: Controle de Redes e Datagramas, Reservado para uso futuro,
Medio e depurao na rede, Reservado para uso futuro
As opes podem ser: 1
No operation, 2
Security, 3
Loose Route, 4
Timestamp, 7 Recorde Route, 8 Stream Identifier, 9 Strict Source Route,
11 MTU Probe, 12 MTU Reply, 18 Traceroute

10

Protocolo IP

O Datagrama IP
Exemplo: OPO: 7 Record Route (Armazenamento de Rota)
Cada Roteador (na rota) acrescenta seu IP no campo de opes
usado para monitorar como os Datagramas so roteados na rede
0

Cdigo

16

Comprimento

24

31

Ponteiro

Endereo IP do primeiro roteador


Endereo IP do segundo roteador
....................

Cdigo = bits dos campos Copy, Classe e Num. da Opo


Comprimento = tamanho do campo de opes (mltiplo de 4 bytes)
Ponteiro = aponta para a prxima rea a ser preenchida pelo roteador
11

As opes IP so utilizadas basicamente como forma de verificao e


monitorao de uma rede IP. As opes que especificam a rota at o destino no
so utilizadas normalmente pois o IP baseado na tcnica de Next-Hop routing.
Ainda assim, estes mecanismos so pouco utilizados como ferramenta de testes e
verificao, sendo raros os programas que os implementam

11

Protocolo IP

O Datagrama IP
Exemplos: OPO: 9 Strict Source Route (Roteamento Restrito da Origem)
OPO: 3 Loose Source Route (Roteamento Flexvel da Origem)
Strict Source Route Rota exata a ser seguida pelo datagrama
Loose Source Route o datagrama deve passar pelo menos em uma das rotas
0

Cdigo

16

Comprimento

24

31

Ponteiro

Endereo IP da primeira rota


Endereo IP da segunda rota
....................
Cdigo = bits dos campos Copy, Classe e Num. da Opo
Comprimento = tamanho do campo de opes (mltiplo de 4 bytes)
Ponteiro = aponta para a prxima rea a ser preenchida pelo roteador
12

12

Protocolo IP

O Datagrama IP
Exemplo: OPO: 4 Timestamp Route (Indicao de Hora do Roteamento)
Inicialmente contm uma lista vazia de roteadores e tempos
Cada roteador acrescenta seus dados (IP e tempo)
Cada entrada na lista contm IP (32 bits) e tempo (32 bits)
0

Cdigo

16

Comprimento

24

Ponteiro

OFLOW

31

Flags

Endereo IP do primeiro roteador


Estampa de tempo do primeiro roteador
....................
Cdigo = bits dos campos Copy, Classe e Num. da Opo
Comprimento = tamanho do campo de opes (mltiplo de 4 bytes)
Ponteiro = aponta para a prxima rea a ser preenchida pelo roteador
OFLOW = contador do nmero de roteadores que no conseguiram gravar o tempo
13

Flags = controla o formato das informaes (0 = grava s o tempo, 1 = grava IP + tempo)

13

Protocolo IP

O Datagrama IP
Descrio dos Campos (continuao):

Preenchimento: se uma opo for usada, preenchido com 0s (zeros) at a


prxima palavra de 32 bits.

Dados: dados utilizados pelo datagrama para transporte a outras camadas.

14

PREENCHIMENTO: Se uma OPO for usada, o datagrama preenchido


com zeros at a prxima palavra de 32 bits.
DADOS: Os dados contidos no datagrama so passados para um protocolo de
nvel superior, especificado no campo PROTOCOLO, ou em sentido contrrio.

14

Protocolo IP

Encapsulamento de Datagramas

Aplicao

Transporte

Inter-Rede

Informaes
de Roteamento
(End. IP)

Pacote

Datagrama

Qual o tamanho ideal para


um Datagrama IP ?

Interface de Rede
Quadro (ou Frame)
Intra-Rede
Informaes
de Endereo Fsico
(End. MAC)
15

Sabemos que, medida que os datagramas se movem de uma mquina para


outra, eles precisam sempre ser transportados por uma rede fsica bsica (por ex.
Ethernet). Para tornar o transporte da interligao em redes eficiente, temos que
assegurar que cada datagrama viaje em um quadro fsico distinto. Isso significa
que desejamos que nossa abstrao de um pacote de rede fsica mapeie
diretamente para dentro de um pacote real, se possvel.
A idia de transportar um datagrama em um quadro de rede denominada
encapsulamento. Para a rede bsica, um datagrama como qualquer outra
mensagem enviada de uma mquina a outra. O hardware no reconhece o
formato do datagrama e nem entende o endereo de destino IP. Assim, conforme
mostrado, quando uma mquina envia um datagrama IP a outra, todo o datagrama
transportado na parte de dados do quadro de rede.

15

Protocolo IP

Tamanho do Datagrama, MTU da Rede e Fragmentao

Rede Fsica

Tamanho do Quadro

Ethernet
FDDI
:

1.500 octetos
4.470 octetos
:
:

Qual o tamanho ideal para um


Datagrama IP ????

MTU (Maximum Transfer Unit)


Unidade Mxima de Transferncia

16

importante considerar como os datagramas relacionam-se com os quadros de


redes fsicas. Comearemos com uma pergunta: que tamanho um datagrama
pode Ter ?. Ao contrrio dos quadros de redes fsicas que precisam ser
reconhecidos pelo hardware, os datagramas so tratados por softwares. Eles
podem Ter qualquer tamanho que os projetistas de protocolos escolherem. J
vimos que o atual formato de datagrama aloca somente 16 bits para o campo de
comprimento total, limitando o datagrama a no mximo 65.535 octetos (ou
bytes). Entretanto, esse limite poder ser mudado em verses posteriores do
protocolo.
Os limites mais importantes para o tamanho dos datagramas surgem na prtica.
Na situao ideal, todo o datagrama IP encaixa-se em um quadro fsico, tornando
a transmisso na rede fsica eficiente. Mas que tamanho de quadro deve ser
escolhido ? Um datagrama pode trafegar em muitos tipos de redes fsicas
diferentes, medida que move-se na interligao em redes para o seu destino
final.
Cada tecnologia de comutao por pacotes coloca um limite superior, fixo, para o
total de dados que podem ser transferidos em um quadro fsico. A Ethernet, por
exemplo, limita as transferncias a 1.500 octetos de dados por quadro, enquanto
que na FDDI este valor de aproximadamente 4.470 octetos.

16

Protocolo IP

Tamanho do Datagrama, MTU da Rede e Fragmentao


Rede 1
MTU=1500

Rede 2
MTU=500

R1

Rede 3
MTU=1500

R2

1200 bytes

Observaes:
A Fragmentao feita na Camada Inter-Rede pelo protocolo IP
Um Datagrama IP pode ter at 64 Kbytes (cabealho + dados)
Fragmentos so remontados somente no host de destino
17

MTU mnimo para os roteadores = 576 bytes

Assim, em vez de projetar datagramas que sigam as restries das redes fsicas, o
TCP / IP escolhe um tamanho inicial de datagrama conveniente e descobre uma
forma de dividir os datagramas extensos em fraes menores, quando o
datagrama precisar atravessar uma rede que tenha um MTU pequeno.
As pequenas fraes em que um datagrama dividido so denominadas de
fragmentos, e o processo de diviso de um datagrama conhecido como
fragmentao.
A fragmentao normalmente ocorre em um roteador situado em algum ponto ao
longo do caminho entre a origem do datagrama e seu destino final. O roteador
recebe um datagrama de uma rede com um MTU grande, e precisa envi-lo em
uma rede para a qual o MTU seja menor do que o tamanho do datagrama. Ento
o roteador fragmenta o datagrama em fragmentos de tamanho igual ao menor
MTU.

17

Protocolo IP

Fragmentao de Datagramas
4

Datagrama c/ 1200 bytes


MTU da Rede = 500 bytes

00...00

61549
20
octetos

1220
000

17

0
01F6

139.82.17.20

Deslocamento no Datagrama
original em mltiplos de
8 octetos

206.12.56.23
Abcdefghijklmnopqrstuvxz
12345678901234567890123
...... .
.......

1200
octetos

61549
8

Fragmento 2

Fragmento 1
00...00
500
001
17

0
3156

61549
8

Fragmento 3

00...00

500
001

17

60
0103

00...00

61549
8

260
000

17

120
00A9

139.82.17.20

139.82.17.20

139.82.17.20

206.12.56.23

206.12.56.23

206.12.56.23

Primeiros 480 octetos

Prximos 480 octetos

ltimos 240 octetos

18

Cada fragmento contm um cabealho de datagrama que duplica a maior parte do


cabealho do datagrama original, seguido por tantos dados quantos puderem ser
transportados no fragmento, enquanto mantm o comprimento total menor que a
MTU da rede na qual precisa trafegar.
O tamanho do fragmento escolhido de tal forma que cada fragmento possa ser
transportado na rede fsica em um quadro nico. Alm disso, j que o IP
representa o deslocamento dos dados em mltiplos de oito octetos, o tamanho do
fragmento precisa ser um mltiplo de oito.
No exemplo ilustrado um datagrama de 1.200 octetos sendo transportados por
uma rede com MTU igual a 500 octetos. O datagrama original ser fragmentado
em 3 fragmentos, onde em cada fragmento colocado no campo
DESLOCAMENTO DO FRAGMENTO do cabealho do datagrama, o valor
(mltiplo de oito) de octetos que j foram transportados em outros fragmentos
anteriores.
No host de destino, os dados tem que ser reagrupados em um datagrama. O host
emissor escolhe um nmero nico para o campo de identificao do datagrama.
Como a fragmentao no altera este campo, os fragmentos que chegam no host
receptor podem ser identificados por este campo.

18

Protocolo IP

Remontagem dos Fragmentos

Cabealho
do Frag. 1

Dados 1 (480 octetos)

Fragmento 1 (offset = 0)

Cabealho
do Frag. 2

Dados 2 (480 octetos)

Fragmento 2 (offset = 480)

Cabealho
do Frag. 3

Cabealho
do Datagrama

Dados 3 (240 octetos)

Dados 1 (480 octetos)

Fragmento 3 (offset = 960)

Dados 2 (480 octetos)

Dados 3 (240 octetos)

19

Para reagrupar os fragmentos, o host receptor reserva um buffer na memria


assim que o primeiro fragmento chegar. ento iniciada uma rotina que marca o
tempo. Quando o tempo se esgota sem que todos os fragmentos tenham chegado,
o datagrama descartado. O valor inicial deste cronmetro chamado de TTL do
datagrama IP. Quando os fragmentos subseqentes chegarem antes que o tempo
se esgote, os dados so simplesmente copiados no buffer, na localizao indicada
pelo campo de DESLOCAMENTO DO FRAGMENTO. Assim que todos os
fragmentos chegarem, o datagrama original completo restaurado.
A fragmentao e o reagrupamento so realizados na camada de interface de rede
de maneira transparente ao protocolo IP.

19

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Mudanas introduzidas na nova verso do IP:

Endereos Maiores: 128 bits (16 octetos).

Endereamento Hierrquico: baseado em prefixos em vez de classes.

Formato Flexvel de Cabealho: formato de datagrama inteiramente novo


e incompatvel com o IP v4.

20

A verso 4 do Internet Protocol (IP v4) fornece o mecanismo bsico de


comunicao da pilha TCP / IP e da Internet. Essa verso permaneceu quase
inalterada desde o seu incio no final da dcada de 70. A longevidade do IP v4
mostra que o projeto flexvel e poderoso. Desde quando foi projetado, o
desempenho do processador mais de dez vezes, os tamanhos tpicos de memria
aumentaram 32 vezes, a largura de banda da rede do backbone da Internet
cresceu 800 vezes, tecnologias de rede local afloraram e o nmero de hosts na
Internet cresceu de apenas algumas centenas para 4 milhes. Alm disso, as
mudanas no ocorreram simultaneamente; o IP conciliou mudanas em uma
tecnologia, diante das mudanas em outras.
Apesar de seu projeto slido, o IP v4 deve ser logo substitudo. A principal
motivao para a atualizao do IP o esgotamento iminente do espao de
endereo. Embora a necessidade de um espao maior de endereo esteja forando
uma mudana imediata no IP, outros fatores esto tambm contribuindo para o
projeto. Por exemplo, como udio e vdeo em tempo real precisam de limites
garantidos em retardo de transmisso, uma nova verso do IP deve fornecer um
mecanismo que torne possvel associar um datagrama a uma reserva de recursos
atribuda previamente. Alm disso, j que muitos dos novos aplicativos da
internet requerem comunicaes seguras, uma nova verso do IP dever incluir
recursos que tornem possvel validar o transmissor.

20

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Mudanas introduzidas na nova verso do IP:
Opes Aprimoradas: novas opes que oferecem recursos adicionais
no disponveis no IP v4.

Suporte para Alocaes de Recursos: permite pr-alocao de recursos


de rede (vdeo em tempo real, etc).

Proviso para Extenso: adaptao do protocolo a mudanas no


hardware de rede ou a novos aplicativos.

21

Esta nova verso do IP o IP verso 6 (IP v6 ou IPng Next Generation). Esta


nova verso mantm muitas das caractersticas que contriburam para o sucesso
do IP v4.O IP v6 possui as mesmas caractersticas do IP v4, com algumas
modificaes. Por exemplo, o IP v6 permite que o transmissor escolha o tamanho
do datagrama e especifique o nmero mximo de passos da rota que um
datagrama pode fazer antes de ser concludo, usa endereos maiores (128 bits) e
acrescenta algumas caractersticas novas de endereamento, revisa
completamente o formato do datagrama, simplificando o cabealho de tamanho
varivel do IP v4 por uma srie de cabealhos de formato fixo e muitas outras
melhorias.

21

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Formato Geral de um Datagrama IP v6:
Opcional
Cabealho
Bsico

Cabealho de
Extenso 1

.......

Cabealho de
Extenso N

Dados

Formato do Cabealho Bsico do IP v6:


Octeto 1
Classe
Trfego

Octeto 2

VERS

Tamanho do Contedo

Octeto 3

Octeto 4

Rtulo de Fluxo
Prximo Cabealho

Limite de Saltos
no roteamento

Endereo de Origem

Endereo de Destino

22

Dados
.....

Um datagrama IP v6 tem um cabealho bsico de tamanho fixo seguido de


nenhum ou mais cabealhos de extenso seguidos de dados.
Embora deva acomodar endereos maiores, um cabealho IP v6 contm menos
informaes do que um cabealho de datagrama IP v4. As opes e alguns
campos fixos foram removidos no cabealho IP v6. Em geral, as mudanas no
cabealho de datagrama refletem mudanas no protocolo:
O alinhamento foi mudado de mltiplos de 32 bits para mltiplos de 64 bits.
O campo de comprimento do cabealho foi eliminado e o campo de
comprimento de datagrama foi substitudo por um campo COMPRIMENTO DO
PAYLOAD.
O tamanho dos campos de endereo de origem e de destino foi aumentado para
16 octetos (128 bits) cada.
As informaes de fragmentao foram retiradas de campos fixos do cabealho
bsico, para um cabealho de expanso.
O campo TEMPO DE VIDA foi substitudo por um campo LIMITE DE
PASSOS DE ROTA.

22

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Cabealhos de Extenso no IP v6:
VERS

Classe
Trfego

Rtulo de Fluxo

Tamanho do Contedo

Prx Cabealho: 43

Limite de Saltos
no roteamento

Endereo de Origem
Endereo de Destino
Prximo Cabealho: 51

Tamanho Cabealho

Informaes de Roteamento
Prximo Cabealho: 6

Tamanho Cabealho

Dados de Autenticao
Cabealho TCP
Dados do Segmento TCP

23

O paradigma de um cabealho fixo, seguido de um conjunto de cabealhos de


extenso opcionais, foi escolhido como uma acomodao entre a generalidade e a
eficincia. Para ser totalmente geral, o IP v6 precisa incluir mecanismos a fim de
aceitar funes como fragmentao, roteamento de origem e autenticao.
Entretanto, a opo por alocar campos fixos no cabealho do datagrama para
todos os mecanismos no eficaz, porque a maioria dos datagramas no utilizam
todos os mecanismos. No IP v6 um transmissor pode optar por escolher quais
cabealhos de extenso incluir em determinado datagrama e quais omitir. Assim,
os cabealhos de extenso fornecem flexibilidade mxima ao IP v6.

23

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Endereos no IP v6:
1

10

11

12

13

14

15

16

Notaes:
Binrio: impraticvel ( 128 bits )
Decimal com ponto: 104 . 230 . 140 . 33 . 87 . 255 . 255 . 34 . 0 . 17 . 0 . 0 . 123 . 255 . 255 . 255
Hexadecimal com dois pontos: 6675 : 9C8A : FFFF : FFFF : 0 : 1180 : FFFF : 196A

24

No IP v6, cada endereo ocupa 16 octetos, quatro vezes o tamanho de um


endereo IP v4. difcil compreender o tamanho do espao de endereo do IP
v6. Um modo de examin-lo consiste em relacionar a magnitude ao tamanho da
populao do planeta, ou seja, cada pessoa pode ter endereos suficientes para ter
sua prpria interligao em redes to grande quanto a Internet atual.
Embora solucione os problemas de capacidade insuficiente, o tamanho grande do
endereo IP v6 cria um novo problema. A notao usada para representar esse
nmero de 16 octetos (128 bits). A notao binria seria impraticvel (128 bits).
A notao decimal com ponto seriam 16 nmeros separados por pontos. Uma
maneira mais compacta proposta foi a notao hexadecimal de dois pontos, ou
seja, seriam 8 nmeros hexadecimais (de 4 dgitos) separados por dois pontos ( :
). Esta parece ser a maneira ideal de representao do endereo no IP v6.

24

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Hierarquia de Endereo no IP v6 (proposta de diviso):

25

Prefixo Binrio

Tipo de Endereo

0000 0000
0000 0001
0000 001
0000 010
0000 011
0000 100
0000 101
0000 110
0000 111
0001
001
010
011
100
101
110
1110
1111 0
1111 10
1111 110
1111 1110
1111 1111

Compatibilidade com IP v4
Reservado
Endereos NSAP
Endereos IPX
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
Provedores de acesso
Reservado
Geogrfico
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
Disponvel para uso local
Usado para Multicast

Espao do Endereamento
0.39 %
0.39 %
0.78 %
0.78 %
0.78 %
0.78 %
0.78 %
0.78 %
0.78 %
6.25 %
12.5 %
12.5 %
12.5 %
12.5 %
12.5 %
12.5 %
6.25 %
3.12 %
1.56 %
0.78 %
0.39 %
0.39 %

Como ilustrado, os projetistas do IP v6 propem a atribuio de classes de


endereo de modo semelhante ao esquema usado para IP v4. Embora os oito
primeiros bits de um endereo sejam suficientes para identificar seu tipo, o
espao de endereo no partilhado em sees de igual tamanho.
O espao de endereos no IP v6 fica ento organizado usando-se prefixos de
formato, semelhante aos cdigos de telefone de pases e reas, que logicamente
divide-o na forma de uma rvore a fim de que a rota de uma rede para outra possa
ser facilmente encontrada.
A forma de codificar um endereo de IP v4 em um endereo de IP v6 no
soluciona o problema de tornar as duas verses interoperacionais. Alm da
codificao do endereo, a converso de datagramas necessria quando um
computador IP v6 gerar um datagrama para o endereo de destino de um
computador ainda com IP v4. Ser necessrio que o computador IP v6 envie o
datagrama para um conversor que usa o IP v4 para se comunicar com o destino.
Quando o conversor recebe uma resposta do destino, converte o datagrama do IP
v4 para IP v6 e o devolve origem.

25

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Hierarquia de Endereo no IP v6 (proposta de diviso):

Prefixo de tipo de endereo

010
010

ID
ID
IDdo
do
IDdo
do
Provedor
Provedor Assinante
Assinante

ID
IDda
da
Sub-rede
Sub-rede

ID
IDdo
doN
N

Prefixo do Provedor
Prefixo do Assinante

Prefixo da Sub-rede

26

Um exemplo, ir ajudar a esclarecer como os projetistas imaginam o uso de


endereos IP v6. A hierarquia de endereo do IP v6 para um endereo atribudo
por um provedor de acesso rede. A autoridade da Internet (IANA) atribui a cada
provedor uma nica ID, o provedor atribui a cada assinante uma nica ID e o
assinante atribui uma ID a cada sub-rede e cada n (host).

26

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Transio do IPv4 para o IPv6
Os mecanismos de transio podem ser classificados nas seguintes categorias:

Pilha dupla  que prov o suporte a ambos os protocolos no mesmo dispositivo;


Tunelamento  que permite o trafego de pacotes IPv6 sobre estruturas de rede IPv4;
Traduo  que permite a comunicao entre ns com suporte apenas a IPv6 com ns
que suportam apenas IPv4.

27

Com o intuito de facilitar o processo de transio entre as duas verses do


Protocolo Internet (IP), algumas tcnicas foram desenvolvidas para que toda a
base das redes instaladas sobre IPv4 mantenha-se compatvel com o protocolo
IPv6, sendo que nesse primeiro momento de co-existncia entre os dois
protocolos, essa compatibilidade torna-se essencial para o sucesso da transio
para o IPv6.
Como o perodo de co-existncia entre os dois protocolos pode durar
indefinidamente, a implementao de mtodos que possibilitem a
interoperabilidade entre o IPv4 e o IPv6, poder garantir uma migrao segura
para o novo protocolo, atravs da realizao de testes que permitam conhecer as
opes que estes mecanismos oferecem, alm de evitar, no futuro, o surgimento
de ilhas isoladas de comunicao.

27

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Transio do IPv4 para o IPv6

Pilha dupla
Permite que hosts e roteadores estejam
equipados com pilhas para ambos os protocolos,
tendo a capacidade de enviar e receber os dois
pacotes, IPv4 e IPv6.
Um n pilha dupla, ou n IPv6/IPv4, na
comunicao com um n IPv6, se comportar
como um n apenas IPv6, e na comunicao
com um n IPv4, se comportar como um n
apenas IPv4.

28

Pilha dupla
Nesta fase inicial de implementao do IPv6, ainda no aconselhvel ter ns
com suporte apenas a esta verso do protocolo IP, visto que muitos servios e
dispositivos de rede ainda trabalham somente sobre IPv4. Deste modo, uma
possibilidade a de se introduzir o mtodo conhecido como pilha dupla.
A utilizao deste mtodo permite que hosts e roteadores estejam equipados com
pilhas para ambos os protocolos, tendo a capacidade de enviar e receber os dois
pacotes, IPv4 e IPv6. Com isso, um n pilha dupla, ou n IPv6/IPv4, na
comunicao com um n IPv6, se comportar como um n apenas IPv6, e na
comunicao com um n IPv4, se comportar como um n apenas IPv4.
Cada n IPv6/IPv4 configurado com ambos endereos, utilizando mecanismos
IPv4 (ex. DHCP) para adquirir seu endereo IPv4, e mecanismos do protocolo
IPv6 (ex. auto-configurao e/ou DHCPv6) para adquirir seu endereo IPv6.
Este mtodo de transio pode facilitar o gerenciamento da implantao do IPv6,
por permitir que este seja feito de forma gradual, configurando pequenas sees
do ambiente de rede de cada vez. Alm disso, caso no futuro o IPv4 no seja mais
usado, basta simplesmente desabilitar a pilha IPv4 de cada n.

28

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Transio do IPv4 para o IPv6

Tunelamento
Permite transmitir pacotes IPv6 atravs da infra-estrutura IPv4 j existente, sem
a necessidade de realizar qualquer mudana nos mecanismos de roteamento,
encapsulando o contedo do pacote IPv6 em um pacote IPv4.

Tem sido a tcnica mais utilizada na fase inicial de implantao do IPv6, por ser
facilmente aplicada em teste, onde h redes no estruturadas para oferecer
trafego IPv6 nativo.

29

A tcnica de criao de tneis, ou tunelamento, permite transmitir pacotes IPv6


atravs da infra-estrutura IPv4 j existente, sem a necessidade de realizar
qualquer mudana nos mecanismos de roteamento, encapsulando o contedo do
pacote IPv6 em um pacote IPv4.
Essa tcnica, tratada na RFC 4213, tm sido a mais utilizada na fase inicial de
implantao do IPv6, por ser facilmente aplicada em teste, onde h redes no
estruturadas para oferecer trafego IPv6 nativo.

29

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Transio do IPv4 para o IPv6

Tunelamento (continuao)
Os tneis podem ser configurados nos seguintes modos:
Roteador-a-Roteador roteadores IPv6/IPv4, conectados via rede IPv4, podem
trocar pacotes IPv6 entre si, ligando um segmento no caminho entre dois hosts;

30

30

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Transio do IPv4 para o IPv6

Tunelamento (continuao)
Os tneis podem ser configurados nos seguintes modos:
Host-a-Roteador - hosts IPv6/IPv4 enviam pacotes IPv6 a um roteador
IPv6/IPv4 intermedirio via rede IPv4, ligando o primeiro segmento no caminho
entre dois hosts;

31

31

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Transio do IPv4 para o IPv6

Tunelamento (continuao)
Os tneis podem ser configurados nos seguintes modos:
Roteador-a-Host - roteadores IPv6/IPv4 enviam pacotes IPv6 ao destino final
IPv6/IPv4, ligando o ltimo segmento do caminho entre dois hosts;

32

32

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Transio do IPv4 para o IPv6

Tunelamento (continuao)
Os tneis podem ser configurados nos seguintes modos:
Host-a-Host - hosts IPv6/IPv4, conectados via rede IPv4, trocam pacotes IPv6
entre si, ligando todo o caminho entre os dois hosts.

33

33

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Transio do IPv4 para o IPv6

Tunelamento (continuao)
Encapsulamento dos Pacotes  O n de entrada do tnel, cria um cabealho IPv4 com o
pacote IPv6 encapsulado e o transmite atravs da rede IPv4. O n de sada recebe o pacote
encapsulado, retira o cabealho IPv4 e processa o pacote IPv6 recebido.

Este processo de
encapsulamento, conhecido
como 6in4, identificado como
protocolo do tipo 41 e sua
utilizao comum em
algumas tcnicas de
tunelamento, como 6to4,
ISATAP e Tunnel Broker.
34

34

Protocolo IP

IP verso 6 - IPv6 (IPng - IP Next Generation)


Transio do IPv4 para o IPv6

Traduo
Possibilitam um roteamento transparente na comunicao entre ns que
apresentem suporte apenas a uma verso do protocolo IP, ou utilizem pilha dupla.
Podem atuar de diversas formas e em camadas distintas, traduzindo cabealhos
IPv4 em cabealhos IPv6 e vice-versa, realizando converses de endereos, de
APIs de programao, ou atuando na troca de trafego TCP ou UDP.
Os principais mecanismos de traduo utilizados so:

35

SIIT (Stateless IP/ICMP Translation Algorithm)


NAT-PT (Network Address Translation with Protocol Translation)
NAPT-PT (Network Address Port Translation and Packet Translation)
BIS (Bump in the Stack)
BIA (Bump in the API)
TRT (Transport Relay Translator)
SOCKS64 (Socks-Based IPv6/IPv4 Gateway)
ALG (Application Layer Gateway)

35

Captulo 4 Protocolo ICMP


Formato das Mensagens ICMP

Tipos de Mensagens ICMP


Solicitao de Eco / Resposta de Eco
Destino Inatingvel
Tempo Esgotado (time-out)
Source Quench
Redirecionamento

36

36

Protocolo ICMP

Protocolo ICMP
Aplicao

Telnet HTTP FTP POP3 SMTP DNS

Transporte

TCP
(Transmission Control Protocol)

Bootp

UDP
(User Datagram Protocol)

IP (Internet Protocol)
Inter-Rede

ARP
Interface
de Rede

Intra-Rede

Ethernet

ICMP

RARP

Token Ring

X.25

ATM

MEIO FSICO (UTP, Coaxial, Fibra ptica, etc)

37

O ICMP (Internet Control Message Protocol), um protocolo que faz parte da


camada Inter-Rede na pilha de protocolos TCP / IP. usado para permitir que os
roteadores de uma interligao inter-redes informem os erros ou forneam
informaes sobre ocorrncias inesperadas. considerado uma parte necessria
do IP e deve ser includo em cada implementao de IP.

37

Protocolo ICMP

Protocolo ICMP
Mecanismo de envio de Mensagens para fins especficos
Permite que os hosts enviem mensagens de erro ou de controle aos outros
hosts da rede.
As mensagens ICMP possuem um identificador principal de tipo (TYPE) e um
identificador de sub-tipo (CODE)
As mensagens ICMP so encapsuladas em Datagramas IP
Definido pela RFC 792

38

Assim como ocorre com o restante do trfego, as mensagens ICMP trafegam pela
interligao em redes na parte de dados dos datagramas IP. Entretanto, o destino
final de uma mensagem ICMP no um programa aplicativo ou do usurio na
mquina de destino, mas sim o software IP daquela mquina. Ou seja, quando
chega uma mensagem de erro ICMP, o mdulo do software ICMP trata dela.
Naturalmente, se o ICMP determinar que determinado protocolo de alto nvel ou
um programa de aplicativo causou o problema, informar ao mdulo apropriado.
Quando um roteador ou host de destino precisa informar o host de origem sobre
os erros no processamento de um datagrama, ele usa o ICMP.

38

Protocolo ICMP

Formato das Mensagens ICMP


Octeto 1

Octeto 2

Tipo

Octeto 3

Cdigo

Octeto 4
Check-Sum

Num. Sequncia

Identificador
Mensagem ICMP

Encapsulamento das Mensagens ICMP


Cabealho
ICMP
Cabealho
IP
Cabealho
do Quadro

rea de Dados ICMP

rea de Dados IP

rea de Dados do Quadro


Nmero do Protocolo = 1 (ICMP)

39

Tipo de Servio = 0 0 0 (Rotina)

As mensagens ICMP precisam de dois nveis de encapsulamento. Cada


mensagem ICMP trafega pela interligao em redes na parte dos dados de um
datagrama IP que, por sua vez, trafega por cada rede fsica na parte dos dados de
um quadro. Datagramas que transportam mensagens ICMP so roteados
exatamente como os que levam informaes aos usurios; no h nenhuma
confiabilidade ou prioridade adicional. Portanto, as prprias mensagens de erro
podem ficar perdidas ou descartadas. Alm disso, numa rede j congestionada a
mensagem de erro pode causar mais congestionamento.
importante lembrar que, embora mensagens ICMP sejam encapsuladas e
enviadas usando IP, o ICMP no considerado um protocolo de alta prioridade.
O motivo de usar IP para conduzir mensagens ICMP que elas precisam trafegar
por vrias redes fsicas para alcanar seu destino final. Portanto, no podem ser
entregues somente atravs do transporte fsico.

39

Protocolo ICMP

Tipos de Mensagens ICMP


Tipo

Cdigo

Mensagem

Categoria
Controle
Erro

Controle
Controle

Controle
Erro

40

Erro
Controle
Controle
Controle
Controle

Embora cada mensagem ICMP tenha seu prprio formato, todas comeam com
os mesmos trs campos:
TIPO: o tipo de mensagem, com oito bits, que identifica a mensagem ICMP.
CDIGO: Com oito bits, que fornece informaes adicionais sobre o tipo de
mensagem.
CHECK-SUM: a soma de verificao, com 16 bits, que faz a somatria em
todos os bytes de mensagem ICMP.
Alm disso, as mensagens ICMP que tratam de erros sempre incluem o cabealho
e os primeiros 64 bits (8 bytes) de dados do datagrama que causou o problema. A
razo para retornar mais do que apenas o cabealho do datagrama permitir que
o receptor determine com maior preciso qual(is) protocolo(s) e qual programa
de aplicao foram responsveis pelo datagrama. Como veremos mais adiante, os
protocolos de alto nvel na seqncia TCP / IP so projetados para que essa
informao crucial esteja codificada nos primeiros 64 bits (8 bytes).

40

Protocolo ICMP

ICMP: Echo Request e Echo Reply


Utilizada pelo comando ping
utilizada pata fins de testes de conectividade entre dois hosts

IP 0|0

IP 8|0

ping 10.0.0.3

10.0.0.1

Octeto 1

TIPO = 8 ou 0

10.0.0.3

10.0.0.2

Octeto 2

Octeto 3

CDIGO = 0

Octeto 4

CHECK-SUM

IDENTIFICADOR

NMERO DE SEQUNCIA
DADOS

41

.......

Echo Request e Echo Reply


Utilizada pelo comando ping, a mensagem Echo Request enviada para um host
causa o retorno de uma mensagem Echo Reply. utilizada principalmente para
fins de testes de conectividade entre as duas mquinas.
O ping usa as mensagens de echo request e eco reply para determinar se um host
est ao alcance. Ele envia um ou mais datagramas IP para um host de destino
especfico solicitando uma resposta e mede o tempo da viagem de ida e volta.
Tradicionalmente, se voc pudesse pingar um host, outros aplicativos tais como
o Telnet ou o FTP tambm poderiam alcanar aquele host. Com o advento das
medidas de segurana na Internet, especialmente os firewalls, que controlam o
acesso s redes pelo protocolo de aplicao e/ou nmero da porta, isto no mais
necessariamente verdade. Entretanto, o primeiro teste de alcance para um host
ainda o ping.

41

Protocolo ICMP

ICMP: Echo Request e Echo Reply

192.168.70.1

R1
192.168.70.9

R2
200.200.200.1

192.168.70.8

192.168.70.5

200.200.200.8
ping 127.0.0.1

IP - Loopback

ping 192.168.70.1

IP - Loopback

ping 192.168.70.5

Comunicao dentro da rede

ping 192.168.70.9

Comunicao com o Gateway Default

ping 200.200.200.1

Comunicao com Gateway Remoto

ping 200.200.200.8

Comunicao com o host destino

42

Caso voc venha a ter problemas de comunicao, todas as pilhas TCP/IP,


independente de qual sistema operacional, trazem o utilitrio ping para testar a
conectividade entre dois hosts TCP/IP. Siga o seguinte procedimento:
.ping 127.0.0.1. Este endereo IP um loopback, ou seja, no vai para a rede,
fica no computador que originou a mensagem. Se o ping acusar o recebimento da
resposta, significa que a pilha TCP/IP est instalada e ativa no computador onde
foi realizado o teste.
ping no seu endereo IP. Tem o mesmo efeito do anterior (ping 127.0.0.1). Ver
tabela de rotas da mquina.
ping endereo IP de outro host na rede local. Agora vamos testar a
comunicao dentro da rede local onde o computador de origem est localizado.
Garanta que o computador dono do ip_na_minha_rede est com o TCP/IP e a sua
placa de rede ativos, segundo os dois testes acima. Se no funcionar, voc tem
um problema de cabos ou em uma placa de rede, ou simplesmente as suas
mscaras de rede e endereos IP esto incorretos.

42

Protocolo ICMP

ICMP: Echo Request e Echo Reply


Uso do Comando PING

43

.ping no endereo do Gateway default. Se a comunicao dentro da minha


rede local est OK, temos que verificar se o default gateway da minha rede est
no ar, pois todos os pacotes que saem da minha rede local passam por ele.
.ping no endereo IP do Gateway remoto. Digamos que o meu default
gateway esteja diretamente conectado na rede destino. Eu tenho que testar se a
interface de rede que liga o default gateway a esta rede est no ar. Ento eu dou
um ping no endereo IP desta placa. Se o default gateway no estiver diretamente
conectado na rede destino, eu repito os passos (4) e (5) para cada equipamento
que esteja no caminho entre origem e destino.
.ping no endereo IP do host destino. Sabendo que a outra rede pode ser
alcanada via TCP/IP, resta saber se eu consigo me comunicar com o computador
desejado.

43

Protocolo ICMP

ICMP: Destination Unreachable (Destino Inatingvel)


Enviado quando um roteador no consegue entregar um datagrama IP ( o campo de cdigo fornece
o motivo)
0 : Network Unreachable - Rede destino inalcanvel
1 : Host Unreachable (ou falha no roteamento) - Mquina destino inalcanvel
2 : Protocol Unreachable - Protocolo destino desativado ou aplicao inexistente
3 : Port Unreachable - Porta destino sem aplicao associada
4 : Fragmentation Needed and DNF set - Fragmentao necessria mas bit DNF setado. Alterado pela RFC 1191 para
suportar o Path MTU Discovery
5 : Source Route Failed - Roteamento por rota especificada em opo IP falhou

Ex: Host Unreachable

No tem rota
para o destino

IP 8|0

IP 3|1

10.0.0.3

ping 50.0.0.3

10.0.0.1

10.0.0.2
Octeto 1

Octeto 2

TIPO = 3

Octeto 3

CDIGO = 1
0

44

Para permitir origem identificar o


Processo (porta) associado
comunicao

Octeto 4

CHECK-SUM
0

Cabealho IP + 64 bits do Datagrama


.........

No exemplo mostrado, vemos o envio de uma mensagem ping (ICMP Echo


Request) de um host da rede 10.0.0.0 para um host em outra rede (50.0.0.0) . A
mensagem enviada ao roteador (roteamento indireto) e ele verifica que a rota de
destino para a mensagem no existe em sua tabela de rotas, ento o roteador
envia uma mensagem de erro ICMP para o host cliente que enviou a mensagem
com o tipo de mensagem igual a 3 (Destino Inatingvel) e o cdigo igual a 1
(Host Inatingvel). O host cliente ao receber esta mensagem ICMP, na camada
inter-rede pelo software ICMP deve tratar esta mensagem de erro e o aplicativo
do usurio informar que o destino no est disponvel.

44

Protocolo ICMP

ICMP: Destination Unreacheable (Destino Inatingvel)


0 : Network Unreachable - Rede destino inalcanvel
1 : Host Unreachable (ou falha no roteamento) - Mquina destino inalcanvel
2 : Protocol Unreachable - Protocolo destino desativado ou aplicao inexistente
3 : Port Unreachable - Porta destino sem aplicao associada
4 : Fragmentation Needed and DNF set - Fragmentao necessria mas bit DNF setado. Alterado pela RFC 1191 para
suportar o Path MTU Discovery
5 : Source Route Failed - Roteamento por rota especificada em opo IP falhou

Ex: Fragmentation Needed and DF set

MTU = 1500
MTU = 1000

IP 8|0

IP 3|4

10.0.0.3
10.0.0.1

50.0.0.1

50.0.0.2

10.0.0.2

ping 50.0.0.2 - l 1200 -f


Octeto 1

Octeto 2

TIPO = 3

Octeto 3

CDIGO = 4
0

Octeto 4

CHECK-SUM
MTU DA REDE = 1000

Cabealho IP + 64 bits do Datagrama

45

.........

O sub-tipo Fragmentation Needed and DNF set utilizado como forma de um


host descobrir o menor MTU nas redes que sero percorridas entre a origem e o
destino. Por meio desta mensagem, possvel enviar pacotes que no precisaro
ser fragmentados, aumentando a eficincia da rede. Esta tcnica, que forma um
protocolo denominado de ICMP MTU Discovery Protocol, definido na RFC
1191.
A operao simples. Todo pacote IP enviado marcado com o bit DNF (Do
Not Fragment), que impede sua fragmentao nos roteadores. Desta forma, se
uma pacote IP, ao passar por um roteador para chegar a outra rede com MTU
menor, deva ser fragmentado, o protocolo IP no ir permitir e enviar uma
mensagem ICMP Destination Unreacheable para o destino. Para suportar esta
tcnica, a mensagem ICMP foi alterada para informar o MTU da rede que causou
o ICMP. Desta forma, a mquina origem saber qual o valor de MTU que causou
a necessidade de fragmentao, podendo reduzir o MTU de acordo, nos prximos
pacotes.

45

Protocolo ICMP

ICMP: Time Exceeded (Tempo Esgotado)


IP origem=200.231.10.1
IP destino=210.112.1.8

IP 8|0

Tabela de Rotas
mal configurada

R2

R4

R1

210.112.1.8

200.232.10.1

R3
IP

11|0

TTL = 0
Tempo Excedido

Octeto 1

Octeto 2

Octeto 3

Octeto 4

CDIGOS:
TIPO = 11
= 0  TTL reduzido a 0

46

= 1  tempo esgotado na espera


por fragmentos

CDIGO = 0
0

CHECK-SUM
0

Cabealho IP + 64 bits do Datagrama


.........

Neste exemplo, vemos uma situao onde uma mensagem foi enviada de um host
origem para um host destino e por problemas na tabela de roteamento de um dos
roteadores da interligao em redes, este provocou um loop na mensagem e,
naturalmente o TTL foi sendo decrementado a cada roteador at chegar em zero
(R3). Este roteador ento envia uma mensagem de erro ICMP com tipo=11 ao
host origem . Isto significa que a mensagem passou pelo limite de roteadores
possveis na rede, e por isso foi descartada.

46

Protocolo ICMP

ICMP: Source Quench


Tcnica de controle de congestionamento
Host experimentando congestionamento envia uma mensagem para a origem pedindo
que a fonte pare de transmitir.
Roteadores usam source quench ICMP para parar ou reduzir a transmisso de
datagramas IP.
R4

R2

R1

210.112.1.8

200.232.10.1

R3
Buffer Cheio !!
Descartou datagrama
do host de origem 200.232.10.1

IP 4|0

Octeto 1

Octeto 2

TIPO = 4

Octeto 3

CDIGO = 0
0

Octeto 4

CHECK-SUM
0

Cabealho IP + 64 bits do Datagrama

47

.........

Esta mensagem utilizada por um roteador para informar origem, que foi
obrigado a descartar o pacote devido a incapacidade de rote-lo devido ao
trfego.
Este tipo de mensagem usada como tcnica de controle de congestionamento
atravs da qual uma mquina experimentando congestionamento envia uma
mensagem de volta para a origem dos pacotes pedindo que a fonte pare de
transmitir. Em uma rede TCP/IP, os roteadores usam source quench ICMP para
parar ou reduzir a transmisso de datagramas IP.

47

Protocolo ICMP

ICMP: Redirect (Redirecionamento)


Usada por um roteador para pedir mudana de rota num host da mesma rede
No serve para propagao de rotas entre roteadores
Informaes do cabealho IP permitem ao host identificar o destino da rota
O host, aps receber o ICMP redirect, instalar uma rota especfica para o host destino
139.82.16.33

139.82.17.22
139.82.16.1
139.82.17.1

139.82.18.44
139.92.18.1
139.92.17.2

IP

IP origem: 139.82.17.22
IP destino: 139.82.19.55

IP 5|1

IP roteador: 139.82.17. 1

1
139.82.16.2
139.82.19.1

139.82.19.55

3
Aps receber o ICMP Redirect o host
139.82.17.22 adiciona a seguinte rota
em sua tabela de rotas:

48

Rede Dest. Mscara


Gateway
139.82.19.55 255.255.255.255 139.82.17.1

Octeto 1

TIPO = 5

Octeto 2

Octeto 3

CDIGO = 0 a 3

Octeto 4

CHECK-SUM

ENDEREO IP DO ROTEADOR
Cabealho IP + 64 bits do Datagrama
.........

Esta mensagem, utilizada por um roteador para informar ao host origem que
existe uma rota direta mais adequada atravs de outro roteador. O host, aps
receber a mensagem ICMP, instalar uma rota especfica para aquele host
destino.
A operao do ICMP Redirect ocorre conforme a figura apresentada. Note que a
rota instalada uma rota especfica para host, com mscara 255.255.255.255, no
servindo para outras mquinas na mesma rede. Se uma mquina se comunica
com 10 mquinas em outra rede e se basear em ICMP Redirect para aprender as
rotas, ele instalar pelo menos 10 entradas na tabela de rede, uma para cada
mquina

48

Protocolo ICMP

ICMP
Para prevenir exploses de mensagens ICMP (broadcast storms), mensagens
ICMP no so geradas em resposta a:
outras mensagens de erro ICMP
datagrama IP destinado a endereos de broadcast
datagrama enviado dentro de quadro broadcast
fragmentos que no o inicial de um pacote
datagrama cujo endereo de origem no identifica um host nico (0,
loopback, broadcast ou multicast)

49

Algumas observaes devem ser levadas em considerao com relao as


mensagens de ICMP de erro. Nas descries acima esto algumas condies onde
uma mensagem ICMP de erro no gerada como resposta, para evitar um
broadcast storm na rede (exploso de mensagens).

49

Captulo 5 - Protocolo TCP


O Protocolo TCP
Conceito de Portas e Sockets
Conexo entre Processos TCP
Confiabilidade e Janela Deslizante
Formato do Segmento
Reconhecimento e Retransmisses
Conexo e Desconexo
50

Controle de Congestionamento

Os captulos anteriores exploram o servio de transmisso de pacotes sem


conexo, no-confivel, que forma a base para toda a comunicao de
interligao em redes e o protocolo IP que a define. Este captulo apresenta o
segundo servio conhecido e mais importante, em nvel de rede, a transmisso de
fluxo (stream) de dados confivel e o TCP (Transmission Control Protocol) que o
define.
Veremos que o TCP acrescenta uma funcionalidade substancial aos protocolos j
abordados, mas que sua implementao tambm substancialmente mais
complexa.

50

Protocolo TCP

O Protocolo TCP
Aplicao

Telnet HTTP FTP POP3 SMTP DNS

Transporte

TCP
(Transmission Control Protocol)

Bootp

UDP
(User Datagram Protocol)

IP (Internet Protocol)
Inter-Rede

ARP
Interface
de Rede

Intra-Rede

Ethernet

ICMP

RARP

Token Ring

X.25

ATM

MEIO FSICO (UTP, Coaxial, Fibra ptica, etc)

51

O TCP (Transmission Control Protocol) um protocolo da camada de Transporte


na pilha de protocolo TCP / IP.
O TCP fornece muito mais possibilidades para os aplicativos do que o UDP,
principalmente recuperao de erros, controle de fluxo e confiabilidade. O TCP
um protocolo orientado para a conexo, ao contrrio do UDP que sem conexo.
A maioria dos protocolos de aplicativo de usurio, como o Telnet e o FTP
utilizam o TCP como transporte de dados.
O propsito inicial do TCP fornecer um circuito lgico ou servio de conexo
confivel entre pares de processos. Como o TCP no conta com a confiabilidade
dos protocolos de nveis inferiores (como o IP), ele deve garantir isto por si
mesmo.

51

Protocolo TCP

O Protocolo TCP
Caractersticas Principais:
Confiabilidade na transferncia dos dados entre processos
Orientado para a conexo
Controle de fluxo e recuperao de erros.
Funes Oferecidas aos Aplicativos:
Transferncia em fluxo (stream) de dados
Confiabilidade
Controle de fluxo
Multiplexao de processos
Conexes lgicas
Transferncia full-duplex
52

O TCP pode ser caracterizado pelas seguintes possibilidades que oferece aos
aplicativos que fazem uso dele:
Transferncia em fluxo (stream) de dados: do ponto de vista do aplicativo, o
TCP transfere pela rede um fluxo contnuo de bytes.
Confiabilidade: O TCP designa um nmero seqencial para cada pacote
transmitido e espera um reconhecimento positivo (ACK) do TCP receptor. Se o
ACK no for recebido dentro de um prazo estabelecido, os dados so
retransmitidos.
Controle de fluxo: Ao devolver um ACK para o remetente, o TCP receptor
tambm indica ao remetente o nmero de bytes adicionais que ele pode receber
alm do ltimo segmento TCP recebido, sem causar sobrecarga e estourar os
buffers internos.
Multiplexao: alcanado atravs do uso de portas, assim como acontece
com o UDP.

52

Protocolo TCP

Conceito de Portas e Sockets


Oferece uma maneira nica de identificar as conexes.
Identifica os programas e os hosts que esto envolvidos, independente
dos processos executados em cada host.
PORTAS: nmero de 16 bits, usado pelo protocolo host a host para identificar
para qual protocolo de nvel superior ou aplicaes deve entregar as mensagens.

Bem Conhecidas: portas que pertencem a servidores padro (entre 1 e 1023).


Exemplos:

FTP
HTTP
POP3
SMTP
Telnet
Bootp
.....

20 e 21
80
110
25
23
67 e 68

So designadas e controladas
pela IANA

Efmeras: usadas pelos clientes (entre 1024 e 65535)


53

O conceito de portas e sockets oferece uma maneira uniforme e nica de


identificar as conexes e os programas e hosts que esto nela conectados,
independente das identificaes de processos especficas de cada aplicao.
Estes conceitos so necessrios para determinar exatamente que processo local
em um determinado host se comunica de fato com cada processo em cada host
remoto e usando qual protocolo.
Portas: cada processo que queira comunicar-se com outro processo identifica-se
para o conjunto de protocolos TCP/IP utilizando uma ou mais portas. Uma porta
um nmero de 16 bits, usado pelo protocolo host a host para identificar para
qual protocolo de nvel superior ou programas de aplicativos deve entregar as
mensagens que chegarem. H dois tipos de portas:
Bem Conhecidas: pertencem a servidores padro. So controladas e designadas
pela IANA. O motivo da existncia das portas bem conhecidas permitir que
clientes possam encontrar os servidores sem informao de configurao. O
nmero de portas bem conhecidas tem valores entre 1 e 1023.

53

Protocolo TCP

Conceito de Portas e Sockets


SOCKETS: uma interface para os programas aplicativos acessarem os
protocolos de comunicao.
Um endereo de Socket composto pelo trio:
{ protocolo, endereo-local, porta-local } EX: { tcp, 192.168.10.56, 1278 }
Uma associao o quinteto que especifica completamente os dois processos
que abrangem uma conexo:
{ protocolo, endereo-local, porta-local, endereo-remoto, porta-remoto }
EX: { tcp, 192.168.10.76, 1539, 200.134.50.18, 80 }

54

A interface socket uma de vrias APIs (Application Programming Interfaces Interface de Programao de Aplicativos) para os protocolos de comunicao, e
foi planejada para ser uma interface de programao genrica.
Um socket pode tambm ser definido como um tipo especial de handle de
arquivo, que usado por um processo para solicitar servios de rede do sistema
operacional.
Um endereo de socket composto pelo trio:
{ protocolo, endereo-local, porta-local }
E uma associao o quinteto que identifica os dois processos que esto na
conexo:
{ protocolo, endereo-local, porta-local, endereo-remoto, porta-remoto }

54

Protocolo TCP

Conexo entre Processos TCP

Processo 1

Porta Origem
e
IP Origem

Porta Destino
e
IP Destino

Processo 2

SOCKET

Porta A

Porta B . . . . . .
TCP

Porta n

Conexo TCP
confivel

Porta X

..

. . . Porta Y

Porta Z

TCP

Datagramas IP
no-confiveis
IP

IP

55

A comunicao entre dois processos de aplicativos no TCP feito atravs de uma


conexo chamada IPC (Interprocess Comunication Comunicao entre
processos), que utiliza o mesmo conceito de portas utilizado pelo UDP e define
um novo conceito o de sockets (soquetes).
A interface soquete (socket) uma das vrias APIs (Interfaces de Programao
de Aplicativos) para os protocolos de comunicao. Dois processos se
comunicam via soquetes TCP. O modelo soquete fornece a um processo uma
conexo full-duplex de fluxo de bytes (ou octetos) com outro processo. O
aplicativo no precisa se preocupar com o gerenciamento deste fluxo; ele
fornecido pelo TCP.
O TCP usa portas efmeras e bem conhecidas. Cada lado de uma conexo TCP
tem um soquete que pode ser identificado pelo trio <TCP, endereo IP, nmero
da porta>. Se dois processos esto se comunicando pelo TCP, eles tm uma
conexo lgica que identificada de maneira nica pelos dois soquetes
envolvidos, ou seja pela combinao <TCP, endereo IP local, porta local,
endereo IP remoto, porta remota>. Os processos de servidores so capazes de
gerenciar vrias conversaes atravs de uma nica porta.

55

Protocolo TCP

Confiabilidade da Transmisso
Host
Transmissor

Host
Receptor

Envia Pacote 1
Recebe Pacote 1

RTT

Envia ACK 1
Recebe ACK 1
Envia Pacote 2
Recebe Pacote 2
Envia ACK 2
Recebe ACK 2
Tempo ocioso da rede
(desperdcio de banda)

56

RTT - round trip time  o tempo total de transmisso de ida e volta em uma determinada conexo.
Como este valor muda com o tempo, devido a mudanas de rotas e padres de trfego, o TCP deve
monitorar estas mudanas e atualizar este valor apropriadamente.

Um servio de transmisso de stream (fluxo) de dados confivel deve garantir a


entrega de um stream enviado de uma mquina a outra, sem duplicao ou
perdas.
Podemos ficar com a seguinte dvida: como um protocolo pode oferecer uma
transferncia confivel se o sistemas bsico de comunicao proporciona apenas
transmisso de pacotes no-confivel ?. A resposta explicada pela tcnica
conhecida como confirmao positiva com retransmisso. A tcnica exige que
o receptor comunique-se com a origem, retornando uma mensagem de
confirmao (ACK), medida que recebe os dados. O transmissor mantm um
registro de cada pacote que envia e espera uma confirmao antes de enviar o
prximo pacote. O transmissor tambm inicia um temporizador quando envia o
pacote, e retransmite o pacote se esse temporizador se completar antes que
chegue uma confirmao.

56

Protocolo TCP

Confiabilidade da Transmisso
Host
Transmissor

Host
Receptor

Pacote perdido

Envia Pacote 1
Inicia o Timer
Pacote deveria chegar
ACK deveria ser enviado

RTO
O ACK chegaria
nesta hora
O Timer termina

Tempo ocioso da rede para


retransmisso de 1pacote

Retransmite o Pacote 1
Inicia o Timer

Recebe Pacote 1
Envia ACK 1
Recebe ACK 1
Cancela o Timer
RTO retransmission time-out time-out de retransmisso.
57

Como o RTT muda com o tempo, devido a mudanas de rotas e padres de trfego, o TCP deve
monitorar estas mudanas e modificar o tempo de timeout apropriadamente.

A figura mostra o mesmo diagrama de formato anterior, para mostrar o que


acontece quando um pacote perdido ou destrudo. O transmissor inicia um
temporizador aps a transmisso de um pacote. Quando o temporizador termina,
o transmissor considera o pacote perdido e o retransmite. Este fato conhecido
como Time-out de transmisso.

57

Protocolo TCP

Confiabilidade da Transmisso
Problemas com a abordagem do RTO para Retransmisso:
O clculo do RTO no consegue se adaptar a flutuaes muito altas no RTT,
causando retransmisses desnecessrias.
Timeout pequeno  gera retransmisses desnecessrias aumentando ainda mais a
carga na rede, quando ela j est sobrecarregada
Timeout grande  faz com que haja tempo longo de espera para retransmisso,
subtilizando a rede.

Soluo: clculo mais preciso do RTO baseado no desvio padro do RTT


(proposto por Van Jacobson)

58

58

Protocolo TCP

Janela Deslizante
Janela = 5
Pacotes

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

Emissor
Envia Pacote 1
Envia Pacote 2
Envia Pacote 3
Envia Pacote 4
Envia Pacote 5
Recebe ACK 1
Envia Pacote 6
Recebe ACK 2
Envia Pacote 7

Receptor

ACK 1
ACK 2

ACK 3

1 2 3 4 5 6 7 8
Recebe ACK 3
Envia Pacote 8

1 2 3 4 5 6 7 8

59

Um protocolo simples de transporte pode usar o princpio visto anteriormente,


onde, enviar um pacote e a seguir esperar um reconhecimento do receptor antes
de enviar o prximo. Se o ACK no for recebido dentro de um determinado
tempo, o pacote retransmitido.
Ao mesmo tempo que este mecanismo assegura a confiabilidade, ele usa apenas
parte da largura de banda disponvel na rede e a rede pode ficar completamente
inativa durante o tempo em que a mquina retarda as respostas. Ou seja, um
protocolo simples, de confirmao positiva, gasta uma substancial quantidade de
largura de banda, porque precisa retardar a transmisso de um novo pacote, at
que receba uma confirmao do pacote anterior.
A tcnica da janela deslizante uma forma mais complexa de confirmao
positiva e de retransmisso do que o mtodo simples abordado anteriormente. Os
protocolos de janela deslizantes utilizam melhor a largura de banda da rede,
porque permitem que o transmissor transmita pacotes mltiplos antes de esperar
uma confirmao.

59

Protocolo TCP

Janela Deslizante
Uso de Delay-ack:
Janela = 5
1 2 3 4 5 6 7 8 9 10

1 2 3 4 5 6 7 8 9 10

Emissor
Envia Pacote 1
Envia Pacote 2
Envia Pacote 3
Envia Pacote 4
Envia Pacote 5

Recebe ACK 5
Envia Pacote 6
Envia Pacote 7
Envia Pacote 8
Envia Pacote 9
Envia Pacote 10

Receptor
Timer = nn
Timer = nn
Timer = nn
Timer = nn
Timer = nn
Timer = time-out
ACK 5

Timer = nn
Timer = nn
Timer = nn
Timer = nn
Timer = nn
Timer = time-out
ACK 10

Recebe ACK 10
60

O desempenho dos protocolos de janela deslizante depende do tamanho da janela


e da velocidade com que a rede aceita novos pacotes. Com um tamanho de janela
igual a um, um protocolo de janela deslizante exatamente o mesmo que o
protocolo simples de confirmao positiva. Aumentando-se o tamanho da janela,
possvel eliminar completamente o tempo de inatividade da rede. Portanto,
quando um protocolo de janela deslizante apropriado mantm a rede
completamente saturada de pacotes, ele obtm um troughput substancialmente
maior que um protocolo de confirmao positiva simples.

60

Protocolo TCP

Janela Deslizante
Perda de Pacote (ex: pacote 2):
Janela = 5
1 2 3 4 5 6 7 8 9 10

1 2 3 4 5 6 7 8 9 10
Significa que o receptor no
recebeu o pacote 2 ( ltimo
na seqncia foi o pacote 1,
ento reenvia o pacote 2

Emissor
Envia Pacote 1
Envia Pacote 2
Envia Pacote 3
Envia Pacote 4
Envia Pacote 5
Recebe ACK 1
Envia Pacote 6
Recebe ACK 1
Envia Pacote 2

Timer = nn
Timer = time-out
ACK 1
Rec 3 (falta o 2)
ACK 1
Timer = nn
Timer = nn
Timer = nn
Timer = time-out
ACK 6

Recebe ACK 6
Envia Pacote 7
Envia Pacote 8
Envia Pacote 9
Envia Pacote10

1 2 3 4 5 6 7 8 9 10
61

Receptor

Timer = nn
Timer = nn
Timer = nn
Timer = nn
Timer = time-out
ACK 10

Recebe ACK 10

Neste exemplo (mostrado na figura) temos uma situao onde o pacote 2


transmitido mas ele no chega ao destino. Portanto o emissor no receber o
ACK 2, assim a sua janela permanecer na posio 1. A verdade, como o
receptor no recebeu o pacote 2, ele reconhecer os pacotes 3,4 e 5 e enviar um
ACK 1 para confirmao, indicando que o pacote 1 foi o ltimo pacote recebido
na seqncia. No lado do emissor, se esgotar eventualmente o tempo definido
para a chegada do ACK 2 que ser ento retransmitido. Veja que a recepo deste
pacote pelo receptor gerar o ACK 5, j que agora recebeu com sucesso todos os
pacotes de 1 a 5, e a janela do emissor deslizar quatro posies ao receber o
ACK 5, e ir continuar a transmitir os pacotes.

61

Protocolo TCP

Janela Deslizante
Perda do ACK (ex; ACK 2):
Janela = 5
1 2 3 4 5 6 7 8 9 10

Emissor
Envia Pacote 1
Envia Pacote 2
Envia Pacote 3
Envia Pacote 4
Envia Pacote 5

Receptor
Timer = nn
Timer = nn
Timer = time-out
ACK 2
Timer = nn
Timer = time-out
ACK 4

1 2 3 4 5 6 7 8 9 10

Recebe ACK 4
Envia Pacote 6
Envia Pacote 7
Envia Pacote 8
Envia Pacote 9

Timer = nn
Timer = nn
Timer = nn
Timer = nn
Timer = nn
Timer = time-out
ACK 9

Recebe ACK 9

62

Neste outro exemplo iremos analisar a situao onde o pacote 2 chega ao destino,
porm a confirmao deste pacote (ACK 2) no chega. Portanto, o emissor no
recebe o ACK 2, mas receber o ACK 4. O ACK 4 um aviso de recebimento de
todos os pacotes at o 4 (incluindo o pacote 2) e o remetente pode agora deslizar
a sua janela para o pacote 4.

62

Protocolo TCP

Janela Deslizante
O mecanismo de Janela Deslizante assegura:

Transmisso confivel dos dados;

Melhor utilizao da largura de banda da rede (melhor throughput);

Controle de fluxo de dados.

63

Vimos ento que este mecanismo de janela deslizante assegura:


Transmisso confivel dos dados
Melhor utilizao da largura de banda da rede (melhor troughput)
Controle de fluxo, j que o receptor pode demorar para responder a um pacote
com um reconhecimento, e tem conhecimento sobre seus buffers livres
disponveis e sobre o tamanho da janela de comunicao.

63

Protocolo TCP

Janela Deslizante no TCP


O TCP utiliza o conceito de janela deslizante com algumas diferenas:
TCP utiliza fluxo de bytes => so designados nmeros seqenciais para cada
byte no stream
O tamanho da janela => determinada pelo receptor na conexo e pode variar
durante a transferncia de dados
Janela (em bytes)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

bytes

At A - bytes transmitidos que foram reconhecidos


de A at B - bytes enviados mas que ainda no foram reconhecidos
de B at C - bytes que podem ser enviados sem esperar por nenhum reconhecimento
Aps C - bytes que ainda no podem ser enviados
64

O mecanismo de janela deslizante no TCP opera em nvel de bytes (octetos), e


no de pacotes ou segmentos. Os bytes do stream (fluxo) de dados so numerados
seqencialmente, e o transmissor mantm trs ponteiros associados a cada
conexo. Os ponteiros definem uma janela deslizante, conforme a figura ilustra.
Todos os bytes esquerda do ponteiro A j foram enviados e confirmados. Do
ponteiro A at o B os bytes foram enviados mas ainda no foram confirmados.
Do ponteiro B at o C os bytes que podem ser enviados antes que mais
confirmaes sejam recebidas. E aps o ponteiro C os bytes que no podem ser
enviados at que a janela se mova.
O TCP utiliza um tamanho de janela varivel controlado pelo receptor . A
vantagem de utilizar uma janela de tamanho varivel que ela fornece o controle
de fluxo e uma transferncia confivel. Se os buffers do receptor comeam a ficar
cheios, a janela no poder suportar mais pacotes e, ento, enviar um notificador
de janela menor. Em casos extremos, o receptor indica um tamanho zero de
janela para interromper todas as transmisses. Mais tarde, quando o espao dos
buffers tornar-se disponvel, o receptor indicar um tamanho de janela diferente
de zero para iniciar o fluxo de dados novamente.

64

Protocolo TCP

Formato do Segmento TCP


Octeto 1

Octeto 2

Octeto 3

Porta de Origem

Octeto 4

Porta de Destino
Nmero de Seqncia

Nmero de Reconhecimento
HLEN

Reservado

Bits de Cdigo

Check-Sum

Tamanho da Janela
Ponteiro Urgente

Opes (se houver)

Preenchimento

DADOS
......
65

A unidade de transferncia entre o software TCP de duas mquinas denominado


segmento. Os segmentos so trocados para estabelecer conexes, transferir
dados, enviar confirmaes, informar tamanhos de janelas e encerrar conexes. O
TCP utiliza o chamado piggyback, que quando uma confirmao que trafega da
mquina A para a mquina B pode trafegar no mesmo segmento que os dados
que trafegam da mquina A para a mquina B, embora a confirmao refira-se
aos dados enviados de B para A.
Cada segmento TCP dividido em duas partes: um cabealho seguido de dados.
O cabealho, conhecido como cabealho TCP, transporta a identificao esperada
e as informaes de controle. Alguns segmentos transportam apenas uma
confirmao, enquanto alguns transportam dados, outros transportam solicitaes
para estabelecer ou encerrar uma conexo.

65

Protocolo TCP

Formato do Segmento TCP


Porta de Origem: nmero de 16 bits da porta de origem
Porta de Destino: nmero de 16 bits da porta de destino
Nmero de Seqncia: o nmero seqencial do primeiro byte de dados neste
segmento
Nmero de Reconhecimento: se o bit de controle ACK estiver definido, este
campo contm o valor do prximo nmero seqencial que o receptor est
esperando receber
HLEN: nmero de palavras de 32 bits no cabealho TCP
Reservado: seis bits reservados para uso futuro; devem ser 0
66

PORTA DE ORIGEM: Porta origem da mensagem


PORTA DE DESTINO: Porta destino da mensagem
NMERO DE SEQENCIA: nmero de seqncia dos dados sendo
transmitidos face ao conjunto total de dados j transmitidos. Este nmero
indica a posio do primeiro byte de dados sendo transmitido em relao
ao total de bytes j transmitidos nesta conexo. O primeiro nmero de
seqncia utilizado no zero ou um, mas comea de um valor aleatrio.
Logo se um pacote est transmitindo do 1234o. byte at o 2000o. byte de
uma conexo e o NMERO DE SEQNCIA inicial utilizado nesta
conexo foi 10000, o campo NMERO DE SEQNCIA conter o valor
11234. O nmero de seqncia em um sentido da conexo (mquina A
para B) diferente do nmero de seqncia do sentido inverso, j que os
dados transmitidos por um e outro lado so completamente distintos.

66

Protocolo TCP

Formato do Segmento TCP

Bits de Cdigo:
URG ACK PSH RST SYN

FIN
No h mais dados do emissor
Sincroniza os nmeros de seqncia
Reinicializa a conexo
Funo descarregar
Indica que o campo de reconhecimento significativo
neste segmento
Indica que o campo do ponteiro urgente significativo
neste segmento

67

BITS DE CDIGO: So formados por seis bits, URG, ACK, PSH, RST,
SYN e FIN, cuja utilizao mostrada abaixo:
URG: bit de Urgncia: significa que o segmento sendo carregado contm
dados urgentes que devem ser lidos com prioridade pela aplicao. A
aplicao origem responsvel por acionar este bit e fornecer o valor do
PONTEIRO URGENTE que indica o fim dos dados urgentes. Um
exemplo da utilizao desta facilidade o aborto de uma conexo (por
exemplo por Control-C), que faz com que a aplicao destino examine
logo o pacote at o fim da rea de urgncia, descubra que houve um
Control-C e termine a conexo.
ACK: bit de Reconhecimento: indica que o valor do campo de
reconhecimento est carregando um reconhecimento vlido.
PSH: bit de PUSH: Este mecanismo que pode ser acionado pela aplicao
informa ao TCP origem e destino que a aplicao solicita a transmisso
rpida dos dados enviados, mesmo que ela contenha um nmero baixo de
bytes, no preenchendo o tamanho mnimo do buffer de transmisso.

67

Protocolo TCP

Formato do Segmento TCP


Janela: usada em segmentos ACK. Especifica o nmero de bytes de dados
comeando com aquele indicado no campo de nmero de reconhecimento
que o receptor quer aceitar
Check-Sum: soma de verificao do segmento TCP (cabealho + pseudocabealho + dados). O pseudo-cabealho o mesmo usado pelo UDP.

Pseudo-cabealho TCP
Endereo IP de Origem
Endereo IP de Destino
00000000

Protocolo
TCP = 6

Serve para
verificar se a
mensagem TCP
atingiu o
destino
No enviado
para o IP

Comprimento TCP

68

JANELA: Este campo informa o tamanho disponvel em bytes na janela de


recepo da origem deste pacote. Por meio deste valor, o TCP pode realizar um
controle adequando de fluxo para evitar a sobrecarga do receptor. Quando este
valor igual a zero, o transmissor no envia dados, esperando receber um pacote
com JANELA maior que zero. O transmissor sempre vai tentar transmitir a
quantidade de dados disponveis na janela de recepo sem aguardar um ACK.
Enquanto no for recebido um reconhecimento dos dados transmitidos e o
correspondente valor de JANELA > 0, o transmissor no enviar dados.
CHECK-SUM: Soma de todas as palavras de 16 bits em um pseudo-cabealho,
mais o cabealho TCP e os dados TCP. Enquanto estiver calculando o CHECKSUM, o prprio campo de CHECK-SUM considerado zero. O pseudocabealho o mesmo utilizado pelo UDP para calcular o CHECK-SUM. usado
apenas para o clculo do CHECK-SUM.

68

Protocolo TCP

Formato do Segmento TCP


Ponteiro Urgente: aponta para o primeiro octeto de dados depois dos dados
urgentes.
Opes: opes podem ser:
Opo
Opo
0
1
2
3
4
5
8

Comprimento
Comprimento
4
3
2
x
10

Dados Opcionais
Significado
final da lista de opes
nenhuma operao
tamanho mximo do segmento
escala da janela
reconhecimento seletivo permitido
reconhecimento seletivo
estampas de tempo

Preenchimento: todos os bytes zero para preencher o cabealho TCP


em mltiplos de 32 bits
69

PONTEIRO URGENTE: Aponta para o primeiro octeto de dados depois dos


dados urgentes. S faz sentido quando o bit de controle URG estiver em definido.
OPES: O campo de opes s possui uma nica opo vlida que a
negociao do MSS (Maximum Segment Size) que o TCP pode transmitir. O
MSS calculado atravs do MTU ou atravs do protocolo ICMP Path MTU
Discovery. Nem todos os segmentos enviados atravs de uma conexo tero o
mesmo tamanho. No entanto, as duas extremidades precisam concordar sobre o
segmento mximo que iro transferir. Se os dois pontos terminais residirem na
mesma rede fsica, o TCP normalmente calcula um tamanho mximo de
segmento tal que os datagramas IP resultantes sero de acordo com o MTU da
rede. Se os pontos terminais no residirem na mesma rede fsica, eles podem
tentar descobrir o MTU mnimo ao longo do caminho entre eles, ou optar por um
tamanho mximo de segmento de 536 octetos (o tamanho padro de um
datagrama IP, 576 menos o tamanho padro de dados IP e cabealho TCP).
PREENCHIMENTO: Todos os bytes zero usados para preencher o cabealho
TCP para que o comprimento total seja um mltiplo de 32 bits.

69

Protocolo TCP

Reconhecimento e Retransmisses TCP


Janela
1500 bytes
EMISSOR
Segmento 1
(seq=1000)
Segmento 2
(seq=1500)
Segmento 3
(seq=2000)
Recebe ACK 1500
Desliza a Janela
Segmento 4
(seq=2500)
Janela cheia
Espera ACK
Recebe ACK 1500
No desliza a Jan.
Retransmite
Segmento 2
(seq=1500)

Segmento
500 bytes
RECEPTOR

Recebe 1000
Envia ACK 1500

Recebe 2000
Envia ACK 1500

70

O TCP envia dados em segmentos de comprimento varivel. Os nmeros


seqenciais so baseados na contagem de bytes. Os reconhecimentos especificam
o nmero seqencial do prximo byte que o receptor espera receber.
Considere que um segmento se perde ou seja danificado. Neste caso, o receptor
continuar a reconhecer todos os prximos segmentos bem recebidos indicando o
primeiro byte do pacote perdido. O emissor ir parar de transmitir quando tiver
enviado todos os bytes da janela. Eventualmente, um tempo esgotado ir ocorrer
e o segmento perdido ser retransmitido. (princpio da janela deslizante).
A figura ilustra um exemplo onde o tamanho de uma janela de 1.500 bytes e
segmentos de 500 bytes so utilizados.
Podemos observar que ir surgir um problema, j que o emissor sabe que o
segmento 2 est perdido ou danificado, mas no sabe nada sobre os segmentos 3
e 4. O emissor deveria pelo menos retransmitir o segmento 2, mas poderia
tambm retransmitir os segmentos 3 e 4, j que esto na mesma janela. possvel
que:

70

Protocolo TCP

Estabelecendo uma Conexo TCP


Handshake de trs vias para conexo:
Processo 1
(cliente)

OPEN ativa
Envia SYN, seq=n

Processo 2
(servidor)
OPEN passiva (espera
por solicitao ativa)
Recebe SYN
Envia SYN, seq=m, ACK n+1

Recebe SYN+ACK
Envia ACK m+1
Recebe ACK
CONEXO ESTABELECIDA

71

Antes que qualquer dado possa ser transferido, uma conexo tem que ser
estabelecida entre os dois processos. Um dos processos (geralmente o servidor)
emite uma chamada OPEN PASSIVA e permanece dormente at que outro
processo tente se conectar atravs de uma chamada OPEN ATIVA. Aps isto o
TCP est pronto para estabelecer uma conexo utilizando um handshake de trs
vias. O primeiro segmento de um handshake pode ser identificado porque ele
possui um conjunto de bits SYN no campo de cdigo. A Segunda mensagem
possui ambos os conjunto de bits SYN e ACK, indicando que confirma o
primeiro segmento SYN e continua o handshake. A mensagem final de
handshake apenas uma confirmao e utilizada simplesmente para informar
ao destino que ambos os lados concordam em que uma conexo foi estabelecida.
Quando a conexo tiver sido estabelecida, os dados podem fluir igualmente bem
nas duas direes. No h mestre ou escravo.
O handshake de trs vias necessrio e suficiente para a sincronizao correta
entre as duas extremidades da conexo. Lembre-se que o TCP cria uma
transmisso com base no servio de transmisso no-confivel de pacotes,
podendo as mensagens ser perdidas, retardadas, duplicadas, ou entregues fora de
ordem.

71

Protocolo TCP

Encerrando uma Conexo TCP


Handshake de trs vias para desconexo:
Processo 1
(cliente)

Processo 2
(servidor)

(Aplicativo encerra conexo)


Envia FIN, seq=x
Recebe FIN
Envia ACK x+1
Recebe ACK
(cliente desconectado)
(Aplicativo encerra conexo)
Envia FIN, seq=y, ACK x+1
Recebe FIN + ACK
Envia ACK y+1

72

Recebe ACK
(servidor desconectado)

O encerramento da conexo TCP feito implicitamente pelo envio de um


segmento TCP com o conjunto de bits FIN (fim de dados). Como a conexo
full-duplex, o segmento FIN fecha apenas a transferncia dos dados em uma
direo. O outro processo enviar os dados remanescentes que ainda tem para
transmitir e tambm finalizar com um segmento TCP com bit FIN configurado.
A conexo encerrada j que o fluxo de dados est fechado em ambas as
direes.
A diferena entre os handshakes de trs vias usados para estabelecer e encerrar
conexes ocorre depois que uma mquina recebe um segmento FIN inicial. Em
vez de gerar um segundo segmento FIN imediatamente, o TCP envia uma
confirmao e, a seguir, informa ao aplicativo sobre a solicitao a ser encerrada.
Finalmente, quando o programa aplicativo instrui o TCP para encerrar a conexo,
o TCP envia o segundo segmento FIN e o transmissor responde com uma terceira
mensagem, um ACK.

72

Protocolo TCP

Fases de uma Comunicao TCP


HOST A

HOST B
SYN

Estabelecimento
de Conexo

SYN+ACK
ACK
Dados

Transmisso
de Dados

ACK

Recepo
de Dados

Dados

Transmisso
com confirmao
Piggback

ACK
Dados
ACK+Dados
ACK
FIN

Encerramento
de Conexo

ACK
FIN
ACK

73

Podemos notar que uma transmisso TCP formada por trs fases:
Estabelecimento de Conexo
Transmisso / Recepo de Dados (inclusive Piggyback envio de confirmao
e dados no mesmo segmento)
Encerramento da conexo

73

Protocolo TCP

Controle de Fluxo no TCP


Windows size 4028

len 1024
len 1024
len 1024

Para modificar o
tamanho da
janela

len 1024

win4096
win4096
win4096
win4096

ack 4097
len 1024
len 1024

win2048

win4096
win4096
ack 6145

len 1024
74

len 1024

Esto
enviando
mensagens
muito rpido

win2048

win4096
win4096

No protocolo TCP o tamanho da Janela pode ser usado como controle de fluxo de
dados.

74

Protocolo TCP

Controle de Congestionamento TCP


Congestionamento: a situao na qual existe uma quantidade de pacotes a serem
transmitidos maior do que a rede capaz de transmitir.
Quando h congestionamento existe um aumento no retardo e acontece perda de
pacotes
As retransmisses devido s perdas, produz um aumento no trfego, podendo levar
a rede a um colapso.
Ao detectar o congestionamento, o TCP reduz sua taxa de transmisso, utilizando
os algoritmos de controle de congestionamento:
Slow Start (ncio Lento)
Congestion Avoidance (Congestionamento Evitado)
Fast Recovery (Recuperao Rpida)
Fast Retransmit (Retransmisso Rpida)

75

Referncia:
RFC2001, TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms

Uma grande diferena entre os protocolos TCP e UDP o algoritmo de controle


de congestionamento. O algoritmo de congestionamento TCP evita que um
emissor ultrapasse a capacidade da rede. O TCP pode adaptar o ritmo do
remetente capacidade da rede, podendo tambm tentar evitar as situaes de
congestionamento potencial. As implementaes modernas do TCP contm
quatro algoritmos como padres bsicos da internet:
Slow Start
Congestion Avoidance
Fast Recovery
Fast Retransmit

75

Protocolo TCP

Controle de Congestionamento TCP


Mecanismo de Controle: Slow Start (Incio Lento)
Emissor

Receptor

Crescimento do nmero de
segmentos exponencial

76

Em algum ponto, a capacidade limite da rede alcanada, e pacotes comeam a ser descartados
O controle de fluxo muda de Slow Start para Congestion Avoidance

Incio Lento:
Implementaes antigas do TCP iniciavam uma conexo com o emissor
injetando vrios segmentos na rede, at o tamanho da janela anunciado pelo
receptor. Isto funciona bem quando os dois hosts esto na mesma rede local mas,
se houver roteadores e enlaces mais lentos entre o emissor e o receptor, podem
surgir problemas. Alguns roteadores intermedirios podem no dar conta disto,
resultando em pacotes perdidos, necessidade de retransmisso e desempenho
degradado.
O algoritmo para evitar isto chamado de Incio Lento. Ele opera com base ma
observao do ritmo em que os reconhecimentos so devolvidos pela outra ponta.

76

Protocolo TCP

Controle de Congestionamento TCP


Mecanismo de Controle: Congestion Avoidance (Congestionamento Evitado)
Perda de Pacotes por danos menor que 1%
99% da perda de Pacotes por:
Time-out
ACKs duplicados recebidos

Algoritmo Congestionamento Evitado:


Neste algoritmo a janela no aumenta exponencialmente e sim linearmente
A cada confirmao o nmero de segmentos dentro da janela de
transmisso aumentado de uma unidade
Se notar congestionamento, volta tamanho de janela para 1 segmento e
passa o controle para o Slow Start. O limite de tamanho da janela passa para
a metade do valor atual.
77

Congestionamento Evitado:
A suposio deste algoritmo que a perda de pacotes causada por danos muito
pequena (muito menor que 1%), portanto uma perda de pacotes indica
congestionamento em algum lugar da rede entre o origem e o destino. H duas
indicaes para a perda de pacotes:
Ocorrncia de um tempo esgotado (time-out)
ACKs duplicados foram recebidos
O congestionamento evitado e o incio lento so algoritmos independentes com
objetivos diferentes. Mas quando o congestionamento ocorre, o TCP deve
diminuir sua taxa de transmisso de pacotes na rede, e ento solicitar o incio
lento para dar continuidade ao processo.
O incio lento continua at que o TCP esteja a meio caminho de onde estava
quando ocorreu o congestionamento, da em diante o congestionamento evitado
assume o controle.

77

Protocolo TCP

Controle de Congestionamento TCP


Mecanismo de Controle: Congestion Avoidance (Congestionamento Evitado)

78

78

Protocolo TCP

Controle de Congestionamento TCP


Mecanismo de Controle: Fast Retransmit (Retransmisso Rpida)
Emissor

Modificaes
no
algoritmo
de
Congestionamento Evitado, permitiu a
retransmisso prematura de um
segmento perdido antes da expirao
do
intervalo
de
temporizao
(Retransmisso Rpida)

Pacote 1
Pacote 2
Pacote 3

Receptor

ACK 3

Pacote 4
Pacote 5
Pacote 6
ACK 3

Acontece quando dois ou mais


pacotes de reconhecimento duplicados
so
recebidos
em
seqncia,
sinalizando que o segmento foi perdido

Retransmite
Pacote 3
ACK 7

79

A retransmisso rpida evita que o TCP tenha que esperar por um tempo
esgotado para enviar novamente os segmentos perdidos.
O TCP pode gerar um reconhecimento imediato (um ACK duplicado) quando um
segmento fora de ordem for recebido. Este ACK duplo no deveria demorar para
ser enviado. O propsito deste ACK duplo avisar outra ponta que um
segmento foi recebido fora de ordem e dizer-lhe qual o nmero seqencial
esperado.
Como o TCP no sabe se um ACK duplo foi provocado por um segmento perdido
ou apenas por um novo pedido de segmentos, ele espera pelo recebimento de um
pequeno nmero de ACKs duplos. Assume-se que se houver apenas uma nova
solicitao de segmentos, haver apenas um ou dois ACKs duplos antes que o
segmento solicitado novamente seja processado, o que no produzir um ACK. E
trs ou mais ACKs duplicados forem recebidos em seqncia, h um forte indcio
que um segmento foi perdido. O TCP realiza ento uma retransmisso do que
parece ser o segmento perdido, sem esperar que o cronmetro de retransmisso
expire.

79

Protocolo TCP

Controle de Congestionamento TCP


Mecanismo de Controle: Fast Recovery (Recuperao Rpida)
Emissor
Pacote 1
Pacote 2
Pacote 3

Retransmisso Rpida

Receptor

ACK 2
ACK 3

Pacote 4
Pacote 5
Pacote 6
ACK 3
Retransmite
Pacote 3
ACK 7

Congestionamento Evitado
80

Depois que a retransmisso rpida envia o que parece ser o segmento perdido, o
congestionamento evitado entra em funcionamento, no o incio lento. Este o
algoritmo de Recuperao Rpida. um aperfeioamento que permite alto fluxo
sob congestionamento moderado, especialmente em janelas grandes.
Uma reduo brusca do fluxo utilizando o Incio Lento, no seria aconselhvel,
pois dados ainda podem estar trafegando entre dois ns, o que pode agravar a
situao de congestionamento.

80

Protocolo TCP

Observaes sobre o Controle de Congestionamento no TCP


Poucos sistemas operacionais (mesmo comerciais) implementam corretamente
as RFCs do TCP (RFC 793 e RFC 2001);
Os que implementam com mais fidelidade os algoritmos mencionados
anteriormente so o FreeBSD e o Solaris;
O Windows sequer implementa as RFCs originais do IP e do TCP
corretamente. O mesmo acontecendo em relao aos algoritmos da RFC 2001;
O AIX implementa os algoritmos acima com algumas variaes proprietrias;
O Linux implementa perfeitamente alguns algoritmos mais avanados mas,
assim como outros, deixa a desejar no simples algoritmo de slow start;
81

Dados da revista RNP News Generation - vol.2, nmero 4 - 1998

81

Protocolo TCP

Comportamento do TCP na Internet

Vazo (throughput) ocorre em Dente de Serra

82

82

Captulo 6 - Protocolo UDP


Caractersticas
Utilizao de Portas no UDP
Formato do Datagrama UDP
Encapsulamento do Datagrama UDP

83

Neste captulo, ser mostrado o Protocolo UDP, que um dos protocolo da


camada de Transporte da pilha de protocolo TCP / IP. O UDP realiza a
transferncia de pacotes do usurio de maneira no-confivel e sem conexo, mas
permite que vrias aplicaes utilizem o UDP para acessar um host. Esta tcnica
realizada pelas portas de protocolo.
Ser mostrado tambm como o formato dos datagramas UDP e como eles so
encapsulados pela camada IP.

83

Protocolo UDP

Protocolo UDP

Aplicao

Telnet HTTP FTP POP3 SMTP DNS

Transporte

TCP
(Transmission Control Protocol)

Bootp

UDP
(User Datagram Protocol)

IP (Internet Protocol)
Inter-Rede

ARP
Interface
de Rede

Intra-Rede

Ethernet

ICMP

RARP

Token Ring

X.25

ATM

MEIO FSICO (UTP, Coaxial, Fibra ptica, etc)

84

Na pilha de protocolos TCP / IP, o UDP (User Datagram Protocol), fornece o


mecanismo principal utilizado pelos programas aplicativos para enviar
datagramas a outros programas iguais.
O UDP basicamente uma interface de aplicao para o IP. O UDP fornece um
mecanismo para que um aplicativo envie um datagrama para outro aplicativo. A
camada UDP pode ser considerada como sendo extremamente fina e por isso
opera com pouco overhead, mas precisa do aplicativo para cuidar da
recuperao de erros, etc.
Os aplicativos que enviam datagramas para um host precisam identificar um alvo
que seja mais especfico que o endereo IP. Os datagramas so geralmente
dirigidos a certos processos e no para o sistema como um todo. O UDP faz isto
usando portas, que sero vistas mais adiante.

84

Protocolo UDP

Caractersticas
basicamente uma interface entre a aplicao e o protocolo IP
Fornece servio de transmisso sem conexo, no-confivel
Usa o IP para transportar mensagens
Permite comunicao de mltiplas aplicaes em um nico host.

Aplicao

UDP

Multiplexao

Processos
IP
85

O protocolo UDP fornece uma forma simples de acesso ao sistema de


comunicao, provendo um servio sem conexo, no-confivel e sem correo
de erros.
A principal funo do nvel de transporte implementada em UDP a capacidade
de multiplexao de acesso ao sistema de comunicao. Esta funo permite que
vrios processos ou programas executando em um computador possam acessar o
sistema de comunicao e o trfego de dados respectivo a cada um deles seja
corretamente identificado, separado e utilize buffers individuais. Um processo o
programa que implementa uma aplicao do sistema operacional, e que pode ser
uma aplicao do nvel de aplicao TCP/IP.

85

Protocolo UDP

Formato do Datagrama UDP

Octeto 1

Octeto 2

Octeto 3

Octeto 4

Endereo IP de Origem
Endereo IP de Destino
00000000
Cabealho
UDP

Dados
UDP

Protocolo
UDP = 17

Comprimento UDP

Porta de Origem UDP

Porta de Destino UDP

Comprimento UDP

Check-Sum UDP
DADOS
.....

Pseudo-cabealho
UDP
S utilizado para
o calculo do CheckSum no datagrama
UDP
No enviado para
o IP no
encapsulamento
Serve para verificar
se a mensagem
UDP atingiu o
destino

86

Cada mensagem UDP conhecido como um datagrama do usurio e consiste de


duas partes: um cabealho UDP e uma rea de dados UDP. O cabealho est
dividido em quatro campos de 16 bits que especificam a porta da qual a
mensagem foi enviada, a porta qual a mensagem destinada, o comprimento da
mensagem e a soma de verificao UDP.
Cada datagrama UDP enviado dentro de um nico datagrama IP. Apesar do
datagrama IP poder ser fragmentado durante a transmisso, a implementao IP
do receptor ir reagrup-lo antes de apresent-lo camada UDP no destino.
Exige-se que todas as implementaes IP aceitem datagramas de 576 octetos, o
que significa que, permitindo o tamanho mximo de cabealho IP de 60 octetos,
um datagrama UDP de 516 bytes aceitvel em todas as implementaes TCP /
IP.
O datagrama UDP descrito em detalhes a seguir:
PORTA DE ORIGEM: indica a porta do processo que est enviando o
datagrama UDP. E a porta para o qual as respostas devem ser endereadas.

86

Protocolo UDP

Utilizao de Portas
Processo Processo
2
1

Porta A

Processo
n

Processo Processo
2
1

Porta B . . . Porta n

UDP
(Mux / Demux das Portas)

IP

Porta x
Datagrama UDP
No confivel

Datagramas IP
no-confiveis

Processo
n

Porta Y . . . Porta Z

UDP
(Mux / Demux das Portas)

IP

87

A forma de identificao de um ponto de acesso de servio (SAP) do modelo OSI


a porta de protocolo em TCP/IP. A porta a unidade que permite identificar o
trfego de dados destinado a diversas aplicaes. A identificao nica de um
processo acessando os servios TCP/IP , ento, o endereo IP da mquina e a
porta (ou portas) usadas pela aplicao. Cada processo pode utilizar mais de uma
porta simultaneamente, mas uma porta s pode ser utilizada por uma aplicao
em um dado momento. Uma aplicao que deseje utilizar os servios de
comunicao dever requisitar uma ou mais portas para realizar a comunicao.
A mesma porta usada por uma aplicao pode ser usada por outra, desde que a
primeira tenha terminado de utiliz-la.
A forma de utilizao de portas mostra uma distino entre a parte cliente e a
parte servidora de uma aplicao TCP/IP. O programa cliente pode utilizar um
nmero de porta qualquer, j que nenhum programa na rede ter necessidade de
enviar uma mensagem para ele. J uma aplicao servidora deve utilizar um
nmero de porta bem conhecido (Well-know ports) de modo que um cliente
qualquer, querendo utilizar os servios do servidor, tenha que saber apenas o
endereo IP da mquina onde este est executando. Se no houvesse a utilizao
de um nmero de porta bem conhecido, a arquitetura TCP/IP deveria possuir um
mecanismo de diretrio para que um cliente pudesse descobrir o nmero da porta
associado ao servidor.

87

Protocolo UDP

Razes para uso do UDP

No h estabelecimento de conexo (que adiciona atraso)

simples

Cabealho do segmento pequeno

No h controle de congestionamento: UDP pode enviar os


dados to rpido quanto queira

88

No modelo de camadas de protocolo o UDP situa-se na camada que fica acima da


camada do IP. Em tese, os programas aplicativos acessam o UDP, que usa o IP
para enviar e receber datagramas. Posicionar o UDP em uma camada acima do IP
significa que uma mensagem UDP completa, incluindo o cabealho UDP e dados
UDP, est encapsulada em um datagrama IP, que por sua vez, como j foi visto
anteriormente est encapsulado em um quadro fsico de rede, e este transporta os
dados atravs de uma interligao em redes.
O encapsulamento do UDP, significa que ele anexa inicialmente um cabealho
aos dados que o usurio envia e passa-o ao IP. A camada IP inicialmente anexa
um cabealho ao que ele recebe de UDP. Finalmente, a camada de interface de
rede embute o datagrama IP em um quadro antes de envi-lo de uma mquina
para outra. O formato do quadro depende da tecnologia bsica da rede utilizada.
Normalmente os quadros de rede incluem um cabealho adicional.
Podemos portanto concluir que: A camada IP responsvel apenas pela
transferncia de dados entre um par de hosts em uma interligao em redes,
enquanto que a camada UDP responsvel apenas pela diferenciao entre
mltiplas origens ou destinos em um host (atravs das portas).

88

Protocolo UDP

Utilizao do UDP

Utilizao
trfego multimdia
DNS
SNMP

Transmisso confivel sobre UDP: adicionar funes para


garantir confiabilidade na camada de aplicao
recuperao de erro especfica para aplicao!

89

89

Desse modo, apenas o cabealho IP identifica os hosts de origem e destino e a


camada UDP apenas identifica as portas de origem e destino em um host.
Alguns aplicativos que usam o UDP so: TFTP (Trivial File Transfer Protocolo):
protocolo de Transferncia de Arquivos Trivial, Servidor de Nomes DNS, RPC
(Remote Procedure Call): Chamada de Procedimentos Remotos, SNMP (Simple
Network Management Protocol): Protocolo de Gerenciamento de Rede Simples,
LDAP (Lightweight Directory Access Protocol): Protocolo de Acesso a
Diretrios

90