TCP IP协议与网络编程 任泰明 第4章 TCP应用层常用协议

上传人:E**** 文档编号:89374906 上传时间:2019-05-24 格式:PPT 页数:90 大小:1.39MB
返回 下载 相关 举报
TCP IP协议与网络编程 任泰明 第4章 TCP应用层常用协议_第1页
第1页 / 共90页
TCP IP协议与网络编程 任泰明 第4章 TCP应用层常用协议_第2页
第2页 / 共90页
TCP IP协议与网络编程 任泰明 第4章 TCP应用层常用协议_第3页
第3页 / 共90页
TCP IP协议与网络编程 任泰明 第4章 TCP应用层常用协议_第4页
第4页 / 共90页
TCP IP协议与网络编程 任泰明 第4章 TCP应用层常用协议_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《TCP IP协议与网络编程 任泰明 第4章 TCP应用层常用协议》由会员分享,可在线阅读,更多相关《TCP IP协议与网络编程 任泰明 第4章 TCP应用层常用协议(90页珍藏版)》请在金锄头文库上搜索。

1、第4章 TCP/IP应用层常用协议,4.1 Telnet 协 议 4.2 文件传输协议FTP 4.3 电子邮件的工作原理及其协议 4.4 文本传输协议HTTP 习题,4.1 Telnet协议,4.1.1 远程登录 在计算机网络产生的初期,其主要目标就是能让一台终端(或计算机)连接到远程的一台计算机上,使普通用户也可以使用远程大型主机上的计算机资源。为了实现这样的目标,系统起码应该具备如下条件:, 具有一个本地系统,它可以是一台终端或一台主机(我们主要讨论主机时的情况); 具有一个远程系统,它是运行着某种操作系统的一立的主机; 本地系统和远程系统可以互相通信; 本地系统的用户在远程多用户系统中有

2、用户账号。 具备以上条件的系统,当远程主机在运行并提供相应的服务时,本地系统的用户就可以通过网络,使用他在远程系统的账号登录到远程主机,即进行远程登录(Remote Login)。远程登录成功后,用户就可以访问远程系统中自己权限范围内的资源。,如果进行远程登录的本地主机和远程主机使用的是相同的操作系统,那么远程登录的过程实现起来是比较简单的,如Unix系统中使用的Rlogin。 Telnet(RFC 854定义了该协议的规范)是一个可用于异种系统的远程登录协议,有些人把它直接叫远程登录命令,因为它本身也是一个命令。,4.1.2 Telnet的工作原理 在工作时,本地客户Telnet进程首先提出

3、远程登录的请求,远程Telnet服务器进程在23端口进行守候,这样通过3次握手就在客户传输层与服务器传输层之间建立了一条TCP连接,在此连接上进行它们之间的交互通信,其工作原理可用图4-1表示。,图4-1 Telnet工作原理,(1) 用户从客户终端上的输入被送到操作系统内核的终端驱动进程,由终端驱动进程将用户的输入送到Telnet客户进程。 (2) Telnet客户进程工作在应用层,它把收到的数据送到客户TCP,由客户TCP通过它和服务器之间已经建立的TCP连接把数据传输到服务器的对等层(即服务器TCP层),再由服务器TCP层将收到的数据送到其应用层的Telnet服务器进程。 (3) Tel

4、net服务器进程不能直接处理(解释或执行)收到的数据,因为服务器操作系统有很多可执行的命令,用户可能会提出执行各种命令的请求,显然,Telnet服务器进程不具备这个能力,这只能由服务器上运行的操作系统来完成。,(4) 由于对服务器端的操作系统内核来说,Telnet服务器进程就好像是它的一个终端,因此在服务器内核中有一个“伪终端(Pseudo-terminal)驱动进程”,它是Telnet服务器进程到服务器操作系统内核的接口,可以把从Telnet服务器进程接收的输入数据送到登录外壳(Shell)进程,这就使得对于登录外壳进程来讲,它好像直接被Telnet服务器进程调用,任何运行在登录外壳进程处的

5、程序都感觉是直接和一个终端在进行交互。 (5) 登录外壳进程对数据(一般是命令)进行处理,把处理后的结果(如一个命令的执行情况)沿原路反向传输给客户终端。,4.1.3 网络虚拟终端(NVT)的概念 1什么是网络虚拟终端 原理如图4-2所示。,图4-2 NVT工作原理图,2. NVT ASCII码 如表4-1所示。,表4-1 NVT重定义的8个ASCII码控制字符,3. NVT控制命令 Telnet通信的客户端和服务器端都采用专用的控制命令来协调或控制双方的通信过程。 为了区别普通的NVT ASCII码字符,这些NVT控制命令用最高位为1的8个比特(1个字节)表示。NVT控制命令的格式固定为所有

6、命令都以字节0xff(对应十进制数的255)开始,即0xff是一个NVT控制命令开始的标记,该字节后面的一个字节才是命令字节,命令字节后面是一个字节的选项字段,如图4-3所示。,图4-3 NVT工作原理图,因为1个字节的0xff表示后面紧跟着的是命令,所以把它称为IAC(Interpret As Command,意思是“作为命令来解释”)。所有的NVT控制命令如表4-2所示,在后面将举例说明它们的用法。,表4-2 NVT控制命令,表4-2 NVT控制命令,4.1.4 Telnet协议选项协商 NVT可以使不同的系统互操作,但是由于通信的双方互不了解对方可以提供哪些功能,多数用户有比较复杂的终端

7、,因而它们都希望对方能提供更多的服务。Telnet协议解决这个问题采用的方法是提供一组选项,在要使用某项功能(选项)时,通信的双方先进行选项协商,使通信的双方明白哪些功能由对方提供,哪些功能无法完成,即在通信时双方可以达成一致,这就是选项协商。 表4-2NVT控制命令选项协商的基本策略是任一方可以在初始化时提出一个选项生效的请求,另一方可以接受,也可以拒绝这一请求。,对于任何给定的选项,连接的任何一方都可以发送下面4种请求中的任意一个请求: WILL:发送方本身将激活选项。接收方可以同意(用DO应答),也可以不同意(用DONT应答)。 DO:发送方想让接收方激活选项。接收方可以同意(用WILL

8、应答),也可以不同意(用WONT应答)。 WONT:发送方本身想禁止选项。接收方只能同意(用DONT应答)。 DONT:发送方想让接收方去禁止选项。接收方只能同意(用WONT应答)。 以上4种请求共有6种不同的组合(下面用X表示要协商的某个选项),见表4-3。,表4-3 Telnet选项协商的6种情况,选项协商的格式如图4-3所示,它由3个字节组成:第一个字节必须为IAC;第二个字节是WILL、DO、WONT或DONT 4者之一;第三个字节指明要激活或禁止的选项。现有40多个可以协商的选项,表4-4列出了其中的一部分。,表4-4 Telnet协议选项代码表,表略,4.1.5 Telnet协议选

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

10、et协议选项协商的整个过程如表4-5所示。,表4-5 Telnet协议选项协商实例,表略,4.2 文件传输协议FTP,4.2.1 FTP简介 4.2.2 FTP支持的文件类型和文件结构 1文件类型 FTP可以使用的文件类型有以下4种: (1) ASCII码文件,这是FTP默认的文本文件格式。 (2) EBCDIC码文件,它也是一种文本类型文件,用8位代码表示一个字符,该文本文件在传输时要求两端都使用EBCDIC码。,(3) 图像(Image)文件,也称为二进制文件类型,发送的数据为连续的比特流,通常用于传输二进制文件。实际传输时,发送方将数据打包成8位,然后以字节为单位进行传输。 (4) 本地

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

12、方式,文件以字节流的形式传输。 (2) 块方式,文件以一系列块来传输,每块前面都带有自己的头部。 (3) 压缩方式,用来对连续出现的相同字节进行压缩,现在已很少使用。,4.2.3 FTP的工作原理 下面以客户要从FTP服务器上下载一个文件为例,来说明FTP的完整工作过程。其工作原理可用图4-4表示。,图4-4 文件传输工作原理,1启动FTP 2建立控制连接 3建立数据连接和进行文件传输 用户协议解释器对该命令进行如下处理: (1) 首先在客户端请求分配一个临时的TCP端口号。 (2) 然后在客户端由客户协议解释器通过控制连接向服务器协议解释器发送两条命令:一条命令(使用PORT命令)是把客户端

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

14、TP 在下列3种情况下都要在客户和服务器之间自动建立数据连接: 从客户向服务器发送一个文件; 从服务器向客户发送一个文件; 从服务器向客户发送文件目录列表。 时控制连接和数据连接可以分别表示为: 控制连接: 数据连接:,4.2.4 FTP命令和应答 1FTP命令 FTP命令都是由3个或4个大写ASCII码字符组成的,表4-6列出了FTP命令,共分为三大类。,表4-6 FTP命令,表略,2FTP应答 FTP命令的应答是服务器对FTP命令执行情况的响应,它主要有两方面的功能:一是服务器对数据传输的请求和过程进行同步,这是TCP协议所要求的,TCP要求对接收到的数据都要进行确认;二是让用户了解服务器

15、的状态,用户可以根据收到的状态信息对服务器是否正常执行了有关操作进行判断。 详细内容见表4-7。,表4-7 FTP应答信息,下面举一些常见应答信息的实例: 125 数据连接已经打开,传输开始。 200 准备就绪。 214 帮助报文(面向用户)。 331 用户名就绪,要求输入口令。 425 不能打开数据连接。 500 语法错误(未认可的命令)。 501 语法错误(无效参数)。 502 未实现的MODE(方式命令)类型。 通常每个FTP命令都产生一行回答。例如,QUIT命令可以产生如下应答: 221 Goodbye.,4.2.5 FTP工作实例 下面的FTP工作实例中,我们在FTP客户主机Host

16、1上只输入了3条交互式FTP用户命令,如表4-8所示。,表4-8 FTP工作实例,表略,4.3 电子邮件的工作原理及其协议,4.3.1 TCP/IP协议下E-mail的工作原理 图4-5为在主机1上工作的用户Li,通过Internet要给在主机2上工作的用户Wang发送电子邮件时的示意图。,图4-5 邮件传输过程示意图,现在设用户Li给用户Wang开始发送电子邮件,可用图4-6表示电子邮件传输原理模型,其过程如下: (1) 用户Li首先利用主机1上的电子邮件应用软件编写好邮件,邮件至少应包括发件人地址、收件人地址和邮件正文。 (2) 用户Li利用主机1上的电子邮件应用软件发送邮件。发送的具体工作是由主机1上的电子邮件应用软件把邮件交给一个叫SMTP客户进程的邮件传输模块来完成的,如图4-6所示。,图4-6 邮件传输原理模型图,(3) 主机1的SMTP客户进程主动发起与邮件服务器1的SMTP服务器进程建立连接的请求,连接建立好后,按SMTP协议的要求,将该邮件传输到邮件服务器1。 (4) 对

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号