Хе-хе, раньше это был протокол последовательного порта, они, вероятно, просто переместили его без изменений, чтобы вместо него использовать сокеты. Не так уж редко, хотя он не очень подходит для такого потока, как TCP-реализации.
Хорошо, следуйте инструкциям. Предполагая, что вы клиент, прочитайте один байт и убедитесь, что он равен 0x02. Если это так, отправьте обратно один байт, 0x06. Если нет, продолжайте читать, пока не увидите 0x02. Теперь вы «подключены», но вы уже знали это.
Затем прочитайте 4 байта, чтобы узнать длину пакета, прочитайте как можно больше байтов + 2, чтобы получить остаток пакета. Я бы проигнорировал «дайджест MD5», TCP достаточно надежен, чтобы не проверять достоверность полученных данных. Отправить обратно один байт, 0x06.
Единственное, что неясно, стоит ли ожидать 0x02 до длины пакета или нет. В тексте написано, что нет, на диаграмме написано, что вы делаете.