whatisgithub

What is nettools?

baidu/nettools — explained in plain English

Analysis updated 2026-05-18

52GoAudience · ops devopsComplexity · 4/5LicenseSetup · moderate

In one sentence

A Go toolkit from Baidu for measuring network packet loss, bit-flip errors, and reachability in data centers.

Mindmap

mindmap
  root((nettools))
    What it does
      Measures packet loss
      Detects bit flip errors
      Checks path reachability
    Tech stack
      Go
      UDP
      TCP SYN probing
    Use cases
      Monitor data center link quality
      Run continuous network monitoring
      Check reachability without server setup
    Audience
      Network engineers
      Data center operators

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Measure packet loss between two points in a data center network

USE CASE 2

Detect bit-flip errors where packet bytes are corrupted in transit

USE CASE 3

Run a long-running monitoring process configured with a JSON file

USE CASE 4

Check whether a network path is reachable without deploying anything on the target

What is it built with?

GoUDPTCPIPv6

How does it compare?

baidu/nettoolsdeeix-ai/deeix-chatmitchellh/go-libucl
Stars525056
LanguageGoGoGo
Last pushed2019-03-08
MaintenanceDormant
Setup difficultymoderatehardmoderate
Complexity4/54/52/5
Audienceops devopsops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires deploying both a client and server binary on machines you control.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

So what is it?

nettools is a collection of Go-based network diagnostic tools developed by Baidu's physical network monitoring team. It is designed for large-scale data center environments where you need to measure link quality, find where packet loss is happening, and detect bit-flip errors, cases where packets arrive with some bytes changed. The main tool is bitflip. It runs as a client and server pair: the client sends a high volume of UDP packets per second to the server, which echoes them back unchanged. Both sides independently track loss and bit corruption. By comparing what each side sees, you can tell whether a loss happened on the forward path (client to server) or the return path (server to client). Each packet carries a known salt pattern so both sides can verify whether any bytes were altered in transit. The server auto-registers unknown clients on their first packet, so no pre-configuration is needed on the server side. bitflip6 is the same tool adapted for IPv6 networks. baize is a long-running monitoring version of the same concept. Instead of being configured via command-line flags for a one-time test, it reads a JSON config file and can run both client and server roles in a single process, making it easier to deploy continuously. It includes built-in log rotation, a profiling endpoint, and graceful shutdown handling. Baidu's internal version also supports pulling config from a database and streaming results to Kafka, but the open-source release uses config files and local logs. lidar is a TCP SYN probing tool for checking whether network paths are reachable. It works without deploying anything on the target server, making it useful for quick reachability checks. The toolkit is used at Baidu for inter-cluster monitoring, checking network quality during hardware migrations, testing dedicated carrier lines, and verifying failback paths after network changes. It is released under the MIT license.

Copy-paste prompts

Prompt 1
Help me run bitflip as a client and server pair to test packet loss between two servers
Prompt 2
Explain how baize's JSON config differs from bitflip's command-line flags
Prompt 3
Show me how to use lidar to check if a network path is reachable
Prompt 4
Walk me through interpreting bitflip's loss and corruption results to find which direction has the problem

Frequently asked questions

What is nettools?

A Go toolkit from Baidu for measuring network packet loss, bit-flip errors, and reachability in data centers.

What language is nettools written in?

Mainly Go. The stack also includes Go, UDP, TCP.

What license does nettools use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is nettools to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is nettools for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.