1. Half Duplex
This is the default telnet method, but is rarely used now. Nvt is a half-duplex device by default. Before receiving user input, it must obtain the goahead (GA) command from the server process. User input is displayed locally in the direction from the nvt keyboard to the nvt printer. Therefore, the client process to the server process can only send the whole row of data.
Although this method is applicable to all types of terminal devices, it cannot fully utilize the terminal functions currently widely used to support full-duplex communication. Rfc857 [Postel and reynolds1983c] define the Echo Option, rfc858 [Postel and reynolds1983d] define the suppressgoahead option. If these two options are used together, the following methods can be discussed: one character at a time with remote echo.
2. One character at a time
It works in a similar way as rlogin. Each character we typed is sent to the server process separately. Most characters of server process echo, unless the echo function is removed from the application of the server process. The disadvantages of this method are also obvious. When the network speed is slow and the network traffic is large, the echo speed will also be slow. However, most current Telnet implementations use this method as the default method.
We will see that if you want to access this method, you only need to activate the suppressgoahead option of the server process. This can be done by sending a dosuppressgoahead (request to activate the server process option) Request by the client process, or by sending a willsuppressgoahead (server process activation option) request to the client process. Server processes usually send willecho to make the echo function effective.
3. One row at a time
This method is usually called the quasi-line mode (kludgelinemode). The implementation of this method complies with rfc858. This RFC specifies that the Echo Option and suppressgoahead option must be both valid if you want to enable one character at a time with remote echo. This method is used to indicate that when one of the two options is invalid, telnet is used in one row. You can see how to negotiate to enter this method, and how to invalidate this method when the program needs to receive each key.
4. Row Mode
We use this term to represent the implementation option, which is defined in rfc1184 [borman1990. This option is also determined by negotiation between the client process and the server process, which corrects all defects in the quasi-row mode. Currently, the new Telnet implementation supports this method.
It is the default operation method between different Telnet client processes and server processes. "Char" indicates the One-character method at a time, "kludge" indicates the quasi-line method, and "linemode" indicates the implementation method as defined by rfc1184.
Default operation mode between different Telnet client and server processes
It can be seen that the implementation method is only supported when both the client process and the server process are BSD/386 or 4.4bsd. When the operating system of the server process is one of the two, if the customer process does not support the implementation method, it will negotiate to enter the admission method. We can also see that in fact, any type of client process and server process supports the quasi-line method, but generally does not use it as the default method unless the server process is specified.