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/25 00:54] perryk |
midd:traffic_scheduling:project_log [2009/05/13 17:59] afbarnard added project log entries since 04/25 from own notes |
||
---|---|---|---|
Line 205: | Line 205: | ||
{{:midd:traffic_scheduling:server_snap.jpg|}} | {{: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. | ||
+ | |||
+ | AB - Get SharpPcap working on Linux with Mono. Correspond with Perry about project focus, design, cross-platform compatibility. | ||
+ | |||
+ | ==== 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. | ||
+ | |||
+ | AB - Clean up and commit new code. | ||
+ | |||
+ | ==== 04/29 ==== | ||
+ | |||
+ | PK - Added OpenGL "GUI" to client. | ||
+ | |||
+ | AB - Look into C# timer resolution issue. Create demo timer application. | ||
+ | |||
+ | ==== 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/05 ==== | ||
+ | |||
+ | AB, PK - Meet | ||
+ | |||
+ | AB - Write link oracle. Try to run with Tao/OpenGL. Advise removing Tao. Tidy repository. | ||
+ | |||
+ | ==== 05/06 ==== | ||
+ | |||
+ | PK - Implemented Spaghetti scheduler. Happy birthday to me. | ||
+ | |||
+ | AB - Write link oracle. | ||
+ | |||
+ | ==== 05/07 ==== | ||
+ | |||
+ | PK - Implemented random scheduler. | ||
+ | |||
+ | ==== 05/08 ==== | ||
+ | |||
+ | AB - Logging of network characteristics, scheduling decisions, network activity, etc. for use in experiments. | ||
+ | |||
+ | ==== 05/09 ==== | ||
+ | |||
+ | PK - Implemented experiment duration timer for Aubrey. | ||
+ | |||
+ | AB - Logging. | ||
+ | |||
+ | ==== 05/10 ==== | ||
+ | |||
+ | PK - Made code tweaks for Aubrey. Began formal presentation development. | ||
+ | |||
+ | AB - Logging. Fix adapter class. Fix time stamps. Fix link oracle. Proportional scheduler. | ||
+ | |||
+ | ==== 05/11 ==== | ||
+ | |||
+ | AB - Revise command line arguments to add options necessary for experiments. | ||
+ | |||
+ | PK, AB - met for 6 hours. Made a lot of progress. Reviewed formal presentation. Conceived more fully realized BK Scheduler - an idea that we have bandied back and forth for a long time. | ||
+ | |||
+ | ==== 05/12 ==== | ||
+ | |||
+ | PK - starting at 3:30 AM to 9:30 AM - really formalized BK. | ||
+ | |||
+ | AB, PK - Met for 8 hours to implement BK scheduler, run experiments, fix bugs, rerun experiments, finish presentation. | ||