计算机网络 应用层
本文将介绍计算机网络中的应用层。
一、应用层
体系结构的最高层
与应用进程直接交互,为应用进程提供服务
定义了应用进程间通信和交互的规则
数据单元为报文
客户服务器形式:应用层的许多协议都是基于 “客户服务器形式” 的,客户与服务器描述的是通信所涉及的两个应用程序服务与被服务的关系,客户是服务请求方,服务器是服务提供方。
P2P 对等通信方式实质上也是一种特殊的 “客户服务器形式”
二、域名
1. 域名结构
域名实质上是对 “域” 的逐级划分,”域” 可以划分为 “子域”,”子域” 可以划分为 “子域” 的 “子域”…,最终划分出一个唯一的 “区域”,便构成了域名。
DNS 规定 “下级域” 应该写在前面。
fanyi.baidu.com
其中,
- fanyi:三级域名
- baidu:二级域名
- com:顶级域名
2. 域名限制
- 域只能由英文字母、数字、- 组成
- 域存在长度限制;域名也存在长度限制
- 域不区分大小写
三、域名系统 DNS
1. 什么是域名系统?
域名系统,Domain Name System,是互联网使用的命名系统,其作用是将域名解析为 IP 地址。
互联网的域名系统是一个联机分布式数据库系统,分布在互联网上的大量域名服务器共同完成从域名到 IP 地址的解析。
2. 解析过程
应用程序向本地域名服务器发送查询,其中包含待解析的域名
使用 UDP 传输,目的是为了减少开销
本地域名服务器接受请求,查找 DNS 记录,
如果找到,执行后续步骤
否则,当前域名服务器向其它域名服务器发送查询,重复,直至找到能够响应的域名服务器
DNS 记录的查询过程有迭代查询和递归查询两种。
主机向本地域名服务器发起的查询,通常为递归查询;本地域名服务器向根域名服务器发起的查询,通常为迭代查询。
解析 DNS 记录,
若类型为 A,提取对应 IP 地址
若类型为 AAAA,提取对应 IPv6 地址
若类型为 CNAME,则再次发起查询,直至找到类型为 A、AAAA 的 DNS 记录,提取对应的 IP 地址
CNAME 记录用于创建别名,它将域名指向另一个域名
发送响应,其中包含对应的 IP 地址
3. 域名服务器 - 区
考虑到域名的结构,一个顶级域名下有多个二级域名,一个二级域名下又有多个三级域名…
如果不做划分,针对每一级域名设置相对应的域名服务器,将会造成巨大的资源浪费。
因此,DNS 允许用划分区的方式使不同的域名服务器可以负责不同的区域的解析。可以根据具体情况划分区,如下:
4. 域名服务器结构
可以将域名服务器划分为:
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器:负责某一个区的域名服务器,他将保存该区中所有的域名 IP 映射
- 本地域名服务器:不属于域名服务器树状网络的一部分,它包含部分映射信息,是 DNS 查询请求的 “第一处理者”
四、万维网
1. 什么是万维网?
万维网是一个大规模的、联机式的信息储藏所。
2. 统一资源定位符
统一资源定位符,URL,用于标识互联网上的资源的位置。
URL 给资源的位置提供了一种抽象的识别方法,通过它能够给资源定位,相应地就能对这些资源进行增删改查。
URL 由四部分组成,如下:
3. HTTP
具体请看:
4. 万维网工作过程
每个万维网网点都有一个服务器进程,它不断地监听 TCP 的 80 端口,以便发现是否有浏览器(即万维网客户)向它发出连接建立请求。一旦监听到连接建立,浏览器就会向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应,TCP 连接释放。
5. 代理服务器
代理服务器,proxy server,是一种网络实体,它又被称为万维网高速缓存。
代理服务器会将最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求和暂时存放的请求相同,就返回暂存的响应,而不需要到互联网中重新请求。
6. CDN
内容分发网络 CDN 便是以代理服务器的方式构成的。
CDN 的处理流程如下:
浏览器发起 DNS 解析请求,经过 DNS 系统的解析后,获取到 CDN 接入节点的 IP 地址
- 浏览器发送域名解析请求至本地域名服务器
- 本地域名服务器接收请求,查找 DNS 记录,此过程可能涉及多台域名服务器的迭代 / 递归查询
- 查找到 DNS 记录后,解析,发现其类型为 CNAME,再次发起查询,查询将发送至 CDN 的域名服务器解析,通过某种策略得到最佳 IP
浏览器向 CDN 接入节点发起资源获取请求
若节点中有资源,直接返回给用户;
否则,向源站请求资源并缓存,返回给用户
参考
- 《计算机网络》