-
Notifications
You must be signed in to change notification settings - Fork 6
Lab1Milestone2
Assigned | 10/14/2019 |
Due | 10/21/2019 |
Points | 75 |
OK, continuing on with our reliable layer which you guys have named "POOP" (Playground Overlay Operational Protocol).
You need to extend your protocol to transmit data during error-free conditions.
As you create your protocol, it must provide the following.
- FULL DUPLEX COMMUNICATIONS
- Confirmation that the data was received correctly and in-order (it will be, but you should confirm it)
- Error handling if an unexpected packet (e.g., handshake packet) is received during data transmission
I forgot to tell you that when packets are imported as part of a connecgtor, they are "siloed". That means that they are not available in the general packet management. This means that PacketType.Deserializer
cannot deserialize them.
As you are creating at least two different types of packets, here is how you create a deserializer that can deserialize all of them.
class PoopPacketType(PacketType):
DEFINITION_IDENTIFIER = "poop"
DEFINITION_VERSION = "1.0"
class PoopHandshakePacket(PoopPacketType):
# your definition here
class PoopDataPacket(PoopPacketType):
# your definition here
To deserialize either a handshake or data packet
deserializer = PoopPacketType.Deserializer()
Each team will be taking their own approach to this. At any time you can start to propose to other teams how you think the class should do the assignment. But you will be more persuasive if you have a working prototype. As you get your lab working, you need to discuss over slack how you think the PRFC should be written and what should be the standard. Unlike the Escape Room exercise, this will involve protocol design and not just packets.
The PETF can vote, at any time, on any proposal. BUT the handshake must be standardized and the whole class conforming to it by the due date (10/21/2019).
On the due date, I will post an auto-grader on the SAFE NETWORK that conforms to the proposed PRFC. I will provide you with the auto-grade client and you will not need to write it yourself. But it will require that the connector for your network layer is installed in your own personal playground with the name assigned by the PETF.
The address and port of the autograder will be:
20194.0.0.19000 and port 19101
The auto-grader will test handshakes in both directions. You will be graded as follows
- 25 points for "small" transmissions in 1 direction
- 25 points for "large" transmissions in 1 direction
- 25 points for full duplex