networks - doubility-sky/daydayup GitHub Wiki
A computer network is a digital telecommunications network for sharing resources between nodes, which are computing devices that use a common telecommunications technology. Data transmission between nodes is supported over data links consisting of physical cable media, such as twisted pair or fiber-optic cables, or by wireless methods, such as Wi-Fi, microwave transmission, or free-space optical communication.
Learn
- Computer Networks: A Systems Approach A free ebook. Built upon the source from SystemsApproach/book. Read online https://book.systemsapproach.org
- The C10K problem
- Beej's Guide to Network Programming - read online
misc
TCP/IP
- TCP/IP Illustrated
- tcpdump
- Tornado - ioloop.py
- Linux source
- XNU source
- TCP Hybla
- TCP 的那些事儿(上), TCP 的那些事儿(下)
- TIME_WAIT and its design implications for protocols and scalable client server systems
- TCP TIME-WAIT state on busy Linux servers
- anonymous - 网络传输: 浙江温州皮鞋湿,下雨进水不会胖。
HTTP
- HTTP: The Definitive Guide
- HTTP/1.1
- HTTP/2 draft
- High Performance Browser Networking
- HTTP/2 explained
- HTTP/3 explained
- 我的HTTP/3学习笔记
- 解读HTTP/2 及 HTTP/3特性
- HTTP的前世今生
- tinyhttpd
- HTTPie (pronounced aitch-tee-tee-pie) is a command line HTTP client. Its goal is to make CLI interaction with web services as human-friendly as possible. It provides a simple http command that allows for sending arbitrary HTTP requests using a simple and natural syntax, and displays colorized output. HTTPie can be used for testing, debugging, and generally interacting with HTTP servers.
- whistle HTTP, HTTP2, HTTPS, Websocket debugging proxy https://wproxy.org/
WebSocket
- RFC 6455 - The WebSocket Protocol
- WebSocket协议:5分钟从入门到精通
- WebSocket 协议深入探究
- Gorilla WebSocket is a Go implementation of the WebSocket protocol.
Socket
KCP
- ⚡ KCP - A Fast and Reliable ARQ Protocol
- kcp-go - A crypto-secure Reliable-UDP library for Golang with FEC support.
- 可靠 UDP,KCP 协议快在哪?
Libraries
- gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services.
Tools
- 如何用Linux命令行管理网络:11个你必须知道的命令
- mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool.
- iperf3 : A TCP, UDP, and SCTP network bandwidth measurement tool
- curl A command line tool and library for transferring data with URL syntax, supporting HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features https://curl.haxx.se/
- comcast Simulating shitty network connections so you can build better systems.
- Netdata is distributed, real-time, performance and health monitoring for systems and applications. It is a highly-optimized monitoring agent you install on all your systems and containers.
- echoip: A simple service for looking up your IP address. This is the code that powers https://ifconfig.co.
curl ip.gs- other services:
curl myip.ipip.net curl ip.sb curl ipinfo.io/ip curl icanhazip.com curl ipecho.net/plain
proxy
- nginx
- frp is a fast reverse proxy that allows you to expose a local server located behind a NAT or firewall to the Internet. It currently supports TCP and UDP, as well as HTTP and HTTPS protocols, enabling requests to be forwarded to internal services via domain name. frp also offers a P2P connect mode.
tunnel
- gost, GO Simple Tunnel - a simple tunnel written in golang
- kcptun - A quantum-safe, secure tunnel built on QPP, KCP, FEC, and multiplexing.
analyzer
- Wireshark Wireshark is a network traffic analyzer, or "sniffer", for Linux, macOS, *BSD and other Unix and Unix-like operating systems and for Windows. It uses Qt, a graphical user interface library, and libpcap and npcap as packet capture and filtering libraries. https://www.wireshark.org/
- clumsy makes your network condition on Windows significantly worse, but in a controlled and interactive manner. http://jagt.github.io/clumsy/
download
- aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. https://aria2.github.io/
- webui-aria2 The aim for this project is to create the worlds best and hottest interface to interact with aria2. Very simple to use, just download and open index.html in any web browser.
- qBittorrent is a bittorrent client programmed in C++ / Qt that uses libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg. https://www.qbittorrent.org/
- Search plugins for the search feature
- Download whole website
wget -r -p -np -k https://golang.org/
Resources
- Awesome Networking, A curated list of awesome networking libraries, resources and shiny things.