Dacopan project MEETING MINUTES
Jan 28th, 2004
Meeting
Jan 28th, 2004, at 14:00
Department of Computer Science, room C454
Attendance
Markku Kojo, client
Alejandro Fernandez Rey
Carlos Arrastia Aparicio
Jari Aarniala, secretary
Jarkko Laine
Turjo Tuohiniemi, instructor
Vesa Vainio, chairman
Andrei Salo
Andrei Ananin
Dmitry Korzun, instructor
Kirill Kulakov
Mikhail Kryshen
Absent
Jonathan Brown
1. Start
Mr. Vainio started the meeting at 14:15.
2. Assessment of the situation
While waiting for the client to arrive, questions prepared for the
client in the last meeting were reviewed and prioritized. Mr. Korzun
reminded the group that the main goal for this project is experimenting
with the distributed software development process, so the requirements
for the software itself should be kept simple.
3. Discussion
3.A - Organizational issues
Each member of the project group will be able to register an account to
the TWiki system soon. Mr. Arrastia will hold a presentation of the
TWiki system during the meeting on Thursday. The Thursday meeting was
re-scheduled to start at 09:00.
3.B - Communications with the client
At 14:34 the client, Mr. Kojo arrives. It is agreed that during the
first phase of the project (while the team from Petrozavodsk is still
here) three face-to-face meetings with the client will be held:
- Friday Jan 30th at 12:15 (location will be decided later)
- Tuesday Feb 3rd at 16:15 in room C475
- Friday Feb 6th at 12:15 (location will be decided later)
During the next phase each face-to-face meetings with the client can
be directly arranged with him via email. A presentation of an existing
data communications visualization program (Sea Lion) can be held during
the meeting on Jan 30th or Feb 3rd.
3.C - Presentation from the client
The client held a presentation on what kind of a program he's hoping
the DaCoPAn group can produce. These are the main points of the
presentation:
- The program should be able to visualize communication (messages)
between two endpoints in a network
- Real data (real packet traces) should be used as the starting
point for the visualization. tcpdump, a standard tool freely
available e.g. for Linux can be used for collecting the data.
- The tcpdump logfiles collected from the two endpoints can then
be used to reconstruct and visualize the message exchange (including
dropped packets etc.) between the two hosts.
- When logging the data, the built-in filters of tcpdump can be used
to leave unwanted data out of the log files
- The tcpdump log files should be analyzed by an analyzer that outputs
a file in an intermediary format, that can be in turn be visualized
by the visualizer component
- The program should be capable of showing all of the details of
the message exchange as obtained from the tcpdump log files, but
perhaps not by default, i.e. the level of detail can be specified
by the user
- The data to be shown includes protocol name, port, sequence numbers,
ip addresses of the hosts etc.
- More details could be shown when placing the mouse over a certain
packet in the visualizator
- The user should be able to pause, stop and play the animation, as well
as rewind and forward it (for example: "Go back to message #2" or
"Forward to message #100").
- The animation speed should be tunable
- As an optional requirement, it would be good if the user could
schedule the animation to stop at certain times and then continue
playing automatically, much like timing a PowerPoint presentation.
This should be taken into account in the design phase.
- The program should be able to visualize messages on different
protocol levels, for example:
application level (HTTP) - transport level (TCP) - network level (IP)
- The user could select a more high-level or low-level view on the fly
- An example of a lower level protocol that should be supported is
ARP (Address Resolution Protocol)
Mr. Kojo reminded us that we should first be clear on the more
high-level issues before delving into too much detail of the technical
issues, which can be postponed.
3.D - Questions from the project group
* Is the main goal of the program to be educational or should it be
aimed at research purposes?
- First educational, research purposes come second. Educational
purposes serve research as well.
* What are goals for each of these purposes?
- Educational:
- Clear animations, even if things are trivial to the more
advanced users, they should be clear to students
- Research:
- For example, performance analysis of TCP networking.
More on this subject during the Friday / Tuesday meetings, when
the Sea Lion software that's capable of visualizing communications
using time-sequence graphs will be demonstrated. Time-sequence
graphs would be a useful feature for more advanced studies.
* Is the program mainly intended for lecture/classroom use or is it
desirable that the students can use it on their home computers as
well?
- Both, ideally the program would be able to replace "hand-written"
PowerPoint presentations of network communications by creating
automatic presentations
- The lecturer could use the analyzer tools to create pre-defined
data files for the students to view at home
- The whole program (both analyzer and visualizer components) could
be made available to the public, but gathering tcpdump logs is not
something that a regular user can easily do, so the analyzer may not
be of much use to the general public
- In order to create packet loss and other specific circumstances,
special programs can be used to make the pre-defined tcpdump log
files more interesting for teaching purposes
- The program could have a web interface (for example, a Java applet)
so that it's easily accesible to students from different locations
* Should the program be suitable for teaching the students of data
communications courses?
- Yes, both Data Communications I and II
- Preferably the program should be open for further extensions and
development for features to be used during more advanced studies
* Should we assume that the students don't have any experience on
data communications when they use the program?
- It can be assumed that basic ideas of data communication have
already been discussed with the students before they start using
the program, which can then be used to deepen their knowledge
* What should the students learn in DC I and II, using this program?
- For example TCP: what messages are sent? in what order? how does TCP
recover from erroneous situations? how does the TCP slowstart
algorithm work?
- The program should be able to show parameters and events such as
congestion window size, timeouts as they occur, retransmissions etc
even though this information is not included in tcpdump files
- This will require e.g. a customized Linux kernel, and that's out of
this project group's scope. However, the intermediate file format
should be designed so that this information can be inserted there
manually. Later on, this could be done automatically, should some
other group choose to extend the functionality of the program.
* How many types of animation should the program be able to show?
- Message exchange is the only chart type to be implemented at the
moment, but other options can be thought of
* If there are many concurrent connections, how to select which
connection is visualized?
- Whoever is collecting the data using tcpdump should arrange so
that there is only one active connection when starting the logging,
this is the simplest option.
- Later on the user could possibly be able to select which connection
should be shown in the visualizator, or multiple connections could
be shown at the same time - this should be taken into account during
the design phase
* What if the clocks of the two computers are not synchronized?
- This is a problem, but a solvable one. TCP sequence numbers can be
used in which case the time on both endpoints isn't relevant.
The clocks of both computers can also be synchronized first,
although they may start diverting right away. The time difference
between the two hosts can be figured out and then added/substracted
to the timestamps
* Default level of information should be configurable by the user
- The user should be able to change the level on the fly
* Protocols that need to be supported
- Two or three application level protocols should be sufficient.
- For example:
Application level: FTP, HTTP, SMTP
Transport level: TCP, UDP
Network level: IPv4, IPv6
* Consider the possibility of adding more endpoints later on
- What would this mean for the intermediary fileformat, for example?
- No need to implement, just take into account
* Application level animation: what to show?
- For example for HTTP, the relevant header information should be
shown, the data sent by user is not relevant
- Also, they size of the payload (in bytes) should be shown
Mr. Kojo pointed out that the user interface requirements can be
thought out by the DaCoPAn group later on. Also, as a reminder, he
mentioned that the final product should be a educational tool with
room for future extension for use in more complex research problems etc.
Mr. Korzun asked about the deployment platform of the product. The
platform is still uncertain at this point, but preferably the users
should be able to run the visualizer on the computers of both
computer science departments involved in the project, for example
using a web browser. Mr. Kojo suggested that that the C language
might be suitable for the analyzer component whereas Java could be
used to develop the visualizer.
4. Introduction of members
At the end of the meeting, each member of the groups from Helsinki
and Petrozavodsk introduced themselves to the client.
5. Action points
- Mr. Arrastia will prepare a presentation on the TWiki system for
the meeting on Thursday Jan 29th
- Each member of the group will register an account on the TWiki
system to be able to edit the content
- After each member has created an account for themselves, the
registration feature will be disabled for security reasons
6. End
Mr. Vainio ended the meeting at 14:08.
Go back to DaCoPAnDocumentation
