第六章 6.1应用层概述+6.2客户-服务器方式和P2P方式+6.3 动态主机配置协议DHCP+6.4域名系统

应用层概述

应用层:解决通过应用进程的交互来实现特定网络应用的问题

应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。

 

客户/服务器方式和对等方式

网络应用程序运行在处于网络边缘的不同的端系统上,通过彼此间的通信来共同完成某项任务。

开发一种新的网络应用,首先要考虑的问题就是网络应用程序在各种端系统上的组织方式和它们之间的关系。目前流行的主要有以下两种:

  • 客户/服务器(Client/Server,C/S)方式
  • 对等(Peer-to-Peer,P2P)方式

 客户/服务器(Client/Server,C/S)方式

客户/服务器(Client/Server,C/S)方式:

  • 客户和服务器是指通信中所涉及的两个应用进程。
  • 客户/服务器方式所描述的是进程之间服务和被服务的关系。
  • 客户是服务请求方,服务器是服务提供方。
  • 服务器总是处于运行状态,并等待客户的服务请求。
  • 服务器具有固定端口号(例如HTTP服务器的默认端口号为 80),而运行服务器的主机也具有固定的IP地址。

C/S方式是因特网上传统的、同时也是最成熟的方式,很多我们熟悉的网络应用采用的都是C/S方式。包括万维网WWW、电子邮件、文件传输FTP等。

基于C/S方式的应用服务通常是服务集中型的,即应用服务集中在网络中比客户计算机少得多的服务器计算机上。

由于一台服务器计算机要为多个客户机提供服务,在C/S应用中,常会出现服务器计算机跟不上众多客户机请求的情况。为此,在C/S应用中,常用计算机群集(或服务器场)构建一个强大的虚拟服务器。

对等方式 P2P

在P2P方式中,没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,被称为对等方。

对等方相互之间直接通信,每个对等方既是服务的请求者,又是服务的提供者。

目前,在因特网上流行的P2P应用主要包括P2P文件共享、即时通信、P2P流媒体、分布式存储等。 基于P2P的应用是服务分散型的,因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等。

计算机中,这些计算机并不为服务提供商所有,而是为个人控制的桌面计算机和笔记本电脑,它们通常位于住宅、校园和办公室中。

P2P方式的最突出特性之一就是它的可扩展性。因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者,系统性能不会因规模的增大而降低。

P2P方式具有成本上的优势,因为它通常不需要庞大的服务器设置和服务器带宽。为了降低成本,服务提供商对于将P2P方式用于应用的兴趣越来越大。

动态主机配置协议DHCP

动态主机配置协议DHCP的作用

如何配置用户主机,才能使用户主机正常访问Web服务器呢?

需要给网络中的各主机正确配置IP地址、子网掩码、默认网关、DNS服务器等网络相关配置信息。

配置一台DHCP服务器,其他主机开机后,启动DHCP,向DHCP服务器请求自己的网络配置信息。这样网络中的各主机就都可以从DHCP服务器自动获取网络配置信息,而不用手工参与。

DHCP使用客户/服务器方式,在DHCP服务器上运行DHCP服务器进程,也可简称为DHCP服务器。

在用户主机上运行DHCP客户进程。

DHCP是TCP/IP协议体系应用层中的协议,它使用运输层的UDP所提供的服务,DHCP报文在运输层会被封装成为UDP用户数据报。DHCP服务器使用的UDP端口是67,DHCP客户使用的UDP端口是68。

封装有DHCP报文的UDP用户数据报,在网络层会被封装成IP数据报,然后再根据所使用的网络接口,封装成相应的数据链路层的帧进行发送,例如封装成以太网帧。

动态主机配置协议DHCP的基本工作过程

当启用主机的DHCP后,DHCP客户将广播发送DHCP发现报文,封装该报文的IP数据报的IP源地址为0.0.0.0,这是因为主机目前还未分配到IP地址,因此使用该地址来代替。目的IP地址为广播地址255.255.255.255,之所以进行广播发送,是因为主机现在不知道网络中有哪几个DHCP服务器,它们的IP各是什么。由于是广播的IP数据报,因此网络中的所有设备都会收到该IP数据报,并对其层层解封,解封出装有DHCP发现报文的UDP用户数据报。

对于DHCP客户,其应用层没有监听该UDP用户数据报目的端口67的进程,也就是DHCP服务器进程,因此无法交付DHCP发现报文,只能丢弃。

而对于DHCP服务器,其应用层始终运行着DHCP服务器进程,因此会接收该DHCP发现报文并作出响应。对于DHCP发现报文,我们只需要知道其内部封装有事物ID和DHCP客户端的MAC地址即可。

DHCP服务器收到DHCP发现报文后,根据其中封装的DHCP客户端的MAC地址来查找自己的数据库,看是否有针对该MAC地址的配置信息。如果有则使用这些配置信息来构建并发送DHCP提供报文,如果没有,则采用默认配置信息来构建并发送DHCP提供报文。

封装该报文的IP数据报的源IP地址为DHCP服务器的IP地址,目的地址仍为广播地址,仍然使用广播地址的原因是,主机目前还没有配置IP地址,为了使主机可以收到,只能发送广播。

这样一来,网络中的所有设备都会收到该IP数据报,并对其层层解封。

解封出封装有DHCP提供报文的UDP用户数据报,对于DHCP服务器,其应用层没有监听该UDP用户数据报目的端口68的进程,也就是DHCP客户进程,无法交付DHCP提供报文,因此丢弃。

对于DHCP客户,其应用层使用运行着DHCP客户进程,因此会接收该DHCP提供报文,并作出响应。

DHCP客户会根据DHCP提供报文中的事物ID来判断该报文是否是自己所请求的报文,如果该事物ID与自己之前发送的DHCP发现报文中封装的事物ID相等,就表明这是自己所请求的报文,就可以接受该报文,否则就丢弃该报文。

DHCP提供报文中还封装有配置信息,例如IP地址、子网掩码、地址租期、默认网关、DNS服务器。

DHCP服务器从自己的IP地址池中挑选待租用给主机的IP地址时,会使用ARP来确保所选IP地址未被网络中其他主机占用。

在本例中,DHCP客户会收到两个DHCP服务器发来的DHCP提供报文,DHCP客户从中选择一个,一般来说,选择先到的那个,并向所选择的DHCP服务器发送DHCP请求报文,封装该报文的IP数据报的源IP地址仍为0.0.0.0,因为此时DHCP客户才从多个DHCP服务器中选择一个作为自己的DHCP服务器。它首先需要征得服务器的同意,之后才能正式使用向该DHCP服务器租用的IP地址。

目的IP地址仍为广播地址,这样做的目的是,不用向网络中的每一个DHCP服务器单播发送DHCP请求报文,来告知它们是否请求它们作为自己的DHCP服务器。

DHCP请求报文中封装有事物ID,DHCP客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器端的IP地址。

在本例中,假设DHCP客户选择DHCP服务器1作为自己的DHCP服务器,并向DHCP服务器1接受该请求,于是DHCP服务器1给DHCP客户发送DHCP确认报文,封装该报文的IP数据报的源IP地址为DHCP服务器1的IP地址,目的IP地址仍为广播地址。

DHCP客户收到该确认报文后,就可以使用租用到的IP地址了。、

需要注意的是,在使用租用到的IP地址之前,主机还会使用ARP检测该IP地址是否已被网络中其他主机占用。

若被占用,若是,则发送DHCP谢绝报文,并重新发送DHCP发现报文;

若没有被占用,可以使用租约中的IP地址与网络中其他主机通信了。

当租用期过了一半时,DHCP客户会向DHCP服务器发送DHCP请求报文,来请求更新租用期。封装该报文的IP数据报的源IP地址为,租用的IP地址,

目的IP地址为DHCP服务器1的地址。

DHCP服务器若同意,则发回DHCP确认报文,这样DHCP客户就得到了新的租用期。

若不同意则发回DHCP否认报文,然后DHCP客户立即停止使用租用的IP地址 重新发送DHCP发现报文,来重新申请IP地址。

若为响应,则在租用期过了0.875时,DHCP客户必须重新发送DHCP请求报文,然后继续等待DHCP服务器可能做出的反应。

若无反应,当租用期到期后,DHCP客户必须立即停止使用之前足以的IP地址,并重新发送DHCP发现报文来重新申请IP地址。

DHCP客户可以随时提前终止DHCP服务器所提供的租用期,这时只需向DHCP服务器发送DHCP释放报文段即可。

DHCP中继代理

网络中有路由器,它不会转发DHCP请求报文,只会丢弃,解决办法是给该路由器配置DHCP服务器的IP地址,并使之成为DHCP中继代理。

当路由器收到广播的DHCP发现报文后,会将其单播转发给DHCP服务器。

当路由器收到广播的DHCP发现报文后,会将其单播转发给DHCP服务器。 

 

域名系统

早在1983年,因特网就开始采用层次结构的命名树作为主机的名字(即域名),并使用分布

式的域名系统DNS。

DNS使大多数域名都在本地解析,仅少量解析需要在因特网上通信,因此系统效率很高。

由于DNS是分布式系统,即使单个计算机出了故障,也不会妨碍整个系统的正常运行。

因特网的域名结构

因特网采用层次树状结构的域名结构。

域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。

域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。

域名服务器划分为以下四类:

 

递归查询

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

由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)。

不但在本地域名服务器中需要高速缓存,在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和IP地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询。同理,主机也需要保持高速缓存中内容的正确性。

 

 

DNS报文使用运输的UDP协议封装,端口号为53

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值