计算机网络之一 应用层(DNS和http)
应用层协议:为了解决某一类应用问题,通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。
应用层的具体内容:规定应用进程在通信时所遵循的协议。
一、域名系统(DNS)
1、域名系统概述
域名系统(DomainName System)用来把便于人们使用的机器名字转换为IP地址。
许多应用层软件经常直接使用域名系统DNS(Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。
名字到IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
2、因特网的域名结构
3、域名服务器
域名体系是抽象的,具体实现域名系统则是使用分布在各地的域名服务器。一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位。
域名服务器有以下四种类型:根域名服务器、顶级域名服务器、权限域名服务器和本地域名服务器。
(1)根域名服务器:根域名服务器是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP 地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
(2)顶级域名服务器:这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)。
(3)权限域名服务器:当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS 客户,下一步应当找哪一个权限域名服务器。
(4)本地域名服务器:本地域名服务器对域名系统非常重要。当一个主机发出DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
域名的解析过程:
主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
名字的高速缓存
每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。可大大减轻根域名服务器的负荷,使因特网上的DNS 查询请求和回答报文的数量大为减少。为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项(例如,每个项目只存放两天)。当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。
相关问题:
1、互联网公司为什么需要多个IP地址?
互联网公司因为有大量的访问流量,所以需要很多的服务器,为了能够更好的为用户提供服务,很多服务器是不在同一地点的,这也是为了备份容灾。单一地点或者服务器势必造成网络的瘫痪。
相关概念:
负载均衡:解析的IP地址是负载均衡服务器的地址。
网关:网关实质上是一个网络通向其他网络的IP地址
CDN:全称是ContentDelivery Network,即内容分发网络。CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。
8.8.8.8(8.8.4.4):8.8.8.8是一个IP地址,是Google提供的免费DNS服务器的IP地址。
Windows hosts文件:包含IP地址和Hostname(主机名)的映射关系,是一个映射IP地址和Hostname(主机名)的规定;在网络上访问网站,要先通过DNS服务器把网络域名解析成IP地址后,我们的计算机才能访问。要是对于每个域名请求我们都要等待域名服务器解析后返回IP信息,这样访问网络的效率就会降低,而Hosts文件就能提高解析效率。根据Windows系统规定,Hosts的请求级别比DNS高。在进行DNS请求以前,Windows系统会先检查自己的Hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射,如果没有再向已知的DNS服务器提出域名解析。
二、 万维网 WWW
1、万维网概述
万维网WWW (World Wide Web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息储藏所。万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。这种访问方式称为“链接”。
万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
万维网以客户服务器方式工作。浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
2、统一资源定位符URL
统一资源定位符URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。
URL 的一般形式是:
通过端口寻找某一主机上的进程。
2、超文本传输协议HTTP
(1) HTTP的操作过程
从层次的角度看,HTTP是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
(1) 浏览器分析超链指向页面的URL。
(2) 浏览器向DNS 请求解析 www.tsinghua.edu.cn 的IP 地址。
(3) 域名系统DNS 解析出清华大学服务器的 IP 地址。
(4) 浏览器与服务器建立TCP 连接
(5) 浏览器发出取文件命令:
GET/chn/yxsz/index.htm。
(6) 服务器给出响应,把文件index.htm 发给浏览器。
(7) TCP 连接释放。
(8) 浏览器显示“清华大学院系设置”文件index.htm 中的所有文本。
(2)HTTP1.1持续连接
万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP 请求报文和响应报文。这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。目前一些流行的浏览器(例如,IE6.0)的默认设置就是使用 HTTP/1.1。
(3)代理服务器
代理服务器(proxyserver)又称为万维网高速缓存(Web cache),它代表浏览器发出HTTP 请求。万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按URL 的地址再去因特网访问该资源。
(4)HTTP的报文结构
HTTP有两类报文:请求报文——从客户向服务器发送请求报文。
响应报文——从服务器到客户的回答。
(5)状态码
1xx表示通知信息的,如请求收到了或正在进行处理。
2xx 表示成功,如接受或知道了。
3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
4xx 表示客户的差错,如请求中有错误的语法或不能完成。
5xx 表示服务器的差错,如服务器失效无法完成请求。