3 ms·
It had to cross layers, because the original implementation was flawed. The $vendor had designed the their protocol stack well, but implemented it against the v
by anilakar 7y ago
It had to cross layers, because the original implementation was flawed. The $vendor had designed the their protocol stack well, but implemented it against the very spec they wrote – for example, the outer protocol frame length field did not take into account character escape codes which were a property of the inner protocol. Instead of a protocol stack, the escaping has to be handled with a multi-layer state machine.
The vendor knows their protocol is buggy, because in their PC maintenance software they have arbitrarily chosen to start frame sequence numbering one higher than the escape character so that they can avoid triggering the bug in most cases. It still breaks down when the payload contains that prohibited escape code. Service techs are used to the whole thing randomly requiring retries and constantly joke about how repairing the $vendor's stuff has the best billable hours per work done ratio.
- jen20 7y agoI assume given the rest of the context you were not implementing a FIX parser - but you’d find the same escape code layering violations if you were!