Você está na página 1de 15

DEPARTAMENTO DE ENGENHARIA

TEMA:

PROTOCOLO TCP: ESTRUTURA DOS SEGMENTOS

O Docente:

Mateus Kudimana

Ano lectivo 2023/2024

1
DEPARTAMENTO DE ENGENHARIA

TEMA:

PROTOCOLO TCP: ESTRUTURA DOS SEGMENTOS

Disciplina: Redes de computador

Curso: Engenharia Mecatrónica

Ano curricular: III

Período: Laboral

Grupo nº: V
Integrantes do grupo

António Camulandi 20210049

Carlos Gonçalves 2021****

Carlos Sebastião 20213563

Jerónimo Chicoma 2021****

Raimundo de Jesus 20212138


ÍNDICE

INTRODUÇÃO ............................................................................................................................................................ 6
DESENVOLVIMENTO ............................................................................................................................................... 7
Buffer TCP de envio e de recepção ............................................................................................................................... 7
Estrutura do segmento TCP .......................................................................................................................................... 8
Número de sequência ................................................................................................................................................... 9
Número de reconhecimento ....................................................................................................................................... 10
Estimativa do tempo de viagem de ida e volta e de esgotamento de temporização..................................................... 11
Estimativa do tempo de viagem de ida e volta – RTT (Round-Trip Time)....................................................................... 11
Estimativa do tempo de viagem de ida e volta e de esgotamento de temporização..................................................... 12
Transferência confiável de dados ................................................................................................................................... 13
CONCLUSÃO ............................................................................................................................................................ 14
BIBLIOGRAFIA .................................................................................................................................................................. 15
5
INTRODUÇÃO

O TCP foi proposto por dois pesquisadores: Vinton Gary Cerf e Robert Elliot Kahn, eles
receberam vários prémios, entre eles o premio mais famoso da computação, que é o Turing
Award, justamente pelos trabalhos relacionados ao TCP, como vocês vão ver o TCP é, em
outras palavras o cérebro da internet, é o protocolo que permite que diversas aplicações possam
realmente funcionar. Então vamos agora explicar as características principais do TCP, uma
visão geral sem entrar em detalhes.

1) Ponto-a-ponto: ou seja, a gente tem um transmissor e um receptor que estão localizados


na borda da internet;
2) Orientado a conexão: existe uma apresentação prévia, antes dos dados serem enviados
de um sistema final para outro, é necessária uma primeira apresentação (troca de
mensagens por controle). Ex: antes que você tenha começado a receber os dados
referentes a um vídeo que você assistirá a qualquer momento, é necessário que o seu
navegador primeiro estabelecesse uma conexão com o servidor do youtube justamente
com o protocolo TCP;
3) Confiável: utiliza retransmissões para garantir a entrega dos pacotes;
4) Dados full – duplex;
5) Pipelined : transmissão de vários pacotes sem confirmação;
6) Controle de fluxo: transmissor não esgota a capacidade do receptor;
7) Controle de congestionamento: reduz transmissão quando detecta congestionamento na
rede.

6
DESENVOLVIMENTO

TCP (Transmission Control Protocol) é um protocolo da camada de transporte,


orientado a conexão. Ele é responsável pela divisão da mensagem em datagramas,
reagrupamento e retransmissão no caso de datagramas perdidos.

Dentre suas principais vantagens, podemos destacar a segurança quanto à


reposição de pacotes perdidos e ordenação desses pacotes.

Buffer TCP de envio e de recepção

A internet nada mais é do que aplicações ou processos que se comunicam, a


gente tem um processo que está em execução em um sistema final se comunicando com
um outro processo que está em outra máquina, por exemplo o navegador, o Google
Chrome ou um outro, você tem um processo que está em execução, vai escrever dados e
enviar para a camada de transporte pelo socket (porta), em que na qual terá um buffer,
que é um espaço de memória para armazenar os dados a serem enviados. E no destino
terá um Buffer de recepção, onde os dados estarão armazenados e depois serem
enviados para a camada de transporte.

7
Estrutura do segmento TCP

Primeiramente temos a porta de origem que é utilizado para multiplexação , para


poder receber, endereçar vários processos que estão em execução no emissor. A seguir
temos a porta de destino utilizado para desmultiplexação disso qualquer protocolo da
câmara de transporte tem que ter. e agora vem a novidade, o TCP tem dois campos e 32
bits, que são o número de sequência e o número de reconhecimento, eles são usados
para oferecer o serviço de confiabilidade usados para garantira entrega dos pacotes
juntamente com a retransmissão.

O TCP tem um comprimento de cabeçalho com 4 bytes, um espaço não


utilizado, um espaço com vários bits em que cada campo tem apenas um bit de 0 ou 1,
alguns deles na prática não são usados, como o primeiro e o terceiro, deste modo na
prática é utilizado o segundo, o quarto, o quinto e o sexto. Onde os três últimos são
utilizados no estabelecimento de conexão, já o segundo é usado para indicar se o
segmento contém um reconhecimento para um segmento que foi recebido com sucesso.
O TCP também tem a janela de recepção que é utilizado para oferecer o controle de
fluxo e também o controle de congestionamento, um campo para a soma de verificação
da internet, um campo de ponteiro de urgência e outro de opções que não são usados na
prática.

8
Número de sequência

O TCP vê os dados como uma cadeia de bytes e com isso, o número de


sequência para um determinado segmento é o número do primeiro byte do segmento.

Como por exemplo: imagina que você tem um Host A que quer mandar dados
para o Host B pelo TCP, e o A tem uma cadeia de dados para transmitir e ele vai
numerar os dados, bytes 0, bytes 1, bytes 2, e assim por diante, e esta cadeia tem 500
mil bytes e que o MSS (tamanho máximo de um segmento, é um valor que determina o
tamanho máximo de campo de dados de um segmento) é mil bytes.

Considerando este exemplo, nós temos que o primeiro segmento vai começar do
byte 0 até o byte 999, de forma que o número de sequência do mesmo segmento será 0,
e o número de sequência do segundo segmento será o seu primeiro byte, que neste caso
é o mil e terceiro será 2 mil e assim por diante.

9
Número de reconhecimento

O número de segmento que o hospedeiro A atribui a seu segmento é o número


de sequência do próximo byte que ele estiver aguardando do hospedeiro B.

Como por exemplo: primeiramente, devemos nos lembrar que o TCP é full-
duplex, os dados são enviados nos dois sentidos, e A e B estão trocando dados via TCP.
Então vamos supor que A recebeu um segmento do hospedeiro B contendo os bytes de
0 a 535 e depois recebeu outro segmento contendo os bytes de 900 a 1000. Veja que ele
não recebeu o segmento que começa com o byte 536, significa que o próximo segmento
que A vai enviar para B vai conter justamente 536 no campo de reconhecimento (como
se A estivesse dizendo para B: me manda o pacote de segmento que começa com o byte
536).

 Números de sequência: número do primeiro byte nos segmentos de dados;


 ACKs: número do próximo byte esperado do outro lado.

10
Estimativa do tempo de viagem de ida e volta e de esgotamento de
temporização

O TCP utiliza um mecanismo de controle de temporização/retransmissão para


recuperar segmentos perdidos. Em um protocolo real como o TCP , surgem problemas
de implementação de um mecanismo de controle de temporização/retransmissão como
por exemplo, estimar o tempo de viagem de ida e volta da conexão - RTT (a duração
dos intervalos de controle deve ser maior do que o RTT, evitando o envio de
retransmissões desnecessárias).

Estimativa do tempo de viagem de ida e volta – RTT (Round-Trip


Time)

O RTT para um segmento, denominado RTTamostra, é a quantidade de tempo


transcorrido entre o momento em que o segmento é enviado (isto é, passado ao IP) e o
momento em que é recebido um reconhecimento para o segmento. Ao invés de medir
um RTTamostra para cada segmento transmitido, a maioria das implementações de TCP
executa apenas uma medição de RTTamostra por vez. Isto é, em qualquer instante, o
RTTamostra estará sendo estimado para apenas um dos segmentos transmitidos mas
ainda não reconhecidos, o que resulta em um novo valor de RTTamostra para
aproximadamente cada RTT. E mais, o TCP nunca computa um RTTamostra para um
segmento que foi retransmitido; apenas mede-o para segmentos que foram transmitidos
uma vez.

11
Estimativa do tempo de viagem de ida e volta e de esgotamento de
temporização

Os valores de RTTamostra sofrerão variação de segmento para segmento devido


a congestionamento nos roteadores e a variações de carga nos sistemas finais. Por causa
dessa variação, qualquer dado valor de RTTamostra pode ser atípico. Portanto, para
estimar um RTT típico, é natural tomar alguma espécie de média dos valores de
RTTamostra. O TCP mantém uma média, denominada RTTestimado, dos valores de
RTTamostra. Ao obter um novo RTTamostra, o TCP atualiza RTTestimado de acordo
com a seguinte fórmula:

RTTestimado = (1 - a) * RTTestimado + a * RTTamostra

Esta fórmula está escrita sob a forma de um comando de linguagem de


programação. O valor recomendado de a é a = 0,125 (isto é, 1/8) [RFC 2988 ], caso em
que essa fórmula de torna:

RTTestimado = 0,875 * RTTestimado + 0,125 * RTTamostra

Onde RTTestimado é uma média ponderada dos valores de RTTamostra. Essa


média ponderada atribui um peso maior às amostras recentes do que às amostras
antigas.

Observação: O valor de "a" determina o peso das amostras mais recentes no


cálculo da média, por exemplo, se "a" vale 0,125, a última amostra analisada terá peso
de 12,5% no valor de RTTestimado.

Além de ter uma estimativa do RTT, também é valioso ter uma medida de sua
variabilidade. O [RFC 2988 ] define a variação do RTT, RTTdesvio, como uma
estimativa do desvio típico entre RTTamostra e RTTestimado:

RTTdesvio = (1 - b) * RTTdesvio + b * | RTTamostra - RTTestimado |

Onde RTTdesvio é uma MMEP (Média Móvel Exponencial Pura) da diferença


entre RTTamostra e RTTestimado. Se os valores de RTTamostra apresentarem pouca
variação, então RTTdesvio será pequeno; por outro lado, se houver muita variação,
RTTdesvio será grande. O valor recomendado para b é 0,25.

12
Transferência confiável de dados

 Usa reconhecimentos positivos, temporizadores, números de sequência e


paralelismo;
 Recuperação de perdas de segmentos Retransmissão rápida;
 Ignora os ACKs duplicados;
 Ignora controle de fluxo e de congestionamento;
 RFC 2581: Três ACKs duplicados ® retransmite o segmento que Falta;
 Reconhecimento cumulativo evita a retransmissão do primeiro segmento.

13
CONCLUSÃO

A maior parte dos ataques à Web, atualmente, exploram vulnerabilidades apresentadas


no gerenciamento das conexões TCP. Além disso, importante observar, que o
estabelecimento da conexão TCP interfere, significativamente, nos atrasos percebidos
em nossa navegação. Portanto, saber como as conexões TCP são estabelecidas e
finalizadas, possibilitando gerenciá-las, é bastante importante para garantia da
confiabilidade inerente ao protocolo TCP.

Para envio de pacotes entre hospedeiros, via TCP , é necessário, previamente, o


estabelecimento de uma conexão entre cliente e servidor. Para tanto, são necessárias três
etapas, comumente chamada de apresentação de 3 vias (3 way handshake), conforme
detalhado abaixo.

1) o lado cliente do TCP encapsula e envia ao servidor, em um datagrama IP, um


segmento contendo um bit de flag SYN ativado em 1(requisição de
estabelecimento de conexão) e um número de sequência inicial escolhido
aleatoriamente pelo próprio cliente. Esse segmento é chamado TCP SYN;
2) o servidor, por sua vez, ao receber datagrama IP, extrai o segmento TCP SYN,
aloca buffers e variáveis para conexão TCP e envia um segmento de aceitação
de conexão, chamado SYNACK, contendo um bit de flag SYN ainda ativado
em 1 e um ACK de reconhecimento do número de sequência inicial do cliente,
juntamente com a informação de sequência inicial do servidor;
3) por fim, o cliente recebe o SYNACK, reserva buffers e variáveis para a conexão
TCP, enviando um
segmento contendo um ACK de reconhecimento do número de sequência inicial
do servidor, o próximo número de sequência do cliente e um bit de flag SYN
ajustado em zero (conexão já estabelecida).

14
BIBLIOGRAFIA

Cavalcanti, E. R. (2022). Protocolo TCP. Estrutura do segmento. Brazil.

KUROSE,J. F.; ROSS,K. W. Redes de Computadores e a Internet - Uma abordagem


top-down, 3ª Edição

https://pt.wikibooks.org/w/index.php? title=Redes_de_computadores/Protocolo_TCP&o
ldid=468273

15

Você também pode gostar