• 您现在的位置:首页 » 知识库 » 系统集成 » 网络维护 网络维护
    DNS,互联网的翻译官
    发布日期:2018-12-07

    前言

    DNS身为TCP/IP协议族的“高层”(第7层,顶层),专职互联网的翻译任务,是一位出色的“翻译官”。本文将和大家一起接近、了解这位我们每天都要接触多次的翻译专家。

    基本概念

    DNSDomain Name System):域名系统,DNS其实就是一个分布式的数据库系统,它主要的功能是提供主机名和IP地址之间的转换功能。我们每天在浏览器上输入的网址,比如www.jianshu.com,当你敲击回车时,就开始使用DNS服务了。最早,在DNS还没被发明之现,所有的地址都由一个中枢主机名进行管理,在那个“上古”时代,因为网站十分的稀少,管理难度还可以操控,但随着互联网的野蛮式发展,网站数量骤增,这种中央工作模式开始暴露出响应慢、安全性等一系列的问题,DNS适时的出现了。

    DNS是如何工作的

    我们还是用例子来说明。

    172.27.0.14是笔者的主机(简称A),183.60.83.19是笔者网络运营商的DNS服务器(简称B)。

    首先A主机发出了需要访问www.jianshu.com的请求,但这个域名,在系统内部要本不知道你要访问什么,TCP/IP协议只认IP地址,就像人脸识别一样,换个人就会识别错误。此时就需要一个称职的翻译官,将适合人记录的域名翻译成IP地址。这时候DNS进场了。

    DNS首先会查找本机有无对应的DNS记录,windows系统会通过windowssystem32driversetchosts文件查找,Linux会通过/etc/hosts文件查找。

    host记录的格式如上,分为2个部分,前半部分是IP地址,后半部分是对应的域名。

    如果host找不到记录,就会先发送DNS查询请求到指定的DNS服务器(这也就是为什么你的电脑为何必须指明DNS服务器地址的原因)。我们来看2条报文。

    此时A通过54889端口(临时端口,使用UDP协议,如果你不清楚UDP协议是什么,请参考我的另一篇文档TCP和UDP,你要知道的123 (UDP篇)),和B主机的53端口通信,第1条报文是A主机发向B主机,+号表示递归查询,A表示查询类型,意思是需要查询IP地址,?表示这是一条查询报文。www.jianshu.com表示要查询的域名,33表示字节,UDP的首部长度是12个字节,域名长度为17个字节,查询类型和类占4个字节。

    image.png

    简单解释下域名长度为何是17个字节,以小数点为分隔单位,第13表示www3个字节,第27表示jianshu7个字节,第33表示com3个字节,最后一个置0,表示后域名结束。

    现在来看第2条报文,这是B服务器的响应报文,3/0/0表示返回了3资源记录(Resource Record),第20表示返回0条授权回答,第30表示返回了0条附加记录(一般都是0)。第1条资源记录类型为CNAME(域名规范名称),2条就是A记录,表示返回对应CNAMEIP地址,第3条也是A记录返回的是该域名的另一个IP地址。有时候甚至可能返回NA记录,这是因为使用了负载均衡技术,目的是增加服务提供的可靠性和并发处理能力。此时DNS系统已经拿到了www.jianshu.com对应IP地址记录,即完成了翻译任务,并将其返回给系统,系统拿到了IP地址,将访问网页的请求进行打包封装,并指定报文的目的地址为刚刚获取到的域名对应IP地址,数据就顺利的发送到目的主机了。

    至于DNS服务器是如何查询到域名IP地址的,和前面提到的递归查询有关,后续有机会再跟大家汇报。

  • 1.公司登记注册于2003年1月27日
    2.公司2006年起成为清远市政府定点协议供货商,电子采购供货商
    3.公司2007年被清远市相关政府部门评为安防行业状元
    4.公司2007年起成为长城电脑清远如意服务站(SP368)
    5.公司2007年承建清远市横河路口电子警察工程,开创清远电子警察先河。
  • 6.公司2007年起成为IBM合作伙伴、公司2010年底成为金蝶软件清远金牌代理(伙伴编号:30030013)
    7.公司组团队参加南方都市报组织的创富评选,获广东80强。公司申请多项软件著作权、专利权
    8.2016年起公司成为粤东西北地区为数不多的双软企业,确立“让软件驱动世界,让智能改变生活!"企业理想
  • 投资合作咨询热线电话:0763-3391888 3323588
  • 做一个负责任的百年企业! 天行健,君子以自强不息;地势坤,君子以厚德载物;
    为用户创造价值! 让软件驱动世界; 让智能改变生活; 超越顾客期望,帮助顾客成功;
    对客户负责,对员工负责,对企业命运负责!帮助支持公司的客户成功;帮助忠诚于公司的员工成功!
  • 联系电话:0763-3391888 3323588 3318977
    服务热线:18023314222 QQ:529623964
  • 工作QQ:2501204690 商务QQ: 602045550
    投资及业务投诉QQ: 529623964
    微信:小米哥 微信号:qysed3391888
    腾讯微博:桑达网络-基石与起点
  • E-MAIL:222#QYSED.CN ok3391888#163.com (请用@替换#)
  • 在线客服
  • 系统集成咨询
    点击这里给我发消息
  • 网站\微信\软件咨询
    点击这里给我发消息
  • 售后服务
    点击这里给我发消息
  • 投资合作
    点击这里给我发消息