Nmap Development mailing list archives

Re: Call for testers: poll and kqueue-based nsock engines


From: Henri Doreau <henri.doreau () gmail com>
Date: Tue, 18 Sep 2012 12:58:20 +0200

2012/8/8 Henri Doreau <henri.doreau () gmail com>:
Hello,

The aim of the nsock-engine subsystem was to let most supported OS
leverage the high performance I/O notification facilities they have,
without breaking compatibility between them[1].

So far, only Linux benefits it, with a epoll-based engine (see
nsock/src/engine_epoll.c). Other operating systems fallback on the old
select(2) engine.

I developed two new engines, that (should) bring improvements to a
handful of OS's.

The first one is based on poll(2). It should basically work everywhere
(even on windows!). Its efficiency is similar to select() but it
doesn't suffer any hardcoded limit of manageable sockets. On windows,
some others and unrelated scalability limitations have been
highlighted recently[2], but I decided to leave the compatibility
code.

The second one is based on kqueue(2), which BSDs usually provide
(i.e.: Mac OS, FreeBSD, OpenBSD and NetBSD, to the best of my
knowledge). This engine, with FreeBSD, has shown very good
performances during my tests.

You can get the code at: https://svn.nmap.org/nmap-exp/henri/nsock-newengines

Once compiled you can use --nsock-engine=poll (almost everywhere I
guess) and --nsock-engine=kqueue (on BSDs) in nmap, nping and ncat to
enforce the use of a specific engine. Note that not all nmap phases
use nsock (typically: simple port scanning doesn't, version and script
scan do).

Feedback welcome!

Regards.

[1] http://seclists.org/nmap-dev/2011/q3/143
[2] http://seclists.org/nmap-dev/2012/q3/190


Hello,

any opinion on this? I'd like to merge it at some point if there's an
agreement on it. For the sake of stability, the earlier in the release
cycle the better.

Regards.

-- 
Henri
_______________________________________________
Sent through the nmap-dev mailing list
http://cgi.insecure.org/mailman/listinfo/nmap-dev
Archived at http://seclists.org/nmap-dev/


Current thread: