TRABALHO DE REDES 2
TEMA:
CAMADA DE TRANSPORTE: PROTOCOLO TCP
Luanda, aos 04 de novembro de 2024
Indices
1. Introdução ...................................................................................................................... 3
2. Objetivos......................................................................................................................... 3
2.1. Objetivo geral .......................................................................................................... 3
3. Fundamentação .............................................................................................................. 4
3.1. Breve história do protocolo TCP ............................................................................. 4
3.2. Características do TCP ............................................................................................. 5
3.3. Funcionamento do Protocolo TCP .......................................................................... 6
3.4. Aplicações e Utilizações do TCP ............................................................................. 8
3.5. Comparação entre TCP e UDP ................................................................................ 9
3.6. Vantagens e Desvantagens do TCP ...................................................................... 10
4. Conclusão...................................................................................................................... 11
Referências............................................................................................................................... 12
1. Introdução
No contexto atual das redes de computadores, a comunicação eficaz e confiável é
fundamental para o funcionamento de diversas aplicações e serviços que compõem a
infraestrutura da Internet. Entre os protocolos que desempenham um papel crucial na troca
de dados, o Transmission Control Protocol (TCP) se destaca como um dos principais
responsáveis por garantir que a informação chegue ao seu destino de forma precisa e
ordenada. Desenvolvido na década de 1970 como parte do conjunto de protocolos TCP/IP, o
TCP não apenas permite a transmissão de dados, mas também implementa mecanismos
complexos para controle de erros, retransmissão de pacotes perdidos e gestão de
congestionamento.
2. Objetivos
2.1. Objetivo geral
O presente trabalho tem como objetivo explorar as características e o funcionamento do
protocolo TCP, discutindo sua importância no cenário das redes modernas e suas aplicações
em diversos serviços, como a navegação na web e a transferência de arquivos. Além disso,
serão abordados os desafios de segurança e desempenho enfrentados por este protocolo,
bem como as melhorias que têm sido implementadas ao longo do tempo. Ao compreender o
TCP, podemos apreciar melhor como ele contribui para a integridade e a eficiência da
comunicação em uma era em que a conectividade é essencial para o cotidiano e para os
negócios globais.
2.2. Objetivos específicos:
• Apresentar uma breve história do TCP
• Analisar o Funcionamento do TCP
• Explorar os Mecanismos de Confiabilidade
• Examinar Aplicações do TCP
• Comparar TCP com Outros Protocolos de Transporte
• Apresentar as vantagens e desvantagens do protocolo TCP
3. Fundamentação
O protocolo de controle de transmissão (TCP) é um dos principais protocolos da camada
de transporte no modelo OSI, sendo amplamente utilizado em redes IP para fornecer um meio
confiável de transmissão de dados entre dois dispositivos. o TCP é conhecido por sua
capacidade de garantir que os dados sejam entregues de forma completa e ordenada,
tornando-o fundamental para aplicações que exigem alta integridade e confiabilidade na
comunicação, como navegação na web, transferência de arquivos e e-mails.
3.1. Breve história do protocolo TCP
A história do Protocolo de Controle de Transmissão (TCP) está intimamente ligada ao
desenvolvimento da própria internet. Criado para resolver o desafio de comunicar redes
diferentes e garantir a confiabilidade na troca de dados, o TCP foi desenvolvido no contexto
do projeto ARPANET, uma rede pioneira que serviria como base para a internet que
conhecemos hoje.
Na década de 1960, a Agência de Projetos de Pesquisa Avançada de Defesa dos Estados
Unidos (DARPA) iniciou o desenvolvimento da ARPANET para conectar várias universidades e
instituições militares. Os cientistas por trás da ARPANET, incluindo Vinton Cerf e Robert Kahn,
perceberam a necessidade de um protocolo que permitisse a comunicação entre dispositivos
em redes diversas, cada uma com suas próprias especificações e características.
Os primeiros experimentos de rede, como o NCP (Network Control Protocol), foram
desenvolvidos para a ARPANET. No entanto, o NCP não possuía a capacidade de retransmitir
pacotes de dados perdidos ou garantir a entrega ordenada das mensagens, tornando-o
insuficiente para redes que continuavam a crescer em tamanho e complexidade.
Desenvolvimento de TCP/IP
Vinton Cerf e Robert Kahn são amplamente reconhecidos como os "pais da internet" por
seu trabalho no desenvolvimento do TCP/IP. Na década de 1970, eles começaram a trabalhar
em um novo protocolo que fosse capaz de garantir uma transmissão de dados confiável e
independente de rede. A ideia era simples, mas poderosa: dividir o protocolo de comunicação
em duas partes principais – uma parte de controle de transmissão (TCP) para garantir a
confiabilidade e uma parte de roteamento e endereçamento (IP).
Em 1974, Cerf e Kahn publicaram um artigo descrevendo o Transmission Control Protocol
(TCP), que visava resolver os problemas de confiabilidade e permitir uma comunicação
ordenada entre dispositivos. Esse protocolo logo se tornou a espinha dorsal do sistema de
comunicação da internet.
Inicialmente, o TCP era concebido para lidar tanto com a transmissão quanto com o
endereçamento dos pacotes de dados. No entanto, durante o desenvolvimento, percebeu-se
que essas duas funções poderiam ser divididas em dois protocolos separados: o TCP seria
responsável pelo controle de transmissão e confiabilidade dos dados, enquanto o IP (Internet
Protocol) se encarregaria do roteamento e endereçamento. Assim, nasceu a conhecida pilha
de protocolos TCP/IP.
Essa divisão foi formalizada em 1981, e o TCP/IP foi oficialmente adotado como padrão
para ARPANET em 1983. Essa transição representou um marco importante, pois permitiu que
qualquer dispositivo, independentemente da rede ou tecnologia subjacente, pudesse se
comunicar de forma confiável na internet.
Hoje, o TCP continua sendo um protocolo central para a internet. Ele foi atualizado ao
longo dos anos para melhorar a eficiência e o controle de congestionamento, mas suas
funções principais – confiabilidade, controle de fluxo e orientação de conexão – permanecem
essencialmente as mesmas. Graças ao TCP e ao IP, a internet é capaz de funcionar de maneira
robusta e escalável, permitindo uma comunicação confiável em escala global.
3.2. Características do TCP
As principais características do protocolo TCP incluem: Confiabilidades, controlo de fluxo,
controlo de congestionamento, orientado a conexão, segurança e reordenação, e
encapsulamento e transporte.
Confiabilidade: O TCP utiliza uma série de mecanismos para garantir que os dados sejam
entregues corretamente. Quando um pacote é enviado, o receptor responde com um
acknowledgment (ACK) para confirmar o recebimento. Caso o remetente não receba essa
confirmação, ele reenviará o pacote, evitando perdas de dados.
Controle de Fluxo: Esse protocolo emprega o controle de fluxo para regular a taxa de
envio de dados entre remetente e destinatário. O receptor especifica a quantidade de dados
que está pronto para processar através do uso de uma "janela de recepção" (window size),
ajudando a evitar sobrecarga.
Controle de Congestionamento: O TCP ajusta a quantidade de dados transmitidos com
base nas condições da rede. Quando ocorre congestionamento, o protocolo diminui a taxa de
transmissão para aliviar o tráfego e, em seguida, aumenta gradualmente a taxa de envio à
medida que a rede se estabiliza.
Orientado à Conexão: Diferente do UDP, o TCP é orientado à conexão, o que significa que
antes de qualquer dado ser enviado, é estabelecida uma conexão entre os dispositivos
envolvidos. Esse processo é realizado através do Three-Way Handshake:
• O remetente envia um pacote de sincronização (SYN).
• O receptor responde com um pacote SYN-ACK.
• O remetente confirma com um ACK, e a conexão está estabelecida.
Segmentação e Reordenação: O TCP segmenta grandes blocos de dados em pacotes
menores, facilitando o envio. No lado do receptor, o protocolo reordena esses pacotes,
garantindo que os dados sejam recebidos na sequência correta.
Encapsulamento e Transporte: Cada segmento TCP é encapsulado em um datagrama IP,
o que permite a transmissão dos dados pela rede. Como o IP é um protocolo sem conexão, o
TCP compensa essa característica, garantindo a confiabilidade e integridade dos dados
transmitidos.
3.3. Funcionamento do Protocolo TCP
Como podemos observar o diagrama abaixo, onde um cliente está iniciando uma conexão
com o servidor. Então o cliente é um opener ativo e o servidor é um opener passivo.
a) Como uma conexão TCP é estabelecida
TCP é um protocolo orientado a conexão, o que significa que uma conexão segura é
estabelecida entre dois hosts antes de enviar e receber os pacotes de dados reais entre esses
dois hosts. Isso é obtido estabelecendo uma conexão de handshake de três vias entre o
remetente e o destinatário. A seguir estão as etapas:
• O host que deseja enviar dados (cliente) primeiro envia um pacote com um sinalizador
SYN ao host receptor para estabelecer uma conexão.
• O host receptor responde (Servidor) com um pacote com um sinalizador SYN-ACK e
também reconhecendo a solicitação e indicando que está pronto para receber os
dados.
• O host de envio responde (Cliente) com um pacote ACK, confirmando que a conexão
foi estabelecida e os dados agora podem ser enviados.
• Os dados podem ser enviados e recebidos entre os dois hosts somente quando as
conexões forem estabelecidas usando pacotes TCP.
b) Transferência de Dados
Após o handshake, os dados são enviados em pacotes divididos. Cada pacote contém
informações sobre a sequência e um número de reconhecimento, o que ajuda o receptor a
ordenar e confirmar o recebimento dos pacotes.
c) Controle de Fluxo
O TCP ajusta o ritmo de envio de dados para evitar sobrecarregar o receptor, utilizando
um mecanismo chamado janela deslizante (sliding window). Esse mecanismo define a
quantidade de dados que pode ser enviada antes que o receptor confirme o recebimento.
d) Correção de Erros
Se um pacote é perdido ou corrompido, o TCP detecta isso por meio do número de
sequência e solicita que o pacote seja reenviado. Isso garante que todos os dados cheguem
de forma íntegra.
e) Encerramento da Conexão
Para encerrar a conexão, o TCP utiliza um processo de handshake de quatro vias, onde
ambos os lados enviam e confirmam pacotes FIN (Finish) e ACK, garantindo que todos os
dados foram transmitidos.
Da mesma forma, sempre que um host deseja encerrar sua conexão com outro host, o
TCP usa um processo de handshake de quatro vias para encerrar as conexões, onde ambos
os lados enviam e confirmam pacotes FIN (Finish) e ACK, garantindo que todos os dados foram
transmitidos.
• Uma extremidade envia um pacote FIN para sinalizar o fim da conexão.
• A outra extremidade responde com um pacote ACK para confirmar o recebimento do
pacote FIN.
• A outra extremidade envia seu próprio pacote FIN.
• O remetente original responde com um pacote ACK para confirmar o recebimento.
• Isso conclui o processo de handshake de quatro vias e a conexão é fechada.
3.4. Aplicações e Utilizações do TCP
Como já é do nosso conhecimento, o TCP é amplamente utilizado para garantir a entrega
confiável de dados em redes. Destacaremos a seguir algumas das aplicações e utilizações do
TCP:
Para a Transferência de Arquivos: O TCP é utilizado pelo FTP (File Transfer Protocol): para
garantir que os arquivos sejam transferidos de maneira completa e sem erros.
Para a Navegação na Web: A maioria das solicitações e respostas HTTP/HTTPS entre
navegadores e servidores web usa TCP para garantir que os dados sejam entregues de forma
correta e sequencial.
Para o envio ou recebimento de Email
• SMTP (Simple Mail Transfer Protocol): Utilizado para enviar emails, o SMTP funciona
sobre o TCP para garantir que as mensagens sejam enviadas corretamente.
• POP3 (Post Office Protocol) e IMAP (Internet Message Access Protocol): Esses
protocolos de recebimento de email também dependem do TCP para a transferência
segura de dados.
Para streaming de Mídia: Embora muitos serviços de streaming utilizem UDP para reduzir
a latência, alguns, como serviços de streaming de vídeo sob demanda, podem usar TCP para
garantir a entrega confiável de pacotes.
Para Jogos Online: Alguns jogos online que requerem confiabilidade e ordenação de
dados utilizam TCP para a troca de informações entre clientes e servidores.
Para conexões remotas
• SSH (Secure Shell): Utiliza TCP para fornecer uma conexão segura e confiável entre
um cliente e um servidor, permitindo acesso remoto.
Para VoIP (Voice over Internet Protocol): Enquanto muitos serviços de VoIP usam UDP,
alguns, como o Skype, utilizam TCP para garantir a entrega de mensagens e dados em sessões
de comunicação.
Para Aplicações de Mensagens Instantâneas: Aplicativos que requerem entrega
garantida de mensagens frequentemente usam TCP para assegurar que as mensagens
cheguem ao destino sem perda.
Para os serviços de Banco de Dados: Muitos sistemas de gerenciamento de banco de
dados utilizam TCP para comunicação entre clientes e servidores, garantindo que consultas e
transações sejam processadas de maneira segura.
3.5. Comparação entre TCP e UDP
A comparação entre TCP (Transmission Control Protocol) e UDP (User Datagram Protocol)
é importante para entender suas diferentes funcionalidades e quando usar cada um.
A principal diferença entre TCP (protocolo de controle de transmissão) e UDP (protocolo
de datagrama do usuário) é que o TCP é um protocolo baseado em conexão e o UDP é sem
conexão. Enquanto o TCP é mais confiável, ele transfere dados mais lentamente. O UDP é
menos confiável, mas funciona mais rapidamente. Isso torna cada protocolo adequado para
diferentes tipos de transferência de dados.
Protocolos são regras que governam como os dados são formatados e enviados por uma
rede. TCP e UDP são dois métodos diferentes para fazer o mesmo trabalho: transferir dados
pela internet. Eles permitem que servidores e dispositivos se comuniquem para que você
possa enviar e-mails, assistir Netflix, jogar e navegar em páginas da web.
a) Quanto a confiabilidade:
O TCP cria uma linha de comunicação segura para garantir a transmissão confiável de
todos os dados. Uma vez que uma mensagem é enviada, o recebimento é verificado para
garantir que todos os dados foram transferidos.
O UDP não estabelece uma conexão ao enviar dados. Ele envia dados sem confirmar o
recebimento ou verificar erros. Isso significa que alguns ou todos os dados podem ser
perdidos durante a transmissão.
b) Quanto ao controle de fluxo e congestionamento
O TCP inclui controle de fluxo e controle de congestionamento, o que significa que ele
ajusta a taxa de envio de dados com base na capacidade da rede, evitando
congestionamentos.
Ao passo que UDP não possui controle de fluxo ou de congestionamento. Os pacotes são
enviados sem considerar as condições da rede, o que pode resultar em perda de pacotes em
redes congestionadas.
c) Quanto a velocidade
O TCP geralmente é mais lento devido ao overhead associado à verificação de erros,
controle de fluxo e retransmissões.
Enquanto que UDP é mais rápido porque não realiza verificações de erro nem controle de
fluxo. Ideal para aplicações onde a velocidade é mais crítica do que a confiabilidade.
d) Quanto ao uso de recursos
O TCP consome mais recursos de sistema e largura de banda devido ao gerenciamento de
conexões e verificação de erros.
Ao contrário de TCP, o UDP consome menos recursos, pois não mantém estado de
conexão e não faz verificações.
e) Quanto a forma de aplicação
O TCP é bastante usado em aplicações que requerem alta confiabilidade, como navegação
na web (HTTP/HTTPS), transferências de arquivos (FTP) e e-mails (SMTP).
E o UDP é recomendado ser usado em aplicações que priorizam a velocidade e podem
tolerar alguma perda de dados, como streaming de vídeo e áudio, jogos online e VoIP (Voz
sobre IP).
3.6. Vantagens e Desvantagens do TCP
Quanto as vantagens do TCP destacam-se os seguintes aspetos:
• Confiabilidade: O TCP garante que os dados sejam entregues corretamente
através de mecanismos de controle de erro, retransmissão de pacotes perdidos e
confirmação de recebimento.
• Ordenação de Pacotes: Os dados são entregues na mesma ordem em que foram
enviados, o que é crítico para muitas aplicações.
• Controle de Fluxo: O TCP evita a sobrecarga na rede controlando a quantidade de
dados que podem ser enviados antes de receber uma confirmação.
E quanto as desvantagens podemos destacar os seguintes aspetos:
• Latência: A confiabilidade e o controle de fluxo do TCP podem introduzir latência,
tornando-o menos adequado para aplicações em tempo real.
• Sobrecarga de Cabeçalho: O TCP possui um cabeçalho maior do que o UDP,
resultando em maior uso de largura de banda para cada pacote.
4. Conclusão
O protocolo Transmission Control Protocol (TCP) desempenha um papel vital na
comunicação de dados em redes modernas, assegurando a entrega confiável e ordenada de
informações entre dispositivos. Ao longo deste trabalho, foi possível compreender como o
TCP estabelece e finaliza conexões, realiza a segmentação de dados, e implementa
mecanismos robustos de controle de erros e de fluxo. Essas características não apenas
garantem a integridade da transmissão, mas também tornam o TCP um pilar fundamental em
várias aplicações e serviços que sustentam a infraestrutura da Internet, como a navegação
web, o envio de e-mails e a transferência de arquivos.
Além disso, a análise das comparações entre o TCP e outros protocolos, como o UDP,
revelou a importância de escolher o protocolo adequado conforme o contexto e as
necessidades específicas de cada aplicação. Os desafios contemporâneos enfrentados pelo
TCP, especialmente em um mundo cada vez mais conectado, ressaltam a necessidade de
inovações e melhorias contínuas para assegurar a segurança e o desempenho do protocolo
em cenários emergentes, como a Internet das Coisas (IoT).
Referências
All about TCP. (2024). Retrieved from Fortinet:
[Link]
What is TCP and Why Is It Too Reliable for Making Calls? (2024, November 11). Retrieved from The
daily Egg: [Link]