The Remoting library provides APIs which allow custom communication protocols to be implemented.
This section describes only the protocols available within the remoting library.
This section lists all actively maintained protocols offered in Remoting. There may be other actively maintained protocols in other Jenkins and 3rd-party components.
- Introduced in: Remoting 3.0, JENKINS-36871
This protocol uses the SSLEngine
provided by the Java Cryptography Architecture
to perform a TLS upgrade of the plaintext connection before any connection secrets are exchanged.
The subsequent connection is then secured using TLS.
The encryption algorithms and cyphers used by the SSLEngine
when using Oracle JDK 1.8
are described in Java Cryptography Architecture Standard Algorithm Name Documentation for JDK 8)
If stronger algorithms are needed (for example, AES with 256-bit keys), the JCE Unlimited Strength Jurisdiction Policy Files
can be obtained on Oracle website and installed in the JDK/JRE.
Protocol uses non-blocking I/O wherever possible which removes the performance bottleneck of the JNLP3-connect
protocol.
- Introduced in: Remoting version 4.0, JEP-222
- At initial release, this protocol is considered a beta release and has not yet undergone extensive testing.
Uses WebSocket over an HTTP(S) port to handle handshakes, encryption, framing, etc.
- Remoting Kafka Plugin uses Kafka as fault-tolerant communication layer to support command invocation between Jenkins controller and agent.
- The plugin gets rid of current direct TCP connection between controller and agent.
- More info can be found in the technical documentation of the plugin.