TCP/IP协议应用层之DNS协议
为什么会有TCP/IP协议?
世界各地有各种各样的计算机,每台计算机装有不同的操作系统,这就会导致他们对同一种信息存在多种不同的表达方式,这就好比世界各地的人们会说不同的语言。我们使用互联网可以把不同地方的计算机连接起来,但是还不能通信,就好比一个中国人和一个日本人可以见面,但是见面时时候谁也听不懂谁说的话。这个时候我们规定了一个规则,大家都用同一种方式来表达信息,于是英语就成了全球通用语言,在计算机的世界,TCP/IP协议就起到这样一个作用,有了它,世界各地的计算机就可以实现实现通信了。
应用层
负责与用户交互,处理用户通过不同的应用发出的请求和接收的回应,TCP/IP协议中预存了各类通用的应用服务,比如FTP(文件传输协议),网络共享文件的传输协议,比如将本地文件上传到远程计算机,这时就使用ftp协议。HTTP(超文本传输协议),使用万维网就是在使用HTTP协议,DNS(域名解析协议)负责域名和IP地址的映射,电子邮件传输使用SMTP协议,远程登陆使用talent协议。
DNS协议
全称是Domain Name System,域名系统,是负责将域名转换为对应的ip地址。如百度的机器域名是www.baidu.com,对应的IP地址是http://119.75.217.109/。
为什么会有DNS协议呢?
在计算机的世界里面,每一台计算由一个IP地址唯一标识,我们需要和目标计算机通信时首先需要获得目标主机的IP地址,但是IP地址不方便记忆,所以我们只需要查询域名,计算机内部会查询DNS服务器,有DNS服务器检查数据库,得到域名对应的目标主机的IP地址,总的来说就是IP地址是面向计算机的,而域名则是面向用户的。
最初的域名和IP地址的映射保存在一个hosts文件,通过互联网信息中心来管理这个文件,如果有一个新的计算想要接入网络,或者某个计算机的IP改变了。都需要到信息中心申请变更hosts文件,其他计算机也要定期更新,才能上网,但是这样太麻烦了,所以就出现了DNS系统,直接将域名和IP的地址映射存储到一个DNS服务器里面,如果有电脑要上网直接去DNS服务器注册接可以了。
DNS协议是怎么将域名转化为IP地址的呢,域名解析过程
当用户在地址栏里输入www.baidu.com是,DNS解析的过程大致如下:
静态映射阶段:
1.浏览器会先检查自身缓存中有没有解析过这个域名所对应的IP地址,如果有就结束。
2.如果没有命中,浏览器会检查操作系缓存中有没有对应的已经解析过的结果,这个时候操作系统就会查看一个叫hosts里面的信息,如果这里指定了一个域名对应的IP地址,那浏览器就会首先使用这个地址。
动态映射阶段
3.如果还没有命中域名,这个时候就会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般位于所在城市的某个角落,距离不会太远,而且性能良好,大部分的域名解析过程到这里就已经完成了。
4.如果本地域名服务器(LDNS)仍然没有命中,就直接跳到Root Server域名服务器来请求解析。根域名服务器返回给LDNS一个所查询域名的主域名服务器(gTLD Server 国际顶级域名服务器的 .com.cn.org)ip地址。在这个案例中就是返回存储.com域名解析服务器对应的IP地址。
5.此时LDNS再发送请求给顶级域名服务,顶级域名服务查找并返回存储这个baidu这个域名对应的域名服务器地址(Name Server)
6.然后LDNS请求Name Server 找到www.baidu.com 对应的IP地址,NameServer根据映射关系表找到目标IP返回给LDNS。
7.LDNS缓存这个域名和对应IP,并把解析后的结果返回给用户,用根据TTL值缓存到本地系统缓存,域名解析过程到此结束。
域名结构
说完了域名解析过程,或许已经能够大致了解整个流程,但是对于其中的域名服务器的分级,以及域名的层析结构还感到困惑,接下来介绍DNS域名结构。
首先要明确ip和域名需要是唯一的,而且ip地址的与域名的对应关系是多对多的,一个域名可以对应多个ip,一个ip也可对应多个域名。在不同的地方访问www.baidu.com,域名解析后的服务器ip地址是不同的。要想保证域名唯一,因特网命名的时候采用了层次结构的命名方法。域名服务主要值基于UDP实现的,服务器端口号为53.
域名服务器:
有了域名结构,还需要有一个东西去解析域名,域名需要由遍及全世界的域名服务器去解析,域名服务器实际上就是装有域名系统的主机。同样域名服务器也分结构,不同层次的服务器,负责处理不同层次的域名。每个域名服务其存储的是下一域名与ip地址的映射,这种思想就如同索引方式里面的多级索引,根域名服务器存储了 .com .cn .edu 这些顶级域名服务器的ip地址。根服务器主要用来管理互联网的主目录,最早是IPV4,全球只有13台(这13台IPv4根域名服务器名字分别为“A”至“M”),1个为主根服务器在美国。其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本。
在与现有IPv4根服务器体系架构充分兼容基础上,“雪人计划”于2016年在全球16个国家完成25台IPv6根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的4台,由1台主根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境。
TCP/IP协议应用层之DNS协议相关推荐
- 【应用层】DNS协议
一.概述 本篇文章基于<计算机网络>和<计算机网络:自顶向下方法>,为笔者的读书笔记,主要内容如下所示: DNS提供的服务 互联网的域名结构 DNS服务器的分布 DNS的工作原 ...
- OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系
OSI七层协议模型.TCP/IP四层模型和五层协议体系结构之间的关系 一.OSI七层模型 OSI七层协议模型主要是:应用层(Application).表示层(Presentation).会话层(Ses ...
- TCP/IP网络协议栈:ARP协议详解
<TCP/IP网络协议栈:以太网数据包结构.802.3> <TCP/IP网络协议栈:ARP协议详解> <TCP / IP攻击:ARP缓存中毒的基本原理.TCP序列号预测和 ...
- TCP/IP协议基本概括+ARP协议详解+DNS协议详解---Linux学习笔记
TCP/IP协议的体系结构: TCP/IP协议族四层模型和OSI七层模型 上层协议使用下层协议的服务,下层协议给上层协议提供一个接口. 四层模型中各个层次的作用和特点 上图说明: 最底层是数据链路层, ...
- 信息系统项目管理师教程(第3版)- OSI七层模型TCP/IP四层模型对应网络协议
一.OSI七层模型: 1.应用层 网络服务与最终用户的一个接口. 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP 2.表示层 数据的表示. ...
- 《TCP/IP详解卷一:协议》 概述
分层 TCP/IP协议族是一组不同层次上的多个协议的组合.TCP/IP通常被认为是一个四层次协议系统. 链路层(数据链路层或网络接口层):通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.用 ...
- 【TCP/IP】TCP/IP 四层分别有哪些协议|OSI四层/五层/七层协议
五层协议模型 应用层:http dns TFTP .Telnet .FTP.SMTP.NFS.Rlogin. SNMP(UDP)-- 传输层:TCP.UDP 网络层: ICMP(ping tracer ...
- OSI七层协议模型、TCP/IP四层模型和五层协议体系
先放图 一.OSI七层协议模型 OSI的七层协议主要包括:物理层(physical layer).数据链路层(data link layer).网络层(network layer).运输层(trans ...
- mysql是4层协议_OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系...
一.OSI七层协议模型 OSI的七层协议主要包括:物理层(physical layer).数据链路层(data link layer).网络层(network layer).运输层(transport ...
最新文章
- 2015/06/08
- 成功解决ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED L
- 25、jdbc操作数据库(2)
- ubuntu 安装 mono报错 E: Unable to correct problems, you have held broken packages.
- coreos 搭建PHP,Linux_用Mac在CoreOS上搭建WordPress的教程,作者以自己的Mac笔记本为例, - phpStudy...
- Eclipse使用问题
- 如何用python画矿物分布地图_python怎么画出分布图?
- 云服务器发送开锁信息给单车,史上超全共享单车车锁的开锁方式(含具体方案)...
- 数字图像处理-冈萨雷斯(学习笔记)
- mysql网上图书销售_PHP+MySQL网上书店|网上图书销售系统
- oracle数据库 date函数,Oracle 函数(处置Date)
- 关于PPT配色的小技巧
- 政策的组合拳使得九月无法平凡
- 样本量太小怎么做结构方程模型?
- Flutter—— 仿自如APP裸眼3D效果
- [已解决]关于python无法显示中文的问题:SyntaxError: Non-ASCII character '\xe4' in file test.py on line 3, but no enc
- ariang修改默认服务器,Mac小技巧之AriaNg Native配置
- 杭州的旅游景点与民间传说故事
- 解题:POI 2009 Lyz
- 逻辑回归实现数字手写识别
热门文章
- 查看项目在服务器日志信息命令
- Qt按键长按短按实测
- Onvif协议学习:3、了解web services
- cuteftp上传文件失败,提示权限失败
- SSM毕设项目广西桂林特产销售平台u64r4(java+VUE+Mybatis+Maven+Mysql)
- (DUNS)申请流程
- 使用keil调试STM32,定时器的CNT寄存器数值在断点读取数值不准确问题
- linux添加压缩文件tar,在linux中使用tar创建与解压文件
- “前线”与“后方”—数字化转型时代理解华为品质服务的价值
- serverlet 原理_什么是serverlet?