Commit Graph

27 Commits

Author SHA1 Message Date
Sake Blok ea4ac173d0 Add "tcp.window_size_value" and "tcp.window_size_scalefactor" conform
the discussion in bug 5541. Since we now have the window size value as
well as the scaled window size, there is no need anymore for the
tcp preference "tcp_window_scaling".


svn path=/trunk/; revision=35425
2011-01-08 15:51:38 +00:00
Stephen Fisher dfacac4421 Expand the TCP flags to include the low nibble of the byte that has
the header length in the high nibble.  The only new flag is nonce (NS);
the remaining three bits are still reserved.


svn path=/trunk/; revision=34084
2010-09-08 20:43:19 +00:00
Sake Blok 93cfe5571b From Cal Turney (bug 5132):
TCP bytes_in flight becomes inflated with lost packets 

This patch suspends Bytes-in-Flight calculation when missing packets are detected.


svn path=/trunk/; revision=33994
2010-08-29 15:27:20 +00:00
Anders Broman 1c2b3b0eb9 Fix a number of doxygen directives.
svn path=/trunk/; revision=33930
2010-08-26 15:24:49 +00:00
Anders Broman 2ed269439d Fix indentation.
svn path=/trunk/; revision=32972
2010-05-26 11:51:07 +00:00
Kovarththanan Rajaratnam 17c9803cac Sanitize epan includes
svn path=/trunk/; revision=29499
2009-08-21 20:25:24 +00:00
Stig Bjørlykke 3677441868 Enable Lua tcp tap userdata.
svn path=/trunk/; revision=28673
2009-06-09 14:51:00 +00:00
Gerald Combs 9a72434b1e Add support for process flow records to IPFIX, which required adding
support for vendor-specific IEs. Fix variable-length record handling. Add
conversation tracking to the UDP dissector and add process flow
information to TCP and UDP conversations.

This lets us run process flow collectors on one or more machines and
have the process username, PID, command name, etc. show up in the TCP
and UDP protocol trees.

svn path=/trunk/; revision=28366
2009-05-14 23:33:17 +00:00
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