Category: Lab 2

Lab2 Grading [UPDATED 4/6/2016]

The Corporation for Human Understanding of Machine Problems (CHUMP) is interesting in buying PTCL implementations for further research and analysis. They will buy any PTCL implementation that at least performs the PTCL handshake according to the following schedule: +1000BP for a protocol that handshakes +2000 BP for a protocol that sends data and ACK’s it (re-transmission not required) +4000 BP for a protocol that retransmits data lost or corrupted (under minimal…

Bake-Off Results

The submissions were evaluated on three categories: throughput, traffic efficiency, and lines of code. The final rankings (at the bottom) are calculated from scores assigned to each sub-ranking. The “Throughput” category awards 30, 20, and 10 points for first, second, and third place. The “Traffic Efficiency” category awards 15, 10, and 5 points for first, second, and third place. Any ties are broken by the rankings in the source-code category….

Lab 2 Auto-Testing

I have been working on getting a lab#2 tester set-up, both for grading, and for the bake-off. It’s done. More importantly, it’s checked in. You can test it yourself. The code is found under test/blackbox/reliable_stream, and the file you want is test_throughput.py. It’s pretty-well automated, but you need to understand how it works and also a few of the “glitches”. The tester needs three Playground installations, even though they can all be the…

TUTORIAL: Stacking Protocols Part 2, Message Encapsulation

  See Stacking Protocols Part 1. MESSAGE ENCAPSULATION KEY CONCEPT: Each layer will only see data fields pertinent to its own layer Let’s walk through an example. Suppose we’ve set up an echo client and server over PTCL. The stacks will look like this: [ Echo Protocol (PTCL transport) ]       [ Echo Server (PTCL Transport)  ] [ PTCL Protocol (C2C transport)  ]       [ PTCL Protocol (C2C…

TUTORIAL: Stacking Protocols Part 1

Hopefully, by this point, everyone of you has either written a Playground protocol or is on a team that has written a Playground protocol. But for those that haven’t, here’s a super simple reminder: class MyProtocol(SimpleMessageHandlingProtocol): # in your init, you define which types of messages you will handle.  def __handleMyMessage(self, someMessage): # handle the received message here… # when you’re ready to send, self.transport.writeMessage(responseMessage) Ok, so data comes into…