计算机网络系列学习(五)应用层

计算机网络系列学习(一)概述
计算机网络系列学习(二)数据链路层
计算机网络系列学习(三) 网络层
计算机网络系列学习(四)运输层
计算机网络系列学习(五)应用层

第五章:应用层

应用层协议:精确定义不同主机中的多个应用进程之间的通信规则

  • 应用进程交换的报文类型,如请求报文和响应报文。

  • 各种报文类型的语法,如报文中的各个字段及其详细描述。

  • 字段的语义,即包含在字段中的信息的含义。

  • 进程何时、如何发送报文,以及对报文进行响应的规则

一、域名系统DNS

1. 域名系统概述

用来把人们使用的机器名字(域名)转换为 IP 地址

在这里插入图片描述

域名采用层次树状结构的命名方法:www.myschool.edu

在这里插入图片描述

DNS 是一个联机分布式数据库系统,采用客户服务器方式。

域名到 IP 地址的解析是由若干个域名服务器程序共同完成

在这里插入图片描述

2. 互联网的域名结构

任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名 (domain name)

  1. 域:名字空间中一个可被管理的划分。可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域,等等

  2. 域名结构:层次结构。由标号 (label) 序列组成,各标号之间用点(.)隔开,各标号分别代表不同级别的域名

在这里插入图片描述

  1. 全球顶级域名TLD

    在这里插入图片描述

    在国家顶级域名下注册的二级域名均由该国家自行确定。

    我国把二级域名划分为“类别域名”和“行政区域名”两大类

  2. 互联网的域名空间结构

    在这里插入图片描述

3. 域名服务器

DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位

  • 实现域名系统使用分布在各地的域名服务器(DNS 服务器)。
  • 一个服务器所负责管辖的(或有权限的)范围叫做区 (zone)。
  • 各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。
  • 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射、
  1. 域名服务器类型

    根域名服务器;顶级域名服务器;权限域名服务器;本地域名服务器

  2. 根域名服务器

    • 最高层次,最为重要
    • 所有根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址
    • 不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器
    • 若所有的根域名服务器都瘫痪了,整个互联网中的 DNS 系统就无法工作了

    根域名服务器共有 13 套装置,构成 13 组根域名服务器。根域名服务器总共只有 13 个不同 IP 地址的域名,但并非仅由13台机器所组成

    根域名服务器分布在全世界。为了提供更可靠的服务,在每一个地点的根域名服务器往往由多台机器组成

    根域名服务器采用任播 (anycast) 技术,当DNS 客户向某个根域名服务器发出查询报文时,路由器能找到离这个 DNS 客户最近的一个根域名服务器

  3. 顶级域名服务器

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

    • 负责一个区(zone)的域名服务器。
    • 当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器
  5. 本地域名服务器

    • 当一个主机发出 DNS 查询请求时,该查询请求报文就发送给本地域名服务器。
    • 每一个互联网服务提供者 ISP 或一个大学,都可以拥有一个本地域名服务器。
    • 当所要查询的主机也属于同一个本地 ISP 时,该本地域名服务器立即就能将所查询的主机名转换为它的 IP 地址,而不需要再去询问其他的域名服务器。
    • 本地域名服务器有时也称为默认域名服务器
  6. 提高域名服务器的可靠性

    • DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。
    • 当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。
    • 主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行,保证了数据的一致性
  7. 域名的解析过程

    在这里插入图片描述

    • 递归查询

      在这里插入图片描述

    • 迭代查询

      在这里插入图片描述

  8. 高速缓存

    • 也称为高速缓存域名服务器。存放最近用过的名字以及从何处获得名字映射信息的记录。
    • 作用:大大减轻根域名服务器的负荷,使 DNS 查询请求和回答报文的数量大为减少。
    • 域名服务器应为每项内容设置计时器,并处理超过合理时间的项。当权限域名服务器回答一个查询请求时,在响应中指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性

二、文件传送协议

1. FTP概述

文件传送协议 FTP :提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件

文件共享协议

  • 文件传送协议:FTP, TFTP

    复制整个文件。对文件副本进行访问

    若要存取一个文件,就必须先获得一个本地文件副本。若要修改文件,只能对文件副本进行修改,然后再将修改后的文件副本传回到原节点

  • 联机访问 (on-line access) 协议:NFS

    允许同时对一个文件进行存取。

    远地共享文件访问,如同对本地文件的访问一样。透明存取,不需要对该应用程序作明显的改动。

    由操作系统负责

2. FTP的基本工作原理

  1. 特点

    只提供文件传送的一些基本服务,它使用 TCP 可靠的运输服务。

    主要功能:减少或消除在不同操作系统下处理文件的不兼容性。

    使用客户服务器方式

    • 一个 FTP 服务器进程可同时为多个客户进程提供服务。

    • FTP 的服务器进程由两大部分组成:

      一个主进程,负责接受新的请求;

      若干个从属进程,负责处理单个请求

  2. FTP主进程的工作步骤

    • 打开熟知端口(端口号为 21),使客户进程能够连接上。
    • 等待客户进程发出连接请求。启动从属进程来处理客户进程发来的请求。
    • 从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
    • 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行
  3. FTP客户和服务器之间的两个从属进程和两个TCP连接

    在这里插入图片描述

    服务端控制进程端口号:21

    服务端数据传送进程端口号:20

  4. NFS采用的思路

    • NFS 允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。

    • NFS 可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。

    • NFS 在网络上传送的只是少量的修改数据

3. 简单文件传送协议TFTP

使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施

只支持文件传输,不支持交互

没有庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别

  1. 特点
    • 可对文件进行读或写
    • 每次传送的数据报文中有 512 字节的数据,但最后一次可不足 512 字节
  2. TFTP的传送确认
    • 发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号
    • 发完数据后在规定时间内收不到确认就要重发数据 PDU
    • 发送确认 PDU 的一方若在规定时间内未收到下一个文件块,需重发确认 PDU,保证文件的传送不致因某一个数据报的丢失而告失败
  3. TFTP的工作过程
    • 开始工作时,TFTP 客户进程发送一个读请求或写请求报文给 TFTP 服务器进程,其 UDP 熟知端口号码为 69。
    • TFTP 服务器进程选择一个新的端口和 TFTP 客户进程进行通信。
    • 若文件长度恰好为 512 字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据报文。
    • 若文件长度不是 512 字节的整数倍,则最后传送数据报文的数据字段一定不满 512 字节,作为文件结束的标志

三、远程终端协议TELNET

  • 允许用户在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)

  • 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕

  • 服务是透明的

  • 又称为终端仿真协议

  1. TELNET使用客户-服务器方式

    在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。

    服务器中的主进程等待新的请求,产生从属进程来处理每一个连接

  2. TELNET使用网络虚拟终端NVT格式

    TELNET 的选项协商 (Option Negotiation) 使客户和服务器可商定使用更多的终端功能,协商的双方是平等的

    在这里插入图片描述

    • 客户端把用户的击键和命令转换成 NVT 格式,并送交服务器。
    • 服务器端把收到的数据和命令,从 NVT 格式转换成远地系统所需的格式
    • 向客户返回数据时,服务器把远地系统的格式转换为 NVT 格式,本地客户再从 NVT 格式转换到本地系统所需的格式

    在这里插入图片描述

四、万维网WWW

1. 万维网概述

万维网 WWW (World Wide Web) 并非某种特殊的计算机网络,万维网是一个大规模的、联机式的信息储藏所

万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息‘

  1. 万维网是分布式超媒体系统

    是超文本 (hypertext) 系统的扩充

    • 超文本:由多个信息源链接成。是万维网的基础。

    • 超媒体与超文本的区别:文档内容不同。

      超文本文档仅包含文本信息。

      超媒体文档还包含其他信息,如图形、图像、声音、动画,甚至活动视频图像等

  2. 万维网的工作方式

    以客户服务器方式工作。

    • 客户程序:浏览器。
    • 服务器程序:在万维网文档所驻留的主机上运行。这个计算机也称为万维网服务器。
    • 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
    • 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)
  3. 万维网解决的问题

    • 标志分布在整个互联网上的万维网文档

      使用统一资源定位符 URL (Uniform Resource Locator) 。使每一个文档在整个互联网的范围内具有唯一的标识符 URL

    • 用什么协议来实现万维网上的各种链接

      使用超文本传送协议 HTTP (HyperText Transfer Protocol)。HTTP 是一个应用层协议,使用 TCP 连接进行可靠的传送

    • 怎样使不同作者创作的不同风格的万维网文档都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接

      使用超文本标记语言 HTML

    • 使用户能够很方便地找到所需的信息?

      使用各种的搜索工具

2. 统一资源定位符URL

在互联网上的资源(任何形式)的地址

  1. URL格式

    在这里插入图片描述

    • 主机:存放资源的主机在互联网中的域名,也可以是用点分十进制的 IP 地址
    • 端口:省略时使用默认端口号
    • 路径:资源所在目录位置。区分大小写。省略时使用所定义的默认路径。后面可能还有一些选项
  2. 使用HTTP的URL

    在这里插入图片描述

3. 超文本传送协议HTTP

HTTP 是面向事务的 (transaction-oriented) 应用层协议

使用 TCP 连接进行可靠的传送

  1. HTTP的操作系统

    在这里插入图片描述

  2. HTTP的主要特点

    • HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输。
    • HTTP 协议本身也是无连接的。
    • HTTP 是无状态的 (stateless),简化了服务器的设计,使服务器更容易支持大量并发的 HTTP 请求
  3. 请求一个万维网文档所需的时间

    在这里插入图片描述

    TCP建立连接的三报文握手的第三个报文段中的数据,就是对客户对万维网文档的请求报文

  4. HTTP协议版本

    • HTTP/1.0的主要缺点

      每请求一个文档就要有两倍 RTT 的开销。

      客户和服务器每一次建立新的 TCP 连接都要分配缓存和变量。

      这种非持续连接使服务器的负担很重

      在这里插入图片描述

    • HTTP/1.1使用持续连接

      连续连接:服务器在发送响应后仍然在一段时间内保持这条连接(不释放),使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。

      只要文档都在同一个服务器上,就可以继续使用该 TCP 连接

      两种工作方式:非流水线方式;流水线方式

      流水线方式:客户在收到前一个响应之后才能发出下一个请求

      流水线方式:客户在收到响应报文之前就能够接着发送新的请求报文,连续的多个请求报文到达服务器后,服务器就可连续发回响应报文

    • HTTP/2

      服务器可以并行发回响应(使用同一个 TCP 连接)。

      允许客户复用 TCP 连接进行多个请求。

      把所有的报文都划分为许多较小的二进制编码的帧,并采用了新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率。

      向后兼容

  5. 代理服务器

    代理服务器 (proxy server) 又称为万维网高速缓存 (Web cache),它代表浏览器发出 HTTP 请求。使用高速缓存可减少访问互联网服务器的时延

    • 若高速缓存已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器

    • 若未存放,高速缓存就代表浏览器与互联网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。

      源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的高速缓存。

      高速缓存收到对象后,先复制到本地存储器中(留待以后用),然后将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器

  6. HTTP的报文结构

    两类报文:

    • 请求报文:从客户向服务器的请求。

    • 响应报文:从服务器到客户的回答

    三个组成部分

    • 开始行:用于区分是请求报文还是响应报文。
    • 首部行:说明浏览器、服务器或报文主体的一些信息。可以有多行,也可以不使用。
    • 实体主体:请求报文中一般不用,响应报文中也可能没有该字段

    请求报文

    在这里插入图片描述

    • 方法:请求报文的类型是由它所采用的方法决定

      在这里插入图片描述

    • 版本:HTTP的版本

    响应报文

    在这里插入图片描述

    • 状态码:服务器操作完成的状态。

      在这里插入图片描述

    • 短语:解释状态码

  7. 在服务器上存放用户的信息

    万维网使用 Cookie 跟踪在 HTTP 服务器和客户之间传递的状态信息

4. 万维网的文档

静态万维网文档。内容不会改变。简单。

动态万维网文档。文档的内容由应用程序动态创建。

活动万维网文档。由浏览器端改变文档的内容

  1. XML

    可扩展标记语言 XML:传输数据,而不是显示数据

    可用来标记数据、定义数据类型;

    允许用户对自己的标记语言进行自定义,并且是无限制的;简单,与平台无关;

    将用户界面与结构化数据分隔开来

  2. 动态万维网文档

    文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建

    万维网服务器功能的扩充

    • 增加一个应用程序:处理浏览器发来的数据,并创建动态文档
    • 增加一个机制:使万维网服务器把浏览器发来的数据传送给这个应用程序,然后万维网服务器能够解释这个应用程序的输出,并向浏览器返回 HTML 文档
  3. CGI

    通用网关接口 CGI (Common Gateway Interface) :定义动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用的一种标准

    正式名字:CGI 脚本 (script)

    脚本:指的是一个程序,它被另一个程序(解释程序)而不是计算机的处理机来解释或执行。脚本不一定是一个独立的程序,可以是一个动态装入的库,甚至是服务器的一个子程序

  4. 活动万维网文档

    活动文档 (active document) 技术:把屏幕连续更新的工作转移给浏览器端

    • 每当浏览器请求一个活动文档时,服务器就返回一段程序副本在浏览器端运行。

    • 活动文档程序可与用户直接交互,并可连续地改变屏幕的显示。

    • 活动文档技术不需要服务器的连续更新传送

5. 万维网的信息检索系统

  1. 全文检索搜索引擎和分类目录搜索引擎

    在这里插入图片描述

    全文搜索如:谷歌;分类搜索如:新浪

  2. 垂直搜索引擎

    针对某一特定领域、特定人群或某一特定需求提供搜索服务。

    也是提供关键字来进行搜索,但被放到一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等

    目前热门的垂直搜索行业有:购物、旅游、汽车、求职、房产、交友等

  3. 元搜索引擎

    把用户提交的检索请求发送到多个独立的搜索引擎上去搜索,并把检索结果集中统一处理,以统一的格式提供给用户,因此是搜索引擎之上的搜索引擎

五、电子邮件

1. 电子邮件概述

  1. 重要标准

    简单邮件发送协议:SMTP

    互联网文本报文格式

    通用互联网邮件扩充 MIME

    邮件读取协议:POP3 和 IMAP

  2. 电子邮件系统的组成:三个主要构件

    在这里插入图片描述

    • 用户代理UA

      用户与电子邮件系统的接口。又被称为电子邮件客户端软件。

      基本功能:撰写、显示、处理、通信

    • 邮件服务器

      又被称为邮件传输代理。

      功能:发送和接收邮件,同时还要向发信人报告邮件传送的情况。

      按照客户服务器方式工作

    • 邮件发送的读取协议

      邮件发送和读取使用不同的协议。

      简单邮件发送协议 SMTP:用于在用户代理向邮件服务器 或 邮件服务器之间发送邮件。

      邮局协议 POP3:用于用户代理从邮件服务器读取邮件

  3. 电子邮件的组成

    电子邮件由信封 (envelope) 和内容 (content) 两部分组成。

    电子邮件的传输程序根据邮件信封上的信息来传送邮件。

    用户在从自己的邮箱中读取邮件时才能见到邮件的内容

  4. 电子邮件地址的格式

    在这里插入图片描述

    用户名在该域名的范围内是唯一的

2. 简单邮件传送协议SMTP

  1. SMTP特点

    • SMTP是一个基于文本的 (即 ASCII 码)的协议,规定了在两个相互通信的 SMTP 进程之间交换信息的方法。

    • SMTP 基于 TCP 实现客户与服务器的通信

      在这里插入图片描述

    • SMTP 客户与服务器之间采用命令-响应方式进行交互

      在这里插入图片描述

  2. SMTP通信的三个阶段

    • 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP 不使用中间的邮件服务器

      在这里插入图片描述

      建立TCP连接

      SMTP 服务器发出服务就绪

      SMTP 客户向服务器发送问候 (HELO命令),附上发送方的主机名

      SMTP 服务器若有能力接收邮件,则回答:“250 OK”,表示已准备好接收

    • 邮件传送

      在这里插入图片描述

    • 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接

      在这里插入图片描述

3. 电子邮件的信息格式

一个电子邮件分为信封和内容两大部分。

RFC 5322 只规定了邮件内容中的首部 (header) 格式。

邮件的主体 (body) 部分则让用户自由撰写

在这里插入图片描述

4. 邮件读取协议POP3和IMAP

两个常用的邮件读取协议:

POP3:邮局协议 (Post Office Protocol) 第3个版本

IMAP:网际报文存取协议 (Internet Message Access Protocol)

  1. POP3协议

    • POP3 使用客户服务器方式。

    • POP3 基于 TCP 实现客户与服务器的通信

    • POP3 支持用户鉴别。

    • POP3 服务器删除被用户读取了的邮件

  2. IMAP协议

    • IMAP 使用 TCP 客户服务器方式。
    • IMAP 是一个联机协议
    • 连接后只下载邮件首部(部分下载)。
    • 用户直接在 IMAP 服务器上创建和管理文件夹。
    • 用户可以搜索邮件内容。
    • 用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
    • 允许收信人只读取邮件中的某一个部分。
    • 缺点:要想查阅邮件,必须先联网。
  3. IMAP与POP3比较

    在这里插入图片描述

    在这里插入图片描述

5. 基于万维网的电子邮件

  • 发送、接收电子邮件时使用 HTTP 协议

  • 两个邮件服务器之间传送邮件时使用 SMTP

  • 使用 HTTP POST 方法提交要发送的邮件;使用 HTTP GET 方法读取邮件

在这里插入图片描述

6. 通用互联网邮件扩充MIME

  1. MIME和SMTP的关系

在这里插入图片描述

  1. MIME主要包括三个部分

    • 5 个新的邮件首部字段。

      在这里插入图片描述

    • 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。

    • 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

  2. 内容类型

    MIME 允许发件人和收件人自己定义专用的内容类型。但为避免可能出现名字冲突,标准要求为专用内容类型选择的名字要以字符串 X-开始

    例如

    在这里插入图片描述

六、动态主机配置协议DHCP

  • 在协议软件中,给协议参数赋值的动作叫做协议配置

  • 一个协议软件在使用之前必须是已正确配置的。

  • 具体的配置信息取决于协议栈。

  • 连接到互联网的计算机的协议软件需要正确配置的参数包括

    IP 地址;子网掩码;默认路由器的 IP 地址;域名服务器的 IP 地址

  1. 动态主机配置协议DHCP

    • 提供了即插即用连网 (plug-and-play networking) 的机制,允许一台计算机加入网络和获取 IP 地址,而不用手工配置

    • DHCP 给运行服务器软件、且位置固定的计算机指派一个永久地址,给运行客户端软件的计算机分配一个临时地址

  2. DHCP使用用户服务器方式

    • 需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文(DHCPDISCOVER),这时该主机就成为 DHCP 客户。
    • 本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。
    • DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池 (address pool) 中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文(DHCPOFFER)
  3. DHCP工作方式

    • DHCP 使用客户服务器方式,采用请求/应答方式工作。

    • DHCP 基于 UDP 工作,DHCP 服务器运行在 67 号端口, DHCP客户运行在 68 号端口

    在这里插入图片描述

    DHCP 服务器被动打开 UDP 端口 67,等待客户端发来的报文

    DHCP 客户从 UDP 端口 68 发送 DHCP 发现报文 DHCPDISCOVER

    凡收到 DHCP 发现报文的 DHCP 服务器都发出 DHCP 提供报文 DHCPOFFER,因此 DHCP 客户可能收到多个 DHCP 提供报文

    DHCP 客户从几个 DHCP 服务器中选择其中的一个,并向所选择的 DHCP 服务器发送 DHCP 请求报文 DHCPREQUEST

    被选择的 DHCP 服务器发送确认报文 DHCPACK,DHCP 客户可开始使用得到的临时 IP 地址了,进入已绑定状态

  4. DHCP中继代理

    若没有 DHCP 服务器,如何自动获得地址?

    每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息

    DHCP 中继代理收到主机广播发送的发现报文后,以单播方式向 DHCP 服务器转发此报文,并等待其回答。

    收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将其发回给主机

  5. 租用期

    DHCP 服务器分配给 DHCP 客户的 IP 地址的临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 协议称这段时间为租用期。

    租用期的数值应由 DHCP 服务器自己决定。DHCP 客户也可在自己发送的报文中(例如,发现报文)提出对租用期的要求

    • 一般租用期T设置两个计时器T1,T2,前者为当租用期过了一半,DHCP 发送请求报文 DHCPREQUEST,要求更新租用期。

    • 如果服务器同意,则发回确认报文 DHCPACK。DHCP 客户得到了新的租用期,重新设置计时器

    • 若不同意,则发回否认报 DHCPNACK。这时 DHCP 客户必须立即停止使用原来的 IP 地址,而必须重新申请 IP 地址

    • 若 DHCP 服务器不响应请求报文 DHCPREQUEST,则在租用期过了 87.5% 时 (T2 时间到),DHCP 客户必须重新发送请求报文 DHCPREQUEST

    DHCP 客户可随时提前终止服务器所提供的租用期

七、简单网络管理协议SNMP

1. 网络管理的基本概念

  1. 五大功能

    • 故障管理:故障检测、隔离和纠正。
    • 配置管理:初始化网络、并配置网络。
    • 计费管理:记录网络资源的使用。
    • 性能管理:估价系统资源的运行状况及通信效率等。
    • 网络安全管理:对授权机制、访问控制、加密和加密关键字的管理
  2. 网络管理的一般模型

    在这里插入图片描述

  3. 管理模型的主要构件

    • 管理站也常称为网络运行中心 NOC (Network Operations Center),是网络管理系统的核心
    • 管理程序是管理站中的关键构件,在运行时就成为管理进程
    • 管理站(硬件)或管理程序(软件)都可称为管理者(manager)。Manager 不是指人,而是指机器或软件
    • 网络管理员 (administrator) 指的是负责网络管理的人员
    • 大型网络往往实行多级管理,因而有多个管理者,而一个管理者一般只管理本地网络的设备
  4. 被管对象

    • 网络的每一个被管设备(包括设备中的软件)中可能有多个被管对象。
    • 被管设备有时可称为网络元素或网元。
    • 在被管设备中也会有一些不能被管的对象
  5. 代理

    • 在每一个被管设备中都要运行一个程序,以便和管理站中的管理程序进行通信。
    • 这些运行着的程序叫做网络管理代理程序,或简称为代理。
    • 代理程序在管理程序的命令和控制下在被管设备上采取本地的行动
  6. 网络管理协议

    • 网络管理协议简称为网管协议。

    • 网络管理协议是管理程序和代理程序之间进行通信的规则。

    • 网络管理员利用网络管理协议,通过管理站对网络中的被管设备进行管理

  7. 简单网络管理协议SNMP

    • SNMP (Simple Network Management Protocol) 中的管理程序和代理程序按客户服务器方式工作。
    • 管理程序运行 SNMP 客户程序,向某个代理程序发出请求 (或命令)。
    • 代理程序运行 SNMP 服务器程序,返回响应 (或执行某个动作)。
    • 在网管系统中,往往是一个(或少数几个)客户程序与很多的服务器程序进行交互

    基本功能:

    • 尽可能简单

    • 监视网络;性能检测;分析网络;差错配置;网络设备等

  8. SNMP的管理站和委托代理

    • 整个系统必须有一个管理站。
    • 若网络元素使用的不是 SNMP 而是另一种网络管理协议,SNMP 协议就无法控制该网络元素。这时可使用委托代理 (proxy agent)。
    • 委托代理能提供协议转换和过滤操作等功能,对被管对象进行管理
  9. SNMP网络管理组成

    • SNMP 本身

      SNMP 定义了管理站和代理之间所交换的分组格式。

      所交换的分组包含各代理中的对象(变量)名及其状态(值)

      SNMP 负责读取和改变这些数值

    • 管理信息结构 SMI (Structure of Management Information)

      SMI 定义了命名对象和定义对象类型(包括范围和长度)的通用规则,以及把对象和对象的值进行编码的规则,以确保网络管理数据的语法和语义的无二义性。

      SMI 并不定义一个实体应管理的对象数目,也不定义被管对象名以及对象名及其值之间的关联

    • 管理信息库 MIB (Management Information Base)

      MIB 在被管理的实体中创建了命名对象,并规定了其类型。

      管理程序使用 MIB 中的信息,对网络进行管理

2. 管理信息结构SMI

  1. 功能

    • 被管对象应怎样命名;
    • 用来存储被管对象的数据类型有哪些种;
    • 在网络上传送的管理数据应如何编码
  2. 所有被管对象必须在命名树上

    在这里插入图片描述

  3. SMI 使用 ASN.1

    • SMI 标准指明:所有的 MIB 变量必须使用抽象语法记法 1 ,(ASN.1) 来定义

    • ASN.1 的记法很严格,使得数据的含义不存在任何可能的二义性

  4. SMI 数据类型

    在这里插入图片描述

    SMI 把数据类型分为两大类:简单类型和结构化类型

  5. 基本编码规则BER

    BER 指明了每种数据类型中每个数据的值的表示

  6. 使用TLV方法进行编码

    在这里插入图片描述

3. 管理信息库MIB

  • 被管对象必须维持可供管理程序读写的若干控制和状态信息。这些信息总称为管理信息库 MIB (Management Information Base) 。
  • 管理程序使用 MIB 中这些信息的值对网络进行管理(如读取或重新设置这些值)。
  • 只有在 MIB 中的对象才是 SNMP 所能够管理的

4. SNMP的协议数据单元和报文

  1. SNMP 的操作只有两种基本的管理功能:

    • “读”操作,用 get 报文来检测各被管对象的状况;
    • “写”操作,用 set 报文来改变各被管对象的状况。
  2. SNMP 的这些功能通过探询操作来实现

    SNMP 管理进程定时向被管理设备周期性地发送探询信息

  3. 陷阱

    SNMP 允许不经过询问就能发送某些信息。这种信息称为陷阱,表示它能够捕捉“事件”

    • 当被管对象的代理检测到有事件发生时,就检查其门限值。代理只向管理进程报告达到某些门限值的事件(即过滤)
    • 过滤的好处:仅在严重事件发生时才发送陷阱;陷阱信息很简单且所需字节数很少
  4. SNMP 使用无连接的 UDP

    • 运行代理程序的服务器端用 UDP 熟知端口 161 接收 get 或 set 报文,发送响应报文。与熟知端口通信的客户端使用临时端口
    • 运行管理程序的客户端则使用 UDP 熟知端口 162 来接收来自各代理的 trap 报文

八、应用进程跨越网络的通信

1. 系统调用和应用编程接口

大多数操作系统使用系统调用 (system call ) 的机制在应用程序和操作系统之间传递控制权

在这里插入图片描述

  1. 应用编程接口API

    • 系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口。
    • 使用系统调用之前要编写一些程序,特别是需要设置系统调用中的许多参数,因此这种系统调用接口又称为应用编程接口 API
  2. 应用进程通过套接字接入到网络

    在这里插入图片描述

  3. 套接字的作用

    • 当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建套接字,以便把网络通信所需要的系统资源分配给该应用进程。
    • 操作系统为这些资源的总和用一个套接字描述符的号码来表示。
    • 应用进程所进行的网络操作都必须使用这个套接字描述符。
    • 通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该套接字描述符相关的所有资源

2. 几种常用的系统调用

  • 当应用进程需要使用网络进行通信时,就发出系统调用。
  • 使用 TCP/IP 应用编程接口 API,就可以编写基于互联网的网络应用程序了。
  • 调用 API 时,用户可以使用 TCP 服务,也可以使用 UDP 等其他服务

TCP连接建立阶段

在这里插入图片描述

  • 服务器端调用 bind,把熟知端口号和本地 IP 地址填写到已创建的套接字中
  • 服务器端调用 listen(收听),把套接字设置为被动方式,以便随时接受客户的服务请求。UDP 服务器不使用 listen 系统调用
  • 服务器端调用 accept(接受),以便把远地客户进程发来的连接请求提取出来。UDP 服务器不使用 accept 系统调用
  • 客户进程调用 connect,以便和远地服务器建立连接(这就是主动打开)
  • 客户或服务器通信结束,调用 close 释放连接和撤销套接字
  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值