Camada de transporte-Resumo TCP (Transmission Control Protocol)
Por: dmls • 28/2/2017 • Trabalho acadêmico • 3.100 Palavras (13 Páginas) • 716 Visualizações
Camada de transporte-Resumo
TCP (Transmission Control Protocol)
O TCP é um protocolo da camada de transporte que é orientado a conexão e forneça uma transferência confiável de dados.
É orientado a conexão porque antes que um processo de aplicação possa mandar mensagens ao outro, os dois processos precisam se apresentar, isto é feito trocando-se alguns segmentos um ao outro para estabelecer os parâmetros da transferência de dados.
Uma conexão TCP provê um serviço full-duplex, assim se há uma conexão entre dois processos A e B, os dados da camada de aplicação podem fluir de A para B ao mesmo tempo que de B para A. Conexões TCP sempre são ponto a ponto, com um único remetente e um único destinatário.
Examinando como ocorre uma conexão TCP:
- Um processo (cliente) quer iniciar uma conexão com outro processo (servidor);
- O processo cliente informa a camada de transporte que quer estabelecer a conexão com o processo servidor;
- A camada de transporte no cliente passa a estabelecer uma conexão TCP-servidor;
- O processo cliente envia um segmento TCP especial;
- O servidor responde com um segundo segmento;
- Finalmente o cliente envia o terceiro segmento especial;
Como três segmentos são enviados entre esses dois processos, esse processo de estabelecer uma conexão é denominado de apresentação de três vias.
Com a conexão TCP estabelecida, os dois processos podem começar a enviar dados um para o outro.
O TCP combina cada porção de dados do cliente com um cabeçalho TCP, formando segmentos TCP. Esses segmentos são passados para a camada de rede, onde são encapsulados separadamente dentro dos datagramas IP. Esses datagramas IP são enviados para dentro da rede. Quando o TCP recebe um segmento, os dados desse segmento são colocados em um buffer de recepção da conexão. A camada de aplicação lê os dados desse buffer. Cada lado da conexão tem seus buffers de envio e recepção.
A estrutura de um segmento TCP consiste em campos de cabeçalho e um campo de dados. Esse campo de dados possui dados de aplicação e o tamanho desse campo é limitado. Se o TCP precisa enviar um arquivo grande, ele comumente fragmenta o segmento em vários pedaços de no máximo no tamanho MSS (maximum segment size), valor definido como sendo o tamanho do maior quadro de camada de enlace que pode ser enviado pelo hospedeiro remetente local.
Um cabeçalho TCP contém esses campos:
- Campo de número de sequência e campo de número de reconhecimento: ambos têm 32 bits e são usados pelo remetente e pelo destinatário para implementação de um serviço confiável de transferência de dados;
- Janela de recepção: têm 16 bits e é usado para controle de fluxo, indica o número de bytes que o destinatário está disposto a aceitar;
- Campo de comprimento de cabeçalho: tem 4 bits é e usado para especificar o comprimento do cabeçalho TCP;
- Campo de opções: é opcional e de comprimento variável, e é usado quando remetente e destinatário negociam o MSS;
- Campo de flag: tem 6 bits. O bit ACK é usado para indicar se um segmento contém reconhecimento para um segmento que foi recebido com sucesso. Os bits RST, SYN e FIN são usados para estabelecer e encerrar conexões. O bit PSH indica que o destinatário deve passar os dados para a camada superior imediatamente. O bit URG mostra que há dados no segmento que a entidade da camada superior do lado do remetente marcou como urgentes.
UDP (User Datagram Protocol)
O UDP é um protocolo da camada de transporte que não é orientado a conexão, ou seja, não há apresentação antes que os dois processos possam se comunicar. O serviço de transferência de dados do UDP é do tipo não confiável, isto é, quando se envia uma mensagem através de um socket UDP, não há garantia de que essa mensagem chegará ao seu destino, e elas podem até mesmo chegar fora de ordem.
O UDP pega as mensagens do processo de aplicação, anexa campos de porta de fonte e de destino para os serviços de multiplexação e demultiplexação, adiciona outros dois campos e passa esse segmento para a camada de rede, que fará uma tentativa de melhor esforço para entregar o segmento ao receptor. Se o segmento chegar ao receptor, o UDP usará o número de porta de destino para entregar os dados ao processo de aplicação correto.
Muitas aplicações se adaptam melhor ao UDP por essas razões:
- Assim que um processo de aplicação passa dados ao UDP, o protocolo empacota esses dados em um segmento UDP e os passa imediatamente à camada de rede. O TCP tem um mecanismo de controle de congestionamento que limita o remetente TCP se um ou mais enlaces da camada de transporte entre o remente e o destinatário ficam congestionados. O TCP também reenvia um segmento até que o destinatário reconheça a recepção do mesmo, independentemente do tempo que essa entrega vai levar. Aplicações em tempo real requerem uma taxa mínima de envio, podem tolerar uma certa perda de dados e não querem atrasar demais a transmissão dos dados, portanto o TCP não é uma boa opção para essas aplicações;
- O UDP simplesmente envia mensagens sem nenhuma preliminar formal, diferente do TCP e sua apresentação de três vias, dessa forma o UDP não introduz nenhum atraso para estabelecer uma conexão;
- O UDP não mantém o estado da conexão, portanto um servidor devotado a uma aplicação específica pode suportar um número muito maior de clientes ativos quando a aplicação roda sobre UDP do que o TCP;
- O segmento TCP tem 20 bytes de sobrecarga de cabeçalho além dos dados, enquanto o UDP tem 8 bytes de sobrecarga.
Um segmento UDP contém um cabeçalho e um campo de dados, o cabeçalho tem apenas quatro campos, cada um com 2 bytes. Os números de porta permitem que o destinatário passe os dados da aplicação ao processo correto (demultiplexação). A soma de verificação é usada verificação de erros no segmento.
Multiplexação e Demultiplexação
No hospedeiro de destino, a camada de transporte recebe segmentos da camada de rede e entrega os dados desses segmentos para o processo de aplicação apropriado que está rodando no hospedeiro.
...