The Citrix ADC appliances have native support for protocols such as HTTP. In addition to this, you can use protocol extensions to add support for custom protocols. Presently only TCP-based custom protocols are supported, for example, Message Queuing Telemetry Transport (MQTT) protocol. For secure transactions, TCP over SSL is also supported.
The protocol extensions on the Citrix ADC appliance are part of the high-level scripting infrastructure available on the Citrix ADC appliance. The scripting language is based on the Lua 5.2 programming language. To add a custom protocol to a Citrix ADC appliance, the user has to write extension code to implement the applicable behaviors. For example, the ns.tcp.client and ns.tcp.server behaviors are applicable to TCP based protocols. To implement a behavior, implement only the callbacks that you want to customize. If callback is not implemented, its default takes effect. For more information about the scripting language, see Citrix ADC Extensions - Language Overview. For details on behaviors, see Citrix ADC Extensions API Reference.
The Citrix ADC protocol extensions can be used for the following:
- Add new protocol support on the Citrix ADC appliance programmatically, using extensions.
- Parse protocol traffic and do protocol-specific message based load balancing (MBLB).
- Configure user defined load balancing persistence.