数据通信——应用层(域名系统)

引言

    TCP到此就告一段落,这也意味着传输层结束了,紧随其后的就是TCP/IP五层架构的应用层。操作系统、编程语言、用户的可视化界面等等都要通过应用层来体现。应用层和我们息息相关,我们使用电子设备娱乐或办公时,接触到的就是应用层。

 域名系统概述

    域名系统(DomainNameSystem)简称DNS。在1983年因特网正式开始采用层次式的名字空间组织方案——域名系统(DNS)并开始使用分布式数据库管理整个名字空间。

    众所周知,IP很长,不方便直接交流,因此应用层采用域名作为我们访问各个站点的手段,域名可以被记住,当我们再次访问某些网站采用域名就可以了。

    但因为网络渐渐庞大了,难免会有重名的用户,因此如何在应用层表示因特网中唯一一个用户成为了难题之一。况且,我们在网络层中以一个IP地址作为网络中独一无二的个体,那么如何将应用层的域名和网络层相应的IP联系起来并且再由公网IP转化为成私有IP是域名系统首当其冲的问题。所有的应用和服务都离不开域名!

DNS以客户/服务器(C/S)的方式工作,其主要包含三部分内容:

1.层次树型结构的域名空间(Domain Name Space)

2.存储有关域名及其二进制IP地址信息的名字服务器(NameServer)

3.实现域名与二进制IP地址的转换工作的解析器(Resolver) 

域名空间

    域名也要有存储的地方,我们管其叫做域名空间。域名空间中含有域名的具体结构或命名规则。为了方便管理和查询,设计者采用层次化的树形结构组织域名分布。树形结构自然就有树枝和子叶。在这个域名空间中含有:

  域名:网络中一个用户(计算机)的名字;

  域:域名空间中的一树枝,表示因特网某个可被管理的资源集合;域还可以根据需要被进一步地划分为子域。

  子叶就是代表因特网中提供特定服务的服务器主机的名称,像我们熟知的“WWW”等。子叶也代表它的下面也不能再划分子域了。这样的设计保证了域名在全网的唯一性。

其中顶级域名为通用域名;顶级域名最开始有7个“元老”

com:经济实体

edu:教育机构

org:不适宜在其它域下注册的组织机构和非政府组织

net:网络服务机构

gov:政府机构(美国专用)

mit:军事机构(美国专用)

int:国际相关组织机构

    当然,除了那两个老美专用的东西,其它顶级域名是有相应的标准的,整个国际都要遵守的。当然,我们也要有自己的域名以示区别,这就是二级域名。

    二级域名就是国家定制的域名了。我国将域名分为类别域名行政域名两类。

ac:科研机构

com:工商金融和企业

edu:教育机构

gov:中国政府机构

net:中国的网络服务机构组织

mil:中国国防

org:非盈利机构

    其中还有行政区域域名,覆盖了各省、自治区、直辖市等。比如:BJ(北京)、SH(上海)等等。

    我们的域名均采用中文域名,国内域名注册统一通过中国互联网信息中心——CNNIC及其代理商进行管理。而国际的域名注册由ICANN统一管理。

上图就是域名空间域名层次分布 

我们在表达一个域名时,要从左往右,从低到高以“.”作为区分来描述域名。以上图为例就是:www.b.360.cn,再比如:www.cctv.com 

域名服务器

    在DNS中,存储有关的域名和域名相应的二进制IP地址信息的程序运行在专门的网络结点上,这些结点称为名字服务器。各服务器只负责解析其主管范围的解析工作。并且还设置了若干互不交叉的区域以防止数据源带来的不稳定因素。

域名服务器分为四个大类:

1.根域名服务器(rootNS):最高层次的域名服务器,共13个,管辖所有顶级域名和IP映射。

2.顶级域名服务器(TLDNS):管辖旗下所有的二级域名和IP映射。

3.授权服务器:管辖区域内所有域名和IP映射

4.本地域名服务器:管辖每个主机所在区域的授权查询服务器。

书中对各服务器负责区域的描述 

  拥有一个区内所有的主机信息的名字的服务器就是该区授权的名字服务器(Authoritative Name Server) 

    不仅如此,还需要若干的辅助名字服务器,辅助名字服务器会获取名字服务器的域名信息副本预防名字服务器出现故障时,DNS系统还可以正常运作。

域名解析

    如何将DNS和IP地址互相解析?我们可以通过配置设备的本地DNS来完成,我们在使用网络时候总能看见这个DNS。通过传输层UDP报文的支持,从端口53完成DNS和IP关系的建立。如下图则书中DNS与IP地址互相解析过程。

    当应用进程需要将一个域名映射为IP地址时,就调用域名解析函数,解析函数将待转换的域名放在DNS请求中,以UDP报文方式发给本地域名服务器。本地的域名服务器查到域名后,将对应的IP地址放在应答报文中返回。同时域名服务器还必须具有连向其他服务器的信息以支持不能解析时的转发。若域名服务器不能回答该请求,则此域名服务器就暂成为DNS中的另一个客户,向根域名服务器发出请求解析,根域名服务器一定能找到下面的所有二级域名的域名服务器,这样以此类推,一直向下解析,直到查询到所请求的域名。

 当我们向外进行DNS解析请求时,通过递归或者迭代的方式实现,这也是域名的解析过程。

 

 后续 

递归或迭代,我打算放在以后单独写文档,这里就提一下。域名很好理解,毕竟我们每天都在用。但是应用层的东西很混杂,下一篇就要讲文件传输了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/141606.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

19.组合模式(Composite)

意图:将对象组成树状结构以表示“部分-整体”的层次结构,使得Client对单个对象和组合对象的使用具有一致性。 上下文:在树型结构的问题中,Client必须以不同的方式处理单个对象和组合对象。能否提供一种封装&#xff0c…

基于jquery开发的Windows 12网页版

预览 https://win12.gitapp.cn 首页代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"refresh" content"0;urldesktop.html" /> <meta name"viewport&…

selenium中ActionChains方法详细讲解

前言 本文将介绍Selenium中的ActionChains类及其使用方法&#xff0c;帮助您模拟用户在网页上的鼠标和键盘操作。了解ActionChains的常用方法和示例代码&#xff0c;可轻松实现移动鼠标、点击元素、拖拽元素等操作。通过本文的学习&#xff0c;您能更好地应用ActionChains解决自…

Vue中开发中Mock和总线了解以及应用

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Vue》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#xff0c;这个专栏…

基于微信小程序的校园代送跑腿系统(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

内存对齐--面试常问问题和笔试常考问题

1.内存对齐的意义 C 内存对齐的主要意义可以简练概括为以下几点&#xff1a; 提高访问效率&#xff1a;内存对齐可以使数据在内存中以更加紧凑的方式存储&#xff0c;从而提高了数据的访问效率。处理器通常能够更快地访问内存中对齐的数据&#xff0c;而不需要额外的字节偏移计…

jar包在linux服务器已经运行好,但是访问不到地址

jar包在linux服务器已经运行好&#xff0c;但是访问不到地址 1.将jar包已经上传到linux服务器&#xff0c;并且已经启动 2.但是在本地访问的时候&#xff0c;访问不到,云服务的的安全组策略也开放了相对应的端口。 3.解决方案 修改防火墙开放的接口 iptables -I INPUT -p t…

区块链实验室(26) - 区块链期刊Blockchain: Research and Applications

Elsevier出版物“Blockchain: Research and Applications”是浙江大学编审的期刊。该期刊自2020年创刊&#xff0c;并出版第1卷。每年出版4期&#xff0c;最新期是第4卷第3期(2023年9月)。 目前没有官方的IF&#xff0c;Elsevier的引用因子Citescore是6.4。 虽然是新刊&#xf…

不甘于被强势厂商捆绑,中国移动未来或自研5G基站

一直以来运营商被认为只是做服务&#xff0c;而设备等都是由设备商提供的&#xff0c;甚至由于如今的设备高度复杂&#xff0c;设备商已承包越来越多的基站运维工作&#xff0c;运营商的技术水平越来越低&#xff0c;不过随着中国移动发布5G射频芯片8676&#xff0c;似乎显示出…

CocosCreator3.8研究笔记(二十)CocosCreator UI组件(四)

RichText 组件 RichText 组件是富文本控件&#xff0c;实际是由多个 Label 节点拼装而成&#xff0c;用来显示一段带有不同样式效果的文字&#xff0c;通过BBCode 标签来设置文字的样式。 目前支持的样式有&#xff1a;颜色&#xff08;color&#xff09;、字体大小&#xff08…

介绍 Docker 的基本概念和优势V2.0

介绍 Docker 的基本概念和优势V2.0 一、Docker 的基本概念1.1 Docker 是什么&#xff1f;1.2 Docker 的组成部分1.3 Docker 的基本概念 二、Docker 的优势1. 轻量级&#xff1a;2. 可移植性&#xff1a;3. 自包含&#xff1a;4. 隔离性&#xff1a;5. 可扩展性&#xff1a;6. 易…

Vue中前端导出word文件

很多时候在工作中会碰到完全由前端导出word文件的需求&#xff0c;因此特地记录一下比较常用的几种方式。 一、提供一个word模板 该方法提供一个word模板文件&#xff0c;数据通过参数替换的方式传入word文件中&#xff0c;灵活性较差&#xff0c;适用于简单的文件导出。需要…

28 WEB漏洞-XSS跨站之WAF绕过及安全修复

目录 常规WAF绕过思路标签语法替换特殊符号干扰提交方式更改垃圾数据溢出加密解密算法结合其他漏洞绕过 自动化工具说明强大的fuzzing引擎安全修复方案演示案例&#xff1a; 常规WAF绕过思路 标签语法替换 xss的效果可以由多个代码来实现&#xff0c;就类似于我们使用到的其它…

2023-9-25 排队打水

题目链接&#xff1a;排队打水 #include <iostream> #include <algorithm>using namespace std;typedef long long LL;const int N 100010;int n; int t[N];int main() {scanf("%d", &n);for(int i 0; i < n; i ) scanf("%d", &t…

【Java 基础篇】Executors工厂类详解

在多线程编程中&#xff0c;线程池是一项重要的工具&#xff0c;它可以有效地管理和控制线程的生命周期&#xff0c;提高程序的性能和可维护性。Java提供了java.util.concurrent包来支持线程池的创建和管理&#xff0c;而Executors工厂类是其中的一部分&#xff0c;它提供了一些…

基于UDP协议的网络服务器的模拟实现

目录 服务端类UdpServer的模拟实现 服务端类UdpServer的成员变量 服务端类UdpServer的构造函数、初始化函数initServer、析构函数 服务端类UdpServer的start函数 服务端类UdpServer的整体代码&#xff08;即udp_server.h文件的整体代码&#xff09; 基于服务端类UdpServe…

Tomcat中文路径目录

一、问题描述 linux环境下tomcat发布了包含中文名字的页面和文件&#xff0c;浏览器访问报404&#xff0c;非中文页面没有问题&#xff1b;本人为RP设计的原型图发布&#xff0c;其中包含了大量的中文文件和路径 二、解决步骤 第一步&#xff0c;设置tomcat&#xff0c;配置…

vue里使用elementui的级联选择器el-cascader进行懒加载的怎么实现数据回显?

需要实现的懒加载回显效果 比如&#xff1a;后端返回数据 广东省/广州市/天河区 &#xff1a;440000000000/440100000000/440106000000&#xff0c;需要我们自动展开到天河区的下一级&#xff0c;效果如下 代码实现 我的实现思路就是拿到 440000000000/440100000000/44010600…

Java版本企业工程项目管理系统平台源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…

JavaScript 基础第三天笔记

JavaScript 基础第三天笔记 if 多分支语句和 switch的区别&#xff1a; 共同点 都能实现多分支选择&#xff0c; 多选1大部分情况下可以互换 区别&#xff1a; switch…case语句通常处理case为比较确定值的情况&#xff0c;而if…else…语句更加灵活&#xff0c;通常用于范围…