跳到主要内容

任务一 应用层协议

知识点​

1.应用层协议有什么特点?​

应用层协议是为用户应用程序提供服务的高层协议。

  • 对用户来说,这些协议往往比其他层的协议更具有可见性
  • 应用层协议可以由用户编写,也可以是标准的应用程序
  • 在互联网应用中,应用层最常见的是文件传输协议(FTP)和超文本传输协议(HTTP)

2.FTP是什么?它如何传输文件?​

文件传输协议(File Transfer Protocol,FTP) 是一个常用的应用层协议。FTP 协议可以将计算机文件从一台主机传输到另一台主机,而无需考虑这些主机之间是否运行同一种操作系统或使用同一类型的文件存储结构。

访问授权:用户使用 FTP 访问远程主机时,必须提供一个用户标识和口令,在获得远程主机的授权信息后,用户就能够从本地文件系统向远程文件系统传输文件,或从远程主机下载文件到本地主机。

图 4-19 所示的文件传送过程:

步骤内容
①用户首先指定远程主机的主机名给 FTP 应用程序,使本地主机的 FTP 客户机进程建立一个到远程主机 FTP 服务器进程的 TCP 连接
②用户接着提供用户名和口令,作为 FTP 命令的一部分在该 TCP 连接上传输
③一旦远程主机上的 FTP 服务器验证了该用户,用户就可以向远程文件系统复制存放在本地文件系统中的一个或多个文件,或者从远程文件系统下载文件

3.FTP的控制连接和数据连接有什么区别?​

当用户主机与远程主机开始 FTP 会话前,FTP 的客户机端(即用户端)首先发起一个与 FTP 服务器 21 号端口的 TCP 连接。

连接类型使用端口发起方作用
控制连接21客户机传输用户标识和口令(Username、Password),以及改变远程主机当前目录等命令
数据连接20服务器当 FTP 服务器收到客户端的文件传输命令(无论读或写)后,使用 20 号端口发起一个到客户机的 TCP 数据连接,在该连接上准确地传输文件

数据连接的建立与关闭规则:

  1. FTP 在该数据连接上准确地传输完一个文件后,关闭该连接
  2. 如果在本次会话期间,用户还需要传输另一个文件,则 FTP 服务器打开另外一个数据连接

重要结论:

  • 控制连接贯穿整个 FTP 会话期间
  • 针对会话中的每一次文件传输都需要建立一个新的数据连接

4.HTTP由哪两部分组成?定义了哪些内容?​

超文本传输协议(Hyper Text Transfer Protocol,HTTP) 由两部分程序实现:一个客户机程序和一个服务器程序,它们运行在不同的主机上。

程序运行实体
客户机程序Web 浏览器
服务器程序Web 服务器

Web 浏览器和 Web 服务器之间通过交换 HTTP 数据报进行通信。HTTP 定义了这些报文的格式,以及浏览器和服务器进行报文交换的方式。

HTTP 定义的报文格式分为两类:请求报文和响应报文。

5.HTTP请求报文的结构是怎样的?​

报文的第一行叫作请求行(Request Line),后续的行叫作报头行(Header Line),每一行都用 ASCII 码文本书写。

请求行包括 3 个字段:

字段说明图 4-21 中的实例
方法字段可取值为 GET、POST、HEAD 等GET
URL 字段请求对象的位置/dept/jsjx/index.htm
HTTP 协议版本字段使用的协议版本HTTP/1.1

图 4-21 的请求报文分析:浏览器通过报头通知服务器如下信息。

报头行作用
Host: www.sbs.edu.cn定义对象所在的主机
Connection: Keep-Alive告诉服务器在发送完本次请求的对象后还要保持 TCP 连接,以便后续的请求和响应报文仍使用该连接
User-Agent: ...说明向服务器发送请求的浏览器类型为与 Mozilla/4.0 兼容的 Internet Explorer 6.0
Accept-Language: zh-cn表示用户想得到对象的中文版
Accept指出了客户端所能接收的一系列文档格式类型等信息

6.HTTP响应报文的结构是怎样的?​

与请求报文相对,响应报文的第一行叫作状态行(Status Line),后续的行叫作报头行,最后是内容,通常是一幅图像或一个网页。

状态行包括 3 个字段:协议版本、状态码、相应的状态信息。

图 4-22 的响应报文分析:

(1)状态行:HTTP/1.1 200 OK

  • 使用的协议是 HTTP/1.1
  • 状态码是 200,状态信息表示请求成功
  • 状态信息是对状态码含义的解释

(2)报头行:

报头行作用
Server表明该报文是由一个 IIS 6.0 Web 服务器产生的(类似请求报文中的 User-Agent 字段)
Date服务器产生并发送响应报文的日期和时间
Content-Length被发送对象的字节数
Content-Type表明实体中的对象是 HTML 文本
Cache-Control、Expires设置页面过期时间等

7.Web浏览器访问网页的典型交互过程是怎样的?​

HTTP 揭示了 Web 浏览器如何向 Web 服务器请求网页,以及 Web 服务器如何将网页传输给客户机(图 4-23)。

以请求 http://www.hevttc.edu.cn/dept/jsjx/index.htm 为例:

步骤处理内容
①浏览器首先调用域名服务(DNS) 协议将 URL 中的域名(www.hevttc.edu.cn)解析为具体的 IP 地址(如 172.16.1.212)
②一旦 IP 地址成功返回,浏览器即在 80 端口向服务器发出一个 TCP 连接申请(该端口是 HTTP 的默认端口)
③一旦 TCP 连接建立,HTTP 的浏览器通过与连接相联系的套接字(IP 地址 + 端口号) 向服务器发送一个 HTTP 请求报文,报文中包含了路径名 /dept/jsjx/index.htm
④HTTP 服务器进程通过与连接相联系的套接字(如 IP 地址 + 80 端口) 读取请求报文,并从存储器(内存或硬盘)中检索出网页,装载在一个 HTTP 响应报文中,通过套接字向客户浏览器发送响应报文
⑤当完整的网页传输完成后,或者经过一定的时间间隔后,HTTP 服务器就关闭连接

注意:HTTP 本身依赖 TCP 提供可靠的传输,这一点与"80 端口是 HTTP 默认端口"要一起记忆。

8.什么是域名?域名由谁管理?​

域:网络中的每台主机都是某个域(所谓"域"是指一个有安全边界的计算机集合,在同一个域中的计算机彼此之间已建立了信任关系)的成员,或者说是属于某个组织,其特征是 IP 地址中的网络地址部分是相同的。

域名:域可以具有域名标识。域名与公司或其他类型组织联系在一起,比如大学或政府机构等。

管理:域名由 InterNIC 进行管理,其已经建立起了域名命名规则,即规范了每类组织的域的后缀。这些后缀也被称为最高级域名、顶级域名。

9.什么是主机文件?它有什么局限?​

由于 Internet 的前身(ARPANET)只连接不足 1000 台主机,整个 Internet 使用一个名为 hosts.txt 的文本文件把主机名与 IP 地址联系起来,这个文件也就是常说的主机文件。

局限性:Internet 规模的飞速增长使这种简单的处理方式变得不可能维护:

  1. 主机文件需要经常变化
  2. 文件分散分布在 Internet 的每一台计算机上
  3. 如果意外删除该文件,则该计算机将无法访问 Internet

现状:在 Windows 系统文件夹下的 system32/drivers/etc 文件夹下,仍然保留着 hosts 文件。这是一个文本文件,用户可以使用记事本打开并进行修改。

10.什么是域名系统(DNS)?​

在 20 世纪 80 年代中期,斯坦福研究中心的网络信息中心推出一种跟踪域名和 IP 地址的层次方法,称为域名系统(Domain Name System,DNS)。

要点内容
功能完成字符地址到 IP 地址的转换
核心位于 DNS 服务器上的 DNS 数据库
根服务器全球范围内共有 13 个顶级 DNS 服务器,保存着世界范围内所有域名到 IP 地址的转换数据
结构所有的 DNS 服务器组成一个层次结构的拓扑
归属DNS 是属于应用层的 TCP/IP 服务

解析的基本思路:客户机先试图在本机的 hosts 文件、DNS 缓存中发现相应的 IP,如果没有查询到,则向本机设置的 DNS 服务器进行查询;如果仍未查询到,则由这台 DNS 服务器向它自身设置的 DNS 服务器查询,直到最终问题解决。

11.域名解析的完整过程是怎样的?​

以在浏览器中输入 www.qq.com 为例(图 4-24):

步骤处理过程
①操作系统会先检查本地 DNS 解析结果的缓存中是否有这个网址的映射关系;如果有,就调用这个 IP 地址映射,完成域名解析
②如果缓存中没有,则查找本地的 hosts 文件是否保存有这个网址的映射;如果有,就调用此 IP 地址映射,完成域名解析
③如果 hosts 与缓存中都没有,则找 TCP/IP 参数中设置的首选 DNS 服务器(即本地 DNS 服务器);该服务器收到查询时,如果要查询的域名包含在本机 DNS 解析数据库中,则返回解析结果给客户机
④如果本地 DNS 服务器数据库中无相关记录,但该服务器已缓存了此网址映射关系,则调用这个 IP 地址映射,完成域名解析
⑤如果本地 DNS 服务器解析失败,则根据本地 DNS 服务器的设置(是否设置转发器)进行查询。未启用转发模式时,本地 DNS 把请求发至 13 台根 DNS;根 DNS 收到请求后判断这个域名(以 .com 为例)是哪台服务器管理,并返回一个负责该顶级域名服务器的 IP;本地 DNS 收到该信息后联系负责 .com 域的服务器;该服务器若自己无法解析,就会给出管理下一级(qq.com)的 DNS 服务器地址;本地 DNS 再找 qq.com 域服务器,重复上面的动作,直至找到 www.qq.com 主机
⑥如果用的是转发模式,此 DNS 服务器就会把请求转发至上一级 DNS 服务器,由上一级服务器进行解析;上一级服务器如果不能解析,则找根 DNS 或把请求转至上上级,以此循环。不管是转发还是根提示,最后都是把结果返回给本地 DNS 服务器,再由它返回给客户机

迭代查询与递归查询的区别:本地 DNS 逐级向根、顶级、二级域名服务器发问,属于迭代查询;客户机把请求交给本地 DNS 后由它负责跑完全程,对客户机而言是递归查询。

12.域名由谁管理?有哪些顶级域名?​

在互联网上使用的域名由因特网域名与地址管理机构(ICANN) 管理。这个组织是为完成域名系统管理、IP 地址分配、协议参数配置以及主服务器系统管理等而成立的非营利机构。

(1)国家或地区顶级域名

ICANN 为不同的国家或地区设置了相应的顶级域名,这些域名通常都由两个英文字母组成:

域名国家/地区域名国家/地区
.uk英国.fr法国
.jp日本.cn中国

中国的顶级域名是 .cn,由钱天白于 1990 年 11 月 28 日向 ICANN 进行申请。

(2)最初定义的 7 个顶级类别域名

域名用途域名用途
.com企业.top企业
.edu教育机构.gov政府机构
.mil军事部门.net互联网络及信息中心等
.org非营利性组织——

(3)后来增加的 7 个顶级类别域名

域名用途域名用途
.aero航空运输业.biz商务
.coop协作组织.info通用域名(没有特定指向)
.museum博物馆.name个人
.pro会计师、律师、医师等——

13.DHCP是什么?它有什么作用?​

动态主机设置协议(Dynamic Host Configuration Protocol,DHCP) 是一个局域网的网络协议。

要点内容
架构采用 C/S(客户机/服务器)架构
传输协议使用 UDP 协议工作
作用可以自动将 IP 地址分配给 TCP/IP 网络的用户端的一种软件;在指定 IP 地址的同时,还可以指定子网掩码等参数
租用机制在 DHCP 服务器中,管理员可以设置 IP 地址范围,供客户机"租用"并设置租用时间

14.DHCP的工作过程分为哪几个阶段?​

阶段名称关键内容
①发现阶段客户机寻找 DHCP 服务器。若客户机设置了"自动获取 IP 地址",则在启动过程中以广播方式发送 DHCP discover 发现信息,即向地址 255.255.255.255 发送特定的广播信息。网络上每一台安装了 TCP/IP 协议的主机都会收到该广播,但只有 DHCP 服务器才会做出响应
②提供阶段收到 discover 的 DHCP 服务器从尚未出租的 IP 地址中挑选一个分配给客户机,向客户机发送一个包含出租的 IP 地址和其他设置的 DHCP offer 信息
③选择阶段如果有多台 DHCP 服务器发来 offer,客户机只接受第一个收到的 DHCP offer;然后以广播方式回答一个 DHCP request 请求信息,其中包含向所选定的 DHCP 服务器请求 IP 地址的内容。之所以用广播,是为了通知所有 DHCP 服务器它将选择哪一台服务器提供的 IP 地址
④确认阶段DHCP 服务器收到 request 后,向客户机发送 DHCP ack 确认信息,告诉客户机可以使用该 IP 地址。客户机便将该 IP 地址与 TCP/IP 协议、网卡绑定;除被选中的服务器外,其他 DHCP 服务器都将收回曾提供的 IP 地址
⑤重新登录以后客户机每次重新登录网络时,不再发送 discover,而是直接发送包含前一次所分配 IP 地址的 DHCP request。服务器尝试让其继续使用原来的 IP 地址并回答 DHCP ack;如果该 IP 地址已无法再分配(如已分配给别人),服务器回答 DHCP nack(否认信息),客户机收到后必须重新发送 discover 请求新的 IP 地址
⑥更新租约DHCP 出租的 IP 地址一般都有租借期限,期满后服务器收回。客户机要延长租约必须更新租约:在启动时和租约期限过一半时,都会自动向 DHCP 服务器发送更新租约的信息

四种报文速记:discover(发现)→ offer(提供)→ request(请求)→ ack(确认),异常时出现 nack。

15.电子邮件涉及哪些协议?​

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

  • 是一组用于由源地址到目标地址传送邮件的规则,由它来控制信件的中转方式
  • 帮助每台计算机在发送或中转信件时找到下一个目的地
  • 通过 SMTP 协议所指定的服务器,可以把 E-mail 传到收信人的服务器上
  • 两个主要功能:
    1. 将电子邮件从客户机传输到邮件服务器
    2. 从某一个邮件服务器传输到另一个邮件服务器

(2)POP(邮局协议)

  • 用于从服务器到客户机的电子邮件的接收,使用 110 端口工作
  • 常用的是版本 3,简称 POP3
  • 三个阶段:
阶段内容
认证阶段客户机与服务器建立连接时,客户机向服务器发送自己的认证信息(账户和密码)并由服务器确认
处理阶段通过认证后转入处理状态,进行接收邮件的各种准备工作;在完成列出未读邮件等操作后,退出处理状态
更新状态开始下载未阅读过的邮件到本地计算机,完成后重返认证状态确认身份,之后断开与服务器的连接

(3)IMAP(Internet 邮件访问协议)

电子邮件的客户端通过本协议从邮件服务器上获取邮件的信息、完成下载邮件等操作。

IMAP 与 POP3 的区别:

比较项POP3IMAP
客户端操作是否反馈服务器不会反馈。如在客户端把 3 封邮件移动到其他文件夹,服务器上的这些邮件不会同时被移动提供 webmail 与客户端之间的双向通信,客户端的操作都会反馈到服务器,服务器上的邮件也做相应动作
摘要浏览无提供摘要浏览功能,用户可先看到达时间、主题、发件人、大小等信息,再决定是否下载
多设备访问较弱更好地支持从多个不同类型的设备随时访问新邮件

(4)MIME(多用途互联网邮件扩展)

MIME 是当前广泛应用的一种电子邮件技术规范,它在不改变 SMTP 协议和邮件格式标准的基础上,实现邮件可以传送任意二进制文件。

一封邮件包括信封、邮件头和邮件体三个部分。信封为文本信息,不会含有二进制信息,而其他两部分则可能包含任意二进制序列。

MIME 的改进主要包括:

  1. 新增邮件头部信息,用来确定 MIME 的一些工作参数
  2. 定义邮件内容的格式,对多媒体电子邮件的表示方法进行标准化
  3. 定义传送编码,从而可以在邮件体中传送任意二进制文件

16.电子邮件系统的工作过程是怎样的?​

电子邮件系统是基于客户机/服务器的工作方式:

角色名称职责
客户端用户代理提供用户界面,负责邮件发送的准备工作,如邮件的起草、编辑以及向服务器发送邮件或从服务器取邮件
服务器端传输代理负责邮件的传输,采用端到端的传输方式

图 4-25 所示的发送和接收过程分为 3 步:

步骤内容
①用户需要发送电子邮件时,首先利用客户端的电子邮件应用程序按规定格式起草、编辑一封邮件,指明收件人的电子邮件地址,然后利用 SMTP 协议将邮件送往发送端的邮件服务器
②发送端的邮件服务器收到邮件后,按收件人地址中的邮件服务器主机名,通过 SMTP 协议将邮件送到接收端的邮件服务器;接收端的邮件服务器根据收件人地址中的账号将邮件分发到对应的邮箱中
③接收端的用户利用 POP3 协议或 IMAP,可以在任何时间、任何地点利用电子邮件应用程序从自己的邮箱中读取邮件,并对自己的邮件进行管理

17.常用应用层协议与端口对照表​

协议全称默认端口传输层协议用途
FTP文件传输协议21(控制)、20(数据)TCP文件上传与下载
HTTP超文本传输协议80TCP传输 Web 页面
HTTPS安全超文本传输协议443TCP加密的 Web 访问
DNS域名系统53UDP/TCP域名与 IP 地址转换
DHCP动态主机设置协议67(服务器)、68(客户机)UDP自动分配 IP 地址等参数
SMTP简单邮件传送协议25TCP发送与中转邮件
POP3邮局协议第 3 版110TCP接收邮件到本地
IMAPInternet 邮件访问协议143TCP在线访问与管理邮件
Telnet远程登录协议23TCP远程登录

记忆要点:FTP 双端口(21 控制、20 数据)、HTTP 80、SMTP 25、POP3 110、DNS 53、DHCP 靠 UDP——这是本模块最常考的一组数字。