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

news2024/11/18 17:21:02

引言

    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.coloradmin.cn/o/1039735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

命令执行(rce)

1.命令与代码执行原理 命令执行原理 参数给变量未经过滤,直接使用了不安全的函数处理了变量 127.0.0.1&&ipconfig 有漏洞 常用的函数 assert,system,exec,shell_exec, eval,(反单引号) 代码执行原理 参数给变量未经过滤&#xff…

Windows如何将软件安装在移动硬盘上?

为什么要在Windows的移动硬盘上安装软件? 现在一些软件需要占用的硬盘空间越来越多,我们下载的软件也越来越多,硬盘的可用存储空间自然的也就越来越小了。当您在下载新软件时,就会提示您磁盘空间不足,但又不能删除之…

AIGC专栏7——EasyPhoto 人像训练与生成原理详解

AIGC专栏7——EasyPhoto 人像训练与生成原理详解 学习前言源码下载地址为什么是LoraEasyPhoto的训练流程1、数据的预处理a、人像排序i、人脸特征向量提取过程ii、人脸偏移角度计算iii、人像排序 b、人像分割与修复i、人像分割ii、图像修复与超分处理 2、Lora模型训练a、训练的基…

PyTorch实战:常用卷积神经网络搭建结构速览

目录 前言 常用卷积神经网络 1.AlexNet 2.VGGNet 3.GoogLeNet 4.ResNet 总览 前言 PyTorch可以说是三大主流框架中最适合初学者学习的了,相较于其他主流框架,PyTorch的简单易用性使其成为初学者们的首选。这样我想要强调的一点是,框架…

收藏!一个详细完整的公司局域网搭建案例

你们好,我的网工朋友。 什么是局域网? 所谓局域网(Local Area Network,简称LAN),就是用于将有限范围内(例如一个实验室、一层办公楼或者校园)的各种计算机、终端与外部设备互联成网。 那公司局域网怎么建…

ScrollView如何裁剪粒子特效

1)ScrollView如何裁剪粒子特效 2)Unreal在移动设备中无法使用Stat命令获取到GPU Thread的耗时 3)Unity中如何看到相机视野范围内的剔除结果 这是第354篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、…

Spring Cloud Alibaba Gateway 简单使用

文章目录 Spring Cloud Alibaba Gateway1.Gateway简介2. 流量网关和服务网关的区别3. Spring Cloud Gateway 网关的搭建3.1 Spring Cloud Gateway 配置项的说明3.2 依赖导入3.3 配置文件 Spring Cloud Alibaba Gateway 1.Gateway简介 Spring Cloud Gateway是一个基于Spring F…

图片分割处理(以玉米颗粒的图片分割为例)

问题: 为完成玉米颗粒分类任务,现需要处理训练图片,将以下图片中的玉米颗粒进行分割: 目标: 操作步骤(完整代码附在最后,该部分为解释说明) 一、提取通道并进行二值化 # 提取蓝…

CCC数字钥匙设计【BLE】 --建立安全测距

1、建立安全测距Establish Secure Ranging 车端总共有三种建立安全测距的方式,具体如下: 1) Optimal Flow 2) Sub-Optimal Flow 3) Ranging Recovery Flow 为了确定建立安全测距需要执行哪条流程,车辆需要进行以下流程选择。当车辆和设备…

速码!!BGP最全学习笔记:BGP路径属性与选路原则

BGP路径属性 1、路径属性分类 公认属性:所有BGP路由器都必须能够识别的属性 公认必遵(Well-known Mandatory):必须包括在每个Update消息里。公认任意(Well-known Discretionary):可能包括在某…

数学公式测试

MVP变换 MVP变换用来描述视图变换的任务,即将虚拟世界中的三维物体映射(变换)到二维坐标中。 MVP变换分为三步: 模型变换(model tranformation):将模型空间转换到世界空间(找个好的地方,把所…

4年北漂之路,从软件测试外包到外企的一点小心得

4年前,我独自一人拖着行李箱来到了北京,成为了一名北漂,离开了校园的庇护,只身一人想要在这片陌生的地方闯出一番名堂,可最后却不得人意,面临着和所有北漂群体的共同困局,没有任何归属感&#x…

【Python Fastapi】js上传文件,fastapi处理,js显示回传信息

python from fastapi import FastAPI, File, UploadFile, HTTPException from fastapi.staticfiles import StaticFiles from fastapi.responses import HTMLResponse from typing import List import requestsapp FastAPI()# 配置静态文件目录 app.mount("/static"…

C++程序员,想入坑音视频方向,需要掌握那些技能树?

C程序员,想入坑音视频方向,需要掌握那些技能树? “音视频”方向太笼统了。 最核心的技术包括编码理论,从基础开始就是信号处理,傅里叶变换,DCT, 采样量化插值等等。这些和C没啥关系,就是一套数学理论。 …

工作薄代码之将活动工作表复制到新工作簿等

【分享成果,随喜正能量】得失,可以说是人类事业上的考验,不要因一时的得失影响一生的期许。得失是一时的,理想是一生的。。 我给VBA下的定义:VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率&#xf…

基于SpringBoot的企业客户管理系统

目录 前言 一、技术栈 二、系统功能介绍 管理员功能模块 员工功能模块 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 本论文主要论述了如何使用JAVA语言开发一个企业客户管理系统,本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c…

JVM堆内存转储

堆转储是 JVM 中特定时刻内存中的所有对象的快照。它们对于解决内存泄漏问题并优化 Java 应用程序中的内存使用情况非常有用。 堆转储通常以二进制格式 hprof 文件存储。我们可以使用 jhat 或 JVisualVM 等工具打开和分析这些文件。 下面介绍两种堆转储的方式: 1…

HTTP 请求轻松搞定:Swift 网络编程的不二之选 | 开源日报 No.38

Alamofire/Alamofire Stars: 39.8k License: MIT Alamofire 是一个用 Swift 编写的 HTTP 网络库。 简洁的语法和强大的功能集,让你仅需几行代码就能实现诸如自动重试等强大特性。支持链式请求/响应方法,使得处理网络请求变得如丝般顺滑。完美兼容 Swif…

前端性能测试工具-lighthouse

Lighthouse简介 Lighthouse 是 Google 的一款开源工具,它可以作为一个 Chrome 扩展程序运行,或从命令行运行。只需要给 Lighthouse 提供一个要审查的网址,它将针对此页面运行一连串的测试,然后生成一个页面性能的报告。 Lightho…

【电子通识】办法总比问题多:立式贴片座子整形成卧式

最近在测试一些和电池有关的项目,因为这个电池接口是没有用过的,以前做的一些接口板上没有兼容,导致不方便测试。 拿到座子后发现这个座子是立式贴片的。 但是不方便我做测试接口板工装,因为已经有一个立工座子了,再焊…