Camada de aplicação é a primeira camada do modelo de rede TCP / IP de cinco camadas. Enquanto as camadas inferiores do conjunto de protocolos TCP / IP se preocupam principalmente com a formatação, encapsulamento e transmissão de dados pela rede para o computador de destino, a camada superior (camada de aplicativo) fornece uma interface entre os aplicativos de rede e outras camadas de TCP / IP.
Camada de transporte é a segunda camada no modelo TCP / IP que lida com a comunicação lógica entre processos. É responsável por fornecer mensagens entre o host da rede. Ele também recebe dados da camada de aplicação e os prepara para endereçar na camada de rede.
Funções da camada de transporte:
_Fornece a segmentação de dados.
_Processar a entrega.
_Fornece o controle de fluxo e controle de erros.
Processo passa-a-passo
1_Divide os dados que chegam da camada de aplicação, em seguimentos e os transmite já com o endereço de destino para a camada de rede.2_Fornece comunicação lógica entre os processos do aplicativo em execução entres os hosts diferentes, que pode ser orientada ou não a conexão.
3_A transferência de dados pode ser categoriza, como confiável e não confiável, com informação ou não de estado.
4_Utiliza um conceito de porta para a identificação dos processos de aplicação.
5_Especifica dois tipos de protocolo, e a utilização de um ou de outro depende das necessidades da aplicação.
Entrega confiável_ Assegura a entrega dos seguimentos ao seu destino, em uma sequencia adequada, sem perdas ou dano. Um protocolo confiável cuida de todos os problemas principais de rede, como congestionamento, fluxo de dados e duplicação.
Entrega não confiável_Não promete a entrega dos seguimentos ao seu destino, os seguimentos podem ser perdidos ou corrompidos. Protocolos não confiáveis como UDP acredita que a rede subjacente é completamente confiável. Não cuidam de problemas básicos, como congestionamento, fluxo de dados e duplicação.
Camada de rede_ao transmitir dados, essa camada adiciona um cabeçalho que contém os endereços IP de origem e de destino aos dados recebidos da camada de Transporte. O pacote que ele cria será encaminhado para a camada MAC ou Data Link.
Essa camada também é usada para determinar se o pacote recebido pelo host contém o endereço IP do host. Nesse caso, os dados são encaminhados para a camada de Transporte.
Telnet é um protocolo de aplicativo que permite ao usuário se comunicar com um dispositivo remoto, um usuário em uma máquina cliente pode usar um software (conhecido como cliente Telnet) para acessar uma interface de linha de comando de outra máquina remota que esteja executando um programa de servidor Telnet.
O Telnet é frequentemente usado pelos administradores de rede para acessar e gerenciar dispositivos remotos. Um administrador de rede pode acessar o dispositivo telnetando para o endereço IP ou o nome do host de um dispositivo remoto. O administrador da rede receberá um terminal virtual que pode interagir com o host remoto.
Para usar o telnet, você deve ter um software (cliente Telnet) instalado. Em um dispositivo remoto, um servidor Telnet deve estar instalado e em execução.
FTP_foi projetado para permitir a transferência eficiente de arquivos entre dois dispositivos em uma rede entre TCP / IP. Ele cuida automaticamente dos detalhes de como os arquivos são movidos, fornece uma sintaxe de comando avançada para permitir a execução de várias operações de arquivos de suporte (como navegar na estrutura de diretórios e excluir arquivos) e opera usando o serviço de transporte TCP para garantir a confiabilidade.
TFTP_(Trivial File Transfer Protocol), é um protocolo simples de alto nível para a transferência de servidores de dados para inicializar estações de trabalho, terminais X e roteadores sem disco usando o UDP (User Data Protocol).
Embora possa parecer semelhante, o TFTP funciona de maneira diferente do FTP (File Transfer Protocol) e HTTP (HyperText Transfer Protocol). Embora o TFTP também seja baseado na tecnologia FTP, o TFTP é um protocolo totalmente diferente. Entre as diferenças, o protocolo de transporte do TFTP usa UDP que não é seguro, enquanto o FTP usa o TCP (Transmission Control Protocol) para proteger as informações.
O TFTP foi projetado principalmente para ler ou gravar arquivos usando um servidor remoto. No entanto, o TFTP é um protocolo multiuso que pode ser aproveitado para uma variedade de tarefas diferentes.
Correio eletrônico
Um sistema de correios utiliza três componentes, entre eles; Agentes de usuários, Servidores de correios e Protocolo SMTP.
Agentes de usuários_ permitem que usuários leiam, transmitam, retransmitam, salvem e criem mensagens.
Servidores de correios_ É o núcleo de infraestrutura do e mail, onde cada destinatário tem uma caixa postal localizada em um dos servidores de e-mail.
Protocolo SMTP_ Camada de aplicação do correio eletrônico da internet, usa o serviço confiável de ados do TCP para transferir mensagens do servidor de correios do remetente para o destinatário.
SMTP_(Simple Mail Transfer Protocol) é um protocolo de comunicação para transmissão de correio eletrônico. Como padrão da Internet, o SMTP foi definido pela primeira vez em 1982 pela RFC 821 e atualizado em 2008 pela RFC 5321 para adições de SMTP estendido. Servidores de correio e outros agentes de transferência de mensagens usam SMTP para enviar e receber mensagens de correio. Sistemas proprietários, como Microsoft Exchange e IBM Notes e sistemas de Webmail, como Outlook.com, Gmail e Yahoo! O correio pode usar protocolos não padrão internamente, mas todos usam SMTP ao enviar ou receber e-mail de fora de seus próprios sistemas. Servidores SMTP geralmente usam o (Transmission Control Protocol) na porta número 25.
Os clientes de e-mail no nível do usuário geralmente usam SMTP apenas para enviar mensagens para um servidor de e-mail para retransmissão e normalmente enviam emails para o servidor de e-mail na porta 587 ou 465 conforme RFC 8314.
SNMP_ (Simple Network Management Protocol) é um protocolo padrão da Internet para coletar e organizar informações sobre dispositivos gerenciados em redes IP.
Os dispositivos que normalmente oferecem suporte ao SNMP incluem modems a cabo, roteadores, comutadores, servidores, estações de trabalho, impressoras e muito mais.
O SNMP é amplamente usado no gerenciamento e monitoramento de rede. O SNMP expõe dados de gerenciamento na forma de variáveis nos sistemas gerenciados e os organiza em uma base de informações de gerenciamento (MIB) que descreve o status e a configuração do sistema.
Essas variáveis podem ser consultadas remotamente (e, em algumas circunstâncias, manipuladas) pelo gerenciamento de aplicativos.
Três versões significativas do SNMP foram desenvolvidas e implantadas. SNMPv1 é a versão original do protocolo.
As versões mais recentes, SNMPv2c e SNMPv3, apresentam melhorias em desempenho, flexibilidade e segurança.
O SNMP é um componente do Internet Protocol Suite, conforme definido pela Internet Engineering Task Force (IETF). Consiste em um conjunto de padrões para gerenciamento de rede, incluindo um protocolo de camada de aplicativo, um esquema de banco de dados e um conjunto de objetos de dados.
ICMP_ (Internet Control Message Protocol) é um protocolo de suporte no conjunto de protocolos da Internet. É usado por dispositivos de rede, incluindo roteadores, para enviar mensagens de erro e informações operacionais, indicando sucesso ou falha ao se comunicar com outro endereço IP, por exemplo, um erro é indicado quando um serviço solicitado não está disponível ou que um host ou roteador não possa seja alcançado. O ICMP difere dos protocolos de transporte como TCP e UDP, pois normalmente não é usado para trocar dados entre sistemas, nem é empregado regularmente por aplicativos de rede do usuário final (com exceção de algumas ferramentas de diagnóstico como ping e traceroute).
TCP / IP_ Ele foi projetado e desenvolvido pelo Departamento de Defesa (DoD) na década de 1960 e é baseado em protocolos padrão. Significa (Transmission Control Protocol / Internet Protocol). O modelo TCP / IP é uma versão concisa do modelo OSI. Ele contém quatro camadas, ao contrário de sete camadas no modelo OSI. As camadas são:
_Camada de processo / aplicativo
_Camada Host-to-Host / Transporte
_Camada da Internet
_Acesso à rede / camada de link
UDP_ (User Datagram Protocol) O protocolo foi projetado por David P. Reed em 1980 e formalmente definido na RFC 768. Com o UDP, os aplicativos de computadores podem enviar mensagens para hosts em uma rede IP.
O UDP usa um modelo de comunicação com um mínimo de mecanismos de protocolo.
O UDP fornece somas de verificação para integridade dos dados e números de porta para endereçar diferentes funções na origem e destino do data grama. É bastante simples, é orientado a datagrama ,não orientado a conexão, não executa controle de fluxo, nem controle de erro e sequenciamento, é considerado não confiável, pois não assegura que suas mensagens enviadas chegue ao seu destino, e se chegarem, poderão ficar fora de ordem.
O UDP é adequado para fins em que a verificação e correção de erros não são necessárias ou são executadas no aplicativo; O UDP evita a sobrecarga desse processamento na pilha de protocolos. Aplicativos sensíveis ao tempo costumam usar UDP porque é preferível descartar pacotes atrasados devido à retransmissão, o que pode não ser uma opção em um sistema em tempo real.
Enviando email (SMTP)
O SMTP usa vários comandos para se comunicar com os servidores de e-mail. Esses comandos são descritos abaixo.
Nota: Os comandos não diferenciam maiúsculas de minúsculas, o que significa que você pode usar o Mail ou MAIL. No entanto, lembre-se de que os endereços de e-mails diferenciam maiúsculas de minúsculas.
Os comandos SMTP básicos são:
_HELO Inicia uma conversa com o servidor de correio. Ao usar este comando, você pode especificar seu nome de domínio para que o servidor de correio saiba quem você é. Por exemplo, HELO mailhost. cf.ac.uk.
_MAIL Indica quem está enviando o email. Por exemplo,
MAIL FROM:<zeluiz1908@yahoo.com.br>.
Qualquer e-mail retornado será enviado de volta para este endereço.
_RCPT
- Indica quem está recebendo o correio. Por exemplo,
RCPT TO: <user@email.com>. Você pode indicar mais de um usuário criando vários comandos RCPT.
_DATA Indica que você está prestes a enviar o texto (ou corpo) da mensagem. O texto da mensagem deve terminar com a seguinte sequência de cinco letras: "\r\n.\r\n."
_QUIT
- Indica que a conversa terminou.
_EXPN Indica que você está usando uma lista de endereçamento.
_HELP Solicita ajuda do servidor de correio.
_NOOP Não faz nada além de receber uma resposta do servidor de e-mail.
_RSET Aborta a conversa atual.
_SEND Envia uma mensagem para o terminal de um usuário em vez de uma caixa de correio.
_SAML Envia uma mensagem para o terminal do usuário e para a caixa de correio do usuário.
_SOML Envia uma mensagem para o terminal do usuário se ele estiver conectado; caso contrário, envia a mensagem para a caixa de correio do usuário.
_TURN Inverte a função de cliente e servidor. Isso pode ser útil se o programa cliente também puder atuar como um servidor e precisar receber emails do computador remoto.
_VRFY Verifica a existência e o nome de usuário de um determinado endereço de e-mail. Este comando não está implementado em todos os servidores de correio. E pode ser bloqueado por firewalls.
Todo comando receberá uma resposta do servidor de correio na forma de um número de três dígitos, seguido de algum texto descrevendo a resposta. Por exemplo:
250 OK
ou
Erro de sintaxe 500, comando não reconhecido.
A lista completa dos códigos de resposta é mostrada abaixo: (você nunca verá a maioria deles se programar seu servidor de email corretamente !!)
211- Um status do sistema ou resposta de ajuda.
214- Mensagem de ajuda.
220- O servidor está pronto.
221- O servidor está encerrando a conversa.
250- A ação solicitada foi concluída.
251- O usuário especificado não é local, mas o servidor encaminhará a mensagem de email.
354- Esta é uma resposta ao comando DATA. Depois de obter isso, comece a enviar o corpo da mensagem de email, terminando com "\ r \ n. \ R \ n".
421- O servidor de email será desligado. Salve a mensagem de correio e tente novamente mais tarde.
450- A caixa de correio que você está tentando acessar está ocupada. Aguarde um pouco e tente novamente.
451- A ação solicitada não foi realizada. Alguns erros ocorrem no servidor de email.
452- A ação solicitada não foi realizada. O servidor de correio ficou sem armazenamento do sistema.
500- O último comando continha um erro de sintaxe ou a linha de comando era muito longa.
501- Os parâmetros ou argumentos no último comando continham um erro de sintaxe.
502- O servidor de email não implementou o último comando.
503- O último comando foi enviado fora de sequência. Por exemplo, você pode ter enviado DATA antes de enviar RECV.
504- Um dos parâmetros do último comando não foi implementado pelo servidor.
550- A caixa de correio que você está tentando acessar não pode ser encontrada ou você não tem direitos de acesso.
551- O usuário especificado não é local; parte do texto da mensagem conterá um endereço de encaminhamento.
552- A caixa de correio que você está tentando acessar ficou sem espaço. Armazene a mensagem e tente novamente amanhã ou em alguns dias - depois que o usuário tiver a chance de excluir algumas mensagens.
553- O endereço de e-mail que você especificou não estava sintaticamente correto.
554- A transação de e-mail falhou por causas desconhecidas.
Agora que você viu todos os comandos e códigos de resposta SMTP, vamos ver como pode ser uma conversa típica de e-mail. Na conversa a seguir, as linhas '>' são os comandos SMTP emitidos pelo seu programa. As linhas '<' são as respostas do servidor de correio.
> HELO
<250 zelu.cs.cf.ac.br Olá joao@cs.cf.ac.br [X.X.X.X], prazer em conhecê-lo
> CORREIO De: <(Zelu)>
<250 <(Zelu)> ... Remetente ok
> RCPT Para: <joao@cs.cf.ac.br>
<250 <joao@cs.cf.ac.br> ... Destinatário ok
> DADOS
<354 Digite o e-mail e termine com "." em uma linha por si só
> De: (Zelu)
> Assunto: programas
> Esta é a linha um.
> Esta é a linha dois.
>.
<250 AAA14672 Mensagem aceita para entrega.
> SAIR
<221 zelu.cs.cf.ac.br fechando a conexão