servredes - aula 3 - tcp - protocolo de transporte.pdf
DESCRIPTION
Uploaded from Google DocsTRANSCRIPT
TCP – Protocolo de Transporte
TCP - TRANSMISSION CONTROL PROTOCOL
Funcionamento e Conceito
280805Bruno Roberto
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” 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 primeira vez em 1981
� http://www.ietf.org/rfc.html
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
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
O DATAGRAMA TCP
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
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 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 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
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
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
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
10987654321...
Janela Inicial
(a)
10987654321...
A Janela Desliza
(b)
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 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
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
TCP – Início de uma conexão
FULL DUPLEX
Conexão TCP Estabelecida, cria duas “estradas”
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
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
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 (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.
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
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)
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 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.
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 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
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