DNS可以运行在TCP或者UDP之上,端口号是53.
DNS的一个大致工作流程可以描述为:
1 客户端向发出一个DNS查询请求;
2 如果查询的是本域名之内的主机名或者记录,则DNS服务器将直接答复该查询;
3 如果查询的是本域名之外的主机名或者记录,则DNS服务器将首先查询自己的快速缓存,如果命中,答复客户端的查询;
4 如果本地DNS服务器快速缓存中没有相关记录,则转向根服务器(root name server)进行查询,根服务器会返回该域名下第一层授权DNS服务器的地址,这个地址可能是多个;
5 本地DNS服务器会向前述远端的其中一个DNS服务器查询,如果远端DNS服务器返回的不是最后一层答复,而是该域名下一层DNS服务器地址,则级联、递归查询,直到获得客户端所需要的结果。
6 本地DNS服务器将最终结果返回给客户端,并存储在自己的快速缓存中。