Você está na página 1de 28

Camada de Transporte

Lliam B. Leal

Protocolos e Servios de Transporte

Fornecem comunicao lgica entre aplicaes em diferentes hospedeiros

processos

de

Os protocolos de transporte so executados nos sistemas finais (protocolos fim-a-fim)


Lado emissor: quebra as mensagens da aplicao em segmentos e envia para a camada de rede. Lado receptor: remonta os segmentos em mensagens e passa para a camada de aplicao. Internet: TCP e UDP

H mais de um protocolo disponvel para as aplicaes:

Protocolos e Servios de Transporte

Camada de Transporte x Camada de Rede

Camada de rede: comunicao lgica entre os hospedeiros; Camada de transporte: comunicao lgica entre os processos;

Depende dos servios da camada de rede.

Analogia com uma casa familiar:


12 crianas enviam cartas para 12 crianas:

Processos = crianas; Mensagens da aplicao = cartas; Hospedeiros = casas; Protocolos de transporte: Ana e Joo; Protocolo de camada de rede: servio postal.

Protocolos da camada de transporte da internet

Confivel, garante ordem de entrega: TCP


Controle de congestionamento Controle de fluxo Orientado a conexo Extenso do melhor esforo do IP Garantia a atrasos Garantia de banda

No confivel, sem ordem de entrega: UDP

Servios no disponveis:

Multiplexao / Demultiplexao

Multiplexao no hospedeiro do emissor:

Coleta de dados de multiplos sockets, envelopa os dados com cabealhos (usado depois para demultiplexar)

Demultiplexao no hospedeiro do receptor:

Entrega os segmentos recebidos ao socket correto.

Como funciona a demutiplexao

O comutador recebe o datagrama IP


Cada datagrama possui endereo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nmeros de porta de origem e destino (lembre-se: nmeros de porta bem conhecidos para aplicaes especficas)

O hospedeiro usa endereo IP e nmeros de porta para direcionar o segmento ao socket apropriado.

Demultiplexao

Demultiplexao no orientada a conexo:


O socket UDP identificado por dois valores:

Endereo Ip de destino e porta de destino

Datagramas com IP de origem diferentes e/ou portas de origem diferentes so direcionados para o mesmo socket.

Demultiplexao

Demultiplexao orientada a conexo:

Socket TCP identificado por 4 valores:


Endereo IP de origem; Endereo porta de origem; Endereo IP de destino; Endereo porta destino;

O hospedeiro servidor pode suportar vrios sockets TCP simultneos:

Cada socket identificado pelos seus prprios 4 valores; Servidores Web possuem sockets diferentes para cada cliente conectado;

UDP

Protocolo de transporte da internet sem gordura (simplificado); Servio best effort, os segmentos UDP podem ser:

Perdidos Entregues fora da ordem para a aplicao

Sem conexo

No h apresentao entre UDP transmissor e receptor Cada segmento UDP tratado de forma independente dos outros.

Porque existe o UDP?


No h estabelecimento de conexo (que possa resultar em atraso) Simples: no h estado de conexo Cabealho do segmento reduzido No h controle de congestionamento: UDP pode enviar segmentos to rpido quanto desejar.

UDP

Muito usado por aplicaes de multimdia continua (streaming)


Tolerantes perda; Sensveis a taxas. DNS; SNMP. Acrescentar confiabilidade na camada de aplicao; Recuperao de erros especfica de cada aplicao.

Outros usos do UDP:


Transferncia confivel sobre UDP:


UDP
0 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | Source | Destination | | Port | Port | +--------+--------+--------+--------+ | | | | Length | Checksum | +--------+--------+--------+--------+ | | data octets ... +---------------- ...

Datagrama UDP

Os campos Source Port e Destination Port indicam as portas entre as quais a mensagem trocada. O campo Length indica o comprimento do datagrama incluindo dados e cabealho em bytes. O Checksum opcional e, se utilizado, inclui todo o datagrama UDP e um pseudo-header, para garantir que a mensagem foi entregue ao destino correto.

TCP

O TCP um protocolo orientado a bytes:

Origem: O host de origem armazena em um buffer bytes suficientes do processo transmissor para preencher um pacote de tamanho razovel, e depois envia ao receptor. Destino: Esvazia o contedo do pacote em um buffer de recebimento e o processo receptor l o buffer como desejar.

TCP

Formato do Segmento TCP

Formato do Segmento TCP

Source port - nmero da porta lgica de origem. Destination port - nmero da porta lgica de destino Sequence number - nmero usado na seqenciao dos segmentos TCP Acknowledgment number segmento TCP esperado nmero do prximo

Data offset - tamanho do cabealho TCP em palavras de 32 bits

Formato do Segmento TCP

SYN (synchronize): Iniciar a conexo, sincroniza nmeros de sequncia ACK Campo acknowledgement number vlido FIN Emissor terminou de enviar dados RST (reset) fora o trmino da conexo PSH (push)

Normalmente o TCP passa dados para aplicao de forma buferizada, push indica mande dados para a aplicao imediatamente (ex: TELNET)

URG (urgent): TCP normal usa o sistema First-In-First-Out (FIFO)


Com URG ligado, o TCP entende que os dados tm prioridade Neste caso, o campo urgent pointer indica o ultimo byte urgente do segmento. TCP repassa dados urgentes primeiro. Exemplo: aplicao manda um comando para interromper a transferncia de um arquivo em andamento.

Formato do Segmento TCP


Window - tamanho da janela de recepo Checksum - seqncia de verificao de erro Urgent pointer - aponta o primeiro byte aps os dados urgentes Options - uma opo est definida atualmente, o tamanho mximo do segmento TCP

Handshake de trs vias

Algoritmo usado pelo TCP para estabelecer e terminar conexes. Envolve a troca de trs mensagens entre o cliente e o servidor.

Passo 1: o cliente envia um segmento SYN especificando a porta do servidor ao qual deseja se conectar e seu nmero de sequncia inicial; Passo 2: o servidor responde enviando outro segmento SYN com o ACK do segmento recebido e o seu prprio nmero de sequncia; Passo 3: o cliente retorna um ACK e a conexo se estabelece.

O O MSS (Maximum Segment Size) que cada lado se prope a aceitar tambm negociado durante o estabelecimento da conexo

Three-way Handshake
Client Server Status: LISTENING

T E MP O

Three-way Handshake
Client SYN Server Status: SYN_RECV Conexo solicitada pelo cliente

T E MP O

Three-way Handshake
Client SYN SYN-ACK T E MP O Servidor aloca recursos (memria) Para a potencial conexo e liga relgio de TIMEOUT Server Status: SYN_RECV

Three-way Handshake
Client SYN SYN-ACK ACK (DATA) Cliente confirma o pedido de conexo E inicia envio de dados. T E MP O Server Status: ESTABILISHED

Three-way Handshake
Client SYN SYN-ACK ACK THREE WAY HANDSHAKE T E MP O Server Status: ESTABILISHED

Termino da Conexo

Cada direo da independentemente Protocolo


conexo

encerrada

Passo 1: o cliente envia um segmento FIN Passo 2: o servidor retorna um ACK para o cliente Passo 3: o servidor envia um segmento FIN Passo 4: o cliente envia um ACK e a conexo se encerra

Os passos 2 e 3 podem ser combinados em um mesmo pacote.

Termino da Conexo
Client SYN SYN-ACK ACK (DATA) (DATA) (DATA) T E MP O Server Status: CLOSED

FIN FIN-ACK ACK

Aps troca de informao, um dos lados solicita fim da conexo e o outro lado confirma.

Retransmisso por Perda de ACK


Host A
Seq=9 2, 8

Host B
bytes data

X loss
Seq=9 2, 8

100 CK= A

bytes data

100 CK= A

Você também pode gostar