Introduction
Time Division Multiple Access (TDMA) is a channel access method that enables multiple nodes to share the same frequency channel by dividing the signal into time slots. By dividing time into slots, TDMA enables efficient sharing of network resources while avoiding packet collisions.
This article will help you:
- Calculate the theoretical maximum capacity of TDMA links
- Understand how different system parameters affect network throughput
- Estimate TDMA throughputs under various scenarios
Parameter values
We use the following example parameters in our calculations:
- Slot Duration: 20ms (milliseconds)
- Guard Interval: 100 microseconds (µs)
- Data Symbol Rate: 100kBd (kilobaud - symbols per second)
- Modulation: QPSK (Quadrature Phase Shift Keying, modulation order = 2)
- Coding Rate: 1/2 (one information bit for every two transmitted bits)
Obtaining the link capacity
Compute the slot capacity
A TDMA frame consists of: (i) Data transmission period, and (ii) Guard interval - to prevent interference between adjacent slots and to allow for propagation delay.
Determine the effective time period (t_s) including guard interval.
Calculate the link capacity
Throughput Estimation: Two nodes, one transmitting node, one application, round robin scheduling, static routing
Since there are two nodes and the scheduling is round robin, one slot in every two would be allotted to the transmitting node.
Therefore the maximum throughput would be equal to the half the link capacity calculated earlier.
The actual throughput would depend on:
a. Traffic generation rate
- PHY Throughput approximately equals CapacityPerNode when traffic generation rate exceeds CapacityPerNode.
- PHY Throughput approximately equals generation rate when the generation rate is below CapacityPerNode . This is because if the generation rate is lower than what the network capacity, then the throughput would obviously be equal to the generation rate.
- The reason we say approximately is because PHY throughput further depends on packet size.
b. Packet Size
Recall that the Physical (PHY) layer packet size is the sum of application layer data and protocol overhead from all layers.
Two scenarios arise:
- When PHY packet size > slot capacity:
- Fragmentation occurs. Multiple slots needed to transmit one packet
- When PHY packet size < slot capacity:
- Single slot can accommodate multiple packets.
In NetSim, the overheads are UDP - 8, IP - 20, and this totals 28 B. We need to factor these overheads to obtain the Application throughput
Let us now consider the cases where the packet size is 200B and 1400B. We know that the capacity per node is 99.5/2 = 49.75 Kbps.
# 1: 200B
Total Packet Size = 200B + 28B = 228B
Number of Slots Required = ⌈228B / 250B⌉ = 1 slot
Predicted Application Throughput = (200/228) × (99.50/2) kbps = 43.64 kbps
#2: 1400B
Total Packet Size = 1400B + 28B = 1428B
Number of Slots Required = ⌈1428B / 250B⌉ = 6 slots
Predicted Application Throughput = (1400/1428) × (99.50/2) kbps = 48.77 kbps
App Layer Pkt size [B] | Inter Arrival Time [microseconds] | Traffic Gen Rate [kbps] | NetSim Throughput [kbps] | NetSim Latency [microsecond] |
200 | 80000 | 20 | 20.00 | 35316.15 |
200 | 32000 | 50 | 43.69 | 6356845.47 |
1400 | 560000 | 20 | 20.00 | 232353.60 |
1400 | 224000 | 50 | 48.83 | 1408371.60 |
These calculations assume that all slots are dedicated solely to data transmission, with no slots allocated to 'control' packets. This assumption holds true when static routing is enabled in NetSim. However, if an ad hoc protocol such as AODV or OLSR is used, the throughput will be lower than the maximum estimate, as some slots will be utilized for routing control packets.
There may be slight differences between the predicted and actual results because the last slot might not be fully utilized for data since the last fragment might be less than the slot capacity.
We can see from the above calculations that packet size needs to be carefully optimized depending on your application.
- Smaller (than slot size) packets have a lower throughput and lower transmission latency
- Larger (than slot size) packets have a higher throughput and a higher transmission latency
Throughput Estimation: Multiple transmitting nodes, one application per node, round robin scheduling, single hop transmission, static routing
The maximum capacity per node is the maximum link capacity divided by the number of nodes
CapacityPerNode = LinkCapacity / 3 = 33.17 kbps per node
This represents the maximum throughput that the network can offer each node. However, the actual throughput seen by each node will be similar to the throughput estimation calculations shown earlier.
Let us consider a case with 3 nodes, N1, N2 and N3, and one application at each node i.e., N1 > N2, N2 > N3 and N3 > N1.
As with the earlier case, let us consider cases where the packet size is:
# 1: 200B
Total Packet Size = 200B + 28B = 228B
Predicted Application Throughput = (200/228) × 33.17 kbps = 29.09 kbps per node
# 2: 1400B
Total Packet Size = 1400B + 28B = 1428B
Predicted Application Throughput = (1400/1428) × 33.17 kbps = 32.52 kbps per node
App Layer Pkt size [B] (App1, App2, App3) | Inter Arrival Time [microsecond] (App1, App2, App3) | Traffic Gen Rate [kbps] (App1, App2, App3) | NetSim Throughput [kbps] (App1, App2, App3) | NetSim Latency [microsecond] (App1, App2, App3) |
200, 200, 200 | 80000, 80000, 80000 | 20, 20, 20 | 20, 20, 20 | 63956.19, 60571.14, 57798.82 |
200, 200, 200 | 32000, 32000, 32000 | 50, 50, 50 | 29.07, 29.09, 29.07 | 20973192.98, 20949781.92, 20953090.67 |
1400, 1400, 1400 | 560000, 560000, 560000 | 20, 20, 20 | 19.93, 19.93, 19.93 | 346747.64, 345503.22, 345616.12 |
1400, 1400, 1400 | 2240000, 2240000, 2240000 | 50, 50, 50 | 32.48, 32.48, 32.48 | 17786999.74, 17746797.45, 17766897.42 |
Throughput Estimation: Multiple transmitting nodes, multiple applications per node, round robin scheduling, single hop transmission, static routing
Let us consider a case with two nodes, where we have two applications from N1. Due to RR scheduling slots alternate between N1 and N2. Within the N1 slots, allocation between App1 and App2 depends on inter-packet arrival times of each application as shown below.
Example: Case #1
App1 packet size = 200B,
App2 packet size = 200B.
App2 interpacket arrival time = 1/2* App1 Inter packet arrival time.
- Total Packet Size = 200B + 28B = 228B (including overheads)
- Number of Slots Required = ⌈228B / 250B⌉ = 1 slot per packet
- CapacityPerNode = 49.75 kbps (since there are 2 nodes)
- For Node 1 with two applications (App1 and App2), App2's inter-packet arrival time is half of App1's. Hence for every 3 transmission opportunities:
- 2 slots go to App2 (66.67% of Node 1's slots)
- 1 slot goes to App1 (33.33% of Node 1's slots)
- Therefore:
- Predicted App1 Throughput = (200/228) × 49.75 kbps × (1/3) = 14.54 kbps
- Predicted App2 Throughput = (200/248) × 49.75 kbps × (2/3) = 29.09 kbps
App Layer Pkt size [B] (App1, App2, App3) | Inter Arrival Time [microsecond] (App1, App2, App3) | Traffic Gen Rate [kbps] (App1, App2, App3) | NetSim Throughput [kbps] (App1, App2, App3) | NetSim Latency [microsecond] (App1, App2, App3) |
200, 200, 200 | 80000, 40000, 80000 | 20, 40, 20 | 14.57, 29.12, 20 | 13636843.91, 13656846.25, 41426.55 |
Example: Case #2
App1 packet size = 1400B,
App2 packet size = 200B.
App2 interpacket arrival time = 1/2*App1 Inter packet arrival time.
First, let's calculate slots needed for each application's packets:
For App1 (1400B packet):
- Total Packet Size = 1400B + 28B = 1428B
- Number of Slots Required = ⌈1448B / 250B⌉ = 6 slots per packet
For App2 (200B packet):
- Total Packet Size = 200B + 28B = 228B
- Number of Slots Required = ⌈228B / 250B⌉ = 1 slot per packet
- Due to inter-arrival time relationship, App2 generates two packets for every one packet generated by App1.
- Hence, number of Slots Required for App2 = 2
Now let's calculate throughput:
- Predicted App1 Throughput = (1400/1428) × 49.75 kbps × (6/8) = 36.58 kbps
- Predicted App2 Throughput = (200/228) × 49.75 kbps × (2/8) = 10.91 kbps
App Layer Pkt size [B] (App1, App2, App3) | Inter Arrival Time [microsecond] (App1, App2, App3) | Traffic Gen Rate [kbps] (App1, App2, App3) | NetSim Throughput [kbps] (App1, App2, App3) | NetSim Latency [microsecond] (App1, App2, App3) |
1400, 200, 200 | 32000, 16000, 32000 | 350, 100, 50 | 36.96, 10.56, 43.55 | 44756445.04, 44803381.41, 6470829.56 |
We again reiterate that:
- These calculations assume that all slots are dedicated solely to data transmission, with no slots allocated to 'control' packets. This assumption holds true when static routing is enabled in NetSim. However, if an ad hoc protocol such as AODV or OLSR is used, the throughput will be lower than the maximum estimate, as some slots will be utilized for routing control packets.
- There would be minor differences between the predicted and actual results due to the partial utilization of the last slot. This occurs when the last fragment of a packet is smaller than the slot capacity. Additionally, slots may not be exclusively dedicated to a single application. For instance, the last fragment of one application packet can be transmitted alongside the first fragment of the next application.
Conclusion
The throughput estimation of TDMA networks explained above involves:
- TDMA Parameters: Slot duration, guard interval, symbol rate, modulation schemes, coding rates
- Network Configuration: Single vs multiple nodes, Round-robin scheduling, Packet size
- Application Layer: Multiple applications competing for bandwidth, Different packet sizes requiring fragmentation, Varying inter-arrival times affecting slot utilization, Interaction between fragmented packets and scheduling
Real-world TDMA networks face additional challenges such as random packet arrivals, pathloss, multipath fading, multi-hop transmission, node mobility, node joining and leaving etc. Given these multiple layers of complexity, accurate throughput estimation through analytical methods is impossible. This is where network simulation tools like NetSim can accurately account for various phenomena, provide accurate performance metrics and help optimize the network deployment.
Useful links
1. NetSim Dynamic TDMA library: https://tetcos.com/military-radio.html