The viewing side of the protocol is split into three types of update, based on common tasks for virtual consoles: writing text at the cursor position, scrolling, and other arbitrary updates to characters at certain positions on the screen (as well as cursor position changes).
In addition, the server can report when the machine has switched to a virtual console that is in a graphical mode, in order for the client to be able to use RFB to get updates for that console.
Since different virtual consoles may have different sizes, the server can report a console size change; the client may however request that the server just sends the bottom left rectangle of a console that is too large to display in its entirety.
Unlike RFB, RVC is not demand-driven by the client; the server will send incremental updates as and when they happen. However, the client can request a full screen update explicitly. Since text consoles are not nearly as big as graphical ones, bandwidth considerations don't warrant quite the same concern as with RFB. However, the client can specify (at the beginning of the connection) a maximum rate at which incremental updates are sent.