[计网]6.应用层
目录:
应用层
应用层概述
应用层享受下面四层提供的服务,解决通过应用进程的交互来实现特定网络应用的问题
应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分
- 早期基于文本的应用(电子邮件、远程登陆、文件传输、新闻组)
- 将因特网带入千家万户的网维网www
- 即使通信、P2P文件共享
C/S方式和P2P方式
C/S方式为客户/服务器方式
P2P方式为对等方式
动态主机配置协议DHCP
- 动态主机配置协议DHCP提供了一种机制,称为即插即用连网,该机制允许一台计算机加入新网络时,可以自动获取IP地址等网络配置信息而不用手工参与
- DHCP主要使用以下报文来实现其功能:
- DHCP DISCOVER:DHCP发现报文
- DHCP OFFER:DHCP提供报文
- DHCP REQUEST:DHCP请求报文
- DHCP ACK:DHCP确认报文
- DHCP NACK:DHCP否定报文
- DHCP RELEASE:DHCP释放报文
- DHCP是应用层的协议,其在运输层使用的是UDP协议
- DHCP服务端使用的端口是67,DHCP客户端使用的端口是68
- DHCP客户端将广播发送DCHP发现报文,在未获取到IP地址时使用地址0.0.0.0
- 在每一个网络上都设置一个DHCP服务器会使DHCP服务器的数量太多,因此现在是使每一个网络至少有一个DHCP中继代理(通常是一台路由器),它配置了DHCP服务器的IP地址信息,作为各网络中计算机与DHCP服务器的桥梁
域名系统DNS
因特网采用层次树状结构的域名结构
域名的结构由若干个分量组成,各分量直接用"点"隔开,分别代表不同级别的域名
- 每一级域名都由英文字母和数组组成,不超过63个字符,不区分大小写字母
- 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边
- 完整的域名不超过255个字符
- 域名系统不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思
- 各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理
顶级域名TLD分为以下三类
- 国家顶级域名nTLD
- 通用顶级域名gTLD
- 反向域arpa
域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询,显然不能将所有信息都存在一台域名服务器中,DNS使用分布在各地的域名服务器来实现域名到IP地址的转换
域名服务器可划分为四种不同的类型:
- 根域名服务器
- 根域名服务器是最高层次的域名服务器,每个根域名服务器都知道所有顶级域名服务器的域名及其IP地址,因特网上共有13个不同的根域名服务器
- 当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器
- 根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址
- 顶级域名服务器
- 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名
- 当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名的服务器IP地址)
- 权限域名服务器
- 这些域名服务器负责管理某个区的域名,每一个主机的域名都必须在某个权限域名服务器处注册登记
- 本地域名服务器
- 本地郁闷服务器不属于上述的域名服务器的等级结构
- 当一个主机发送DNS请求报文时,这个报文首先被送往该主机的本地域名服务器,本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中
域名解析的过程使用两种域名查询方式:
- 递归查询
- 迭代查询
为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器和主机中广泛使用了高速缓存
DNS报文使用运输层的UDP协议进行封装,运输层端口号为53
文件传送协议FTP
FTP是因特网上使用最广泛的文件传送协议、
- FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限
- FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件
FTP分为主动模式和被动模式
- 主动模式:有数据要传输时,FTP客户通过命令通道告知FTP服务器来与自己的另一个临时端口号建立TCP连接,建立数据通道,可理解为:FTP服务器主动连接FTP客户
- 被动模式:有数据要传输时,FTP客户通过命令通道告知FTP服务器开启某个临时端口被动等待TCP连接,建立数据通道,可理解为:FTP服务器被动等待FTP客户的连接
FTP客户和服务器之间要建立以下两个并行的TCP连接:
- 一个是控制连接,在整个会话期间一直保持打开,用于传送FTP相关控制命令,其使用的是TCP 21端口进行控制连接
- 一个是数据连接,用于文件传输,在每次文件传输时才建立,传输结束就关闭,其使用的是TCP 20端口进行数据连接
主动方式使用TCP 20端口,被动方式由服务器和客户端自行协商决定
电子邮件
电子邮件很牛逼
电子邮件和寄信很像
电信局的电报业务因为它而倒闭了
- 电子邮件采用客户/服务器方式
- 电子邮件系统的三个主要组成构件:用户代理、邮件服务器、电子邮件所需协议
- 邮件服务器:是电子邮件系统的基础设施,因特网上所有的ISP都有邮件服务器,其功能是发送邮件和接收邮件,维护用户邮箱
- 协议:包括发送协议(例:SMTP)和邮件读取协议(例:POP3、IMAP)
一个电子邮件有信封和内容两部分,而内容又由首部和主体两部分构成
SMTP协议只能传送ASCII码文本数据,不可传送可执行文件或其他二进制对象
SMTP不能满足传送多媒体邮件的需要,并且许多其他非英语国家的文字也无法用SMTP协议传送
- 为解决SMTP传送非ASCII码文本的问题,提出了多用途因特网邮件扩展MIME
- MIME增加了5个新的邮件首部字段
- 定义了许多邮件的内容格式
- 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变
常用的邮件读取协议有以下两个:
- 邮局协议POP:POP3是其第三个版本,是因特网正式标准
- 非常简单、功能有限的邮件读取协议
- 用户只能以下载并删除方式或下载并保留方式从邮件服务器下载邮件到用户方计算机
- 不允许用户在邮件服务器上管理自己的邮件(例如创建文件夹,对邮件进行分类管理等)
- 因特网邮件访问协议IMAP:IMAP4是其第4个版本,目前还只是因特网的建议标准
- 功能比POP3强大的邮件读取协议,用户在自己的计算机上就可以操控邮件服务器中的邮箱,就像在本地操控一样,因此IMAP是一个联机协议
POP3和IMAP4都基于TCP连接的C/S方式,POP使用110端口,IMAP4使用143端口
基于万维网的电子邮件
- 通过浏览器登陆,邮件服务器万维网网站就可以写、发、读、管理邮件,这种方式和IMAP很类似,不同的是用户计算机无需安装专门的用户代理程序,只需要使用通用的万维网浏览器
- 这种工作模式在用户浏览器与邮件服务器网站之间使用HTTP协议,而邮件服务器之间使用SMTP协议
万维网WWW
万维网www是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用
浏览器最重要的部分是渲染引擎,也就是浏览器内核,负责对网页内容进行解析和显示
万维网使用统一资源定位符URL在指明因特网上任何种类"资源"的位置
- 其一般形式为:<协议>://<主机>:<端口>/<路径>
万维网文档
- HTML、CSS、JavaScript
HTTP协议
超文本传输协议HTTP定义了浏览器怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器
-
HTTP/1.0采用非持续连接方式,每次浏览器要请求一个文件都需要与服务器建立TCP连接(80端口),当收到响应后就立即关闭连接
- 为了减少时延,浏览器通常会建立多个并行的TCP连接同时请求多个对象
-
HTTP/1.1采用持续链接方式,万维网服务器在发送响应后仍然保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传输后续的HTTP请求报文和响应报文
- 为了提高效率,还可以采用流水线方式,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文
-
HTTP有两类报文:
-
请求报文
-
-
-
响应报文
-
- 报文中的每一个字段都是一些ASCII码串,并且每个字段的长度都是不确定的
-
-
Cookie提供了一种机制能让万维网服务器记住用户,而无需用户主动提供用户标志信息,也就是说,Cookie是一种对无状态的HTTP进行状态化的技术
-
在万维网中还可以使用缓存机制以提高万维网的效率
-
万维网缓存又称为Web缓存,可位于客户机,也可位于中间系统上
- 位于中间系统上的Web缓存又称为代理服务器