]> sjero.net Git - ltp2tcp/blob - README
Updated commandline args: Added -V for version, -h for help, changed -d to -v for...
[ltp2tcp] / README
1 This program is the first step in an LTP connection graphing program. Right now
2 it takes an LTP packet capture (LTP in UDP or DCCP in IP in Ethernet) and
3 converts it to a TCP packet capture. When this TCP capture is examined using
4 Tcptrace (http://www.tcptrace.org), you see a graphical description of the LTP
5 connection.
6
7 In order to build this program, please simply type make at the commandline. I have not
8 included a ./configure script at this time. Contact me, if major problems arise.
9
10 Usage is as follows:
11 ltp2tcp -t{encapsulation} [-v] [-V] [-h] [-b{block_size}] [-s{start session}-{end session}] ltp_file tcp_file
12         -v  verbose (repeat for additional verbosity)
13         -V      Version information
14         -h  Help
15     -t  The protocol LTP is encapsulated in.  Right now, only udp, dccp, and sll are supported.
16     -b  The LTP block size (NOT the bundle size) that is being used over this connection.
17                 This information can't be determined from a packet capture, so if not specified
18                 it defaults to is 500,000. If you set this value larger than your actual block size, the graph
19                 will contain empty spaces between each session, which is handy to separate sessions. However, in
20                 that case, tcptrace will report inaccurate, lost data statistics.
21         -s  Requests a graph of only the specified range of sessions. Note that the session numbers are just the "session number"
22                 from wireshark, not the whole session id.
23
24 To generate the graphs run:
25         ltp2tcp -tudp ltp_file.dmp tcp_file.dmp
26         tcptrace -lGt tcp_file.dmp
27         xplot a2b_tsg.xpl
28
29 Plot Interpretation:
30    1. The only Tcptrace graphs that are valid are the Throughput Graph(tput) and Time Sequence Graph (tsg). 
31         The TSG is the main graph you want to look at.
32    2. White segments with arrows at both ends are LTP data segments (for those familiar with tcptrace,
33         these are represented by TCP data carrying packets).
34    3. Purple vertical lines are LTP report segments. The lines show the parts of the session that the receiver
35         is acknowledging (represented by TCP SACKS).
36    4. White crosses are LTP report acknowledgment segments (represented by TCP zero length data segments).
37    5. Retransmitted data is marked in red, just as in TCP.
38    6. LTP cancel and cancel ack segments have a RST_IN or RST_OUT over them (they become TCP Reset packets).
39    7. The green line is the point below which all data has been acknowledged, just as in TCP.
40    8. The yellow line has no meaning for LTP.
41    9. Note that there may be sequence number space between two adjacent sessions. This doesn't necessarily indicate loss.
42         Since the block size is not contained in the packet capture, we have to guess what it should be. If that guess is wrong,
43         there will be additional "space" in each session that isn't filled. Use the -b option to specify the correct block size
44         to eliminate this space.
45   10. A SYN/SYNACK/ACK and FIN/FINACK/ACK are added to the begining and end of the connection. These are purely to make the TCP
46         connections pretty and do not correspond to any packets in the LTP capture.
47
48 Statistics:
49 Most of the Tcptrace statistics are valid. However, those relating to the receiver's window are meaningless because the window represents nothing in the LTP capture. Unless the block size was specified, the "missed data" statistic is also wrong. The rest of the statistics, including those about the number of packets, number of retransmissions, idle time, and throughput are valid.
50
51
52 Limitations:
53         1)Only handles one LTP "connection". There isn't a good way to separate
54                 different LTP "connections" from new sessions of the same "connection".
55                 Use Tcpdump filters to separate connections. Libpcap filtering could also
56                 be added in ltp2tcp.
57         2)Uses some special types from Linux (u_char, u_int32_t)
58
59
60 ltp2tcp is free software: you can redistribute it and/or modify
61 it under the terms of the GNU General Public License as published by
62 the Free Software Foundation, either version 3 of the License, or
63 (at your option) any later version.
64
65 ltp2tcp is distributed in the hope that it will be useful,
66 but WITHOUT ANY WARRANTY; without even the implied warranty of
67 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
68 GNU General Public License for more details.
69
70 You should have received a copy of the GNU General Public License
71 along with ltp2tcp.  If not, see <http://www.gnu.org/licenses/>.
72
73 Samuel Jero
74 Internetworking Research Group
75 Ohio University
76 sj323707@ohio.edu
77 6/28/2013