计算机网络--应用层
应用层
概述
作用:解决通过应用进程的交互来实现特定网络应用的问题
网络应用
- 万维网 WWW
- 域名系统 DNS
- 动态主机配置 DHCP
- 电子邮件
- 文件传送 FTP 和 P2P 文件共享
- 多媒体网络应用
交互模式
C/S 方式
客户【 Client 】与服务器【 Server 】方式
- 客户和服务器是指通信中所涉及的两个应用进程
- C/S 方式所描述的是进程之间服务和被服务的关系
- 客户是服务请求方,服务器是服务提供方
- 服务器总是处于运行状态,并等待客户的服务请求,服务器具有固定端口号,运行服务的主机也具有固定 IP 地址
问题
由于服务器通常是服务集中型,经常会出现服务器计算机跟不上众多客户机请求的情况
因此,一般 C/S 应用中,常用计算机群集【服务器场】构建一个强大的虚拟服务器
P2P 方式
对等方式
在 P2P 方式中。没有固定的服务请求者和服务提供者,发布在网络边缘各端系统中的应用进程是对等的,称为对等方
对等方相互之间直接通信,每个对等方即是服务的请求者,又是服务的提供者
优势在于可拓展性,成本相对更低
动态主机配置协议 DHCP
作用:允许一台计算机加入新网络时可自动获取 IP 地址等网络配置信息而不用手工配置
动态主机配置协议 DHCP 功能实现的报文:
- DHCP DISCOVER :DHCP 发现报文
- DHCP OFFER :DHCP 提供报文
- DHCP REQUEST:DHCP 请求报文
- DHCP ACK :DHCP 确认报文
- DHCP NACK :DHCP 否认报文
- DHCP RELEASE :DHCP 释放报文
动态主机配置协议 DHCP 在运输层使用 UDP 协议封装:
- DHCP 客户使用的 UDP 端口号 68
- DHCP 服务器使用的 UDP 端口号 67
DHCP 客户在未获取到 IP 地址时使用地址 0.0.0.0
在每一个网络上都设置一个 DHCP 服务器的数量太多。因此现在是使每一个网络至少一个 DHCP 中继代理【通常路由器】,它配置 DHCP 服务器的 IP 地址信息,作为各网络中计算机与 DHCP 服务器的桥梁
域名系统 DNS
在 1983 年,因特网就采用层次结构的命名树作为主机的名字【域名】,并使用分布式的域名系统 DNS
DNS 使大多数域名都在本地解析,仅少量解析需要在因特网上通信,因此系统效率很高
由于 DNS 是分布式系统,即使单个计算机出现了故障,也不会妨碍整个系统的正常运行
域名系统 DNS 规则
-
因特网采用层次树状结构的域名结构
-
域名的结构由若干个分量组成,各分量之间用
.
隔开,分别代表不同级别的域名- 每一级的域名都用英文字母和数字组成,不超过 63 个字符,不区分大小写字母
- 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边
-
域名系统既不规定一个域名需要包含多少个下架域名,也不规定每一级的域名代表什么意思
-
各级域名由其上一级的域名管理结构管理,而最高的顶级域名·则由因特网名称与数字地址分配结构 ICANN 进行管理
域名
-
顶级域名 TLD
-
国家级顶级域名 nTLD: 采用 ISO 3166 的规定
如:
- cn 中国
- us 美国
- uk 英国
- ...
-
通用顶级域名 gTLD:
最常见的七个:
- com 公司企业
- net 网络服务机构
- org 非盈利机构
- int 国际组织
- edu 美国教育机构
- gov 美国政府部门
- mil 美国军事部门
-
反向域 arpa: 用于反向域名解析,即 IP 地址反向解析为域名
-
-
在国家顶级域名下注册的二级域名均由该国家自行确定
-
我国的二级域名划分
-
类别域名【七】
- ac 科研结构
- com 企业
- rdu 教育
- gov 政府
- net 提供网络服务的机构
- mil 军事
- org 非营利组织
-
行政区域名:共 34 个,适用于我国的各省、自治区、直辖市
-
DNS 的工作
域名和 IP 地址的映射关系保存在域名服务器中,供所有其它应用查询。显然不能将所有信息都存储在一台域名服务器中,DNS 使用分布在各地的域名服务器来实现域名在 IP 地址的转换
DNS 报文在运输层使用 UDP 协议 进行封装,运输层端口号:53
域名服务器可以划分为以下四种不同类型:
-
根域名服务器
是最高层次的域名服务器,每个根域名服务器都知道所有的顶级域名服务器的域名及其 IP 地址
-
顶级域名服务器
负责管理在该顶级域名服务器注册的所有二级域名
-
权限域名服务器
负责管理某个区域的域名,每一个主机的域名都必须在某个权限域名服务器处注册登记
-
本地域名服务器
本地域名服务器不属于上述域名服务器的等级结构
本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中
域名解析的过程
- 递归查询
- 迭代查询
递归查询负担沉重,一般采用迭代查询
在域名服务器中广泛采用 高速缓存,缓存有时效性一般为 2 天
文件传输协议 FTP
将某台计算机中的文件通过网络传输到另一台计算机中,即文件传输
文件传送协议 FTP
- FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限
- FTP 屏蔽了各计算机系统的细节,因而适合异构网络中的任意计算机之间的传送文件
FTP在运输层使用TCP协议,使用端口号:20,21
FTP客户与服务器之间要建立两个并行的TCP连接:
-
控制连接:在整个会话中一直保持连接,用于传送FTP相关控制命令
-
数据连接:用于文件传输,每次文件传输时建立,传输结束关闭
-
默认情况下,FTP使用21端口进行控制连接,20端口进行数据连接,但 20 端口建立连接与传输模式有关
-
主动方式
使用TCP 20 端口
-
被动方式
由服务器和客户端自行协商
-
电子邮件
采用客户/服务器方式
电子邮件系统有三个主要组成构件
-
用户代理:用户与电子邮件系统的接口,又称为电子邮件客户端软件
-
邮件服务器:电子邮件系统的基础设施,其功能 发送和接收邮件,同时负责维护用户的邮箱
-
电子邮件协议
- 发送协议:SMTP ...
- 读取协议:POP3, IMAP ...
一封电子邮件有两部分:信封,内容【首部,主体】
简单邮件传送协议 SMTP:周期性对邮件缓存扫描【14 条SMTP命令和21种SMTP应答】
- 使用 端口号 25
- SMTP 只支持 ASCII 码文本数据,为解决此问题提出了MIME扩展
- 用于用户代理向邮件服务器发送邮件及邮件服务器之间发生
读取协议
- 邮局协议 POP:用户只能以下载并删除的方式或下载并保持方式从邮件服务器下载邮件,不允许用户在邮件服务器上管理自己的邮件,使用端口号 110
- 因特网邮件访问协议 IMAP:用户在自己的计算机上就可以操作邮件服务器中的邮箱,使用端口号 143
基于万维网的电子邮件
通过浏览器登录邮件服务器万维网网站使用和管理邮箱
不需要安装专门的用户代理程序
万维网 WWW
万维网并非某种特殊的计算机网络,而是运行在因特网上的一个分布式应用
利用网页之间的超链接将不同网站的链接成一张逻辑上的信息网
URL
万维网使用 统一资源定位器URL 来指明因特网上任何种类的资源
URL的一般形式
<协议>://<主机>:<端口>/<路径>
万维网的文档
- HTML:描述网页的结构和内容
- CSS:网页的样式
- JavaScript:控制网页的行为
超文本传输协议 HTTP
定义浏览器是怎样向万维网服务器请求万维网文档,以及如何回传给浏览器
- HTTP/1.0:非持续连接发生
- HTTP/1.1:持续连接发生
HTTP 报文格式
HTTP是面向文本的,报文的每一个字段都是一些 ASCII码串
-
请求报文
请求行|-> 方法|URL|版本|CRLF 首部行|-> 首部字段名: 值|CRLF ... 首部字段名: 值|CRLF CRLF 实体主体【通常不用】
方法支持
方法 作用 GET GET方法用于使用给定的URI从给定服务器中检索信息 POST POST方法用于将数据发送到服务器以创建或更新资源【POST请求永远不会被缓存且对数据长度没有限制】 HEAD HEAD方法与GET方法相同,但没有响应体,仅传输状态行和标题部分 PUT 从客户端向服务器传送的数据取代指定的文档的内容 DELETE DELETE方法用来删除指定的资源,它会删除URI给出的目标资源的所有当前内容 CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器 OPTIONS OPTIONS方法用来描述了目标资源的通信选项,会返回服务器支持预定义URL的HTTP策略 TRACE TRACE方法用于沿着目标资源的路径执行消息环回测试;它回应收到的请求 -
响应报文
状态行|-> 版本|状态码|短语|CRLF 首部行|-> 首部字段名: 值|CRLF ... 首部字段名: 值|CRLF CRLF 实体主体【通常不用】
状态类型
状态 含义 1xx 信息,服务器收到请求,需要请求者继续执行操作 2xx 成功,操作被成功接收并处理 3xx 重定向,需要进一步的操作以完成请求 4xx 客户端错误,请求包含语法错误或无法完成请求 5xx 服务器错误,服务器在处理请求的过程中发生了错误
Cookie
在服务器上记录用户信息
Cookie 是对无状态的HTTP进行状态化的技术
万维网缓存和代理服务器
万维网缓存又称为 Web 缓存,可以位于客户机,也可以位于中间系统,位于中间系统称为代理服务器
Web 缓存 把最近请求和响应暂时缓存在本地磁盘中,当新请求到达是,如果与缓存请求相同返回缓存响应,减少网络资源消耗提高服务质量