网络协议-应用层(DNS、DHCP)

·  阅读 808

应用层(英语:Application layer)位于OSI模型的第七层。应用层直接和应用程序接口结合,并提供常见的网络应用服务。应用层也向第六层表示层发出请求。

应用层常见的协议

  • 超文本传输 Http、Https
  • 文本传输:FTP
  • 电子邮件:SMTP、POP3、IMAP
  • 动态主机配置:DHCP
  • 域名系统:DNS

DHCP

动态主机设置协议(英语:Dynamic Host Configuration Protocol,缩写:DHCP),又称动态主机组态协定,是一个用于IP网络的网络协议,位于OSI模型应用层,使用UDP协议工作,主要有两个用途:用于内部网或网络服务供应商自动分配IP地址给用户、用于内部网管理员对所有电脑作中央管理

上文是维基百科上的一些说明,用我们通俗电话说就让我们在接入一个网络的时候可以自动的冲IP地址池中找一个IP租给我们使用,一般的我们自己家里的路由器就充当着DHCP服务器。这里也存在着几个问题

  • DHCP服务器怎么知道你需要IP
    首先当一个新的机器接入了网络此时还什么都不知道只知道自己的MAC地址所以此时新的机器就会发送一个广播包(源IP是0.0.0.0,目标IP是255.255.255.255,目标MAC是FF:FF:FF:FF:FF:FF)格式如下图所示。这个流程被称之为DHCP DISCOVER Image From 第4讲 DHCP与PXE:IP是怎么来的,又是怎么没的?.png

  • 如果给了多个IP如何选择
    当第一步广播包发出去了如果有DCHP服务器收到了这个广播包,此时就会回一个“租约”回去(里面包含着租用的IP地址,以及租用期限、子网掩码、网关、DNS等信息),此时DCHP服务器也会将这个IP保留下来不给其他机器使用这个过程被称之为DHCP Offer,格式如下图: Image From 第4讲 DHCP与PXE:IP是怎么来的,又是怎么没的?.png 但是如果同一个广播域里面有好几个DHCP服务器此时新接入的机器就会收到好几个offer,一般情况下会使用最先到达的offer,然后再发一个广播包,会告诉所有DCHP 服务器我使用那个IP(没有被使用的IP对应的DCHP服务器此时就会撤销保留可以给其他机器使用)这个流程被称之为DCHP Request格式如下图: Image From 第4讲 DHCP与PXE:IP是怎么来的,又是怎么没的?.png当服务器收到广播request的时候再回复一个ACK此时就算租赁成功了

  • 既然是租的租期到了怎么办
    客户等到自己租期到50%的时候会想给自己租IP的DCHP服务器发送request,等到收到CHP服务器的ACK的时候更新一下自己的配置,这样租赁信息也就更新成功了

域名

在说应用层之前也说一些域名,前文中我们都说网络通讯需要的是双方的IP地址,知道了IP地址才能查询到对方的MAC地址进而就可以进行网络通讯,我们自己的IP地址还好应为我们发出去的包我们自己的IP地址自己是肯定知道的,但是对方的IP地址怎么知道呢,一般我们要访问一个网站都是输入一段网址通过网址访问数据,而不是输入一段IP地址访问一个网站而这段网址中就包含了域名,那么问题就来了

  • 为什么不直接使用IP而是而是非要用域名
    加入有一个数据库被很多网站很多应用用到,一旦这个数据库应该某种原因放到另外一个机器上了此时所有访问这个数据库的应用就都需要修改一下对应的IP,如果有域名的话只需要修改一下域名对应的IP地址就好
  • 既然用域名了为啥不干脆直接用域名进行通讯算了
    IP地址固定的是4个字节,而域名随随便便就是十个字节很占用资源

域名又被分为了一下几个级别的域名

Image From 08_应用层.png

  • 顶级域名(Top-level Domain,简称TLD)

    是域名中最高的一级,每个域名都以顶级域结尾。
    顶级域名中也有分类如下几种分类
    • 通用顶级域名(General Top-level Domain,简称gTLD)
      .com(公司),.net(网络机构),.org(组织机构),.edu(教育) .gov(政府部门),.int(国际组织)等
    • 国家及地区顶级域名(Country Code Top-level Domain,简称ccTLD)
      .cn(中国)、.jp(日本)、.uk(英国)
    • 新通用顶级域名(New Generic Top-level Domain,简称:New gTLD) .vip、.xyz、.top、.club、.shop等
  • 二级域名

    顶级域名的下面是二级域名,直观点说就是位于顶级域名的左侧例如baidu.com,baidu就是二级域名
  • 三级域名

    以此类推二级域名下的域名,例如td.baidu.com,td就是三级域名(这里可能有人会问为什么不是www,www完全可以理解成是无用的,不算在域名系统里的,比如现在访问百度基本上直接输入baidu.com就可以打开对应的网址而不需要添加www)
  • ...

    剩下可能还有四级域名如上文以此类推

DNS

上文有说到我们访问网站的时候用的都是域名,而数据传输的时候我们传递的是IP地址,所以就需要一个服务器帮我们通过域名来找到我们想要访问的IP地址,DNS服务器的主要工作就是如此,DNS服务器更像一个地址簿,帮我们返回对应的IP.

但是在这里不妨设想一下如果全球所有的用户都访问这一个DNS服务器,那回事多可怕的事情,时延将会非常大,而且一旦这个服务器瘫痪了那么全球的网络也就瘫痪了,所以DNS服务器就有了如下层次的层级结构: Image From 第18讲 DNS协议网络世界的地址簿.png 这里有人会问跟DNS服务器挂了不是一样会引起整个互联网的瘫痪吗,而且也没解决全球人访问一个DNS服务器的情况,首先说明一点根DNS服务器全球一共有13台的不是仅仅只有一台,还有就是一般我们都会有DNS本地服务器的所以不一定每次访问都要走根DNS服务器,下面就是DNS解析流程

  • 首先会访问本地域名服务器,这个本地域名服务器一般都是有你的网络服务商(电信、移动等)分配的,它通常就在网络服务商的某个机房中.
  • 本地域名服务器在没有这个时候就需要访问根服务器了,根服务器里面存储的都是顶级域名服务器地址,根服务器会根据你的顶级域名找到顶级域名的服务器然后返回给你顶级域名服务器的地址
  • 等到顶级域名服务器之后,访问顶级域名服务器,这里面存储的都是二级域名服务器的地址。这个时候根据你的二级域名来找到对应二级域名服务器如果你的域名没有三级域名那么就会直接返回你IP,如果还有三级域名则以此类推继续找三级域名的IP地址最终就找到了IP。
  • 找到对应的IP之后返回给本地DNS,此时本地DNS再将IP地址返回给客户端,最后建立链接至此DNS解析流程结束
分类:
后端
标签:
分类:
后端
标签: