DNS又是什么?
在DHCP获取的参数中,IP、掩码、网关之前学过都知道是干什么用的了,但是另外一个参数,DNS没有接触过,那它在网络中起到什么样的作用呢?
相信大家都使用过手机通讯录(联系人的功能),因为手机号码太长了,所以给他起一个别名来对应这个手机号码,查找的时候方便,有电话过来也知道是谁,同样的在网络世界中,IP地址作为通信地址,但是对于普通用户而言,还是过于复杂,所以也出现了一个解决办法,叫做域名,方便人类记忆,也就是我们打开浏览器的时候,输入baidu.com、163.com,比起IP地址来说是不是好记多了。
不知道有没有这样的经历,有时候微信、QQ可以发送消息,也能登录,但是打不开网页,咨询有经验的大佬或者运营商的客服都会告诉你一件事,检查DNS是不是对的,那为什么要检查DNS呢?
学过之前的理论都知道在如今TCP/IP为主流的互联网中,不管访问什么应用都得知道对方的IP地址,那么我们在浏览器中输入baidu.com,ccieh3c.com的时候,主机怎么会知道这个域名对应的IP是多少呢?

这就是要使用到一个协议,叫做DNS,域名解析协议,它可以将域名转换成具体的IP地址。
DNS中的域名是使用句点来分割,来划分层次,比如zhidao.baidu.com,越往右边表示层此越高。这里可能初学者一看有点迷糊,因为域名这个内容是外国人发明的,思维与我们正好相反,外国称呼一个具体地点为XX 街 XX 区 XX 市 XX 省,而中国的顺序 XX 省 XX 市 XX 区 XX街道,域名也是根据这样的思维排序的,最顶层是根域,下一层是顶级域(com)、再下一层是二级域名(baidu),再下一层就是三级域名(zhidao),连起来就是zhidao.baidu.com,可以发现域名的层次关系比较类似于树状结构。(其中根域是最后用【.】表示,但是在实际使用中并不表示出来)


这里可以填下第二篇的一个坑,在第二篇里面介绍过打开一个网页它首先要知道对方的IP地址,所以浏览器会查看缓存里面是否有记录,如果没有,则向DNS服务器询问,具体步骤如下
作为IT实施人员或者维护人员,在规划、搭建一个网络经常要考虑的一件事件就是,给客户分配什么样的DNS,错误的DNS会造成网页打不开等情况。
在国内的话,分为两种类型(1)公共DNS (2)运营商DNS,那这两种什么情况下使用呢?

这个就可以直接打开wireshark,选择自己的上网网卡,抓取即可


使用DNS过滤下,只看DNS的内容,可以看到本地使用的是223.5.5.5的公用DNS。

通常客户端发送的DNS一个A记录的查询,讯问对应域名的IP是都是,可以看到DNS协议使用的是UDP的53端口号,DNS的查询还有另外的,比如邮件使用的(MX记录)、别名(CHAME)等。

回应报文中会发现有多个IP地址,这其实是DNS的轮询技术,作用就是实现负载均衡,因为像B站这样的日活访问特别高的WEB服务,都会有多台服务器提供服务,所以在客户端请求的时候就可以相应多个地址,客户端随机选取一个,达到均衡的效果,不然一台服务器顶不住这么大的访问量,直接死机。
Windows命令学习
1、地址释放:ipconfig/release,释放掉获取的地址,通常是在测试的环境下使用,比如我们做了某些地址绑定,释放掉这个在重新获取看下是否成功。
2、重新获取:ipconfig/renew,重新获取IP地址,跟上面类似,测试的时候使用。
3、清空DNS缓存:ipconfig/flushdns,清空本机已经缓存的DNS记录,在获取到错误的解析的时候,可以使用该命令清空
4、查看DNS缓存:ipconfig/displaydns,查看本地缓存的DNS记录
结束
整个计算机网络基础内容就到这里结束了,对于初学者来说,这些内容大部分都是需要掌握了解的,而且不是看一遍就能理解的了,很多知识点,只能懂个大概意思,那博主建议是大家可以先过一遍,能学到多少内容算多少,在学习完路由交换的入门知识后,在反过来把基础在过一遍,你会有不一样的收获,说实话,博主在写这个基础也是收获不少的,有些知识点也需要查询大量资料,然后验证,另外对于初学者一个学习建议,就是多抓抓包看看协议本身的字段,可以通过eNSP模拟,也可以直接抓取本地网卡的包,另外还一个重点,就是做好笔记,把自己学习到的做一个记录,一来可以加深印象,二来后续巩固复习方便。好的笔记软件,我个人早期用的是myBaseDesktop,现在讲课的话用的是OneNote,360笔记也不错,最后有测试题,如果大家能够完成70%~80%说明已经对于基础掌握的不错了。