CS345/912 Sensor Networks and Mobile Data Communications Term 1, 2023-2024
_
Coursework Specification
I. Introduction
Two villages 10 kilometres apart communicate through a Delay Tolerant Network (DTN).
Village 1, which has the transceiver Node 0, sends packets to transceiver Node 1. Node 1 is
located in a bus that travels to the vicinity of Village 2, where it will transfer the packets to
transceiver Node 2. The position of all nodes is depicted in Fig. 1, where d = 3 m.
Fig. 1. Initial position of nodes
Node operation
Village 1 - Node 0
Several readings are generated by Node 0 at a rate of 1 reading per second. These readings
are stamped with the order in which they are generated and stored in a buffer. The elements
in the buffer are represented in the simulation by two variables: head and tail. The buffer
in Node 0 can only accommodate three readings; when the buffer is full, the oldest reading
in the buffer is thrown away. Assuming no data is transmitted to Node 1, the contents of
Node 0’s buffer change as tabulated in Table 1.
d
10000 m
Node 0 Node 2
Node 1
x
yCS345/912 Sensor Networks and Mobile Data Communications Term 1, 2023-2024
_________________________________________________________________________________________
__________________________________________________________________________
Victor Sanchez
Department of Computer Science, University of Warwick
2
Table 1. Contents of Node 0’s buffer assuming no data transmission.
No. of readings
generated
No. of readings
stored in buffer
Stamps
Simulation variables
Head Tail
0 0 0 0
1 1 [1] 1 1
2 2 [1,2] 2 1
3 3 [1,2,3] 3 1
4 3 [2,3,4] 4 2
5 3 [3,4,5] 5 3
… … … … …
As long as the buffer is not empty, Node 0 encapsulates the buffer’s contents into a packet
and transmits it to Node 1 at the rate of 4 packets per second. Upon receiving an
acknowledgement from Node 1, Node 0 clears the contents of its buffer.
The bus - Node 1
After receiving a data packet from Node 0, Node 1 stores the contents of the packet into its
buffer, and then acknowledges the reception of the packet. After acknowledging the packet,
Node 1 repeatedly transmits data packets to Node 2 at the rate of 4 packets per second. Node
1 also encapsulates its buffer into a packet. Node 1 only stops transmitting a data packet
upon receiving an acknowledgement from Node 2. Note, however, that Node 1’s buffer can
change before it can successfully send a packet to Node 2. This will happen for instance
when it receives a new packet from Node 0.
Village 2- Node 2
Upon receiving a data packet from Node 1, Node 2 sends an acknowledgement.
II. Methods
Use code CS345_BASE_2023.cc, which is available on the module webpage, to complete
this coursework. The bus as simulated in the code does not move. You can verify this by
running the code: it is only the bus and Village 1 that interact.
a. Introduce a mobility model such that Node 1 moves at a constant speed of 20m/s.
Make sure that the bus moves in a straight line up to the x-coordinate of Village 2
(Node 1 should stop once it reaches this destination). After implementing the
mobility of the bus, make sure that all nodes interact according to the behaviour
described before. [15 marks]
b. Determine the transmission range of Village 1 and Village 2 and the region where the
bus can receive/transmit to both villages (if any). When running your simulations,
make sure that the duration of the simulation is long enough for Node 1 to move to
the same x-coordinate as that of Node 2. [5 marks]
CS345/912 Sensor Networks and Mobile Data Communications Term 1, 2023-2024
c. Modify the code so that every time Node 2 receives a unique packet, it also prints the
number of readings received so far. [5 marks]
d. Plot the relationship between the speed of Node 1, distance d, and the number of
readings received by Node 2. To this end, test a speed from 20m/s to 200m/s
(increments of 10m/s) and a distance d from 3m to 303m (increments of 6 m). Note
that this relationship can be plotted in different ways, e.g., line plots or 3D plots.
How does the speed of Node 1 and distance d affect the number of readings received
by Node 2? Explain. [10 marks]
e. Modify the behaviour of Node 1 so that it keeps all received readings in its buffer.
For example:
Node 1’s current buffer: [1, 2, 3]
EVENT: data packet is received by Node 1 with readings [4, 5, 6]
Node 1’s new buffer: [1, 2, 3, 4, 5, 6]
[10 marks]
f. Repeat the experiment in II.d, but this time using the modified code from II.e. Plot
the relationship between the speed of Node 1, distance d, and the number of readings
received by Node 2. Explain any differences with the plot obtained in II.d.
[5 marks]
g. Add a mobile node (Node 3) to the DTN. This additional node must be initially
located to the left of Node 1 at a distance d2 = 250 m (see Fig. 3). Node 3 must have
the same y-coordinate and speed as those of Node 1. Node 3 must have the same
behaviour as that of Node 1 (after all previous modifications introduced); i.e., it
should be able to receive packets from Node 0 and transmit packets to Node 2.
Fig. 3. Initial position of nodes with additional node.
d
10000 m
Node 0 Node 2
Node 1
x
y
Node 3 d2 = 250 m CS345/912 Sensor Networks and Mobile Data Communications Term 1, 2023-2024
_
4
Note that by adding Node 3 to the DTN, the following aspects should be considered:
• Node 0 is originally hard-coded to transmit exclusively to Node 1. You should
modify Node 0’s behaviour so that it can transmit (broadcast) to both Node 1 and
Node 3. Hint: you may use the method SetAllowBroadcast.
• Node 2 should be able to receive data packets from Node 1 and Node 3. Node 2
must be able to properly count the number of readings received. It is possible for
the readings transmitted by Node 1 and Node 3 to overlap. For example, Node 1
may transmit readings 1-6, while Node 3 may transmit readings 4-7. The total
number of received readings, in this case, is 7; i.e., [1, 2, 3, 4, 5, 6,
7]. It is also possible for Node 1 and Node 3 to transmit different readings. For
example, Node 1 may transmit readings 1-6, while Node 3 may transmit readings
10-12. The total number of received readings in this case is 9; i.e., [1, 2, 3,
4, 5, 6, 10, 11, 12]. Node 2 must be able to deal with both cases
properly. [30 marks]
h. Plot the relationship between distance d2, as depicted in Fig. 3, distance d, and the
total number of readings received by Node 2. Set the speed of Node 1 and Node 3 to
20m/s. Test distance d from 3m to 303m (increments of 6 m). Test distance d2 from
50m to 1000m (increments of 50 m). When running your simulations, make sure that
the duration of the simulation is long enough for Node 3 to move to the same xcoordinate
as that of Node 2. Explain and discuss any differences in the plot
compared to the one obtained in II.f for a speed of 20m/s. [10 marks]
III. Deliverables
Submit the following via Tabula:
1. A report with a description of how the DTN was modified according to each subsection
of Section II, as well as the requested explanations, discussions, and plots. Make sure to
include snippets of code showing your modifications to the code. Cleary explain these
modifications.
2. Your final solution for II.g as a cc file. Please make sure that the submitted code
compiles and works correctly before submitting.
A total of 10 marks are available for the quality and presentation of reports, as well as the
organization and explanation of your code (comment your code appropriately to indicate the
changes made). Documents should be clearly and logically structured, well-written, and
adequately proof-read before submission. The suggested length is between 1600-1800
words. The standard department late penalties and plagiarism policies are in effect.