1 of 10

Eclipse Californium

Project Update 2022

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

Cloud-Server demos with cloud-init and k8s

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 (+/- 0)

Commits

~3206 2820 (+ 380) (main)

PRs (last month)

9 (merged)

Issues opened (last month)

5

Issues closed (last month)

3

Unique GitHub cloners (last 14 days)

237

6 of 10

Release Plan – Near Future / Past

Version

Date

Content

- 2.7.4

September 2022

Bugfixes

(Please consider to migrate to 3.7.0 !)

3.0.0

November 2021

First 3.0 release

- 3.7.0

September 2022

Bugfixes

Partial API cleanup

?.?.?

Basic setup for cloud coaps server

Basic coap-to-S3 proxy

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

OCSP

1660

DTLS support for OCSP

Observe/Notify

1727

Graceful shutdown, persistence

???

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 many wishes
    • DTLS 1.3, CoAP over TCP, 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

LTE-M/NB-IoT

DTLS 1.2 CID

(Eclipse/tinydtls)

CoAP(s)

Established Collaboration

S3-Proxy