首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

计算机网络基础课程—远程登录Remote Login

•远程登录

–用户通过网络访问在远程系统中可用的所有命令。典型地,用户使用远程计算机的编辑软件进行文字编辑,就象该软件在本地计算机上一样。

•TELNET (RFC 854)

–TCP/IP协议族包含的一个简单的远程终端协议。是最早的Internet 应用,起源于1969年的ARPANET,是TELecommunication NETwork protocol的缩写。

–TELNET远程登录采用客户-服务器模式,一个典型的连接如下页图中所示:

•几点说明:

–图中虚线框内一般是操作系统的一部分。因此,TELNET的实现一般是和操作系统相关的。

–TELNET客户进程同时和终端用户和TCP/IP协议模块进行交互。

–TELNET通过TCP/IP协议模块在客户机和远程登录服务器之间建立一个TCP连接

–TELNET把用户端键盘的键击通过TCP发送到远程计算机,使得键击就好像发生在与该计算机直接相连的键盘上一样。同时, TELNET还要把远程计算机上的输出回送到用户端的显示器上。

–TELNET服务器是通过调用登录外壳(伪终端设备驱动)进程处理客户进程,使得客户感觉是直接和一个终端交互。

–TELNET客户软件允许用户指定远程计算机的域名或IP地址。这样对于没有名称-地址绑定的主机也能进行远程登录。

•TELNET提供三种基本的服务:

–定义一个网络虚拟终端,虚拟终端提供了到远程系统的标准接口。客户程序无需知道所有可能的每一种远程系统的细节(例如是什么操作系统),因为 TELNET提供了标准的接口 。

–TELNET包含了一套机制,允许客户和服务器协商选项。 TELNET提供了一套标准的选项。

–TELNET对于连接的双方是对称的,客户端不一定非要从键盘输入,显示器显示,任何程序也都可以成为客户。

•提供到远程系统的标准接口

•不同计算机和操作系统之间存在差异性(如中断程序:有的系统使用Ctrl+C组合键,有的使用ESCAPE;不同系统的文本换行字符也不同。)

•为兼容这种差异,TELNET定义了数据和命令序列应如何在网上传送,称为网络虚拟终端(Network Virtual Terminal),客户端软件首先把用户端的键击和命令序列翻译成NVT格式并发送到服务器端。服务器端的软件再把输入的数据和命令从NVT格式转换成远程系统需要的格式,过程如下图所示。而对于反方向的数据传送,执行相反的过程。

•NVT格式的定义:

•NVT使用标准的7比特ASCII字符集,每个7比特的字符都以8比特格式发送,最高位比特为0。

•标准ASCII字符集中95个是可打印的,NVT仍使用原来的意义。另外有33个为控制字符, NVT给出了相应的控制字符定义,见下页的几个基本定义。

•其中,行结束符以两个字符的序列来表示:回车(CR)\换行(LF) (\r\n),而单独的CR也以两个字符序列来表示:CR\NULL(\R\0)。

•此外NVT在标准ASCII字符集中以外定义了其他控制功能,包括程序中断控制。见下下页表:

•这些控制命令是在标准ASCII字符集中以外定义的,具体的值见下下下页表:

•单独的命令字节是无效的,命令字节需要紧跟在一个控制命令标识字节之后,这个标识字节即是Interpret As Command。

•这样实际的控制命令是两个连续的字节。如中断进程命令应为:

•选项协商

•TELNET连接双方在通信前首先需要交互的信息选项协商数据。选项协商是对称的,即任何一方都可以主动发送选项协商请求给对方。TELNET选项协商有六种情况:

•这样,选项协商需要三个字节:一个IAC字节,一个是WILL、DO、WON’T和DON’T四者之一,最后一个就是要协商的选项。目前可协商的选项有40多个。例如:

•虽然TELNET的双方在选项协商机制中是对等的,都可以发起选项协商请求,但是,由于TELNET不是对称的应用,客户和服务进程分别完成不同的任务。因此,某些TELNET选项仅仅适合于客户进程(例如要求激活行模式方式),某些选项则仅仅适合于服务器进程。

•此外还有一些选项不是仅仅用“激活”或“禁止”就能够表达的。指定终端类型就是一个例子。客户端必须发送一个用ASCII字符串来表示终端类型。为了处理这种选项,我们必须定义子选项协商机制(RFC 1090)

•子选项协商机制(RFC 1090)

•首先是连接的某一方(通常是客户进程)发送3个字节的字符序列来请求激活该选项:(24为终端类型选项的ID号)

•如果收端(通常是服务器进程)同意,那么响应数据:,

•然后服务器进程接着发送如下字符串:,该字符串询问客户进程的终端类型。SB为子选项协商的起始命令标志;24表示是终端类型选项的子选项;“1”表示“发送你的终端类型”;SE是子选项协商的结束命令标志。

•客户进程以如下格式响应其终端类型(假设为IBMPC机):。 “0”表示“我的终端类型是”;终端类型字符串均用大写字母,在服务器端会自动转为小写。

•TELNET连接双方的操作方式

•半双工:目前较少使用,因为它不能充分发挥目前大量使用的支持全双工通信的终端功能。但这是TELNET的默认方式。因为 NVT 是一个半双工设备,它必须从服务器进程获得 Go Ahead 命令。

•一次一个字符:键入的每个字符都单独发送到服务器进程。而服务器同时回显大多数字符。要进入这种方式,只须激活“抑制继续进行(Suppress-GA)”选项和“回显(Echo)”选项。

•一次一行方式(准行方式 RFC 858):“抑制继续进行(Suppress-GA)”和“回显(Echo)”两个选项中的其中之一无效时的工作方式。

•行方式:行方式选项在RFC 1184中定义。

•一个问题:

•当服务器端缓存满,TCP发回零窗口,不能接收客户端的一般数据时,如果远程进程出错,需要终止(比如进入一个死循环,进程不再读入数据),但此时远程服务器不能接收客户的控制命令,这该如何处理?

•TELNET将利用TCP分组数据中的URGENT DATA位设置,发送同步命令Data Mark(DM) 作为同步信号。双方都可以发送该命令.

•当一端收到对方已经进入紧急方式的通告后,它将重新回到正常方式,开始读数据流,一边读一边丢弃所读的数据,直到读到TELNET命令为止。紧急数据的最后一个字节就是DM字节。

•采用TCP紧急方式的原因就是:即使TCP数据流已经被TCP流量控制所终止,TELNET命令也可以在连接上传输数据。

•另一个远程登录协议:Rlogin(RFC1282)

•最初是基于UNIX主机之间的,因此无选项协商机制,比TELNET要简单。其他和TELENT类似。现在也发展了几个非UNIX平台的版本。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190716A0HCZU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券