Você está na página 1de 35
TCP – Protocolo de Transporte TCP - TRANSMISSION CONTROL PROTOCOL Funcionamento e Conceito 280805 Bruno

TCP – Protocolo de Transporte

TCP - TRANSMISSION CONTROL PROTOCOL

Funcionamento e Conceito

280805

Bruno Roberto

OBJETIVO: Conceitos que devem ficar sobre o TCP TCP é um protocolo FIÁVEL Oferece confiança

OBJETIVO: Conceitos que devem ficar sobre o TCP

TCP é um protocolo FIÁVEL Oferece confiança na transferência, sob um protocolo de Rede não confiável Somente trabalha em cima de Circuito Virtual (VC) Orientado Principalmente à Circuito Virtual Aproveita melhor a velocidade de qualquer Rede (Conceito de Janela) Início e Fim de uma Conexão Virtual Conceito de Portas e SOCKET Flexibilidade para trabalhar em grande variedade de Redes

OBJETIVO: Conceitos que devem ficar sobre o TCP Mede periodicamente o Tempo de “Time Out”

OBJETIVO: Conceitos que devem ficar sobre o TCP

Mede periodicamente o Tempo de “Time Out” ou Round Trip Time Através do “Round Trip Time”, pode medir o tempo da Janela e ainda supor que o pacote foi perdido Conhecer as FLAG´s do TCP Conceito de MSS e Fragmentação O TCP é um protocolo de comunicação e não um software

TCP – Definição da RFC O Protocolo TCP é definido pela RFC 793, publicado pela

TCP – Definição da RFC

O Protocolo TCP é definido pela RFC 793, publicado pela primeira vez em 1981

http://www.ietf.org/rfc.html

TCP – Formato de mensagens Cada mensagem TCP é conhecida como “segmento de usuário”. O

TCP – Formato de mensagens

Cada mensagem TCP é conhecida como “segmento de usuário”.

O “segmento” consiste em:

Cabeçalho TCP + área de dados TCP

Cabeçalho TCP

Área de dados TCP

TCP – Formato de mensagens Cabeçalho TCP Área de dados TCP Porta de Origem TCP

TCP – Formato de mensagens

Cabeçalho TCP

Área de dados TCP

Formato de mensagens Cabeçalho TCP Área de dados TCP Porta de Origem TCP Porta de Destino
Formato de mensagens Cabeçalho TCP Área de dados TCP Porta de Origem TCP Porta de Destino

Porta de Origem TCP

Porta de Destino TCP

Número de sequência

Número do reconhecimento

Hlen

Reservado

Flags

Janela

CheckSum

Ponteiro Urgente

Opções (se houver)

Enchimento

DADOS

O DATAGRAMA TCP

O DATAGRAMA TCP
UDP – Formato de Mensagem Aplicação Host- to- Host Internet Acesso Aplicação do Usuário Cabeçalho

UDP – Formato de Mensagem

Aplicação

Host- to- Host

Internet

Acesso

Aplicação do Usuário
Aplicação do Usuário
to- Host Internet Acesso Aplicação do Usuário Cabeçalho TCP Área de Dados TCP Cabeçalho IP Área

Cabeçalho TCP

Área de Dados TCP

Aplicação do Usuário Cabeçalho TCP Área de Dados TCP Cabeçalho IP Área de Dados IP Cabeçalho
Aplicação do Usuário Cabeçalho TCP Área de Dados TCP Cabeçalho IP Área de Dados IP Cabeçalho

Cabeçalho IP

Área de Dados IP

Cabeçalho

Quadro

Área de Dados do Quadro

TCP – Protocolo Fiável

Conexão de Circuito Virtual

Antes que a transmissão se inicie, os programas aplicativos do transmissor e do receptor entram em “acordo” e iniciam um Circuito Virtual (VC)

Orientação do Stream

É o conjunto de bits, dividido em octetos (bytes) Segmento

TCP – Protocolo Fiável

Transmissão “bufferizada”

Reúne uma quantidade de pacotes para depois transmitir, para a Aplicação (no caso do recebimento) ou para a camada de Rede (no caso do envio)

Conexão “Full-Duplex”

Ao estabelecer um “VC”, é criado uma estrada de duas vias, aonde pode-se enviar e receber ao mesmo tempo, sem perdas. Ao final da Conexão, deve-se encerrar as duas vias.

TCP – Protocolo Fiável O Circuito Virtual - “VC” Como um protocolo pode oferecer uma

TCP – Protocolo Fiável O Circuito Virtual - “VC”

Como um protocolo pode oferecer uma transferência confiável se o sistema básico de comunicação (IP) é não confiável ?

A resposta é: O TCP utiliza uma técnica única e fundamental conhecida como confirmação positiva com retransmissão

TCP – Protocolo Fiável O Circuito Virtual - “VC” A técnica exige que um receptor

TCP – Protocolo Fiável O Circuito Virtual - “VC”

A técnica exige que um receptor comunique-se com

a origem, retornando uma mensagem de

confirmação (ACK), à medida que recebe os dados

Entre o envio de um pacote e o recebimento de um ACK, é computado o tempo de RTT (Round Trip Time)

O TCP também possui o CHECKSUM para verificar

a integridade de cada pacote

TCP – Protocolo Fiável O Circuito Virtual - “VC” Ocorrências na Instalação do Receptor Ocorrências

TCP – Protocolo Fiável O Circuito Virtual - “VC”

Ocorrências na Instalação do Receptor

Ocorrências na Instalação do Transmissor

 
 
Recebe o Pacote 1 Envia a ACK 1

Recebe o Pacote 1 Envia a ACK 1

  Recebe o Pacote 1 Envia a ACK 1 Recebe o Pacote 2 Envia a ACK
Recebe o Pacote 2 Envia a ACK 2

Recebe o Pacote 2 Envia a ACK 2

Envia Pacote 1

Recebe a ACK 1 Envia o Pacote 2

Recebe a ACK 2

TCP – Protocolo Fiável “VC” – Problemas na Transmissão Ocorrências na Instalação do Transmissor Ocorrências

TCP – Protocolo Fiável “VC” – Problemas na Transmissão

Ocorrências na Instalação do Transmissor

Ocorrências na Instalação do Receptor

Pacote deveria chegar ACK deveria ser enviada Recebe o Pacote 1 Envia a ACK 1
Pacote deveria chegar
ACK deveria ser enviada
Recebe o Pacote 1
Envia a ACK 1

Envia Pacote 1 Inicia o Timer (Round Trip Time)

A ACK chegaria normalmente nesta hora

O Timer Termina

Retransmite o Pacote 1 Inicia o Timer

Recebe o ACK 1 Cancela o Timer

TCP – Conceito de Janela Deslizante Um protocolo simples, de confirmação positiva (sem o conceito

TCP – Conceito de Janela Deslizante

Um protocolo simples, de confirmação positiva (sem o conceito de janela deslizante) gasta uma grande quantidade de largura de banda, porque precisa retardar a transmissão de um novo pacote, até que receba uma confirmação sobre o anterior.

O TCP é um protocolo de Janela deslizante, o que permite o mesmo, manter a rede completamente saturada de pacotes. Obtendo assim, um “throughput” substancialmente maior do que um protocolo simples de confirmação positiva

TCP – Conceito de Janela Deslizante Janela Inicial 1 2 3 4 5 6 7

TCP – Conceito de Janela Deslizante

Janela Inicial

1

2

3

4

5

6

7

8

9

10

(a)

A Janela Desliza

1 2 3 4 5 6 7 8 9 10 (a) A Janela Desliza 1 2

1

2

3

4

5

6

7

8

9

10

(b)

TCP – Conceito de Janela Deslizante No próximo Slide veremos um exemplo de três pacotes

TCP – Conceito de Janela Deslizante

No próximo Slide veremos um exemplo de três pacotes transmitidos com um protocolo de janela deslizante. O conceito principal é que o transmissor pode transmitir todos os pacotes da janela sem aguardar uma confirmação

TCP – Conceito de Janela Deslizante Eventos na Instalação do Transmissor Eventos na Instalação do

TCP – Conceito de Janela Deslizante

Eventos na Instalação do Transmissor

Eventos na Instalação do Receptor

do Transmissor Eventos na Instalação do Receptor Envia o pacote 1 Envia o pacote 2 Envia
do Transmissor Eventos na Instalação do Receptor Envia o pacote 1 Envia o pacote 2 Envia

Envia o pacote 1

Envia o pacote 2

Envia o pacote 3

Recebe a ACK 1

Recebe o Pacote 1 Envia a ACK 1 Recebe o Pacote 2 Envia a ACK 2 Recebe o pacote 3 Envia a ACK 3

Recebe a ACK 2

Recebe a ACK 3

TCP – Início de uma conexão

Open Ativo CLOSED

SYN_SENT

ESTABLISHED

de uma conexão Open Ativo CLOSED SYN_SENT ESTABLISHED SYN SYN+ACK ACK Open Passivo LISTEN SYN_RECVD

SYN

uma conexão Open Ativo CLOSED SYN_SENT ESTABLISHED SYN SYN+ACK ACK Open Passivo LISTEN SYN_RECVD ESTABLISHED 3

SYN+ACK

Open Ativo CLOSED SYN_SENT ESTABLISHED SYN SYN+ACK ACK Open Passivo LISTEN SYN_RECVD ESTABLISHED 3 WAY
ACK
ACK

Open Passivo LISTEN

SYN_RECVD

ESTABLISHED

TCP – Início de uma conexão

Conexão TCP Estabelecida, cria duas “estradas”

TCP – Início de uma conexão Conexão TCP Estabelecida, cria duas “estradas” FULL DUPLEX
TCP – Início de uma conexão Conexão TCP Estabelecida, cria duas “estradas” FULL DUPLEX
TCP – Início de uma conexão Conexão TCP Estabelecida, cria duas “estradas” FULL DUPLEX
TCP – Início de uma conexão Conexão TCP Estabelecida, cria duas “estradas” FULL DUPLEX
TCP – Início de uma conexão Conexão TCP Estabelecida, cria duas “estradas” FULL DUPLEX
TCP – Início de uma conexão Conexão TCP Estabelecida, cria duas “estradas” FULL DUPLEX

FULL DUPLEX

TCP – Término de uma conexão

ESTABLISHED

FIN_WAIT

FIN_WAIT 2 TIME_WAIT

conexão ESTABLISHED FIN_WAIT FIN_WAIT 2 TIME_WAIT FIN ACK FIN ACK ESTABLISHED CLOSE_WAIT LAST_ACK

FIN

ESTABLISHED FIN_WAIT FIN_WAIT 2 TIME_WAIT FIN ACK FIN ACK ESTABLISHED CLOSE_WAIT LAST_ACK

ACK

ESTABLISHED FIN_WAIT FIN_WAIT 2 TIME_WAIT FIN ACK FIN ACK ESTABLISHED CLOSE_WAIT LAST_ACK CLOSED 3

FIN

ESTABLISHED FIN_WAIT FIN_WAIT 2 TIME_WAIT FIN ACK FIN ACK ESTABLISHED CLOSE_WAIT LAST_ACK CLOSED 3 WAY
ESTABLISHED FIN_WAIT FIN_WAIT 2 TIME_WAIT FIN ACK FIN ACK ESTABLISHED CLOSE_WAIT LAST_ACK CLOSED 3 WAY

ACK

ESTABLISHED

CLOSE_WAIT

LAST_ACK

CLOSED

TCP – Conceito de Portas – Como Funciona Portas conhecidas: “Well Known Ports” 0 à

TCP – Conceito de Portas – Como Funciona

Portas conhecidas: “Well Known Ports” 0 à 1023

Portas Registradas “Registered Ports” 1024 à 49151

Portas Dinâmicas e/ou Privadas “Dynamic and/or Private Ports”

49152 à 65535

TCP – Conceito de Portas – Como Funciona São definidas pelo IANA http://www.iana.org/assignments/port- numbers

TCP – Conceito de Portas – Como Funciona

São definidas pelo IANA

http://www.iana.org/assignments/port- numbers

Definições do IANA valem para o TCP e o UDP

TCP – Conceito de Socket

O TCP utiliza a conexão (VC), e não a porta de protocolo, como sua ABSTRAÇÃO PRINCIPAL.

As conexeções são identificadas por um par de pontos terminais

TCP – Conceito de Socket

O TCP define um “Ponto Terminal” como um par de números inteiros (host, porta)

Host é o endereço IP para um host Porta, é uma porta TCP naquele host

Exemplo:

Ponto terminal: 200.50.6.2 , 25 Ponto Terminal é chamado de SOCKET

TCP – VC entre 2 Sockets

Exemplo de conexões estabelecidas:

(200.165.8.2 , 4625) e

(202.5.5.2 , 1185) e

(204.66.72.1 , 25) (204.66.72.1 , 25)

Pode parecer estranho que duas conexões possam utilizar a porta TCP 25 na máquina 204.66.72.1 simultaneamente, mas, não há problemas nisto.

TCP – Várias Conexões na Mesma Porta

Já que o TCP identifica uma conexão por meio de um par de pontos terminais (2 socket´s), determinado número de portas TCP pode ser compartilhado por várias conexões na mesma máquina

TCP – Conceito de Conexões

Servidor – 10.1.1.2

Porta TCP 25 Estação A (10.1.1.5, 1895) e (10.1.1.2, 25) Estação B (10.1.1.5, 1696) e
Porta TCP 25
Estação A
(10.1.1.5, 1895) e (10.1.1.2, 25)
Estação B
(10.1.1.5, 1696) e (10.1.1.2, 25)
Estação F
Estação D
(10.1.1.10, 2395) e (10.1.1.2, 25)
(10.0.1.67, 1895) e (10.1.1.2, 25)
(10.0.1.25, 2597) e (10.1.1.2, 25)
(10.1.5.1), 1056 e (10.1.1.2, 25)
TCP - Flags URG – Ponteiro Urgente é válido ACK – Campo de reconhecimento PSH

TCP - Flags

URG – Ponteiro Urgente é válido ACK – Campo de reconhecimento PSH – Segmento requer Push RST – Restabelecer conexão SYN – Sincronizar os números de sequência FIN – Pedido para finalizar a conexão

TCP – Conceito de Fragmentação Quando um determinado conjunto de dados a ser transportado excede

TCP – Conceito de Fragmentação

Quando um determinado conjunto de dados a ser transportado excede o “limite de carga”, estes dados são divididos em vários pacotes para que possam trafegar dentro do padrão da rede. Este limite dentro da camada TCP é chamada de MSS (maximum segment size)

O MSS, é definido de acordo com o MTU (Maximum Transfer Unit), que é a capacidade ou tamanho máximo que o Enlace consegue levar.

TCP – Siglas Importantes MSS (Maximum Segment Size) MTU (Maximum Transfer Unit) RTT (Round Trip

TCP – Siglas Importantes

MSS (Maximum Segment Size) MTU (Maximum Transfer Unit) RTT (Round Trip Time) MSL (Maximum Segment LifeTime) SOCKET (IP + Porta) STREAM (Conjunto de Segmentos)

TCP – Exemplos de Portas Registradas 0/tcp Reserved systat ftp-data ftp smtp pop3 11/tcp 20/tcp

TCP – Exemplos de Portas Registradas

0/tcp

Reserved

systat ftp-data ftp smtp pop3

systat ftp-data ftp smtp pop3

systat ftp-data ftp smtp pop3
systat ftp-data ftp smtp pop3

11/tcp

20/tcp

21/tcp

25/tcp

110/tcp

Active Users File Transfer [Default Data] File Transfer [Control] Simple Mail Transfer Post Office Protocol - Version

Active Users File Transfer [Default Data] File Transfer [Control] Simple Mail Transfer Post Office Protocol -
Active Users File Transfer [Default Data] File Transfer [Control] Simple Mail Transfer Post Office Protocol -
Active Users File Transfer [Default Data] File Transfer [Control] Simple Mail Transfer Post Office Protocol -
Active Users File Transfer [Default Data] File Transfer [Control] Simple Mail Transfer Post Office Protocol -

3

imap Protocol

143/tcp

Internet Message Access

A “Máquina de Estado” TCP Por ser um Protocolo Baseado em Conexões, CADA conexão TCP

A “Máquina de Estado” TCP

Por ser um Protocolo Baseado em Conexões, CADA conexão TCP pode passar por vários “Estados de Conexão”

É a “especificação funcional” do TCP

São 11 ESTADOS em que um Host que esta utilizando o TCP, pode se encontrar

Fim