• Nenhum resultado encontrado

Protocolo TCP Transmission Control Protocol Volnys Borges Bernal

N/A
N/A
Protected

Academic year: 2021

Share "Protocolo TCP Transmission Control Protocol Volnys Borges Bernal"

Copied!
32
0
0

Texto

(1)

Protocolo TCP

Transmission Control Protocol

Volnys Borges Bernal

[email protected]

(2)

Introdução

Segmento TCP

Estados TCP

Estabelecimento de conexão

Troca de dados

Encerramento de conexão

Utilitários

(3)

Introdução ao Protocolo TCP

(4)

TCP = “Transport Control Protocol”

Protocolo da camada de transporte

Objetivo

Protocolo da camada de transporte para permitir comunicação entre apliações

Algumas características

Orientado a conexão: é necessário estabelecimento de conexão entre emissor e receptor antes de enviar um pacote TCP

Ponto a ponto: conexão é estabelecida entre dois processos

Confiável: se um pacote não for entregue ele é retransmitido

Entrega ordenada: reconstrói a ordem correta dos pacotes

Controle de fluxo: usa janela deslizante para controle de fluxo

Porta TCP

Processo fica associado a uma porta TCP

Forma indireta para identificação do processo associado ao serviço

(5)

Introdução ao Protocolo TCP

Ethernet

Meio físico

DNS

IP Aplicações Camada de

Aplicação

Camada intra-rede

Camada de redes Camada de

transporte

TCP UDP

ARP RARP

ICMP IGMP

Fast Ethernet

Gigabit Ethernet

PPP SLIP Frame Relay

HTTP FTP Telnet SMTP POP NFS SMB NetBios

(6)

Ethernet

Meio Físico

IP

Processos

UDP

ARP RARP ICMP IGMP

TCP HTTP

UNIX Kernel

Device Driver

Placa de Rede

Ethernet

IP UDP

ARP RARP ICMP IGMP

TCP HTTP

WEB

TCP 80

TCP 1054

(7)

Segmento TCP

(8)

Ponteiro de urgência (16 bits)

Checksum do pacote TCP (16 bits)

conteúdo

CabeçalhoCarga

(16 bits) (16 bits)

Número de seqüência (32 bits)

Número de acknowledgment (32 bits)

Opções (opcional) (32 bits)

Tamanho da janela (16 bits)

Compr.

(4 bits)

Reservado (6 bits)

U R G

A C K

P S H

R S T

S Y N

F I N

(9)

Segmento TCP

Porta TCP na origem

Valor de 1 a 65535

Porta TCP no destino

Valor de 1 a 65535

Número de seqüência

Numero de seqüência do pacote sendo transmitido

Número de acknowledgment

Número de seqüência do último pacote recebido acrescido de 1

Comprimento do cabeçalho

Comprimento do cabeçalho (em palavras de 32 bits)

(10)

SYN (Synchronize)

Pedido de sincronização de números de seqüência

Utilizado no estabelecimento da conexão

FIN (Finalize)

Pedido de término de conexão

ACK (Acknowledgment)

confirmação de recebimento

(11)

Segmento TCP

Flags (cont.)

URG (Urgent)

dados com urgência foram colodados no fluxo de dados

localização: “ponteiro de urgência” + “número de seqüência”

PSH (Push)

receptor deve passar os dados recebidos para a aplicação o quanto antes

RST (Reset)

pedido de reset da conexão

enviado geralmente após o recebimento de um pacote que

aparentemente não satisfaz o número de seqüênica esperado

(12)

code

(8 bits) Dados Cabeçalho IP

code

(8 bits) Conteúdo TCP Cabeçalho

TCP

IP

TCP

(13)

Estados TCP

(14)

ESTABLISHED SYN_SENT

FIN_WAIT_1

FIN_WAIT_2

TIME_WAIT

CLOSE_WAIT

LAST_ACK Processo: open ativo

Send:SYN

Recv: SYN,ACK Send:ACK

processo: close Send:FIN

Recv: ACK

Recv: FIN Send: ACK Após ~2min

Recv: FIN Send:ACK

Send: FIN Recv: ACK

Processo pede finalização

Parceiro pele

finalização

(15)

Estados TCP

Servidor

Recv: SYN

Send:SYN,ACK

ESTABLISHED LISTEN

SYN_RCVD

FIN_WAIT_1

FIN_WAIT_2

TIME_WAIT

CLOSE_WAIT

LAST_ACK Recv: ACK

processo: close Send:FIN

Recv: ACK

Recv: FIN Send: ACK Após ~2min

Recv: FIN Send:ACK

Send: FIN Recv: ACK

Parceiro pede finalização Processo pele

finalização

(16)

Estados TCP:

Estabelecimento de conexão

(17)

Estabelecimento de conexão

CLOSED CLOSED

Cliente Servidor

(18)

LISTEN

CLOSED CLOSED

Cliente Servidor

Open Passivo

(19)

Estabelecimento de conexão

LISTEN Open Ativo

SYN_SENT SYN

CLOSED CLOSED

Cliente Servidor

Open Passivo

(20)

SYN_RCVD SYN, ACK

LISTEN Open Ativo

SYN_SENT

SYN

Open Passivo CLOSED

CLOSED

Cliente Servidor

(21)

Estabelecimento de conexão

ESTABLISHED

SYN_RCVD LISTEN Open Ativo

SYN_SENT CLOSED

CLOSED

Cliente Servidor

Open Passivo

SYN, ACK SYN

ACK

(22)

ESTABLISHED

Tree Way Handshake !!!

(Negociação em 3 passos)

ESTABLISHED

SYN_RCVD LISTEN Open Ativo

SYN_SENT CLOSED

CLOSED

Cliente Servidor

Open Passivo

SYN, ACK SYN

ACK

(23)

Estados TCP:

Encerramento de conexão

(24)

Close ativo

FIN ESTABLISHED

FIN_WAIT

ESTABLISHED

(25)

Encerramento de conexão

CLOSE_WAIT ACK

FIN ESTABLISHED

FIN_WAIT

ESTABLISHED

Close ativo

(26)

FIN_WAIT2 FIN

LAST_ACK CLOSE_WAIT ESTABLISHED

FIN_WAIT

ESTABLISHED

ACK

FIN

Close ativo

(27)

Encerramento de conexão

CLOSE ACK

TIME_WAIT FIN_WAIT2

LAST_ACK CLOSE_WAIT ESTABLISHED

FIN_WAIT

ESTABLISHED

FIN

ACK

Close ativo FIN

(28)

CLOSE TIME_WAIT

FIN_WAIT2

LAST_ACK CLOSE_WAIT ESTABLISHED

FIN_WAIT

ESTABLISHED

CLOSE

2 min.

ACK

FIN

ACK

Close ativo FIN

(29)

Utilitários

(30)

Permite verificar as conexões TCP estabelecidas e as portas TCP abertas aguardando conexões

# netstat -na | more

Proto RecQ SendQ Local Remore State

,,,

(31)

Bibliografia deste módulo

(32)

Referências

Redes de Computadores: das LANs MANs e WANs às Redes ATM.

SOARES, LUIZ F. G.

Editora Campus. 1995

Computer Networks.

TANENBAUM, ANDREW S.

3rd edition. Prentice Hall 1996.

Referências

Documentos relacionados