GNS3 is a network software emulator that allows the combination of virtual and real devices, used to simulate complex networks; its name is comes from Graphical Network Simulator. It is a free and open source network topology designing application.
Here are some screenshots to illustrate the features and user interface of this application: