Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #32201 > unrolled thread

Blitzping: A very high-speed, configurable, and portable packet-crafting utility optimized for embedded devices

Started byFereydoun Memarzanjany <thraetaona@ieee.org>
First post2024-08-23 11:04 -0600
Last post2026-05-15 21:44 +0000
Articles 5 — 4 participants

Back to article view | Back to comp.arch.embedded


Contents

  Blitzping: A very high-speed, configurable, and portable packet-crafting utility optimized for embedded devices Fereydoun Memarzanjany <thraetaona@ieee.org> - 2024-08-23 11:04 -0600
    Re: Blitzping: A very high-speed, configurable, and portable packet-crafting utility optimized for embedded devices rek2 hispagatos <rek2@hispagatos.org.invalid> - 2024-08-23 18:00 +0000
    Re: Blitzping: A very high-speed, configurable, and portable packet-crafting utility optimized for embedded devices David Brown <david.brown@hesbynett.no> - 2024-08-27 11:22 +0200
      Re: Blitzping: A very high-speed, configurable, and portable packet-crafting utility optimized for embedded devices Fereydoun Memarzanjany <thraetaona@ieee.org> - 2024-08-29 15:53 -0600
    Re: Blitzping: A very high-speed, configurable, and portable packet-crafting utility optimized for embedded devices kalevi@kolttonen.fi (Kalevi Kolttonen) - 2026-05-15 21:44 +0000

#32201 — Blitzping: A very high-speed, configurable, and portable packet-crafting utility optimized for embedded devices

FromFereydoun Memarzanjany <thraetaona@ieee.org>
Date2024-08-23 11:04 -0600
SubjectBlitzping: A very high-speed, configurable, and portable packet-crafting utility optimized for embedded devices
Message-ID<vaaffd$vsfr$1@dont-email.me>
https://github.com/Thraetaona/Blitzping

Hello!

I've been working on Blitzping for the past few weeks. Blitzping is an 
open-source (GPLv3.0+) packet-crafting and sending utility designed to 
be much faster, more portable, and more configurable than existing tools 
like nping and hping3.

Developed with embedded devices in mind, Blitzping operates with 
bare-minimum dependencies, requiring only POSIX.1-2001 Berkeley sockets 
(without any non-standard BSD-, GNU-, SysV, or XSI-specific extensions); 
this makes it highly portable to low-power MIPS- and ARM-based routers. 
The codebase uses C11 syntax (e.g., anonymous structs and comma lists) 
but without any hard dependency on actual C11 headers; it can compile 
under C99 just fine. Additionally, seeing how standard-nonconformance 
resulted in hping3's source code failing to compile under new compilers 
without requiring manual patches, Blitzping's source code gets compiled 
under "-Wall -Wextra -Werror -pedantic-errors" by default.

Other than giving the user more control over editing all parts 
(including the reserved bits, unlike hping3/nping) of their packets, 
Blitzping also introduces several unique performance optimizations: 
pre-generating and buffering packets, multithreading, using asynchronous 
sockets, and using vectored I/O to minimize system calls. These 
optimizations enable Blitzping to significantly outperform its 
counterparts, achieving up to millions of (40-byte) packets per second 
even on underpowered ARM-based systems.

Shown below are comparisons between Blitzping, hping3, and nping across 
two CPUs running OpenWrt GNU/Linux v23.05.03 (more details in the linked 
repository https://github.com/Thraetaona/Blitzping):

   #      Quad-Core "Rockchip RK3328" CPU @ 1.3 GHz. (ARMv8-A)        #
   +--------------------+--------------+--------------+---------------+
   | ARM (4 x 1.3 GHz)  | nping        | hping3       | Blitzping     |
   +--------------------+ -------------+--------------+---------------+
   | Num. Instances     | 4 (1 thread) | 4 (1 thread) | 1 (4 threads) |
   | Pkts. per Second   | ~65,000      | ~80,000      | ~3,150,000    |
   | Bandwidth (MiB/s)  | ~2.50        | ~3.00        | ~120          |
   +--------------------+--------------+--------------+---------------+

   # Single-Core "Qualcomm Atheros QCA9533" SoC @ 650 MHz. (MIPS32r2) #
   +--------------------+--------------+--------------+---------------+
   | MIPS (1 x 650 MHz) | nping        | hping3       | Blitzping     |
   +--------------------+--------------+--------------+---------------+
   | Num. Instances     | 1 (1 thread) | 1 (1 thread) | 1 (1 thread)  |
   | Pkts. per Second   | ~5,000       | ~10,000      | ~420,000      |
   | Bandwidth (MiB/s)  | ~0.20        | ~0.40        | ~16           |
   +--------------------+--------------+--------------+---------------+

In terms of protocol support, as of the time of writing, the IPv4 
interface is complete and the TCP frontend is almost finished, too. 
Afterward, I will be adding IPv6, UDP, and ICMP support.

(There's also an entry in the FSF directory for Blitzping: 
https://directory.fsf.org/wiki/Blitzping)

[toc] | [next] | [standalone]


#32202

Fromrek2 hispagatos <rek2@hispagatos.org.invalid>
Date2024-08-23 18:00 +0000
Message-ID<vaaio9$mnes$1@matrix.hispagatos.org>
In reply to#32201
On 2024-08-23, Fereydoun Memarzanjany <thraetaona@ieee.org> wrote:
> https://github.com/Thraetaona/Blitzping
>
> Hello!
>
> I've been working on Blitzping for the past few weeks. Blitzping is an 
> open-source (GPLv3.0+) packet-crafting and sending utility designed to 
> be much faster, more portable, and more configurable than existing tools 
> like nping and hping3.
>

Very cool! thank you!


Happy Hacking
ReK2

[toc] | [prev] | [next] | [standalone]


#32204

FromDavid Brown <david.brown@hesbynett.no>
Date2024-08-27 11:22 +0200
Message-ID<vak5sj$2tsqj$1@dont-email.me>
In reply to#32201
On 23/08/2024 19:04, Fereydoun Memarzanjany wrote:
> https://github.com/Thraetaona/Blitzping
> 
> Hello!
> 
> I've been working on Blitzping for the past few weeks. Blitzping is an 
> open-source (GPLv3.0+) packet-crafting and sending utility designed to 
> be much faster, more portable, and more configurable than existing tools 
> like nping and hping3.
> 
<snip>
> 
> In terms of protocol support, as of the time of writing, the IPv4 
> interface is complete and the TCP frontend is almost finished, too. 
> Afterward, I will be adding IPv6, UDP, and ICMP support.
> 
> (There's also an entry in the FSF directory for Blitzping: 
> https://directory.fsf.org/wiki/Blitzping)

Thanks for this!

I can see this tool being useful for stress-testing some of my embedded 
systems (with Blitzping running on a PC).  I'll keep a note of it for 
later use.

Do you foresee this being added to the standard Debian repositories, to 
reach a wider audience?

[toc] | [prev] | [next] | [standalone]


#32207

FromFereydoun Memarzanjany <thraetaona@ieee.org>
Date2024-08-29 15:53 -0600
Message-ID<vaqqkl$4vhp$1@dont-email.me>
In reply to#32204
On 8/27/2024, David Brown wrote:
> 
> Thanks for this!
> 
> I can see this tool being useful for stress-testing some of my embedded 
> systems (with Blitzping running on a PC).  I'll keep a note of it for 
> later use.
> 
> Do you foresee this being added to the standard Debian repositories, to 
> reach a wider audience?
> 

You're welcome!

Yes, I do want to eventually add it to various package repositories 
(including Debian's); I am waiting for the project to get to a stable 
and feature-complete milestone before submitting it there, however.

[toc] | [prev] | [next] | [standalone]


#32533

Fromkalevi@kolttonen.fi (Kalevi Kolttonen)
Date2026-05-15 21:44 +0000
Message-ID<10u8440$i60g$1@dont-email.me>
In reply to#32201
In comp.unix.misc Fereydoun Memarzanjany <thraetaona@ieee.org> wrote:
> I've been working on Blitzping for the past few weeks. Blitzping is an 
> open-source (GPLv3.0+) packet-crafting and sending utility designed to 
> be much faster, more portable, and more configurable than existing tools 
> like nping and hping3.

I have no use for this software, but the statistics you provided are
impressive indeed. Your application's performance beats the
competition hands down. 

Not that I doubt any of the statistics, but it is a bit difficult to
believe how this is even possible. The difference is absolutely
mind-blowing.

br,
KK

[toc] | [prev] | [standalone]


Back to top | Article view | comp.arch.embedded


csiph-web