+ Responder ao Tópico



  1. Transmission Control Protocol (Tcp)

    O TCP é um protocolo da camada de transporte da arquitetura Internet TCP/IP. O protocolo é orientado a conexão e fornece um serviço confiável de transferência de arquivos fim-a-fim. Ele é responsável por inserir as mensagens das aplicações dentro do datagrama de transporte, reenviar datagramas perdidos e ordenar a chegada de datagramas enviados por outro micro. O TCP foi projetado para funcionar com base em um serviço de rede sem conexão e sem confirmação, fornecido pelo protocolo IP.
    O protocolo TCP interage de um lado com processos das camadas superiores de aplicação e do outro lado com o protocolo da camada de rede do modelo da Internet. A interface entre o protocolo e a camada superior consiste em um conjunto de chamadas. Existem chamadas, por exemplo, para abrir e fechar conexões e para enviar e receber dados em conexões previamente estabelecidas. Já a interface entre o TCP e a camada inferior define um mecanismo através do qual as duas camadas trocam informações de maneira assíncrona.
    Este protocolo é capaz de transferir uma cadeia (Stream) contínua de Bytes, nas duas direções, entre seus usuários. Normalmente o próprio protocolo decide o momento de parar de agrupar os Bytes e de, conseqüentemente, transmitir o segmento formado por esse agrupamento.
    Porém, caso seja necessário, o TCP pode requerer a transmissão imediata dos Bytes que estão no buffer de transmissão, através da função push. Vale a pena enfatizar que esta função push deverá estar previamente habilitada no código fonte da aplicação em questão para que o TCP saiba como agir.
    Conforme mencionado, o protocolo TCP não exige um serviço de rede confiável para operar, logo, responsabiliza-se pela recuperação de dados corrompidos, perdidos, duplicados ou entregues fora de ordem pelo protocolo de rede. Isto é feito associando-se cada Byte a um número de seqüência. O número de seqüência do primeiro Byte dos dados contidos em um segmento é transmitido junto com o segmento e é denominado número de seqüência do segmento. Os segmentos carregam "de carona" (Piggybacking) um reconhecimento.
    O protocolo TCP realiza, além da multiplexagem, uma série de funções para tornar a comunicação entre origem e destino mais fiável.
    São responsabilidades do protocolo TCP:
    O controlo de fluxo,
    O controlo de erro,
    A seqüência e a multiplexagem de mensagens.
    A camada de transporte oferece para o nível de aplicação um conjunto de funções e procedimentos para acesso ao sistema de comunicação de modo a permitir a criação e a utilização de aplicações de forma independente da implementação. Desta forma, as interfaces socket ou TLI (ambiente Unix) e Winsock (ambiente Windows) fornecem um conjunto de funções-padrão para permitir que as aplicações possam ser desenvolvidas independentemente do sistema operativo no qual funcionarão.


    Estados De Uma Conexão TCP

    Devido a que toda conexão TCP cria uma máquina de estados para o correto funcionamento da transferência de informação ponto é que vamos explicar em detalhe os diferentes estados de uma conexão TCP para viabilizar a análise do resultado da captura de pacotes na rede.
    O TCP corresponde ao protocolo da camada de transporte do modelo de referência OSI que é orientado a conexão. Por ter essa característica, antes de ocorrer a transmissão de dados deve-se estabelecer uma sessão de comunicação entre as duas partes participantes. Essa sessão é estabelecida através de um processo chamado 3-Way Handshake, que irá sincronizar os números de seqüência e oferecer informações de controle necessárias para estabelecimento da conexão.
    Como o início e o fim de uma sessão de comunicação são bem definidos e o TCP acompanha o estado de suas conexões mediante flags é importante saber quais são os muitos estados que uma conexão TCP passa.
    A tabela mostra o processo de 3-Way Handshake para o estabelecimento de uma conexão TCP.
    http://wiki.pm.sc.gov.br/images/Tabela1.png


    O reconhecimento (ACK) constitui-se no número de seqüência do próximo Byte que a entidade TCP transmissora espera receber do TCP receptor na direção oposta da conexão. Por exemplo, se o número de seqüência X for transmitido no campo Acknowledge (ACK), ele indica que a estação TCP transmissora recebeu corretamente os Bytes com os números de seqüência menores que X, e que ele espera receber o Byte X na próxima mensagem.
    http://wiki.pm.sc.gov.br/images/Tabela2.png


    Os estados possíveis (em vermelho) de estabelecimento da conexão TCP são os seguintes:
    LISTEN: esse é o estado verdadeiro de uma conexão TCP, ele ocorre quando um computador está esperando um pedido para iniciar uma conexão.
    SYN-SENT: esse estado indica que o computador enviou um SYN para iniciar a conexão e está aguardando a resposta SYN-ACK adequada.
    SYN-RCVD: esse estado indica que o computador enviou a resposta SYN-ACK depois de ter recebido o SYN.
    ESTABLISHED: esse estado (em verde) indica que a conexão foi estabelecida. O computador que iniciou a conexão entra nesse estado depois de receber o SYN-ACK e o computador que responde depois que recebe o ACK.
    Como verificamos na tabela acima esses são os estados que os computadores passam no processo de estabelecimento da conexão TCP no processo chamado 3-Way Handshake. Existem outros estados (em azul) que acontecem na hora de finalizar uma conexão TCP:
    FIN-WAIT-1: O estado que um computador se encontra após ter enviado um pacote FIN inicial pedindo um fechamento correto da conexão TCP.
    CLOSE-WAIT: O estado da conexão do computador que recebeu um FIN inicial e envia de volta um ACK para confirmar o FIN.
    FIN-WAIT-2: O estado da conexão do computador que recebeu a resposta ACK para seu FIN inicial, e indica que agora está esperando um FIN final.
    LAST-ACK: Esse estado indica que o computador acabou de enviar seu segundo FIN, que é necessário para encerramento correto da conexão TCP, e está aguardando uma confirmação.
    TIME-WAIT: Nesse estado encontra-se o computador iniciador que recebeu um FIN final e enviou um ACK para fechar a conexão. Nesse momento ele não irá mais receber nenhuma confirmação do ACK que acabou de enviar, portanto espera um período de tempo para fechar a conexão.
    CLOSED: pode-se considerar como “sem estado”. Esse estado existe antes que uma conexão seja iniciada ou quando ela é finalizada.
    Estes estados estão ilustrados na tabela abaixo e eles ocorrem dessa forma para o correto fechamento da conexão TCP, onde n indica que o tempo de vida da conexão demorou n intervalos de tempo.

    referencia: Wikipom - O Base de Conhecimento da Polícia Militar de Santa Catarina

    Assim pessoal, o tempo que o tcp demora pra enviar novo pacote depende da resposta (ack) da máquina de destino.

    O ack time out que setamos nos radinhos wireless, é o tempo máximo em que se espera uma resposta, mas não é um resposta a nível de protocolo TCP/IP, embora tenha certa semlhança na função que exerce dentro da conexão, este ack é do protocolo 802.11 utilizado na comunicação wireless.
    Última edição por JHONNE; 23-02-2009 às 18:53.

  2. Colega,

    ir a Wikepedia copiar e colar aqui tantas informações não ajuda muito. Tem como resumir, sintetizar e demonstrar causas e efeitos de cada item colado em sua mensagem?



  3. Citação Postado originalmente por MarceloGOIAS Ver Post
    Colega,

    ir a Wikepedia copiar e colar aqui tantas informações não ajuda muito. Tem como resumir, sintetizar e demonstrar causas e efeitos de cada item colado em sua mensagem?
    Tá ficando muito complicado para minha humilde cabeça.
    Mas tive a coragem de ler até o fim.

    Não sei se era isto que ele queria ao transcrever, mas quando o Gilvan perguntou sobre o tempo, a resposta estaria relacionada com o ACK?

  4. Editei a mensagem, espero que ajude.



  5. Quanto a não existir multiponto, concordo com o Gilvan, pois, assim como a "interferencia", multiponto é apenas um modelo (não fisico) que criamos para poder expressar o que acontece quando temos 1 ap e vários clientes, ou seja, na unidade de tempo um ap só atende um cliente por vez (ponto a ponto), ou seja:

    1 ap atenderá os clientes A ,B ...X

    Se fizessemos um algoritimo simplificado ficaria +- assim...

    INICIO
    O ap Verifica se há clientes a atender...
    Se sim ....
    O Ap modula, sincroniza e atende o cliente x
    Para de atender o cliente x e volta para o INICIO
    Se não..
    Volta para o INICIO
    FIM

    Não sei se consegui expressar meu entendimento, mas dessa forma o AP só atendera 1 cliente por vez, portanto só temos enlaces ponto-a-ponto embora o correto seria dizer temos centenas de enlaces ponto-a-ponto, portanto para expressar melhor usamo a expressão "multiponto" .

    Quanto ao tempo estou ná duvida, mas acho que esse tempo é váriavel, pois vai depender de:
    * qualidade da conexão,
    * qualidade da máquina do cliente (lenta, rápida ou se esta com virus... etc)
    * qualidade do AP (pode estar sobrecarregado)

    enfim .... depende de vários fatores ...

    Abraços.

    Jodrix.
    Última edição por jodrix; 23-02-2009 às 20:12.






Tópicos Similares

  1. Superposição II ... a saga continua (Curso GEenge)!!!!
    Por jodrix no fórum Assuntos não relacionados
    Respostas: 10
    Último Post: 31-03-2009, 10:38

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L