Sem resumo de edição |
|||
| Linha 48: | Linha 48: | ||
= Especificação Funcional = | = Especificação Funcional = | ||
* O TCP fornece a informação do campom "protocolo" do IP. | |||
* Segue o cabeçalho: | |||
[[Arquivo: cabecalhoTCP.png]] | |||
Edição das 15h26min de 2 de outubro de 2013
Link
http://tools.ietf.org/html/rfc793
Introdução
- O TCP é um protocolo host-to-host altamente confiável.
- Comunicação inter-processos, orientado a conexão, com suporte a muitas aplicações, e já assume a simplicidade do protocolo da camada abaixo (IP).
- A interface TCP consiste de um conjunto de chamadas, como em um SO, como exemplo para abrir e fechar conexões. A comunicação com a aplicação pode ser assíncrona.
- A Operação do TCP está nas seguintes áreas:
- Transferência básica de dados
- O TCP é capaz de tranferir dados em um fluxo em cada direção. Uma função "push" garante que esses dados são passados adiante no receptor.
- Confiabilidade
- O TCP é capaz de "recuperar" dados comprometidos, perdidos, duplicados ou entregues fora de ordem. Mensagens como o "ACK" são usadas para confirmação de recepção ccorreta.
- Controle de fluxo
- O TCP permite um controle da quantidade de dados transmitidos, através de uma janela e da quantidade de ACKs.
- Multiplexação
- A partir do IP mais a porta é formado um socket, que permite conexões múltiplas. Existem sockets fixos para certas aplicações.
- Conexão
- Os mecanismos descritos anteriormente exigem a inicialização e manutenção dos fluxos de dados, daí vem a conexão, feita por um mecanismo de "handshake", baseado em números de sequência baseados no clock.
- Precedência e segurança
- Podem ser indicados precedência e segurança da comunicação pelos usuários.
- Transferência básica de dados
Filosofia
- Os ambientes de rede podem ser locais, ou de grande abrangência, mas assumem uma tecnologia de comutação de pacotes. Toda esta estrutura é para a comunicação entre processos de hosts (através das portas), daí a importância do TCP.
- O TCP recebe uma chamada de um processo com um buffer de dados como argumento. Na recepção ele notifica o usuário e passa esses dados para a aplicação de destino.
- Fragmentação e remontagem é responsabilidade do módulo da internet (camada de rede - IP). O segmento (TCP) é retirado da parte dos dados do datagrama (IP).
- O TCP é como um módulo do SO, controlado por um driver.
- A interface tem chamadas como: SEND, RECEIVE, OPEN, CLOSE, STATUS. Essas chamadas podem ter parâmetros como: tipo de serviço, endereço, precedência, segurança, etc.
Transferência
- A transferência confiável é baseada em números de sequência e ACKs, sendo que se um segmento com um certo número de sequência não receber o ACK correspondente ele é retransmitido, se não, deletado da fila. A janela citada anteriormente possui um número, que designa a quantidade de segmentos enviados sem receber ACK.
- Para uma identificação TCP ser única, deve-se acoplar o IP (endereço+porta -> socket).
- Dois sockets definem uma conexão, full-duplex (nos dois sentidos)
- Existe uma estrutura, a TCB (Transmission Control Block), para guardar as informações das conexões.
Chamadas de funções
- Chamadas passivas da função OPEN, acontecem quando existe uma solicitação de conexão "estrangeira". Neste caso um socket estrangeiro de zeros é utilizado para denotar um socket não especificado.
- Dois processos que requisitam OPEN ao mesmo tempo, obtém sucesso pela forma assícrona.
- Para estabelecer a conexão existe a mensagem SYN (tree-way handshake), para fechar a conexão existe a flag FIN.
- Para enviar, usa-se a chamada SEND, e quando um receptor vê a flag PUSH, ele não espera mais dados e passa os recebidos para a camada superior. Se o buffer estiver cheio e não for visto o PUSH os dados são passados para o usuário.
Segurança e Robustez
- O TCP não define uma atitude na presença de dados urgentes por parte do usuário, mas a noção geral é que o processo receptor toma a a ação de processar dados urgentes primeiro.
- O TCP pode usar o tipo de serviço e opções do IP para tratar segurança, mas nem todos os módulos tem essa capacidade multicamada. Alguns módulos permitem a aplicações, como Telnet, especificar certos níveis de segurança, precedência, conexão...
- O TCP tem um princípio enquanto à robustez: Ser liberal no que aceita e conservador no que faz.
Especificação Funcional
- O TCP fornece a informação do campom "protocolo" do IP.
- Segue o cabeçalho:
