A UK startup, working with the British government, has created what's believed to be the largest simulation of the internet ever made.
London startup Improbable's customers include computer gaming companies, financial services firms, governments and academic researchers, but this time an unnamed department of the British governmen approached the team for this ambitious project.
Their goal was to build a realistic simulation of the complete structure of the internet and the vast number of connections and networks that make up the World Wide Web, in order to see its weak spots and understand how to protect this crucial infrastructure from failure and attack.
Large-scale internet disruptions are far from rare, and often affect large portions of the world and causing widespread disruption.
In 2008, an ISP in Pakistan accidently blocked YouTube for a large portion of the world by misconfiguring a central server after it tried to block its citizens' access to anti-Islamic content. And this January Telstra, Australia’s largest telecoms provider, suffered a country wide outage that affected 16.7 million subcribers, costing the company millions in compensation and causing massive disruption for businesses.
Underwater cables can be accidently damaged and Distributed Denial of Service (DDoS) attacks can wreak havoc on ordinary internet uses, as in the case of the 2013 attack against non-profit company Spamhaus, which cut off internet for millions of people.
And now that cities, cars, and a whole host of connected objects are becoming part of the Internet of Things, the impact of these potential outages could be even more catastrophic.
So Improbable employed its cloud-based SpatialOS software, which enables developers to create and test vast virtual worlds with an almost infinite number of variables, to make a 1:1 model of the backbone of the entire internet.
Improbable's simulation allows you to create and delete ISPs, configure links between them, or load in data from the real world.
The whole internet contains about 60,000 AS networks and over half a million routes running between them. In order to accurately simulate this, the program uses 15 machines and over 1TB of RAM.
'Not only did we demonstrate a dynamic model of BGP routing at scale, we also produced an interactive visualisation where both AS’s and the connections between them can be created or destroyed, observing dynamic routing, cascade failures and new route propagation across the network,' said Improbable CEO Herman Narula.
'Doing this sort of simulation on a single server would be almost impossible, but using our operating system we were able to distribute this simulation over as many machines as we need to reach the full scale.'
The potential for the continued development of this model, and its application, is vast, say the researchers.
'Cyber security is one of the areas where a model such as this could have a significant impact on understanding network vulnerabilities, and how different types of attacks and exploits propagate across the internet,' he said. 'Applications could range from protection of critical national infrastructure, right down to a safer and more secure internet for individual users.'
With a detailed simulation of the internet, people could begin to prepare for cyber attacks before they happen, understanding the vulnerabilities and the cascading effects of various interventions better.
'This will enable businesses, institutions and even countries to become more resilient in an age of exponential vulnerability online,' the researchers said.
Not only this, but the model is available for developers to integrate into their existing models. Improbable has imported their code into an existing city simulation project to test how smart city networks would work.
'Being able to combine orthogonal simulations in this way will enable organisations to understand how the internet relates to other complex systems: cities, infrastructure, energy, economies,' said Narula.
The full code for the project is available on GitHub, and can be run with developer access to SpatialOS.