SCTE 104/35 Codex
The TCP request and response lifecycle
9.1Over TCP/IP the link follows a simple lifecycle. The Injector listens on port 5167 by default, or on the injector_socket_number supplied during provisioning, and the Automation System opens one API Connection to that socket. The Automation System sends an init_request and the Injector replies with an init_response; from then on every message travels over that single connection until either side closes it. During initialization the two ends negotiate protocol_version by taking the lower of the values each supports. Only one Automation System may hold an active connection to a given Injector Instance at a time, and a second attempt is refused with an Injector-already-in-use result. Every request expects a response, sent without unnecessary delay, and a peer that hears nothing for five seconds treats it as a timeout: the Automation System then sends an alive_request, and if the Injector still does not answer, the connection is dropped and re-established. Those alive heartbeats also keep an otherwise idle link confirmed, which matters because a channel may carry as little as one avail an hour. A splice draws two responses in sequence, an immediate inject_response that acknowledges receipt and a later inject_complete_response once the section has been injected. When reconnecting, a device leaves roughly 30 to 60 seconds between attempts, often randomized with exponential backoff.