0

我正在使用 Californium-Scandium 演示应用项目探索 DTLS 1.2。看来 Scandium-core README.md支持DTLS 1.2的连接标识符的最新草案。根据DTLS 1.2 的连接标识符,如果客户端和服务器想要基于连接 ID 进行交谈,则 CID 交换发生在客户端和服务器之间。 在此处输入图像描述 当我运行Scandium Server & Scandium Client的演示应用程序时,我无法看到客户端和服务器之间发生的 CID 交换。虽然我可以在客户端以及 DTLS 的服务器端看到连接 ID 生成。我在Record.java中添加了记录器但记录器中的连接 ID 始终为空。我的问题是 DTLS 服务器和 DTLS 客户端之间的 CID 交换逻辑是否在 scandium-core API 中实现?如果是,请帮助我找出用于此的类。

4

1 回答 1

0

对于 2.6.0 版本,ExampleDTLSClient 和 ExampleDTLSServer 都不是“开箱即用”启用 CID 的(但我会为 3.0 更改它:-))。

如果您想看到“开箱即用”,请使用“cf-secure”演示。使用“CID:0”启动客户端以表示“支持 CID”,使用“CID:6”启动服务器以使用 6 字节 CID。

要为 ExampleDTLSClient 和 ExampleDTLSServer 启用 CID,请在 DtlsConfigurationBuilder 中添加

builder.setConnectionIdGenerator(new SingleNodeConnectionIdGenerator(cidLength));

客户端使用 cidLength 0(支持),服务器使用 6(使用 6 个字节)。

于 2021-02-17T13:16:02.617 回答