0%

【知识总结】 第六章-应用层

网络应用模型

客户/服务器模型

  • 即Cient/Server模型、C/S模型
    • 服务器是服务提供方,要一直保持运行状态
    • 客户是服务请求方,要实现知道服务器的地址
  • 工作流程
    • 服务器处于接收请求状态
    • 客户机发出服务请求,等待结果
    • 服务器收到后,分析请求、处理、把结果发给客户机
  • 特征
    • 非对称
      • 占少数的服务器集中管理整个网络
      • 占多数的客户机的权限由服务器管理限制
    • 客户机之间不能通信
    • 服务器支持的客户机数有限
  • 应用举例
    • FTP
    • TELNET
    • SMTP
    • DNS
    • WWW(Web)

对等模型

  • 即P2P模型
    • P2P网络是由对等结点组成的逻辑网络
  • 特征
    • 各计算机地位对称,既是客户,又是服务器
      • 获取服务的同时需要提供服务,也算缺点
    • 任意一对计算机(对等方)直接相互通信
    • 网络单结点失效不影响其他结点
  • 应用举例
    • PPlive
    • Bittorrent
    • 电驴

域名系统DNS

层次域名空间

  • 域名:网络设备的一种具有层次结构的命名
    • 比如www.google.com是谷歌搜索服务器的域名
    • ".com"顶级域名、".google"二级域名、"www"三级域名
  • 概念介绍
    • 域名
      • 多个标号的序列,标号间"."隔开
      • 每个标号对应一个子域名,且从左到右域名级别递增,最右边是顶级域名
      • 不超过255各字符
    • 标号
      • 由字母、数字、"-"组成
      • 不区分大小写
      • 不超过63个字符
    • 顶级域名
      • 国家顶级域名:".cn"是中国、".us"是美国
      • 通用顶级域名:".com"是公司、".org"是非营利组织
      • 基础结构域名:".arpa"反向域名解析(唯一的基础结构域名)
    • 层次域名空间
      • 各个域的关系可以用树状层次结构表示
      • 各个域的管理组织不同,子域由子组织管理

域名服务器

  • 域名服务器:采用C/S模型的分布式数据库系统,提供从域名到IP地址的解析
    • 若不能进行解析,则给用户提供寻找其他域名服务器的信息
  • 区:一个域名服务器的管辖范围
  • 域名系统(DNS):以层次方式组织大量域名服务器,提供域名解析服务
  • 域名服务器按层次的分类
    • 根域名服务器
      • 13个相互冗余的根域名服务器组成服务器集群,管理所有顶级域名服务器的IP地址
      • 提供下一步要查询的顶级域名服务器的IP地址
    • 顶级域名服务器
      • 管理该域名服务器所注册的所有二级域名
      • 提供最终结果的IP地址或下一步要查询的域名服务器的IP地址
    • 授权域名服务器(又叫权限域名服务器,可以涉及多个层次
      • 管理在服务器注册的所有主机(一台主机一般在多个服务器注册)
      • 提供从主机名到主机IP地址的转换
    • 本地域名服务器
      • 每个因特网服务提供者(ISP)可以拥有一个本地域名服务器
      • 处理本地主机的DNS查询请求

域名解析过程

  • 正向解析:域名映射到IP地址
  • 反向解析:IP地址映射到域名
  • DNS请求报文:由用户机的DNS客户端构造,装入UDP,发往服务器,请求域名解析服务
  • 域名解析方式
    • 注:
      • 为描述简洁,域名服务器简写,比如“根域名服务器”简写为“根”
      • 低层服务器看作是高层服务器的用户机
    • 递归查询(负载较大,很少使用)
      • 主机、本地、根、顶级、权限、顶级、根、本地、主机
    • 递归与迭代相结合的查询(常用)
      • 完整的递归迭代查询:主机、本地、根、本地、顶级、本地、权限、本地、主机
      • 不完整的递归迭代查询:前三个本地的任意一个,若已经查到了域名的IP地址,可以提前结束迭代,返回主机
      • 退化为递归查询:主机、本地、主机
  • 高速缓存
    • DNS服务器获得DNS查询结果后,除了将其发送给用户机,还要将其保存到高速缓存
      • 方便之后相同的域名查询
      • 高速缓存内容不永久保存,定期丢弃

文本传输协议FTP

工作原理

  • 功能
    • 以用户登陆方式,获得远程FTP服务器的文件的管理权限
      • 上传和下载
    • 以匿名方式(非用户登陆方式)提供公用文件的共享
    • 提供不同种主机间的文件传输
  • 服务器的进程组成
    • 一个主进程(端口号21)
      • 接收新请求
    • 若干从属进程
      • 处理单个请求
  • 从属进程类型
    • 控制进程(端口号21)
    • 数据传送进程(默认情况端口号20)
  • 工作步骤
    • 主进程等待客户连接请求
    • 主进程收到客户连接请求,启动控制进程,建立控制连接
      • 会话结束后终止控制进程
    • 控制进程收到客户数据传输请求,启动数据传送进程,建立数据连接
      • 传送完后终止数据传送进程
    • 会话结束后,继续等待其他客户请求

控制连接和数据连接

  • 控制连接
    • 两端进程:控制进程
    • 服务器端口号:21
    • 用户端口号:用户随机分配
    • 功能:以ASCII格式传送控制信息,如数据连接请求、数据传送请求、中止传输命令等
    • 带外传送:指控制连接和数据连接分离的传送方式
  • 数据连接
    • 两端进程:数据传送进程
    • 服务器端口号
      • 主动模式:20
      • 被动模式:服务器随机分配
    • 用户端口号:用户随机分配
    • 功能:完成客户端和服务器端的文件数据传送
    • 传送模式:默认为主动模式
      • 主动模式PORT:客户发送PORT命令和客户端口号,再由服务器发起连接
      • 被动模式PASV:客户发送PASV命令获取服务器端口号,再由客户机发起连接

文件修改方式

  • 传统的FTP
    • 在本地复制远程文件的整个副本,修改后传回服务器,很耗时
  • 网络文件系统NFS
    • 在本地复制远程文件的特定片段,修改后传回服务器,速度快

电子邮件

电子邮件系统的组成结构

  • 用户代理
    • 用户和电子邮件系统的接口(即邮件客户端软件)
    • 提供邮件撰写、显示、处理、通信的功能
  • 邮件服务器
    • 功能是发送和接收邮件
    • 结构包括邮件缓存和用户邮箱
    • 举例:qq邮件服务器、189邮件服务器等
  • 电子邮件的协议
    • 发送协议(SMTP协议)
      • 发送方用户代理(客户)数据到发送方邮件服务器(服务器)的邮件缓存
      • 发送方邮件服务器(客户)发送数据到接收方邮件服务器(服务器)的用户邮箱
    • 接收协议(POP3协议或IMAP协议)
      • 接收方邮件服务器(服务器)数据到接收方用户代理(客户)

电子邮件格式

  • 信封
    • 自动填写
  • 内容
    • 首部
      • From(自动填写):[发送方用户邮箱名]@[发送方邮件服务器的域名]
      • To(用户必填):[接收方用户邮箱名]@[接收方邮件服务器的域名]
      • Subject(用户选填):[邮件的主题]
    • 主体
      • 用户撰写的邮件内容(ASCII码)

MIME

即多用途网际邮件扩充

  • 功能
    • 使得SMTP除了支持ASCII码,还支持其他编码以及二进制文件的发送
  • 实现
    • 不改变SMTP
    • 新定义了首部字段、主体结构、传送非ASCII码的规则

SMTP与POP3

  • SMTP
    • 连接建立
      • 发送方邮件服务器定期扫描缓存
      • 缓存发现邮件,则在端口25和接收方服务器建立TCP连接
      • 接收方回复220 Service ready
      • 发送方发出HELO,带有发送方主机名
    • 邮件传送
      • 发送方发出的MAIL,带有发件人地址
      • 接收方回复250 OK
      • 发送方发出若干RCPT,确认接收方是否做好准备
      • 接收方回复250 OK或No such user here
      • 发送方发出DATA,传输邮件内容
      • 接收方回复354 Start mail input;end with .
      • 发送方发出.,表示邮件内容结束
    • 连接释放
      • 发送方发出QUIT
      • 接收方回复221
      • 进行TCP的连接释放
  • POP3
    • 端口号110,基于TCP
    • 工作方式(由POP3客户决定)
      • 下载并保留:下载后邮件保留在邮箱
      • 下载并删除:下载后邮件删除
    • 传输方式
      • 明文传输
  • IMAP
    • 比POP3复杂,但都是用于邮件接收

HTTP

在万维网的邮件系统中使用HTTP协议 + 用户代理(浏览器)和邮件服务器以HTTP发送和接收邮件

WWW

WWW的概念和组成结构

基本概念

  • 万维网(WWW):联机分布式的信息储藏所
    • 万维网由大量网络站点互联
    • 每个站点包含若干文档(页面、资源)
  • 超链接(链接):从一个文档访问另一个文档的方法
  • 超文本:包含链接的文档(纯文本)
  • 超媒体:包含链接的文档(除了文本,还包含图像、声音、视频等媒体)
  • 互联网、因特网、万维网的关系
    • 互联网:多个计算机网络按协议连接的大型网络
    • 因特网:实际已有的最大的互联网,包括网络站点、电子邮件、新闻组等
    • 万维网:因特网的主要部分

组成结构

  • 统一资源定位符(URL):唯一的标识万维网的文档
    • 例如:"http://www.tsinghua.edu.cn:80/zjqh/xxgk1.htm"
    • 结构:[传送协议]://[服务器主机域名]:[端口]/[路径]
    • 注:传送协议一般是http或fps,端口一般省略
  • 超文本传输协议(HTTP):基于TCP的应用层协议,在浏览器客户端和Web服务器之间传送超文本
  • 超文本标记语言(HTML):对页面进行描述的语言

HTTP

操作过程

  • 浏览器分析URL,得到URL的四个成分,传送协议是http
  • 浏览器请求DNS解析URL中的服务器主机域名,得到服务器IP地址
  • 浏览器与服务器的端口80建立TCP连接
  • 浏览器发出HTTP请求,GET/[路径]
  • 服务器发出HTTP响应,回复路径对应的文档
  • 释放TCP
  • 浏览器解释文档,并显示给用户

特点

  • HTTP是无连接的
    • 传送数据前不需要建立HTTP连接
  • HTTP是无状态的
    • 服务器不跟踪用户活动
    • 可以用Cookie加数据库跟踪用户活动
      • Cookie在服务器生成,在浏览器储存
  • 可以非持久连接和持久连接
    • 非持久连接:服务器发送响应后释放TCP
      • 比如前面的操作过程
    • 持久连接:服务器发送响应后保持TCP
      • 非流水线方式(HTTP/1.0):浏览器收到响应才能发出下一个请求
      • 流水线方式(HTTP/1.1):可以连续发送请求给浏览器

报文结构

注:每个字段都是ASCII码

  • 请求报文
    • 请求行:[方法][空格][URL][空格][HTTP版本][CRLF]
      • GET方法:请求服务器响应并返回实体
      • HEAD方法:请求服务器响应,不返回实体
      • POST方法:给服务器发送注释
      • CONNECT方法:用于代理服务器
      • PUT方法:在URL处存储一个文档
      • DELETE方法:删除URL对应文档
      • CRLF:回车换行
    • 首部:包含若干首部行,每个首部行结构为[字段名][:][空格][值][CRLF]
      • Host字段:服务器主机域名
      • Connection字段:close或open,表示是否持久连接
      • User-Agent:浏览器名称和版本
      • Accept-Language:比如cn表示请求服务器优先响应中文文档
    • [CRLF]
    • 实体主体:通常不用
  • 响应报文
    • 状态行:[版本][空格][状态码][空格][短语][CRLF]
      • 状态码(3位5类):通知收到(1xx)、接受请求(2xx)、资源位置已转移(3xx)、客户差错(4xx)、服务器差错(5xx)
      • 短语:对状态码简单解释
    • 首部:包含若干首部行
      • 首部行:[字段名][:][空格][值][CRLF]
    • [CRLF]
    • 实体主体:包含一个请求对象(如文本、一张图片),有时不用