dtls 支持
现在libhv有tls支持但是缺官方dtls支持 是否有考虑过官方dtls支持
现在用应用层做的dtls就得改成mem_bio的形式才能用比较麻烦 而官方udp是所有服务都采用同一个fd ,openssl 下面 ssl_read 函数调用 recvfrom fd的形式实现 当同时接到多个dtls client数据时 openssl做连续解析 两条不同client的密文必然会解密失败
还没详细研究过openssl dtls用法,如果你集成dtls功能到hv了,欢迎提PR
正在施工openssl-dtls
我看了下openssl-dtls的实现的部分代码,感觉这种不太行呀,至少不能跨平台,只能linux上用。感觉应该每个client来了,server端要创建一个ssl,然后关键是管理这些ssl的生命周期不太好弄。
我看了下openssl-dtls的实现的部分代码,感觉这种不太行呀,至少不能跨平台,只能linux上用。感觉应该每个client来了,server端要创建一个ssl,然后关键是管理这些ssl的生命周期不太好弄。
跨平台会出什么问题 每个ssl每个连接就应该是独立的 client来了 不应该创建server 么 生命周期确实有问题 没想好怎么搞 ,现在就跟这原来udp的逻辑去了 然后加了dtls远程关闭 其实应该加定时的啥的
我看了下openssl-dtls的实现的部分代码,感觉这种不太行呀,至少不能跨平台,只能linux上用。感觉应该每个client来了,server端要创建一个ssl,然后关键是管理这些ssl的生命周期不太好弄。
跨平台会出什么问题 每个ssl每个连接就应该是独立的 client来了 不应该创建server 么 生命周期确实有问题 没想好怎么搞 ,现在就跟这原来udp的逻辑去了 然后加了dtls远程关闭 其实应该加定时的啥的
1 我看实现是每个client来了,server就创建一个socket然后bind,这种windows,macos应该不支持,因为他们不支持多个udpsocket绑定同一个端口。 2 dtls的ssl的管理不应该libhv库的内部通过定时器判定是否需要close,因为普通udp server可能是通过应用层保存peer地址,然后由用户判断什么时候应该关闭。所以dtls应该也一样,ssl的管理应该交予用户。但是这样就会比较麻烦了。
我看了下openssl-dtls的实现的部分代码,感觉这种不太行呀,至少不能跨平台,只能linux上用。感觉应该每个client来了,server端要创建一个ssl,然后关键是管理这些ssl的生命周期不太好弄。
跨平台会出什么问题 每个ssl每个连接就应该是独立的 client来了 不应该创建server 么 生命周期确实有问题 没想好怎么搞 ,现在就跟这原来udp的逻辑去了 然后加了dtls远程关闭 其实应该加定时的啥的
1 我看实现是每个client来了,server就创建一个socket然后bind,这种windows,macos应该不支持,因为他们不支持多个udpsocket绑定同一个端口。 2 dtls的ssl的管理不应该libhv库的内部通过定时器判定是否需要close,因为普通udp server可能是通过应用层保存peer地址,然后由用户判断什么时候应该关闭。所以dtls应该也一样,ssl的管理应该交予用户。但是这样就会比较麻烦了。
不行的话只能完全用mem_bio了 这个就是比较难看 数据互转 , 不过这个就比较通用 给其他mbedtls也好改 现在那个timer只用在dtls连接阶段 ssl确实应该交给客户 就算dtls ssl 被远程关闭 也要等客户hio_close之后再关闭 然后再释放资源
嗯,目前只能基于udp的read_cb把buf读到后再用bio_write写道rbio,dtls这协议就不适合并发。