fk0, легенда (17.01.2019 13:15, просмотров: 680) ответил Evgeny_CD на Скрипач, мы с тобой в противофазе :)
Истина в том, что не надо всякое дерьмище на уши развешивать и тут же в него уверовать как в абсолютную и единственную истину. Для построения M2M не нужен какой-то особенный протокол какой-то особенной фирмы. Можно сделать что угодно своё на базе уже имеющихся TCP и UDP. Только чтоб так делать нужно не жёлтую чушь и рекламу в интернете читать, а ознакомиться с уже имеющимися и зарекомендовавшими себя решениями, понять почему поступили именно так, какие задачи решены (обмен между разными компьютерными архитектурами с разными формами представления данных, разрядностью, порядком байт, возможность расширения протокола, возможность частичной интерпретации записей с пропуском тех о которых нет знания). Такими как RPC, например, построенном на XDR, или ASN.1 (BER, PER, но не XER). Это что касается кодирования сообщений, следующий шаг сам протокол, какой подход и как применить, к чему его применить, на основании чего будет выбран именно такой протокол. У размахивающих тут разными протоколами ответа на этот вопрос нет, они запрягают телегу впереди лошади выбирая вначале протокол, а затем ломают голову над тем а как его бы применить в конкретных условиях. Я опять же рекомендовал бы изучить уже имеющиеся решения, какими они обладают уже известными свойствами и известными же недостатками. Хотя бы на примере хорошо документированных протоколов использующихся в интернете. Те же TFTP (простейший протокол с квитированием), FTP/HTTP (состояние удалённой стороны кодируется в коде ответа, кодом состояния управляется автомат на своей стороне), и TCP как база для всех поток-ориентированных протоколов (чаще нет смысла изобретать свой). Modbus кстати. Благо ранние протоколы достаточно просты для понимания, и одновременно достаточно явно показывают свои свойства. В целом можно бы уже сделать два вывода, что во-первых нет смысла городить свои самодельные протоколы поверх протоколов вроде HTTP, если только устройство не является веб-серверов или явно не планируется взаимодействие с веб-сервером. Во-вторых за каждым протоколом стоит конечный автомат с явно видимыми состояниями, и вопрос скорей какой должен быть набор состояний и как они относятся к логике работы прибора.
[ZX]