참고 :Phil Thompson에 의해 작성 (
<phil@river-bank.demon.co.uk
). Tom Lane의 프로토콜 2.0 업데이트 (<tgl@sss.pgh.pa.us
).
배트맨 토토a 프론트 엔드와의 통신을위한 메시지 기반 프로토콜 백엔드. 프로토콜이 구현됩니다TCP/IP및 Unix 도메인 소켓에서도배트맨 토토6.3 도입 프로토콜에 버전 번호. 이것은 그런 식으로 이루어졌습니다 이전 버전의 Frontends에서 여전히 연결을 허용하려면 그러나이 문서는 이전 버전.
이 문서는 프로토콜의 버전 2.0을 설명합니다. 구현배트맨 토토6.4 그리고 나중에.
이 프로토콜을 기반으로 구축 된 더 높은 레벨 기능 (예 : 어떻게libpq특정 환경을 통과합니다 연결이 설정된 후 변수)가 포함됩니다 다른 곳.
프론트 엔드는 서버에 대한 연결을 엽니 다. 스타트 업 패킷. 여기에는 사용자의 이름과 사용자가 연결하려는 데이터베이스. 그런 다음 서버가 사용합니다 이것과의 정보는PG_HBA.conf더 많은 것을 결정하려면 파일 인증 정보 프론트 엔드를 보내야합니다 (if 그에 따라 프론트 엔드에 응답합니다.
프론트 엔드는 필요한 인증을 보냅니다 정보. 서버가 이것을 확인하면 응답합니다 인증 된 프론트 엔드 및 메시지를 보냅니다 성공적인 시작 (정상적인 경우) 또는 실패 (for 예를 들어, 유효하지 않은 데이터베이스 이름).
여러 클라이언트를 효율적으로 서비스하기 위해 서버 새로운 출시"백엔드"프로세스 각 고객. 그러나 이것은 프로토콜에 투명합니다. ~ 안에 현재 구현, 새로운 아동 프로세스가 생성됩니다 들어오는 연결이 감지 된 직후.
프론트 엔드가 연결을 끊기를 원할 때 an을 보냅니다 적절한 패킷과 대기하지 않고 연결을 닫습니다 백엔드의 응답.
패킷은 데이터 스트림으로 전송됩니다. 첫 번째 바이트가 결정됩니다 나머지 패킷에서 예상되는 것. 그만큼 예외는 스타트 업의 일부로 전송 된 패킷이며 패킷 길이를 포함하는 인증 교환 패킷 자체가 이어집니다. 차이점은 역사적인.