+++ /dev/null
-2012/02/27 - redesigning buffers for better simplicity - w@1wt.eu
-
-1) Analysis
------------
-
-Buffer handling becomes complex because buffers are circular but many of their
-users don't support wrapping operations (eg: HTTP parsing). Due to this fact,
-some buffer operations automatically realign buffers as soon as possible when
-the buffer is empty, which makes it very hard to track buffer pointers outside
-of the buffer struct itself. The buffer contains a pointer to last processed
-data (buf->lr) which is automatically realigned with such operations. But in
-the end, its semantics are often unclear and whether it's safe or not to use it
-isn't always obvious, as it has acquired multiple roles over the time.
-
-A "struct buffer" is declared this way :
-
- struct buffer {
- unsigned int flags; /* BF_* */
- int rex; /* expiration date for a read, in ticks */
- int wex; /* expiration date for a write or connect, in ticks */
- int rto; /* read timeout, in ticks */
- int wto; /* write timeout, in ticks */
- unsigned int l; /* data length */
- char *r, *w, *lr; /* read ptr, write ptr, last read */
- unsigned int size; /* buffer size in bytes */
- unsigned int send_max; /* number of bytes the sender can consume om this buffer, <= l */
- unsigned int to_forward; /* number of bytes to forward after send_max without a wake-up */
- unsigned int analysers; /* bit field indicating what to do on the buffer */
- int analyse_exp; /* expiration date for current analysers (if set) */
- void (*hijacker)(struct session *, struct buffer *); /* alternative content producer */
- unsigned char xfer_large; /* number of consecutive large xfers */
- unsigned char xfer_small; /* number of consecutive small xfers */
- unsigned long long total; /* total data read */
- struct stream_interface *prod; /* producer attached to this buffer */
- struct stream_interface *cons; /* consumer attached to this buffer */
- struct pipe *pipe; /* non-NULL only when data present */
- char data[0]; /* <size> bytes */
- };
-
-In order to address this, a struct http_msg was created with other pointers to
-the buffer. The issue is that some of these pointers are absolute and other
-ones are relative, sometimes one to another, sometimes to the beginning of the
-buffer, which doesn't help at all for the case where buffers get realigned.
-
-A "struct http_msg" is defined this way :
-
- struct http_msg {
- unsigned int msg_state;
- unsigned int flags;
- unsigned int col, sov; /* current header: colon, start of value */
- unsigned int eoh; /* End Of Headers, relative to buffer */
- char *sol; /* start of line, also start of message when fully parsed */
- char *eol; /* end of line */
- unsigned int som; /* Start Of Message, relative to buffer */
- int err_pos; /* err handling: -2=block, -1=pass, 0+=detected */
- union { /* useful start line pointers, relative to ->sol */
- struct {
- int l; /* request line length (not including CR) */
- int m_l; /* METHOD length (method starts at ->som) */
- int u, u_l; /* URI, length */
- int v, v_l; /* VERSION, length */
- } rq; /* request line : field, length */
- struct {
- int l; /* status line length (not including CR) */
- int v_l; /* VERSION length (version starts at ->som) */
- int c, c_l; /* CODE, length */
- int r, r_l; /* REASON, length */
- } st; /* status line : field, length */
- } sl; /* start line */
- unsigned long long chunk_len;
- unsigned long long body_len;
- char **cap;
- };
-
-
-The first immediate observation is that nothing in a buffer should be relative
-to the beginning of the storage area, everything should be relative to the
-buffer's origin as a floating location. Right now the buffer's origin is equal
-to (buf->w + buf->send_max). It is the place where the first byte of data not
-yet scheduled for being forwarded is found.
-
- - buf->w is an absolute pointer, just like buf->data.
- - buf->send_max is a relative value which oscillates between 0 when nothing
- has to be forwarded, and buf->l when the whole buffer must be forwarded.
-
-
-2) Proposal
------------
-
-By having such an origin, we could have everything in http_msg relative to this
-origin. This would resist buffer realigns much better than right now.
-
-At the moment we have msg->som which is relative to buf->data and which points
-to the beginning of the message. The beginning of the message should *always*
-be the buffer's origin. If data are to be skipped in the message, just wait for
-send_max to become zero and move the origin forwards ; this would definitely get
-rid of msg->som. This is already what is done in the HTTP parser except that it
-has to move both buf->lr and msg->som.
-
-Following the same principle, we should then have a relative pointer in
-http_msg to replace buf->lr. It would be relative to the buffer's origin and
-would simply recall what location was last visited.
-
-Doing all this could result in more complex operations where more time is spent
-adding buf->w to buf->send_max and then to msg->anything. It would probably make
-more sense to define the buffer's origin as an absolute pointer and to have
-both the buf->h (head) and buf->t (tail) pointers be positive and negative
-positions relative to this origin. Operating on the buffer would then look like
-this :
-
- - no buf->l anymore. buf->l is replaced by (head + tail)
- - no buf->lr anymore. Use origin + msg->last for instance
- - recv() : head += recv(origin + head);
- - send() : tail -= send(origin - tail, tail);
- thus, buf->o effectively replaces buf->send_max.
- - forward(N) : tail += N; origin += N;
- - realign() : origin = data
- - detect risk of wrapping of input : origin + head > data + size
-
-In general it looks like less pointers are manipulated for common operations
-and that maybe an additional wrapping test (hand-made modulo) will have to be
-added so send() and recv() operations.
-
-
-3) Caveats
-----------
-
-The first caveat is that the elements to modify appear at a very large number
-of places.
+++ /dev/null
-#FIG 3.2 Produced by xfig version 3.2.5-alpha5
-Portrait
-Center
-Metric
-A4
-100.00
-Single
--2
-1200 2
-6 630 900 1620 1395
-5 1 0 1 0 4 51 -1 20 0.000 0 1 0 0 900.000 1125.000 900 900 675 1125 900 1350
-6 900 900 1620 1350
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 900 900 900 1350
-4 0 0 50 -1 16 8 0.0000 4 120 570 1035 1245 descriptor\001
-4 0 0 50 -1 16 8 0.0000 4 105 165 1035 1080 file\001
--6
--6
-6 630 1530 1620 2070
-6 630 1530 1170 2070
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 900.000 1800.000 900 1575 1125 1800 900 2025
-5 1 0 1 0 4 51 -1 20 0.000 0 1 0 0 900.000 1800.000 900 1575 675 1800 900 2025
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 900 1575 900 2025
--6
-4 0 0 50 -1 16 8 0.0000 4 105 360 1260 1710 stream\001
-4 0 0 50 -1 16 8 0.0000 4 105 330 1260 1890 driver\001
--6
-6 675 2340 2070 2610
-6 675 2340 1575 2610
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1530 2340 1530 2610
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1485 2340 1485 2610
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 675 2340 1575 2340 1575 2610 675 2610 675 2340
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 720 2340 720 2610
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 765 2340 765 2610
--6
-4 0 0 50 -1 16 8 0.0000 4 105 330 1710 2475 buffer\001
--6
-6 2340 2205 3420 2745
-6 2340 2205 2610 2745
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 2475.000 2475.000 2610 2655 2475 2700 2340 2655
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 2475.000 2475.000 2610 2295 2475 2250 2340 2295
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 2340 2295 2610 2295 2610 2655 2340 2655 2340 2295
--6
-4 0 0 50 -1 16 8 0.0000 4 105 645 2745 2430 schedulable\001
-4 0 0 50 -1 16 8 0.0000 4 105 225 2745 2595 task\001
--6
-6 4455 900 7200 2070
-6 4455 900 4725 1395
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 4455.000 1125.000 4455 900 4680 1125 4455 1350
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 4455 900 4455 1350
--6
-6 5130 1170 5715 2070
-4 0 0 50 -1 16 8 0.0000 4 105 585 5130 1305 functions :\001
-4 0 0 50 -1 16 6 0.0000 4 75 315 5130 1440 -queue\001
-4 0 0 50 -1 16 6 0.0000 4 90 525 5130 1590 -shutdown\001
-4 0 0 50 -1 16 6 0.0000 4 90 300 5130 1740 -flush\001
-4 0 0 50 -1 16 6 0.0000 4 90 285 5130 1890 -send\001
-4 0 0 50 -1 16 6 0.0000 4 60 270 5130 2040 -recv\001
--6
-6 6030 900 7200 2025
-4 0 0 50 -1 16 8 0.0000 4 105 555 6030 1035 callbacks :\001
-4 0 0 50 -1 16 6 0.0000 4 105 735 6030 1170 -read_complete\001
-4 0 0 50 -1 16 6 0.0000 4 105 780 6030 1320 -write_complete\001
-4 0 0 50 -1 16 6 0.0000 4 105 450 6030 1470 -wake_up\001
-4 0 0 50 -1 16 6 0.0000 4 105 1110 6030 1755 -context (for sessions)\001
-4 0 0 50 -1 16 6 0.0000 4 105 810 6030 1890 -source (=buffer)\001
-4 0 0 50 -1 16 6 0.0000 4 90 525 6030 2025 -condition\001
-4 0 0 50 -1 16 8 0.0000 4 120 1140 6030 1620 args for *_complete :\001
--6
-2 1 0 1 0 -1 50 -1 -1 0.000 1 0 -1 1 0 3
- 0 0 1.00 30.00 45.00
- 4635 990 4905 990 5985 990
-2 1 0 1 0 -1 50 -1 -1 0.000 1 0 -1 0 1 3
- 0 0 1.00 30.00 45.00
- 4635 1260 4905 1260 5085 1260
--6
-6 2205 1530 3420 2070
-6 2205 1530 2745 2070
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 2475.000 1800.000 2475 1575 2250 1800 2475 2025
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 2475.000 1800.000 2475 1575 2700 1800 2475 2025
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 2475 1575 2475 2025
--6
-4 0 0 50 -1 16 8 0.0000 4 105 360 2835 1755 stream\001
-4 0 0 50 -1 16 8 0.0000 4 90 555 2835 1935 processor\001
--6
-6 3825 2205 4905 2745
-6 3825 2205 4365 2745
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 4095.000 2475.000 4230 2295 4320 2475 4230 2655
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 4095.000 2475.000 3960 2295 3870 2475 3960 2655
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 4095.000 2475.000 4230 2655 4095 2700 3960 2655
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 4095.000 2475.000 4230 2295 4095 2250 3960 2295
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 3960 2295 4230 2295 4230 2655 3960 2655 3960 2295
--6
-4 0 0 50 -1 16 8 0.0000 4 105 240 4455 2430 flow\001
-4 0 0 50 -1 16 8 0.0000 4 120 450 4455 2610 analyzer\001
--6
-6 2250 900 3960 1395
-6 2250 900 2520 1395
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 2250.000 1125.000 2250 900 2475 1125 2250 1350
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 2250 900 2250 1350
--6
-4 0 0 50 -1 16 8 0.0000 4 105 1320 2610 1245 callbacks and functions.\001
-4 0 0 50 -1 16 8 0.0000 4 105 1335 2610 1080 stream interface made of\001
--6
-6 7740 900 8775 3465
-6 7740 900 8640 1170
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 8595 900 8595 1170
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 8550 900 8550 1170
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 7740 900 8640 900 8640 1170 7740 1170 7740 900
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 7785 900 7785 1170
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 7830 900 7830 1170
-4 1 0 50 -1 16 6 0.0000 4 105 420 8190 1080 http_req\001
--6
-4 0 0 50 -1 16 8 0.0000 4 105 495 7740 1395 variables\001
-4 0 0 50 -1 16 6 0.0000 4 105 300 7740 1485 -flags\001
-4 0 0 50 -1 16 6 0.0000 4 105 720 7740 1755 -producer_task\001
-4 0 0 50 -1 16 6 0.0000 4 105 735 7740 1845 -consumer_task\001
-4 0 0 50 -1 16 6 0.0000 4 105 780 7740 1665 -write_complete\001
-4 0 0 50 -1 16 6 0.0000 4 105 735 7740 1575 -read_complete\001
-4 0 0 50 -1 16 8 0.0000 4 120 780 7740 2160 internal flags :\001
-4 0 0 50 -1 16 6 0.0000 4 90 960 7740 2295 -SHUTR_PENDING\001
-4 0 0 50 -1 16 6 0.0000 4 90 780 7740 2385 -SHUTR_DONE\001
-4 0 0 50 -1 16 6 0.0000 4 90 975 7740 2475 -SHUTW_PENDING\001
-4 0 0 50 -1 16 6 0.0000 4 90 795 7740 2565 -SHUTW_DONE\001
-4 0 0 50 -1 16 6 0.0000 4 75 450 7740 2655 -HOLDW\001
-4 0 0 50 -1 16 6 0.0000 4 90 585 7740 2745 -READ_EN\001
-4 0 0 50 -1 16 6 0.0000 4 90 600 7740 2835 -WRITE_EN\001
-4 0 0 50 -1 16 6 0.0000 4 105 945 7740 1935 -flow_analyzer_task\001
-4 0 0 50 -1 16 8 0.0000 4 105 540 7740 3015 interface :\001
-4 0 0 50 -1 16 6 0.0000 4 90 780 7740 3150 -1 stream reader\001
-4 0 0 50 -1 16 6 0.0000 4 90 780 7740 3285 -1 stream writer\001
-4 0 0 50 -1 16 6 0.0000 4 105 1020 7740 3420 -0..n stream analyzers\001
--6
-6 3555 3645 5895 6075
-6 3555 3915 4095 4455
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 3825.000 4185.000 3825 3960 4050 4185 3825 4410
-5 1 0 1 0 4 51 -1 20 0.000 0 1 0 0 3825.000 4185.000 3825 3960 3600 4185 3825 4410
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 3825 3960 3825 4410
--6
-6 5355 3915 5895 4455
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 5625.000 4185.000 5625 3960 5400 4185 5625 4410
-5 1 0 1 0 4 51 -1 20 0.000 0 0 0 0 5625.000 4185.000 5625 3960 5850 4185 5625 4410
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 5625 3960 5625 4410
--6
-6 3555 5265 4095 5805
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 3825.000 5535.000 3825 5310 4050 5535 3825 5760
-5 1 0 1 0 4 51 -1 20 0.000 0 1 0 0 3825.000 5535.000 3825 5310 3600 5535 3825 5760
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 3825 5310 3825 5760
--6
-6 5355 5265 5895 5805
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 5625.000 5535.000 5625 5310 5400 5535 5625 5760
-5 1 0 1 0 4 51 -1 20 0.000 0 0 0 0 5625.000 5535.000 5625 5310 5850 5535 5625 5760
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 5625 5310 5625 5760
--6
-6 4455 4590 4995 5130
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 4725.000 4860.000 4860 4680 4950 4860 4860 5040
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 4725.000 4860.000 4590 4680 4500 4860 4590 5040
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 4725.000 4860.000 4860 5040 4725 5085 4590 5040
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 4725.000 4860.000 4860 4680 4725 4635 4590 4680
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 4590 4680 4860 4680 4860 5040 4590 5040 4590 4680
--6
-6 4275 5400 5175 5670
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5130 5400 5130 5670
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5085 5400 5085 5670
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 4275 5400 5175 5400 5175 5670 4275 5670 4275 5400
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4320 5400 4320 5670
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4365 5400 4365 5670
-4 1 0 50 -1 16 6 0.0000 4 105 465 4725 5580 http_resp\001
--6
-6 4275 4050 5175 4320
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5130 4050 5130 4320
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5085 4050 5085 4320
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 4275 4050 5175 4050 5175 4320 4275 4320 4275 4050
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4320 4050 4320 4320
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4365 4050 4365 4320
-4 1 0 50 -1 16 6 0.0000 4 105 420 4725 4230 http_req\001
--6
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 5175 4185 5400 4185
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 4050 4185 4275 4185
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 4725 4635 4725 4320
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 4725 5400 4725 5085
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 4275 5535 4050 5535
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 5400 5535 5175 5535
-4 1 0 50 -1 16 6 0.0000 4 90 285 5625 3870 driver\001
-4 1 0 50 -1 16 6 0.0000 4 105 300 5625 3735 output\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 3825 3870 driver\001
-4 1 0 50 -1 16 6 0.0000 4 105 240 3825 3735 input\001
-4 0 0 50 -1 16 6 0.0000 4 90 405 5040 4950 eg: HTTP\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 5625 6075 driver\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 3825 6075 driver\001
-4 1 0 50 -1 16 6 0.0000 4 105 300 3825 5940 output\001
-4 1 0 50 -1 16 6 0.0000 4 105 240 5625 5940 input\001
-4 0 0 50 -1 16 6 0.0000 4 105 690 5040 4815 flow processor\001
--6
-6 6480 4050 8820 5400
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 7650.000 4725.000 7785 4545 7875 4725 7785 4905
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 7650.000 4725.000 7515 4545 7425 4725 7515 4905
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 7650.000 4725.000 7785 4905 7650 4950 7515 4905
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 7650.000 4725.000 7785 4545 7650 4500 7515 4545
-6 6480 4455 7020 4995
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 6750.000 4725.000 6750 4500 6975 4725 6750 4950
-5 1 0 1 0 4 51 -1 20 0.000 0 1 0 0 6750.000 4725.000 6750 4500 6525 4725 6750 4950
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 6750 4500 6750 4950
--6
-6 8280 4455 8820 4995
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 8550.000 4725.000 8550 4500 8325 4725 8550 4950
-5 1 0 1 0 4 51 -1 20 0.000 0 0 0 0 8550.000 4725.000 8550 4500 8775 4725 8550 4950
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 8550 4500 8550 4950
--6
-6 7200 4050 8100 4320
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 8055 4050 8055 4320
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 8010 4050 8010 4320
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 7245 4050 7245 4320
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 7200 4050 8100 4050 8100 4320 7200 4320 7200 4050
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 7290 4050 7290 4320
-4 1 0 50 -1 16 6 0.0000 4 105 420 7650 4230 http_req\001
--6
-6 7200 5130 8100 5400
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 8055 5130 8055 5400
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 8010 5130 8010 5400
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 7200 5130 8100 5130 8100 5400 7200 5400 7200 5130
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 7245 5130 7245 5400
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 7290 5130 7290 5400
-4 1 0 50 -1 16 6 0.0000 4 105 465 7650 5310 http_resp\001
--6
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 8100 4185 8370 4590
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 6930 4590 7200 4185
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 7650 4500 7650 4320
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 7650 5130 7650 4950
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 7200 5265 6930 4860
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 8370 4860 8100 5265
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 7515 4545 7785 4545 7785 4905 7515 4905 7515 4545
-4 1 0 50 -1 16 6 0.0000 4 60 285 6750 4230 server\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 6750 4365 socket\001
-4 1 0 50 -1 16 6 0.0000 4 90 255 8550 4230 client\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 8550 4365 socket\001
-4 1 0 50 -1 16 6 0.0000 4 105 210 7650 4770 http\001
--6
-6 630 4005 2970 5490
-6 630 4680 1170 5220
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 900.000 4950.000 900 4725 1125 4950 900 5175
-5 1 0 1 0 4 51 -1 20 0.000 0 1 0 0 900.000 4950.000 900 4725 675 4950 900 5175
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 900 4725 900 5175
--6
-6 2430 4680 2970 5220
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 2700.000 4950.000 2700 4725 2475 4950 2700 5175
-5 1 0 1 0 4 51 -1 20 0.000 0 0 0 0 2700.000 4950.000 2700 4725 2925 4950 2700 5175
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 2700 4725 2700 5175
--6
-6 1530 4005 2070 4545
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 1800.000 4275.000 1935 4095 2025 4275 1935 4455
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 1800.000 4275.000 1665 4095 1575 4275 1665 4455
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 1800.000 4275.000 1935 4455 1800 4500 1665 4455
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 1800.000 4275.000 1935 4095 1800 4050 1665 4095
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 1665 4095 1935 4095 1935 4455 1665 4455 1665 4095
--6
-6 1350 4815 2250 5085
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 2205 4815 2205 5085
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 2160 4815 2160 5085
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 1350 4815 2250 4815 2250 5085 1350 5085 1350 4815
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1395 4815 1395 5085
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1440 4815 1440 5085
-4 1 0 50 -1 16 6 0.0000 4 105 420 1800 4995 http_req\001
--6
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2250 4950 2475 4950
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 1800 4815 1800 4500
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1125 4950 1350 4950
-4 0 0 50 -1 16 6 0.0000 4 105 690 2115 4365 eg: HTTP_REQ\001
-4 1 0 50 -1 16 6 0.0000 4 105 300 2700 5355 output\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 2700 5490 driver\001
-4 1 0 50 -1 16 6 0.0000 4 105 240 900 5355 input\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 900 5490 driver\001
-4 0 0 50 -1 16 6 0.0000 4 105 690 2115 4230 flow processor\001
--6
-6 675 11025 6615 12555
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 3645.000 11790.000 3780 11610 3870 11790 3780 11970
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 3645.000 11790.000 3510 11610 3420 11790 3510 11970
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 3645.000 11790.000 3780 11970 3645 12015 3510 11970
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 3645.000 11790.000 3780 11610 3645 11565 3510 11610
-6 675 11520 1215 12060
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 945.000 11790.000 945 11565 1170 11790 945 12015
-5 1 0 1 0 4 51 -1 20 0.000 0 1 0 0 945.000 11790.000 945 11565 720 11790 945 12015
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 945 11565 945 12015
--6
-6 3195 11115 4095 11385
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4050 11115 4050 11385
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4005 11115 4005 11385
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 3240 11115 3240 11385
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 3195 11115 4095 11115 4095 11385 3195 11385 3195 11115
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 3285 11115 3285 11385
-4 1 0 50 -1 16 6 0.0000 4 105 420 3645 11295 http_req\001
--6
-6 3195 12195 4095 12465
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4050 12195 4050 12465
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4005 12195 4005 12465
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 3195 12195 4095 12195 4095 12465 3195 12465 3195 12195
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 3240 12195 3240 12465
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 3285 12195 3285 12465
-4 1 0 50 -1 16 6 0.0000 4 105 465 3645 12375 http_resp\001
--6
-6 4275 11520 4815 12060
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 4545.000 11790.000 4545 11565 4320 11790 4545 12015
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 4545.000 11790.000 4545 11565 4770 11790 4545 12015
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 4545 11565 4545 12015
--6
-6 2475 11520 3015 12060
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 2745.000 11790.000 2745 11565 2520 11790 2745 12015
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 2745.000 11790.000 2745 11565 2970 11790 2745 12015
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 2745 11565 2745 12015
--6
-6 4995 11115 5895 11385
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5850 11115 5850 11385
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5805 11115 5805 11385
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5040 11115 5040 11385
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 4995 11115 5895 11115 5895 11385 4995 11385 4995 11115
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5085 11115 5085 11385
-4 1 0 50 -1 16 6 0.0000 4 105 465 5445 11295 https_req\001
--6
-6 4995 12195 5895 12465
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5850 12195 5850 12465
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5805 12195 5805 12465
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 4995 12195 5895 12195 5895 12465 4995 12465 4995 12195
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5040 12195 5040 12465
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5085 12195 5085 12465
-4 1 0 50 -1 16 6 0.0000 4 105 510 5445 12375 https_resp\001
--6
-6 1395 11115 2295 11385
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 2250 11115 2250 11385
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 2205 11115 2205 11385
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1440 11115 1440 11385
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 1395 11115 2295 11115 2295 11385 1395 11385 1395 11115
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1485 11115 1485 11385
-4 1 0 50 -1 16 6 0.0000 4 105 465 1845 11295 https_req\001
--6
-6 1395 12195 2295 12465
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 2250 12195 2250 12465
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 2205 12195 2205 12465
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 1395 12195 2295 12195 2295 12465 1395 12465 1395 12195
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1440 12195 1440 12465
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1485 12195 1485 12465
-4 1 0 50 -1 16 6 0.0000 4 105 510 1845 12375 https_resp\001
--6
-6 6075 11520 6615 12060
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 6345.000 11790.000 6345 11565 6120 11790 6345 12015
-5 1 0 1 0 4 51 -1 20 0.000 0 0 0 0 6345.000 11790.000 6345 11565 6570 11790 6345 12015
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 6345 11565 6345 12015
--6
-6 675 12195 1170 12555
-2 4 0 1 16 17 53 -1 -1 0.000 0 0 7 0 0 5
- 1170 12555 1170 12195 675 12195 675 12555 1170 12555
-4 1 0 50 -1 16 6 0.0000 4 90 450 900 12420 TCPv4_S\001
--6
-6 6120 12195 6615 12555
-2 4 0 1 16 17 53 -1 -1 0.000 0 0 7 0 0 5
- 6615 12555 6615 12195 6120 12195 6120 12555 6615 12555
-4 1 0 50 -1 16 6 0.0000 4 90 450 6345 12420 TCPv4_S\001
--6
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1125 11655 1395 11250
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1395 12330 1125 11925
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 3645 11565 3645 11385
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 3645 12195 3645 12015
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 4995 12330 4725 11925
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 4725 11655 4995 11250
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 4375 11925 4105 12330
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 4095 11250 4365 11655
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 3195 12330 2925 11925
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2925 11655 3195 11250
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2575 11925 2305 12330
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2295 11250 2565 11655
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 5895 11250 6165 11655
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 6165 11925 5895 12330
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 3510 11610 3780 11610 3780 11970 3510 11970 3510 11610
-2 4 0 1 16 17 54 -1 20 0.000 0 0 7 0 0 5
- 3150 12555 3150 11025 675 11025 675 12555 3150 12555
-2 3 0 1 28 30 53 -1 20 0.000 1 0 -1 0 0 11
- 6120 11070 5895 11565 5895 12015 6120 12510 4950 12510 4410 12510
- 4185 12015 4185 11565 4410 11070 4995 11070 6120 11070
-2 4 0 1 16 17 54 -1 20 0.000 0 0 7 0 0 5
- 6615 12555 6615 11025 4140 11025 4140 12555 6615 12555
-2 3 0 1 28 30 53 -1 20 0.000 0 0 -1 0 0 11
- 1170 11070 1395 11565 1395 12015 1170 12510 2340 12510 2880 12510
- 3105 12015 3105 11565 2880 11070 2295 11070 1170 11070
-4 1 0 50 -1 16 6 0.0000 4 60 285 945 11295 server\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 945 11430 socket\001
-4 1 0 50 -1 16 6 0.0000 4 75 210 4545 11430 SSL\001
-4 1 0 50 -1 16 6 0.0000 4 75 210 2745 11430 SSL\001
-4 1 0 50 -1 16 6 0.0000 4 90 255 6345 11295 client\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 6345 11430 socket\001
-4 1 0 50 -1 16 6 0.0000 4 105 210 3645 11835 http\001
--6
-6 630 6750 2970 8100
-6 630 7155 1170 7695
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 900.000 7425.000 900 7200 1125 7425 900 7650
-5 1 0 1 0 4 51 -1 20 0.000 0 1 0 0 900.000 7425.000 900 7200 675 7425 900 7650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 900 7200 900 7650
--6
-6 2430 7155 2970 7695
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 2700.000 7425.000 2700 7200 2475 7425 2700 7650
-5 1 0 1 0 4 51 -1 20 0.000 0 0 0 0 2700.000 7425.000 2700 7200 2925 7425 2700 7650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 2700 7200 2700 7650
--6
-6 1350 6750 2250 7020
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 2205 6750 2205 7020
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 2160 6750 2160 7020
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1395 6750 1395 7020
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 1350 6750 2250 6750 2250 7020 1350 7020 1350 6750
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1440 6750 1440 7020
-4 1 0 50 -1 16 6 0.0000 4 105 420 1800 6930 http_req\001
--6
-6 1305 7020 1845 7830
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 1575.000 7425.000 1710 7245 1800 7425 1710 7605
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 1575.000 7425.000 1440 7245 1350 7425 1440 7605
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 1575.000 7425.000 1710 7605 1575 7650 1440 7605
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 1575.000 7425.000 1710 7245 1575 7200 1440 7245
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 1575 7200 1575 7020
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 1575 7830 1575 7650
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 1440 7245 1710 7245 1710 7605 1440 7605 1440 7245
-4 1 0 50 -1 16 6 0.0000 4 105 210 1575 7470 http\001
--6
-6 1755 7020 2295 7830
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 2025.000 7425.000 2160 7605 2025 7650 1890 7605
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 2025.000 7425.000 2160 7245 2025 7200 1890 7245
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 2025.000 7425.000 1890 7245 1800 7425 1890 7605
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 2025.000 7425.000 2160 7245 2250 7425 2160 7605
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 2025 7200 2025 7020
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 2025 7830 2025 7650
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 1890 7245 2160 7245 2160 7605 1890 7605 1890 7245
-4 1 0 50 -1 16 6 0.0000 4 105 390 2025 7470 filtering\001
--6
-6 1350 7830 2250 8100
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 2205 7830 2205 8100
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 2160 7830 2160 8100
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 1350 7830 2250 7830 2250 8100 1350 8100 1350 7830
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1395 7830 1395 8100
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 1440 7830 1440 8100
-4 1 0 50 -1 16 6 0.0000 4 105 465 1800 8010 http_resp\001
--6
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2250 6885 2520 7290
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1080 7290 1350 6885
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1350 7965 1080 7560
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2520 7560 2250 7965
-4 1 0 50 -1 16 6 0.0000 4 60 285 900 6930 server\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 900 7065 socket\001
-4 1 0 50 -1 16 6 0.0000 4 90 255 2700 6930 client\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 2700 7065 socket\001
--6
-6 4680 9000 8820 10530
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 7650.000 9765.000 7785 9585 7875 9765 7785 9945
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 7650.000 9765.000 7515 9585 7425 9765 7515 9945
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 7650.000 9765.000 7785 9945 7650 9990 7515 9945
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 7650.000 9765.000 7785 9585 7650 9540 7515 9585
-6 4680 9495 5220 10035
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 4950.000 9765.000 4950 9540 5175 9765 4950 9990
-5 1 0 1 0 4 51 -1 20 0.000 0 1 0 0 4950.000 9765.000 4950 9540 4725 9765 4950 9990
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 4950 9540 4950 9990
--6
-6 8280 9495 8820 10035
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 8550.000 9765.000 8550 9540 8325 9765 8550 9990
-5 1 0 1 0 4 51 -1 20 0.000 0 0 0 0 8550.000 9765.000 8550 9540 8775 9765 8550 9990
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 8550 9540 8550 9990
--6
-6 7200 9090 8100 9360
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 8055 9090 8055 9360
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 8010 9090 8010 9360
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 7245 9090 7245 9360
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 7200 9090 8100 9090 8100 9360 7200 9360 7200 9090
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 7290 9090 7290 9360
-4 1 0 50 -1 16 6 0.0000 4 105 420 7650 9270 http_req\001
--6
-6 7200 10170 8100 10440
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 8055 10170 8055 10440
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 8010 10170 8010 10440
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 7200 10170 8100 10170 8100 10440 7200 10440 7200 10170
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 7245 10170 7245 10440
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 7290 10170 7290 10440
-4 1 0 50 -1 16 6 0.0000 4 105 465 7650 10350 http_resp\001
--6
-6 6480 9495 7020 10035
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 6750.000 9765.000 6750 9540 6525 9765 6750 9990
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 6750.000 9765.000 6750 9540 6975 9765 6750 9990
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 6750 9540 6750 9990
--6
-6 5400 10170 6300 10440
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 6255 10170 6255 10440
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 6210 10170 6210 10440
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 5400 10170 6300 10170 6300 10440 5400 10440 5400 10170
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5445 10170 5445 10440
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5490 10170 5490 10440
-4 1 0 50 -1 16 6 0.0000 4 105 510 5850 10350 https_resp\001
--6
-6 5400 9090 6300 9360
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 6255 9090 6255 9360
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 6210 9090 6210 9360
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5445 9090 5445 9360
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 5400 9090 6300 9090 6300 9360 5400 9360 5400 9090
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5490 9090 5490 9360
-4 1 0 50 -1 16 6 0.0000 4 105 465 5850 9270 https_req\001
--6
-6 4680 10170 5175 10530
-2 4 0 1 16 17 53 -1 -1 0.000 0 0 7 0 0 5
- 5175 10530 5175 10170 4680 10170 4680 10530 5175 10530
-4 1 0 50 -1 16 6 0.0000 4 90 450 4905 10395 TCPv4_S\001
--6
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 5130 9630 5400 9225
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 5400 10305 5130 9900
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 8100 9225 8370 9630
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 7650 9540 7650 9360
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 7650 10170 7650 9990
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 7200 10305 6930 9900
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 8370 9900 8100 10305
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 6930 9630 7200 9225
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 6580 9900 6310 10305
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 6300 9225 6570 9630
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 7515 9585 7785 9585 7785 9945 7515 9945 7515 9585
-2 4 0 1 16 17 54 -1 20 0.000 0 0 7 0 0 5
- 7155 10530 7155 9000 4680 9000 4680 10530 7155 10530
-2 3 0 1 28 30 53 -1 20 0.000 1 0 -1 0 0 11
- 5175 9045 5400 9540 5400 9990 5175 10485 6345 10485 6885 10485
- 7110 9990 7110 9540 6885 9045 6300 9045 5175 9045
-4 1 0 50 -1 16 6 0.0000 4 60 285 4950 9270 server\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 4950 9405 socket\001
-4 1 0 50 -1 16 6 0.0000 4 90 255 8550 9270 client\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 8550 9405 socket\001
-4 1 0 50 -1 16 6 0.0000 4 75 210 6750 9405 SSL\001
-4 1 0 50 -1 16 6 0.0000 4 105 210 7650 9810 http\001
--6
-6 675 9000 4275 10575
-6 1800 9900 2250 10125
-2 2 0 1 29 30 51 -1 20 0.000 0 0 -1 0 0 5
- 1800 9900 2250 9900 2250 10125 1800 10125 1800 9900
-4 1 0 50 -1 16 6 0.0000 4 75 210 2025 10035 SSL\001
--6
-6 2700 9900 3150 10125
-2 2 0 1 29 30 51 -1 20 0.000 0 0 -1 0 0 5
- 2700 9900 3150 9900 3150 10125 2700 10125 2700 9900
-4 1 0 50 -1 16 6 0.0000 4 75 210 2925 10035 SSL\001
--6
-6 3600 9900 4050 10125
-2 2 0 1 29 30 51 -1 20 0.000 0 0 -1 0 0 5
- 3600 9900 4050 9900 4050 10125 3600 10125 3600 9900
-4 1 0 50 -1 16 6 0.0000 4 75 210 3825 10035 SSL\001
--6
-6 900 9900 1350 10125
-2 2 0 1 29 30 51 -1 20 0.000 0 0 -1 0 0 5
- 900 9900 1350 9900 1350 10125 900 10125 900 9900
-4 1 0 50 -1 16 6 0.0000 4 75 210 1125 10035 SSL\001
--6
-6 2520 10350 3330 10575
-2 2 0 1 16 17 51 -1 20 0.000 0 0 -1 0 0 5
- 2520 10350 3330 10350 3330 10575 2520 10575 2520 10350
-4 1 0 50 -1 16 6 0.0000 4 90 510 2925 10485 UNIX_STR\001
--6
-6 1125 9450 1575 9675
-2 2 0 1 9 11 51 -1 20 0.000 0 0 -1 0 0 5
- 1125 9450 1575 9450 1575 9675 1125 9675 1125 9450
-4 1 0 50 -1 16 6 0.0000 4 90 315 1350 9585 deflate\001
--6
-6 2025 9450 2475 9675
-2 2 0 1 9 11 51 -1 20 0.000 0 0 -1 0 0 5
- 2025 9450 2475 9450 2475 9675 2025 9675 2025 9450
-4 1 0 50 -1 16 6 0.0000 4 90 315 2250 9585 deflate\001
--6
-6 2925 9450 3375 9675
-2 2 0 1 9 11 51 -1 20 0.000 0 0 -1 0 0 5
- 2925 9450 3375 9450 3375 9675 2925 9675 2925 9450
-4 1 0 50 -1 16 6 0.0000 4 90 315 3150 9585 deflate\001
--6
-6 3825 9450 4275 9675
-2 2 0 1 9 11 51 -1 20 0.000 0 0 -1 0 0 5
- 3825 9450 4275 9450 4275 9675 3825 9675 3825 9450
-4 1 0 50 -1 16 6 0.0000 4 90 315 4050 9585 deflate\001
--6
-6 675 10350 1530 10575
-2 2 0 1 16 17 51 -1 20 0.000 0 0 -1 0 0 5
- 675 10350 1530 10350 1530 10575 675 10575 675 10350
-4 1 0 50 -1 16 6 0.0000 4 75 315 1125 10485 TCPv4\001
--6
-6 1620 10350 2430 10575
-2 2 0 1 16 17 51 -1 20 0.000 0 0 -1 0 0 5
- 1620 10350 2430 10350 2430 10575 1620 10575 1620 10350
-4 1 0 50 -1 16 6 0.0000 4 75 315 2025 10485 TCPv6\001
--6
-6 3420 10350 4275 10575
-2 2 0 1 16 17 51 -1 20 0.000 0 0 -1 0 0 5
- 3420 10350 4275 10350 4275 10575 3420 10575 3420 10350
-4 1 0 50 -1 16 6 0.0000 4 75 330 3825 10485 PIPES\001
--6
-6 675 9000 4275 9225
-2 2 0 1 12 14 51 -1 20 0.000 0 0 -1 0 0 5
- 675 9000 4275 9000 4275 9225 675 9225 675 9000
-4 1 0 50 -1 16 6 0.0000 4 105 1950 2475 9135 HTTP flow analyzer using stream interfaces\001
--6
-2 1 0 1 20 -1 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 765 10350 765 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 810 10350 810 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 990 9900 990 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1035 9900 1035 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1170 10350 1170 10125
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 1215 9900 1215 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1260 9900 1260 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1395 9450 1395 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 1440 10350 1440 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1485 10350 1485 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 1665 10350 1665 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1710 10350 1710 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 1890 9900 1890 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 1935 9900 1935 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2070 10350 2070 10125
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 2115 9900 2115 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2160 9900 2160 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2295 9450 2295 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 2340 10350 2340 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2385 10350 2385 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 2565 10350 2565 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2610 10350 2610 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 2790 9900 2790 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2835 9900 2835 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 3015 9900 3015 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 3060 9900 3060 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 2970 10350 2970 10125
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 3240 10350 3240 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 3285 10350 3285 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 3195 9450 3195 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 3465 10350 3465 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 3510 10350 3510 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 3690 9900 3690 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 3735 9900 3735 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 3870 10350 3870 10125
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 3915 9900 3915 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 3960 9900 3960 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 4140 10350 4140 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 4185 10350 4185 9675
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 4095 9450 4095 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 1350 9450 1350 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 2250 9450 2250 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 3150 9450 3150 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 4050 9450 4050 9225
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 3825 10350 3825 10125
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 2925 10350 2925 10125
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 2025 10350 2025 10125
-2 1 0 1 20 14 50 -1 -1 0.000 1 0 -1 0 1 2
- 0 0 1.00 30.00 45.00
- 1125 10350 1125 10125
--6
-6 3780 6750 6120 8100
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 4725.000 7425.000 4860 7245 4950 7425 4860 7605
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 4725.000 7425.000 4590 7245 4500 7425 4590 7605
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 4725.000 7425.000 4860 7605 4725 7650 4590 7605
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 4725.000 7425.000 4860 7245 4725 7200 4590 7245
-5 1 0 1 0 14 51 -1 20 0.000 0 0 0 0 5175.000 7425.000 5310 7605 5175 7650 5040 7605
-5 1 0 1 0 14 51 -1 20 0.000 0 1 0 0 5175.000 7425.000 5310 7245 5175 7200 5040 7245
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 5175.000 7425.000 5040 7245 4950 7425 5040 7605
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 5175.000 7425.000 5310 7245 5400 7425 5310 7605
-6 3780 7155 4320 7695
-5 1 0 1 0 11 51 -1 20 0.000 0 0 0 0 4050.000 7425.000 4050 7200 4275 7425 4050 7650
-5 1 0 1 0 4 51 -1 20 0.000 0 1 0 0 4050.000 7425.000 4050 7200 3825 7425 4050 7650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 4050 7200 4050 7650
--6
-6 5580 7155 6120 7695
-5 1 0 1 0 11 51 -1 20 0.000 0 1 0 0 5850.000 7425.000 5850 7200 5625 7425 5850 7650
-5 1 0 1 0 4 51 -1 20 0.000 0 0 0 0 5850.000 7425.000 5850 7200 6075 7425 5850 7650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
- 5850 7200 5850 7650
--6
-6 4500 6750 5400 7020
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5355 6750 5355 7020
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5310 6750 5310 7020
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4545 6750 4545 7020
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 4500 6750 5400 6750 5400 7020 4500 7020 4500 6750
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4590 6750 4590 7020
-4 1 0 50 -1 16 6 0.0000 4 105 420 4950 6930 http_req\001
--6
-6 4500 7830 5400 8100
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5355 7830 5355 8100
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 5310 7830 5310 8100
-2 2 0 1 0 6 51 -1 20 0.000 1 0 -1 0 0 5
- 4500 7830 5400 7830 5400 8100 4500 8100 4500 7830
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4545 7830 4545 8100
-2 1 0 1 0 14 50 -1 -1 0.000 0 0 -1 0 0 2
- 4590 7830 4590 8100
-4 1 0 50 -1 16 6 0.0000 4 105 465 4950 8010 http_resp\001
--6
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 5400 6885 5670 7290
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 4230 7290 4500 6885
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 4500 7965 4230 7560
-2 1 0 1 0 0 50 -1 -1 0.000 1 0 -1 1 0 2
- 0 0 1.00 30.00 45.00
- 5670 7560 5400 7965
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 4725 7200 4725 7020
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 4590 7245 4860 7245 4860 7605 4590 7605 4590 7245
-2 1 0 1 0 14 50 -1 -1 0.000 1 0 -1 1 1 2
- 0 0 1.00 30.00 45.00
- 0 0 1.00 30.00 45.00
- 5175 7830 5175 7650
-2 2 0 1 14 14 52 -1 20 0.000 2 0 -1 0 0 5
- 5040 7245 5310 7245 5310 7605 5040 7605 5040 7245
-4 1 0 50 -1 16 6 0.0000 4 60 285 4050 6930 server\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 4050 7065 socket\001
-4 1 0 50 -1 16 6 0.0000 4 90 255 5850 6930 client\001
-4 1 0 50 -1 16 6 0.0000 4 90 285 5850 7065 socket\001
-4 1 0 50 -1 16 6 0.0000 4 105 210 4725 7425 http\001
-4 1 0 50 -1 16 6 0.0000 4 75 150 4725 7515 req\001
-4 1 0 50 -1 16 6 0.0000 4 105 210 5175 7425 http\001
-4 1 0 50 -1 16 6 0.0000 4 75 195 5175 7515 resp\001
--6
-4 0 0 53 -1 19 11 0.0000 4 180 5520 675 8775 Multi-layer protocol encapsulation using intermediate buffers :\001
-4 0 0 53 -1 19 11 0.0000 4 180 4200 675 6525 Multiple protocol processing on the same flow :\001
-4 0 0 53 -1 19 11 0.0000 4 180 2085 675 3600 Principles of operation :\001
+++ /dev/null
-2018-05-18 - Buffer rework
-
-1. Summary
-
-The situation with the current buffer structure is becoming problematic in
-the newly introduced muxes and causes serious difficulties preventing muxes
-from being used on both sides, unless requiring that all code is duplicated
-to use buf->i on the Rx path and buf->o on the Tx path.
-
-
-2. History
-
-A very long time ago, buffers were used to receive data using the recv() call,
-to parse them, forward them, and send them over the network using the send()
-call. Buffers were split into (buffer,channel) when some layers started to be
-introduced, and were reorganized a few times to ease content processing and
-rewriting. The current definition of the buffer structure is the following :
-
- struct buffer {
- char *p;
- uint size;
- uint i;
- uint o;
- char data[0];
- };
-
- data p
- | |
- V V
- +-----------+--------------------+------------+-------------+
- | |////////////////////|////////////| |
- +-----------+--------------------+------------+-------------+
- <---------------------------------------------------------> size
- <------------------> <---------->
- o i
-
-Pointer (p) is initialized to (data) when the buffer is empty. Data are
-received after (p+i), increasing (i) by the number of bytes read. Data are sent
-from (p-o) for up to (o) bytes, decreasing (o) by the number of bytes sent.
-Forwarding data in the channel consists in advancing (p) by the number of bytes
-to forward, increasing (o) and decreasing (i) by the same amount.
-
-This representation is convenient for channel operations because most of them
-require to parse input data between (p) and (p+i), and to have a simple way to
-forward data. Additionally, it's always easy to know if some data are scheduled
-for departure (o), or if the buffer has some room available (size-i-o).
-
-
-3. Problems
-
-When applets were introduced, the initial code that was made to write data into
-the output part was modified to send it into the input part since we had to
-rely on the stream code to forward these data via the channel. This explains
-the flood of bi_* functions that were introduced to perform the same operations
-as the initial bo_*, to write into an input buffer from an applet.
-
-Health checks however continue to use output because checks do not use streams
-nor channels. Thus the check buffers use buf->o for requests and buf->i for
-responses.
-
-The introduction of muxes has changed this again by requiring that most request
-code was able to write to buf->i, pretending to be the equivalent of a socket
-recv() call. New bi_* functions had to be created to write headers and chunks
-from the HTTP/2 mux. Conversely, it was made necessary to parse HTTP traffic
-from buf->o while all the original code was made to parse this from buf->i.
-
-Furthermore, implementing an outgoing mux (eg: HTTP/2) will require to
-duplicate a lot of the code to use buf->i instead of buf->o and conversely,
-just because the mux will not be placed on the same side of the buffer. Not
-only it complicates code maintenance but it also emphasizes the risk to use
-the wrong function at any moment.
-
-From a performance perspective, applets have to suffer a useless copy most of
-the time, only due to API limitatoins : it is not possible to write directly to
-an input buffer, one has to write to a chunk and then copy it into a buffer. A
-compatible structure could allow to share the same data between the chunk and
-the buffer without having to perform an extra copy.
-
-
-4. Proposal
-
-In checks and muxes, it is obvious that a single "side" of the buffer is used,
-and it generally is the one associated with the I/O to be performed. Only the
-channel requires the distinction between (i) and (o).
-
-The proposal is to remove this distinction from the buffer and move ->o into
-the channel.
-
-A buffer will then become only a linear (possibly wrapping) storage area with
-a beginning, and an end.
-
-Given the experience gathered from past buffer API updates, we know that the
-buffer's end is not as much important as its data length. This will give the
-current representation :
-
-
- struct buffer {
- void *area; // start of the storage area
- uint head; // start offset of remaining data relative to area
- uint len; // contents length after head
- uint size; // size of the storage area (wrapping point)
- };
-
- area
- |
- V
- +-----------+---------------------------------+-------------+
- | |/////////////////////////////////| |
- +-----------+---------------------------------+-------------+
- <---------------------------------------------------------> size
- <---------> <------------------------------->
- head len
-
-The channel will contain an "output" field corresponding to the current buf->o,
-indicating how many bytes of the current buffer are actually scheduled for
-being forwarded and must not be considered anymore. It means that a stream
-parser will simply start to parse from (buf->area + buf->head + chn->output)
-and stop at (buf->area + buf->head + buf->len).
-
-For esnding data, the caller of cs_send() or whatever function will have to
-pass the desired number of bytes to send, and one will not expect anymore that
-all the buffer's contents have to be sent. In general the caller will have
-access to chn->output if it needs to use this (typically from the stream
-interface code at the moment).
-
-
-5. First implementation step
-
-The first step will consist in limiting the changes to the current buffers. The
-buffer structure will still contain both a descriptor and the storage area. A
-buffer will first be declared this way :
-
- struct buffer {
- uint head; // start offset of remaining data relative to area
- uint len; // contents length after head
- uint size; // size of the storage area (wrapping point)
- void area[0]; // start of the storage area
- };
-
-Thanks to this, no changes will have to be performed on memory management, and
-buffers will continue to be allocated from a pool of size (sizeof(buffer) +
-tune.bufsize).
-
-The following translations will have to be performed on the code :
- - occurrences of (buf->i + buf->o) will have to be replaced with (buf->len)
- - bi_ptr() -> ci_ptr() ; bi_end() -> b_head()+b_size() ; bi_del() -> b_del()
- - bo_ptr() -> b_head() ; bo_end() -> co_end()
- - b_adv() -> c_adv() ; b_rew() -> c_rew()
- - buf->o will have to be replaced with either chn->output or a function
- argument containing a copy of chn->output. These ones should cancel out
- at the end of the operation.
- - buf->i -> (b_len(buf) - chn->output)
-
-Temporary difficulties :
- - compression makes use of both (i) and (o), by taking care of only touching
- (i) and never (o). The filters know how not to touch (o), and the internal
- compression API needs a small update so that this previous ->o value is
- passed as an argument that the filter will collect from the channel. If it
- is simpler (it probably isn't), a temporary "struct oldbuf" could be
- created to emulate the old behaviour and be fed/used by the filters code.
-
- - buffer_slow_realign() distinguishes input data from output data so that the
- output data is always placed at the end, leaving a clean contigous buffer
- once forwarded. Instead, a "split" argument will have to be added so that
- the caller may decide where to split the contents. Muxes will pass zero
- here while channels will pass chn->output.
-
-
-6. Second implementation step
-
-The second step will consist in making "struct buffer" only hold the descriptor
-and not the data anymore. It will then look like this :
-
- struct buffer {
- void *area; // start of the storage area
- uint head; // start offset of remaining data relative to area
- uint len; // contents length after head
- uint size; // size of the storage area (wrapping point)
- };
-
-Each buffer allocation will have to atomically allocate a struct buffer and an
-area. Buffer copies will consist in exchanging the "struct buffer" contents
-only.
-
-The chunk API must then be updated so that some new versions of chunk_putblk(),
-chunk_printf() etc can write to a storage area, and so that bi_putchk() and
-bo_putchk() instead can swap the storage areas when possible.
-
-At this point b_size() will be used to know where to release the allocated
-area. The storage will simply consist in (start,len) which is perfectly suited
-to have slabs. Just like chunks, b_size()==0 can be used to mention that no
-free() must be done on the area. Doing so will make it much simpler to send
-pre-formated messages (eg: error messages) into a buffer because such messages
-will then be stored into a "struct ist" and sending such a message will be as
-simple as doing :
-
- b->area = ist.str;
- b->len = ist.len;
- b->head = 0;
- b->size = 0;
-
-The chunk struct can then be removed and replaced everywhere with a struct
-buffer. Only the functions will remain, though they will likely have to be
-renamed. Maybe the buffer manipulation functions will have to be split between
-those which support wrapping and those which don't (chunks don't support
-wrapping).
-
-The buf_empty structure will then disappear since a small 20-bytes structure
-will be enough to represent an empty buffer.
-
-
-7. Third implementation step
-
-The third step will consist in placing a struct buffer into the struct channel.
-This way no allocation is needed at all, and any storage can be used to deliver
-contents. This allows to trivially upgrade a buffer on the fly by picking from
-a different slab. It also allows to deliver error messages without ever having
-to perform a buffer allocation. Doing so removes the need for the early buffer
-allocation for the response in process_stream(), as it is only needed to have a
-reliable place to send an error message to. This will ensure the buffer
-allocator can be simplified and made more robust against the risk of deadlock
-on memory shortage.
-
-
-8. Caveats
-
-The following points require extra care :
- - there will be some subtracts to figure the buffer "input" length (formerly
- buf->i). In the past it always used to be an unsigned value. Extreme care
- will have to be taken to always use an inline function to compute this so
- that it doesn't accidently become signed.
-
- - supporting buf->size==0 to point to a special string may require some extra
- checks to avoid causing an integer underflow when calculating (size-len) or
- (size-len-head) to figure the available room.
-
- - it is very likely that some further changes will be tempting to do in the
- channel to better integrate the buffer (which becomes very similar to the
- pipe), but we must not go as far as removing the visibility of the "struct
- buffer" because it will be used as entry point for many functions.
-
- - it is likely that a number of the chunk_*, bi_* and bo_* variants have very
- minor variations like return codes or error checking that can make their
- replacement very tricky. Each set of such functions must be studied in
- advance, and their users as well.