Git Product home page Git Product logo

sweeper's Introduction

Sweeper: An Efficient IPv6 scanner for Router Interface Address Discovery

This is a toy implentation of Sweeper, which is inspired by prior outstanding works, like [6Scan]{https://github.com/hbn1987/6Scan.git}, [Yarrp]{https://github.com/cmand/yarrp.git}, [Zmap]{https://github.com/zmap/zmap.git} and so on.

Why do it?

Sweeper can help you fast collect IPv6 router interface address. It works like traceroute6 but in high parallelism. Its main novelity is that Sweeper can dynamically adjust its probing focuses during the process of high-speed asynchronous traceroute6.

How to use?

I write it in a single golang file with relatively few lines of code. Users can customize the running script run.sh to set entire budget (how many packets do you want to use in this probing process, $10^9$ or $10^{10}$ or more?)

But not too large, because Sweeper also follows real-world operating rules. As a scanner, its capability is limited to sending 100,000 packets per second to the internet. Our endeavor is focused on enhancing the value and yield of these limited detection packets. So, it is important not to expect it to aggressively scan the entire IPv6 network's router interface addresses in a very short time.

Sweeper has tried his best!

What is the underlying algorithm?

Its capabilities include randomly exploring multiple IPv6 prefixes with different weights, i.e., the IPv6 prefixes with high historical rewards will be probed more, like reinforment learning.

The weight random sampling is implented with follows:

  1. According to weights (reward rates) of all IPv6 prefixes, Sweeper build Huffman coding tree.

  2. Sweeper generate randomized bit streams and follow them to random walk on the tree from root to leaves.

  3. Repeat it.

Disclaimer

Sweeper is not very complete now, please don't use him directly for production scenes. We disclose it here only to facilitate research on IPv6 network measurements

sweeper's People

Contributors

6seeks avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.