There are two queues in every node in NetSim

1. Socket buffer -->Between the application layer and the transport layer. This is present for every socket created and is not limited in size.

2. Access buffer -->Between the IP layer and the MAC layer. This is present for every interface of the node and is not limited in size.


Routers have an L3 queue. These are queues at each output WAN port. The buffer size is user input. Scheduling techniques supported are FIFO, Priority, Round-Robin, and WFQ.


Switches have an L2 queue. These are queues at each output port. The buffer size is user input.  L2 switches use only FIFO scheduling. If the buffer is full, incoming packets are dropped.


Access Point has L2 queues on their wireless ports. These are queues at each output port. The buffer size is user input. Scheduling per 802.11e.


... and so on for all the other kinds of networking devices.


In addition, many protocols have internal queues i.e re-transmission queue in TCP.


The queue depth can be obtained from the Event Trace or by adding a few lines of code in the protocol source code which we ship with NetSim.  


To obtain it from the event trace, an Excel script will have to be written to filter by node, and then count the number of APP-OUT events minus the number of TRANSPORT-OUT events. at different points in time. Deeper issues such as segmentation etc which will need to handled appropriately based on the way the application and transport layer interact.


NetSim doesn't have any direct way of visualizing these queues. 


Related articles:

can-we-do-different-kinds-of-open-and-close-network-queuing-in-netsim-