计算机网络 --- 应用层3

一.域名系统DNS

1.历史和概述

(1)DNS:域名系统
①Domain Name System域名系统

a.分层域名服务器实现的分布式数据库;
b.运行DNS协议;
c.提供名字服务。

②DNS完成主机名到IP地址的解析。

(2)域名系统概述
①域名系统DNS是互联网重要的基础设施之一,向所有需要域名解析的应用提供服务,主要负责将可读性好的域名映射成IP地址

②Internet采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS。Internet的DNS是一个联机分布式数据库系统

③名字到域名的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的节点上运行,相应的节点也称为名字服务器(Name Server)或域名服务器(DNS)。
在这里插入图片描述

2.域名系统名字空间和层次结构

在这里插入图片描述
(1)Internet的域名结构
①Internet的域名结构采用了层次树状结构的命名方法;

②域名的结构由若干个分量组成,各分量之间用小数点隔开,总长不超过255个字符;

③各分量分别代表不同级别的域名(≤63字符);

④合法域名,点“.”的个数至少为一个;
在这里插入图片描述
(2)顶级域名TLD(Top Level Domain)
①国家或地区顶级域nTLD,也记为ccTLD(cc:country code)。
①例如:.cn表示中国、.us表示美国、.uk表示英国,目前有300多个。
②国家顶级域名.cn下的二级域名分为三类:
a.类别域名(7个)

.edu.cn:教育;
.gov.cn:政府;
.org.cn:非营利组织;
.net.cn:网络服务;
.com.cn:工商金融等企业;
.ac.cn:科研;
.mil.cn:国防机构。

b.行政区域名(34个)

省、直辖市、自治区、特区等行政区域名,每个行政区域名为两个字母,例如北京bj。

c.无类别域名

例如:www.google.cn。

②基础设施域.arpa(Address and Routing Parameter Area)
a.专用于Internet基础设施目的;
b.目前有二级域ip6.arpa、iris.arpa等。

③通用顶级域gTLD
a.早期规定了20个通用顶级域名,2011年批准新通用顶级域名(New gTLD);
b.截止2020年,已注册有1200多个通用顶级域名。
c.早期的通用顶级域名

.com:表示公司企业(commerce);
.net:表示网络服务机构,例如NIC和NOC(network);
.org:表示非营利性组织(organization);
.edu:表示教育机构(美国专用)(education);
.gov:表示政府部门(美国专用)(government);
.mil:表示军事部门(美国专用)(military);
.int:表示政府间国际合约建立的国际性组织(international);
.mobi:用于提供移动产品和服务的用户和供应商(mobile)。

(3)域名的管理
①域名管理机构分级负责域名注册
a.Internet的域名管理机构:ICANN;
b.ccTLD下的二级域名该国自行确定;
c.三级域名注册由其所属二级域名机构负责,以此类推。

②.edu.cn下三级域名注册由CERNET负责。

③我国的其它二级域名注册由中国互联网络信息中心(CNNIC)负责。
在这里插入图片描述

3.域名服务器

(1)用域名服务器进行域名解析
域名解析过程对用户透明。
在这里插入图片描述

(2)DNS服务

a.主机名到IP地址的转换;
b.主机别名;
c.负载分配。

  • 复制的Web服务器:对一个规范名的IP地址集合。

(3)域名服务器类别
①Internet上域名服务器系统也按域名层次树状安排。每个名字服务器管辖一部分域。

②按管辖范围从大到小,域名系统的名字服务器可分为四类:

a.根名字服务器/根服务器(root server);
b.顶级域名字服务器(TLD name server);
c.权威域名字服务器(authoritative name server);
d.本地域名字服务器(local name server)
也称为递归服务器/递归解析器(recursive resolver)。

在这里插入图片描述

③根服务器

a.根服务器是最高层次的域名服务器;
b.每个根服务器都知道所有的顶级域名服务器的域名及其IP地址;
c.在域名服务器的四层结构中,本地域名服务器对自己无法解析的任何一个域名,首先求助于根服务器;
d.路由器把查询转发到距离这个本地域名服务器最近的一个根服务器(采用了任意播技术),这就加快了查询过程;
e.根服务器并不直接把主机用户所查的域名转换成IP地址;
f.根服务器共有13套(不是13台机器),这些根服务器相应的域名分别是:a.rootservers.net ~ m.rootservers.net;
g.每套都有1台主(master)根服务器,其他的是镜像根服务器。镜像根服务器内容定期与主根服务器同步。更改数据只能在主根服务器中进行,这样既能保证数据的一致性,也提高了域名服务的可靠性。
h.根服务器之间采用任意播(anycast)技术互联。目前全球已设置了1000多台镜像根服务器,用户域名解析请求时延进一步降低。这样可以方便用户,使世界上大部分DNS域名服务器都能就近找到一个根服务器。

④顶级域名字服务器

a.顶级域(TLD)名字服务器负责管理在该顶级域名服务器注册的所有二级域名;
b.当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一步应当找的权威域名字服务器的IP地址)。

⑤权威域名字服务器

a.每一个主机都必须在某个权威域名服务器处注册登记。因此权威域名服务器知道其管辖的主机名应当转换成什么IP地址;

  • 各个单位根据自己的具体情况把本单位的域名划分为若干个域名管辖区(zone),也可简称为区。

b.每个区设置相应的权威域名服务器,用来保存该区中所有主机的域名到IP地址的映射;
c.权威域名服务器一般只解析本辖域的域名。

⑥本地域名字服务器

a.每一个Internet服务提供者ISP,都至少有一个本地域名字服务器;
b.本地域名字服务器离用户较近,一般不超过几个路由器的距离;
c.当主机发出DNS查询报文时,这个查询报文就首先被送往该主机所在区域的本地域名字服务器;
d.如果所要查询的主机也处在本地ISP的管辖范围,则本地域名字服务器就立即能进行域名解析,否则就需要再以此去询问其他的域名服务器;
e.实际部署中,解析请求路径上的本地域名字服务器可能有多个。

4.域名解析过程

(1)概述
①当某一应用进程需要进行域名解析时,该应用进程将域名放在DNS请求报文(UDP数据报,端口号为53)发给本地域名字服务器(使用UDP是为了减少开销)。
本地域名服务器查找域名后,将对应IP地址放在应答报文中返回给应用进程。

②域名查询有递归查询和迭代查询(或循环查询)两种方式。

a.主机向递归解析器/本地域名字服务器的查询一般采用递归查询;
b.递归解析器/本地域名字服务器向根服务器可以采用递归查询,但一般优先采用迭代查询。

(2)递归查询(较少使用)
在这里插入图片描述

(3)迭代查询(通常使用)
在这里插入图片描述

5.域名系统高速缓存

(1)DNS高速缓存作用

①为提高DNS查询效率,并减轻根域名服务器的负荷和减少Internet上的DNS查询报文数量,域名服务器广泛使用高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

例如不久前已有用户查询过域名为y.abc.com的IP地址,则本地域名服务器/递归解析器就不必再向根域名服务器重新查询y.abc.com的IP地址了,而是直接把高速缓存中存放的上次查询结果(即y.abc.com的IP地址)告诉用户。

(2)使用高速缓存的好处
①可以大大减轻根域名服务器的负荷,而且也能够使Internet上的DNS查询请求和回答报文的数量大为减少;

②主机一般也缓存域名有关信息。

(3)缓存中保存项目有一定的时限
①域名到IP地址的绑定可能发生变化(但不会经常改变)。
为保持高速缓存中内容正确,域名服务器应为每项内容设置计时器并处理超时项目。

②当域名服务器已从缓存中删去某项信息后又被请求查询该项信息,就必须重新查询。

③当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名解析的准确性。

6.域名系统隐私

(1)DNS协议的脆弱性
DNS协议设计之初没有过多考虑安全问题,因此导致DNS存在以下缺陷:
①几乎所有DNS流量都是基于UDP明文传输的;
②DNS的资源记录未加上任何的认证和加密措施;

这将导致DNS的用户隐私容易被泄露。

(2)域名解析过程的源IP地址的保密性
源IP地址提供的用户主机的信息,可以看做是用户标识。在一次DNS查询中,不同层面的源IP地址的含义不太一样。
①在递归服务器上,源IP地址基本就是用户主机的IP地址;
②在域名服务器上,源IP地址一般是发出查询请求的服务器的IP地址(除非用户在自己主机上部署了本地递归服务)。
在这里插入图片描述

(3)域名解析过程的保密性
①Query NAME(QNAME)是用户请求的域名全名,它提供了用户的操作信息;

②在域名解析过程中,递归服务器和各层级域名服务器基本都是收到包含QNAME的查询;

③不同的QNAME包含的敏感信息不一样。
例如一些特定主题网站域名的查询可能会泄露用户的爱好和习惯。

(4)DNS敏感数据主要的泄露途经
①通信链路窃听
由于DNS的开放性,窃听者可以像窃听其他流量一样监听DNS流量。同时DNS查询并不经过任何的加密手段,因此,任何第三方的机构或个人很容易通过在用户和服务器之间进行搭线窃听,查看到用户所有的DNS查询信息。

②服务器收集
全球现有超过1000万台域名服务器,每天产生的域名查询信息已经达到了万亿级别,同时由于DNS日志已被广泛应用于各种DNS解析器软件中,因此用户的每条查询信息都可以被服务器记录下来。

7.域名系统查询和响应

(1)DNS报文格式
①分为三部分:基础结构(报文首部)、问题资源记录(RR)。

②报文类型分为查询请求(query)和查询响应(reply)两类,请求和响应的报文结构基本相同。
在这里插入图片描述
(2)基础结构部分
①事务ID:DNS报文的ID标识。对于请求报文和其对应的响应报文,该字段的值是相同的。通过它可以区分DNS应答报文是对哪个请求进行响应的。

②标志Flags:DNS报文中的标志字段。
在这里插入图片描述

a.QR(Query/Response):查询请求/响应的标志信息。查询请求时值为0,响应时值为1。
b.Opcode:操作码。其中,0表示标准查询;1表示反向查询;2表示服务器状态请求。
c.AA(Authoritative):授权应答,该字段在响应报文中有效。值为1时表示名称服务器是权威服务器;值为0时表示不是权威服务器。
d.TC(Truncated):表示是否被截断。值为1时,表示响应已超过512字节并已被截断,只返回前512个字节。
e.RD(Recursion Desired):期望递归。该字段能在一个查询中设置,并在响应中返回。该标志告诉域名服务器必须处理这个查询,这种方式被称为一个递归查询。如果该位为0,且被请求的域名服务器没有一个授权回答,它将返回一个能解答该查询的其他域名服务器列表。这种方式被称为迭代查询。
f.RA(Recursion Available):可用递归。该字段只出现在响应报文中。当值为1时,表示服务器支持递归查询。
g.Z:保留字段,在所有的请求和响应报文中,它的值必须为0。
h.Rcode(Reply code):返回码字段,表示响应的差错状态。常用Rcode有:

  • 当值为0(NoError)时,表示没有错误;
  • 当值为1(FormErr)时,表示报文格式错误,服务器不能理解请求的报文;
  • 当值为2(ServFail)时,表示域名服务器失败,因为服务器的原因导致没办法处理这个请求;
  • 当值为3(NXDomain)时,表示域名不存在,只有对授权域名解析服务器有意义,指出解析的域名不存在;
  • 当值为4(NotImp)时,表示查询类型不支持,即域名服务器不支持查询类型;
  • 当值为5(Refused)时,表示拒绝应答,一般是服务器由于设置的策略拒绝给出应答,如服务器不希望对某些请求者给出应答。

③问题计数:DNS查询请求的数目。
在这里插入图片描述

a.用来显示DNS查询请求的问题,通常只有一个问题;
b.包含正在进行的查询信息,包含查询名(被查询主机名字)、查询类型、查询类:

  • 查询名name:一般为要查询的域名,有时是IP地址,用于反向查询;
  • 查询类型type:DNS查询请求的资源类型。通常查询类型为A类型,表示由域名获取对应的IP地址;
  • 查询类class:地址类型,通常为互联网地址,值为1(IN)。

④回答资源记录数:DNS响应的数目。

⑤权威资源记录数:权威资源记录的数目。

⑥附加资源记录数:额外的记录数目(权威名字服务器对应IP地址的数目)。

(3)DNS报文格式的资源记录(RR,Resource Record)部分
①资源记录部分是DNS报文格式的最后3个字段,只有在DNS响应报文中才出现,包括回答问题区域字段、权威名字服务器区域字段、附加信息区域字段。这三个字段都采用资源记录的格式。
在这里插入图片描述

a.域名:DNS请求的域名;
b.类型:资源记录的类型,与问题部分中的查询类型值相同;
c.类:地址类型,与问题部分中的查询类值相同;
d.生存时间:以秒为单位,表示资源记录的声明周期,一般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间。它同时也能表示该资源记录的稳定程度,稳定的信息会被分配一个很大的值;
e.资源数据长度:资源数据的长度;
f.资源数据:表示按查询段要求返回的相关资源记录的数据。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二.P2P应用

(1)P2P文件分发概述
①P2P工作方式下,所有的音频/视频文件都是在普通的互联网用户之间传输。

②这种工作方式解决了集中式媒体服务器可能出现的瓶颈问题。

③工作方式

a.没有服务器;
b.任意端系统之间直接通信;
c.节点间歇性地接入Internet;
d.节点可能更换IP地址。

④优势:可扩展性好。

⑤应用:文件分发(BitTorrent)。

(2)文件分发对比

问题:从一个服务器向N个节点分发一个大小为F的文件需要多长时间?
us:服务器上传带宽;
di:节点i的下载带宽;
ui:节点i的上传带宽。
在这里插入图片描述

①客户机-服务器模式

a.从服务器端考虑,所有主机分发完毕的最短时间Tcs不可能小于NF/us
b.下载速率最慢的主机的下载速率为dmin,则Tcs不可能小于F/dmin
c.由此可得出所有主机都下载万文件F的最少时间是:
在这里插入图片描述

②P2P模式

a.初始服务器文件分发的最少时间不可能小于F/us;
b.下载文件分发的最少时间不可能小于F/dmin
c.上载文件分发的最少时间不可能小于NF/uTotal,其中uTotal是上传速率之和;
d.所有主机都下载万文件F的最少时间的下限是:
在这里插入图片描述

(3)BitTorrent协议
①所有对等方集合称为一个洪流(torrent)。

②下载文件的数据单元为长度固定(256Kb)的文件块(chunk)。

③基础设施节点,叫做追踪器(tracker)。

④Torrent:交换同一个文件的文件块的节点组。

⑤Alice就和这些对等方建立了TCP连接。所有与Alice建立的TCP连接的对等方为“相邻对等方”。

在这里插入图片描述
⑦对等节点加入torrent:

a.没有chunk,但是会逐渐积累;
b.向tracker注册以获得节点清单,与某些节点(“邻居”)建立连接。

⑧下载的同时,节点需要向其他节点上传chunk。

⑨节点的对等节点可能会动态变换。

⑩节点可能离开或加入。

⑪一旦节点获得完整的文件,他可能(自私的)离开或(无私的)留下。

a.问题:哪些文件块是首先需要向其相邻对等方请求的?
i.A使用最稀有的优先的技术,首先向其相邻对等方请求对应的文件块;
ii.所谓稀有是指:如果A所缺少的文件块在相邻对等方中的副本很少,那就是“很稀有的”。

b.问题:在很多向A请求文件块的相邻对等方中,A应当向哪些相邻对等方发送所请求的文件块?
i.凡当前以最高数据率向A传送文件块的相邻对等方,A就优先把所请求的文件块传送给相邻对等方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llurran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值