Научное сотрудничество между стэнфордским биологом, которая специализируется на изучении муравьёв, и специалистам по компьютерной науке, привело к неожиданному результату. Учёные обнаружили много общего в поведении муравьиных колоний и принципах организации инфраструктуры интернета. Оказалось, что методы поиска еды муравьями практически совпадают с алгоритмами, по которым работает сетевой протокол TCP.
Например, колония муравьёв отправляет на поиски новой еды определённое количество «следопытов» — этот принцип совпадает с тем, как протокол TCP определяет максимально возможную полосу пропускания для передачи данных.
Протокол TCP (Transmission Control Protocol) работает следующим образом. При передаче из узла A в узел Б файл разбивается на пакеты. Когда узел Б получает пакет, он отправляет подтверждение получения узлу А. Этот механизм обратной связи позволяет протоколу TCP установить скорость передачи пакетов по частоте и количеству полученных подтверждений. Если подтверждения приходят реже, чем отправляются пакеты, значит, доступна для передачи меньшая полоса пропускания — и нужно уменьшить скорость отправки пакетов. Если пакеты возвращаются быстро, то можно увеличить скорость отправки.
Учёные обнаружили, что муравьи Pogonomyrmex barbatus в Аризоне действуют по такому же алгоритму. Поскольку отдельные муравьи никогда не возвращаются в колонию без еды, они являются прямой аналогией подтверждений доставки пакетов: если муравей вернулся — значит пакет доставлен (еда есть). Оказалось, что частота и количество отправки новых муравьёв за едой непосредственно зависит от частоты возвращения муравьёв с добычей.
Применив алгоритмы TCP, учёные смогли смоделировать, какое количество муравьёв отправит колония, в зависимости от количества еды. Использование протокола TCP позволило в точности предсказать поведение муравьёв.
«Муравьи обнаружили знакомый нам алгоритм миллионы лет назад», — говорит профессор компьютерных наук Баладжи Прабакар (Balaji Prabhakar), соавтор научной работы. Он поясняет, что муравьям знакомы и дополнительные опции TCP, такие как медленное начало передачи (slow start) и прерывание передачи в результате разрыва связи (time-out). В первом случае при отправке большого количества пакетов передача начинается с большими интервалами. Во втором случае, при отсутствии подтверждений о доставке пакетов, передача прерывается на некоторое время. В случае муравьиной колонии таймаут составляет около 20 минут. Если ни один муравей не вернулся за 20 минут, отправка новых муравьёв приостанавливается.
По словам профессора, если бы эти исследования провели 40-50 лет назад, то разработчики TCP и других сетевых протоколов могли бы использовать эту информацию, а не изобретать велосипед.