35
TCP – Protocolo de Transporte TCP - TRANSMISSION CONTROL PROTOCOL Funcionamento e Conceito 280805 Bruno Roberto

SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

Embed Size (px)

DESCRIPTION

Uploaded from Google Docs

Citation preview

Page 1: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Protocolo de Transporte

TCP - TRANSMISSION CONTROL PROTOCOL

Funcionamento e Conceito

280805Bruno Roberto

Page 2: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 3: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 4: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Definição da RFC

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

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

Page 5: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Formato de mensagens

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

� O “segmento” consiste em:

� Cabeçalho TCP + área de dados TCP

Área de dados TCPCabeçalho TCP

Page 6: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Formato de mensagens

Área de dados TCPCabeçalho TCP

Porta de Origem TCP Porta de Destino TCP

DADOS

Número de sequência

Número do reconhecimentoHlen Reservado Flags Janela

CheckSum Ponteiro UrgenteOpções (se houver) Enchimento

Page 7: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

O DATAGRAMA TCP

Page 8: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

UDP – Formato de Mensagem

Cabeçalho TCP Área de Dados TCP

Área de Dados IPCabeçalho IP

Aplicação do Usuário

Cabeçalho Quadro Área de Dados do Quadro

Acesso

Internet

Host- to-Host

Aplicação

Page 9: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 10: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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.

Page 11: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 12: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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 TripTime)

� O TCP também possui o CHECKSUM para verificar a integridade de cada pacote

Page 13: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Protocolo Fiável

O Circuito Virtual - “VC”

Ocorrências na Instalação do Transmissor

Envia Pacote 1

Recebe a ACK 1

Envia o Pacote 2

Recebe a ACK 2

Ocorrências na Instalação do Receptor

Recebe o Pacote 1

Envia a ACK 1

Recebe o Pacote 2

Envia a ACK 2

Page 14: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Protocolo Fiável

“VC” – Problemas na Transmissão

Ocorrências na Instalação do Transmissor

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

Ocorrências na Instalação do

Receptor

Pacote deveria chegar

ACK deveria ser enviada

Recebe o Pacote 1

Envia a ACK 1

Page 15: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 16: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Conceito de Janela Deslizante

10987654321...

Janela Inicial

(a)

10987654321...

A Janela Desliza

(b)

Page 17: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 18: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Conceito de Janela DeslizanteEventos na

Instalação do Transmissor

Envia o pacote 1

Envia o pacote 2

Envia o pacote 3

Recebe a ACK 1

Recebe a ACK 2

Recebe a ACK 3

Eventos na Instalação do

Receptor

Recebe o Pacote 1

Envia a ACK 1

Recebe o Pacote 2

Envia a ACK 2

Recebe o pacote 3

Envia a ACK 3

Page 19: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Início de uma conexão

Open Ativo

� CLOSED

� SYN_SENT

� ESTABLISHED

Open Passivo

� LISTEN

� SYN_RECVD

� ESTABLISHED

SYN

SYN+ACK

ACK

3 WAY HANDSHAKE

Page 20: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Início de uma conexão

FULL DUPLEX

Conexão TCP Estabelecida, cria duas “estradas”

Page 21: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Término de uma conexão� ESTABLISHED

� FIN_WAIT

� FIN_WAIT 2

� TIME_WAIT

� ESTABLISHED

� CLOSE_WAIT

� LAST_ACK

� CLOSED

ACK

FIN

FIN

ACK

3 WAY HANDSHAKE modificado, para encerrar conexões

Page 22: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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/orPrivate Ports”

49152 à 65535

Page 23: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 24: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 25: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 26: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – VC entre 2 Sockets

� Exemplo de conexões estabelecidas:

� (200.165.8.2 , 4625) e (204.66.72.1 , 25)� (202.5.5.2 , 1185) e (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.

Page 27: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 28: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Conceito de Conexões

Servidor – 10.1.1.2

Porta TCP 25

Estação A

Estação B

Estação D

Estação F

(10.1.1.5, 1895) e (10.1.1.2, 25)

(10.1.1.5, 1696) e (10.1.1.2, 25)

(10.1.1.10, 2395) e

(10.1.1.2, 2

5)

(10.0.1.25, 2597) e

(10.1.1.2, 2

5)

(10.1

.5.1

), 1

056 e (

10.1.1

.2,

25)

(10.0.1.67, 1895) e (10.1.1.2, 25)

Page 29: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 30: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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 (MaximumTransfer Unit), que é a capacidade ou tamanho máximo que o Enlace consegue levar.

Page 31: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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)

Page 32: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

TCP – Exemplos de Portas Registradas

� 0/tcp Reserved� systat 11/tcp Active Users� ftp-data 20/tcp File Transfer [Default Data]� ftp 21/tcp File Transfer [Control]� smtp 25/tcp Simple Mail Transfer� pop3 110/tcp Post Office Protocol - Version

3� imap 143/tcp Internet Message Access

Protocol

Page 33: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

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

Page 34: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf
Page 35: SERVREDES - Aula 3 - TCP - Protocolo de Transporte.pdf

Fim