This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
midd:traffic_scheduling:project_log [2009/04/24 16:20] afbarnard Added project log entries for past 2 weeks from my own notes |
midd:traffic_scheduling:project_log [2009/05/10 16:44] perryk |
||
---|---|---|---|
Line 201: | Line 201: | ||
AB - Prepare presentation for meeting with Suman. | AB - Prepare presentation for meeting with Suman. | ||
+ | |||
+ | PK - Actually early 04/25. Started from scratch last night. Finished a new server - even added graphing GUI. Architected class hierarchy and implemented round robin scheduler (since it does not require any actual capture or analysis) as a means of exercising the class hierarchy. I like it so far. Very pleased. This screen grab shows the server receiving from a SuperTcpClient with 2 (simulated) adapters with the round robin scheduler. The graph is the last 60 seconds. The dip is the current second. | ||
+ | |||
+ | {{:midd:traffic_scheduling:server_snap.jpg|}} | ||
+ | |||
+ | ==== 04/25 ==== | ||
+ | |||
+ | PK - Decided to take a chance to write super-TCP. Came up with plan. Spent 24 hours straight on it. Concluded it is too big for this late in the semester. But will continue thinking about it as developing a framework for this future work would make a nice addition to the project's report. | ||
+ | |||
+ | ==== 04/27 ==== | ||
+ | |||
+ | PK - AB - several hour meeting came up with concrete plan for finishing this project. | ||
+ | |||
+ | PK - started over again. | ||
+ | |||
+ | ==== 04/28 ==== | ||
+ | |||
+ | PK - experimented with blocking and non-blocking socket member. With non-blocking I crashed my computer every time when I hammered the adapter but did not do this with blocking set. Flag must do something :). Later this day: First fully functioning version of new client / server. | ||
+ | |||
+ | PK - AB - meet for an hour for code review, status. | ||
+ | |||
+ | PK - a few more hours in. I added three more transmission "models" to the client: load,burst and random. I have replaced the processor based clock and am now using DateTime.Now.Ticks to make the code portable to Linux. This means same-machine/same-subnet RTTs are 0. I added the adapter cumulative loss/ooo counts. I added timestamps in acks. Have conclusive evidence that the blocking socket flag does nothing in UDP. Forced to put in Thread.SpinWait every N bulk transmissions so that we don't spill so many segments on the floor, even before they've hit the wire. | ||
+ | |||
+ | ==== 04/29 ==== | ||
+ | |||
+ | PK - Added OpenGL "GUI" to client. | ||
+ | |||
+ | ==== 04/30 ==== | ||
+ | |||
+ | PK - Added Jacobson/Karels Algorithm RTT estimation to adapter code. It furnishes an established idea of current RTT for use by schedulers. Jacobson/Karels Algorithm specification doesn't discuss adding to estimated timeout any effect of actual timeouts. So, I added a penalty to the estimated timeout if an actual timeout occurs (added 0.1 seconds to estimated timeout). Temporarily, I connected the suggested timeout value to the actual timeout value and it worked VERY well. | ||
+ | |||
+ | |||
+ | PK - Later. Improved GUI graphing. Realized there was no way to zero bins for seconds in which no segments were sent. New code has additional benefit of scrolling in new data. | ||
+ | |||
+ | ==== 05/04 ==== | ||
+ | |||
+ | PK - Removed GUI graphing to make it easier to port to Mono. With a little more tinkering with the Tao framework (which IS Mono compatible), the GUI code could be added back in. | ||
+ | |||
+ | ==== 05/06 ==== | ||
+ | |||
+ | PK - Implemented Spaghetti scheduler. Happy birthday to me. | ||
+ | |||
+ | ==== 05/07 ==== | ||
+ | |||
+ | PK - Implemented random scheduler. | ||
+ | |||
+ | ==== 05/09 ==== | ||
+ | |||
+ | PK - Implemented experiment duration timer for Aubrey. | ||
+ | |||
+ | ==== 05/10 ==== | ||
+ | |||
+ | PK - Made code tweaks for Aubrey. Began formal presentation development. | ||