Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Semana Aula: 11
CAMADAS SUPERIORES
Tema
Camada de Transporte
Palavras-chave
TCP, UDP
Objetivos
Conhecer os protocolos TCP e UDP
Estrutura de Conteúdo
Fundamentos da Camada de transporte
Camada de Transporte
Posicionada entre as camadas de Aplicação e Redes, a camada de transporte é
fundamental na arquitetura de rede em camadas, pois desempenha o papel fundamental
de fornecer serviços de comunicação diretamente aos processos de aplicação que rodam
em máquinas diferentes. Isto é, fornece uma comunicação lógica entre estes processos.
Os processos de aplicação utilizam a comunicação lógica provida pela camada de
transporte sem a preocupação com os detalhes da infraestrutura física utilizada para
transportar as mensagens:
-Divide os dados que chegam da camada de aplicação em segmentos e passa-os com o
endereço de destino para a próxima camada para transmissão, que neste caso será a
camada de rede.
-Fornece uma comunicação lógica entre os processos do aplicativo em execução entre
hosts diferentes, que pode ser orientada à conexão e não orientada à conexão.
-A transferência de dados na camada de transporte também pode ser categorizada como
confiável ou não confiável, com informações de estado ou sem informações de estado;
-Utiliza o conceito de porta para a identificação dos processos de aplicação;
-Especifica 2 tipos de protocolos e a utilização de um ou de outro depende das
necessidades da aplicação (SNMP-UDP, FTP-TCP):
oTCP (Transmission Control Protocol)
oUDP (User Datagram Protocol)
Portas e sockets
Portas
Identificam os processos de origem e de destino viabilizando a comunicação fim-a-fim.
O
Sistema operacional oferece uma interface (socket) (linkar com o texto sobre socket no
final do arquivo) que permite às aplicações especificarem ou acessarem portas em um
determinado host enviando e recebendo datagramas de forma independente.
As portas são classificadas em:
Reservadas (padronizadas através da RFC 1070) - 0 - 1023
Socket
A associação entre 2 processos cooperantes (cliente/servidor) é identificada por um par
de sockets (socket1, socket2), uma vez estabelecida uma conexão, cada socket
corresponde a um ponto final dessa conexão.
É o identificador único de cada conexão existente num host em determinado momento
pois associa IP origem, porta origem, IP de destino e Porta de Destino.
8.1.2. Conexão: Three Way Handshake
O protocolo TCP especifica três fases durante uma conexão: estabelecimento da ligação,
transferência e término de ligação.
O estabelecimento da ligação é feito em três passos, enquanto que o término é feito em
quatro. Durante a inicialização são inicializados alguns parâmetros, como o Sequence
Number (número de sequência) para garantir a entrega ordenada e robustez durante a
transferência.
Estabelecimento da ligação
Tipicamente, numa ligação TCP existe aquele designado de servidor (que abre um socket
e espera passivamente por ligações) num extremo, e o cliente no outro.
O cliente inicia a ligação enviando um pacote TCP com a flag SYN activa e espera-se
que o servidor aceite a ligação enviando um pacote SYN+ACK. Se, durante um
determinado espaço de tempo, esse pacote não for recebido ocorre um timeout e o pacote
SYN é reenviado.
O estabelecimento da ligação é concluído por parte do cliente, confirmando a aceitação
do servidor respondendo-lhe com um pacote ACK.
Durante estas trocas, são trocados números de sequência iniciais (ISN) entre os
interlocutores que irão servir para identificar os dados ao longo do fluxo, bem como
servir de contador de bytes transmitidos durante a fase de transferência de dados (sessão).
No final desta fase, o servidor inscreve o cliente como uma ligação estabelecida numa
tabela própria que contém um limite de conexões, o backlog. No caso do backlog ficar
completamente preenchido a ligação é rejeitada ignorando (silenciosamente) todos os
subsequentes pacotes SYN.
Adequação de parâmetros
O cabeçalho TCP possui um parâmetro que permite indicar o espaço livre atual do
receptor (emissor quando envia a indicação): a janela (ou window). Assim, o emissor fica
a saber que só poderá ter em trânsito aquela quantidade de informação até esperar pela
confirmação (ACK) de um dos pacotes - que por sua vez trará, com certeza, uma
atualização da janela. Curiosamente, a pilha TCP no Windows foi concebida para se
auto-ajustar na maioria dos ambientes e, nas versões atuais, o valor padrão é superior em
comparação com versões mais antigas.
Porém, devido ao tamanho do campo, que não pode ser expandido, os limites aparentes
da janela variam entre 2 e 65535, o que é bastante pouco em redes de alto débito e
hardware de alta performance. Para contornar essa limitação é usado umaOpção especial
que permite obter múltiplos do valor da janela, chamado de escala da janela, ou TCP
window scale; este valor indica quantas vezes o valor da janela, de 16 bit, deve ser
operado por deslocamento de bits (para a esquerda) para obter os múltiplos, podendo
variar entre 0 e 14. Assim, torna-se possível obter janelas de 1gigabyte. O parâmetro de
escala é definido unicamente durante o estabelecimento da ligação.
Término da ligação
A fase de encerramento da sessão TCP é um processo de quatro fases, em que cada
interlocutor responsabiliza-se pelo encerramento do seu lado da ligação. Quando um
deles pretende finalizar a sessão, envia um pacote com a flag FIN ativa, ao qual deverá
receber uma resposta ACK. Por sua vez, o outro interlocutor irá proceder da mesma
forma, enviando um FIN ao qual deverá ser respondido um ACK.
Pode ocorrer, no entanto, que um dos lados não encerre a sessão. Chama-se a este tipo de
evento de conexão semi-aberta. O lado que não encerrou a sessão poderá continuar a
enviar informação pela conexão, mas o outro lado não.
(http://pt.wikipedia.org/wiki/Transmission_Control_Protocol.)
Para que vários processos simultaneamente usem os serviços do TCP, é usado o conceito
de porta, onde cada processo de aplicação, em um dado momento, é identificado por uma
porta diferente.
Estratégias de Aprendizagem
Nesta aula, deve-se abordar a importância dos protocolos TCP e IP para o
estabelecimento e garantias de comunicação entre origem e destino;
O professor poderia iniciar a abordagem deste tema explanando sobre os motivos que
levaram à criação destes protocolos ( um breve histórico);
A seguir explanaria sobre as características do TCP e UDP. Neste ponto poderia abrir um
debate, na sala de aula, instigando os alunos a pensarem porque existem esses dois
protocolos de camada de transporte. Exemplos envolvendo games e transferência de
arquivos poderiam ilustrar as diferenças de uso e funções destes protocolos;
Da mesma forma que em aulas anteriores, pode-se demonstrar o uso destes protocolos
através do simulador de redes a a partir de uma topologia já montada pelo professor. ou
capturar pacotes em tempo real através de um software de monitoramento de pacotes
como o WireShark;
http://wps.aw.com/br_kurose_redes_3/40/10271/2629597.cw/index.html
Considerações Adicionais