【发布时间】:2013-12-24 01:43:58
【问题描述】:
首先,感谢您抽出时间阅读这篇文章。
我希望使用 Microchip PIC18 或 PIC32 系列嵌入式微控制器和 Microchip 的 TCP/IP 堆栈来开发支持 TCP/IP 的设备。不过,目前我对网络的了解还很基础,所以才发这篇文章。
谁能推荐用于我的 TPC/IP 嵌入式设备的最佳协议,以便它可以与数据中心的服务器通信?我的目的是让嵌入式设备位于 Internet 上的某个远程位置,服务器可以在该位置与设备通信并下载温度计探头读数等数据以存储在数据库中。我还希望数据中心的服务器能够在需要时重新配置远程设备上的设置和变量。
到目前为止,我对协议的研究使我有以下选择:
- SNMP v3(版本 3 由于加密和身份验证)
- UDP(虽然我读到这可能不可靠但速度很快)
- TCP(我还不太了解)
谁能给我建议最好的下山路线?我不希望您给出详细的答复,但我真的很想知道要研究和研究的主题/协议。
我的意图是在互联网上部署许多这些嵌入式设备,它们都将数据发送回服务器。
我假设远程嵌入式设备必须连接到服务器而不是相反,因为服务器将具有静态 IP 地址或 DNS 名称,而远程设备地址将是未知的。
对此的任何建议将不胜感激。请不要犹豫,问我是否错过了这篇文章中的任何关键信息。
非常感谢。
罗伯
* 更新 * 有人指出我可能误用了 Web 服务器这个术语,所以我修改了我的帖子,改为提及数据中心中的服务器。感谢您向我指出这一点。
【问题讨论】:
-
我使用过 UDP。它是低级的,不需要给 PIC 带来太多负担。听起来您的服务器将 ping PIC。我没有看到从服务器向 PIC 发送 UDP 数据包的问题,并让 PIC 响应数据包中的命令,并将另一条 UDP 消息返回给服务器。如果服务器在一段时间内没有得到响应,则重新发送命令。
-
Best 将要求您更准确地确定您的要求;但是,您应该考虑使用 TLS 安全协议(如 https)或 ssh。我不建议您尝试编写自己的协议,除非您准备学习一些令人难以置信的深奥数学。像椭圆曲线和/或极大伪素数的生成。
-
HTTPS over TCP 是我要走的路线。如果 PIC 位于防火墙后面怎么办?
-
我会说你的理解是正确的。通常,服务器不能/不应依赖客户端在线或始终在同一地址可用。只有当客户端与服务器建立安全连接时,他们的通信才应该被信任。这是个问题吗?
-
@RobHurd 如果没有被 ping 通,我会让 PIC 通过 UDP 向服务器发送一个注册命令。注册将具有 PIC 的 IP 地址。
标签: networking snmp network-protocols tcp-ip microchip