3.1 Protocol architecture
This section gives a brief overview of the ssh2 protocol architecture and internal working. You may skip to the next section if you are familiar with the ssh2 protocol specifications.
This overview is useful when working with libassh. It is assumed that the reader knows the features offered by the ssh2 protocol and is familiar with design of network protocols. The SSH Lexicon section gives the meaning of some SSH related terms.
The specification of the ssh2 protocol is available as a set of rfc documents, starting with rfc4250. Many other documents specify extensions to the protocol. Most extensions do not need to amend the original specification because ssh2 was originally designed with extensibility in mind.
Many features of the protocol like algorithms and services are identified and negotiated using textual names. This allows alternatives to be developed without breaking compatibility with the base protocol and its original set of features. Private extensions are allowed and should use names containing the @ character.
According to rfc4251, there are three major components in the ssh2 protocol architecture:
the Tranport Layer Protocol,
the User Authentication Protocol and
the Connection Protocol.
These components are described in the following subsections.