DLL is a dynamic link library file format used for holding multiple codes and procedures for Windows programs. DLL files were created so that multiple programs could use their information at the same time, aiding memory conservation.

EXE is a file extension for an executable file format. An executable is a file that contains a program - that is, a particular kind of file that is capable of being executed or run as a program in the computer. An executable file can be run by a program in Microsoft DOS or Windows through a command or a double click.

Difference between exe and dll:

  • EXE is an extension used for executable files while DLL is the extension for a dynamic link library.
  • An EXE file can be run independently while a DLL is used by other applications.
  • An EXE file defines an entry point while a DLL does not.


NetSim's Core, the NetSimcore.exe contains the main() and its closed to the user whereas protocol DLLs are open for user modification.


When a program begins running, the system calls the function main, which marks the entry point of the program. Every program must have one function named main. In computer programming, an entry point is where the first instructions in a program are executed, and where the program has access to command line arguments. To start a program's execution, the loader or operating system passes control to its entry point. This marks the transition from load time to run time.


LIB files with extention .lib, usually hold a static data library of information. The information in this file is associated with a specific computer application. The LIB files usually store the functions that are referenced by the application, which is then associated with the library. LIB files are an alternative to DLL files, which contain dynamic link libraries. The LIB files contain static libraries that can be used as import libraries for DLL files.

For example,

  • For cross layer implementations or interactions between the layers of the network stack, one layer will have to import the libraries of the other.
  • NetSim imports libraries of MATLAB for Interfacing with it.


NetSim has dedicated dll’s for each protocol which provides an abstraction between different layers of the TCP/IP stack.

Users create a network scenario using NetSim’s GUI which in turn creates a Configuration.xml file which is provided as an input to NetSim’s kernel which is NetSimCore.exe. This then calls NetworkStack.dll, which handles calls to the respective dll’s in each Layer. Calls to dll’s are made based on the protocol running in a specific layer. For example, libApplicaiton.dll is called in the Application Layer whereas either libTCP.dll or libUDP.dll is called in the Transport Layer based on whichever is configured.

Users can perform modifications to a specific layer without worrying about the other layers, which will be taken care by NetSim. Also users need not build the entire code base if they are concentrating on a specific protocol. So if you are modifying ZigBee MAC layer then you just have to modify libZigBee.dll and need not worry about the rest of the code base.