【发布时间】:2016-04-30 17:41:23
【问题描述】:
您好,我正在使用 C# 开发服务器/客户端项目,该项目同时使用 TCP(用于登录和其他内容)和 UDP(用于流式语音)。问题是我需要将 sslStream 用于 UDP,但据我所知,不可能使用无保证的协议进行 SSL 身份验证。那么有没有办法使用 TCP 进行身份验证,然后使用 sslStream 进行 UDP?
【问题讨论】:
您好,我正在使用 C# 开发服务器/客户端项目,该项目同时使用 TCP(用于登录和其他内容)和 UDP(用于流式语音)。问题是我需要将 sslStream 用于 UDP,但据我所知,不可能使用无保证的协议进行 SSL 身份验证。那么有没有办法使用 TCP 进行身份验证,然后使用 sslStream 进行 UDP?
【问题讨论】:
对C#和sslStream不太了解,但是:UDP是一种数据报协议,它不保证数据包的传递、顺序甚至会导致重复传递。相反,TCP 是一种流协议,可以保证交付等。TLS 仅在 TCP 之类的协议之上工作,而不是在 UDP 之上。
对于 UDP,您需要改用 DTLS。根据Wikipedia,Microsoft TLS Stack SChannel 从 Windows 7 和 Windows 2008 R2 开始支持 DTLS 1.0。但是当searching for C# DTLS 出现很多问题但没有任何迹象表明C# 对DTLS 有本机支持时。但是一些第三方库出现在此搜索中,这可能有助于解决您的问题。
【讨论】: