# Architecture

Things change fast and I am not going to describe these things here, but I will point you at where to read! A starting point is \[1] and you should spend some time understanding the architecture of GNS3.&#x20;

Try to find the most recent version of the online files, any reference I give will be out of date. There are currently four parts.

1. A user interface (GUI or Web interface). From version 2.x, all the logic in GNS3 moved into the server and the server exposes an API. This allows for automation, and you no longer need the GUI!
2. Controller
   1. The server, in our case, running on Hyper-V, Workstation or ESXi.&#x20;
   2. There is only one controller and all the intelligence live here.&#x20;
   3. Multiple users can connect to the same project this way!
3. Compute
   1. Also, part of server but could be on separate servers.
   2. There can be more than one compute instance, on my home system, I run a server locally and remotely.
4. Emulators

   1. QEMU, our emulator of choice
   2. Dynamips, the original emulator for Cisco MIPS based systems
   3. IOU, a Cisco mess!&#x20;

   Currently, the web interface is in development, and I have not used it.  

\[1] <https://gns3-server.readthedocs.io/en/2.2/>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://johnoraw.gitbook.io/lnp/2.gns3/introduction/architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
