O correio não percorre mais de 500 milhas - Perguntas frequentes

A história do e-mail, que não foi além de 800 quilômetros do remetente , tornou-se um clássico barbado. Eu pensei que a reação normal era apenas rir, mas não havia tão poucas pessoas que quisessem provar ao autor que isso não poderia acontecer, porque ... No final, o autor não aguentou e emitiu um FAQ inteiro. Então conheça:

E-mail que não ultrapassou 500 milhas


Recebi muitas respostas para a publicação: "O correio não ultrapassa as 500 milhas". Minha história foi reimpressa muitas vezes e vendida muito mais do que eu poderia ter esperado. A maioria das respostas é agradecida pela história engraçada e pelas ofertas de emprego (a propósito, obrigado por elas e eu gostaria que elas continuassem chegando!) No entanto, houve muitas que procuraram imprecisões e contradições na minha história, encontrando falhas com ninharias. Em vez de responder a todos esses ataques, simplesmente coletei as perguntas mais frequentes e respondi de uma só vez.

1. Era verdade ou a história é apenas uma história?

É uma realidade. Naquela época, eu era responsável por um sistema de e-mail centralizado no campus da Universidade da Carolina do Norte em Chapel Hill. Além disso, eu estava envolvido na configuração de email para os departamentos que, por algum motivo, usavam seus próprios servidores. O principal no contexto desta história é que escrevi um arquivo de configuração para o servidor de email sendmail.cf, usado pela maioria dos servidores do campus.

2. Quando essa história aconteceu?

Eu realmente gostaria de dizer com certeza. Mas, apesar de ser uma dessas vantagens (no original - sou um desses tipos de retenção anal) que armazena cuidadosamente todas as suas correspondências, recebidas e enviadas, não consigo encontrar uma única carta sobre esse assunto. Enquanto escrevia, fui informado sobre o problema por telefone e também respondi por telefone. Depois de algum tempo, decidi conscientemente não escrever nenhuma carta, principalmente porque a história é muito boa, e gostava de recontá-la e observar os rostos das pessoas que a ouviram pela primeira vez. Com base nas lembranças do escritório em que eu trabalhava naquela época, dos colegas com quem contei essa história e em outros detalhes irrelevantes, mas relacionados ao tempo, a história aconteceu por volta de 1994-1997.

No entanto, você certamente pode calcular o tempo com mais precisão. Por exemplo, quando o sendmail 8 já era "bastante estável", mas a Sun ainda estava enviando o sendmail 5? Eric Allman (Eric Allman) me escreveu sobre isso, que algumas funções poderiam ser suportadas para o sendmail 5 e, se você souber quando isso aconteceu, poderá reduzir significativamente o intervalo de tempo. Em geral, se você tiver alguma ideia de como calcular o tempo de uma história com mais precisão, eu os ouvirei com gratidão

3. Essa história realmente aconteceu com você, ou a personalidade do personagem principal está nos “detalhes irrelevantes” que foram alterados?

Esta é realmente a minha história. Talvez um dos meus colegas tenha me avisado que "algo aconteceu no escritório de estatística", antes de falar com o chefe do departamento. Pode até ser que eu chamei o chefe do departamento, e não ele. Provavelmente, um dos meus colegas estava sentado ao meu lado enquanto eu resolvia o problema, porque eu tenho o hábito de discutir questões de trabalho em voz alta no processo de resolução. Mas dificilmente estou contando a história de outra pessoa e colhendo louros de outra pessoa. Embora, se você estivesse trabalhando comigo naquele momento e acreditasse que resolver o problema é seu mérito, entre em contato comigo e apresentaremos algo.

4. Se você não tem 100% de certeza dos detalhes, por que existem tantos detalhes na história?

Porque com os detalhes, a história parece muito melhor. Você realmente acha que se eu iniciasse cada frase com as palavras "Eu não me lembro exatamente, mas parece ser ...", algo teria mudado? No final, no começo, eu avisei que alguns detalhes menores foram alterados e alguns foram deliberadamente omitidos - apenas para melhorar a história.
O segundo ponto importante é o site onde a história foi publicada pela primeira vez. Enviei essa história para a lista de correspondência do SAGE (System Administrators Guild) na seção "desafios incríveis". Essas eram apenas histórias sobre as tarefas mais incríveis que o gerenciamento às vezes coloca aos administradores de sistema.

É claro que, se eu soubesse que a história se espalharia por toda a Internet, teria sido mais cuidadoso ao escrever. Mas o texto foi escrito para colegas, a maioria dos quais eu conheço pessoalmente e que, em geral, tendem a acreditar em mim.

5. A história é engraçada, mas os detalhes técnicos no final são errôneos.

Eu sei sim Releia a resposta para a pergunta anterior. Antes de tudo, escrevi uma história de humor com base em um incidente que aconteceu comigo. Como não é um material educacional, não há mais detalhes técnicos do que o necessário para entender o significado geral do que está acontecendo. De uma maneira geral, depois de escrever essa história, fui imbuído de grande respeito pelos autores que escrevem histórias baseadas em fatos reais, e agora sei como é difícil manter um equilíbrio entre verossimilhança e ficção. E agora eu sei muito bem o que uma enxurrada de críticas condena ao autor, escolhendo uma sílaba da arte :-)

6. Bem, bem, mas por que você não escreve material de treinamento agora?

Infelizmente, isso não funcionará, mesmo que eu quisesse, porque não tinha os dados de origem. Não salvei os logs e não tinha anotações que fiz então. Eu realmente gostaria que eles fossem preservados, porque entendo que poderia fazer um bom artigo com eles. Então tudo isso parecia trivial, digno apenas de se tornar uma piada para um círculo estreito de amigos. E eu lidei com essa tarefa - mesmo sem registros e anotações.

Embora ... de fato, haja detalhes que eu lembre ou possa restaurar. E eu os uso para responder às seguintes perguntas.

7. Definir o tempo limite de connect () para 3 ms não faz sentido.

Eu sei sim Mas não havia essa instalação. A história descreve como passei 10 minutos passando de um limite de 500 milhas no intervalo de envio de mensagens para um tempo limite de 3 ms, devido à velocidade da luz. De fato, o processo levou várias horas e meu trabalho pode ser comparado ao trabalho de um detetive. No final, encontrei uma solução, fiz testes e servi café (além disso, tenho certeza de que isso estava longe da primeira xícara de café). Mesmo assim, o que exatamente o confunde na figura "3 ms"?

8. Bem, em primeiro lugar, 3 ms claramente não são suficientes, porque isso é suficiente para que o pacote enviado chegue ao destinatário. Como você ainda precisa obter uma resposta, o atraso mínimo deve ser de 6 ms?

Claro. Este é apenas um desses detalhes que eu omiti. É muito complicado e chato para uma história de humor.

9. Ou talvez o tempo limite geralmente seja de 12/18/24 ms devido ao protocolo de conexão TCP trifásico?

Talvez. Novamente, esses são os detalhes dos quais não me lembro porque perdi todas as anotações. No entanto, acho que quando o pacote SYN / ACK é recebido, o tempo limite da função connect () é redefinido, ou seja, não é necessário que a conexão TCP seja totalmente estabelecida durante o tempo limite. Sim, mesmo que contasse a história, eu reduziria todos esses cálculos complexos ao número "3".

10. O equipamento de rede apresenta atrasos muito maiores no fluxo do sinal do que você pensava.

Sim, você pode estar certo. Mas eu poderia levar em conta esses atrasos. Não tenho certeza se fiz tudo assim, mas pude, por exemplo, executar o ping no roteador mais próximo (por exemplo, um roteador que atende à rede de outra faculdade de nossa universidade) para calcular quanto atraso o roteador dá. Então eu poderia multiplicar o atraso resultante pelo número de nós através dos quais o sinal passa para o destino. Esse valor é aproximadamente o mesmo para todas as universidades da costa leste. Mas mesmo que não fosse assim, o atraso adicionado por um roteador redundante é de várias centenas de microssegundos, o que não afeta tanto o tempo total.

11. Uma história engraçada, mas há uma falha fatal : o sinal no fio de cobre não se propaga à velocidade da luz.

Sim, o sinal chega a uma velocidade de aproximadamente ¾c. Mas a rede do campus e a espinha dorsal eram inteiramente de fibra óptica.

12. Ah! Mas mesmo em fibra óptica, a luz não se propaga na mesma velocidade que no vácuo!

Sim, aqui você me pegou. Na fibra óptica, o sinal viaja a uma velocidade de ⅔c (sim, mais lento que em um fio de cobre) a quase c, dependendo de vários fatores. Mas repito mais uma vez - tudo isso eu pude levar em consideração e, é claro, levar em conta. Executei ping em nós diferentes e registrei o tempo e a distância do ping. Comparando os números obtidos, deduzi um certo "tempo empírico", que era ligeiramente diferente do tempo real. No entanto, tudo isso também são detalhes insignificantes, que eu omiti para tornar a história mais curta e mais fascinante.

13. Pare, pare, pare ... Você quer dizer que primeiro adivinhou que o problema estava de alguma forma relacionado à velocidade da luz e só depois foi calculado (no original - "digitei em unidades", ou seja, usado o utilitário de unidades) ?

Sim exatamente. Eu era teimosa. Durante o processo de solução do mistério, você não notou as respostas corretas? Foi exatamente o que aconteceu comigo. Provavelmente, pelo contrário, eu primeiro transferi 500 milhas para milissegundos leves e só então ajustei a resposta a esse conhecimento.

14. Ou seja, você sabia como resolver o problema dos usuários, mas não o resolveu até descobrir que era um tempo limite?

Não. Assim que percebi que a substituição do sendmail padrão no SunOS pelo sendmail 8 resolve o problema, resolvi o problema. (Mesmo que eu não soubesse que isso resolveria o problema, eu o faria porque o sendmail 5 com parâmetros do sendmail 8 não é a melhor configuração). Mas mantive o antigo binário - para ainda lidar com o problema à vontade.

Os administradores de sistema sempre fazem isso. Nunca acontece que "o sistema esteja em execução e cansado por muito tempo", mas a reinicialização geralmente ajuda. Primeiro, o administrador resolve o problema da melhor maneira possível, para que os usuários possam continuar trabalhando, e depois ele retorna e procura a verdadeira causa do que aconteceu.

15. Geralmente, os dados viajam pela Internet com rotas muito bizarras, mas nessa história o remetente sempre se conecta diretamente ao destinatário. Como assim?

De jeito nenhum. 500 milhas mais ou menos - havia uma zona para enviar uma carta além da qual era impossível. Dentro desta zona, também havia nós onde as cartas não eram enviadas ou enviadas com sucesso variável.

Pode haver pelo menos duas razões para isso. O primeiro é um atraso adicional (por exemplo, no firewall), que levou à expiração do tempo limite. O segundo - o caminho para esses nós era realmente difícil, e seu comprimento total era superior a 800 quilômetros.

A rede da Universidade da Carolina do Norte foi construída muito bem, e o caminho do sinal para outras universidades na costa leste (para as quais, de fato, o correio foi entregue com sucesso) era quase direto (no original - o ortodromo) , especialmente quando essa história aconteceu. Naqueles dias, era raro um pacote de Atlanta a Washington passar por San Jose.

16. E por que você ainda considerou necessário mencionar na história que sua rede foi quase completamente construída em switches?

Eu não sei Naquela época, parecia que sem essa observação, a história seria completamente implausível. Embora agora eu não entendo o porquê. Portanto, quando reler a história, você pode jogar mentalmente o parágrafo correspondente.

Um usuário com o apelido Hacksaw escreveu o seguinte: “A troca exclui atrasos, por exemplo, para resolver colisões. A ausência de tais atrasos simplificou a busca pelo problema descrito, uma vez que os dados para análise foram mais limpos. Aposto que você quis dizer isso.

17. O Sendmail 5 não entende o arquivo de configuração do sendmail 8.

Mas ele entendeu. Já me disseram que o sendmail 5 que pode ser encontrado na rede não entende. Portanto, sou forçado a supor que apenas o sendmail, fornecido pela Sun como parte do Solaris, poderia fazer isso. Se você tiver acesso à sua fonte, ficaria grato por verificar se isso era possível. Mas ainda assim - aconteceu, o que significa que poderia acontecer :-)

18. sendmail possui valores de parâmetro padrão com os quais é compilado; ele não pode simplesmente definir todos os parâmetros não inicializados como 0.

Várias pessoas me escreveram sobre isso. Hoje, pode ser que sim, mas naqueles dias definitivamente não era assim. Estou certo disso, porque um ou dois anos depois dessa história aconteceu, eu estava em um workshop de sendmail na LISA com Eric Allman. Ele notou que o sendmail não possui valores padrão para algumas opções sobre as quais ele falou (no padrão sendmail.cf, esses valores eram, mas, como você se lembra, isso não se aplica ao nosso histórico). Aproveitei a oportunidade e contei a ele uma história sobre 500 milhas. Ele literalmente estava deitado debaixo da mesa com uma gargalhada :-)

19. O utilitário de unidades no SunOS não entende unidades como "milissegundos de luz" (na tradução russa diz "tome 3 milissegundos e multiplique pela velocidade da luz", e a saída do utilitário de unidades é mostrada no original)

Sim E daí? Em todas as máquinas com as quais trabalho, escrevo minhas próprias units.dat com várias unidades e prefixos extras. E, em geral, tanto quanto me lembro, as unidades que iniciei no AIX. Não sei se sei alguma coisa sobre os milissegundos de luz do AIX. Confira o units.dat que vem com qualquer distribuição Linux hoje. Ele provavelmente conhece milissegundos de luz (mililitros de segundo).

20. Claro, é muito conveniente se referir a "notas perdidas" ...

Claro. E quantos pedaços de papel há cinco anos são mantidos por você?

21. De qualquer forma, esta história é uma ficção!

Responda à pergunta: se ignorarmos os detalhes técnicos, a configuração incorreta do servidor de email pode levar ao fato de que as cartas são entregues aos destinatários próximos, mas não aos remotos? Eu acho que a resposta é sim. Na verdade, eu sei que a resposta é sim, porque realmente aconteceu. Mas mesmo que você não leve em conta minha experiência e analise a questão de fora, acho que ainda é possível, embora à primeira vista pareça implausível.

Se você ainda tiver perguntas que ainda não respondi, escreva-me um e-mail para trey+500mi@lopsa.org. Vou adicionar sua pergunta ao FAQ e mencioná-lo como autor. Mas, provavelmente, apenas direi "não sei, não lembro e não tenho os dados para responder".

22. A assinatura diz que você está procurando trabalho. Isso ainda é relevante? (assinatura removida na tradução para o russo)

Não é mais, mas obrigado por esta pergunta!

Source: https://habr.com/ru/post/pt468503/


All Articles