User Tools

Site Tools


midd:traffic_scheduling:project_log

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
midd:traffic_scheduling:project_log [2009/04/12 17:27]
perryk
midd:traffic_scheduling:project_log [2009/04/30 13:55]
perryk
Line 106: Line 106:
  
 AB - Got Mono up and running for C# development on Linux. Connected to Perry'​s databases. Traffic analysis is next. AB - Got Mono up and running for C# development on Linux. Connected to Perry'​s databases. Traffic analysis is next.
 +
 +
 +==== 04/06 ====
 +
 +AB, PK - Lunch meeting.
 +
 +AB - Filtered Perry'​s C# code to remove the "​unversionable"​ bits and committed it to our Subversion repository.
  
 ==== 04/08 ==== ==== 04/08 ====
  
 PK - researched and found a means of performing more high resolution timing in .net. PK - researched and found a means of performing more high resolution timing in .net.
 +
 +AB - Designed client analysis.
  
 ==== 04/09 ==== ==== 04/09 ====
Line 117: Line 126:
 ==== 04/10 ==== ==== 04/10 ====
  
-I was in the process of doing this (see above) when I could not reinstall the Spring ​drivers. Looking for a new set of drivers, I found a completely revamped set from Spring. Installing, and guess what - the NDIS adapter can not be directly seen by winpcap. Successfully sending and receiving via our software over the Sprint card to our server.+I was in the process of doing this (see above) when I could not reinstall the Sprint ​drivers. Looking for a new set of drivers, I found a completely revamped set from Sprint. Installing, and guess what - the NDIS adapter can not be directly seen by winpcap. Successfully sending and receiving via our software over the Sprint card to our server.
  
 ==== 04/12 ==== ==== 04/12 ====
Line 132: Line 141:
  
 At this point I think the software is done to the point where meaningful capture is all there. Crud. I still have to send capture data from the server to the client when asked. I'll do this next. At this point I think the software is done to the point where meaningful capture is all there. Crud. I still have to send capture data from the server to the client when asked. I'll do this next.
 +
 +==== 04/12 ====
 +
 +Still coding (later that day). Added "​runid"​ to the UDP and both TCP plug-ins. The TCP case involved added a preamble (first bytes sent over the socket) so that both sides can have the same runid. I've had enough for today.
 +
 +==== 04/13 ====
 +
 +AB - Continued work on basic analysis. Unfortunately not yet ready to commit. Complications,​ bleary eyes, hazy mind, the usual suspects for excuses.
 +
 +PK - Rewrite of the client UI bringing all plugins and all adapters under a single executable. Very pleased. Captured data on 3 adapters X 5 plugins simultaneously (15 data streams).
 +
 +==== 04/14 ====
 +
 +AB - Set up Mono and MySQL access from Mono.
 +
 +==== 04/15 ====
 +
 +PK - Writing HTTP plugin. Tweaks of capture code to lock resources less often and in shorted intervals.
 +
 +AB - SQL data analysis
 +
 +==== 04/16 ====
 +
 +AB, PK - Meeting to discuss progress and issues. We are slightly behind schedule. AB's fault.
 +
 +==== 04/17 ====
 +
 +PK - HTTP plugin giving me more trouble than it's worth. Recoded to hit a single web site per major interval so as to allow finer grained capture filters.
 +
 +==== 04/19 ====
 +
 +PK - A lot of data capture tests - installed and run on laptop.
 +
 +AB - Tried to dump project DBs. Decided default number of plugin subsamples. Ping analysis.
 +
 +==== 04/20 ====
 +
 +AB, PK - Meeting. Status and issues. ICMP packet lengths confusing (not adding up).
 +
 +AB - DNS analysis.
 +
 +==== 04/21 ====
 +
 +PK - Finally have HTTP plugin where it should be. Added additional capture fields as per Aubrey. ​
 +
 +==== 04/22 ====
 +
 +PK - propagated code to correctly extract payloads without control characters.
 +
 +AB - Finished client download of server data.
 +
 +==== 04/23 ====
 +
 +AB, PK - Meeting.
 +
 +==== 04/24 ====
 +
 +AB, PK - Meeting with Suman, who advises altering project direction. Thereafter, meeting with ourselves to discuss and start on new project direction. We will focus exclusively on scheduling data to multiple TCP streams from now on. Discussed necessary architecture,​ priorities, collaboration points.
 +
 +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.
 +
 +==== 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.
 + 
  
midd/traffic_scheduling/project_log.txt ยท Last modified: 2009/05/15 14:55 by afbarnard