
《计算机网络原理与技术(第二版)》第章应用层(可编辑).doc
12页《计算机网络原理与技术(第二版)》第7章应用层 计算机网络 第七章 应用层 主要内容 域名系统 文件传输 电子邮件 万维网 多媒体应用 主机配置 应用的体系结构 客户/服务器体系结构 有一个总是打开的服务器,在固定的众所周知的地址上为客户机提供服务,客户机之间不直接通信,如:电子邮件、文件传输、… P2P体系结构: 没有一个总是打开的服务器,任意一对主机(称对等方)之间直接通信,如P2P文件共享 混合体系结构 同时使用客户/服务器结构和P2P结构,如具有联系人列表的即时讯息 1. 域名系统DNS 网络内部使用IP地址来标识主机,而人们倾向于使用便于记忆的ASCII名字,因而需要一种名字服务系统将对用户友好的名字转换成对路由器友好的地址 域名系统是一种分层的基于域的命名方案和实现这种命名方案的分布式数据库: 层次命名解决了大规模网络中名字冲突的问题 分布式数据库解决了表的维护与传播问题 域名系统通常由其它应用使用,将用户提供的主机名字或电子邮件地址转换成IP地址 DNS的名字空间 名字空间定义了计算机允许使用的名字的集合 DNS在概念上将因特网分成了200多个顶级域,每个顶级域被进一步划分成若干个二级子域,每个二级子域还可以再分子域,依次类推。
一个指定的域是指树中一个特定的节点以及该节点以下所有的节点 某个域的域名用从该域开始向上直到树根(为空)的标号序列表示,标号之间用句点隔开,如ustc.edu 域名的任一后缀也是一个域 顶级域分为两类: 组织域:主要由美国的组织使用 国家域:按国家(或称地理)注册,每个国家对应一个域 域名空间示意图 DNS的组织域 DNS工作原理 应用程序调用一个称为解析器的库例程,在UNIX系统上是gethostbyname ,输入参数为包含主机名的字符串 解析器的内部配置了本地DNS服务器的地址,解析器将需要查询的信息封装成一个DNS请求报文,封装到一个UDP包(端口为53)中,发送给本地DNS服务器 若本地数据库中有所需的信息,本地DNS服务器将查到的信息封装成DNS响应报文,封装到另一个UDP包(端口为53)中,发回给解析器 解析器从DNS响应报文取出查询结果,返回给调用者 以上过程采用RPC实现 问题:如果本地数据库中没有所需的信息,怎么办? DNS服务器的组织方式 三种类型的DNS服务器: 根DNS服务器:知道所有顶级域服务器的IP地址 顶级域(TLD)服务器:每个顶级域至少有一个TLD服务器,每个TLD服务器知道本域下所有二级子域的权威DNS服务器的IP地址。
权威DNS服务器:存放各组织机构公共可访问DNS记录的服务器 分层解析: 本地DNS服务器- 根DNS服务器- TLD服务器- 二级子域权威服务器- 三级子域权威服务器- …… 改进: 使用DNS缓存提高查找效率 实现时将多层域结构放在同一个物理域名服务器中,缩短查询链 DNS资源记录 DNS数据库的每一个表项称为一个资源记录 每个域都有一组相关联的资源记录,解析器从DNS得到的是和域名相关联的资源记录因此确切地说,DNS的功能是将域名映射到资源记录上 一条资源记录是一个五元组,包括: 域名:该资源记录适用的域 生存期:表示资源记录的稳定性 信息类型:对于因特网信息,该字段总为IN 资源记录类型:共有20多种资源记录 值 最重要的一些资源记录 Type A: 域名给出一个主机名,值给出该主机的IP地址 如: mars.ustc.edu,86400,IN,A,202.38.64.11 Type NS: 域名给出一个域,值给出该域权威DNS服务器的名字 如: ustc.edu,86400,IN,NS,dns.ustc.edu Type CNAME: 域名给出一个主机的别名,值给出这个主机的规范名字。
如: .ustc.edu,86400,IN,CNAME,venus.ustc.edu Type MX: 域名给出邮件服务器的别名,值给出邮件服务器的规范名字 如: mail.ustc.edu,86400,IN,MX,saturn.ustc.edu 2. 文件传输 文件传输协议FTP (File Transfer Protocol) 简单文件传输协议TFTP (Trivial File Transfer Protocol) 2.1 文件传输协议FTP FTP规定了两台计算机上的FTP软件如何进行交互 大多数厂商使用BSD FTP软件,新开发的FTP应用程序为用户隐藏了FTP接口的许多细节 FTP使用客户/服务器模式: FTP客户程序:解释用户输入的命令,与文件服务器建立TCP连接,在TCP连接上完成与服务器的通信及数据传输 FTP服务器程序:接受客户的连接请求,与客户建立TCP连接,在TCP连接上完成与客户的通信及数据传输 FTP的控制连接和数据连接 FTP使用两条TCP连接完成文件传输: 控制连接:使用端口21,用于传送客户的命令和服务器的响应 数据连接:使用端口20,用于传输文件。
每个数据连接只传输一个文件,文件传输结束时关闭连接 使用分开的控制连接和数据连接的优点: 简化协议的设计和实现 控制连接在文件传输过程中一直可用,客户可以随时发送终止传输的命令 使用数据连接的关闭来表示文件传输结束,允许动态创建文件 FTP连接 数据连接的建立 建立数据连接时,客户和服务器的角色刚好相反,服务器扮演客户的角色,而客户扮演服务器的角色 建立数据连接的过程: 客户进程为数据连接选择一个本地的临时端口号,在该临时端口上等待服务器的连接请求 客户进程在控制连接上用PORT命令将临时端口号发送给服务器 服务器收到端口号后,发送一个连接请求,同客户机的该端口建立一个数据连接服务器用于数据连接的端口号总是20 2.2 简单文件传输协议TFTP TFTP设计为用于引导无盘系统,因而它使用UDP而不是TCP传输文件,以保持算法简单和短小 使用TFTP引导无盘系统: 需要一个网络连接和一小块ROM,ROM中有支持TFTP、UDP和IP的代码以及设备驱动程序等 无盘系统启动时,执行ROM中的代码,在网络上产生一个TFTP广播请求 网络上配置的TFTP服务器通过发送文件来响应这一请求,文件中包含可运行的二进制程序。
无盘系统将收到的文件装载到内存中并执行 TFTP的数据传输 TFTP使用客户/服务器模式,客户与服务器之间采用停-等协议进行数据传输以读文件为例: TFTP客户向服务器发送读请求,说明要读的文件名和文件模式(ASCII文件或二进制文件) TFTP服务器发送一个块编号为1的数据分组,TFTP客户收到后发送一个块编号为1的确认分组 TFTP服务器随后发送一个块编号为2的数据分组,TFTP客户发送一个块编号为2的确认分组 依次类推,直至文件传送完 除最后一个数据分组外,其它分组均含有512字节的数据 TFTP依靠UDP检测数据错误并丢弃出错的包,并使用超时重传机制解决分组丢失问题 TFTP的通信过程 TFTP客户与服务器的通信过程: TFTP客户进程向TFTP服务器进程的UDP熟知端口69发送第一个报文(读或写请求) 服务器进程向服务器主机申请一个尚未使用的端口,重新创建一个进程在该端口上与请求的客户进程交换数据 服务器进程回到69端口继续监听其它客户的请求 服务器中的UDP模块根据目的端口号区分不同的客户 TFTP报文不提供用户名和口令 3. 电子邮件 两个概念: 电子邮箱:由计算机上的一个存储区域(如磁盘上的一个文件)组成,每个邮箱均被分配了唯一的电子邮件地址。
电子邮件地址:形如:mailbox@computer,前者为用户邮箱的字符串,后者为邮箱所在的计算机的名字 因特网电子邮件系统的标准: RFC 821:邮件传输协议 RFC 822:消息格式 因特网电子邮件系统由三个部分组成: 用户代理:本地程序,提供邮件阅读、编辑、发送及信箱管理 消息传输代理:运行在邮件服务器后台的系统守护程序,负责传递邮件及将收到的邮件放入用户邮箱 简单邮件传输协议SMTP:控制在两个计算机之间的邮件传递 3.1 邮件格式 邮件的三个组成部分: 信封:包含与信件传输有关的信息,仅供消息传输代理使用 信头:包括发信人地址及信体格式说明,供用户代理使用 信体:收信人真正感兴趣的部分 RFC 822:规定了信头中可以使用的域,信体为英文纯文本格式,采用ASCII编码 多用途因特网邮件扩展协议MIME: 允许信体具有一定的数据结构,定义了七种数据类型及相应的子类型 规定了非ASCII文本信息在传输时的统一编码形式,其中最重要的编码形式是基64编码 在信头中扩充了一些域,用以指明信体的数据类型和传输编码形式 一个邮件传输的例子 以Alice向Bob发送一个邮件为例,两者信箱不在同一个邮件服务器上: Alice调用用户代理编辑邮件,提供Bob的电子邮件地址,然后通过用户代理发送邮件。
Alice的用户代理把信件发送给Alice的邮件服务器,该邮件被放到邮件服务器的发送队列中 Alice的邮件服务器在发送队列中发现这封邮件,与Bob的邮件服务器进行交互,然后将邮件发送给Bob的邮件服务器 Bob的邮件服务器接收邮件,将其放入Bob的邮箱中 Bob在方便的时候,调用用户代理阅读该邮件 3.2 邮件传输协议 使用SMTP的邮件传输过程: 客户机上的消息传输代理与服务器上的SMTP守护进程(在端口25上监听)建立TCP连接 服务器发送准备好报文,若服务器未准备好,客户机释放连接 客户机向服务器通报信件的发送方和接收方 若接收方信箱在服务器上,服务器通知客户机继续客户机将信件发送给服务器,服务器将信件放入相应的信箱后进行响应 重复以上过程,将信件全部发完 服务器交换发送方和接收方的身份,邮件反向流动 当两个方向的信件均交换完后,释放连接 3.3 邮件访问 邮箱一般放在功能强大的运行邮件服务器的计算机系统上,用户代理通过远程访问邮箱来获取邮件 邮件的两阶段交付: 第一阶段:在具有永久因特网连接的计算机上为每个用户分配一个邮箱,该计算机运行一个常规SMTP服务器,一直准备着接收电子邮件。
第二阶段:用户与邮件服务器建立一个连接,运行一个从永久邮箱检索邮件的协议,将邮件传输到本地计算机上阅读或者阅读 两阶段交付邮件 邮局协议POP3 POP3的通信过程: 用户激活一个POP3客户,该客户与带有永久邮箱的计算机的端口110(POP3守护进程)建立一个TCP连接 用户发送用户名和口令进行身份鉴别 身份鉴别成功,用户发送POP3命令,将邮件接收到本地,并可将邮件标记为删除 当客户发出退出命令时,服务器删除所有标记的邮件,回应客户 释放连接 IMAP和Webmail Internet邮件访问协议IMAP: 允许用户将所有邮件无限期地保留在服务器中,阅读邮件和管理信箱 除了可以为用户接收邮件外,还可以为用户发送邮件 IMAP服务器在端口143上监听 Webmail 允许用户使用Web浏览器收发电子邮件 用户代理为普通浏览器,浏览器和远程邮箱之间使用HTTP协议通信,但邮件服务器之间仍是SMTP协议 和IMAP一样,用户可以在远程服务器上用文件夹来组织他们的信件 4. 万维网 从用户的角度来看,Web是由数量巨大且遍布全球的文档组成,这些文档称为Web页 每个页除了包含普通数据外,还包含格式命令和指向其它页的链接: 格式命令:指示如何显示文档中的数据 链接:指示如何获取另一个文件 包含链接信息的文本串或图形称为超级链接,当用户点击某个超级链接时,该超级链接指向的页会被取回,并显示在用户屏幕上。
包含超级链接的页称为超文本页或超媒体页,它们的区别在于文档内容 页需要用称为浏览器的程序阅读,浏。
