《《面向应用的协议》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《面向应用的协议》PPT课件.ppt(144页珍藏版)》请在金锄头文库上搜索。
1、第第9 9章章 面向应用的协议面向应用的协议1应用层协议的特点 n每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。n应用层的许多协议都是基于客户服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。 29.1 9.1 文件传输协议(文件传输协议(FTPFTP)n9.1.1 基本原理nPort模式(主动模式 )nPassive模式(被动模式)3
2、 文件传送协议 u文件传送协议 FTP (File Transfer Protocol)是因特网上使用得最广泛的文件传送协议。uFTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。uFTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。uRFC 959 很早就成为了因特网的正式标准。 4文件传送并非很简单的问题u网络环境中的一项基本应用就是将文件从一台计算机中复制到另一台可能相距很远的计算机中。u初看起来,在两个主机之间传送文件是很简单的事情。u其实这往往非常困难。原因是众多的计算机厂商研制出的文件系统多达数百种,且差别很大。 5 FTP
3、特点u文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。uFTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。uFTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。uFTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。6两个连接u控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。u服务器控制连接的熟知端口号是21。7 两个连接(续)u实际用于传输文件的是“数据连接”。服务器端的控制进程在
4、接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。u服务器端传送数据的熟知端口是20。u数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。8FTP 使用的两个 TCP 连接 控制进程控制进程FTP 客户端客户端FTP 服务器端服务器端因特网因特网TCP 控制连接控制连接TCP 数据连接数据连接用户界面用户界面控制进程控制进程数据传送数据传送进程进程数据传送数据传送进程进程9u当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,
5、用于建立数据传送连接。u接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。u由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。 两个不同的端口号 10简单文件传送协议 TFTPuTFTP 是一个很小且易于实现的文件传送协议。uTFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。uTFTP 只支持文件传输而不支持交互。uTFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。 uTFTP其服务器进程熟知端口号码为 69。11n9.1.2 FTP命令命令行格式:ftp -
6、v -d -i -n -g 主机名n-v 显示远程服务器的所有响应信息n-d 使用调试方式n-i 在多文件传输时关闭交互模式n -n 限制ftp的自动登录,即不使用n-g 取消全局文件名12n控制命令字符串和参数描 述CDUPCDUP改变到远程系统上的父目录CWDPathnameCWDPathname改变到远程系统上的工作目录PASSPasswordPASSPassword用户的口令。在USER命令后就用QUITQUIT退出或者打断连接USERusernameUSERusername服务器上的用户名13n传输参数命令字符串和参数描 述MODEmode传输模式:流、块或者压缩PORThost-p
7、ort指定DTP应该在其上侦听连续请求的客户端口号STRUstructure文件结构:文件、记录或页TYPEtype文件类型:ASCII、EBCDIC、图像或者本地14n服务命令 字符串和参数描 述ABOR退出上一个服务命令和任何数据传输DELEPathname删除远程系统上的文件HELPstring从服务器上取帮助信息LISTPathname通过某一远程系统的数据连接发送文件或者文本表MKDPathname建立目录NLSTPathname名字表,通过数据连接发送服务器的整个当前目录NOOP无操作PWD输出工作目录。给出服务器上的当前目录名RETRPathname从服务器上获取文件15n 9.
8、1.3 应用实例FTP服务器:,用户名:username,密码:user1234。在D:盘创建一个文件夹“qint”。将要上传的文件复制到d:qint里。通过FTP命令将文件从本地上传,从服务器下载的步骤:1“开始”-“运行”-输入“FTP”2open 3user1234 (输入用户名密码)4dir(查看FTP服务器中的文件及目录)5mkdir qint6cd qint7bin(采用二进制传输 )8lcd d:qint9!dir10put i001.jpg(文件i001.jpg上传到FTP服务器默认目录 )11get d123.jpg(将FTP服务器默认目录中的文件d123.jpg下载到当前目
9、录下)12delete *.* 13cd . 14mrdir qint15bye16n9.2.1名字空间n平面名字空间n层次名字空间9.2 9.2 域名系统(域名系统(DNSDNS)17n9.2.2域名空间n名字都被定义在倒置树的结构中n最多只能有128个级 n树的每一级定义一个分层次的级 18n标号一个结点的子结点具有不同的标号,保证域名的惟一性 n域名(从结点向上读到根 )n完整域名(FQDN)n不完整域名(PQDN) n域 (domain)19n域名空间的分布 n名字服务器的层次结构 20因特网的域名空间 根四级域名mailwwwbjeducomcctvibmhp二级域名pkutsing
10、hua三级域名mailwwwcomnetorgedugovaerocnuk顶级域名域名服务器(域名服务器(DNS服务器):将域名解析成服务器):将域名解析成IP地址的专用服务器。地址的专用服务器。21域名系统 DNSu DNS (Domain Name System),因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。u名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。22因特网的域名结构u因特网采用了层次树状结构的命名方法。u任何一个连接在因特网上的主机或路由器,都有惟一的层次结构的名字,即域名。
11、u域名的结构由若干个分量组成,各分量之间用点隔开: u各分量分别代表不同级别的域名。 .三级域名三级域名.二级域名二级域名.顶级域名顶级域名23域名只是个逻辑概念u域名只是个逻辑概念,并不代表计算机所在的物理地点。u变长的域名和使用有助记忆的字符串,是为了便于人来使用。而 IP 地址是定长的 32 位二进制数字则非常便于机器进行处理。u域名中的“点”和点分十进制 IP 地址中的“点”并无一一对应的关系。点分十进制 IP 地址中一定是包含三个“点”,但每一个域名中“点”的数目则不一定正好是三个。 24n区n根服务器 n主服务器和次服务器 n主服务器:存储了关于它所管辖的区的文件 n次服务器:把一
12、个区的全部信息从另一个服务器(主服务器或次服务器)传送过来,并把这个文件存储在它的本地磁盘中 25域名服务器 n一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。n各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。n每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。nDNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位。 26区的不同划分方法举例 域 区abcxuvwty(a) 区 = 域(b) 区 域域 区区abcxuvwtycomeduorg根comeduorg根27树状结构的 DNS 域名服务器 根域
13、名服务器org 域名服务器com 域名服务器edu 域名服务器域名服务器abc 公司有两个权限域名服务器权限域名服务器根域名服务器顶级域名服务器域名服务器28域名服务器有以下四种类型 n根域名服务器 n顶级域名服务器n权限域名服务器 n本地域名服务器 29根域名服务器 最高层次的域名服务器n根域名服务器是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。n不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。n在因特网上共有13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从a 一直
14、到 m(前13 个字母)。30根域名服务器共有 13 套装置(不是 13 个机器)n这些根域名服务器相应的域名分别是 n到 2006 年底全世界已经安装了一百多个根域名服务器机器,分布在世界各地。n这样做的目的是为了方便用户,使世界上大部分 DNS 域名服务器都能就近找到一个根域名服务器。 31举例:根域名服务器的地点分布图 根域名服务器并不直接把域名直接转换成 IP 地址。 在使用迭代查询时,根域名服务器把下一步应当找 的顶级域名服务器的 IP 地址告诉本地域名服务器。共 40 个机器32顶级域名服务器(即 TLD 服务器) n这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
15、n当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。 33权限域名服务器 n这就是前面已经讲过的负责一个区的域名服务器。n当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。 34本地域名服务器 n本地域名服务器对域名系统非常重要。n当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。n每一个因特网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器。n这种域名服务器有时也称为默认域名服务器。 35提高域名服务器
16、的可靠性nDNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。n当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。n主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。 36nInternet中的DNSn类属域 标号说明新增的标号说明com商业机构aero与航空相关的网站edu教育机构biz企业或商业gov政府机构coop协作的企业机构int国际机构info信息服务提供者mil军事机构museum博物馆和其他非赢利机构net网络支持中心name个人名字(单个的)
17、org非赢利机构pro专业个体机构37n国家域使用二字符的国家缩写,如.cnn反向域 *把地址映射为名字 *反向查询或指针(PTR)查询:在域名空间中要增加反向域,其第一级结点叫做arpaarpa *反向域名解析与通常的正向域名解析相反,提供IP地址到域名的对应,反向域名格式如:X.X.X.in-addr.arpa。目前很多网络服务提供商要求访问的IP地址具有反向域名解析的结果,否则不提供服务。38n9.2.3名字地址解析n解析程序n名字到地址的映射 n地址到名字的映射 n递归解析 n迭代解析 n高速缓存 39域名的解析过程 n主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本
18、地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。n本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。40本地域名服务器采用迭代查询 顶级域名服务器权限域名服务本地域名服务器根域名服务器迭代查询 的 IP 地址 递归查询需要查找 的 IP 地址41本地域名服务器采用递归查询(比较少用) 顶级域名服务器权限域名服务本地域名
19、服务器 根域名服务器递归查询递归查询 的 IP 地址 需要查找 的 IP 地址42域名的高速缓存 n每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。n可大大减轻根域名服务器的负荷,使因特网上的 DNS 查询请求和回答报文的数量大为减少。 n为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项(例如,每个项目只存放两天)。n当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。 43首部问题部分9.2.4 DNS报文与记录类型 查询报文响应
20、报文首部问题部分回答部分授权部分附加部分包括一个或多个问题记录从服务器到客户(解析程序)的回答为查询给出关于一个或多个授权服务器的信息(域名) 提供有助于解析程序的附加新息 包括个或多个资源记录44 标 识标 志问题记录数回答记录数(在查询报文中是全0)授权记录数(在查询报文中是全0)附加记录数(在查询报文中是全0)首部报文QR OpcodeAATCRDRA000 rCode16bit查询/响应 定义查询或响应的类型 授权回答 截断要求递归 递归响应 响应中的差错状态 标志子字段45n记录类型 n问题记录 n查询名字n查询类型5 a d m i n 4 b j u t 3 e d u 2 c
21、n 0类型助记符说 明1A地址。32bit的IPv4地址。用来把域名转化成IPv4地址2NS名字服务器。它标志区的授权服务器5CNAME规范名称。它定义主机的正式名字的别名6SOA开始授权。它标记区的开始。通常是区文件的第一个记录11WKS熟知服务。它定义主机提供的网络服务。12PTR指针。它用来把IP地址转换成域名13HINFO主机信息。它给出了主机使用的硬件和操作系统的描述15MX邮件交换。它把邮件改变路由送到邮件服务器28AAAA地址。IP v6地址。252AXFR传送整个区的请求255ANY对所有记录的请求46n问题记录 n查询类 类型助记符说 明1ANInternet2CSNETCS
22、NET 网络3CSCOAS网络4HS由MIT开发的Hesoid服务器47n问题记录 n资源记录 域名(16bits)域类型 域类生存时间资源数据长度数 据数据(可变长度)48n压缩 n当域名重复出现时,需要用偏移指针来替换 11xxxx xxxxxxxxxx2位 开始字节的地址(14位) 015偏移指针的格式 49n封装 n解析程序事先知道响应报文的长度超过512字节,就应当使用TCP连接。n若解析程序不知道响应报文的长度,它可以使用UDP端口。响应报文的长度超过512字节,服务器截断报文,并把TCP位置l509.2.5 9.2.5 应用实例应用实例例例:解析程序向本地服务器发送查询报文,要找
23、出主机“”的IP地址查询报文 QROpcodeAATCRDRA000rCode00000001000000000x13330x010010003www4bjut3edu2cn1151QROpcodeAATCRDRAxxxrCode10000001100000000x13330x818011003www4bjut3edu2cn0101C00C0101120004202112781响应报文529.3 Telnet9.3 Telnet和和RloginRlogin:远程登录远程登录n9.3.1 Telnet基本原理三种基本服务n定义一个网络虚拟终端为远程的系统提供一个标准接口;n包括一个允许客户机和服
24、务器协商选项的机制,而且它还提供一组标准选项; n对称处理连接的两端,不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。53Telnet 简介nTelnet 是一个简单的远程终端协议,也是因特网的正式标准。n用户用 Telnet 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。nTelnet 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。 54客户服务器方式n现在由于 PC 机的功能越来越强,用户已较少使用 Telnet 了。nTe
25、lnet 也使用客户服务器方式。在本地系统运行 Telnet 客户进程,而在远地主机则运行 Telnet 服务器进程。n和 FTP 的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。 55Telnet 使用网络虚拟终端 NVT 格式 因特网TCP 连接 客户端 服务器端 使用客户端的格式 使用服务器端的格式 使用 NVT 格式客户服务器56网络虚拟终端 NVT 格式 n客户软件把用户的击键和命令转换成 NVT 格式,并送交服务器。n服务器软件把收到的数据和命令,从 NVT 格式转换成远地系统所需的格式。n向用户返回数据时,服务器把远地系统的格式转换为 NVT 格式,本地
26、客户再从 NVT 格式转换到本地系统所需的格式。 57n传送远地命令 n强制命令 n选项协商589.3.2 Telnet9.3.2 Telnet的工作过程的工作过程n本地与远程主机建立TCP连接,用户必须知道远程主机的IP地址或域名n从本地主机向远程主机发送IP数据报(用户名、口令及命令或字符)n将远程主机输出的数据送回本地终端(输入命令回显和命令执行结果)n本地终端对远程主机进行撤消TCP连接。599.3.3 Windows20009.3.3 Windows2000的的TelnetTelnet服务服务 n手动启动 Telnet 服务n在命令提示符下键入net start telnet n“开
27、始”程序”“管理工具” ”服务”n设置telnet启动n自动启动 Telnet 服务n“开始”程序”“管理工具” ”服务”n设置telnet自动启动n命令方式启动Telnet服务ntelnet ip_address / server_name 609.3.3 Windows 79.3.3 Windows 7的的TelnetTelnet服务服务 n打开“控制面板”n“程序”找到“程序和功能”n点击左上方的“打开或关闭windows功能”n弹出windows功能的对话框,这个对话框里面有许多windows的小功能,再找到Telent Client,打上勾。619.3.4 Rlogin9.3.4 R
28、loginnRlogin简介n远程登录(rlogin)是一个 UNIX 命令,它允许授权用户进入网络中的其它 UNIX 机器并且就像用户在现场操作一样。远程登录命令 rlogin:Remote Login in Unix systemsn一旦进入主机,用户可以操作主机允许的任何事情,比如:读文件、编辑文件或删除文件等。n每一个远程机器都有一个文件(/etc/hosts.equiv),包括了一个信任主机名集共享用户名的列表。本地用户名和远程用户名相同的用户,可以在 /etc/hosts.equiv 文件中列出的任何机器上登录到远程主机,而不需要密码口令。n个人用户可以在主目录下设置相似的个人文件
29、(通常叫 .rhosts)。此文件中的每一行都包含了两个名字 主机名和用户名,两者用空格分开。.rhosts 文件中的每一行允许一个登录到主机名的名为用户名的用户无需密码就可以登陆到远程主机。629.3.4 Rlogin9.3.4 Rloginn建立连接(TCP)n客户进程给服务器进程发送4个以NULL(0)结束的字符串 n服务器进程返回一个空字符(0)响应n服务器进程可以选择是否要求用户输入口令 n服务器进程给客户进程发送请求,询问终端的窗口大小 63n流量控制n本地流量控制n远程流量控制 64n从服务器到客户机的命令字节描述0x02清仓输出。客户丢弃所有从服务器收到的数据,直到命令字节(紧
30、急数据的最后一个字节)。客户还丢弃任何有可能被缓存的挂起输出(pending output)。当服务器收到客户发出的中断命令时,就发送此命令。0x10客户停止执行流量控制0x20客户继续进行流量控制处理0x80客户立即响应,将当前窗口大小发送给服务器,并在今后当窗口大小变化时通知服务器。通常,当连接建立后,服务器就立即发送这个命令65n从客户到服务器的命令 将当前窗口大小发送给服务器 客户的窗口大小发生变化且收到服务器发来的0x80命令,向服务器报告66n工作方式n字符模式字符说明终结符(句点或Ctrl+d)这个字符终止客户进程作业挂起符(Ctrl+z)这个字符挂起客户进程。用户可以运行其他程
31、序,在以后再回到Rlogin。可以用UNIX命令如fg继续客户程序输入挂起符(Ctrl+y)这个字符只把客户输入挂起。用户可以运行其他程序。用户键入的每一个字符都被解释为这个程序的输入,而不是Rlogin。但是,从服务器发送的每一个字符都将显示在屏幕上。679.3.5 9.3.5 在在UNIX/LINUXUNIX/LINUX中配置中配置RloginRlogin服务服务n相关文件解释n/etc/hostsn/etc/hosts.equivn.rhostsn/etc/hosts.allow and /etc/hosts.deny 68n 开启Rlogin服务rlogin命令用法:rlogin -8
32、EKLdx -e char -k realm -l username hostn- 8允许8位输入数据n- E禁止使用ESC键n- K不能使用kerberos认证机制n- d使用socket调试n- e允许用户指定退出字符,缺省字符为“”n- k使远程kerberos认证密钥可在指定域获取,而不需从远程主机获取n- x在允许的情况下使能DES加密机制n- l 缺省时远程系统上的登录帐号与本地系统上的登录帐号相同示例:%rlogin -l jamisonn hostname1用户jamisonn在远程主机hostsname1上创建登录会话nRlogind守护进程必须在远程主机上运行 69n 应用
33、实例TerminatorTerminatorBackbone(Central Cable)主机名:hunter用户名:try主机名:host1用户名:tryhost1上的用户try使用rlogin登录到hunter上v在host1和hunter中,配置DNS文件/etc/hosts,加入对方的IP映射信息v配置双方的信任列表文件:/etc/hosts.equiv使用Redhat 9.0,不需要再配置其他文件v在hunter的终端中运行setup,打开rlogin,rsh服务v运行/etc/rc.d/init.d/xinted restart重启inted守护进程try在两主机内有帐户,不再需要
34、密码登录 709.4 HTTP9.4 HTTP协议协议n9.4.1 HTTP的工作过程n客户机与www服务器建立连接n发送请求给www服务器n服务器接到请求后,给予相应的响应报文http:/ 超文本传输协议 域名或站点服务器名子目录 HTML文件 71万维网 WWWu万维网 WWW (World Wide Web)并非某种特殊的计算机网络。u万维网是个大规模、联机式信息储藏所。u万维网用链接方法能非常方便地从因特网上的一个站点访问另一站点,主动按需获取信息。这种访问方式称为“链接”。72万维网提供分布式服务 万维网万维网站点站点 A万维网万维网站点站点 C万维网站点万维网站点 E万维网站点万维
35、网站点 D万维网站点万维网站点 B链接到链接到链接到链接到链接到链接到链接到链接到链接到链接到链接到链接到73 万维网的工作方式 u万维网以客户服务器方式工作。n 浏览器/服务器(Browse/Server B/S)u浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,称为万维网服务器。u客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。u在客户主窗口上显示出的万维网文档称为页面(page)。74万维网必须解决的问题 n(1)怎样标志分布在整个因特网上的万维网文档?n u使用统一资源定位符 URL (Uniform Resource L
36、ocator)来标志万维网上的各种文档。u使每一个文档在整个因特网的范围内具有惟一的标识符 URL。 75万维网必须解决的问题 n(2)用何协议实现万维网各种超链的链接?n u在万维网客户程序与服务器程序之间进行交互所使用 的 协 议 , 是 超 文 本 传 送 协 HTTP (HyperText Transfer Protocol)。uHTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送,其服务器端进程熟知端口号为80。 76万维网必须解决的问题 n(3) 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?n u超 文 本 标 记
37、语 言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。 77万维网必须解决的问题 n(4) 怎样使用户能够很方便地找到所需的信息? u为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。E.g. u u 78(1) URL 的一般形式 u统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。uURL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。 uURL 的一般形式是::
38、/:/ftp 文件传送协议 FTPhttp 超文本传送协议 HTTP79URL 的一般形式 u由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。uURL 的一般形式是::/:/ 是存放资源的主机在因特网中的域名80URL 的一般形式 u由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。uURL 的一般形式是::/:/可省略可省略81使用 HTTP 的 URLn使用 HTTP 的 URL 的一般形式n http:/:/ 这表示使用 HTTP 协议82使用 HTTP 的 URLn使用 HTTP 的 URL 的一般形式n http:/:/ 冒号和两个斜
39、线是规定的格式冒号和两个斜线是规定的格式83使用 HTTP 的 URLn使用 HTTP 的 URL 的一般形式n http:/:/ 这里写主机的域名这里写主机的域名84使用 HTTP 的 URLn使用 HTTP 的 URL 的一般形式n http:/:/ HTTP 的默认端口号是的默认端口号是 80,通常可省略,通常可省略85使用 HTTP 的 URLn使用 HTTP 的 URL 的一般形式n http:/:/ 若再省略文件的若再省略文件的项,则项,则 URL 就指就指到因特网上的某个到因特网上的某个主页主页(home page)。 86(2) HTTP协议uHTTP协议定义了浏览器怎样向万维
40、网服务器请求文档,以及服务器怎样把文档传送给浏览器。u从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。 87万维网的工作过程 因特网因特网服务器服务器链接到链接到URL的超链的超链HTTP 使用此使用此 TCP 连接连接浏览器浏览器 程序程序服务器服务器 程序程序HTTP客户客户西大西大院系设置院系设置建立建立 TCP 连接连接释放释放 TCP 连接连接 HTTP 响应报文响应报文 响应文档响应文档 HTTP 请求报文请求报文 请求文档请求文档88用户点击鼠标后所发生
41、的事件 n(1) 浏览器分析超链指向页面的 URL。n(2) 浏览器向 DNS 请求解析 的 IP 地址。n(3) 域名系统 DNS 解析出GXU服务器的 IP 地址。n(4) 浏览器与服务器建立 TCP 连接。n(5) 浏览器发出取文件命令:n GET /chn/yxsz/index.htm。n(6) 服务器给出响应,把文件 index.htm 发给浏览器。n(7) TCP 连接释放。n(8) 浏览器显示“西大院系设置”文件 index.htm 中的所有文本。89n9.4.2 HTTP协议的运作方式请求链用户代理(UA)源服务器(O)响应链单独连接 通道 请求链UA响应链VVVV90nHT
42、TP协议的内部操作过程 信息交换过程 客户机服务器建立连接发送请求信息发送响应信息关闭连接919.4.3 HTTP9.4.3 HTTP版本版本1.11.1的特点的特点1. 持续和非持续连接n非持续连接:每一个请求/响应都要建立一次TCP连接n持续连接:一次TCP连接为多个请求/响应服务2.代理服务器n保存对最近请求的响应的副本n通过高速缓存减少所需的通信量929.4.4 9.4.4 应用实例应用实例例1:读取关于文档的信息。使用HEAD方法来读取关于HTML文档的信息。n请求报文: HEAD /user/wangqm/index.html HTTP/1.1 Accept:*/* n响应报文:
43、HTTP/1.1 200 OK Date : Mon,1-May-06 12:15:12 GMT Server:BJUT001 MIME-version:1.0 Content-type:text/html Content-length:1048可以接受任何格式的文档 服务器 MIME版本 文档类型 文档长度93代理服务器(proxy server) u代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代表浏览器发出 HTTP 请求。u万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。u当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送
44、出去,而不需要按 URL 的地址再去因特网访问该资源。 94使用高速缓存可减少访问因特网服务器的时延校园网源点服务器2 Mb/s因特网浏览器R1R2这条链路上的时延很大没有使用高速缓存的情况所有万维网通信量都经过这条链路95使用高速缓存的情况校园网校园网校园网的高速缓存校园网的高速缓存(代理服务器)(代理服务器)源点服务器源点服务器2 Mb/s因特网因特网浏览器浏览器R1R2(1) 浏览器访问因特网的服务器时,要先与校园网的高速缓存建立 TCP 连接,并向高速缓存发出 HTTP 请求报文。 96使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(2
45、) 若高速缓存已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器。97使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(3) 否则,高速缓存就代表发出请求的用户浏览器,与因特网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。98使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(4) 源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的高速缓存。99使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(5) 高
46、速缓存收到此对象后,先复制在其本地存储器中(为今后使用),然后再将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。100 (3)超文本标记语言 HTML (HyperText Markup Language)u超文本标记语言 HTML 中的 Markup 的意思就是“设置标记”。uHTML 定义了许多排版的命令(标签)。uHTML 把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML 文档。HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。 101HTML 文档 u仅当 HTML 文档是以.html 或 .htm 为后缀时,浏览
47、器才对此文档的各种标签进行解释。u如 HTML 文档改换以 .txt 为其后缀,则 HTML 解释程序就不对标签进行解释,而浏览器只能看见原来的文本文件。u当浏览器从服务器读取 HTML 文档后,就按照 HTML 文档中的各种标签,根据浏览器所使用的显示器的尺寸和分辨率大小,重新进行排版并恢复出所读取的页面。102HTML 文档中标签的用法 一个 HTML 的例子 HTML 很容易掌握 这是第一个段落。虽然很 短,但它仍是一个段落。 这是第二个段落。HTML 文档开始103HTML 文档中标签的用法 一个 HTML 的例子 HTML 很容易掌握 这是第一个段落。虽然很 短,但它仍是一个段落。
48、这是第二个段落。首部开始104HTML 文档中标签的用法 一个 HTML 的例子 HTML 很容易掌握 这是第一个段落。虽然很 短,但它仍是一个段落。 这是第二个段落。标题105HTML 文档中标签的用法 一个 HTML 的例子 HTML 很容易掌握 这是第一个段落。虽然很 短,但它仍是一个段落。 这是第二个段落。首部结束106HTML 文档中标签的用法 一个 HTML 的例子 HTML 很容易掌握 这是第一个段落。虽然很 短,但它仍是一个段落。 这是第二个段落。主体开始107HTML 文档中标签的用法 一个 HTML 的例子 HTML 很容易掌握 这是第一个段落。虽然很 短,但它仍是一个段落
49、。 这是第二个段落。1 级标题108 一个 HTML 的例子 HTML 很容易掌握 这是第一个段落。虽然很 短,但它仍是一个段落。 这是第二个段落。HTML 文档中标签的用法 第一个段落109 一个 HTML 的例子 HTML 很容易掌握 这是第一个段落。虽然很 短,但它仍是一个段落。 这是第二个段落。HTML 文档中标签的用法 第二个段落110HTML 文档中标签的用法 一个 HTML 的例子 HTML 很容易掌握 这是第一个段落。虽然很 短,但它仍是一个段落。 这是第二个段落。主体结束111HTML 文档中标签的用法 一个 HTML 的例子 HTML 很容易掌握 这是第一个段落。虽然很 短
50、,但它仍是一个段落。 这是第二个段落。HTML 文档结束1129.59.5简单邮件传送协议简单邮件传送协议(SMTP)(SMTP)9.5.1 SMTP简介nSMTP支持:n把邮件发送给一个或多个收信人。n发送包括文本、声音、视频或图形的报文。n把报文发给Internet以外的网络上的用户。 113电子邮件u电子邮件(e-mail)是因特网上使用得最多的和最受用户欢迎的一种应用。u电子邮件把邮件发送到 ISP 的邮件服务器,并放在其中的收信人邮箱中,收信人可随时上网到 ISP 的邮件服务器进行读取。u电子邮件不仅使用方便,而且还具有传递迅速和费用低廉的优点。u现在电子邮件不仅可传送文字信息,而且
51、还可附上声音和图像。114电子邮件的一些标准u发送邮件的协议:SMTPu读取邮件的协议:POP3 和 IMAPuMIME 在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等),使用 MIME 可在邮件中同时传送多种类型的数据。 115电子邮件的最主要的组成构件 发送方发送方邮件缓存邮件缓存 接收端接收端邮件服务器邮件服务器用户代理用户代理SMTPSMTPPOP3 发送端发送端邮件服务器邮件服务器用户代理用户代理用户邮箱用户邮箱接收方接收方(发送邮件发送邮件)(发送邮件)(发送邮件)(读取邮件读取邮件)因特网因特网SMTPPOP3发送发送邮件邮件发送邮件发送邮件 SMTP读取读取邮件
52、邮件TCP连接连接TCP连接连接发送方发送方邮件服务器邮件服务器SMTP客户客户POP3客户客户发件人发件人用户代理用户代理接收方接收方邮件服务器邮件服务器SMTP服务器服务器POP3服务器服务器SMTP服务器服务器SMTP客户客户收件人收件人用户代理用户代理TCP 连接连接116u一个邮件服务器既可以作为客户,也可以作为服务器。u例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A 就作为 SMTP 客户,而 B 是 SMTP 服务器。u当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A 就作为 SMTP 服务器,而 B是 SMTP 客户。邮件客户与服
53、务器 117电子邮件地址的格式uTCP/IP 体系的电子邮件系统规定电子邮件地址的格式如下:n 收件人邮箱名邮箱所在主机的域名u符号“”读作“at”,表示“在”的意思。 例如,电子邮件地址 邮箱所在的主机的域名在全世界必须是唯一的 这个用户名在该域名的范围内是唯一的。 118简单邮件传送协议 SMTP uSMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息。u由于 SMTP 使用客户服务器方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。119SMTP 通信的三个阶段 n1. 连接建立:连接是在发送主机的
54、SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。 n2. 邮件传送。n3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。 120vSMTP基本方式 用户ASMTP客户用户BSMTP服务器因特网121v代理方式 用户AUA用户BMTA客户MTA服务器UA因特网122v多个中继服务器方式 用户AUA用户BMTA服务器UAMTA中继中继MTAMTA客户123v邮件网关 用户AUA用户BMTA服务器UAMTA客户因特网专用网MTA124n 9.5.2 用户代理(UA)1发送邮件Mail From:RCPT TO: 信封From:: Wang Qua
55、nminTo:: Arthur zhaoDate:1/ 5/2006Subject:Network报文首部Dear Mr zhao: I want to .Yours truly,Arthur Wang报文主体发信人地址、收信人地址以及其他信息 发信人、收信人、报文的主题及其他信息 收信人将要读取的真正的信息 1252接收邮件3地址W本地邮箱地址部分域名1269.5.3 9.5.3 延迟交付延迟交付1发送端的时延用户AUAMTA因特网邮箱服务器1272接收端的时延用户AUAMTA因特网邮箱服务器1283中间环节的时延n中间的MTA可以充当客户或服务器n中间的MTA可以接收邮件,在它的邮箱和临时
56、存储系统中保存邮件报文,并在合适的时候发送。1299.5.4 9.5.4 别名别名1一对多的扩展几个朋友(一个名字)一对多别名扩展程序数据库(多个收信人)1302多对一的扩展 多对一别名扩展程序数据库(多个地址)(一个收信人)wangqm1319.5.5 9.5.5 邮件传送代理邮件传送代理(MTA)(MTA)用户AUAMTA临时存储系统客户因特网别名扩展程序数据库邮箱MTA服务器UAMTA客户别名扩展程序数据库邮箱MTA服务器接口接口临时存储系统用户B1329.5.6 9.5.6 命令和响应命令和响应MTA 客户MTA 服务器命令响应1331命令 关键词变量关键词变量HELOHELO发送端的
57、主机名NOOP无操作,检查收信人的状态MAIL MAIL FROMFROM发信人TRUN让发信人和收信人交换位置RCPT TORCPT TO预期的收信人EXPN需要扩展的邮件发送清单DATADATA邮件的主体 HELP帮助信息QUITQUIT结束报文SEND FROM预期的收信人RSET使当前的邮件事务异常中止SMOL FROM预期的收信人VRFY需要验证的收信人的名字SMAL FROM预期的收信人1342响应代码说 明正面完成回答221214220220221250250251系统状态或求助回答求助报文服务就绪服务就绪服务关闭传输信道请求命令完成请求命令完成用不是本地的;报文将被转发正面中间
58、回答354开始邮件传输代码说 明永久负面完成回答500501502503504550551552553554语法差错;不能识别的命令语法的参数或变量差错命令未实现命令序列不正确命令暂时未实现命令未执行;邮箱不可用用户非本地的所请求的动作异常中止;存储位置超过所请求的动作未发生;邮箱名不允许用事务失败过渡负面完成回答421450451452服务不可用邮箱不可用命令异常中止;本地差错命令异常中止;存储器不足1359.5.7 9.5.7 邮件传送阶段邮件传送阶段1. 连接建立MTA客户MTA服务器220服务就绪HELO:mail.bjut.edu250 OK1362. 报文传送1373. 连接终止M
59、TA客户MTA服务器QUIT221服务关闭1389.5.8 9.5.8 通用因特网邮件扩充通用因特网邮件扩充(MIME)(MIME)nMIME的英文全称是Multipurpose Internet Mail Extensions ,它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。n五种首部,加在原始的SMTP首部部分,定义参数的转换:nMIME版本(MIME-Version)n内容-类型(Content-Type)n内容-传送-编码(Content-Transfer-Encoding)n内容-标识(Content-ID)n内容-描述(Content-D
60、escription)1399.5.9 9.5.9 邮局协议邮局协议(POP)(POP)和和InternetInternet邮件读取协议版本邮件读取协议版本4(IMAP4)4(IMAP4)n邮件交付的第一和第二阶段使用SMTP(推送协议)n第三阶段使用邮件读取协议(拉取协议)n邮局协议版本3(POP3)nInternet邮件读取协议版本4(IMAP4) 140邮件读取协议POP3 和 IMAPu邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本 POP3。uPOP 也使用客户服务器的工作方式。u在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户
61、所连接的 ISP 的邮件服务器中则运行 POP 服务器程序。 141网际报文存取协议IMAP(Internet Message Access Protocol) uIMAP 也是按客户服务器方式工作,现在较新的版本是 IMAP4。u用户在自己的 PC 机上就可以操纵 ISP 的邮件服务器的邮箱,就像在本地操纵一样。u因此 IMAP 是一个联机协议。当用户 PC 机上的 IMAP 客户程序打开 IMAP 服务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上。 142IMAP 的特点uIMAP最大的好处就是用户可以在不同的地方使用不同的计算机随时上网阅读和处
62、理自己的邮件。uIMAP 还允许收信人只读取邮件中的某一个部分。例如,收到了一个带有视像附件(此文件可能很大)的邮件。为了节省时间,可以先下载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。uIMAP 缺点是如果用户没有将邮件复制到自己 PC 机上,则邮件一直是存放在 IMAP 服务器上。因此用户需要经常与 IMAP 服务器建立连接。 143邮件各协议u不要将邮件读取协议 POP 或 IMAP 与邮件传送协议 SMTP 弄混。u发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。u而 POP 协议或 IMAP 协议则是用户从目的邮件服务器上读取邮件所使用的协议。 144