Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8934029
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T09:41:28+00:00 2026-06-15T09:41:28+00:00

Background There is a well-known tool called Wireshark . I’ve been using it for

  • 0

Background

There is a well-known tool called Wireshark. I’ve been using it for ages. It is great, but performance is the problem. Common usage scenario includes several data preparation steps in order to extract a data subset to be analyzed later. Without that step it takes minutes to do filtering (with big traces Wireshark is next to unusable).

enter image description here

The actual idea is to create a better solution, fast, parallel and efficient, to be used as a data aggregator/storage.

Requirements

The actual requirement is to use all power provided by modern hardware. I should say there is a room for different types of optimization and I hope I did a good job on upper layers, but technology is the main question right now. According to the current design there are several flavors of packet decoders (dissectors):

  • interactive decoders: decoding logic can be easily changed in runtime. Such approach can be quite useful for protocol developers — decoding speed is not that critical, but flexibility and fast results are more important
  • embeddable decoders: can be used as a library.This type is supposed to have good performance and be flexible enough to use all available CPUs and cores
  • decoders as a service: can be accessed through a clean API. This type should provide best of the breed performance and efficiency

Results

My current solution is JVM-based decoders. The actual idea is to reuse the code, eliminate porting, etc, but still have good efficiency.

  • Interactive decoders: implemented on Groovy
  • Embeddable decoders: implemented on Java
  • Decoders as a service: Tomcat + optimizations + embeddable decoders wrapped into a servlet (binary in, XML out)

Problems to be solved

  • Groovy provides way to much power and everything, but lucks expressiveness in this particular case
  • Decoding protocol into a tree structure is a dead end — too many resources are simply wasted
  • Memory consumption is somewhat hard to control. I did several optimizations but still not happy with profiling results
  • Tomcat with various bells and whistles still introduces to much overhead (mainly connection handling)

Am I doing right using JVM everywhere? Do you see any other good and elegant way to achieve the initial goal: get easy-to-write highly scalable and efficient protocol decoders?

The protocol, format of the results, etc are not fixed.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-15T09:41:29+00:00Added an answer on June 15, 2026 at 9:41 am

    I’ve found several possible improvements:

    Interactive decoders

    Groovy expressiveness can be greatly improved, by extending Groovy syntax using
    AST Transformations. So it would be possible to simplify decoders authoring still providing good performance. AST (stands for Abstract Syntax Tree) is a compile-time technique.

    When the Groovy compiler compiles Groovy scripts and classes, at some
    point in the process, the source code will end up being represented in
    memory in the form of a Concrete Syntax Tree, then transformed into an
    Abstract Syntax Tree. The purpose of AST Transformations is to let
    developers hook into the compilation process to be able to modify the
    AST before it is turned into bytecode that will be run by the JVM.

    I do not want to reinvent the wheel introducing yet another language to define/describe a protocol structure (it is enough to have ASN.1). The idea is to simplify decoders development in order to provide some fast prototyping technique. Basically, some kind of DSL is to be introduced.

    Further reading

    Embeddable decoders

    Java can introduce some additional overhead. There are several libraries to address that issue:

    • HPPC
    • Trove
    • Javolution
    • Commons-primitives

    enter image description here

    Frankly speaking I do not see any other option except Java for this layer.

    Decoders as a service

    No Java is needed on this layer. Finally I have a good option to go but price is quite high. GWan looks really good.

    enter image description here

    Some additional porting will be required, but it is definitely worth it.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

there is the simple well-known way of preloading images with a fixed-positioned div outside
I'm using the well-known pattern to create an UIImage from an UIView : +
Background: There are multiple DBPArentProductKEys associated with a POG.ID. I need to count the
background: - there are formal languages for expressing programming language valid lexicon and syntax
When a span is nested in a div with a different background there's a
in code behind we set the imagepath of window background ,is there any way
I have an Ul of item. I want to alternate there background color here
Is there away to set a background image on a webpage when the webpage
Is there any way to set a background view on a UITableViewController? I try
is there a way to change the background color of a QTextBlock in a

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.