计算机网络超详细笔记(七):应用层
文章目录
第七章 应用层
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):将消息从源端送到目标端
- 通常是系统守护进程,即运行在后台的进程,在系统中传递电子邮件
- 用户代理 (UA):让用户能够阅读和发送邮件
-
传输过程图示
-
电子邮件消息格式
- ASCII电子邮件采用RFC 822
- 消息由一个信封 (RFC 821)、一些头域、一个空行和消息体组成。
- 每个头域由一行ASCII文本组成,包括域名、一个冒号,对于大多数头域来说,还包括一个值
- 用户可以发明新的消息头供自己私人使用,只要这些消息头以 X- 开头
- ASCII电子邮件采用RFC 822
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
- 多媒体应用分类:实时、非实时
- 例题