Você está na página 1de 3

Resumos Redes – LEE

Capítulo 6_CAN REDES DE TRANSPORTE

Redes de Transportes TPC

PROTOCOLO TCP

Transmission Control Protocol, fornece um serviço de entrega de mensagens confiável através


de uma ligação orientada à conexão

 Camada de aplicação alivada da responsabilidade de garantia de entrega de


mensagens
 Efetua controlo de fluxo da transmissão de dados
 Dados que circulam entre as estações enviadas como um conjunto de pacotes,
ordenados e reunidos no lado da receção para reconstruirem o fluxo de dados
inicialmente transmitido

Sequenciamento de pacotes

 Primeiro pacote é enviado para a rede e é lhe aplicado um numero, não importando o
seu valor, no pacote seguinte, o numero aplicado deve ser sequencial ao do primeiro
 Regra: sucessivos pacotes do fluxo de dados, devem ter sequencia ascendente de
numeração, incremento de 1 unidade
 Após receção de todos os pacotes, sequencia usada para ordenar os dados
 Ausência de sequencia indica perda de 1 pacote e duplicação de sequencia indica
receção duplicada de pacotes, pode se descartar um
 Estação recetora envia à emissora recibo de confirmação se dados recebidos intatos
 Se dados recebidos com falha, é enviado pedido de retransmissão dos pacotes em
falha, não sendo necessário o reenvio de todo o fluxo de dados
 TCP orientado ao nível do byte:
o Em vez de sequenciar cada pacote, o TCP sequencia cada byte no pacote,
atribuindo numero sequencial para indicar o primeiro byte de um pacote
constituído por variados bytes
o Primeiro byte do segundo pacote deve ter numero com ordem imediatamente
a seguir, acrescido do numero de bytes do pacote anterior
o Na estação recetora, esperado o mesmo tipo de numeração, responsabilidade
da ultima transmitir uma mensagem de confirmação de receção do pacote
com o valor da sequencia seguinte esperada, ie, valor da sequencia do ultimo
byte do ultimo pacote recebido
o Confirmações não precisam de uma transmissão separada, podem nem todos
ser confirmados.

Cabeçalho do TCP

 Usa campo de confirmação


 Bastante maio que o do UDP, com o mesmo esquema de atribuição de portas
 Numeração de 32bits sequencial, número de confirmação e conjunto de bits para flags
 Campo offset de dados para determinar onde começam os dados relevantes
 Acrescento de bits “padding” de 32 bits, termina no limite final do cabeçalho
 Window field para indicar à estação emissora a quantidade de dados que a recetora
está predisposta a aceitar, é o controlo de fluxo de dados, para prevenir o buffer flow
no lado da estação recetora
 No fim seguem os dados propriamente ditos em Data
 Cabeçalho pode ter 40 bytes, designando cabeçalho TCP + dados de segmento
 Campo de verificação para a certificar a integridade do cabeçalho e dados d segmento

Utilização das ligações

 1º estabelecer e manter ligação, depois fornecida área de buffer, depois, se A quer


comunicar com B, deve estabelecer uma ligação que permita a sincronização da
numeração sequencial dos segmentos, assim como das mensagens de confirmação
 Recetor é instruído para sincronizar a sua verificação de erros do numero dessa
sequencia
 Uma flag do cabeçalho do TCP é o bit SYN, que indica o numero inicial da sequencia.
Logo estação A envia para B um segmento TCP com o bit SYN ativo numero 10
 A estação B acusa a receção, respondendo com a confirmação do numero 11
 Ligação full duplex existem duas ligação A->B e B->A ao mesmo tempo
 Depois dos dados estarem completamente transferidos, as duas devem concluir, para
liberta espaço no buffer
 Flag FIN para indicar conclusão de aligação
 Estação A envia segmento TCP para determinado numero de sequencia onde a flag se
encontra ativada
 Estação B, confirma a receção, e depois a ligação é terminada.

CONTROLO DE FLUXO DE DADOS

Gestão dos dados transferidos entre estações

Para gerir os eventos, cabeçalho de um datagrama TCP possui o campo janela (window), cuja
estação recetora de um datagrama atribui a este campo informando a quantidade de bytes
que pode aceitar

Possui caraterística dinâmica, janela pode aumenta ou diminuir consoante o espaço no buffer

Se estação precisar de comunicar apesar do buffer estar cheio, envia segmento TCP ativando
flag de urgência de envio de informação URG, com o Apontador Urgente Urgent Pointer field,
mas deve sempre existir espaço do lado recetor para receber

Recetor informa espaço livre através de rwnd no cabeçalho

Emissor limita bytes do unACKed ao valor de rwnd, para o buffer não transbordar
GESTÃO LIGAÇÃO TCP

Emissor e recetor TCP estabelecem ligação antes de trocarem segmentos

 Variáveis de inicialização TCP


o #s seq
o Buffers, informação de controlo RcvWindow
 Cliente inicia a ligação Socket clienteSocket = new; Socket (“hostname”, “port number”
 Server contacto pelo cliente: Socket connectionSocket = welcomeSocket.accept();
 Handshake de 3 passos
o 1 – cliente envia segment TCP SYN à estação servidora
 Especifica o # seq initial, sem dados
o Estação servidora recebe segmento SYN, e responde com SYNACK
 Servido aloca buffers
 Especifica o # seq inicial para o servidor
o 3 – cliente recebe o SYNACK e responde com ACK que pode ter dados

Encerrar uma ligação (close) clientSocket.close();

 1. Cliente envia ao servidor segmento de controlo TCP FIN


 2. Servidor recebe o FIN e responde com o ACL e fecha a ligação enviando FIN
 3. Cliente recebe FIN, responde com ACK, entra no estado timed wait, e responde com
segmentos ACKs aos FINs recebidos
 4. Servido recebe segmento ACK e fecha a ligação

Você também pode gostar