挑战408——一周网络——应用层(1)

网络应用模型

C/S模式

C/S模式,即所谓的客户端/服务器模式。服务器是一个总是打开着的主机,它服务于许多来自其他称为客户机的主机请求。C/S的工作模式非常简单。

  1. 服务器处于打开状态。
  2. 客户机放出服务请求,并等待接收结果
  3. 服务器接收到请求后处进行处理,然后返回结果给客户机。

对此,客户机一定要知道服务器的地址,而服务器不一定需要知道客户机的地址。打个比方,我们去银行(类比服务器)办理业务。首先银行要开门我们才能进行办理业务。其次,我们提出我们的业务需求,银行的工作人员才会为我们处理,并告知处理结果。这里我们(客户)必须需要知道银行的具体地址。而银行并不需要知道每个人的具体地址。它只负责帮你处理业务。
目前。大部分的网络应用程序采用此种方式。(如FTP,WEB,Telnet,以及电子邮件)。
C/S模式下,各客户机的地位不等,有服务器进行统一管理,。客户机相互之间不进行通信。但如此一来,对服务器的要求就相对较高。

P2P模式

在C/S模式中,服务器的好坏决定了整个系统的性能,而且客户机的地位不是完全对等的。其思想为:不管 两台主机在在通信时,哪一台时客户机哪一台时服务器,只要双方运行了P2P软件,他们就可以进行平等,对等的连接通信。这样双方就可以相互分享磁盘上的共享文件。换句话说,该模式下的主机,即使客户机又是服务器。
目前比较流行的P2P软件大多为下载软件,比如电驴,迅雷,PPlive等
该模式摆脱了对服务器的完全依赖,并且当请求量大的时候不必受限与硬件以及网络宽带。但是此种模式会占用比较大的内存,对磁盘有会造成较大的损害。

C/S与P2P的对比图

在这里插入图片描述

DNS 域名系统

域名系统DNS时因特网使用的命名系统,用来把便于人们使用的主机名字(即我们常说的域名)转换成IP地址
用户与互联网上某台主机通信时,必须要知道对方的IP地址。然而用户很难记住长达32位的二进制主机地址,在应用层中,连接互联网的主机都可以有一个便于记忆的主机名(如www.google.com).DNS能够将这样的域名转换成IP地址。
理论上讲,整个互联网可以只使用一个域名服务器,但是由于互联网的规模很大,这样的域名服务器必定会由于负荷较大而崩溃。因此DNS被设计为联机分布式数据库系统(即将庞大的域名数据库系统分开存放)。且采用C/S模式。这就使得大多数主机名都可以在本地进行解析(即转换成IP地址)。因此DNS的效率很高。

域名结构

因特网采用树状结构命名,这样一个域名可以分为根域名,顶级域名,一级域名,二级域名等等。各级之间用点隔开。如下:

www.baidu.com

www 是三级域名,baidu是二级域名,com是顶级域名。域名级别从左往右递增。顶级域名可以分为国家顶级域名,通用顶级域名。
互联网的域名空间就是一个树状结构,最上层是树根但是没有对应的名字。域名树的树叶就是单台计算机的名字,如下图所示
在这里插入图片描述

域名服务器

上面说过,DNS采用分布式数据库的方式来存放信息。DNS服务器的管辖单位称为“区”,每个区设置相应的权限服务器,用来保存该区中所有主机域名到ip地址的映射。每一个域名服务器只对域名体系中的一部分进行管辖。采用分布式设计的DNS,没有一台域名服务器具有因特网上所有主机的映射,因为该映射分布在所有的DNS服务器上。根据域名服务器所起的作用,可以将域名服务器分成下面四大类:

  1. 根域名服务器 :根域名服务器是最高层次的域名服务器,也是最重要的域名服务器,它知道所有顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,只要是对互联网上任意一个域名不能进行解析,都要首先求助于根域名服务器。
  2. 顶级域名服务器:负责管理,在其顶级域名服务器下注册的所有二级域名。(比如.COM域名服务器就负责管理所有xxxx.com的域名)。
  3. 权限域名服务器:负责一个区的域名服务器,当一个权限域名服务器还不能给出查询结果的时候,就会返回dns客户,下一步应当找哪一个域名服务器。
  4. 本地域名服务器:也称为默认域名服务器。在cmd中,输入ipconfig,回车。看到的首选dns服务器就是本地域名服务器:
    在这里插入图片描述
    本地域名服务器离用户很久,当要查询的主机也在本地ISP中时,本地域名服务器就可以很快的把要查询到的主机名转换成IP地址。

各大类的层次结构如下图所示:
在这里插入图片描述

域名解析过程

域名的解析方式主要有两种:递归查询,迭代查询。
递归查询的意思可以借助域名的树状结构来理解。首先DNS客户向本地域名服务器查询,如果本地域名服务器没有该主机名的ip地址,那么就向根域名服务器发起查询请求,然后根域名服务器再向下发送请求。直到找到对应的映射后,原路返回给DNS客户。示意图如下:

在这里插入图片描述
迭代查询与递归查询不同,迭代查询的主动发起查询的始终是DNS客户,当根域名服务器收到DNS客户的请求的时候,要么告诉客户查询的结果,要么告诉客户下一步该去哪查询。接下来客户就按返回的信息去相应的服务器查询(递归查询是根域名服务器替代客户机进行查询)。
在这里插入图片描述
通常,本机向本地域名服务器采用的是递归查询,本地域名服务器向根域名服务器采用的是迭代查询。

DNS其他

DNS发送的请求采用UDP协议封装的数据报,每发送一次请求或者返回一个结果都是需要一个UDP数据报的。为了提高DNS的查询效率,通常,域名服务器中都会使用高速缓存(类似于计算机组成原理中的CACHE),用来存放近期查询过的域名以及对应的IP地址。这样查询的顺序就是先查询高速缓存,再查询本地域名服务器了。
DNS的传输层协议是UDP。默认端口号是53,采用C/S模式。.

FTP 文件传输系统

FTP是目前互联网上应用的广泛的文件传输协议(1995年www的通信量才超过FTP),一个服务器进程可以同时为多个客户端进程提供服务,网络环境的一项基本应用就是将从一台机器复制到一台可能相距很远的计算机。但是每台计算机的文件系统不一致所以这并不是件容易的事。而FTP的功能就是减少或者消除不同操作系统下处理文件的不兼容性。
FTP的服务进程主要有两大类:

  • 主进程: 负责接收新的请求
  • 从属进程:负责处理单个请求

FTP在工作时使用两个并行的TCP进程,控制连接(端口号21)数据连接(端口号20)。在进行文件传输时,FTP的客户端和服务端建立这两个并行的TCP连接。

控制连接(默认端口号21)

其中控制连接用来传输控制信息(如建立连接,传送请求),控制信息以7位ASCLL码格式传输。FTP发出的传送请求是通过控制连接传送到服务器的控制进程。因为在传送文件过程中可能需要暂停或者终止之类的控制指令,因此,控制连接在整个传送过程中是一直打开的。

数据连接(默认端口号20)

数据连接顾名思义就是用来传输文件的连接,它能连接服务器端的数据传送进程。在完成数据传送后FTP会关闭相应的此数据连接。

FTP文件传送过程

当FTP客户端进程向服务端发起建立连接请求时,便寻找服务器熟知的21端口,同时要告诉服务端进程自己的数据连接端口号,用于建立数据连接。接着服务器用自己熟知的20端口与客户端的提供的数据连接端口进行连接。由于FTP采用两个不同的端口号,所以数据传输不会发生混乱。
在这里插入图片描述

网络文件系统NFS

对FTP而言,要对文件的内容进行修改,必须先把整个文件下载到客户端,修改后再上传至服务器。但是当文件内容很大的时候,这样来回传输就会效率很低。NFS允许应用进程打开一个远地文件,并在文件的某一特定的地方进行读写数据。这样在网络上传输的只是少量的要修改的数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值