因 特 网 的 服 务 { r e m o t e l o g g i n g e − m a i l F i l e t r a n s f e r 因特网的服务begin{cases}remote logging\e-mail\File transferend{cases} 因特网的服务⎩⎪⎨⎪⎧remote logginge−mailFile transfer
26.1 Remote Logging需求:用户希望在远程网站上运行许多个程序run application programs at a remote site,但是产生的结果能传送到本地的网站。
无法为每一个服务创建客户/服务器应用程序。
更好的方式是使用通用的general - purse 客户/服务器程序,让用户能访问远程计算机上的所有的应用程序。
允许用户在远程计算机上登录-----登录后使用计算机提供的服务------结果返回到本地的计算机上
(1)TELNETTELNET是一个通用的客户/服务应用程序。
(2)Logging-
本地登录 local log-in :登录到本地的分时系统,称为本地登录。
过程:
- 用户击键或者运行仿真程序
- 击键被终端驱动程序所接受
- 终端驱动程序将字符传递给操作系统
- 操作系统解释字符,调用所需的应用程序或者实用程序
-
远程登录 remote log-in :需要使用TELNET
过程
- 使用TELNET客户程序和服务器程序
- 击键发送给终端驱动程序
- 本地OS接受字符,但并不解释
- 字符被送到TELNET客户机,TELNET将字符转换成网络虚拟终端NVT字符的通用字符集
- 传送给本地的TCP/IP协议栈
- 将NVT文本通过因特网传输到远程的TCP/IP协议栈
- 传给那里的OS
- 传送给远程的TELNET服务器,TELNET服务器将其转换成远程计算机可以理解的字符
- 字符传送给伪终端驱动程序
- 最后传送给OS,在传送给适当的应用程序
异构的系统 heterogeneous systems 打交道:TELNET定义了一个通用的接口network virtual terminal NVT。
- 客户TELNET将来自本地终端的字符转换为NET形式,然后传递给网络
- 而服务器TELNET将来自NVT形式的数据或者命令转换成远程计算机可以接受的形式
-
NVT字符集【NVT character set】
两者都是八位字符集
{ 数 据 字 符 d a t a c h a r a c t e r : 最 高 位 为 0 控 制 字 符 c o n t r o l c h a r a c t e r : 最 高 位 为 1 begin{cases}数据字符data character:最高位为0\控制字符control character:最高位为1end{cases} {数据字符data character:最高位为0控制字符control character:最高位为1
(4)EmbedingTELNET使用一个TCP/IP连接,服务器使用熟知端口23,客户使用临时端口
使用同一个连接发送数据字符和控制字符。
TELNET将控制字符嵌入到数据字符中:区别数据和控制字符时使用控制解释IAC
(5)OptionsTELNET提供额外的协商选项,提供额外特性。
使用控制字符来定义选项:
Options Negotiation 选项协商为使用上述选项,使用4个控制字符:
- WILL:请求激活;接收激活
- WONT:决绝请求激活;提供禁止选项
- DO:同意激活选项;请求激活选项
- DONT:同意禁止选项;请求禁止选项
希望回显的例子:
suboption negotiation 子选项协商有些选项需要附加信息,如定义一个中断的类型或者速率,协商要包括一个字符串或者数字来定义类型或者速率。
(6)Mode of Opration操 作 方 式 { d e f a u l t m o d e 默 认 方 式 : 回 显 由 客 户 完 成 , 一 行 完 成 前 不 发 送 c h a r a c t e r m o d e 字 符 方 式 : 每 一 个 字 符 从 客 户 机 发 送 给 服 务 器 l i n e m o d e 行 方 式 : 行 编 辑 由 客 户 完 成 , 然 后 客 户 将 整 行 发 给 服 务 器 操作方式begin{cases}default mode默认方式:回显由客户完成,一行完成前不发送\ character mode字符方式:每一个字符从客户机发送给服务器\line mode行方式:行编辑由客户完成,然后客户将整行发给服务器end{cases} 操作方式⎩⎪⎨⎪⎧default mode默认方式:回显由客户完成,一行完成前不发送character mode字符方式:每一个字符从客户机发送给服务器line mode行方式:行编辑由客户完成,然后客户将整行发给服务器
26.2 ELECTRonIC MAIL电子邮件的一般架构:
- 用户代理 user agent
- 报文传输代理 message transfer agent
- 报文访问组件 message access agent
电子邮件的发送方与接收方是在一个系统内的用户(或者相同应用程序),他们直接或者间接共享一个系统。
邮箱mailbox是本地硬盘的一部分——是一个特殊文件,只有邮箱的拥有者可以访问
- 客户1运行用户代理UA
- 在客户2的邮箱中插入报文
- 报文中有发送方与接收方的邮箱地址(文件名)
- 客户2可以运行UA,检查他的邮箱
发送方和接收方是不同系统上的用户。需用用户代理和报文传输代理。
- 客户1使用用户代理程序发送报文到他所在网站的系统——邮件服务器
- 邮件服务器使用队列存储报文,等待发送
- 客户2使用用户代理检索存储在他的网站系统中的报文
- 客户2使用两个报文传输代理——客户+服务器
- 服务器始终运行
全过程需要两个UA和两个MTA(客户机和服务器)
架构三:两个UA和两对MTA(客户和服务器)客户机1通过广域网连接到系统。
客户2直连到系统。
架构四:两对MTA和一对MAA客户1和客户2都通过广域网连接到系统。
涉及到邮件的两个操作:pull和push
- push:从MTA客户机推入报文到MTA服务器
- pull:从MAA服务器中拉出报文到MAA客户机
第一个组件conponent UA,是一个用户程序
(1)Services Provided by UA有五种报文:
- Composing messages
- Reading messages
- Replying to messages
- Forwarding messages 转发报文
- Handling mailboxes
-
command-driven
- 从键盘接收打个字符的命令执行某项任务
- mail,pine,elm
-
GUI-based
图形化界面
地址由两部分构成:本地部分local part和域名domain
- local part:特定文件的名字,称为用户邮箱,在用户邮箱中存储接收到的文件
- domain:邮件交换器的domain
电子邮件有一个简单的结构。他只能发送NVT 7 ASCII格式的报文。
多用途因特网扩充 Multipurpose Internet Mail Extension MIME:
- 辅助协议,允许非ASCII数据通过电子邮件传送
- MIME将非ASCII转换到NVT ASCII,并将其传送给MTA服务器通过因特网发出去
- 在接收方在转换到原来的数据
实际邮件的传输由MTA完成。
定义MTA的协议称为SMTP 简单邮件传输协议 Simple Message Transfer Protocal,协议定义了如何来回发送命令和响应。
(1)Commands and Response-
commands
从客户发给服务器。命令的格式为keywords:argument(s)
STMP定义了14个命令:
- 前5个是强制的,必须实现且支持
- 后三个是常用且推荐
- 最后6个很少使用
-
response
服务器发给客户端
三位数字码,附加文本信息
报文访问代理有两种协议:
- POP3 邮局协议版本3
- IMAP4 因特网邮件访问协议版本4
用户要从邮件服务器的邮箱中下载邮件时,客户端发起邮件访问的操作。
- 客户端开启与使用服务器110端口之间的TCP连接
- 发送用户名和密码来访问邮箱
- 之后逐条读取信息
POP3有两种模式:
- 删除模式delete mode:从邮箱中读取后删除邮件
- 保存模式save mode:从邮箱中读取后仍保存该邮件
传送文件最常见的协议:FTP
26.3.1 File Transfer Protocal (FTP)FTP使用TCP服务。它需要两个TCP连接。
- 一个用于数据传输
- 一个用于控制信息传输
分开传输使得FTP效率更高。
熟知端口21用于控制连接,而熟知端口20用于数据连接。
FTP会话期间:
-
**控制连接(control connection)**始终处于连接状态。
通过命令command和响应response完成
每一条命令是一个短行,不存在文件格式或者文件结构的问题。
-
**数据链接(data connection)**在每次传输文件时打开然后关闭
客户必须定义要传送的文件的:
- 文件类型
- 传输方式
- 数据结构



