𝖂𝖎ƙ𝖎𝖊

Protocolo de controle de transmissão: mudanças entre as edições

Linha 68: Linha 68:


===Adequação de parâmetros===
===Adequação de parâmetros===
[[Imagem:TCP windowing.png|thumb|left|210px|Neste simples exemplo só está a ser considerada a janela do servidor. O cliente tem a percepção do estado da janela do servidor a cada ACK recebido.]]
na gaita ! não é hoje
O cabeçalho TCP possui um parâmetro que permite indicar o espaço livre atual do receptor (emissor quando envia a indicação): a ''janela'' (ou ''window''). Assim, o emissor fica a saber que só poderá ter em trânsito aquela quantidade de informação até esperar pela confirmação (ACK) de um dos pacotes - que por sua vez trará, com certeza, um actualização da ''janela''. Curiosamente, a [[LIFO|pilha]] TCP no [[Microsoft Windows|Windows]] foi concebida para se auto-ajustar na maioria dos ambientes e, nas versões actuais, o valor padrão é superior em comparação com versões mais antigas.
 
Porém,devido ao tamanho do campo, que não pode ser expandido, os limites ''aparentes'' da janela variam entre 2 e 65535, o que é bastante pouco em redes de alto [[Débito (redes)|débito]] e hardware de alta performance. Para contornar essa limitação é usado uma ''Opção'' especial que permite obter múltiplos do valor da janela, chamado de ''escala da janela'', ou ''TCP window scale''; este valor indica quantas vezes o valor da janela, de 16 bit, deve ser operado por [[deslocamento de bits]] (para a esquerda) para obter os múltiplos, podendo variar entre 0 e 14. Assim, torna-se possível obter janelas de 1 [[gigabyte]]. O parâmetro de escala é definido unicamente durante o estabelecimento da ligação.


===Término da ligação===
===Término da ligação===

Edição das 10h06min de 31 de março de 2008

Predefinição:ProtocolosIP O TCP (acrônimo para o inglês Transmission Control Protocol) é um dos protocolos sob os quais assenta o núcleo da Internet nos dias de hoje. A versatilidade e robustez deste protocolo tornou-o adequado para redes globais, já que este verifica se os dados são enviados de forma correta, na sequência apropriada e sem erros, pela rede.

O TCP é um protocolo do nível da camada de transporte (camada 4) do Modelo OSI e é sobre o qual assentam a maioria das aplicações cibernéticas, como o SSH, FTP, HTTP — portanto, a World Wide Web.

Características técnicas

Cabeçalho de uma trama TCP
+ Bits 0 - 3 4 - 9 10 - 15 16 - 31
0 Porta na origem Porta no destino
32 Número de sequência
64 Número de confirmação (ACK)
96 Offset Reservados Flags Janela
Window
128 Checksum Ponteiro de urgência
160 Opções (opcional)
Padding (até 32)
224  
Dados
 
Detalhe do campo Flags
+ 10 11 12 13 14 15
96 UrgPtr ACK Push RST SYN FIN

Descrição do funcionamento

Fig. 1 - Neste exemplo considera-se o backlog preenchido para forçar o timeout no cliente para que o pacote SYN seja reenviado. No entanto, o primeiro pacote podia ter-se perdido devido a erros na rede.

O protocolo TCP especifica três fases durante uma conexão: estabelecimento da ligação, transferência e término de ligação. O estabelecimento da ligação é feito em três passos, enquanto que o término é feito em quatro. Durante a inicialização são inicializados alguns parâmetros, como o Sequence Number (número de sequência) para garantir a entrega ordenada e robustez durante a transferência.

Estabelecimento da ligação

Tipicamente, numa ligação TCP existe aquele designado de servidor (que abre um socket e espera passivamente por ligações), num extremo, e o cliente no outro. O cliente inicia a ligação enviando um pacote TCP com a flag SYN activa e espera-se que o servidor aceite a ligação enviando um pacote SYN+ACK. Se, durante um determinado espaço de tempo, esse pacote não for recebido ocorre um timeout e o pacote SYN é reenviado. O estabelecimento da ligação é concluído por parte do cliente, confirmando a aceitação do servidor respondendo-lhe com um pacote ACK.

Durante estas trocas, são trocados números de sequência iniciais (ISN) entre os interlocutores que irão servir para identificar os dados ao longo do fluxo, bem como servir de contador de bytes transmitidos durante a fase de transferência de dados (sessão).

No final desta fase, o servidor inscreve o cliente como uma ligação estabelecida numa tabela própria que contém um limite de conexões, o backlog. No caso do backlog ficar preenchido a ligação é rejeitada ignorando (silenciosamente) todos os subsequentes pacotes SYN.

Transferência de dados (sessão)

é grupe

Adequação de parâmetros

na gaita ! não é hoje

Término da ligação

Término de conexão.

A fase de encerramento da sessão TCP é um processo de quatro fases, em que cada interlocutor responsabiliza-se pelo encerramento do seu lado da ligação. Quando um deles pretende finalizar a sessão, envia um pacote com a flag FIN activa, ao qual deverá receber uma resposta ACK. Por sua vez, o outro interlocutor irá proceder da mesma forma, enviando um FIN ao qual deverá ser respondido um ACK.

Pode ocorrer, no entanto, que um dos lados não encerre a sessão. Chama-se a este tipo de evento de conexão semi-aberta. O lado que não encerrou a sessão poderá continuar a enviar informação pela conexão, mas o outro lado não.

Portas ou serviços

O TCP introduz o conceito de porta tipicamente associado a um serviço (camada aplicação)/ligação específica. Assim, cada um dos intervenientes na conexão dispõe de uma porta associada (um valor de 16 bit) que dificilmente será o mesmo do interlocutor. Alguns serviços (que fazem uso de protocolos específicos) são tipicamente acessíveis em portas fixas, conhecidas como portas bem conhecidas, que são aqueles numerados do 1 ao 1023. Além destas, existem ainda duas gamas de portas, registradas e privadas ou dinâmicas. As portas bem conhecidas são atribuídas pela Internet Assigned Numbers Authority (IANA) e são tipicamente utilizados por processos com direitos de sistema ou super-utilizador. Nestas portas encontram-se em escuta passiva os serviços triviais, como HTTP, SSH, FTP, etc. Todos os protocolos da suite IP se encontram registados dentro desta gama.

A gama de portas privadas segue regras de atribuição específicas do sistema operativo e serve para abrir ligações a outras máquinas, como surfar na rede, por exemplo.

Utilização do IP para entrega de dados

Ver artigo principal: TCP/IP

O TCP, tal como o UDP, usa o IP para a entrega dos datagramas à rede, e os pontos de acesso à aplicação são identificados por portas acessadas por multiplexação, tal como acontece com o UDP, o que permite múltiplas ligações em cada host. As portas podem ser associadas com uma aplicação (Processo).

O IP trata o pacote TCP como dados e não interpreta qualquer conteúdo da mensagem do TCP, sendo que os dados TCP viajam pela rede em datagramas IP. Os roteadores que interligam as redes apenas verificam o cabeçalho IP, quando fazem o envio dos datagramas. O TCP no destino interpreta as mensagem do protocolo TCP.

Ver também

Ligações externas

Predefinição:Link FA ar:تي.سي.بي ast:Transmission Control Protocol bg:TCP br:TCP ca:Transmission Control Protocol cs:TCP da:TCP de:Transmission Control Protocol el:Transmission Control Protocol en:Transmission Control Protocol eo:TCP es:Transmission Control Protocol et:TCP eu:Transmission Control Protocol fa:قرارداد کنترل انتقال fi:TCP fr:Transmission Control Protocol gl:Protocolo TCP he:Transmission Control Protocol hr:TCP hu:Transmission Control Protocol id:TCP is:TCP it:Transmission Control Protocol ja:Transmission Control Protocol ko:전송 제어 프로토콜 lb:Transmission Control Protocol lt:TCP lv:TCP nl:Transmission Control Protocol nn:Transmission Control Protocol no:TCP pl:TCP ro:Transmission Control Protocol ru:TCP sk:Transmission Control Protocol sv:Transmission control protocol th:Transmission Control Protocol tr:TCP uk:Протокол керування передачею ur:نظم منتقلی دستور vi:TCP zh:传输控制协议

talvez você goste