首页 > > 详细

CSc361 Fall 2020 Programming Assignment 2

CSc361 Fall 2020 Programming Assignment 2 (P2) : Reliable Datagram Protocol (RDP) Specification
Spec Out : by Wednesday, October 7, 2020
Code Due : by Friday, October 30, 2020, 5pm through connex.csc.uvic.ca
Objective : In this programming assignment, you will use the DATAGRAM socket (i.e., supported by UDP) in
Python to create a Reliable Datagram Protocol (RDP) transceiver (rdp.py, a combined sender and receiver)
running on H1 in PicoNet, to interact with a given echo server running on H2, over an unreliable link at R.
Schedule : There are four tutorials (T5, T6, T7 and T8) and three lab sessions (L5, L6 and L7) associated with
this assignment.
In T5 on October 9, the tutorial instructor will go through the P2 specification and answer possible questions,
so please read P2 spec carefully beforehand.
In L5 on October 13 or 14, the lab instructor will go through TCP connection management and flow control
packet capture and analysis, and help students form their design for P2.
In T6 on October 16, the tutorial instructor will check students P2 design on RDP connection management and
flow control, and provide feedback and instruction on how to test P2 in PicoNet with network impairments.
In L6 on October 20 or 21, the lab instructor will go through TCP error control, check students P2
implementation on connection management and flow control, capture and analyze RDP packets, and provide
help if needed.
In T7 on October 23, the tutorial instructor will check students P2 design on RDP error control, and provide
feedback and instruction on submission.
In L7 on October 27 or 28, the lab instructor will go through TCP congestion control, and check students P2
implementation on RDP error control, capture and analyze RDP packets, and provide help if needed.
In T8 on October 30, the tutorial instructor will provide some last-minute reminders and help.
Please follow our tutorial and lab schedule very closely for this assignment, which ensures its success and
smoothness.
Requirements : A basic RDP design is provided, and you can extend the design as you see fit. RDP follows
HTTP design, using full text, line-by-line control headers to establish (SYN) and release (FIN) connection, and
Sequence number in data (DAT) packet of PAYLOAD Length and Acknowledgment number in
acknowledgment (ACK) packet to reorder out-of-order packets, acknowledge received packets and identify lost
packets for retransmission. To be efficient, RDP cannot use stop-and-wait (i.e., transmit a packet, wait for
acknowledgment, and retransmit until it is received), and has to support flow control using Window size (i.e.,
multiple packets can be transmitted back-to-back within the Window, and lost packets will be recovered
through retransmission by timeout or three duplicate acknowledgments). You can model your RDP design after
TCP, but you do not need to implement the entire TCP. Congestion control is not needed for RDP in P2.
RDP packet format
联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!