目录
DNS
域名服务器
- 根域名服务器:ICANN机构维护着一张根域名列表,里面记载着顶级域名服务器地址和对应的托管商,全世界有13个根服务器。
- 顶级域名服务器:管理该顶级域名服务器注册的所有二级域名。
- 权限域名服务器:负责一个区的域名服务器。按照上面的逻辑,权限域名服务器应该是管理注册在二级域名下的所有三级域名的,但实际不是这样的,如果一个二级域名或者一个三级域名对应一个域名服务器则域名服务器的数量会很多,我们需要使用划分区的办法来解决这个问题。
- 本地域名服务器:本地域名服务器是电脑解析时的默认域名服务器,即电脑中的设置的首选DNS服务器和备选DNS服务器。
域名解析过程分类
- 迭代就是A请求B,B告诉A去找C,但是B不会去找C。
- 递归就是A请求B,那么最后一定是B把答案告诉A,B亲自去访问C。
递归查询(给根域名服务器造成的负载过大,实际中几乎不用)
迭代查询
域名缓存(了解即可)
- 计算机中的DNS记录在本地有两种缓存方式:浏览器缓存和系统缓存。
- 浏览器的缓存过期时间比较短,Chrome的过期时间是1分钟。
- 系统缓存是存放在C:\Windows\System32\drivers\etc\hosts中。Windows默认开启DNS缓存服务。
- 使用命令ipconfig /displaydns可以查看本地缓存。
- 在浏览器中进行访问的时候,会优先查询浏览器缓存,如果未命中则继续查询操作系统缓存,最后再查询本地域名服务器,然后本地域名服务器会递归的查找域名记录,最后返回结果。主机与本地域名服务器之间的查询方式是递归查询。
完整域名解析过程
- 首先搜索浏览器的DNS缓存,缓存中维护一张域名与IP的对应表。
- 若没有命中则继续搜索操作系统的DNS缓存。
- 没有命中则操作系统将域名发送至本地域名服务器,本地域名服务器查询自己的DNS缓存。
- 没有命中则本地域名服务器向根域名服务器发送请求,根域名返回顶级域名服务器对应IP地址,本地域名服务器向顶级域名服务器发送请求获取权限域名服务器,本地域名服务器向权限域名服务器发送请求,最终得到该域名对应的IP地址。
- 本地域名服务器将IP返回给操作系统,同时建立缓存。
- 操作系统将IP地址返回给浏览器,同时建立缓存。
- 浏览器得到域名对应IP,同时也将IP地址缓存起来。
采用UDP服务
- DNS采用客户/服务器模型,其协议运行在UDP之上。
FTP
- FTP文件传输协议提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限,并允许文件具有存取权限。
- FTP采用TCP可靠的传输服务,一个TCP服务器进程可同时为多个客户进程提供服务。
- 工作步骤如下:
- 打开熟知端口21(控制端口),使客户进程能够连接上。
- 等待客户进程发送连接请求。
- 启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
- 回到等待状态,继续接受其他客户进程的请求。
- FTP服务器必须在整个会话期间保留用户的状态信息。特别是服务器必须把指定的用户账户与控制连接联系起来,服务器必须追踪用户在远程目录树上的当前位置。
控制连接与数据连接
- FTP在工作时使用两个并行的TCP连接,一个是控制连接(端口号21),一个是数据连接(端口号20).使用两个不同的端口号可使协议更加简单和更容易实现。
- 控制连接。服务器监听21号端口,等待客户链接,建立在这个端口上的连接成为控制连接。控制连接用来传输控制信息(如连接请求、传送请求等),并且控制信息都以7位ASCII格式传送。FTP客户发出的传送请求,通过控制连接发送给服务器的控制进程,但控制连接并不用来传送文件。
- 数据连接。通过20端口和客户端开放的端口连接,发送数据。
- 控制连接始终保持,数据连接保持一会。
- 是否使用TCP20端口建立数据连接与传输模式有关,主动方式使用TCP20端口,被动方式由服务器和客户端自行协商决定(端口>1024)。
电子邮件
万维网WWW
HTTP
本章小结及疑难点
- 如何理解客户进程端口号与服务器进程端口号?
- 互联网、因特网和万维网的区别是什么?
- 域名的高速缓存是什么?
每个域名服务器都维护一个高速缓存,存放最近通过的名字以及从何处获得名字映射信息的记录,可大大减轻根域名服务器的负荷,使因特网上的DNS查询请求和回答报文的数量大为减少。为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项。当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,减少此时间值可以提高域名转换的准确性。