SMTP x POP3, TCP X UDP, FTP, HTTP Celso Cardoso Neto Márcia Carvalho de Almeida Lucas de Oliveira Raposo RESUMO A pesquisa aborda os significados, conceitos, características, funcionamento e emprego associados às siglas SMTP x POP3, TCP X UDP, FTP, HTTP da área de redes de computadores. É de conhecimento geral que a internet se constitui na principal rede de computadores em âmbito mundial, tendo o uso de seus recursos facilitado a troca de informações entre pessoas, divulgação de novos inventos, conhecimentos no próprio Brasil e no mundo, que antes não era possível saber. SMTP e POP3 são os dois protocolos básicos que viabilizam o emprego do serviço de e-mail, TCO e UDP são outros dois protocolos de comunicação, sobre os quais se baseia todo o funcionamento da internet, FTP é o protocolo direcionado para a disponibilização de dados em sites predefinidos e finalizando pelo HTTP, que viabilizou a WWW funcionar com é hoje, permitindo integrar textos, imagens e sons em sites da internet. Palavras Chaves: internet, protocolos de comunicação, redes de computadores, TCP/IP, e-mail, correio eletrônico, WWW, web.
INTRODUÇÃO Este trabalho tem por objetivo fazer um estudo sobre as SMTP x POP3, TCP X UDP, FTP, HTTP, no que diz respeito com destaque para conceitos, características, funcionamento, aplicações e tendências. Para que hoje, todos pudessem desfrutar do desenvolvimento do que viria a se tornar os serviços de redes e internet, inúmeras ferramentas, protocolos e equipamentos foram implementados com o objetivo de tornar o uso dessa rede global em uma tarefa simples, objetiva e extremamente útil. Porém, mesmo sendo de alta importância para o funcionamento de toda essa estrutura, muitos daqueles que as utilizam comumente no seu cotidiano não sabem de fato o que cada parte desse conjunto de siglas em inglês significa (e muito menos têm conhecimento de seus conceitos). Sendo assim, aqui serão abordadas de forma simplificada algumas dessas siglas complicadas (também conhecidas como protocolos). De modo que se possa ter uma breve noção de quão fundamentais são para o funcionamento de toda a Rede. HTTP HTTP significa Hypertext Transfer Protocol ou Protocolo de Transferência de HiperTexto. É um protocolo baseado no TCP / IP que é utilizado para transferir praticamente todos os tipos de arquivos e outros dados, coletivamente chamados de recursos, na World Wide Web. Esses recursos poderiam ser arquivos HTML, arquivos de imagem, os resultados de uma consulta ou qualquer outra coisa. O protocolo HTTP faz a comunicação entre o cliente e o servidor através de mensagens. O cliente envia uma mensagem de requisição de um recurso e o servidor envia uma mensagem de resposta ao cliente com a solicitação.
URL Os recursos disponíveis na Web são acessados através de referências denominadas URLs - Uniform Resource Locators. Uma URL define completamente um recurso na Internet, e tem os seguintes componentes: Protocolo: forma de comunicação usada para acessar o recurso. Pode ser FTP, HTTP, LDAP; Servidor: nome da máquina que provê o serviço desejado; Domínio: complemento do nome do servidor, especificando em que rede se encontra; Porta: porta a conectar no servidor. Pode ser omitida se for a porta default para o serviço desejado; Caminho: localização do recurso dentro do servidor; Recurso: nome do recurso dentro do servidor. Funcionamento Considerando as seguintes URLs de exemplo, seus componentes têm os seguintes significados: Um exemplo típico de solicitação em HTTP, enviada pelo navegador ao servidor Web, é indicado a seguir: GET /teste.html HTTP/1.0 Host: 20.0.0.29:8081 Accept: text/html, text/plain, image/*, application/pdf, text/sgml, */* Accept-Encoding: gzip, compress Accept-Language: en User-Agent: Lynx/2.8.5dev.7 libwww-fm/2.14 SSL-MM/1.4.1 OpenSSL/0.9.7 Observe que a última linha da solicitação é vazia (sem conteúdo). Ao receber uma linha vazia, o servidor compreende que a solicitação terminou e começa a preparar uma resposta. A resposta do servidor a essa solicitação, enviada de volta ao navegador, poderia ser a seguinte: HTTP/1.1 200 OK Date: Tue, 01 Jun 2004 01:41:08 GMT
Server: Apache/2.0.40 (Red Hat Linux) Last-Modified: Tue, 02 Apr 2002 19:49:45 GMT ETag: "1c5e4-35-aba6c840" Accept-Ranges: bytes Content-Length: 53 Connection: close Content-Type: text/html; charset=iso-8859-1 <html> <body> <h1>funcionou!</h1> </body> </html> Deve-se observar que a resposta do servidor é dividida em duas seções, separadas por uma linha vazia. A primeira seção é denominada cabeçalho (header) e contém informações do servidor sobre a URL solicitada: status da resposta, tipo e tamanho da resposta, configuração do servidor, etc. A segunda seção, denominada corpo (body), contém o recurso propriamente dito, solicitado pelo navegador. Métodos FTP Os principais métodos (comandos) do protocolo HTTP são: Método GET PUT POST HEAD DELETE Descrição busca um objeto definido por uma URL do servidor indica que os dados no corpo da consulta devem ser armazenados na URL especificada cria um novo objeto ligado ao objeto especificado na URL. Uma URL será alocada pelo servidor e retornada ao cliente. O conteúdo do novo objeto é o corpo de dados da consulta similar ao método GET, mas retorna somente o cabeçalho da resposta do servidor solicita ao servidor a remoção da informação correspondente à URL indicada Protocolo que permite a transferência de arquivos pela Rede. É o responsável pelos famosos downloads e uploads. A transferência de arquivos dá-se entre um computador chamado "cliente" (aquele que solicita a conexão para a transferência de dados) e um servidor (aquele que recebe a solicitação de transferência). O utilizador, através de software específico, pode selecionar quais arquivos enviar ou
receber do servidor. Para existir uma conexão ao servidor,caso o servidor exija,o utilizador informa um nome de utilizador (ou username, em inglês) e uma senha (password), bem como o nome correto do servidor ou seu endereço IP. Um cliente realiza uma conexão TCP para a porta 21 do servidor. Essa conexão, chamada de conexão de controle, permanece aberta ao longo da sessão enquanto uma segunda conexão, chamada conexão de dados, é estabelecida na porta 20 do servidor e em alguma porta do cliente (estabelecida no diálogo entre ambos) como requisitado para a transferência de arquivo. A conexão de controle é utilizada para administração da sessão (comandos, identificação, senhas) entre cliente e servidor utilizando um protocolo semelhante ao Telnet. Por exemplo, "RETR filename" iria transferir o arquivo especificado de um servidor para um cliente. Devido a essa estrutura de duas portas, FTP é considerado out-of-band, ao contrário de protocolos in-band, tal como HTTP. O servidor responde na conexão de controle com três dígitos de código de estado em ASCII com uma mensagem de texto opcional. Por exemplo, "200" ou "200 OK" significa que o último comando obteve sucesso. Os números representam o número do código e o texto opcional representa as explicações ou parâmetros necessários. Uma transferência de arquivo em progresso, sobre uma conexão de dados, pode ser abortada utilizando uma mensagem de interrupção enviada sobre a conexão de controle. TCP e UDP TCP (Transmission Control Protocol) Protocolo da camada de transporte (OSI/ISO) responsável por segmentar e reagrupar pacotes de dados, além de verificar a integridade dos mesmos, garantindo a confiabilidades das informações. Antes que dois hosts TCP possam trocar dados, devem primeiro estabelecer uma sessão entre si. Esse processo sincroniza os números de sequência e oferece informações de controle necessárias para estabelecer uma conexão virtual entre os dois hosts. UDP (User Datagram Protocol) O UDP é usado por alguns programas em vez de TCP para o transporte rápido de dados entre hosts TCP/IP. Porém o UDP não fornece garantia de entrega e
nem verificação de dados, caso qualquer dado se perca durante a conexão TCP. Há aplicações em que é preferível entregar os dados o mais rapidamente possível, mesmo que algumas informações se percam no caminho. O que justifica seu uso. Amplamente utilizado nas transmissões via Web ao vivo (streaming). Portas TCP Portas UDP Cada porta de servidor UDP é identificada por um número de porta reservado ou conhecido. A tabela a seguir mostra uma lista parcial de algumas portas de servidor UDP conhecidas usadas por programas baseados em UDP padrão.
SMTP O SMTP tem como objetivo transferir correios eletrônicos de forma confiável e eficiente, de maneira que também possa trabalhar de forma independente quanto ao serviço de transporte implementado. Para que o protocolo SMTP possa ser útil, é necessário que existam componentes básicos que dele se utilizem. O modelo SMTP se resume em dois componentes básicos: o remetente e destinatário-smtp. O remetente-smtp é aquele agente que vai enviar ao destinatário-smtp a mensagem como tal através de uma comunicação por comandos definidos pelo próprio SMTP. O destinatário-smtp é cada agente final, no caso de ser o destino da mensagem de fato, ou cada agente intermediário, que irá retransmitir a mensagem recebida para o próximo destino, fazendo o papel de remetente-smtp, até que ela chegue ao seu destinatário propriamente dito. O destinatário-smtp envia ao remetente respostas aos comandos que recebe deste, podendo ser respostas positivas ou negativas. Ao ser aberta, pelo remetente-smtp, uma conexão com um servidor SMTP (neste caso um destinatário-smtp), a forma de comunicação deverá ser feita através de comandos SMTP. Os comandos SMTP são compostos de caracteres do código ASCII. Como o código ASCII segue o padrão 7-bit, quando o serviço de transporte utilizado provê um canal baseado no padrão 8-bit, é necessária uma conversão do formato 7-bit para o formato 8-bit. Neste caso, para o bit de mais alta ordem é dado o valor zero (falso).
Todos os comandos SMTP são orientados à linha, ou seja, cada comando do protocolo SMTP é terminado com dois caracteres de fim de linha (CR e LF, nesta ordem). Comandos em SMTP HELO Este é o primeiro comando executado pelo remetente-smtp depois de ter sido estabelecida uma conexão com o destinatário-smtp. Este comando é usado pelo remetente para que possa identificar-se para o destinatário. Sua sintaxe se constitui dos seguintes elementos: HELO <espaço> <domínio-do-agente-remetente> <CRLF> É importante ressaltar que o elemento <domínio-do-agente-remetente> representa exatamente o agente que está fazendo o papel de remetente para a transmissão em curso. Exemplo: Destinatário (D) Remetente (R) D: 220 redes.com.br Simple Mail Transfer Service Ready R: HELO ucsal.br D: 250 redes.com.br Neste exemplo é suposto que no host redes.com.br roda o serviço SMTP, que está sendo acessado por um cliente, no caso, o host ucsal.br, que se identifica e recebe uma resposta positiva do destinatário. QUIT Este é o comando utilizado para encerrar uma conexão já estabelecida entre dois agentes SMTP (remetente e destinatário). Deve ser usado no fim de uma comunicação. Sua sintaxe se apresenta da seguinte forma: QUIT <CRLF> Exemplo: R: QUIT D: 221 redes.com.br Service closing transmission channel 5
MAIL Este comando SMTP serve basicamente para informar, ao agente destinatário, o endereço de correio do remetente da mensagem. Além disso, para casos onde a mensagem tem que passar por hosts intermediários, ele informa também o caminho reverso por onde a mensagem já passou. No momento em que este comando é executado, para o agente destinatário, uma nova transação de correio está sendo iniciada. Desta forma, todos as tabelas de estado e os buffers são resetados, ou seja, se alguma transação havia sido iniciada e os buffers de dados e de destinatários haviam sido preenchidos através de comandos DATA e RCPT, respectivamente, quando é executado o comando MAIL novamente, estes buffers são apagados e uma nova transação é imediatamente iniciada. A sintaxe para este comando é a seguinte: MAIL <espaço> FROM: <caminho-reverso> <CRLF> Exemplos: R: MAIL FROM:<aluno01@ucsal.br> D: 250 OK ou R: MAIL FROM:<@ucsal.br:joao@teleprocessamento.com.br> D: 250 OK POP e IMAP POP é o protocolo usado para recepção de mensagens eletrônicas. Utilizado com frequência pelos servidores Web. Protocolo que permite ao cliente de e-mail recolher suas mensagens na sua respectiva caixa de entrada no servidor e enviá-las para uma pasta local. Permitem acesso a apenas um usuário de conta a uma única pasta de mensagens. Atualmente se encontra na versão 3. IMAP, assim como o POP, é utilizado para recebimento de mensagens. Porém oferece mais recursos. Como permitir que mais de um usuário manipule ficheiros remotamente no servidor, como se tais pastas fossem locais. Outra vantagem deste protocolo é o compartilhamento de caixas postais entre usuários membros de um grupo de trabalho. Além disso, é possível efetuar pesquisas por mensagens
diretamente no servidor, utilizando palavras-chaves. Atualmente se encontra na versão 4. Tem, no entanto, alguns inconvenientes: O número de mensagens possível de se armazenar depende do espaço limite que nos é atribuído para a caixa de correio; Caso o servidor IMAP esteja numa localização remota, pela Internet, e não numa rede local LAN, é necessário estar ligado à Internet todo o tempo que quisermos consultar ou enviar mensagens, podendo não ser adequado a quem utiliza a Internet através de ligação telefônica Dial-up, devido aos custos associados. No entanto, a maioria dos clientes de e-mail (e.g. Outlook Express, Thunderbird, Novell Evolution, etc.) oferecem a possibilidade de criar uma cópia local (offline) das mensagens contidas em uma ou várias pastas (e.g. Inbox (Recebidas), Sent (Enviadas), etc.). Sendo assim, toda vez que você dispuser de uma conexão (estiver online) sua cópia local será sincronizada com o servidor de e-mail. Conclusão É fato de que nada neste mundo é estático com relação ao tempo, todas as coisas mudam naturalmente de estado, ficam velhas e logo inutilizadas. Tudo faz parte de um ciclo interminável, mas que só tende a trazer melhorias a todos nós (pelo menos na teoria). A com relação aos protocolos, o resultado é uma sopa de letrinhas cada vez mais confusa, que apesar de terminar sendo desprezada pelos mais leigos, é de extrema importância para aqueles que pretendem se dedicarem a essa área da informática, pois seu sólido domínio é decisivo para quem deseja se destacar entre os demais profissionais. Tecnologia é um exemplo prático e vivo disso, ao modo que avança e se reinventa, novas ferramentas, técnicas e funcionalidades são adicionadas, removidas, modificadas e reparadas.
Bibliografia FOROUZAN, Behrouz A. Comunicação de Dados e Redes de Computadores, McGraw Hill, 2008. KUROSE, James F, ROSS, Keith W. Redes de Computadores e a Internet: uma Abordagem Top-Down, 5ª edição, Pearson, 2010 TANENBAUM & WETHERALL. Redes de Computadores, 5ª edição, Pearson, 2011 Sites na internet: http://pt.kioskea.net/contents/internet/ftp.php3 http://dainf.ct.utfpr.edu.br/~maziero/doku.php/espec:servico_http