【计网第六章】应用层

712 阅读33分钟

数据传输的终点是主机进程,网络通信的目的是为了给应用提供服务;本章讨论的是各种应用进程是通过什么样的应用层协议来使用网络提供的这些通信服务。

重要内容

  • 域名系统DNS
  • 万维网和HTTP协议,万维网两种不同的搜索引擎
  • 电子邮件的传送过程
  • 基于万维网的电子邮件系统的特点
  • 动态主机配置协议DCHP
  • 网络管理的三个组成部分
  • P2P文件系统

(6.1) 域名系统 DNS

(6.1.1) 域名系统概述

1. 作用

域名系统是为了使对用户来说32位的IP地址更加容易记忆和使用而选择的一种域名映射IP地址的方式;

2. 谁使用域名?

应用层软件一般直接使用的是域名而非IP地址,在网络层进行数据传输时才将域名转化为路由中使用的IP地址;

3. 什么是域名服务器程序

域名服务器程序简称域名服务器,DNS(Domain Name System)被设计成一个联机分布式的数据库系统,并采用客户服务器方式;

DNS中大部分域名都在本地进行解析,只有少数域名需要在互联网上进行解析;

(6.1.2) 因特网的域名结构

为了应对用户互联网用户数量急剧增加导致域名数量增多的问题,因特网把原来的非等级结构改用为层次树状结构的命名方法。 域名由标号组成,以.分割,每一个标号不超过63个字符;标号不区分大小写;完整的域名不超过255个字符;

级别最低的域名在最左边,级别最高的顶级域名在最右边。

  • n级域名.三级域名.二级域名.顶级域名

1. 域名的等级结构

顶级域名:

  • 国家顶级域名,如cn、us
  • 通用顶级域名,如com、net、org、edu
  • 基础结构域名,只有arpa,用于反向域名解析,又称为反向域名

二级域名(中国划分为两大类):

  • 类别域名(7个),ac、com、edu、gov
  • 行政区域名(34个),bj、js

一旦一个单位拥有了域名,就可以自由划分其子域名。比如下图的三级域名tsinghua就划分了子域名mail,www等

(6.1.3) 域名服务器

DNS采用划分区的办法来解决树状结构的域名服务器导致运行DNS运行效率低的问题。

1. 区

区:权限服务器负责管辖(或有权限)的范围。区<=域

2. DNS 域名服务器树状结构图

域名服务器的层次划分

  • 根域名服务器
    • 所有根域名服务器都知道所有的顶级域名服务器的域名和IP地址。
    • 全球有13个不同 IP 地址的根域名服务器,它们的名字用从a~m表示。
    • 本地域名服务器对域名无法进行解析,就会求助根域名服务器。
  • 顶级域名服务器
    • 顶级域名服务器负责管理该顶级域名服务器注册的所有二级域名。
  • 权限域名服务器
    • 负责一个区的域名服务器。
  • 本地域名服务器
    • 主机发出的DNS查询请求报文会发送到本地域名服务器。

3. 域名解析的两种方式

  • 递归查询(recursive query):一般为主机向本地服务器的查询
    • 主动方查询方是本次查询方的目标服务器
  • 迭代查询(iterative query):一般为本地域名服务器向根域名服务器的查询(本地服务器也可递归查询),查询结果为IP地址/报错。
    • 主动方一直是本地服务器。

4. 域名缓存

为了提高查询效率,减少查询时的网络开销,在每级域名服务器中都采用的高速缓存来存储经常或最近被查询的到的域名对应的IP地址

主机自身会用缓存存储最近使用的域名。

(6.2) 文件传输协议

(6.2.1) FTP 概述

1. FTP 的地位

FTP(File Transfer Protocol):是互联网上使用最广泛的文件传送协议;提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。

2. 用FTP访问文件时的特点

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

(6.2.2) FTP 的基本工作原理

1. FTP的特点

只提供文件传送的基本服务,使用TCP可靠性运输服务,FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性

2. ftp服务器进程的组成

  • 主进程;负责接收新的请求。
  • 若干从属进程(比如下面的控制进程、数据传送进程);负责处理单个请求。

3. FTP服务器主进程的工作流程

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

3. FTP 的缺点

当计算机A使用FTP协议修改计算机B中一份很巨大的文件时,B必须把文件传输到A,A修改后再把文件传输到B。

因此,允许应用程序打开一个远地文件(即大文件中一个很小的部分),并能在该文件的某一个特定文件的某一个特定的位置上开始读写文件,最后把要添加的数据和在文件后面写数据的请求一起发送到远地计算机的网络文件系统NFS(Network File System)产生。

4. C/S的FTP真实通信流程

进程归属

服务器的从属进程

  • 控制进程;负责发送client的传送请求到服务器,并在本次会话中一直开启。
  • 数据传输进程;负责传送数据。

过程

  • C/S之间建立两个并行的在会话中一直打开的TCP连接(控制连接和数据连接)
  • 客户端发送的传送请求通过控制连接,发送给服务器端的控制进程
  • 控制进程收到传送请求后创建数据传送进程数据连接
  • 传送完毕后关闭数据连接

两个不同的端口和使用两个端口的好处

  • 客户进程向服务器发出连接建立请求时,要寻找服务器进程的熟知端口21,还要告诉服务器进程自己的端口,用于建立数据传送连接。
  • 服务器进程用20端口与客户端提供的进程端口建立数据传送端口。

好处:

  • 使协议更加简单和更容易实现。
  • 在传输文件时还可以利用控制连接(例如,客户发送请求终止传输)。

5.NFS的策略

在上面的 3. FTP 的缺点 中已经介绍。

(6.2.3) 简单文件传输协议TFTP

1. 概述

  • TFTP 是一个很小且易于实现的文件传送协议。
  • TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。
  • TFTP 支持文件传输而不支持交互。
  • TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。

2. 主要特点

(1) 每次传送的数据 PDU 中有 512 字节的数据,但最后一次可不足 512 字节。
(2) 数据 PDU 也称为文件块(block),每个块按序编号,从 1 开始。
(3) 支持 ASCII 码或二进制传送。
(4) 可对文件进行读或写。
(5) 使用很简单的首部。

3. 类似停止等待协议的TFTP

  • 发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。
  • 发完数据后在规定时间内收不到确认就要重发数据 PDU。
  • 发送确认 PDU 的一方若在规定时间内收不到下一个文件块,也要重发确认 PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败。

3. TFTP客户端服务器通信流程

  • TFTP客户进程发送一个读/写请求报文给熟知端口为69的TFTP服务器进程。
  • 服务器进程选择一个新的端口和客户端进行通信。
  • 若传送的文件恰好是512字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只函首部无数据的数据报文。
  • 若传送的文件恰不是512字节的整数倍,则最后传送报文中的字段一定不满512字节,则可作为文件结束的标志。

(6.3) 远程终端协议 TELNET

(6.3.1) TELNET 概述

  • telnet是一个简单的远程终端协议,也是因特网的正式标准。
  • 用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。
  • TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。
  • 和 FTP 的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。

(6.3.2) 网络虚拟终端 NVT 格式

为适应不同操作系统控制字符的键位差异,telnet定义了数据和命令在客户端和服务器之间传输的NVT(network virtual terminal)。

工作流程

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

(6.4) 万维网 WWW

(6.4.2) 万维网概述

  • 万维网 WWW (World Wide Web)并非某种特殊的计算机网络。
  • 万维网是一个大规模的、联机式的信息储藏所。
  • 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。 这种访问方式称为“链接”

1. 超媒体与超文本

万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。

  • 一个使万维网客户程序与万维网服务器程序之间的交互遵守严格的协议。- 一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。
  • 超媒体与超文本的区别:文档内容不同。
    • 超文本文档仅包含文本信息
    • 超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。

2. 万维网的工作方式

客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。

3. 万维网需要解决的问题

可归结为4个主要问题,它们分别为:如何标志文档?、如何实现链接?、如何显示文档、如何查找文档?

(1)怎样标志分布在整个因特网上的万维网文档?

  • 使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。 使每一个文档在整个因特网的范围内具有唯一的标识符 URL。

(2) 用何协议实现万维网上各种超链的链接?

  • 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
  • HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。

(3) 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?

  • 超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。

(4) 怎样使用户能够很方便地找到所需的信息?

  • 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。

(6.4.2) 统一资源定位符 URL

1. URL 的格式

统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。

  • <协议>://<主机>:<端口>/<路径>

2. 使用HTTP的URL

  • http://<主机>:<端口>/<路径>

(6.4.3) 超文本传输协议 HTTP

  • 一个使万维网客户程序与万维网服务器程序之间的交互遵守严格的协议。
  • 为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。
  • 从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

1. HTTP 的操作过程

  • 用户的鼠标点击指向URL为https://www.hoji.site/index的超链接后。
  • 浏览器分析指向页面的上述URL。
  • 浏览器向 DNS 请求解析 www.hoji.site 的IP地址。
  • 域名系统解析出该域名对应服务器的IP地址为47.163.2.11。
  • 浏览器与服务器建立端口为80的 TCP 连接。
  • 服务器47.163.2.11给出响应,把index对应的资源页面发送给浏览器。(资源可能是index.php,index.html等等)
  • 释放TCP连接。
  • 浏览器显示该主页index.html文件中的所有文本。

2. HTTP 的主要特点

  • HTTP 是面向事务的客户服务器协议。
  • HTTP 1.0 协议是无状态的(stateless)。同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次相同。
  • HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。但它不需在通信之前预先建立连接。

3. HTTP/1.0 的缺点与 HTTP/1.1

HTTP/1.0 的缺点

使用非持续连接的http/1.0协议时,每请求一个文档就需要两个RTT的时间和建立TCP连接的资源消耗。

HTTP/1.1

  • HTTP/1.1协议使用持续连接。
  • 万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。
  • 持续连接的范围是目标服务器上的所有资源。
  • 目前一些流行的浏览器(例如,IE 6.0)的默认设置就是使用 HTTP/1.1。

http/1.1 持续连接的两种工作方式

  • 非流水线方式:
    • 客户在收到前一个响应后才能发出下一个请求。这比非持续连接的2倍 RTT 的开销节省了建立 TCP 连接所需的一个 RTT 时间。
    • 但服务器在发送完一个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源。
  • 流水线方式:
    • 客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。
    • 使用流水线方式时,客户访问所有的对象只需花费一个 RTT 时间,使 TCP 连接中的空闲时间减少,提高了下载文档效率。

4. 代理服务器

  • 代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代表(代替)浏览器向目标服务器发出 HTTP 请求。
  • 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。
  • 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。

5. http 的报文结构

HTTP 有两类报文:

  • 请求报文:从客户向服务器发送请求报文。
  • 响应报文:从服务器到客户的回答。 由于 HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。

http报文组成:开始行、首部行、实体主体。

以请求报文为例

  • 请求行;用于区分请求报文与响应报文。
    • 方法:对所请求的对象进行的操作对应的一些命令,因此,请求报文的类型是由它所采用的方法决定的。常见的方法见下表。
    • 请求资源的URL:
    • http的版本:
  • 首部行;说明浏览器、服务器、报文主体的一些信息。首部行的每一行结束都会有回车/换行作为结束。
  • 主体:请求报文中可能会没有该字段。
方法(操作) 意义
OPTION 请求一些选项的信息
GET 请求读取由 URL所标志的信息
HEAD 请求读取由 URL所标志的信息的首部
POST 给服务器添加信息(例如,注释)
PUT 在指明的 URL下存储一个文档
DELETE 删除指明的 URL所标志的资源
TRACE 用来进行环回测试的请求报文
CONNECT 用于代理服务器

以响应报文为例

  • 响应报文的开始行是状态行。包括了HTTP 的版本,状态码,以及解释状态码的简单短语
    • 状态码:代表响应结果的数字。常见的状态码如下。
      • 1xx 表示通知信息的,如请求收到了或正在进行处理。
      • 2xx 表示成功,如接受或知道了。
      • 3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
      • 4xx 表示客户的差错,如请求中有错误的语法或不能完成。
      • 5xx 表示服务器的差错,如服务器失效无法完成请求。

请求报文和响应报文区别在于开始行分别为请求行和状态行。如下图

6. Cookie

  • 万维网站点使用Cookie来跟踪用户。
  • Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。
  • 使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。

(6.4.4) 万维网的文档

1. 超文本标记语言 HTML

  • 超文本标记语言HTML中的Markup的意思就是“设置标记”。
  • HTML 定义了许多用于排版的命令(即标签)。
  • HTML 把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML 文档。HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。

HTML 文档

  • 仅当 HTML 文档是以.html.htm为后缀时,浏览器才对此 文档的各种标签进行解释。
  • 如 HTML 文档改换以.txt为其后缀,则 HTML 解释程序就不对标签进行解释,而浏览器只能看见原来的文本文件。
  • 当浏览器从服务器读取 HTML 文档后,就按照 HTML 文档中的各种标签,根据浏览器所使用的显示器的尺寸和分辨率大小,重新进行排版并恢复出所读取的页面。

两种不同的链接

  • 远程链接:超链的终点是其他网点上的页面。
  • 本地链接:超链指向本计算机中的某个文件。

2. 动态万维网文档

  • 静态文档是指该文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。
  • 动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。
  • 动态文档和静态文档之间的主要差别体现在服务器一端。这主要是文档内容的生成方法不同。而从浏览器的角度看,这两种文档并没有区别。

万维网服务器功能的扩充

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

3. 活动万维网文档

有2种技术实现浏览器屏幕显示的连续更新

  • 服务器推送:服务器为每一个客户端维护一个不释放的tcp连接。
  • 活动文档:当浏览器请求万维网文档时,服务器将返回给浏览器一段活动文档的程序副本,使程序副本在客户端运行

(6.4.5) 万维网的信息检索系统

在万维网中用来进行搜索的程序叫做搜索引擎。搜索引擎大体上可分为全文检索和分类目录检索两大类。

1. 全文检索和分类目录检索

全文检索

  • 全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到因特网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。
  • 用户在查询时只要输入关键词,就从已经建立的索引数据库上进行查询(并不是实时地在因特网上检索到的信息)。
  • 可直接检索到相关内容的网页。

分类目录检索

  • 分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。
  • 分类目录搜索也叫做分类网站搜索。
  • 一般检索到的是先关信息的网站。

著名的搜索引擎

最著名的全文检索搜索引擎:

  • Google(谷歌)(www.google.com)
  • 百度 (www.baidu.com)

最著名的分类目录搜索引擎:

  • 雅虎 (www.yahoo.com)
  • 雅虎中国 (cn.yahoo.com)
  • 新浪 (www.sina.com)
  • 搜狐 (www.sohu.com)
  • 网易 (www.163.com)

垂直搜索引擎(vertical search engine)

  • 针对某一特定领域、特定人群或某一特定需求提供搜索服务。垂直搜索也是提供关键字来进行搜索的,但被放到了一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等。

元搜索引擎(meta search engine)

  • 把用户提交的请求发送到多个独立的搜索引擎上去搜索,并把搜索结果同意处理,以统一的格式提供给用户。
  • 主要精力放在提高搜索速度,智能化处理搜索结果,个性化搜索功能。
  • 查全率和查准率都很高。

2. Google 搜索技术的特点

略...

(6.4.6) 博客、微博和轻博

(6.5) 电子邮件

(6.5.1) 电子邮件概述

1. 电子邮件系统的组成

一个电子邮件系统由三部分组成:

  • 用户代理
  • 邮件服务器
  • 邮件发送协议和读取协议。
    • 其中发送协议常用 SMTP,读取协议常用 POP3 和 IMAP。

用户代理

  • 用户代理 UA 就是用户与电子邮件系统的接口,是电子邮件客户端软件。
  • 用户代理的功能:撰写、显示、处理和通信。

邮件服务器

  • 邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。
  • 邮件服务器按照客户服务器方式工作。邮件服务器需要使用发送和读取两个不同的协议

应当注意

  • 一个邮件服务器既可以作为客户,也可以作为服务器。
  • 例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A 就作为 SMTP 客户,而 B 是 SMTP 服务器。
  • 当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A 就作为SMTP 服务器,而 B 是SMTP 客户

发送和接收电子邮件的几个重要步骤

  • 发件人调用 PC 机中的用户代理撰写和编辑要发送的邮件。
  • 发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器
  • SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。
  • 发送方邮件服务器的 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去。
  • 运行在接收方邮件服务器中的SMTP服务器进 程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。
  • 收件人在打算收信时,就运行 PC 机中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件。
    • 请注意,POP3 服务器和 POP3 客户之间的通信是由 POP3 客户发起的。

电子邮件的组成与格式

  • 电子邮件由信封(envelope)和内容(content)两部分组成。
  • 收件人邮箱名@邮箱所在主机的域名
    • 1714931795@qq.com

(6.5.2) 简单邮件传送协议 SMTP

1. SMTP 的主要特点

  • SMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息。
  • 由于 SMTP 使用Client/Server方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。
  • SMTP 规定了 14 条命令和 21 种应答信息。每条命令用 4 个字母组成,而每一种应答信息一般只有一行信息,由一个 3 位数字的代码开始,后面附上(也可不附上)很简单的文字说明。

2. SMTP 通信的三个阶段

  1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。
  2. 邮件传送
  3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。

(6.5.3) 电子邮件的信息格式

电子邮件由信封和内容组成,首部是固定格式的。

1.邮件内容的首部

  • “To:”后面填入一个或多个收件人的电子邮件地址。
  • “Subject:”是邮件的主题。它反映了邮件的主要内容,便于用户查找邮件。
  • 抄送 “Cc:” 表示应给某某人发送一个邮件副本。
  • “From” 和 “Date” 表示发信人的电子邮件地址和发信日期。
  • “Reply-To” 是对方回信所用的地址。

(6.5.4) 邮件读取协议 POP3 和 IMAP

这两个协议都是用户代理从接收方服务器上读取邮件所使用的协议。

1. 邮件读取协议 POP3

  • 邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本 POP3。
  • POP 也使用客户服务器的工作方式。
  • 在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序。

2. IMAP 协议

网际报文存储协议 IMAP 全称Internet Message Access Protocol

  • IMAP 也是按客户服务器方式工作,现在较新的是版本 4,即 IMAP4。
  • 用户在自己的 PC 机上就可以操纵 ISP 的邮件服务器的邮箱,就像在本地操纵一样。
  • 因此 IMAP 是一个联机协议。当用户 PC 机上的 IMAP 客户程序打开 IMAP 服务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上。

IMAP 的特点

优点:

  • 用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件是IMAP最大的好处。
  • *IMAP 还允许收件人只读取邮件中的某一个部分。*例如,收到了一个带有视像附件(此文件可能很大)的邮件。为了节省时间,可以先下载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。

缺点:

  • IMAP 的缺点是如果用户没有将邮件复制到自己的 PC 机上,则邮件一直是存放在 IMAP 服务器上。 因此用户需要经常与 IMAP 服务器建立连接。

(6.5.5) 基于万维网的电子邮件

  • 电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。
  • 两个邮件服务器之间的传送使用 SMTP。
  • 邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。

(6.5.6) 通用因特网邮件扩充 MIME

1. MIME概述

SMTP 的缺点

  • SMTP 不能传送可执行文件或其他的二进制对象。
  • SMTP 限于传送 7 位的 ASCII。 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。
  • SMTP 服务器会拒绝超过一定长度的邮件。
  • 某些 SMTP 的实现并没有完全按照[RFC 821]的 SMTP 标准。

MIME 的特点

  • 在STMP的基础上增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。

MIME 的内容组成

  • 5 个新的邮件首部字段,它们可包含在[RFC 822]首部中。这些字段提供了有关邮件主体的信息。
    • MIME-Version:标志 MIME 的版本。现在的版本号是 1.0。若无此行,则为英文文本。
    • Content-Description:这是可读字符串,说明此邮件是什么。和邮件的主题差不多。
    • Content-Id:邮件的唯一标识符。
    • Content-Transfer-Encoding:在传送时邮件的主体是如何编码的。
    • Content-Type:说明邮件的性质。
  • 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
  • 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

2. 内容传送编码

  • 最简单的编码就是 7 位 ASCII 码,而每行不能超过 1000 个字符。MIME 对这种由ASCII 码构成的邮件主体不进行任何转换。
  • 另一种编码称为quoted-printable,这种编码方法适用于当所传送的数据中只有少量的非 ASCII 码。
  • 对于任意的二进制文件,可用base64编码

3. 内容类型

  • MIME着标准规定Content-Type说明必须含有两个标识符,即内容类型(type)子类型(subtype),中间用“/”分开。
  • MIME 标准定义了7个基本内容类型和15种子类型。

(6.6) 动态主机配置协议 DHCP

DHCP 提供了即插即用的连网方式,用户不再需要去手动配置 IP 地址等信息。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。

DHCP工作过程简述

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

DHCP 中继代理(relay agent)

它通常是一个配置了DHCP服务器的IP地址信息的代理路由器。

  • 当 DHCP 中继代理收到主机发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将此提供报文发回给主机。
  • DHCP 报文只是 UDP 用户数据报的数据部分,它要加上UDP首部(8个字节)、IP数据报首部(最小20字节,最大为60字节)、以太网 MAC 帧的首尾部(14+4字节)才能在链路上传输。

有关IP数据报首部详情可参考 ---> juejin.cn/post/684490…

租用期

  • 被分配IP的过期时间
  • DHCP 客户也可在自己发送的报文中(例如,发现报文)提出对租用期的要求。
  • 但租用期的长短由DHCP服务器决定。

DHCP 协议的详细工作过程

  • ① DHCP服务器被动打开udp端口67,等待客户端发来的报文。
  • ② DHCP 客户从 UDP 端口68发送 DHCP 发现报文(dhcpDiscover)。
  • ③ 凡是收到DHCP发现报文的dhcp服务器都发出dhcp提供报文,因此客户端可以收到多个dhcp提供报文(dhcpOffer)。
  • ④ dhcp客户选择其中的一个提供报文,并向所选择的dhcp服务器发送dhcp请求报文(dhcpRequest)。
  • ⑤ 被选择的dhcp服务器发送确认报文(dhcpPack)。客户便可使用该临时ip地址,客户端的ip地址与mac地址处于已绑定状态。
    • DHCP 客户现在要根据服务器提供的租用期 T 设置两个计时器 T1 和 T2,它们的超时时间分别是0.5T0.875T。当超时时间到就要请求更新租用期。
  • ⑥ 租用期过了一半(T1 时间到),DHCP 发送请求报文DHCPREQUEST要求更新租用期。
    • ⑦ DHCP 服务器若同意,则发回确认报文DHCPACK。DHCP客户得到了新的租用期,重新设置计时器。
    • ⑧ DHCP 服务器若不同意,则发回否认报文DHCPNACK。这时 DHCP 客户必须立即停止使用原来的 IP 地址,而必须重新申请 IP 地址(回到步骤2)。
    • 若DHCP服务器不响应步骤6的请求报文DHCPREQUEST,则在租用期过了87.5%(即T2时间)时,DHCP 客户必须重新发送请求报文 DHCPREQUEST(重复步骤6),然后又继续后面的步骤。
  • ⑨ DHCP 客户可随时提前终止服务器所提供的租用期,这时只需向 DHCP 服务器发送释放报文DHCPRELEASE即可。

(6.7) 简单网络管理协议 SNMP

(6.7.1) 网络管理的基本概念

2. 网络管理模型中的主要构件

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

3. 被管对象(Managed Object)

  • 网络的每一个被管设备中可能有多个被管对象。
  • 被管设备有时可称为网络元素或网元。
  • 在被管设备中也会有一些不能被管的对象。

4. 代理

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

(6.8) 应用进程跨越网络的通信

(6.8.1) 系统调用和应用编程接口

  • 大多数操作系统使用系统调用(system call)的机制在应用程序和操作系统之间传递控制权。
  • 对程序员来说,每一个系统调用和一般程序设计中的函数调用非常相似,只是系统调用是将控制权传递给了操作系统。

1. 应用编程接口 API (Application Programming Interface)

  • 当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口。
  • 此接口再将控制权传递给计算机的操作系统。操作系统将此调用转给某个内部过程,并执行所请求的操作。
  • 内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用进程。
  • 系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口,即应用编程接口 API

控制权的转移

系统调用接口(函数调用) --> 系统调用接口 --> 操作系统 --> 某个内部过程 --> 
应用进程

2. 套接字的作用

套接字:方便分配与关闭代表网络通信所需资源总和的号码。