utp - utp (micro transport protocol) implementation in node

  •        8

utp (micro transport protocol) is a network protocol similar to tcp that runs on top of udp. Since it build on top of udp it can provide great peer to peer connectivity through techniques like hole punching and similar while still providing a stream interface. It is currently the main network protocol powering bittorrent.utp has the same interface as the net module in node.

https://github.com/mafintosh/utp

Dependencies:

cyclist : ~0.1.0

Tags
Implementation
License
Platform

   




Related Projects

libutp - uTorrent Transport Protocol library

  •    C++

Copyright (c) 2010 BitTorrent, Inc. uTP is a TCP-like implementation of LEDBAT documented as a BitTorrent extension in BEP-29. uTP provides reliable, ordered delivery while maintaining minimum extra delay. It is implemented on top of UDP to be cross-platform and functional today. As a result, uTP is the primary transport for uTorrent peer-to-peer connections.

libquic - QUIC, a multiplexed stream transport over UDP

  •    C++

QUIC is an experimental protocol aimed at reducing web latency over that of TCP. On the surface, QUIC is very similar to TCP+TLS+SPDY implemented on UDP. Because TCP is implemented in operating system kernels, and middlebox firmware, making significant changes to TCP is next to impossible. However, since QUIC is built on top of UDP, it suffers from no such limitations. See Chromium QUIC Page for detailed information.

Aeron - Efficient reliable unicast and multicast transport protocol

  •    Java

Aeron is an efficient reliable unicast and multicast transport protocol. The Aeron protocol is designed to be run directly over many different types of transmission media, including shared memory/IPC, InfiniBand/RDMA, UDP, TCP, Raw IP, HTTP, WebSocket, BLE, etc.

torrent - Full-featured BitTorrent client package and utilities

  •    Go

This repository implements BitTorrent-related packages and command-line utilities in Go. The emphasis is on use as a library from other projects. It's been used 24/7 in production by a downstream, private service since late 2014.There is support for protocol encryption, DHT, PEX, uTP, and various extensions. See the package documentation for a more complete list. There are several data storage backends provided: blob, file, and mmap, and you can write your own, such as to store data on S3, or in a database. You can use the provided binaries in ./cmd, or use package torrent as a library for your own applications.

Bulk Transport API and Protocols on UDT

  •    C

This project aims to implement the Bulk Transport API (drafted by the Bulk Transport Working Group, Internet2) and several advanced transport protocols over the UDP-based Data Transfer Protocol (UDT).


Linux Kernel SCTP

  •    C

Stream Control Transmission Protocol (SCTP) is a reliable, message-oriented, multihomed transport protocol. Developed by the IETF SIGTRAN working group to transport SS7 over IP, it is now the third general-purpose transport developed by the IETF.

web-udp-public - Public demand for Web UDP

  •    

This repo is to express public need for a technology to enable server-client low-latency communication, without mandatory reliability and/or ordered delivery mechanics of underlying transport protocol. And shape the requirements from existing needs and potential future applications. To motivate W3C Members, IETF Community and Browser Vendors to start discussion and propose RFC to fuel further development for a solution.

awesome-p2p - List of great p2p resources

  •    

A list of great resources on p2p things. The content here is curated by me, @mafintosh but please open PRs with suggestions.In a distributed system finding other peers interested in the same topic as you is usually an important step.

kite - Micro-service framework in Go

  •    Go

Kite is a framework for developing micro-services in Go. Kite is both the name of the framework and the micro-service that is written by using this framework. Basically, Kite is a RPC server as well as a client. It connects to other kites and peers to communicate with each other. They can discover other kites using a service called Kontrol, and communicate with them bidirectionaly. The communication protocol uses a WebSocket (or XHR) as transport in order to allow web applications to connect directly to kites.

VFER

  •    C

VFER is a functionally reliable, congestion controlled transport level protocol. The project includes an emerging user space implementation in C over udp, detailed specs and a socket like api. VFER is an experimental protocol that uses delay-based cc.

Fiorano ESB - Enterprise Service Bus

  •    Java

Fiorano ESB enables application integration by choreographing Microservices into asynchronous flows via the Fiorano Studio and associated tools. The Component Control Protocol (CCP), a wire-level protocol, allows the asynchronous communication between the ESB server and micro services being choreographed/orchestrated into application flows. The transport is pluggable and any available JMS engine may be used such as Apache ActiveMQ, JBOSS, TIBCO, IBM, RabbitMQ and FioranoMQ.

libsrtp - Library for SRTP (Secure Realtime Transport Protocol)

  •    C

This package provides an implementation of the Secure Real-time Transport Protocol (SRTP), the Universal Security Transform (UST), and a supporting cryptographic kernel. The SRTP API is documented in include/srtp.h, and the library is in libsrtp2.a (after compilation). This document describes libSRTP, the Open Source Secure RTP library from Cisco Systems, Inc. RTP is the Real-time Transport Protocol, an IETF standard for the transport of real-time data such as telephony, audio, and video, defined by RFC 3550. Secure RTP (SRTP) is an RTP profile for providing confidentiality to RTP data and authentication to the RTP header and payload. SRTP is an IETF Standard, defined in RFC 3711, and was developed in the IETF Audio/Video Transport (AVT) Working Group. This library supports all of the mandatory features of SRTP, but not all of the optional features. See the Supported Features section for more detailed information.

hemera - 🔬 Writing reliable & fault-tolerant microservices with https://nats.io

  •    Javascript

Hemera (/ˈhɛmərə/; Ancient Greek: Ἡμέρα [hɛːméra] "day") is a small wrapper around the NATS driver. NATS is a simple, fast and reliable solution for the internal communication of a distributed system. It chooses simplicity and reliability over guaranteed delivery. We want to provide a toolkit to develop micro services in an easy and powerful way. We provide a pattern matching RPC style. You don't have to worry about the transport. NATS is powerful.Hemera has not been designed for high performance on a single process. It has been designed to create lots of microservices doesn't matter where they live. It choose simplicity and reliability as primary goals. It act together with NATS as central nervous system of your distributed system. Transport independency was not considered to be a relevant factor. In addition we use pattern matching which is very powerful. The fact that Hemera needs a broker is an argument which should be taken into consideration when you compare hemera with other frameworks. The relevant difference between microservice frameworks like senecajs, molecurer is not the performance or modularity its about the complexity you need to manage. Hemera is expert in providing an interface to work with lots of services in the network, NATS is the expert to deliver the message at the right place. Hemera is still a subscriber of NATS with some magic in routing and extensions. We don't have to worry about all different aspects in a distributed system like routing, load-balancing, service-discovery, clustering, health-checks ...

dog-tunnel - p2p tunnel,(udp mode work with kcp,https://github.com/skywind3000/kcp)

  •    Go

p2p tunnel,(udp mode work with kcp,https://github.com/skywind3000/kcp)

BrainPunch

  •    

BrainPunch is a p2p protocol based on the peer/tracker system known from BitTorrent. It uses UDP hole punching to establish connections between peers behind a NAT firewall.

HeavyMole

  •    C++

HeavyMole is an ambitious file sharing and communication application (P2P). Main features are: advanced UDP based communication protocol, distributed handling of queries, advanced query language, filtering of answers, distributed chat,...

Tcl BEEP Core

  •    Perl

P2P application protocol framework (RFC3080, RFC3081) for connection-oriented, async request/response messages. Allows multiplexing of message streams over one transport connection. Supports binary and textual messages, TLS, and SASL.

socket.io-p2p

  •    Javascript

This module provides an easy and reliable way to setup a WebRTC connection between peers and communicate using events (the socket.io-protocol). Socket.IO is used to transport signalling data and as a fallback for clients where WebRTC PeerConnection is not supported.

UDP Transport

  •    

This is an attempt at implementation of WCF UDP transport compliant with soa.udp OASIS Standard