Ants speak in “ifs,” “elses,” and “end ifs.” That is to say, according to a paper cowritten by a Stanford biologist and computer scientist, ants speak the language of the Internet.
All it took to discover was a phone call between two Stanford departments whose academic specialties, on the surface, couldn’t be farther apart.
Deborah Gordon, a biology professor, had recently deciphered an algorithm that described how harvester ants go out and forage for food. Something about the algorithm looked suspicious, so Gordon called up computer science professor Balaji Prabhakar and asked: Does this remind you in any way of file transfers on computer networks?
After sleeping on it, Prabhakar realized it did.
“The next day it occurred to me, ‘Oh wait, this is almost the same as how [Internet] protocols discover how much bandwidth is available for transferring a file!’” Prabhakar told Bjorn Carey of Stanford engineering’s in-house news site. “The algorithm the ants were using to discover how much food there is available is essentially the same as that used in the transmission control protocol.”
What’s that process look like? Carey explained:
“Gordon has found that the rate at which harvester ants—which forage for seeds as individuals—leave the nest to search for food corresponds to food availability. A forager won’t return to the nest until it finds food. If seeds are plentiful, foragers return faster, and more ants leave the nest to forage. If, however, ants begin returning empty handed, the search is slowed, and perhaps called off.”
That behavior is almost identical to how computers manage congestion on computer networks using what’s called transmission control protocol (TCP). Roughly, the system works by dividing data into numbered packets. When the destination receives a packet, it sends back an acknowledgment to the source. If that comes back slowly, the source will decrease speed, and alternatively, if it comes back quickly, it will increase speed.
It’s a simple, elegant solution that’s helped the Internet scale across the world. A snippet of that code, called Nagle’s algorithm, looks like this:
if there is new data to send
if the window size >= MSS and available data is >= MSS
send complete MSS segment now
else
if there is unconfirmed data still in the pipe
enqueue data in the buffer until an acknowledge is received
else
send data immediately
end if
end if
end if
Change the vocabulary, and that becomes a peek into the mind of an ant colony, something Gordon and Prabhakar call the “anternet.” There are 11,000 ant species in the world, Gordon noted. How many algorithms are hiding in the their surprisingly brilliant insect brains? And what can we learn from them?
Photo by jurvetson