netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Justin Yaple <yaplej@gmail.com>
To: Jan Engelhardt <jengelh@medozas.de>
Cc: netfilter-devel <netfilter-devel@vger.kernel.org>
Subject: Re: Network Acceleration Module vs Service
Date: Fri, 2 Apr 2010 11:20:01 -0700	[thread overview]
Message-ID: <k2m8363055a1004021120yb5016bcar4c01855931b6d3aa@mail.gmail.com> (raw)
In-Reply-To: <alpine.LSU.2.01.1004021313001.18189@obet.zrqbmnf.qr>

> So, what makes it better than ipcomp?

At this point probably nothing, but it is a little different.  After
reading the RFC it looks like ipcomp compresses the entire IP packet
data field while this only compresses TCP segments data field leaving
the majority of the TCP header alone. I do modify the TCP options a
bit.  I looked up how to setup ipcomp, and correct me if I am wrong it
seems to only work on VPN tunnels while this can compress/decompress
any traffic the host is forwarding so it is mesh friendly for MPLS,
Frame Relay, and other meshed WANs.

> That is essentially the definition of coding/compression,
> which you already seem to have (minus one change that you don't
> throw away the dictionary).

Maybe I was not very clear in what these signatures would represent.
They would not be common patterns within the segment data field, but
they would represent an entire TCP segment data field.  When a TCP
segment is sent between two of these hosts they would copy the data
field to the drive, and generate a 40 byte signature composed of a 32
byte SHA-256 base signature, and a 8 byte unique ID.  So a 1400 byte
payload would be replaced by a 40 byte signature when that same data
is transmitted again.  Its effectively substituting the data field for
the signature.  Of course you cannot create signatures for every
possible data field so it would have to use a system to count commonly
sent data, and keep those while allowing the less common ones to be
removed from the system.

> If it is not the case already, devise a mechanism so that userspace gathers
> multiple nfqueued packets at once instead of one-at-a-time.
>  - multi-threading the userspace process might be worth looking into
>  - using NFQUEUE to deliver into separate queues per CPU
>   (so that one CPU does not have to wait for the lock of another)

That is exactly what I was thinking, but was not sure if it was a good
idea or not as I have never tried anything like this.  I was thinking
of using one thread to gather the packets, and assign them to queues
each queue would be processed by a separate worker thread per CPU core
- 1 if there are more than one core.  The thread for gathering the
packets would share the CPU with the rest of the system, and other
processes that might be implemented such as a WCCPv2 client.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

      reply	other threads:[~2010-04-02 18:20 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-02  0:16 Network Acceleration Module vs Service Justin Yaple
2010-04-02 11:23 ` Jan Engelhardt
2010-04-02 18:20   ` Justin Yaple [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=k2m8363055a1004021120yb5016bcar4c01855931b6d3aa@mail.gmail.com \
    --to=yaplej@gmail.com \
    --cc=jengelh@medozas.de \
    --cc=netfilter-devel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).