2 应用层(ch25-29)
- 应用层使用户能够访问网络,用户可以是人或软件。它为用户提供服务的接口和支持,如电子邮件、文件访问和传输、访问系统资源、游览万维网,及网络管理。
由于优快云的md格式和语雀不一样,语雀一些内置功能无法呈现,可以移步本人语雀原文档阅读,更加清晰:《计网复习-2. 应用层(ch25-29)》
2.1 ch25域名系统
- TCP/IP协议使用IP地址唯一地确定一台主机到因特网的连接
- DNS用于获取对应的IP地址
2.1.1 定义概念
名字空间
- 名字空间将每一个地址映射到一个唯一的名字,它可以按两种方式进行组织:平面的和层次的。
- 平面名字空间
- 一个名字分配给一个地址
- 可能有也可能没有公共部分;即使有公共部分,也没有实际含义
- 必须集中控制才能避免二义性和重复
- 层次名字空间
- 每一个名字由几个部分组成
域名空间
- 为了获得层次结构的名字空间而设计
- 所有的名字由根在顶部的倒置树结构定义
- 标号
- 一个最多为63个字符的字符串
- 每一个节点的子节点(从同一节点分支出来的节点)有不同的的标号,这样就确保了域名的唯一性
- 域名
- 树上的每一个节点都有一个域名
- 域名总是从节点向上读到根节点
- 全称域名FQDN——包含所有的标号,唯一地定义一台主机的名字
- 部分域名PQDN——
- 域
- 是域名空间的一棵子树
- 域的名字是子树顶部节点的域名
- 一个域本身也可以再分划为多个子域
名字空间的分布
- 必须将域名空间所包含的信息存储起来
- 名字服务器的层次结构
- 整个空间划分为多个基于第一级的域
- 区域
- 一个服务器负责或者授权的范围
- 完整的域名层次结构被分在多个服务器上——即一个节点由多个服务器构成
- 域或者区域都是“域名集合”,理解域和区域的区别关键在于:
- 域是层次结构中的概念,指某个完整的子树“域名集合”
- 区域是一个电脑负责管理的“域名集合“,不一定是一颗子树
- 根服务器——区域由整棵树组成的服务器
- 主服务器和辅助服务器
- 主服务器——存储了授权区域有关文件的服务器,负责创建、维护和更新区域文件,并将区域文件存储在本地磁盘中
- 辅助服务器——负责从另一个服务器 (主服务器或者辅助服务器) 传输一个区域的全部信息,并将文件存储在它的本地磁盘中
- 主服务器能够从磁盘文件中装载所有信息,辅助服务器从主服务器中装载信息。当辅助服务器从主服务器中下载信息时,这称为区域的传递。
因特网中的DNS
- 因特网中,域名空间 (树) 被划分为三个部分:通用域、国家域和反向域
- 通用域——根据主机用途、组织机构类型来命名
- 国家域——使用两个字母的国家缩身(例如us代表美国),第二级标号可以是组织机构
- 反向域——用于将地址映射为名字
2.1.2 方法过程原理
DNS解析
- 将名字映射为地址或者将地址映射为名字的过程,称为名字-地址解析。
- 解析程序
- DNS是一个客户机/服务器应用程序
- 主机调用一个称为解析程序的DNS客户程序将地址映射为名字或者将名字映射为地址
- 当解析程序接收到映射后,它解释并传递给发出请求的进程
- 名字到地址的映射
- 解析程序将域名提交给服务器,请求给出对应的地址
- 地址到名字的映射
- 客户机向服务器发送IP地址,请求映射为域名
- 递归解析
- 服务器把请求发送给另一个服务器 (通常是父服务器),并等待响应
- 迭代解析
- 客户端负责向第二台服务器重复发送请求
- 高速缓存
- 当服务器接收到查询一个不属于自己域的名字时,它需要搜索自己的数据库以查找一台服务器的IP地址
- TTL生存时间
DNS报文
- 查询报文——头部和查询记录
- 响应报文——头部、查询记录、响应记录、授权记录和附加记录
- 头部
- 查询和响应报文的头部格式相同
- 12个字节
- 标识——匹配对查询的响应
- 标记——子字段的集合,定义了报文的类型、应答的类型、期望的解析类型(递归或迭代)等
- 询问记录数——查询报文中询问部分请求记录的数量
- 应答记录数——响应报文中应答部分应答记录的数量
- 授权记录数——响应报文中授权部分所含授权记录的数量
- 附加记录数——响应报文中附加部分所含附加记录的数量
- 查询部分——由一条或者多条询问记录构成。查询和响应报文都含有这一部分
- 应答报文——包括从服务器到客户端 (解析器) 的应答
- 授权部分——给出了用于查询的一台或者多台授权服务器的信息 (域名)
- 附加消息部分——给出了有助于解析程序的附加信息。例如,服务器可以在授权部分为解析程序提供授权服务器的域名,并且把同一授权服务器的IP地址包含在附加信息部分中
2.1.7 记录的类型
- 询问记录——可户机从服务器获取信息
- 资源记录——每个域名与一个资源记录相关联,服务器数据库包含了所有的资源记录,可以返回资源记录给客户机
2.1.8 注册机构
- 新的域名通过注册机构加入到DNS中
2.1.9 动态域名系统DDNS
- DNS主文件动态更新,由DHCP发送信息,
- 主动通知方式 & 被动通知方式
2.1.10 封装
- DNS可以使用UDP或者TCP协议
- 服务器熟知端口为53
- 响应报文小于512B,使用UDP;反之使用TCP
2.2 ch26远程登录、电子邮件与文件传输
2.2.1 远程登录
- TELNET是一个通用的客户/服务器应用程序
- 分时环境——用户计算机通过一个终端产生交互
- 登录
- 用户标识符
- 本地登录
- 终端驱动程序将字符传递给操作系统,操作系统解释字符的组合,并调用所需的应用程序或实用程序
- 远程登录
- 本地动作:
- 操作系统接受字符,发送到TELNET客户机
- 这些字符转换成称为网络虚拟终端(NVT)字符的通用字符集
- 传送给本地TCP/IP协议堆栈
- 通过因特网传递给远程机器的TCP/IP堆栈
- 远程动作:
- 字符传递给OS
- OS传送给TELNET服务器
- TELNET服务器将字符转换成远程计算机可以理解的字符
- 使用伪终端驱动程序接收上面的字符
- 将这些字符传送给适当的应用程序
- 本地动作:
- 网络虚拟终端
- 用于将计算机字符与NVT形式之间地转换
- NVT字符集
- 数据字符
- 控制字符
- 嵌入
- 使用TCP连接,服务器端口23
- 将控制字符嵌入到数据流中
- 用控制解释(IAC)将数据与控制字符区别开来
- eg.
- 退格字符被转换成两个远程字符 (IAC EC), 它嵌人在数据中发送到远程服务器。
- 选项
- 选项协商
- 子选项协商
- 选项协商
- 操作方式
- 默认方式——没有通过选项协商调用其他方式,单个字符编辑,客户机回显
- 字符方式——服务器回显
- 行方式——整行编辑,整行发送
2.2.2 电子邮件
1 架构
- 第一种情况——发送方与接收方是在同一个系统内的用户
* 两个UA(user agent)
- 第二种情况——发送方和接收方是不同系统上两个用户
* 两个UA和一对MTA(massage transfer agent)
- 第三种情况——同情况二,发送方通过LAN或WAN连接邮件服务器
* 需要两对MTA(客户和服务器)
- 第四种情况——发送方和接收方通过局域网与广域网连接到邮件服务器
* 需要两个UA、两对MTA (客户机与服务器)和一对MAA(客户 与服务器)
2 用户代理UA
- 用户代理提供的服务
* 组成报文——用户代理帮助用户组成发送出去的电子邮件
* 读取报文
* 回答报文
* 转发报文
* 处理邮箱——收件箱和发件箱
- 用户代理类型
* 命令驱动型——从键盘接受单个字符的命令以执行某项任务(mail,pine,elm)
* GUI型——使用键盘和鼠标与软件进行交互(Outlook,Netscape,Eudora)
- 发送邮件
* 
* 信封——发信人与收件人的地址
* 报文
+ 头部——定义发信人、收件人、报文的主题及其他信息
+ 主体——包含信的内容
- 接收邮件——用户(或定时器)触发用户代理检查邮箱。
- 地址——邮件处理系统的寻址系统
+ 本地部分——用户邮箱
+ 域名——邮件服务器或交换器,域名来自DNS数据库
- 邮件列表电子邮件允许用一个名字,即别名 (alias), 来表示多个不同的电子邮件地址,这称为邮件列表。
- MIMEMultipurpose Internet Mail Extension)多用途因特网邮件扩展——一个辅助协议, 它允许非ASCII数据能够通过电子邮件传送。
* MIME头部
+ 1. MIME版本;
+ 2.内容一类型;——报文主体的数据类型
+ 3.内容-传送-编码;——定义将报文编码为一些0和一些1的方法
+ 4. 内容-标识符:——在多报文环境中唯一地标识整个报文
+ 5.内容一描述。——定义主体是否为图像、音频或视频
3 报文传输代理:SMTP——定义MTA客户机和服务器的形式化协议称为简单邮件传输协议(Simple Mail Transfer Protocol)
- 
- 命令和响应:命令从客户发送给服务器,包括一个关键词,后跟着0个或多个变量;响应是服务器发送给客户。响应是一个3位数字码,后面可以跟着附加的文本信息。
- 邮件传输阶段:连接建立、邮件传输和连接终止。
4 报文访问代理:POP和IMAP——客户机必须从服务器拉出报文
- 
- POP3——用户需要从邮件服务器的邮箱中下载邮件时,客户端发起邮件访问操作。有删除模式和保存模式。
- IMAP4——域与POP3一样,功能更强大,允许用户在服务器上组织邮件
5 基于Web的邮件
使用HTTP协议,见2.3 ch27万维网和HTTP协议
2.2.3 文件传输
1 FTP文件传输协议、
- 使用TCP服务。它需要两个TCP连接。熟知端口21用于控制连接,而熟知端口20用于数据连接。
- 在主机之间建立两个连接。一个连接用于数据传输,另一个用于控制信息传输(命令和响应)。
- 控制连接是在控制进程之间进行的,而数据连接是在数据传输进程之间进行的。
- 通过控制连接的通信:
- 通过命令和响应来完成,一次发送一条命令(或响应),每一条命令或响应都是一个短行
- 通过数据连接的通信:
- 读取文件:从服务器将一个文件复制到客户。在RETR命令监管下完成的。
- 存储文件:从客户将一个文件复制到服务器。在STOP命令监管下完成的;
- 从服务器向客户发送目录或文件名列表。这是在LIST命令监管下完成的。应注意是FTP将目录或文件名列表当作一个文件,它在数据连接上发送。
- 客户必须定义要传送的文件类型、数据结构和传输方式。
2 匿名FTP
- 可用
anonymous
这个字作为用户名和使用guest
这个字作为口令
2.3 ch27万维网和HTTP协议
2.3.1 体系结构
1 客户(浏览器)
- 解释和显示Web文档
- 每一种浏览器(browser)通常由三部分构成:一个控制程序、客户协议和一些解释程序。
2 服务器
- Web页面存储在服务器中。
- 当客户机请求到达时,相应的文档就发送给客户
3 URL统一资源定位符
- URL格式包括4个部分:协议、主机、端口和路径。
4 Cookies
- Cookies的创建和存储
- 服务器从客户端接收到请求后,它将有关客户端的信息存储在文件或字符串中。这些信息可能包含客户端的域名、cookie的内容(服务器收集到的关于客户端的信息,如主机名、注册号等)、时间戳、以及与实现有关的其他信息
- 服务器在响应中包含了它发送给客户机的cookie;
- 浏览器在cookies目录中存储cookie, 并根据域服务器名进行分类。
- Cookies的使用
- 客户向服务器发送请求时,浏览器在cookie目录中查询是否有从那个服务器发送过来的cookie。如果有,则在请求中包含这个cookie
- 服务器接收到这个请求后,它就知道了这是一个老客户
- cookie的内容从来不让浏览器读取或者透露给用户,cookie只由服务器创建并收回
2.3.2 WEB文档
1 静态文档
- 静态文档 (static document)是固定内容的文档,它由服务器创建和并存储在服务器中。
- 客户端只能获取文档的一份副本。
- HTML用于创建Web页面的语言
2 动态文档
- 动态文档(dynamic document)是在有浏览器请求该文档时,才由Web服务器创建的。
- 公共网关接口(CGI):创建和处理动态文档的一种技术。定义了如何编写动态文档,如何将数据传递给应用程序,以及如何使用输出结果
- 输入:从浏览器到服务器的输入是通过使用一个表单(form)发送的
- 输出:输出的结果通常是普通文本或者是带有HTML结构的文本;输出结果也可以是其他形式的对象。
- 动态文档的脚本技术:PHP, JSP, ASP
3 活动文档
- 需要程序或者脚本在客户端运行称为活动文档(activedocument)
- Java小应用程序:程序员可以使用Java编写活动文档(一个小应用程序),并在浏览器中运行。
- JavaScript:如果文档中的活动部分很少,那么可以用脚本语言编写,然后在客户端运行并同时解释。
2.3.3 HTTP
1 HTTP事务
- 使用TCP服务,但是是一种无状态协议:客户端通过发送请求报文初始化这个事务,服务器通过发送响应进行回复
- 报文:
- 请求行和状态行:
- 头部:
- 主体:包含要发送或接收到的文档
2 持续与非持续连接
- 非持续连接:每一次请求/响应都要建立TCP连接
- 持续连接:服务器在发送响应以后会保持连接处于开启状态,以等待更多的请求。
- 如果客户请求关闭或者超时时,服务器会关闭连接。
- 发送方通常在每次响应时会发送数据的长度。
3 代理服务器
- 代理服务器是一台计算机,能够保存最近请求的响应的副本。
- 使用代理服务器,客户端必须配置为访问代理服务器而不是目标服务器。
2.4 ch28网络管理
简单了解,感兴趣自己深入学校。
2.4.1 网络管理系统
2.4.2 简单网络管理协议SNMP
- 简单网络管理协议 (SNMP) 是使用TCP/IP协议族对互联网上的设备进行管理的一个框架,它提供一组基本的操作来监控和维护互联网中的设备。
- SNMP使用管理器和代理的概念。这就是说,管理器,通常是一台主机,控制和监视一组代理,代理通常是路由器。
- SNMP定义管理器与代理之间交换分组的格式,读取和改变SNMP分组中对象(变量)的状态(值)
- SMI定义对象命名、数据类型 (包括长度和定义域)以及编妈方法和取值的一般规则。
- MIB创建一个被管理的实体中所有对象命名和类型,以及它们之间相互关系。
2.5 ch29多媒体
具体应用场景了,和计算机网络概念差别有点大了,有兴趣自学。
- 1 数字化音频和视频
- 2 音频与视频压缩
- 3 流式存储音频/视频
- 4 流式实时音频/视频
- 5 实时交互式音频/sp
- 6 实时传输协议RTP
- 7 实时传输控制协议RTCP
- 8 IP 语音