GBase 8c使用一种基于消息的协议用于前端和后端(服务器和客户机)之间通讯。该协议是在TCP/IP和Unix 域套接字上实现的。端口号 5432 已经在IANA 注册为支持这种协议的服务器的常用端口,但实际上任何非特权端口号都可以使用。
为了可以有效地为多个客户端提供服务,服务器为每个客户端派生一个新的“后端”进程。 在目前的实现里,在检测到新来的连接请求后,马上创建一个新的子进程。 不过,这些是对协议透明的。对于协议而言,术语“后端”和“服务器”是可以互换的; 类似的还有“前端”和“客户端”也是可以互换的。
协议在启动和正常操作过程中有不同的阶段。在启动阶段里,前端打开一个到服务器的连接并且认证自身以满足服务器(这可能涉及到一条或多条消息,取决于使用的认证方法)。 如果一切正常,服务器就发送状态信息给前端,并最后进入正常操作。除了最初的启动请求消息之外,协议的这个部分是服务器驱动的。
在正常操作中,前端发送查询和其它命令到后端,然后后端返回查询结果和其它响应。在少数几种情况(比如NOTIFY)中,后端会发送未被请求的消息,但这个会话中的绝大多部分都是由前端请求驱动的。
会话的终止通常是由前端来选择的,但是也可以在某些情况下由后端强制执行。不管在那种情况下,如果后端关闭连接,那么它将在退出之前回滚所有打开的(未完成的)事务。
在正常操作中,SQL命令可以通过两个子协议中的任何一个执行。 在“简单查询”协议中,前端只是发送一个文本查询串, 然后后端马上分析并执行它。在“扩展查询”协议中, 查询的处理被分割为多个步骤:分析、参数值绑定和执行。这样就可以提供灵活性和性能的改进,但代价是额外的复杂性。
正常操作还有用于类似COPY这样的额外的子协议。