PROTOCOLOS DE COMUNICAÇÃO - PRT

Protocolo TCP/UDP
Aplicação
Transmission Control
Protocol ( TCP )
Transporte
User Datagram
Protocol ( UDP )
Internet
Interface
de rede
PROTOCOLOS DE COMUNICAÇÃO - PRT
 TCP/UDP
 Transport Control Protocol(TCP) – Oferece verificação de erro e
controle de fluxo extensivos para garantir a entrega bem sucedida
de dados. O TCP é um protocolo baseado em conexão.
Nos Protocolos orientados a conexão, cada pacote de dados enviado
• rede recebe uma confirmação, e o emissor registra mensagens de
pela
status para a garantia da entrega dos pacotes. A conexão é encerrada
ao final da transmissão.
•
 User Datagram Protocol(UDP) – Oferece uma capacidade reduzida
de controle de erros. É um protocolo sem conexão, ou seja, os
datagramas enviados do emissor ao receptor, não são controlados com
mensagens de recebimento,e assim a transmissão dos dados não é tão
confiável como o TCP.
PROTOCOLOS DE COMUNICAÇÃO - PRT
PROTOCOLO TCP
•
•
•
•
ORIENTADO A CONEXÃO
CONEXÃO CONFIÁVEL FIM-A-FIM
SOCKET = PORT TCP + END. IP
CONTROLE DE FLUXO
– JANELA DESLIZANTE
• CONTROLE DE ERROS
– CHECKSUM
• VÁRIAS CONEXÕES SIMULTÂNEAS
PROTOCOLOS DE COMUNICAÇÃO - PRT
 Processamento Orientado por fluxo – Processa dados em um fluxo
O TCP formata os dados em segmentos de tamanho variável, que serão
passados a camada internet.
 Reorganização – Quando os dados chegam ao destino fora de ordem,
O TCP reorganiza os dados para restaurar a ordem original.
 Controle de Fluxo – Garante que a transmissão de dados não
ultrapassará os tamanhos de buffer (capacidade da máquina destino de
processar as informações.)
 Término da Conexão – O recurso de fechamento de uma conexão,
garante que todos os segmentos foram enviados e recebidos antes que
uma conexão fosse fechada.
PROTOCOLOS DE COMUNICAÇÃO - PRT
 Portas e Soquetes
Camada de
Aplicação
F
T
P
21
Camada de
Transporte
T
E
L
N
E
T
S
M
T
P
D
N
S
23
25
53
TCP
H
T
T
P
80
S
N
M
P
161
Números
de Portas
UDP
Porta é um endereço interno predefinido como uma via da aplicação para a
camada de transporte ou vice-versa.Um host cliente entra em contato com
a aplicação de FTP de um servidor via a porta 21 do TCP.
PROTOCOLOS DE COMUNICAÇÃO - PRT
 Portas e Soquetes
 Soquete – É um endereço formado pela junção do endereço
IP com o número de porta . Por exemplo, o soquete
200.110.131.141.80 refere-se à porta 80 no host com o
endereço 200.110.131.141.
 Portas TCP/UDP mais utilizadas padronizadas pelo IANA:
FTP = 21
TELNET=23
SMTP=25
HTTP=80
POP3=110
SNMP=161
DNS=53
PROTOCOLOS DE COMUNICAÇÃO - PRT
The TCP Service Model
Port
21
23
25
69
79
80
110
119
Protocol
FTP
Telnet
SMTP
TFTP
Finger
HTTP
POP-3
NNTP
Use
File transfer
Remote login
E-mail
Trivial File Transfer Protocol
Lookup info about a user
World Wide Web
Remote e-mail access
USENET news
Some assigned ports.
PROTOCOLOS DE COMUNICAÇÃO - PRT
Tanto o TCP quanto o UDP usam números de porta (ou soquete) para
passar as informações às camadas superiores. Os números de portas são
usados para manter registro de diferentes conversações que cruzam a
rede ao mesmo tempo. Os desenvolvedores de aplicações de software
concordaram em usar os números de portas bem conhecidos que estão
definidos no RFC1700.
Conversações, que não envolvem aplicações com números de portas bem
conhecidos, recebem números de porta que foram selecionados
aleatoriamente em um conjunto específico. Esses números de portas são
usados como endereços de origem e destino no segmento TCP.
Algumas portas são reservadas no TCP e no UDP , embora possa não
haver aplicações para suportá-los. Os números de portas têm os
seguintes conjuntos atribuídos:
•Números abaixo de 255 - para aplicações públicas
•Números de 255 a 1023 - atribuídos às empresas para aplicações
comerciais.
•Números acima de 1023 - não são regulamentados
Os sistemas finais usam números de portas para selecionar as aplicações
corretas. Os números de portas de origem são atribuídos dinamicamente
pelo host de origem, normalmente são números maiores do que 1023.
PROTOCOLOS DE COMUNICAÇÃO - PRT
TCP Header.
PROTOCOLOS DE COMUNICAÇÃO - PRT
PROTOCOLO TCP
0
4
8
15 16
Número do port de origem
16 bits
31
Número do port de destino
16 bits
Número de Seqüência
32 bits
Número de Reconhecimento
32 bits
Tam. Cab.
4 bits
Reservado
6 bits
U A P R S F
R C S S Y I
G K H T N N
Soma Verificadora TCP
16 bits
20 bytes
Tamanho da janela
16 bits
Indicador de Urgência
16 bits
Dados
PROTOCOLOS DE COMUNICAÇÃO - PRT
A seguir, definições dos campos no segmento TCP:
•porta de origem - número da porta que fez a chamada
•porta de destino - número da porta chamada
•número de seqüência - número usado para garantir a
seqüência correta dos dados de chegada
•número de confirmação - próximo octeto TCP esperado
•HLEN - número de palavras de 32 bits no cabeçalho
•reservado - definido como zero
•janela - número de octetos que o remetente está
disposto a aceitar
•checksum - checksum calculado do cabeçalho e dos
campos de dados
•indicador de urgência - indica o final dos dados
urgentes
•dados - dados do protocolo da camada superior
PROTOCOLOS DE COMUNICAÇÃO - PRT
Handshake Triplo TCP
Abrir Conexão
Os hosts TCP estabelecem uma sessão orientada para
conexão com outro usando um handshake triplo. Uma
seqüência de conexão handshake triplo/aberta
sincroniza a conexão nas duas extremidades antes dos
dados serem transferidos. A troca de números de
seqüência de introdução, durante a seqüência de
conexão, é importante. Ela garante que dados
perdidos, devido a problemas de transmissão que
possam ocorrer mais adiante, possam ser recuperados.
PROTOCOLOS DE COMUNICAÇÃO - PRT
Handshake Triplo TCP
Abrir Conexão
Host A
Host B
Send SYN (seq = x)
Receive SYN (seq = x)
Send SYN (seq = y, ack = x+1)
Receive SYN (seq = y, ack = x+1)
Send ACK (ack = y+1 )
Receive ACK (ack = y + 1)
PROTOCOLOS DE COMUNICAÇÃO - PRT
Primeiro, um host inicia uma conexão pelo envio de um pacote
indicando seu número de seqüência inicial x com um
determinado bit no cabeçalho definido para indicar um pedido
de conexão. Então, o outro host recebe o pacote, grava o
número de seqüência x, responde com uma confirmação x + 1
e inclui seu próprio número de seqüência inicial y. O número de
confirmação x + 1 significa que o host recebeu todos os
octetos até x, inclusive, e que está esperando x + 1 em
seguida.
A retransmissão e confirmação positiva, ou PAR (Positive
acknowledgment and retransmission), é uma técnica comum
que muitos protocolos usam para fornecer confiabilidade. Com
a PAR, a origem envia um pacote, aciona um timer e espera por
uma confirmação antes de enviar o próximo pacote. Se o timer
expirar antes da origem receber uma confirmação, a origem
retransmitirá o pacote e iniciará novamente o timer.
PROTOCOLOS DE COMUNICAÇÃO - PRT
Transmissor
Receptor
Envia 1
Recebe 1
Envia ack 2
Recebe ack 2
Envia 2
Recebe 2
Envia ack 3
Recebe ack 3
Envia 3
Recebe 3
Envia ack 4
Recebe ack 4
• Tamanho da janela = ??
PROTOCOLOS DE COMUNICAÇÃO - PRT
Janela Deslizante TCP
Transmissor
Receptor
Envia 1
Envia 2
Envia 3
Recebe 1
Recebe 2
Recebe 3
Envia ack 4
Recebe ack 4
Envia 4
Envia 5
Recebe 4
Envia 6
Recebe 5
Recebe 6
Envia ack 7
Recebe ack 7
• Tamanho da janela = 3
PROTOCOLOS DE COMUNICAÇÃO - PRT
•
•
•
•
CONTROLE DE FLUXO TCP
JANELA DESLIZANTE
CONEXÃO FULL-DUPLEX
TAMANHO DE JANELA VARIÁVEL
JANELA OFERECIDA
(SEGUNDO O RECEPTOR)
JANELA USÁVEL
1
2
3
ENVIADO E
RECONHECIDO
4
5
ENVIADO, NÃO
RECONHECIDO
6
7
8
9
PODE ENVIAR
IMEDIATAMENTE
10
11
NÃO PODE ENVIAR,
ATÉ QUE A JANELA SE MOVA
PROTOCOLOS DE COMUNICAÇÃO - PRT
O tamanho da janela determina a quantidade de dados que pode
ser transmitida de uma vez antes de receber uma confirmação do
destino. Quanto maior o tamanho da janela (bytes), maior a
quantidade de dados que o host pode transmitir. Depois que um
host transmitir o número de bytes da janela dimensionada, ele tem
de receber uma confirmação de que os dados foram recebidos
antes de poder enviar mais mensagens.
Por exemplo, com um tamanho de janela 1, cada segmento
individual (1) tem de ser confirmado antes que o próximo
segmento possa ser enviado.
O TCP usa confirmações de espera, o que significa que o número
da confirmação se refere ao octeto que é esperado em seguida. A
parte "móvel" da janela móvel, refere-se ao fato de que o tamanho
seja negociado dinamicamente durante a sessão TCP. Isso resulta
em uso ineficiente da largura de banda pelos hosts.
PROTOCOLOS DE COMUNICAÇÃO - PRT
O janelamento é um mecanismo de controle de fluxo que exige que o
dispositivo de origem receba uma confirmação do destino depois de
transmitir uma determinada quantidade de dados. Por exemplo, com
um tamanho de janela três, o dispositivo da origem pode enviar três
octetos ao destino. Ele deve então, aguardar por uma confirmação.
Se o destino receber os três octetos, ele enviará uma confirmação ao
dispositivo da origem, que agora poderá transmitir mais três octetos.
Se, por algum motivo, o destino não receber os três octetos, por
exemplo, devido à sobrecarga de buffers, ele não enviará uma
confirmação. Por não receber a confirmação, a origem saberá que os
octetos deverão ser retransmitidos e que a taxa de transmissão
deverá ser diminuída.
O TCP fornece a seqüência de segmentos com uma confirmação de
referência de encaminhamento. Cada datagrama é numerado antes
da transmissão. Na estação receptora, o TCP reagrupa os segmentos
em uma mensagem completa. Se um número de seqüência estiver
faltando na série, aquele segmento será retransmitido. Os
segmentos que não forem confirmados dentro de um dado período
de tempo serão retransmitidos.
PROTOCOLOS DE COMUNICAÇÃO - PRT
PROTOCOLO UDP
•
•
•
•
•
•
SEM CONEXÃO
SEM CONFIABILIDADE
ENTREGA DATAGRAMA PARA O IP
CONCEITO DE PORTA UDP
VÁRIAS CONEXÕES SIMULTÂNEAS
PSEUDO HEADER (como o TCP)
PROTOCOLOS DE COMUNICAÇÃO - PRT
User Datagram Protocol (UDP) é o protocolo de
transporte sem conexão da pilha de protocolos
TCP/IP. O UDP é um protocolo simples que troca
datagramas, sem confirmações ou entrega garantida.
O processamento de erros e a retransmissão de erros
devem ser tratados por outros protocolos.
O UDP não usa janelamento ou confirmações,
portanto, os protocolos da camada de aplicação
fornecem a confiabilidade. O UDP é projetado para
aplicações que não precisam colocar seqüências de
segmentos juntas.
Os protocolos que usam o UDP são:
•TFTP
•SNMP
•DHCP
•DNS (Domain Name System)
PROTOCOLOS DE COMUNICAÇÃO - PRT
Introduction to UDP
The UDP header.
PROTOCOLOS DE COMUNICAÇÃO - PRT
PROTOCOLO UDP
0
4
8
15 16
31
Endereço IP de origem
32 bits
Pseudo
Header
UDP
Endereço IP de destino
32 bits
Zero
8 bits
Protocolo (17)
8 bits
Tamanho do datagrama UDP
16 bits
Número do port de origem
16 bits
Número do port de destino
16 bits
Tamanho do datagrama UDP
16 bits
Soma Verificadora UDP
16 bits
Dados
Header
UDP
PROTOCOLOS DE COMUNICAÇÃO - PRT
Camada de Rede
Aplicação
Internet Protocol ( IP )
Transporte
Address Resolution
Protocol ( ARP )
Internet
Reverse Address
Resolution Protocol ( RARP )
Interface
de rede
Internet Control Message
Protocol ( ICMP )
Hardware
PROTOCOLOS DE COMUNICAÇÃO - PRT

Protocolos ARP/RARP
 ARP(Address Resolution Protocol) é um protocolo TCP/IP que é
utilizado para determinar o endereço físico que corresponde a
um endereço IP.
 Através de quadros em broadcast com a pergunta: Quem
possuir este endereço IP, responda-me com o seu endereço MAC
correspondente, é feito o mapeamento do endereço físico em
função do endereço IP.
 Esta resposta é mantida numa tabela chamada de cache nos
hosts e roteadores. Cada entrada da tabela, por padrão, é
dinâmica. No windows NT os pares de endereços físico/IP
expiram de dois a dez minutos.As entradas podem ser incluídas
com PINGS de outro computador ou roteador.
PROTOCOLOS DE COMUNICAÇÃO - PRT
Eu escutei aquele
broadcast, sou eu.
Aqui está meu
endereço Ethernet.
Eu preciso do
endereço Ethernet
de 131.108.3.2
•
131.108.3.1
131.108.3.2
•
IP : 131.108.3.2 = ???
IP : 131.108.3.2 =
Ethernet : 0800.0020.1111
•
PROTOCOLOS DE COMUNICAÇÃO - PRT
 Protocolos ARP/RARP
 RARP(Reverse ARP);
 Faz o mapeamento do endereço IP, em função do
endereço físico conhecido;
 É usado em estações sem disco.Para estações com discos,
o endereço IP é
armazenado do disco e recuperado durante o processo de
Boot;
 O protocolo RARP só é usado durante o processo de Boot:
uma vez obtido
o endereço IP, a estação armazena-o em sua memória.
PROTOCOLOS DE COMUNICAÇÃO - PRT
Eu escutei aquele
broadcast. O endereço
IP é 131.108.3.25
Qual é meu
endereço IP ?
SERVIDOR RARP
Ethernet = 0800.0020.1111
IP = ???
Ethernet = 0800.0020.1111
IP = 131.108.3.25
• Mapeia Ethernet
IP
• ARP e RARP são implementados
diretamente no topo da camada de enlace
PROTOCOLOS DE COMUNICAÇÃO - PRT
 Protocolo ICMP(Internet Control MessageProtocol)
Aplicação
Transporte
Destino
Inalcançável
ICMP
Internet
Interface
de rede
Hardware
Eco ( ping )
Outros
PROTOCOLOS DE COMUNICAÇÃO - PRT
 Protocolo ICMP(Internet Control MessageProtocol)
 O ICMP foi desenvolvido com a finalidade de alertar o emissor
de algum problema ocorrido durante o percurso da mensagem.
 ICMP é o sistema de comunicação da camada IP, e está
implementado em hosts e roteadores.As mensagens de erros
enviadas pelo ICMP são roteadas de volta ao host que gerou o
datagrama original.
 O ICMP é transportado em pacotes IP, assim sendo, suas
mensagens são roteáveis.
 O par echo request/reply é útil para identificar problemas de
roteamento,roteadores com defeito ou falhas de cabeamento de
rede.Um exemplo é o comando PING que verifica se um host
está ativo.
PROTOCOLOS DE COMUNICAÇÃO - PRT
ICMP
Eu não sei como
chegar em Z!
Enviarei uma
mensagem ICMP.
Enviar dados
para Z.
A
Rede de
dados
Para Z
Destino Inalcançável
• Destino Inalcançável
Host ou porta inalcançável
Rede inalcançável
PROTOCOLOS DE COMUNICAÇÃO - PRT
ICMP
B está
alcançável ?
Sim, eu
estou aqui.
A
B
ICMP eco
ICMP resposta do eco
• Eco e Resposta ao Eco
Gerados pelo comando ping
Resposta do eco é uma resposta bem sucedida de um comando ping; porém, os
resultados podem incluir outras mensagens ICMP, como destinos inalcançáveis,
timeouts, etc.
PROTOCOLOS DE COMUNICAÇÃO - PRT
PING
Rede Ip
Roteador C
10.0.1.1
10.0.0.1
Roteador A
Roteador B
PING 10.0.1.1
Sending 5, 100 byte ICMP Echos to timeout is 2
seconds:
! ! ! ! !
Success rate is 100 percent, round-trip min/avg/max
=
1/3/4 ms
PROTOCOLOS DE COMUNICAÇÃO - PRT
TELNET
 Telnet é um protocolo de terminais virtuais que é
uma parte do protocolo TCP/IP, permite acessar
remotamente equipamentos ( roteadores, host ) de
uma rede IP. Ao utilizarmos o protocolo Telnet,
estabelecemos uma sessão de comunicação entre
os hosts na rede para monitoramento de status ou
configuração.
 Um roteador possibilita ter várias sessões Telnet
simultâneas, sendo limitado na capacidade de
cada fabricante.
PROTOCOLOS DE COMUNICAÇÃO - PRT
Telnet
192.168.1.100
• Telnet < Endereço IP do equipamento remoto >
Rede IP
Telnet
192.168.1.254
192.168.2.254
PROTOCOLOS DE COMUNICAÇÃO - PRT
TRACE
 O comando TRACEroute éum comando usado para rastrear
as rotas(caminhos) ,tomadas pelos datagramas enquanto
trafegam do seu computador, passando por vários gateways
até chegar ao seu destino.
 O trace aproveita o valor TTL ( Time-To-Live ) de um
datagrama.
 Inicialmente são enviados datagramas teste com um valor
TTL igual a um. Ao chegar no primeiro roteador,o TTL é
decrementado de uma unidade, chegando a TTL=0 . Nesta
condição é enviado de volta um datagrama de resposta com
as informações do roteador ( nome, end. IP,.. ). Quando o
roteador de origem recebe este datagrama envia outro com
TTL = 2, e assim por diante até chegar ao host de destino.
PROTOCOLOS DE COMUNICAÇÃO - PRT
TRACE
• Qual caminho os pacotes estão tomando ?
Rede Ip
Recife
TTL=1 131.108.12.3
João Pessoa
Natal
TTL=2 131.108.16.2
TRACE Maceió
Type escape to abort.
Tracing the route to Maceió (131.108.33.5)
1 João Pessoa (131.108.12.3) 1000 msec 8 msec 4
2 Natal (131.108.16.2 )
8 msec 8 msec 8msec
3 Maceió (131.108.33.5) 8 msec 8 msec 4 msec
TTL=3
Maceió
131.108.33.5