-
2.1应用层协议原理
-
1.网络应用程序体系结构
- 概念:由应用程序研发者设计,规定如何在端系统上组织该应用程序
- 两种应用程序体系结构:
-
客户机/服务器体系结构
Client/Server
C/S体系结构
- 服务器:
- 总是打开的
- 有固定、周知的IP地址
- 特点:
- 一台总是打开的主机服务别的主机
- 客户机间不相互通信
- 服务器:
-
P2P体系结构
对等方peer:相互通信的两个P2P结构体系的主机对
- 特点
- 对于数据中心几乎无依赖
- 主机间相互通信,相互服务
- 自扩展性
- 缺点
- 安全性低
- 性能弱
- 可靠性差
举例:Skype、文件分发
- 特点
-
-
2.进程通信
- 概念:不同端系统间的进程交换报文/message通信
- 客户与服务器进程
- 客户进程
- 概念:发起通信的进程
- P2P文件共享时,下载的为客户进程
- 服务器进程
- 概念:等待联系的进程
- P2P文件共享时,上载的为服务器进程
- 相互通信的两进程都会被标识为客户或服务器
- 客户进程
- 进程与网络间的接口
- 套接字Socket
- 是一个软件编程接口
- 应用程序与网络间的应用程序编程接口
- 作用:进程通过Socket在网络上收发信息
- 最基本的函数:发送函数、接收函数
- 应用程序开发者对传输层的控制权
- 选择传输层协议
- 设定传输层参数
- 进程收发地址包括
- IP地址
- 端口号
- 套接字Socket
-
3.可供应用程序使用的传输服务
- 选择传输层协议需要考虑的方面(四大方面)
- 可靠性、吞吐量、时效性、安全性
- 可靠数据传输
- 概念:数据正确、完整地交付
- 能容忍数据丢失的应用:实时音频、视频
- 吞吐量
- 概念:交付比特的速率
- 弹性应用
- 概念:根据当时的可用带宽吞吐量可改变的应用
- 举例:电子邮件、文件传输、Web传送
- 带宽敏感应用
- 概念:对吞吐量有要求的应用
- 举例:网络电话
- 弹性应用与带宽敏感应用互为“反义词”
- 选择传输层协议需要考虑的方面(四大方面)
-
4.因特网提供的运输服务
-
因特网提供TCP和UDP两种运输服务
-
TCP服务
特点:全双工
- 面向连接
- 传输数据前,要交换控制信息
- 传输数据后,要拆除连接
- 可靠数据传输
- 无差错
- 按序交付
- 注:可靠数据传输这个词本身含义里没有按序交付
- 面向连接
-
UDP服务
- 无连接
- 不可靠
-
UDP和TCP都不提供不提供吞吐量和时效性保证的服务
-
-
5.应用层协议
作用:定义了不同端系统上的应用程序如何相互传递消息
- 应用层协议定义的内容
- 报文类型,如请求报文、响应报文
- 各报文类型的语法
- 字段的语义,即字段中信息的含义
- 发送报文时间和方式,及其响应规则
- 应用层协议分公有和私有两种
- 应用层协议定义的内容
-
-
2.2Web与HTTP协议
-
1.Web及HTTP概况
-
Web
- World Wide Web(万维网)也称Web
- 是第一个引起公众注意的因特网应用
- Web的应用层协议是http
-
Web页面
-
Web Page也叫文档
-
由对象组成
-
Web页面的通常组成
一个HTML基本文件/base HTML file
几个引用对象
-
-
对象object
≈文件
可由一个URL地址寻址
URL地址由两部分组成
- 存放对象的服务器主机名
- 对象的路径名
- 例如
- html文件
- jpeg图形
- java小程序
- 视频片段
-
HTML
HyperText Markup Language
超文本标记语言
定义的内容:网页的表现形式,如字体,排版
-
HTTP超文本传输协议
HyperText Transfer Protocol
是Web的核心
- 使用TCP协议
- 是无状态协议
- 服务器不保存用户任何信息
- 定义的内容
- 浏览器和Web服务器间的消息格式
- 客户机和服务器进行消息交换的方式
-
-
2.非持久连接和持久连接
- 非持久连接
- 概念:使用TCP连接请求对象后连接关闭
- 实例:HTTP1.0
- 缺点
- 给服务器增加负担
- 浪费时间
- 持久连接
- 概念:使用TCP连接请求多个对象
- 实例:HTTP1.1
- 浏览器常使用并行TCP来加快Web页面获取
- RTT往返时间
- 定义:短分组从客户到服务器再返回客户的时间
- 非持久连接
-
3.HTTP 消息格式
- HTTP报文分类
- 请求报文
- 响应报文
- 请求报文
-
结构
- 请求行(第一行)
- 方法字段
- URL字段:请求对象URL
- HTTP版本字段
- 首部行(除第一行外的其他字段)
- 实体体entity body(可选)
- 请求行(第一行)
-
方法字段类型
- GET
- 绝大多数请求报文使用
- 作用:浏览器请求对象
- 该类型实体体为空
- POST
- 作用:提交表单
- 提交表单时表单会放在实体体部分
- HEAD
- 作用:不返回请求对象,用于故障跟踪
- PUT
- 作用:向Web服务器上传对象
- DELETE
- 作用:删除Web服务器上的对象
- GET
-
首部行类型
Host: www.someschool.edu.cn:目标所在主机
Connection: Keep Alive:是否使用持久连接
User-agent:浏览器类型
Accept-language: fr:语言版本
-
实体体entity body
- 用来放提交的表单
- 可选部分
-
- 响应报文
- 结构:
- 状态行(第一行)
- 版本号
- 状态码
- 状态信息
- 首部行
- 实体体(可选)
- 状态行(第一行)
- 状态码含义
- 200 OK:请求成功
- 301 Moved Permanetly:请求对象已被永久转移
- 400 Bad Request:服务器不理解请求
- 404 Not Found:被请求文档不在服务器上
- 505 HTTP Version Not Supported:服务器不支持此版本
- 首部行类型
- Date:发送响应报文的时间
- Last-Modified:对象创建或最后的修改日期时间
- Server:表示服务器类型
- Content-Length:发送对象的字节数
- Content-Type:是HTML文件或别的什么类型的文件
- 实体体:是主要部分,用来放请求的对象
- 结构:
- HTTP报文分类
-
4.用户与服务器的交互:cookie
- 目的:使Web站点能跟踪用户
- cookie技术组成部分
- HTTP响应消息中:有set-cookie首部行
- HTTP请求消息中:有一个cookie首部行
- 用户端系统中:有一个cookie文件
- Web站点中:有一个后端数据库
-
5.Web 缓存
=Web cache
也叫代理服务器proxy serer
工作方式 :配置用户浏览器,使得用户所有HTTP请求先指向Web缓存
-
请求过程
- 浏览器创建一个与Web缓存器的TCP连接
- 浏览器向Web缓存器发送一个HTTP请求
- Web缓存器检查本地是否有该对象的副本
- 如果有,则向客户浏览器发送HTTP响应报文以返回对象
- 如果没有,则Web缓存器建立与原请求报文请求的服务器(初始服务器)的TCP连接
- Web缓存器向初始服务器发送HTTP请求
- 初始服务器回应Web缓存器的请求
- Web缓存器收到对象时,在本地存储一份副本
- Web缓存器通过先前建立的TCP连接,向客户浏览器发送该副本
-
优点
- 减少客户请求响应时间
- 减少因特网上Web通信量,从而改善所有应用的性能
-
条件GET方法
=Conditional Get 方法
- 含义:使缓存服务器保证它的对象是最新的
- 条件GET方法的要素
- 请求消息使用GET方法
- 请求消息中包含一个If-modified-since首部行
实现方法:Web缓存器通过告诉服务器如果在指定日期后修改对象就需要重新发送
-
Etag
- 服务器唯一标识符
- 浏览器可根据Etag缓存数据
-
-
-
2.3电子邮件
- 1.电子邮件系统
-
三个组成部分
- 用户代理user agent
- 邮件服务器mail server
- 简单邮件传输协议SMTP
-
用户代理
- 作用:允许用户阅读、回复、转发、保存和撰写邮件
- Web浏览器也是一种用户代理,因为可以用浏览器处理邮件
-
邮件服务器
- 组成电子邮件体系的核心
- 每个接收方在其中的某个邮件服务器上都有一个邮箱
-
邮件发送过程
- 发送方用户代理把邮件发送给发送方的邮件服务器
- 再传输给接收方的邮件服务器
- 然后被分发到接收方的邮箱中
- 接收方在邮箱中访问邮件时,需鉴别身份
若接收方服务器出错,则每隔3分钟左右进行一次尝试。若几天后不能成功,则删除该邮件并以邮件的形式通知对方
-
SMTP
- 是电子邮件应用的核心
- 同时运行在发送方和接收方邮件服务器
- 每台邮件服务器都运行SMTP客户端和SMTP服务端
- 使用TCP持久连接,可用一个TCP连接发送多个邮件
- 一般不使用中间邮件服务器发送邮件
- 缺点:限制所有邮件只能采用ASCII码表示和传输
- 若要传递多媒体数据,则需进行两次转码
- 而使用HTTP不需要进行转码
-
交互报文含义
- HELO:HELLO的缩写
- CR:回车Carriage Return
- LF:换行Line Feed
- AUTH LOGIN:身份认证登录
- QUIT:由客户发起,服务器返回:closing connetion
- RCPT TO:收件人
-
交互报文要点
- 每个邮件发送都用一个新的MAIL FROM开始
- 所有邮件结束后才发送QUIT
-
- 2.与HTTP 的对比
- 共同点
- 都用于主机间传送文件
- 文件传输都使用持久连接
- 不同点
- 收发对象不同:
- HTTP从Web服务器向浏览器传送文件(对象)
- SMTP在邮件服务器间传送文件(邮件)
- 连接发起方不同:
- HTTP是一个拉协议,用户用它拉取信息。TCP连接由接收信息方发起。
- SMTP是一个推协议,即把邮件推向服务器。TCP连接由发送信息方发起。
- 编码格式不同:
- HTTP无格式限制
- 而SMTP只能用7位ASCII码。
- 对于同时包含文本和图形的文件,封装方式不同:
- HTTP把每个对象放在单独的响应消息中
- SMTP把所有对象放在一个消息中。
- 控制方式不同:
- HTTP使用带内控制
- SMTP使用带外控制
- 收发对象不同:
- 共同点
- 3.邮件消息格式和MIME
- 邮件报文格式
- 首部行:
- From
- To
- Subject(可选)
- 报文内容(ASCII表示)
- 首部行:
- MIME
- 多用途因特网邮件扩展
- Multipurpose Internet Mail Extension
- 支持多媒体的两个首部
- Content-Type
- 运行接收用户进行一些操作,如图像解压缩
- Content-transfer-Encoding
- 指出编码类型,提示用户将内容还原为非ASCII码形式
- Content-Type
- 邮件报文格式
-
- 邮件访问协议
- 邮件访问协议
- POP3:Post Office Protocol Version3
- IMAP:Internet Mail Access Protocol
- HTTP
- POP3
- 是个简单有限的协议
- 三个阶段:认证、事务处理、更新
- Step 1.认证/特许/authorization
- 用户代理发送用户名和口令以鉴别用户
- 此期间用明文方式
- Step 2.事务处理
- 用户代理收取邮件
- 此时用户可以对邮件进行操作,如删除、获取相关信息
- Step 3.更新
- 客户机发出quit命令后结束POP3会话
- 邮件服务器删除应该删除的邮件
- Step 1.认证/特许/authorization
- 命令
- 认证阶段
- user
- pass
- 事务处理阶段
- +OK:命令正常
- -ERR:命令错误
- 认证阶段
- 两种用户配置方式
- 下载并删除
- 用户代理仅发出list、retr、dele、quit命令
- 当用户有多设备时会产生不便
- 下载并保留
- 下载并删除
- IMAP
- 比POP3更复杂
- 用户可以自由移动创建文件夹
- 每个邮件在一个文件夹下
- 维护用户状态信息
- 用户代理可读取命令
- 如用户代理只读取首部或MIME报文一部分
- 好处:节省流量
- HTTP:基于Web的邮件
- 用浏览器接收邮件
- 1.电子邮件系统
-
2.4DNS:因特网的目录服务
主机名:一种主机的标识方式
-
1.DNS 提供的服务
-
DNS的概念
- 一个由分层的DNS服务器实现的分布式数据库(实体)
- 一个允许主机查询分布式数据库的应用层协议(协议)
故DNS既是一个应用层协议,又是一个实体。
-
运行在UDP上
-
使用53号端口
-
是应用层协议
-
运行BIND(Berkeley Internet Name Domain)软件的UNIX机器
-
主要作用:提供主机名解析为IP地址
-
其他服务
- 主机别名
- 比主机规范名更好记
- 邮件服务器别名
- 比规范名更好记
- 负载均衡/负载分配
- 繁忙站点多对应多台服务器,多个IP地址。DNS将请求合理分配,让每台服务器负载均衡
- 主机别名
-
-
2.工作机理概述
- DNS采用分布式设计的原因
- 单点故障
- 一个集中式服务器的崩溃难以承受
- 通信负担
- 减少延迟
- 利于维护
- 集中式服务器数据量庞大,需要频繁更新数据,
- 单点故障
- 分布式、层次性数据库
- 层次体系中DNS服务器的分类
- 根DNS服务器
- 有13个
- 顶级域DNS服务器
- ==Top-Level Domain服务器
- ==TLD服务器
- 如.com .org .gov,和所有国家如.cn
- 权威DNS服务器
- 根DNS服务器
- 本地DNS服务器
- 不属于DNS服务器层次结构
- DNS解析过程
- 客户主机向本地DNS服务器发起查询(递归查询)
- 本地DNS服务器与根服务器之一联系,取得顶级域名IP地址(迭代查询)
- 本地DNS服务器与顶级域服务器之一联系,取得权威服务器IP地址(迭代查询)
- 本地DNS服务器与权威服务器取得联系,返回需要的IP地址(迭代查询)
- 本地DNS服务器返回结果给客户主机
- 递归查询与迭代查询
-
递归查询
客户端只发一次请求,要求对方给出最终结果。
-
迭代查询
客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表。
-
- 层次体系中DNS服务器的分类
- DNS采用分布式设计的原因
-
3.DNS 缓存
Step 1:当DNS服务器接收一个DNS回答时,将其存储在本地
Step 2:另一次对相同主机名查询时,该服务器能直接提供IP地址
Step 3:DNS服务器会在一段时间后丢弃缓存信息
注:DNS缓存不仅仅在于本地DNS服务器,也可以存在于DNS层次体系中的服务器
-
4.DNS 记录和报文
-
资源记录RR的概念
- Resource Record
- DNS服务器中提供主机名到IP地址的映射
- 每个DNS回答报文包含一条或多条资源记录
- 以文本形式保存在DNS服务器配置文件中
-
资源记录的结构
- 资源记录是一个四元组
- Name
- Value
- Type
- TTL
- TTL是记录的生存时间,它决定了它被删除的时间
- Name和Value的值取决于Type
- 若Type=A
- 助记:标准地址映射
- A:Address
- Name是主机名
- Value是主机名对应的IP地址
- 它提供了标准的主机名到IP地址的映射
- 若Type=NS
- 助记:提供查询链
- NS:Nameserver
- Name是域,这个IP地址在这个域中
- Value是权威DNS主机名,这个DNS服务器知道如何获得IP地址
- 若Type=CNAME
- 助记:主机别名映射
- CNAME Record:别名记录
- Name是主机的别名
- Value是别名为Name的规范主机名
- 如果Type=MX
- 助记:邮件服务器别名映射
- MX:Mail eXchange-record
- Name是邮件服务器的别名
- Value是别名为Name的邮件服务器的主机名
- 若Type=A
- 资源记录是一个四元组
-
DNS报文
- DNS报文的两种类型
- DNS查询报文
- DNS回答报文
- DNS的两种报文格式相同
- DNS报文结构
- 首部区域
- 问题区域
- 回答区域
- 权威区域
- 附加区域
- 首部区域
- 长度:12字节
- 分为6个部分,每个部分占2字节
- 首部区域结构
- 标识符
- 标志
- 问题数
- 回答RR数
- 权威RR数
- 附加RR数
- 标识符:请求和回复使用相同标识符,以便匹配请求与查询
- 标志
- 查询/回答标志位
- “权威的”标志位:是否为权威DNS服务器
- 希望递归标志位
- 递归可用标志位
- 后面四个字段(问题数、回答RR数、权威RR数、附加RR数)用于指出首部后各数据区域出现的数量
- 问题区域
- 包含正在进行的查询信息
- 包括的区域
- 名字字段:正在被查询的主机的名字
- 类型字段:指出类型,如类型A,类型CNAME
- 回答区域
- 包含对最初请求的信息
- 权威区域
- 包含其他权威服务器的记录
- 附加区域
- 包含其他信息
- DNS报文的两种类型
-
在DNS数据库中插入记录
注册登记机构(registrar):验证域名唯一性的商业实体
- 需要提供基本/主DNS权威服务器的名字、辅助权威DNS服务器的名字、IP地址
- 插入一个类型NS和一个类型A的记录到顶级域服务器中
- 确保NS记录从辅助DNS服务器指向主DNS服务器,主DNS服务器指向IP地址
-
-
-
2.5 P2P文件分发
- C/S体系的缺点:服务器负担大,消耗带宽大
-
- P2P 文件分发的可扩展
- (理解内容)
-
- BitTorrent
- 是一种用于文件分发的P2P协议
- 名词解释
- 洪流torrent
- 参与某个文件分发的所有对等方的集合
- 文件块chunk
- 用于文件分发的等长度单位文件块
- 典型长度:256KB
- 追踪器tracker
- 每个洪流torrent中都有一个
- 作用:用于跟踪torrent中的所有peer对等方
- peer加入torrent时需向tracker注册
- peer需周期性通知tracker自己在torrent中
- 洪流torrent
- 算法
- 最稀缺优先/最稀罕优先/rarest first算法
- 首先请求最稀缺的块,其中最稀缺的块指它邻居副本数量最少的块
- 决定向谁传数据的算法:对换算法
- 优先权由给自己提供下载速率的高低决定,多劳多得
- 需持续测量每个邻居数据流入的速率
- 给自己传入数据最高的四个被称为“疏通”
- 这种机制被称为tit-for-tat一报还一报,多劳多得
- 最稀缺优先/最稀罕优先/rarest first算法
- 过程特点
- 对等方由无块变为有块
- 一边为自己下载块,一边为别人上传块
- 任何对等方可以随时加入,随时离开
- 周期性询问邻近对等方所拥有的块
- 获得整个文件后有两种选择
- (自私地)离开
- (无私地)继续为别人上传块
- 过程
-
新的peer加入该torrent时,追踪器随机把部分peer的IP地址发给新peer
-
新peer试图与这些peers中的所有建立TCP连接
与新peer成功建立连接的peers被称为“邻近对等方”
-
传输中旧的对等方可能离开,与新的对等方的TCP连接可能建立
-
- 3.分布式散列表DHT,Distributied Hash Table
- 是一种简单数据库
- 采用P2P体系
- 数据记录分布多个对等方上
-
2.6视频流和内容分发网
-
1.因特网视频
- 特点
- 高比特率
- 最重要的度量:平均端到端吞吐量
- 特点
-
2.HTTP流和DASH
-
HTTP流的特点
视频是储存在HTTP服务器上的普通文件
每个视频文件有一个特定URL
-
HTTP流视频的播放过程
- 客户向服务器创建一个TCP连接,并发送该URL的GET请求
- 服务器端:用HTTP响应报文的方式向客户发送视频文件
- 客户端:字节被收集在缓存中,当字节数量达到阈值,则播放
- 播放的同时,缓存接下来的字节
-
HTTP流的缺陷
- 不同用户需要不同的码率,而HTTP流只有一种码率
-
DASH
- Dynamic Adaptive Streaming over HTTP
- 经HTTP的动态适应性流
- 概述:视频编码为码率不同的几个版本,用户根据带宽动态选择数据块
- 告示文件
- 用来告知用户码率不同的各版本的URL及其比特率
- 用户每次通过HTTP GET请求报文请求数据块,一次选择一块
- 通过下载速率决定算法决定下次请求的块
-
-
3.内容分发网
Content Distribution Network, CDN
作用:合理分配服务用户的具体服务器
- 采用单一数据中心的三个问题
- 时延大
- 浪费带宽:可能会经过相同链路发送多次
- 单点故障
- 分类
- 专用CDN,private CDN
- 第三方CDN,third-party CDN
- 两种服务器安置原则
- 深入
- 原则:靠近用户,部署到接入网中
- 优点:改善时延和吞吐量
- 缺点:高度分布式设计,维护管理困难
- 邀请做客
- 原则:少量位置部署大规模集群,通常在IXP处
- 优点:高度集中式设计,维护管理容易
- 缺点:恶化时延和吞吐量
- 深入
- CDN特点
- 并不是每个集群都有所有视频副本
- 类似于Web cacheing
- 当用户首次请求集群中没有的副本时,则该集群会从别的集群传输副本。
- 集群存储满时会删除不常用的视频
- CDN操作
- 重定向请求:选择最合理的服务器集群回应客户的请求
- 过程
- 用户发出对于视频网站的DNS请求
- 本地DNS服务器接收到该请求,并向该视频网站的DNS权威服务器发出请求
- 该视频网站的DNS权威服务器向本地DNS服务器返回一个第三方CDN公司的主机名
- 本地DNS服务器向第三方CDN公司的主机所在的域的权威DNS服务器发出DNS请求
- 此权威服务器通过本地服务器返回给用户第三方CDN服务器的IP地址
- 客户创建一条与第三方CDN服务器的TCP连接
- 集群选择策略
- 概念:动态地将客户定向到CDN中某个集群的策略
- 举例:地理上最为邻近geographically closest策略
- 为了测量距离,必须进行周期性实时测量
- 采用单一数据中心的三个问题
-
-
2.7 socket 编程
-
2.8 FTP协议
- 与HTTP的共同点
- FTP:File Transfer Protocol
- HTTP:Hypertext Transfer Protocol
- 同:都是文本传输协议
- 数据传送方式
- 使用两个并行TCP连接传送文件
- 控制连接
- 传输控制信息
- 控制信息是“带外传送”的
- 数据连接
- 传输文件
- 端口号
- 服务器端控制连接:21
- 服务器端数据连接:20
- 客户端控制连接:系统自动分配
- 客户端数据连接:系统自动分配
- 特点
- 控制连接在整个用户会话期间一直存在
- 每次文件传送都需建立新的数据连接
- FTP服务器在会话期间保留用户状态信息
- 命令和回答
-
按ASCII码格式在控制连接上传送
-
以下命令一一对应
用户输入的命令
FTP发出的命令
服务器的回答
-
用户输入的命令
USER username:传送用户名
PASS password:传送用户密码
LIST:获取文件列表
RETR filename:下载文件
STOR filename:上传文件 -
服务器的回答
- 331 Username OK, Password required
- 125 Data connection already open; transfer starting
- 425 Can’t open data connection
- 452 Error writing filev
-
- 与HTTP的共同点
【计网】《计算机网络:自顶向下(第7版)》知识点汇总-第二章应用层-markdown版
最新推荐文章于 2022-12-23 18:43:20 发布