Presentation is loading. Please wait.

Presentation is loading. Please wait.

第4章 TCP/IP应用层常用协议 4.1 Telnet 协 议 4.2 文件传输协议FTP 4.3 电子邮件的工作原理及其协议

Similar presentations


Presentation on theme: "第4章 TCP/IP应用层常用协议 4.1 Telnet 协 议 4.2 文件传输协议FTP 4.3 电子邮件的工作原理及其协议"— Presentation transcript:

1 第4章 TCP/IP应用层常用协议 4.1 Telnet 协 议 4.2 文件传输协议FTP 4.3 电子邮件的工作原理及其协议
4.4 文本传输协议HTTP 习题

2 4.1 Telnet协议 远程登录 在计算机网络产生的初期,其主要目标就是能让一台终端(或计算机)连接到远程的一台计算机上,使普通用户也可以使用远程大型主机上的计算机资源。为了实现这样的目标,系统起码应该具备如下条件:

3 ● 具有一个本地系统,它可以是一台终端或一台主机(我们主要讨论主机时的情况);
● 具有一个远程系统,它是运行着某种操作系统的一台独立的主机; ● 本地系统和远程系统可以互相通信; ● 本地系统的用户在远程多用户系统中有用户账号。 具备以上条件的系统,当远程主机在运行并提供相应的服务时,本地系统的用户就可以通过网络,使用他在远程系统的账号登录到远程主机,即进行远程登录(Remote Login)。远程登录成功后,用户就可以访问远程系统中自己权限范围内的资源。

4 如果进行远程登录的本地主机和远程主机使用的是相同的操作系统,那么远程登录的过程实现起来是比较简单的,如Unix系统中使用的Rlogin。
Telnet(RFC 854定义了该协议的规范)是一个可用于异种系统的远程登录协议,有些人把它直接叫远程登录命令,因为它本身也是一个命令。

5 Telnet的工作原理 在工作时,本地客户Telnet进程首先提出远程登录的请求,远程Telnet服务器进程在23端口进行守候,这样通过3次握手就在客户传输层与服务器传输层之间建立了一条TCP连接,在此连接上进行它们之间的交互通信,其工作原理可用图4-1表示。

6 图4-1 Telnet工作原理

7 (1) 用户从客户终端上的输入被送到操作系统内核的终端驱动进程,由终端驱动进程将用户的输入送到Telnet客户进程。
(2) Telnet客户进程工作在应用层,它把收到的数据送到客户TCP,由客户TCP通过它和服务器之间已经建立的TCP连接把数据传输到服务器的对等层(即服务器TCP层),再由服务器TCP层将收到的数据送到其应用层的Telnet服务器进程。 (3)  Telnet服务器进程不能直接处理(解释或执行)收到的数据,因为服务器操作系统有很多可执行的命令,用户可能会提出执行各种命令的请求,显然,Telnet服务器进程不具备这个能力,这只能由服务器上运行的操作系统来完成。

8 (4) 由于对服务器端的操作系统内核来说,Telnet服务器进程就好像是它的一个终端,因此在服务器内核中有一个“伪终端(Pseudo-terminal)驱动进程”,它是Telnet服务器进程到服务器操作系统内核的接口,可以把从Telnet服务器进程接收的输入数据送到登录外壳(Shell)进程,这就使得对于登录外壳进程来讲,它好像直接被Telnet服务器进程调用,任何运行在登录外壳进程处的程序都感觉是直接和一个终端在进行交互。 (5) 登录外壳进程对数据(一般是命令)进行处理,把处理后的结果(如一个命令的执行情况)沿原路反向传输给客户终端。

9 网络虚拟终端(NVT)的概念 1.什么是网络虚拟终端 原理如图4-2所示。

10 图4-2 NVT工作原理图

11 2. NVT ASCII码 如表4-1所示。

12 表4-1 NVT重定义的8个ASCII码控制字符

13 3. NVT控制命令 Telnet通信的客户端和服务器端都采用专用的控制命令来协调或控制双方的通信过程。 为了区别普通的NVT ASCII码字符,这些NVT控制命令用最高位为1的8个比特(1个字节)表示。NVT控制命令的格式固定为所有命令都以字节0xff(对应十进制数的255)开始,即0xff是一个NVT控制命令开始的标记,该字节后面的一个字节才是命令字节,命令字节后面是一个字节的选项字段,如图4-3所示。

14 图4-3 NVT工作原理图

15 因为1个字节的0xff表示后面紧跟着的是命令,所以把它称为IAC(Interpret As Command,意思是“作为命令来解释”)。所有的NVT控制命令如表4-2所示,在后面将举例说明它们的用法。

16 表4-2 NVT控制命令

17 表4-2 NVT控制命令

18 Telnet协议选项协商 NVT可以使不同的系统互操作,但是由于通信的双方互不了解对方可以提供哪些功能,多数用户有比较复杂的终端,因而它们都希望对方能提供更多的服务。Telnet协议解决这个问题采用的方法是提供一组选项,在要使用某项功能(选项)时,通信的双方先进行选项协商,使通信的双方明白哪些功能由对方提供,哪些功能无法完成,即在通信时双方可以达成一致,这就是选项协商。 表4-2NVT控制命令选项协商的基本策略是任一方可以在初始化时提出一个选项生效的请求,另一方可以接受,也可以拒绝这一请求。

19 对于任何给定的选项,连接的任何一方都可以发送下面4种请求中的任意一个请求:
●  WILL:发送方本身将激活选项。接收方可以同意(用DO应答),也可以不同意(用DON’T应答)。 ●  DO:发送方想让接收方激活选项。接收方可以同意(用WILL应答),也可以不同意(用WON’T应答)。 ●  WON’T:发送方本身想禁止选项。接收方只能同意(用DON’T应答)。 ●  DON’T:发送方想让接收方去禁止选项。接收方只能同意(用WON’T应答)。 以上4种请求共有6种不同的组合(下面用X表示要协商的某个选项),见表4-3。

20 表4-3 Telnet选项协商的6种情况

21 选项协商的格式如图4-3所示,它由3个字节组成:第一个字节必须为IAC;第二个字节是WILL、DO、WON’T或DON’T 4者之一;第三个字节指明要激活或禁止的选项。现有40多个可以协商的选项,表4-4列出了其中的一部分。 表4-4 Telnet协议选项代码表 表略

22 Telnet协议选项协商实例 在这个例子中,我们在一台运行着BSD操作系统的主机上启动Telnet客户进程,它试图激活很多选项,但我们将看到有很多选项被服务器拒绝;另一台运行着SVR4操作系统的计算机作为Telnet服务器。为了看到服务器和客户机之间选项协商的内容,我们激活客户进程的toggle options选项来显示所有的选项协商过程。 Telnet协议常用的工作方式是用户在终端输入的每个字符都将由终端发送到服务器进程,服务器进程的响应也将以字符方式回显到终端上,这就是所谓的单字符方式。常用的各种操作系统都使用这种方式作为默认方式。

23 表略 当然Telnet协议也可以工作在行方式下,只是一般情况下很少使用。Telnet协议选项协商的整个过程如表4-5所示。

24 4.2 文件传输协议FTP 4.2.1 FTP简介 4.2.2 FTP支持的文件类型和文件结构 1.文件类型
(1) ASCII码文件,这是FTP默认的文本文件格式。 (2) EBCDIC码文件,它也是一种文本类型文件,用8位代码表示一个字符,该文本文件在传输时要求两端都使用EBCDIC码。

25 (3) 图像(Image)文件,也称为二进制文件类型,发送的数据为连续的比特流,通常用于传输二进制文件。实际传输时,发送方将数据打包成8位,然后以字节为单位进行传输。
(4) 本地文件(Local),字节的大小由本地主机定义,也就是说每一字节的比特数由发送方规定。

26 2.文件的数据结构 文件的数据结构有以下3种: (1) 文件结构,这是FTP默认的方式,文件被认为是一个连续的字节流,文件内部没有表示结构的信息。 (2) 记录结构,该结构只适用于文本文件(ASCII码或EBCDIC码文件)。记录结构文件是由连续的记录构成的。 (3) 页结构,在FTP中,文件的一个部分被称为页。当文件是由非连续的多个部分组成时,使用页结构,这种文件称为随机访问文件。每页都带有页号发送,以便收方能随机地存储各页。

27 3.文件的传输方式 文件的传输方式包括以下3种: (1) 流方式,这是文件传输的默认方式,文件以字节流的形式传输。 (2) 块方式,文件以一系列块来传输,每块前面都带有自己的头部。 (3) 压缩方式,用来对连续出现的相同字节进行压缩,现在已很少使用。

28 FTP的工作原理 下面以客户要从FTP服务器上下载一个文件为例,来说明FTP的完整工作过程。其工作原理可用图4-4表示。

29 图4-4 文件传输工作原理

30 1.启动FTP 2.建立控制连接 3.建立数据连接和进行文件传输 用户协议解释器对该命令进行如下处理: (1) 首先在客户端请求分配一个临时的TCP端口号。 (2) 然后在客户端由客户协议解释器通过控制连接向服务器协议解释器发送两条命令:一条命令(使用PORT命令)是把客户端的IP地址和刚申请到的临时端口号这两个参数告诉服务器协议解释器;另一条命令是把服务器上某文件传输到客户端的服务请求。

31 (3) 服务器协议解释器收到客户端的IP地址和临时端口号后,以该IP地址和端口号为目标,使用服务器的20端口(该端口是TCP协议层用于传输数据的端口)向客户发出主动建立连接的请求。
(4) 服务器的数据传输进程从它的文件系统中找到客户进程请求传输的文件。 (5) 服务器的数据传输进程通过数据连接把该文件发送到用户数据传输进程。 (6) 用户数据传输进程把该文件将交给客户端文件系统进行存储。 (7) 文件传输完成后,由服务器端发出主动关闭数据连接的请求,关闭该数据连接。

32 4.关闭FTP 在下列3种情况下都要在客户和服务器之间自动建立数据连接: ● 从客户向服务器发送一个文件; ● 从服务器向客户发送一个文件; ● 从服务器向客户发送文件目录列表。 时控制连接和数据连接可以分别表示为: 控制连接:<客户端IP地址,客户端控制连接端口,服务器端IP地址,FTP服务器控制连接端口21> 数据连接:<客户端IP地址,客户端控制连接端口,服务器端IP地址,FTP服务器数据连接端口20>

33 FTP命令和应答 1.FTP命令 FTP命令都是由3个或4个大写ASCII码字符组成的,表4-6列出了FTP命令,共分为三大类。

34 表4-6 FTP命令 表略

35 2.FTP应答 FTP命令的应答是服务器对FTP命令执行情况的响应,它主要有两方面的功能:一是服务器对数据传输的请求和过程进行同步,这是TCP协议所要求的,TCP要求对接收到的数据都要进行确认;二是让用户了解服务器的状态,用户可以根据收到的状态信息对服务器是否正常执行了有关操作进行判断。 详细内容见表4-7。

36 表4-7 FTP应答信息

37 下面举一些常见应答信息的实例: 125 数据连接已经打开,传输开始。 200 准备就绪。 214 帮助报文(面向用户)。 331 用户名就绪,要求输入口令。 425 不能打开数据连接。 500 语法错误(未认可的命令)。 501 语法错误(无效参数)。 502 未实现的MODE(方式命令)类型。 通常每个FTP命令都产生一行回答。例如,QUIT命令可以产生如下应答: 221 Goodbye.

38 表略 4.2.5 FTP工作实例 下面的FTP工作实例中,我们在FTP客户主机Host1上只输入了3条交互式FTP用户命令,如表4-8所示。

39 4.3 电子邮件的工作原理及其协议 4.3.1 TCP/IP协议下E-mail的工作原理
图4-5为在主机1上工作的用户Li,通过Internet要给在主机2上工作的用户Wang发送电子邮件时的示意图。

40 图4-5 邮件传输过程示意图

41 现在设用户Li给用户Wang开始发送电子邮件,可用图4-6表示电子邮件传输原理模型,其过程如下:
(2) 用户Li利用主机1上的电子邮件应用软件发送邮件。发送的具体工作是由主机1上的电子邮件应用软件把邮件交给一个叫SMTP客户进程的邮件传输模块来完成的,如图4-6所示。

42 图4-6 邮件传输原理模型图

43 (3) 主机1的SMTP客户进程主动发起与邮件服务器1的SMTP服务器进程建立连接的请求,连接建立好后,按SMTP协议的要求,将该邮件传输到邮件服务器1。

44 (5) 邮件服务器1的客户进程向本地申请一个临时端口号后,直接向收件人信箱所在的邮件服务器2发出建立连接的请求(邮件服务器1是根据邮件中收件人的目标地址来判别要与哪个邮件服务器建立连接的),当邮件服务器1和邮件服务器2之间的连接建立好之后,把该邮件按SMTP协议的要求传输到邮件服务器2。 (6) 邮件服务器2在收到邮件后,按收件人的用户名Wang,将该邮件存入收件人的邮箱中。至此,使用SMTP协议进行邮件传输的过程结束。下一步就是收件人Wang在某个时候从其在邮件服务器2上的邮箱中取走邮件的过程了。

45 (7) 当用户Wang要查看自己的邮件时,启动主机2上的电子邮件应用软件,该软件中的取信协议进程POP3向邮件服务器2发出建立连接的请求。
(8) 主机2上的POP3客户进程将收到的邮件交给主机2的电子邮件应用软件,供用户Wang查看和处理。至此一个完整的电子邮件收发过程结束。

46 SMTP协议原理与工作实例 1. SMTP邮件传输模型 前面我们说过,SMTP是基于客户/服务器模式工作的,邮件服务器在TCP的25端口守候客户的请求。首先,要发送邮件的SMTP客户TCP协议层向SMTP服务器TCP协议层的25端口发出建立连接的请求,当服务器接受请求后,建立一条从客户到邮件服务器的TCP连接,以后所有从客户发出的SMTP请求和由服务器产生的SMTP应答以及邮件内容都是通过该连接进行传输的,如图4-7所示。

47 图4-7 SMTP邮件传输模型

48 连接建立后,发送一个电子邮件要经过以下三步:
(1) 客户方发送MAIL命令(下小节介绍),此命令告诉接收者(邮件服务器)新的发送操作已经开始,请复位所有状态表和缓冲区。同时它还告诉接收者一个完整的邮件发送者地址,以便接收者进行应答(如果请求被接收,接收方返回一个“250 OK”应答)或返回错误信息。 (2) 客户方用RCPT命令发送邮件接收者的目标地址,以便接收者可以把邮件内容最终送到收件人的邮箱中。如果命令被接收,则返回一个“250 OK”应答,并存储邮件的目标地址;如果接收者不能识别,就返回一个“550 Failure”应答。

49 (3) 客户发送DATA命令告诉邮件服务器下面将要发送邮件内容。如果命令被接收,则接收方返回一个“354 Intermediate”应答,并认定以下的各行都是邮件内容。当邮件的结束标识收到并存储后,接收者发送一个“250 Mail accepted”应答,客户收到应答后,就可以进行下次邮件传输或结束邮件传输服务了。SMTP通过在邮件正文的最后一行仅发送一个句号来表示邮件内容的结束。 当所有邮件传输完成后,就可以关闭TCP连接,结束邮件传输过程。

50 2. SMTP命令和应答 邮件传输过程中,客户和邮件服务器的会话是通过SMTP命令的应答进行的。SMTP命令的应答与FTP类似,也用NVT ASCII字符表示。客户向服务器发出的命令用4个字母表示,命令与参数之间用一个空格分隔,如表4-9所示。 表4-9 SMTP命令 表略

51 SMTP服务器的应答用3位数字表示,第一位数字表示一般意义,第二位数字表示特指某一事件,第三位数字则对第二位所特指的事件进行说明。也就是说,从第一位到第三位,接收方可以一步比一步更精确地确定接收方的状态。在数字后面跟可读ASCII码字符串,以对应答进行描述,如表4-10所示。

52 表4-10 SMTP 应答

53 3.SMTP邮件传输实例

54 表4-11 SMTP邮件传输实例

55 POP3协议原理与工作实例 这主要有以下几个方面的原因: ● 多个用户共享一台主机或用户经常使用不同的主机进行工作时,会造成很多不便; ● 要求用户使用的主机要一直连接在Internet上,否则主机不在Internet上时,即使用户主机开着也无法接收邮件,因为用户不知道别人会在什么时候发送邮件,这对于有些用户,尤其是拨号上网的用户来说是很难办到的; ● 当用户在异地时,无法阅读自己的邮件,因为邮件已经被发送到本地主机中去了。

56 1.POP3协议的工作过程 在连接建立后,客户与邮件服务器之间使用POP3协议会话的过程可以分为以下三个阶段。 (1) 认证阶段: (2) 邮件操作阶段: (3) 更新阶段:

57 2.POP3会话命令与应答 POP3的命令由可打印的ASCII字符组成,它们之间用空格分隔。命令一般由3~4个字母组成,一个命令可以带有一些参数,每个参数可长达40个字符。所有命令以<CR><LF>结束。POP3的命令如表4-12所示。

58 表4-12 POP3命令

59 3.POP3协议工作过程实例

60 表4-13 POP3协议工作过程实例

61

62 电子邮件报文的格式与实例 表4-14是一个在Internet上收到的电子邮件报文格式实例。

63 表4-14 电子邮件报文格式实例

64 多用途因特网邮件扩展MIME 1.扩展的邮件头部 MIME新定义了5种邮件头部扩展字段,如表4-15所示。

65 表4-15 MIME邮件头部扩展字段

66 表4-15 MIME邮件头部扩展字段

67 表4-15 MIME邮件头部扩展字段

68 (1) 内容类型是text时,还要用charset指出所用的字符集,例如:
MIME-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 该例说明邮件所用字符集为国标2312汉字码,传输内容编码为base64。

69 (2) 内容类型是multipart时,还要用boundary指出各部分的分界,例如:
MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C2CEDD.3C3CB160" 说明邮件由多个部分组成,各部分数据之间用“----=_NextPart_000_0007_01C2CEDD.3C3CB160”分隔。

70 2.base64 和 quoted-printable编码
在MIME中,大部分非ASCII码字符数据是用base64码表示的。该方案的编码原则是: ● 每24比特(3个字节)的一组数据被分成4个6比特的单位; ● 每一个6比特的单位按一个合法的ASCII码字符进行传输; ● 一个6比特的数据其取值范围为0~63,可以表示64个字符,如表4-16所示; ● 最后不够24比特的一个组用“=”进行填充。

71 表4-16 base64值的编码

72 当数据中非ASCII码的数不多时,一般用quoted-printable编码。其编码原则为:
●1个字节,如果最高位(第8位)为0,则按NVT ASCII码发送。 ●1个字节,如果最高位(第8位)为1,则被作为3个字符发送,第一个字符是“=”,第二个字符是该字节高4位对应的十六进制数,第三个字符是该字节低4位对应的十六进制数。例如,字符é(它的值为0xe9)作为3个字符发送,即“=E9”。 ● 空格通常作为“=20”发送。 显然,当邮件内容主要是由ASCII码字符组成时,quoted-printable编码的效率和可读性都比较好。当要发送的邮件正文为html文档(网页)时,可以使用这种编码。

73 4.4 文本传输协议HTTP 万维网的工作过程 万维网的工作过程大家应该是比较熟悉的,因此在这里直接写出它的工作步骤。在Internet中工作的主机要访问万维网中的某个网页时,大致要经过以下步骤: (1) 用户首先要确定网页文件所在的URL(即统一资源定位器),由URL惟一确定用户要访问的文件在Internet上的位置,如设为

74 (2) 浏览器(相当于客户)向DNS(域名服务器)发出请求,要求把域名www.edu.cn转化为它所对应的IP地址。
(5) 连接建立成功后,浏览器发出一条请求传输网页的HTTP命令,格式为GET/app/exam.html。 (6) 当域名为

75 (7) 文件发送完成后,由服务器主动关闭TCP连接。至此,HTTP的工作过程也结束了。
(8) 浏览器显示收到的网页文件exam.html。 (9) 如果exam.html文件中包含有图片,还要与服务器建立TCP连接以下载图片。

76 超文本传输协议HTTP与应用实例 1.客户HTTP请求 HTTP请求可以由多行组成,但最后一行必须是空行。HTTP/1.1最常用的请求格式为: 请求方法 URL HTTP版本号 请求头信息 请求数据 <一个空行,这是请求的结束行> (1) 客户可用的请求方法见表4-17。

77 表4-17 HTTP请求方法

78 (2) 用户要访问Web中的某一个网页,一定要告诉浏览器三个问题:第一是该网页怎样下载到本地主机;第二是该网页在Web中的什么地方;第三是该网页的名称是什么。第一个问题其实就是下载网页使用什么协议的问题,第二个问题要求给出一个网页所在主机的地址(或域名),第三个问题要求给出网页文件名称。为此,人们定义了URL(Uniform Resource Locator,统一资源定位器),它可以很方便地描述以上三个问题,它的格式为

79 URL=协议名称+主机名(或IP地址)+目录与文件名
例如: ftp://ftp.cs.edu.cn/pub/cpp/exam.txt (3) “HTTP版本号”常为HTTP/1.0或HTTP/1.1。 (4) “请求头信息”是可选项,它用于向服务器提供客户端的其他信息。请求头信息见表4-18。

80 表4-18 HTTP请求头信息

81 (5) 当客户使用POST或PUT请求时,由于要向服务器发送数据,所以在HTTP/1.1的请求格式中才有“请求数据”这一项。
如用户输入如下请求: GET HTTP/1.1 Accept: text/plain Accept: text/html User-Agent: Mozilla/4.5(WinNT) <一个空行,这是请求的结束行> 则说明浏览器使用GET方法请求下载

82 2.服务器HTTP应答 服务器在处理完客户的请求之后,要向客户发送响应消息。HTTP/1.1的响应消息格式如下: 状态行 响应头 响应数据 (1) 服务器程序响应的第一行叫状态行。状态行以HTTP版本号开始,后面跟着3位数字,它表示响应代码,如“HTTP/ OK”。在表4-19中详细列出了这些响应代码的含义。

83 表4-19 HTTP响应代码

84 (2) “响应头”是服务器向客户方提供请求文档信息或服务器的状态信息,如表4-20所示。

85 表4-20 HTTP响应头

86 (3) “响应数据”表示的是如果客户方的请求包含数据,则数据放在响应头之后,并且数据与响应头之间用一行空行分隔。数据传输完成时,由服务器主动关闭连接。如果没有要传输的数据,则服务器直接关闭连接。
下面看一个完整的HTTP响应的例子。该例子中,显然由客户端通过浏览器提出要下载一个网页的请求,使用的方法是GET,获得的Web服务器响应见表4-21的说明。

87 表4-21 HTTP响应实例

88 习题 1.什么是Telnet协议?实现远程登录应具备哪些条件? 2.简述Telnet的工作原理。
3.什么是网络虚拟终端NVT?为什么要提出网络虚拟终端NVT的概念? 4.NVT ASCII码与ASCII码有什么不同? 5.Telnet在工作时为什么要进行选项协商过程? 6.什么是文件传输协议FTP?

89 7.FTP协议支持哪些类型文件的传输? 8.简述FTP的工作原理。 9.FTP命令有哪些类型? 10.在FTP客户主机上使用-d参数(debug)启动FTP,记录并解释屏幕显示信息的含义。 11.传输电子邮件为什么不使用FTP协议呢? 12.在TCP/IP协议下 是如何被传输的? 13.举例说明SMTP和POP3协议分别是如何工作的。 14.电子邮件的一般格式是怎样的?

90 15.MIME对邮件的格式进行了哪些扩展? 16.简述WWW的工作原理。 17.HTTP协议是如何工作的?


Download ppt "第4章 TCP/IP应用层常用协议 4.1 Telnet 协 议 4.2 文件传输协议FTP 4.3 电子邮件的工作原理及其协议"

Similar presentations


Ads by Google