próximo acima anterior sumário índice
Próximo: 12.2.3 Opções de Linha Acima: 12.2 Introdução Anterior: 12.2.1 Transportadores UUCP e   Sumário   Índice


12.2.2 O Trabalho Interno do uucico

Para entender porque o uucico necessita conhecer certas coisas, uma rápida descrição de como ele se conecta a um sistema remoto será apresentada a seguir.

Ao se executar um comando uucico -s sistema a partir da linha de comandos, inicialmente deve-se ter os sistemas conectados fisicamente. As ações executadas dependem do tipo de conexão a ser estabelecida - por exemplo, ao se usar a linha telefônica, ele deve encontrar um modem e discar. Sobre TCP, deve executar a função gethostbyname(3) para converter o nome em um endereço de rede, descobrir qual porta deve ser aberta e associar o endereço com a conexão correspondente.

Após a conexão ter sido estabelecida, um procedimento de autorização deve ser executado. Ele geralmente consiste de um sistema remoto solicitando por um nome de acesso e possivelmente uma senha. Isso é comumente denominado conversação de acesso. O procedimento de autorização é executado pelo conjunto de utilitários getty/login, ou - em conexões TCP - pelo programa uucico. Caso a autorização seja bem sucedida, a máquina remota inicia o programa uucico. A cópia local do uucico a qual inicia a conexão é referenciada como master, a cópia remota é denominada escrava.

A seguir temos a fase de negociação: a master envia o nome da máquina e uma série de indicadores. A máquina escrava verifica se a máquina está autorizada a acessar o sistema local, enviar e receber arquivos, etc. Os indicadores descrevem (entre outras coisas) o índice máximo de transferência de arquivos. Caso este esteja habilitado, um contador de conversação ou uma checagem do número de seqüência de chamadas assume o seu lugar. Com esta funcionalidade, ambos os sites mantém um contador de conexões bem sucedidas, as quais são comparadas. Caso elas não coincidam, a negociação falhará. Isso é útil para proteger o sistema contra impostores.

Finalmente, os dois uucico tentam entrar em um acordo sobre o protocolo de transferência. Este protocolo gerenciará o modo de transferência dos dados, retransmitindo as informações em caso de erro. Há necessidade de suporte a diferentes protocolos, porque diferentes tipos de conexões são suportadas. Por exemplo, linhas telefônicas requerem um protocolo seguro, o qual tem uma postura ``pessimista'' sobre erros, enquanto uma transmissão TCP é naturalmente mais confiável e pode ser um protocolo mais eficiente com menor rigor na checagem de erros adicionais.

Após a finalização da negociação, a fase real de transmissão começa. Ambas as pontas ativam o programa de controle do protocolo selecionado. O programa possivelmente realiza uma seqüência específica de inicialização do protocolo.

Inicialmente, a máquina mestre envia todos os arquivos cujos índices podem ser transmitidos para o sistema remoto. Ao finalizar, ele informa à escrava que a transferência foi concluída, e que a escrava pode finalizar a ligação. Neste ponto há uma mudança de papéis: a remota torna-se a mestre e a máquina local se torna a escrava. A nova máquina mestre passa então a enviar seus arquivos. Ao finalizar, ambos os programas uucico trocam mensagens de finalização de transmissão e encerram a conexão.

Não entraremos em maiores detalhes: por favor verifique ou os fontes ou qualquer outro bom livro sobre UUCP. Há ainda um artigo muito interessante circulando pela Net, escrito por David A. Novitz, o qual fornece uma descrição detalhada do protocolo UUCP. O FAQ do Taylor UUCP discute ainda alguns detalhes de como o UUCP é implementado. Ele é postado regularmente em comp.mail.uucp.


próximo acima anterior sumário índice
Próximo: 12.2.3 Opções de Linha Acima: 12.2 Introdução Anterior: 12.2.1 Transportadores UUCP e   Sumário   Índice
www.conectiva.com