世界を動かす技術を、日本語で。

2025年にメールは500マイル飛ぶことができるか?

概要

  • 500マイル以上 メールが送信できないという伝説的な話の再検証
  • ネットワーク遅延 とサーバ設定による現象の再現実験
  • クラウド化 による距離感の希薄化と現代の検証結果
  • 接続確認用コード の紹介とその挙動分析
  • 結論 :2025年でも設定次第で500マイル制限は再現可能

500マイルメール伝説の再検証

  • 昔話として語られる「大学の 学長が500マイル以上メール送信できない」現象
  • システム管理者 は「そんなことはあり得ない」と反論
  • 実際に試すと、 500マイルを超えるとメールが届かない 事象の再現
  • 技術の進歩による変化や、 2025年でもこの制限が存在するか の検証

非同期接続とタイムアウトの短縮

  • 非同期接続 を用いた短時間タイムアウトのCコードを利用
  • pollによる 3msタイムアウト 設定(カーネルのtickで実際は10ms~19ms程度)
  • 3msという値は 伝説に基づく設定 で、技術的な根拠は薄い
  • selectやpollのゼロタイムアウト では即時失敗となり接続困難
  • sendmailの再送待機を避けるため、 即座に結果が出る接続確認 を実施

実験:大学への接続確認

  • 東から西へ 複数大学への接続テスト
    • upenn.edu、uchicago.edu、ucla.edu いずれも「 it's a live one!」で成功
  • pingの結果 から、実際には物理的距離が反映されていないことに気付く
    • 多くの大学が クラウド上でホスト され、同一データセンター内の可能性
  • 物理距離500マイル の基準が意味を持たなくなっている現状

距離と遅延を意識した再実験

  • pingで遅延が現実的な大学 を選定して再挑戦
    • rutgers.edu(近距離)は成功、cmu.edu(中距離)は時々失敗
    • maine.edu(約500マイル)は成功と失敗が混在
    • udayton.edu(遠距離)はタイムアウトで失敗
  • 光速の制限 が2025年でも依然として有効

メールサーバ(MX)での再検証

  • MXレコード を取得し、実際のメールサーバでpingテスト
    • 多くの大学が 外部サービス(pphosted.com, Googleなど) を利用
    • pingの遅延値は大きくばらつき、 物理距離と一致しない結果
  • smtp.google.com の場合、UCLAへのメールは3000マイル離れても問題なし

結論

  • 設定ミスによる500マイル制限 は、2025年でも再現可能
  • ただし、 クラウドホスティングや外部サービス利用 により、物理距離と到達性の関係は希薄化
  • 地図を見ても実際の接続可能性は予測困難
  • ネットワーク設定やインフラの進化で、 伝説の再現はますます難しくなっている現状

参考:接続確認用Cコード(抜粋)

#include <sys/types.h>
#include <sys/socket.h>
#include <sys/select.h>
#include <poll.h>
#include <netdb.h>
#include <err.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <stdio.h>

int connect_wait(int s) {
    struct pollfd pfd[1];
    int error = 0;
    socklen_t len = sizeof(error);
    pfd[0].fd = s;
    pfd[0].events = POLLOUT;
    error = poll(pfd, 1, 3);
    if (error == -1) return -1;
    if (error == 0) {
        errno = ETIMEDOUT;
        return -1;
    }
    if (getsockopt(s, SOL_SOCKET, SO_ERROR, &error, &len) == -1) return -1;
    if (error != 0) {
        errno = error;
        return -1;
    }
    return 0;
}

ポイント

  • 3msタイムアウト では、実際のネットワーク遅延が大きいと遠距離接続が失敗
  • クラウド化 により、物理距離とネットワーク距離が一致しないケースが増加

Hackerたちの意見

今日のラッキーな1万人の中に入っていて、500マイルのメールの元の話を知らないなら、ここで読めるよ:https://web.mit.edu/jemorris/humor/500-miles (5年前にHNで話題になったやつ – https://news.ycombinator.com/item?id=23775404 – 10年前も – https://news.ycombinator.com/item?id=9338708)

2025年の更新版を読んだ後でも、元の話を読んだら最後にはめっちゃワクワクしたよ。「コンピュータやメールについて知っていること」と「私のメールは500マイル以上送れない」ということが結びつく瞬間は、どんな気持ちだったんだろう。素晴らしい話だね。元の話をシェアしてくれてありがとう。

トレイ・ハリス(元の500マイルの話の語り手)が今どうしてるのか気になって調べたけど、Googleでは大体その頃(2002年)に生まれたフットボール選手ばっかり出てくる。

実はこれが初めて聞く話なんだ、ありがとう。

ラッキーな人の一人になれてありがとう!お約束のxkcd 10,000人のラッキーな人の説明はこちら: https://xkcd.com/1053/

もし今日のラッキーな10,000人の中にいて、「ラッキー10,000」という概念を知らなかったら、こちらのXKCDを読んでみてね: https://xkcd.com/1053/

単位 751単位、62接頭辞 あなたは: 10マイル あなたが欲しいのは: メートル * 16093.44 / 6.2137119e-05 へぇ、そんなことがあるなんて知らなかった!

リンクありがとう!これ、ローカルに保存しとかなきゃ。いつも参考にしてるから。これは私のお気に入りのネットストーリーの一つで、素晴らしい展開なんだよね!

タイトルを見て、これが何についてか分かると、正直ちょっと年を感じるな。

タイトルを見て、これが何についてか分かると、正直ちょっと年を感じるな。経験豊富で、若い子たちに教える準備ができてるってことで行こう。

昨日その話を見つけてもよかったのにね :-)

気分が良くなるなら、私はめっちゃ年寄りで、タイトルを見て元の話の4分の3を読んだ後に、前に読んだことに気づいたよ。

Hacker Newsで議論の続きを見る