In this assignment we will investigate the effect of wireless losses on TCP. For this purpose we will simulate a very simple network with 3 links. Let the links be AB, CB and DB. Of these DB is a wireless link and the other two edges represent wired connections. For simplicity, let us abstract away rates and
propagation delays and assume that each link can carry one packet per time step. ------------------------------
Write a simulator for this network in Java or C/C++. For the wired links implement a simplified TCP. We will ignore the flow control aspect and only implement the congestion control algorithm with Slow Start (Sec 9.1.2). Assume that the congestion threshold starts at default value 100. Assume that a session with 10000 packets starts at t = 0 at node A and one more starts at t=100 at node C. The destination for both sessions is node D. All these packets get queued up at node B and then get transmitted on the wireless link.
Wireless TCP: The wireless link does TCP without congestion control, so a fixed congestion window of W=10 is used. This window remains unchanged.
Loss model: Assume that there are no packet losses in the wired links. You will simulate two loss models. The first model simply drops each packet with probability 0.1. The second model is a Markov Chain with two states H,L (This simulates fading)that represent the wireless channel. In state H packets are lost with probabilitY 0.2 and in L the corresponding probability is 0.05. Try to find the transition probabilities that will yield an average packet loss of 10%. If you have trouble, ask in class.
In this part we will do normal TCP over all links. So node B is a normal router
that only forwards packets. D ACK's packets to the source (A or C). On the wireless
link packets are lost using the loss models described above.
For each model, report
(a) the total time needed for all packets to reach the destination
(b) the maximum number of packets queued at any time in node B.
In this case we simulate an instance of the "Indirect TCP" algorithm in Ch 9. So the wireless and wired links are separated. ACKs are used for all links. Unlike traditional TCP where D would generate ACK's to A and C, here B ACK's A and C and D ACK's B. Simulate the same traffic as before and report the same quantities.
Submit your code and results. Write a few lines interpreting the results.
1. Remember to implement Slow Start
2. If you need to, brush up the basic additive-increase-multiplicative-decrease strategy
used in TCP.
3. You can implement fast retransmit, but you do not have to.
4. You need to implement a TCP timer. You can assume for simplicity that the timer is always initialized at 10, and there is no adaptation of this value, unlike real TCP.
This project concerns two papers on MAC protocols you have read before - the paper describing SMAC (Medium Access Control with Coordinated Adaptive Sleeping for Wireless Sensor Networks, IEEE/ACM Transactions on Networking, June 2004) and the paper describing RMAC (available from the class webpage).
The questions your project will address are:
(a) what are the contributions of the SMAC paper?
(b) keeping in mind the specific requirements of sensor networks, what is the quality of the solution(s) proposed in the paper?
(c) under what circumstances is the RMAC algorithm more useful?
(d) are there any drawbacks that you see with either algorithm, and do you have any ideas for addressing the shortcomings?
(e) Is the experimental evidence in each paper convincing to you? (Give reasons and/or suggestions).
(f) Are the analyses in the papers convincing to you? (Give reasons and/or $suggestions).
You should submit a report no longer than 3 pages using no smaller than 10 point and no larger than 12 point fonts. If you wish to include references they do not count towards this page limit.
The report should not regurgitate text from the papers, and it should be a critical review. The writing should be coherant and in the style of normal scientific text. Feel free to include mathematical formulas if you desire.
Recently Asked Questions
- How can a facing operation and parting/cutoff operation be used in conjunction? Explain the differences between a turning and boring operations. What
- Please refer to the attachment to answer this question. This question was created from 450T1F11.
- 1. Modify the code to be able to input an undetermined number of students. You will still only have 3 exams for each student. Support your experimentation