Keywords:Networking, Libraries & Frameworks & Tools & Documents Notes

Networking Layer

Cross-platform asynchronous I/O
https://github.com/libuv/libuv

RakNet is a cross platform, open source, C++ networking engine for game programmers.
https://github.com/facebookarchive/RakNet

HTTP

nginx-1.9.2源码通读分析注释,带详尽函数中文分析注释以及相关函数流程调用注释,最全面的nginx源码阅读分析中文注释,更新完毕。
https://github.com/y123456yz/reading-code-of-nginx-1.9.2

WebSocket

基于C/C++的WebSocket库
https://blog.gmem.cc/websocket-library-for-c-or-cpp

Rollback - Input Prediction

Good Game, Peace Out Rollback Network SDK
https://github.com/pond3r/ggpo

Reliable UDP

KCP - A Fast and Reliable ARQ Protocol
https://github.com/skywind3000/kcp

Lite reliable UDP library for Mono and .NET
https://github.com/RevenantX/LiteNetLib

ENet reliable UDP networking library
https://github.com/lsalzman/enet

Tunnel

A rule-based tunnel in Go.
https://github.com/Dreamacro/clash

Proxy

A UDP to TCP proxy server for sending HTTP requests with zero roundtrips.
https://github.com/TimeToogo/ff-proxy

Web Server

Mongoose Embedded Web Server Library - Mongoose is more than an embedded webserver. It is a multi-protocol embedded networking library with functions including TCP, HTTP client and server, WebSocket client and server, MQTT client and broker and much more.
https://github.com/cesanta/mongoose
https://www.cesanta.com/mongoose-library.html

WebRTC

WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
https://webrtc.googlesource.com/

webrtc source code from chromium.
https://github.com/JumpingYang001/webrtc

A reference gradle project that let you explore WebRTC Android in Android Studio.
https://github.com/HackWebRTC/webrtc

Open WebRTC Toolkit (OWT) is an end to end audio/video communication development toolkit based on WebRTC, which is used to create high-performance, reliable, and scalable real-time communication solutions.
https://github.com/open-webrtc-toolkit

Web-based Cloud Gaming service for Retro Game
https://github.com/giongto35/cloud-game

libwebrtc binaries ( Recommended )
https://github.com/crow-misia/libwebrtc-bin

WebRTC Build Tool for iOS/Android ( Recommended )
https://github.com/shiguredo/shiguredo-webrtc-build

Google’s WebRTC implementation in a single static library.I changed some things, make it could build M70 webrtc with h264.( Recommended )
https://github.com/BeiKeJieDeLiuLangMao/libwebrtc-m70

Update WebRTC version to m72. ( Recommended )
https://github.com/cloudwebrtc/libwebrtc-build

WebRTC dynamic library wrapper for flutter desktop plugin. https://github.com/flutter-webrtc/libwebrtc

Google’s WebRTC implementation in a single static library. https://github.com/aisouard/libwebrtc

Janus WebRTC Server ( Recommended )
https://github.com/meetecho/janus-gateway

Amazon Kinesis Video Streams Webrtc SDK is for developers to install and customize realtime communication between devices and enable secure streaming of video, audio to Kinesis Video Streams.
https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c

Issues

WebSocket Issues: error on reading from skt : 10054

Error code on server:

error on reading from skt : 10054

Caused by:
Client disconnected from server.

Benchmark

WebSocket vs. TCP

WebSockets performs quite well, with an average round trip time of about 20 microseconds (0.02 milliseconds), but straight up TCP still beats it handily, with an average round trip time of about 2 microseconds (0.002 milliseconds), an order of magnitude less.

WebSockets vs. Regular Sockets
https://medium.com/kifi-engineering/websockets-vs-regular-sockets-b3b8e7ea0708

Blogs

TCP Block

BBR, the new kid on the TCP block
https://blog.apnic.net/2017/05/09/bbr-new-kid-tcp-block/

TCP 拥塞避免算法
https://www.toutiao.com/i6829857789427319307/


Is man merely a mistake of God's? Or God merely a mistake of man? ― Friedrich Nietzsche