Академический Документы
Профессиональный Документы
Культура Документы
O Nvel de Transporte
Implementa um servio de comunicao fim-
a-fim:
Protocolos de transporte rodam nos sistemas finais
e permitem que aplicaes em uma mquina
enviem mensagens individuais para aplicaes
parceiras, localizadas em qualquer outra mquina
da internet.
Prov uma comunicao lgica entre processos
de aplicao rodando em diferentes hosts.
Comunicao Fim-a-Fim
application
transport
network
data link network
physical data link
network physical
data link
physical
network
data link
physical network
data link
physical
network
data link
physical
application
transport
network
data link
physical
Servios de Transporte na Internet
A arquitetura TCP/IP implementa dois protocolos de
transporte com caractersticas distintas: o TDP e o UCP.
TCP (Transmission Control Protocol ):
Protocolo de transporte fim-a-fim, orientado a conexo, que
fornece um servio de transferncia confivel de dados entre
aplicaes parceiras.
Garante que os dados so entregues livres de erro, em
seqncia e sem perdas ou duplicao.
UDP (User Datagram Protocol ):
Protocolo do nvel de transporte que implementa um servio do
tipo best-effort (no confivel, sem garantia de entrega dos
dados).
Servios no fornecidos no TCP/UDP:
Tempo real, garantia de banda passante e multicast confivel.
TCP - Transmission Control Protocol
Especificao original: RFC 793 [Postel 1981].
Outras RFCs: 1122, 1323, 2018 e 2581
Protocolo de transporte fim-a-fim, orientado a
conexo, que fornece um servio de transferncia
confivel de dados entre aplicaes parceiras.
Garante que os dados so entregues livres de
erro, em seqncia e sem perdas ou duplicao.
Localizao e Principais Clientes
Encapsulamento
Caractersticas Gerais
Usa o conceito de sockets para caracterizar uma
conexo.
Socket = endereo IP + porta
Permite estabelecer uma conexo entre um par de
sockets de acordo com parmetros de qualidade
de servio e segurana previamente especificados.
Uma conexo definida univocamente por um par de
sockets.
Prov comunicao do tipo full-duplex entre os
dois sockets da conexo. Esta comunicao
sempre unicast e ponto-a-ponto.
Caractersticas Gerais (cont.)
32 bits
Nmeros de portas
source port # dest port #
origem e destino so
includos no cabealho other header fields
do TCP e do UDP.
application
data
(message)
Buffer de transmisso
TCP
Data
Header
Segmento
Segmento
A unidade de dados trocada entre as entidades de
transporte denominada de Segmento.
O segmento a unidade bsica de transferncia de
dados do TCP.
Cada segmento entregue ao IP para
transmisso em um nico datagrama. Entretanto,
a fragmentao pode ser necessria no nvel de
rede.
Como um protocolo orientado a byte o TCP
livre para dividir o stream de bytes em segmentos
de qualquer tamanho para transmisso.
Segmento (cont.)
receiver
P3 P4
application-layer M M
data
application
segment P1 transport P2
header M
M network
application application
Ht M transport transport
network
Hn segment network
Segmento (cont.)
Well-Known 7
9
Echo
Discard
Ports do TCP 11 Active Users
13 Daytime
15 Who is up?
17 Quote of the Day
19 Character Generator
20 File Transfer Protocol (data)
21 File Transfer Protocol (control)
23 Telnet
25 Simple Mail Transport Protocol
37 Time
39 Resource Location Protocol
42 Host Name Server
43 Who Is
53 Domain Name Server
Well-Known Decimal Description
Sockets (cont.)
source port:23
dest. port: x
Source IP: C Source IP: C
Dest IP: B Dest IP: B
source port: y source port: x
port use: simple telnet app dest. port: 80 dest. port: 80
Source IP: A
Dest IP: B Web
Web client source port: x server B
host A dest. port: 80
port use: Web server
Controle de Fluxo
Tcnica usada para garantir que a estao transmissora
no envia mais dados do que a estao receptora pode
processar.
Quando dados so recebidos, a estao gasta um certo
tempo com o seu processamento e somente depois que
libera o buffer e fica apta a receber mais dados.
Na ausncia do controle de fluxo, os buffers de recepo
poderiam encher enquanto ainda se estivesse
processando dados antigos no buffer.
Tcnicas de controle de fluxo:
Pra-e-Espera (Stop-and-Wait)
Janelas Deslizantes (Sliding Windows)
Stop-and-Wait
a forma mais simples de controle de fluxo (no o
esquema usado no TCP!).
Os blocos de dados so numerados, alternadamente,
como 0 e 1. Inicialmente, a entidade origem transmite o
bloco de dados 0.
Aps a recepo, a entidade destino indica o seu desejo
de aceitar um outro bloco enviando de volta uma
confirmao de recebimento (Ack) do bloco 0.
Geralmente, Ack1 confirma o recebimento do bloco 0 e solicita a
transmisso do bloco de nmero 1, e Ack0 confirma o recebimento
do bloco 1 e solicita a transmisso de um bloco de nmero 0.
A entidade origem sempre aguarda a recepo do Ack
correspondente antes de enviar o prximo bloco.
Desta forma, a estao destino pode controlar o fluxo de
dados simplesmente retardando o envio do Ack.
Janela Deslizante (Sliding Window)
A essncia do problema do controle de fluxo oferecido
pelo protocolo Stop-and-Wait que apenas um bloco de
dados pode transmitido por vez (baixo desempenho).
A soluo bvia permitir mltiplos blocos estarem em
trnsito num dado momento.
O nmero de blocos que podem ser transmitidos sem
esperar pelo recebimento de um ACK define o tamanho da
janela.
Agora, a estao receptora aloca N buffers, ao invs de apenas
um, podendo assim aceitar N blocos. A estao transmissora, por
sua vez, pode enviar N frames sem esperar por um Ack.
Mecanismo empregado no TCP.
Janela Deslizante (Sliding Window) (cont.)
Janela Deslizante (Sliding Window) (cont.)
Janela Deslizante (Sliding Window) (cont.)
Controle de Erros
Refere-se aos mecanismos usados para detectar e corrigir
erros que ocorrem em uma transmisso de dados.
Normalmente so considerados dois tipos de erro:
Bloco danificado: o bloco chega estao destino mas alguns dos
seus bits possuem erros (foram alterados durante a transmisso).
Bloco perdido: o bloco no chega estao destino. Pode ter sido
descartado em um roteador ou um rudo pode t-lo danificado
numa extenso tal que o receptor no est ciente de que ele tenha
sido enviado.
As tcnicas mais comuns para so baseadas em alguns ou
em todos os seguintes ingredientes:
Deteco de erros: tipicamente usada a tcnica de CRC.
Ack positivo: a estao destino retorna um Ack positivo para
indicar um bloco recebido com sucesso, livre de erros.
Controle de Erros (cont.)
Active Open
Solicita conexo a uma estao remota
especfica, com nveis de segurana e
precedncia especificados.
Active Open com dados
Solicita conexo a uma estao remota
especfica, com nveis de segurana e
precedncia especificados.
Contm dados do usurio.
Estabelecimento de Conexo (cont.)
Open ID
Active Open
Open ID
Mecanismo
Three-Way
Handshaking
Open Success
Open Success
Three-Way Handshake
O TCP se utiliza do mecanismo de three-way
handshake para estabelecer uma conexo.
Este mecanismo garante a correta sincronizao
entre os usurios da conexo de transporte.
O three-way handshake envolve a troca de trs
segmentos (isto , o mecanismo possui trs
passos).
Three-Way Handshake (cont.)
A B
Passive Open
Open ID
SYN(y), ACK(x+1)
Open Success
ACK(y+1)
Open Success
Handshake #1
Quando um socket local estabelecido, o TCP
envia um segmento SYN inicial para o TCP
remoto, seta um timer de retransmisso e
espera at que o timer expire ou que receba um
ACK do socket remoto.
O segmento de handshake #1 identificado pelo
bit SYN no campo de Flag e carrega o nmero de
seqncia inicial (x).
Handshake #1 (cont.)
Handshake #2 (cont.)
Close
Dados pendentes
de A para B
Closing
Close / Terminate
client server
Close
Dados pendentes
de B para A
Terminate
Terminate
Encerramento Negociado de Conexo
Close
Dados pendentes
Encerramento de A para B
Negociado de
Conexo (cont.) Closing
Close
Dados pendentes
de B para A
Terminate
Terminate
Encerramento Abrupto de Conexo
Ocasionalmente, podem ocorrer condies anormais que
forcem uma aplicao ou o TCP a terminar abruptamente
a conexo.
O processo de aplicao encerra a conexo de forma
abrupta emitindo a primitiva de pedido de servio Abort.
A partir desse ponto, a aplicao no aceita mais dados
pela conexo e, portanto, dados em trnsito sero
perdidos.
Quando a aplicao solicita o trmino abrupto da conexo
o TCP local sinaliza ao TCP remoto que a conexo foi
abortada enviando um segmento especfico (com o bit RST
ligado) para o TCP do lado remoto.
Encerramento Abrupto de Conexo (cont.)
Close
Troca de Dados pendentes
Segmentos no de A para B
Encerramento da FIN(x)
Conexo (cont.) ACK(x+1) Closing
Dados pendentes
Close
de B para A
ACK(y+1)
Terminate
Transferncia de Dados
client
data 100, ack 301 server
client
data 501, ack 401 server
internos.
Usada para informar ao usurio TCP sobre os
Transferncia
de 8192 bytes
da mquina
svr4, porta
1056, para a
mquina bsdi,
porta 7777,
em oito blocos
de 1024
bytes.
Controle de Fluxo no TCP: Um Exemplo (cont.)
Nmeros de Decimal
5
Description
Remote Job Entry