Propósito do roteamento de mensagens SMTP (retransmissão)

1

Eu estou querendo saber porque o SMTP é projetado de uma maneira que permita MTA intermediário no trajeto de uma mensagem. De acordo com a RFC 5321,

The objective of the Simple Mail Transfer Protocol (SMTP) is to transfer mail reliably and efficiently.

Embora eu não entenda completamente quais são os benefícios em termos de eficiência nem confiabilidade aqui. Por exemplo, quando um agente do usuário envia uma mensagem para um sistema de correio, até onde sei, não há garantia de que a mensagem finalmente chega à caixa de correio de destino. De acordo com a RFC mencionada acima, o MTA pode responder ao originador com uma mensagem de email relatando o erro de entrega (DSN). No entanto, o servidor pode não conseguir entregar esse erro de relatório. Então, de que confiabilidade fala o RFC? IMO, abordagem muito mais confiável seria a conexão com o servidor final e enviar a mensagem diretamente. Se a conexão falhou ou o servidor rejeitou a mensagem, o remetente sabe com certeza que a entrega falhou.

Eu tenho procurado a lógica desse esquema de transporte de email no SMTP RFC, nas "Redes de computadores" de A. Tanenbaum e em muitos recursos na rede. Nenhum deles me deu uma compreensão clara do propósito do roteamento de e-mail. No entanto, posso pensar nas seguintes explicações:

1) Menos conexões necessárias para enviar mensagens. Imagine que estamos em uma rede da empresa com seu próprio MTA atuando como um relé. Muitas pessoas podem enviar mensagens para, digamos, gmail.com, servidor SMTP. Se todos se conectassem diretamente ao gmail.com, o número de conexões no servidor aumentaria. Em vez disso, o servidor de retransmissão da nossa empresa pode abrir uma única conexão TCP para o gmail.com e transmitir todas as mensagens por uma única conexão. Assim, a carga do servidor de destino é reduzida.

2) Pode haver algum controle de tráfego / antispam configurado em um MTA intermediário, reduzindo também a carga do servidor de destino.

3) No caso de vários destinos, vários MTAs intermediários podem ser usados para desduplicar mensagens. Por exemplo, uma única instância de uma mensagem é passada para o top.com e, em seguida, é dividida em dois servidores, mid1.top.com e mid2.top.com, e assim por diante. Caso contrário, teríamos que abrir conexões TCP distintas para cada destino e copiar a mensagem para cada uma delas.

Todos os itens acima são meus palpites. A questão é se isso é verdade e se há outras razões para o roteamento de email no design do SMTP.

    
por Oleg Andriyanov 02.02.2016 / 13:56

1 resposta

2

Um caso de uso comum é se o destino de destino estiver temporariamente offline, o remetente pode tentar entregar a um host intermediário (normalmente o provedor de serviços do destino de destino) com um número de registro MX mais alto. O host intermediário tentaria periodicamente a entrega e, quando o host de destino estiver on-line, as mensagens serão entregues.

Confiável neste contexto significa simplesmente "não perder ou descartar a mensagem sem tentar notificar o remetente". Claro, com uma aplicação ou fila de mensagens que você controla , é normal querer saber imediatamente sobre erros (falhar rápido). E outros observaram aqui antes que o enfileiramento de mensagens SMTP em hosts intermediários pode produzir resultados indesejáveis, pois você geralmente aprende dias depois que a mensagem não foi entregue. Mas esse é o sistema que temos, e cabe ao sistema receptor e aos intermediários que eles escolhem usar para fazer o julgamento determinar em quanto tempo a mensagem deve ser enfileirada, não o remetente.

Você está correto em # 2, serviços como o MessageLabs fazem exatamente isso. Se o lixo / malware puder ser interceptado antes de chegar ao destino, isso significa menos trabalho para o destino. Nesse cenário, o host intermediário teria o número de registro MX menor que o real.

    
por 02.02.2016 / 23:48

Tags