La historia del correo electrónico, que no fue más allá de 500 millas del remitente , se ha convertido en un clásico barbudo. Pensé que la reacción normal era solo reír, pero no había tan pocas personas que quisieran demostrarle al autor que esto no podía ser, porque ... Al final, el autor no pudo soportarlo y emitió un FAQ completo. Entonces conoce:Correo electrónico que no fue más allá de 500 millas
He recibido muchas respuestas a la publicación, "El correo no va más allá de 500 millas". Mi historia fue reimpresa muchas veces y se vendió mucho más de lo que podría haber esperado. La mayoría de las respuestas son gracias por la divertida historia y las ofertas de trabajo (por cierto, ¡gracias por ellas, y me gustaría que sigan viniendo!) Sin embargo, hubo muchos que buscaron inexactitudes y contradicciones en mi historia, encontrando fallas en las pequeñeces. En lugar de responder a cada ataque, simplemente recolecté las preguntas más frecuentes y las respondí todas a la vez.
1. ¿Era verdad o la historia es solo una historia?Es una realidad. En ese momento, era responsable de un sistema de correo electrónico centralizado en el campus de la Universidad de Carolina del Norte en Chapel Hill. Además, también participé en la configuración del correo electrónico para aquellos departamentos que por alguna razón usaban sus propios servidores. Lo principal en el contexto de esta historia es que escribí un archivo de configuración para el servidor de correo, sendmail.cf, que fue utilizado por la mayoría de los servidores del campus.
2. ¿Cuándo sucedió esta historia?Realmente me gustaría decir con seguridad. Pero a pesar del hecho de que soy una de esas ventajas
(en el original, soy uno de esos tipos anal-retentivos) que almacenan cuidadosamente todo su correo, entrante y saliente, no puedo encontrar una sola carta sobre este tema. Mientras escribía, me informaron sobre el problema por teléfono y también respondí por teléfono. Después de un tiempo, conscientemente decidí no escribir ninguna carta, principalmente porque la historia es muy buena, y me gustó volver a contarla y mirar las caras de las personas que la escucharon por primera vez. Basado en los recuerdos de la oficina en la que trabajaba en ese momento, de los colegas a quienes les estaba contando esta historia, y otros detalles irrelevantes pero relacionados con el tiempo, la historia sucedió alrededor de 1994-1997.
Sin embargo, ciertamente puede calcular el tiempo con mayor precisión. Por ejemplo, cuando sendmail 8 ya era "bastante estable", ¿pero Sun todavía enviaba sendmail 5? Eric Allman (Eric Allman) me escribió acerca de esto, que algunas funciones podrían ser enviadas a sendmail 5, y si sabe cuándo fue, puede reducir significativamente el intervalo de tiempo. En general, si tiene alguna idea sobre cómo calcular el tiempo de una historia con mayor precisión, los escucharé con gratitud.
3. ¿Te sucedió realmente esta historia o es la personalidad del personaje principal de los "detalles irrelevantes" que se cambiaron?Esta es realmente mi historia. Quizás uno de mis colegas me advirtió que "algo sucedió en la oficina de estadística", antes de hablar con el jefe del departamento. Incluso puede ser que llamé al jefe del departamento, y no a él. Lo más probable es que uno de mis colegas estaba sentado a mi lado mientras resolvía el problema, porque tengo la costumbre de discutir los problemas de trabajo en voz alta en el proceso de resolución. Pero apenas cuento la historia de otra persona y cosecho los laureles de otra persona. Aunque, si trabajabas conmigo en ese momento y crees que resolver el problema es tu mérito, contáctame y encontraremos algo.
4. Si no está 100% seguro de los detalles, ¿por qué hay tantos detalles en la historia?Porque con los detalles, la historia se ve mucho mejor. ¿Realmente crees que si comenzara cada oración con las palabras "No recuerdo exactamente, pero parece ser que ...", entonces algo habría cambiado? Al final, al principio, advertí que algunos detalles menores fueron cambiados, y algunos fueron omitidos deliberadamente, solo para mejorar la historia.
El segundo punto importante es el sitio donde se publicó la historia por primera vez. Envié esta historia a la lista de correo SAGE (Gremio de Administradores de Sistemas) en la sección "desafíos increíbles". Estas fueron solo historias sobre las tareas más increíbles que la administración a veces pone a los administradores del sistema.
Por supuesto, si supiera que la historia se extendería por todo Internet, habría sido más cuidadoso al escribir. Pero el texto fue escrito para colegas, la mayoría de los cuales conozco personalmente, y que, en general, tienden a creerme.
5. La historia es divertida, pero los detalles técnicos al final son erróneos.Si lo se. Vuelva a leer la respuesta a la pregunta anterior. En primer lugar, escribí una historia humorística basada en un incidente que me sucedió. Este no es material educativo, por lo que no hay más detalles técnicos de los necesarios para comprender el significado general de lo que está sucediendo. En general, después de escribir esta historia, me sentí imbuido de un gran respeto por los autores que escribieron historias basadas en hechos reales. Ahora sé lo difícil que es mantener un equilibrio entre credibilidad y ficción. Y ahora sé bien qué ráfaga de críticas condena al autor, eligiendo una sílaba de arte :-)
6. Bueno, bueno, pero ¿por qué no escribes material de capacitación ahora?Desafortunadamente, esto no funcionará, incluso si quisiera, porque no tenía los datos de origen. No guardé los registros, y no tenía ninguna nota que hice. Realmente me gustaría que se conservaran, porque entiendo que podría hacer un buen artículo con ellos. Entonces todo esto parecía trivial, digno de convertirse en una broma para un estrecho círculo de amigos. Y hice frente a esta tarea, incluso sin registros y notas.
Aunque ... de hecho hay detalles que recuerdo o puedo restaurar. Y los uso para responder las siguientes preguntas.
7. Establecer el tiempo de espera de connect () a 3 ms no tiene sentido.Si lo se. Pero no hubo tal instalación. La historia describe cómo pasé 10 minutos moviéndome de un límite de 500 millas en el rango de envío de correo a un tiempo de espera de 3 ms, debido a la velocidad de la luz. De hecho, el proceso tomó varias horas, y mi trabajo se puede comparar con el trabajo de un detective. Al final, encontré una solución, realicé pruebas y serví café (además, estoy seguro de que estaba lejos de ser la primera taza de café). De todos modos, ¿qué te confunde exactamente en la figura de "3 ms"?
8. Bueno, en primer lugar, 3 ms claramente no es suficiente, porque esto solo es suficiente para que el paquete saliente llegue al destinatario. Pero aún necesita obtener una respuesta, ¿el retraso mínimo debería ser de 6 ms?Por supuesto Este es solo uno de esos detalles que omití. Es demasiado complicado y aburrido para una historia humorística.
9. ¿O tal vez el tiempo de espera debería ser generalmente de 12/18/24 ms debido al protocolo de conexión TCP trifásico?Tal vez Nuevamente, estos son los detalles que no puedo recordar porque perdí todas las notas. Sin embargo, creo que cuando se recibe el paquete SYN / ACK, se restablece el tiempo de espera de la función connect (), es decir, no es necesario que la conexión TCP se establezca completamente durante el tiempo de espera. Sí, aunque debería contar la historia de todos modos, reduciría todos estos cálculos complejos al número "3".
10. El equipo de red introduce demoras mucho mayores en el flujo de la señal de lo que pensabas.Sí, puede que tengas razón. Pero podría tener en cuenta estos retrasos. No estoy seguro de haber hecho todo así, pero podría, por ejemplo, hacer ping al enrutador más cercano (por ejemplo, un enrutador que sirve a la red de otro colegio de nuestra universidad) para calcular cuánto retraso da el enrutador. Entonces podría multiplicar el retraso resultante por la cantidad de nodos a través de los cuales la señal pasa al destino. Esta cantidad es aproximadamente la misma para todas las universidades de la costa este. Pero incluso si esto no fuera así, el retraso agregado por un enrutador redundante es de varios cientos de microsegundos, lo que no afecta tanto el tiempo general.
11. Una historia divertida, pero tiene un defecto fatal : la señal en el cable de cobre no se propaga a la velocidad de la luz.Sí, lo es, la señal llega a una velocidad de ¾c más o menos. Pero la red del campus y la red troncal eran completamente de fibra óptica.
12. ¡Ajá! ¡Pero incluso en fibra óptica, la luz no se propaga a la misma velocidad que en el vacío!Sí, aquí me tienes. En fibra óptica, la señal viaja a una velocidad de ⅔c (sí, más lenta que en un cable de cobre) a casi c, dependiendo de varios factores. Pero repito una vez más: todo esto lo pude tener en cuenta y, por supuesto, lo tuve en cuenta. Apreté diferentes nodos y grabé el tiempo de ping y la distancia al nodo. Comparando las cifras obtenidas, deduje un cierto "tiempo empírico", que era ligeramente diferente del tiempo real. Sin embargo, todo esto también son detalles insignificantes, que omití para hacer la historia más corta y más fascinante.
13. Stop-stop-stop ... ¿Quieres decir que primero adivinaste que el problema estaba relacionado de alguna manera con la velocidad de la luz, y solo luego pasaste a los cálculos (en el original - "lo escribiste en unidades", es decir, usó las unidades de utilidad) ?Si exactamente. Yo era terco. ¿No has notado las respuestas correctas durante el proceso de resolución del misterio? Esto es exactamente lo que me pasó. Muy probablemente, por el contrario, primero transfirí 500 millas a milisegundos ligeros y solo entonces ajusté la respuesta a este conocimiento.
14. Es decir, ¿sabía cómo resolver el problema de los usuarios, pero no lo resolvió hasta que descubrió que era un tiempo de espera?No Tan pronto como me di cuenta de que reemplazar el sendmail estándar en SunOS con sendmail 8 resuelve el problema, lo hice. (Incluso si no supiera que esto resolvería el problema, lo haría porque sendmail 5 con parámetros de sendmail 8 no es la mejor configuración). Pero mantuve el viejo binario, para poder lidiar con el problema en mi tiempo libre.
Los administradores del sistema siempre hacen esto. Nunca sucede que "el sistema ha estado funcionando y cansado durante demasiado tiempo", pero reiniciar a menudo ayuda. Primero, el administrador resuelve el problema lo mejor que puede para que los usuarios puedan continuar trabajando, y luego regresa y busca la verdadera causa de lo que sucedió.
15. Por lo general, los datos viajan a través de Internet con rutas muy extrañas, pero en esta historia el remitente siempre se conecta directamente al destinatario. ¿Cómo es eso?De ninguna manera 500 millas más o menos: había una zona para enviar una carta más allá de la cual era imposible. Dentro de esta zona también había nodos donde las cartas no se enviaron o enviaron con mayor o menor éxito.
Puede haber al menos dos razones para esto. El primero es un retraso adicional (por ejemplo, en el firewall), que llevó a la expiración del tiempo de espera. El segundo: el camino hacia estos nodos fue realmente difícil, y su longitud total fue de más de 500 millas.
La red de la Universidad de Carolina del Norte se construyó muy bien, y la ruta de la señal a otras universidades en la costa este (a la que, de hecho, el correo se entregó con éxito) fue casi directa
(en la ortodromía original) , especialmente cuando sucedió esta historia. En aquellos días, era raro que un paquete de Atlanta a Washington pasara por San José.
16. ¿Y por qué todavía consideras necesario mencionar en la historia que tu red se construyó casi por completo en conmutadores?No lo se En ese momento, parecía que sin este comentario, la historia sería completamente inverosímil. Aunque ahora no entiendo por qué. Entonces, cuando vuelves a leer la historia, puedes descartar mentalmente el párrafo correspondiente.
Un usuario con el apodo Hacksaw escribió lo siguiente: “Cambiar excluye demoras, por ejemplo, para resolver colisiones. La ausencia de tales retrasos simplificó la búsqueda del problema descrito, ya que los datos para el análisis eran más limpios. Apuesto a que querías decir eso.
17. Sendmail 5 no comprende el archivo de configuración de sendmail 8.Pero él entendió. Ya me han dicho que el sendmail 5 que se puede encontrar en la red no comprende. Por lo tanto, me veo obligado a asumir que solo sendmail, suministrado por Sun como parte de Solaris, podría hacer esto. Si tiene acceso a su fuente, le agradecería que verifique si esto es posible. Pero aún así, sucedió, lo que significa que podría suceder :-)
18. sendmail tiene valores de parámetros predeterminados con los que se compila; no puede simplemente establecer todos los parámetros no inicializados en 0.Varias personas me escribieron sobre esto. Hoy puede ser así, pero en aquellos días definitivamente no era así. Estoy seguro de esto, porque un año o dos después de que sucedió esta historia, estaba en un taller de sendmail en LISA con Eric Allman. Se dio cuenta de que sendmail no tiene valores predeterminados para algunas opciones de las que habló (en el estándar sendmail.cf estos valores eran, pero, como recordará, esto no se aplica a nuestro historial). Aproveché la oportunidad y le conté una historia sobre 500 millas. Literalmente estaba acostado debajo de la mesa con risas :-)
19. La utilidad de unidades en SunOS no comprende unidades como "milisegundos de luz" (en la traducción al ruso dice "toma 3 milisegundos y multiplícalo por la velocidad de la luz", y la salida de la utilidad de unidades se muestra en el original)Si ¿Y qué? En todas las máquinas con las que trabajo, escribo mis propias unidades.dat con un montón de unidades y prefijos adicionales. Y en general, hasta donde recuerdo, las unidades que comencé con AIX. No sé si sé algo sobre los milisegundos ligeros de AIX. Echa un vistazo a las unidades.dat que viene con cualquier distribución de Linux hoy. Probablemente sepa sobre milisegundos de luz (milisegundos).
20. Por supuesto, es muy conveniente referirse a "notas perdidas" ...Por supuesto ¿Y cuántos trozos de papel hace cinco años guardas?
21. De todos modos, ¡esta historia es una ficción!Responda la pregunta: si ignoramos los detalles técnicos, ¿puede la configuración incorrecta del servidor de correo llevar al hecho de que las cartas se entregan a los destinatarios cercanos, pero no a los destinatarios remotos? Creo que la respuesta es sí. De hecho, sé que la respuesta es sí porque realmente sucedió. Pero incluso si no toma en cuenta mi experiencia y mira la pregunta desde afuera, creo que todavía es posible, aunque a primera vista parece inverosímil.
Si todavía tiene preguntas que no he respondido, escríbame un correo electrónico a trey+500mi@lopsa.org. Agregaré su pregunta a las preguntas frecuentes y lo mencionaré como autor. Pero lo más probable es que solo diga "No sé, no lo recuerdo y no tengo los datos para responder".
22. La firma dice que estás buscando trabajo. ¿Sigue siendo relevante? (firma eliminada en traducción rusa)Ya no, pero gracias por esta pregunta!