定义
域名系统DNS(Domain Name System)是一种用于TCP/IP应用程序的分布式数据库,提供域名与IP地址之间的转换服务。DNS使用UDP端口53
目的
网络中的每台主机都是由IP地址来标识的,用户只有获得待访问主机的IP地址才能够成功实现访问操作。对于用户来讲,记住主机的IP地址是相当困难的,因此设计了一种字符串形式的主机命名机制,这些主机名与IP地址一一对应,这就是域名系统。域名系统解决了IP地址信息不便于记忆这一问题。用户进行访问网络主机操作时,可以直接使用便于记忆的、有意义的域名,由网络中的域名解析服务器将域名解析为正确的IP地址。
windows主机通过域名访问服务流程
pc主机访问www.jd.com购物网页
使用的dns服务器为阿里云DNS

页面获取成功

数据报文的发送的过程
当主机访问某一个网页的域名时,需要解析改域名对应的IP地址
主机首先去windows目录下host文件查找改文件内是否有对应的主机映射C:\Windows\System32\drivers\etc\hosts
当未查找到时,主机会向dns服务器发送递归查询dns_query请求,请求内容为该域名对应的ip地址
请求发送与23.5.5.5服务器的53号端口,递归查询问题为jd.com 对应的IP地址(h5speed.m.jd.com为jd域名的表明cname)

当dns服务器收到query时,会去查找改该域名ip,之后回给客户端一个dns_response 中包含了所需的IP地址
吃报文源地址为223.5.5.5 源端口为53 目的地址为本地主机ip 目的端口为随机端口

主机收到dns回应后,会封装数据包,物理层原mac为自己的mac,目的mac为网关mac,网络层原ip为自己,目的ip为该域名ip,从而完成了对改域名服务的访问。(访问jd80端口)
