计算机网络超详细笔记(七):应用层

第七章 应用层

7.1 应用层概述

  • 应用层直接为用户服务
  • 应用层特点
    • 直接网络应用程序
      • 浏览器、电子邮件、文件传输、远程登录
    • 间接网络应用程序
      • Word、资源管理器
      • 依靠重定向器实现网络功能。
      • 重定向器是置于应用中的小软件,它是透明的。

7.2 域名系统 DNS 概述

7.2.1 域名概述
  • 域名系统 (DNS - Domain Name System)

    • 域名系统是分层次的,并使用分布式数据库实现。
    • 两类*域名:通用域名与国家域名
    • 计算机网络超详细笔记(七):应用层
  • 域名的表示方式

    • 每个域的名字:从它向上到根的路径,各个部分间用圆点隔开
    • scut.edu.cn —— 三级域名 . 二级域名 . *域名
  • 域名的组成

    • 域名无关大小写。
    • 各组成部分的名字最多有63个字符长,整个路径不超过255个字符。
    • 没有规则限制同时在两个或多个*域名下的注册。
  • 域的权限

    • 每个域自行控制其下面的子域的划分

      • 日本的 ac.jp 和 co.jp 分别对应于 edu 和 com
7.2.2 域的资源记录
  • DNS的主要功能:将域名映射到资源记录上

  • 域的资源记录:域名、生存时间、类别、类型、值

    • 域名:指出这条记录适用于哪个域
      • 域名字段是匹配查询条件的主要关键字。
      • 每个域有多条记录,数据库则保存多个域的信息。
      • 资源记录在数据库中的顺序无关紧要。
    • 生存时间:表明这条记录的稳定程度。
      • 极稳定的资源记录会被分配一个很大的值。
      • 非常不稳定的资源记录会被分配一个很小的值。
    • 类别:只要一个类别 (IN)
    • 类型:指出这是什么类型的记录。
      • A:IPv4地址
      • AAAA:IPv6地址
    • 值:类型对应的值,可以是数字,也可以是ASCII字符串等。
  • 资源记录存储

    • 存储在域名服务器中。
    • 互联网需要多台域名服务器。将互联网划分多个区域,每个区域有一个主域名服务器,还有一个次域名服务器。
      • 主域名服务器和次域名服务器之间同步数据。
    • 根域名服务器
      • 存储所有*域名的名字和对应IP地址等信息。
      • 全球一共有13个根域名服务器,有100+镜像个域名服务器。
7.2.3 课程总结
  • IP地址难以记忆,且IP地址经常发生变动,便出现了域名。
  • DNS是一个层次化的分布式数据库系统,提供域名解析服务。
  • 域名解析的结果主要是资源记录。
  • 任何域名均对应一条或多条资源记录。
  • 资源记录包括权威资源记录。
  • 资源记录均存储在域名服务器中。

7.3 DNS域名解析

  • 域名解析过程

    • 计算机网络超详细笔记(七):应用层

    • 计算机网络超详细笔记(七):应用层

  • 域名解析的两个类别

    • 递归查询

      • 向本地DNS服务器查询资源记录
      • 计算机网络超详细笔记(七):应用层
    • 迭代查询

      • 计算机网络超详细笔记(七):应用层

      • 计算机网络超详细笔记(七):应用层

  • 优化方法

    • 高速缓存 —— 减少查询环节,提高效率
    • 缺点:缓存中的内容不具有权威性

7.4 电子邮件

7.4.1 电子邮件系统概述
  • 电子邮件系统由两部分组成

    • 用户代理 (UA):让用户能够阅读和发送邮件
      • 本地程序,提供命令行或图形界面,让用户和电子邮件系统交互
      • 例如Gmail、Outlook等
      • 功能:邮件显示、邮件归档、邮件处置、自动响应、签名块、邮件列表
    • 消息传输代理 (MTA):将消息从源端送到目标端
      • 通常是系统守护进程,即运行在后台的进程,在系统中传递电子邮件
  • 传输过程图示

    • 计算机网络超详细笔记(七):应用层
  • 电子邮件消息格式

    • ASCII电子邮件采用RFC 822
      • 消息由一个信封 (RFC 821)、一些头域、一个空行和消息体组成。
      • 每个头域由一行ASCII文本组成,包括域名、一个冒号,对于大多数头域来说,还包括一个值
    • 用户可以发明新的消息头供自己私人使用,只要这些消息头以 X- 开头
    • 计算机网络超详细笔记(七):应用层
7.4.2 MIME
  • 多用途互联网邮件扩展 (MIME - the Multipurpose Internet Mail Extensions)
    • 解决问题:传输带有重音符的语言、非拉丁字母、不带字母的语言、完全不包含文本的消息
  • MIME基本思想
    • 继续使用 RFC 822 格式,但是在消息体中增加了结构,为非 ASCII 消息定义了编码规则
    • MIME可以使用现有的程序和协议来发送,所有必须要改变的是接收和发送的程序
7.4.3 SMTP
  • SMTP (Simple Mail Transfer Protocol)
    • 源机与目标机 (SMTP守护进程在监听) 的 25 端口建立TCP连接
    • 如果消息不能被投递,则向消息的发送方返回一个错误报告 (包含了不能投递消息的第一部分)
    • 这是一个简单的 ASCII 协议
  • SMTP 工作过程
    • 建立连接:在25端口,用TCP协议建立连接
    • 数据交换
      • 客户机等待服务器首先开始通话
      • 服务器首先发送一行文本,给出它自己的标识,并且告诉客户机是否已准备好接收邮件
      • 如果服务器没有准备好,则客户机释放连接,以后再重试
      • 如果服务器愿意接收电子邮件,则客户机申明发信人和收信人
      • 如果服务器确实存在这样的收信人,则服务器指示客户可以发送邮件
      • 客户发送消息,服务器回发确认
    • 连接释放
  • 与MIME的工作图示
    • 计算机网络超详细笔记(七):应用层
7.4.5 最后传递过程
  • 问题:收件方不可能一天 24h 在线,需要一个邮件收发代理

  • POP3

    • 当用户启动邮件阅读器的时候,POP3开始工作
    • 用户呼叫ISP (除非已有一个连接),然后与MTA在110端口建立TCP连接
    • 一旦连接建立,POP3协议按顺序经历下述三种状态
      • 授权:处理用户登录的过程
      • 事务:用户收取电子邮件,并将邮件标记为删除
      • 更新:将标为删除的电子邮件删除
    • 计算机网络超详细笔记(七):应用层
  • IMAP (Internet Message Access Protocol)

    • IMAP 假设所有的电子邮件都永久地保存在服务器上的多个邮箱中
    • IMAP 提供了阅读消息或阅读部分消息的机制
    • IMAP 服务器在143端口监听
    • IMAP 也可以接收外发的邮件
    • IMAP 有更多的命令,更复杂
  • WebMail

    • 能上网即可用,无需配置
7.4.6 课程总结
  • 电子邮件系统主要包括MTA和UA两部分
    • UA主要负责读写邮件
    • MTA主要负责收发邮件
  • 邮件传输协议:SMTP
  • 非纯文本邮件:MIME (多用途互联网邮件扩展)
  • 最后投递
    • IMAP (早期为POP3)

7.5 万维网 (World Wide Web)

7.5.1 万维网概述
  • 万维网 (WWW - World Wide Web)

    • Web是web网页的集合
    • 每个页面包含了指向其他页面的连接 (超级连接)
    • 浏览器 —— 显示阅读web页面的程序
  • WWW的组成部分

    • 资源

      • web页面,html
    • 统一资源定位器:URL

      • 找到资源的地址
    • 通信协议HTTP

      • 将远端资源和本地联系起来
  • Web的体系结构

    • 计算机网络超详细笔记(七):应用层
7.5.2 统一资源定位符
  • 统一资源定位符 (URL - Uniform Resource Locators)

    • Web页面由URL标识
  • URL组成

    • 协议:http

    • 页面所在机器的DNS域名 (或IP地址):www.abcd.com

    • 包含web页面的文件的名字:products.html

    • 例子

      • 计算机网络超详细笔记(七):应用层
7.5.3 客户端
  • 当用户单击一个超级链接 (URL) 时:

    • 浏览器检查URL (读取浏览器的输入)
    • 浏览器向DNS服务器询问域名的IP地址
    • DNS 返回对应的IP地址
    • 浏览器和Web服务器建立TCP连接 (80端口)
    • 浏览器发送请求,要求获取文件 products.html
    • Web服务器返回被请求的文件
    • TCP连接被释放
    • 浏览器解释显示下载到本地的文件
  • 浏览器扩展

    • 目的:解析各类文件,如PDF文件、GIF图标、MPEG视频等
    • 两种方式
      • 插件:代码模块,运行在浏览器的内部。过多插件会让浏览器过度膨胀。
      • 外挂助手程序:独立的程序,浏览器只是把参数传入,不会影响到浏览器本身。
7.5.4 服务端
  • 典型Web服务器的操作

    • 接收来自客户的TCP连接
    • 获取所需文件的名字
    • 从本地磁盘上获取文件 (静态文件)
    • 将文件返回给客户
    • 释放TCP连接
  • 改进

    • 在内存中维护一个缓存,保存最近用过的n个文件。
    • 多线程服务器
      • TCP移交:TCP端点被传递给处理节点,应答可以直接向客户端发送 (可以越过多线程服务器的前端)
  • 高速代理服务器 (Web cache)

    • 万维网高速缓存把最近的一些请求和相应暂存在本地磁盘中。
    • 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按URL的地址再去因特网访问该资源。
  • Cookie

    • 目的:不同用户登录同一个web服务器,想获得不同的资源,即个性化服务。
    • 特点
      • 一个小于 4 kB的命名串
      • 当客户请求时,web服务器除了应答外,附送一个cookie,存储在客户机磁盘中
      • 客户再访问同一个web服务器时,同时发送cookie
      • 服务器辨识出用户,并得到它关心的一些信息
    • 缺点:侵犯用户隐私,有安全隐患
7.5.5 课程总结
  • 什么是万维网?
  • 万维网的主要组成部分有哪些?
  • URL是怎样构成的?
  • 为什么需要TCP移交?它解决了什么问题?
  • 热门网站如何应对众多客户请求?
  • 什么是COOKIE?

7.6 其它应用

7.6.1 文件传输 (FTP)
  • FTP

    • 一种可靠的面向连接的服务,采用TCP在支持FTP的系统间传输文件,支持双向二进制文件和ASCII文件传输。
  • TFTP

    • 一种无连接的不可靠的服务,采用UDP在支持TFTP的系统间传输文件。
    • 如:路由器备份下载文件。
  • 两个术语

    • 上载:将文件从自己的计算机中拷贝到远程计算机上。(upload)
    • 下载:将文件从远程计算机上拷贝到自己的计算机上。(download)
  • 工作原理

    • 双TCP连接,实现简单,提供终止传输、断点续传等服务。
    • 计算机网络超详细笔记(七):应用层
7.6.2 远程登录 (Telnet)
  • 远程登录

    • 不要求远地系统创建众多的服务器,只需为每个远程登录用户建立一个进程,这个进程再通过创建子进程为远程登录用户提供各种允许的服务。
    • 优点:提供与本地登录几乎完全相同的用户界面。
  • SSH (Secure Shell)

    • 工作在22端口,为远程登录这样的明文传输协议提供安全的传输壳。
7.6.3 多媒体应用
  • 多媒体应用分类
    • 实时应用
    • 非实时应用
  • 多媒体应用相关的协议
    • 计算机网络超详细笔记(七):应用层
7.6.4 课程总结
  • FTP有两根TCP连接
    • 数据连接 (20)
    • 控制连接 (21)
  • 远程登录TELNET工作在23端口
    • SSH工作在22端口
  • FTP和TELNET的传输层都用的是TCP
  • 多媒体应用分类:实时、非实时
  • 例题
    • 计算机网络超详细笔记(七):应用层