Tabla de Contenido
Recursos TCP
No tópico anterior, você aprendeu que TCP e UDP são os dois protocolos da camada de transporte. Este tópico fornece mais detalhes sobre o que o TCP faz e quando é uma boa ideia usá-lo em vez do UDP.
Para entender as diferenças entre TCP e UDP, é importante entender como cada protocolo implementa recursos de confiabilidade específicos e como cada protocolo rastreia as conversas.
Além de oferecer suporte às funções básicas de segmentação e remontagem de dados, o TCP também fornece os seguintes serviços:
- Estabelece uma Sessão – TCP é um protocolo orientado a conexão que negocia e estabelece uma conexão permanente (ou sessão) entre os dispositivos de origem e destino antes de encaminhar qualquer tráfego. Por meio do estabelecimento da sessão, os dispositivos negociam a quantidade de tráfego que pode ser encaminhada em um determinado momento e os dados de comunicação entre os dois podem ser gerenciados de perto.
- Garante uma entrega confiável – Por vários motivos, é possível que um segmento seja corrompido ou perdido completamente, à medida que é transmitido pela rede. O TCP garante que cada segmento enviado pela origem chegue ao destino.
- Fornece entrega na mesma ordem – Como as redes podem fornecer várias rotas com taxas de transmissão diferentes, os dados podem chegar na ordem errada. Ao numerar e sequenciar os segmentos, o TCP garante que os segmentos sejam remontados na ordem adequada.
- Suporta controle de fluxo – Hosts de rede têm recursos limitados (ou seja, memória e poder de processamento). Quando o TCP está ciente de que esses recursos estão sobrecarregados, ele pode solicitar que o aplicativo de envio reduza a taxa de fluxo de dados. Isso é feito pelo TCP regulando a quantidade de dados que a fonte transmite. O controle de fluxo pode evitar a necessidade de retransmissão dos dados quando os recursos do host receptor estão sobrecarregados.
Para obter mais informações sobre TCP, pesquise na Internet pelo RFC 793.
Cabeçalho TCP
O TCP é um protocolo com monitoração de estado, o que significa que ele rastreia o estado da sessão de comunicação. Para rastrear o estado de uma sessão, o TCP registra quais informações ele enviou e quais informações foram confirmadas. A sessão stateful começa com o estabelecimento da sessão e termina com o encerramento da sessão.
Um segmento TCP adiciona 20 bytes (ou seja, 160 bits) de sobrecarga ao encapsular os dados da camada de aplicativo. A figura mostra os campos em um cabeçalho TCP.
Campos de cabeçalho TCP
A tabela identifica e descreve os dez campos em um cabeçalho TCP.
Campo de cabeçalho TCP | Descrição |
---|---|
Porta Fonte | Um campo de 16 bits usado para identificar o aplicativo de origem pelo número da porta. |
Porto de destino | Um campo de 16 bits usado para identificar o aplicativo de destino pelo número da porta. |
Número sequencial | Um campo de 32 bits usado para fins de remontagem de dados. |
Número de Reconhecimento | Um campo de 32 bits usado para indicar que os dados foram recebidos e o próximo byte esperado da fonte. |
Comprimento do cabeçalho | Um campo de 4 bits conhecido como ʺdata offsetʺ que indica o comprimento do cabeçalho do segmento TCP. |
Reservado | Um campo de 6 bits reservado para uso futuro. |
Bits de controle | Um campo de 6 bits usado que inclui códigos de bits, ou sinalizadores, que indicam a finalidade e a função do segmento TCP. |
Tamanho da janela | Um campo de 16 bits usado para indicar o número de bytes que podem ser aceitos de uma vez. |
Checksum | Um campo de 16 bits usado para verificação de erros do cabeçalho e dos dados do segmento. |
Urgente | Um campo de 16 bits usado para indicar se os dados contidos são urgentes. |
Aplicativos que usam TCP
O TCP é um bom exemplo de como as diferentes camadas do conjunto de protocolos TCP / IP têm funções específicas. O TCP lida com todas as tarefas associadas à divisão do fluxo de dados em segmentos, fornecendo confiabilidade, controlando o fluxo de dados e reordenando segmentos. O TCP libera o aplicativo de ter que gerenciar qualquer uma dessas tarefas. Os aplicativos, como os mostrados na figura, podem simplesmente enviar o fluxo de dados para a camada de transporte e usar os serviços do TCP.