[ntar-workers] On Markers and Bookmarks
Jose M. Gonzalez
chema at cs.berkeley.edu
Thu Jun 30 20:32:14 GMT 2005
Loris Degioanni wrote:
> I like the FF/REW blocks idea, and it should be quite simple to
> implement. However, do you really think that repeating interface blocks
> will be a big overhead or performance hit? It's really not cler to me.
It depends on the distance you want between consecutive FF/REW blocks.
If you plan to have just a few packets in the middle, repeating the IDBs
is probably not justifiable.
Regards.
-Chema
PS: I'm adding a more clear argument on the FF/REW issue, which I missed
yesterday.
One of the things I like about the new format is that it permits
navigating traces in both directions.
With the old format, the only possible navigation method (again w/o
considering tcpslice's hack) is "go to next packet." It was implemented
using the caplen field in the pcap header (4 bytes per packet). You have
to provide at least one navigation method, and sequential-forward seems
clearly the most useful one.
/------------\ /----->
| ||
+-|------+------+v|------+------+----
| header | data | header | data | ...
+--------+------+--------+------+----
In the new format, we recognize other navigation methods are desirable.
One is "go to the previous packet." You need at least another pointer,
which in the current Draft is the second "Block Total Length" field. The
cost is another 4 bytes per packet.
/-----------------\ /----------------\
| | | |
+----+|----+------+-----++v---+|----+------+----++v---+----
| BT | BTL | data | BTL || BT | BTL | data | BT || BT | ...
+^---+-----+------+|----++^---+-----+------+|---++----+----
| | | |
\---------------/ \---------------/
Yet another navigation method requires adding fast paths to navigate the
trace. This can be done with the FF/REW marker blocks, or 16 bytes per
marker. What constitutes a "fast path," though, depends on the use. You
may want to tradeoff space for availability, and therefore set an FF/REW
pair every 10 packets. In this case, you don't want to repeat the IDBs
after each FF/REW.
Actually, I'm thinking that you may want to have several parallel FF/REW.
For example, one that advances 100 packets, another that advances 10K
packets, and so on (note that this numbers will be approximate, as the
FF must chose in advance the offset that will correspond to the 100/10K
packets). [Figure only represents forward path]
/-----------\ /-\ /--\ /-\ /-\ /-\ /--\ /-\ /->
| || || || || || || || ||
+|------------+v|--+v|---+v|--+v|--+|---+|----+|---+|---+----
| PacketBlock | PB | REW | FF | PB | PB | REW | FF | PB | ...
+-------------+----+-----+^|--+----+----+-----+^|--+----+----
|| ||
---------------/ \-----------------/ \---->
Note: this is not indexing at all. I agree with Christian that indexing
is better done offline, in a separate file. The FF/REW approach is only a
method for quick sequential navigation.
More information about the ntar-workers
mailing list