1 of 10

Eclipse Californium

Project Update 2021

IoT WG

2 of 10

Overview

Californium is a powerful CoAP framework targeting back-end services and stronger Internet of Things devices.

It provides a convenient API for RESTful Web services that support all of CoAP's features.

Own eclipse sandbox:

coap://californium.eclipseprojects.io

Supports also coaps, and experimental, coap-tcp, coaps-tcp, and oscore

3 of 10

CoAP - Why?

Because

  • you get 20 for 2.
    • A https request-response pair, including a TLS handshake,
    • requires about 20 IP messages.
    • A coaps request-response pair could be done with 2.
    • That may be a controversy, but in reality it‘s close to that.

  • 2 are much more reliable than 20 can be
    • Assuming that under bad conditions more IP messages will be dropped, a transmission with significant less messages is more reliable.

4 of 10

CoAP – Some Details

  • CoAP may be considered as a binary HTTP over UDP.
  • The textual http-headers are replaced by binary options, that enables to use small messages.
  • It targets to spontaneous transmit a couple of bytes (100-1000).
  • That works much better over UDP than TCP, as long as small messages are used.
  • It supports to exchange more messages or larger application messages, but that‘s not the strength of it.
  • The benefit of spontaneous transmission is usually lost using DTLS.
  • Session Resumption, Session Tickets (not implemented in Californium) and DTLS Connection ID are mitigating or overcome that.

5 of 10

Stats

Initial Code Contribution

Apr 2014

Committers

Mainly 1 active, over all 5 (+/- 0)

Contributors

6 (- 4)

Commits

~2710 2250 (+ 460) (master)

PRs (last month)

12 (merged)

Issues opened (last month)

3

Issues closed (last month)

9

Unique GitHub cloners

44 (+6)

6 of 10

Release Plan – Near Future / Past

Version

Date

Content

2.0.0

December 2019, done!

- 2.6.5

August 2021

  • Bugfixes

3.0.0-M1-M4

April-August 2021

3.0.0

October 2021

  • Code-cleanup, remove deprecated API
  • DTLS graceful-restart
  • Blockwise redesign/cleanup
  • DTLS redesign/cleanup
  • RFC7627 (DTLS Extended Master Secret)
  • RFC7967 (CoAP No Server Response)
  • New Configuration (?, maybe postponed)

7 of 10

Ideas – Left to Contributions

Function

Issue

Content

TCP/TLS

1488

Complete the experimental CoAP over TCP implementation

DTLS 1.3

1337

DTLS 1.3 implementation

RSA

1693

DTLS support for RSA Zertifikates

OCSP

1660

DTLS support for OCSP

8 of 10

Challenges

  • Challenging network environments for UDP
    • Docker, k8s, proxies, NATs
  • None conformant clients,
    • e.g. nonconforming response for rejects
    • long-term operation in dynamic networks without DTLS session management
  • Too less people for too much wishes
    • DTLS 1.3, CoAP over TCP, RSA, OCSP

9 of 10

Cloud

LAN

AMQP 1.0

CoAP(s)

<<Protocol Adapter>>

AMQP 1.0

HTTP

<<Protocol Adapter>>

MQTT

MQTT

AMQP 1.0

BT LE

<<Gateway>>

USB

WiFi

Established Collaboration

AMQP 1.0

HTTP (?)

10 of 10

Cloud

LAN

CoAP(s)

Established Collaboration

HTTP-Proxy2