Commit Graph

19 Commits

Author SHA1 Message Date
Sake Blok a550fb9d78 Make the index from the conversation-struct available as field
"tcp.stream", this will make it possible to sort packets by
tcp stream, filter tcp streams exactly, etc.

It is also the preparation for a fix for bug 1447


svn path=/trunk/; revision=26305
2008-09-30 12:24:27 +00:00
Ronnie Sahlberg ed83f835e6 add a preference and code for tracking how many un-acked bytes are in
flight on a tcp connection.

this is quite useful toghether with io-grapgs to track how much of the 
tcp window that an application actually uses



svn path=/trunk/; revision=26067
2008-08-25 02:15:36 +00:00
Anders Broman 9aa1b43f9c From Eric Travis:
Enhancement providing parsing capability for TCP Options 20 & 21 (IANA assigned).

svn path=/trunk/; revision=25991
2008-08-12 21:08:46 +00:00
Stephen Fisher d00059d2bc From metatech:
New dissector for RTMP(T) protocol

via bug #2078


svn path=/trunk/; revision=23902
2007-12-17 20:43:38 +00:00
Sake Blok 7edd24e5af This patch adds two new fields to the tcp-dissector:
tcp.time_relative ==> the time that has elapsed since the 
   first packet that was seen in the current TCP stream

tcp.time_delta ==> the time that has elapsed since the 
   last packet that was seen in the current TCP stream

Calculating these timestamps is turned off by default to not 
use the extra memory that is needed for the per-packet-data.
It can be turned on through the TCP protocol preferences


svn path=/trunk/; revision=22966
2007-09-25 20:37:13 +00:00
Tomas Kukosa 155b04eda3 export some desegmentation functions from TCP dissector to reuse them in SSL/TLS desegmentation
svn path=/trunk/; revision=21346
2007-04-06 07:01:01 +00:00
Jaap Keuter 45aa24f1ec Correct comments and examples on get_pdu_len().
svn path=/trunk/; revision=19949
2006-11-21 14:18:46 +00:00
Ronnie Sahlberg 5a0ba5b0c7 fix for bug 1200
there used to be a bug in tcp reassembly that even if the dissector only asked for x more bytes from the next segment   the entire segment would still be added to reassembly.
this caused some issues when there was a new multisegment pdu that started at the end of the segment   but this bug was fixed when tcp reassembly was refactored semi-recently.


there was also another "bug" in the http reassembly that it would only ask for one more byte at a time when doing reassembly.
this did work well however when we still had the bug in tcp reassembly   but made wireshark become very very very slow once this tcp bug was fixed  since it is very very very slow to reassemble a huge http pdu just one byte at a time.


this patch adds partial support (what we need for http   which does not use tcp_dissect_pdus() ) for the desegmentation flag : DESEGMENT_ONE_MORE_SEGMENT and also to the http dissector   so that reassembly of http headers spanning multiple semgents now become fast again



svn path=/trunk/; revision=19859
2006-11-07 13:19:31 +00:00
Ronnie Sahlberg 2d1bb39121 change the signature for the get_pdu_len() function pointer passed to tcp_dissect_pdus() to also include a packet_info pointer.
there are many reasons why some protocols actually need to be able to access the pinfo structure while determining the pdu size



svn path=/trunk/; revision=19751
2006-10-31 09:29:07 +00:00
Ronnie Sahlberg 6d3c94a53a implement support to reassemble tcp sessions until the end of the session (FIN)
add required code to the http (and others) code in req_resp_hdrs.c to signal to tcp
when it wants a session to be reassembled to the FIN.

This is currently done for all HTTP packets where we have a Content-type in the header but no content-length.




svn path=/trunk/; revision=19185
2006-09-10 14:03:08 +00:00
Ronnie Sahlberg 8ce8e719e0 rename some structures and defines from the se_tree to the emem_tree prefix
svn path=/trunk/; revision=18894
2006-08-14 08:29:29 +00:00
Ronnie Sahlberg feab79e328 change a whole bunch of ethereal into wireshark
svn path=/trunk/; revision=18196
2006-05-21 04:49:01 +00:00
Ronnie Sahlberg 703869d3d6 tcp analysis updates to prepare for later tcp reassembly updates
now that we have se_tree_lookup32_le   we can do the tracking of pdu boundaries much more efficiently.

track pdu boundaries by a new  tcp_multisegment_pdu  structure that is indexed by sequence numbers and let this structure replace the older tcp_next_pdu structure.

with se_tree_lookup32_le  we no longer need to track segment by segment and can get rid of the two hash tables
tcp_pdu_tracking_table
tcp_pdu_skipping_table
Neither do we need the tree   tcp_pdu_time_table anymore so that one is gone as well.

remove various other functions that are no longer needed due to removing the structure and the tables/tree


this part of the code shoul;d be much more readable now   and also a bit faster



svn path=/trunk/; revision=18024
2006-04-28 09:44:02 +00:00
Ronnie Sahlberg f331077a60 waste a couple of bytes per tcp conversation and make the tree for acked_packets (i.e. packets that have interesting tcp properties such as being retransmissions etc) hang off the per conversation tcpd struct instead of being global.
while this should improve performance by unmeasurably little it does have the sideeffect that once we finish the rewrite   tcp analysis might actually work and work well even for tcp over tcp tunnelling. 

this also means that if you include packet-tcp.h   you also need to include emem.h .




svn path=/trunk/; revision=17681
2006-03-20 10:52:53 +00:00
Ronnie Sahlberg 2808928c90 make the tcp_acked struct a pointer from the tcpd struct since we might need it hanging around.
only call subdissectors for packets that are NOT keepalives nor zerowindowprobes.


keepalives only contain garbage anyway
and zerowindowproes just contain a single byte of incomplete data so whats the point trying to dissect it further.



svn path=/trunk/; revision=17443
2006-03-02 09:33:49 +00:00
Ronnie Sahlberg dab77d86f1 rewrite of the tcp sequence number analysis code to hopefully make it cleaner and easier to maintain and extend.
i have tested it with many captures   but this used to be fragile and delicate code  so there might be some regressions that will need to be addressed once identified.





svn path=/trunk/; revision=17107
2006-01-26 22:50:16 +00:00
Anders Broman bd44e72c95 From Mike Duigou:
A minor change to the prototype of tcp_dissect_pdus() 
which uses the function pointer type from packet.h

svn path=/trunk/; revision=14535
2005-06-03 06:31:58 +00:00
Ulf Lamping 25531c9a70 from Micheal Duigou: some more doxygen tags
svn path=/trunk/; revision=13732
2005-03-12 09:59:28 +00:00
Gilbert Ramirez 669db206cb Move dissectors to epan/dissectors directory.
Also move ncp222.py, x11-fields, process-x11-fields.pl,
make-reg-dotc, and make-reg-dotc.py.

Adjust #include lines in files that include packet-*.h
files.

svn path=/trunk/; revision=11410
2004-07-18 18:06:47 +00:00