目录
一 网络应用体系结构
1.1 客户端/服务器结构
客服端: 服务请求方, 不总是处于开机状态, 主动请求服务,客户端进程间不能直接通信。
服务器: 服务提供方, 总是处于运行状态, 等待客户端请求, 服务器进程有固定端口号, 运行服务器的主机有固定的IP地址。
C/S模式图:
1.2 对等体结构:
没有固定的服务请求者和服务提供者, 分布在网络中的应用进程是对等的, 称为对等方, 每个对等方即是服务请求者, 又是服务提供者。最突出特性是它的可扩展性, 每增加一个对等方, 不仅增加服务请求者, 也增加了服务提供者。
对等体图:
备注: 实践的网络应用组织是这两者的混合体
1.3 应用层协议
不同的网络应用其应用进程需要不同的通信规则,定义运行在不同端系统上应用进程间为实现特定应用而互相通信的规则。
定义:
- 交换的报文类型
- 各种报文类型的语法
- 字段语义
- 进程何时、如何发送报文及对报文进行响应的规则
选择传输层协议:
TCP协议: 提供面向连接可靠的字节流服务, 并实现了流量控制和拥塞控制机制,
UDP协议: 提供无连接, 不可靠报文传送服务, 没有流量控制与拥塞控制的轻量级传输协议。
应 用 | 应用层协议 | 传输层协议 |
电子邮件 | SMTP | TCP |
远程终端访问 | TELNET | TCP |
万维网 | HTTP | TCP |
文件传送 | FTP | TCP |
IP 电话 | 专用协议 | 通常用UDP |
流式多媒体通信 | 专用协议 | UDP或TCP |
二 域名系统 DNS (Domain Name System)
2.1 域名系统概述:
域名系统并不是直接和用户打交道的网络应用, 而是为其他各种网络应用提供名字服务, 使网络应用在应用层使用计算机的名字交互, 而不需要直接使用IP地址
域名系统: 1983年因特网采用层次结构的命名树作为主机名字
域名服务器: 域名到 IP 地址的转换由若干域名服务器完成。
域名解析: 域名到 IP 地址的转换过程, 以UDP数据报方式发给本地域名服务器。
其他重要服务:
- 主机别名: 主机有多个简单别名时, 可以使用DNS 获得别名的规范主机名及IP 地址
- 负载分配: 允许同一个主机名对应一个IP 地址集合; 热门网站可以多个服务器, 共享同一个域名
- 反向域名解析: IP 地址转化域名
2.2 域名结构
因特网采用层次树状结构的命名法, 任何一个连接因特网上的主机和路由器, 都可以有一个唯一的层次结构的名字, 即域名, 域是名字空间一个可以被管理的划分, 可以划分子域。
每一级域名由数字和英文字母组成,不超过63个字符,完整的的域名不超过255字符。
如:
三级域名.二级域名.顶级域名
三类顶级域:
- 国家顶级域名: 如 cn 中国 、us 美国 、 uk 英国。
- 通用顶级域名:如 com 公司企业、 net 网络服务机构、org 非营利性组织、int 国际组织。
- 反向域: 用于反向域名解析, 将IP 反向解析为域名
名字空间图:
如图, 最下面的叶子结点就是主机域名, 一旦某个单位拥有了一个域名, 它可以自己决定是否划分子域, 并且不必将划分情况报告上级机构。
2.3 域名服务器
DNS 将整个名字空间划分为许多不相交的区, 每个区的域名信息由一个权威域名服务器负责管辖区的域名转换。
DNS划分区图:
每一个域名服务器除了维护自己辖区内所有IP 地址的映射关系外, 还必须知道上下域名服务器的信息, 但自己不能直接解析某个域名时, 就设法找其他域名服务器进行解析
四种域名服务器:
- 根域名服务器: 不直接管辖某个区的域名信息, 知道所有顶级域名服务器的域名及其IP 地址
- 顶级域名服务器: 收到DNS请求可能返回结果, 也可能是下一级权威服务器名服务器的IP地址
- 权威服务器: 负责管理某个区的域名服务器, 每一个主机的域名都必须在某个权威域名服务器处上登记。也知道其下级权威域名服务器地址。
- 本地域名服务器: 起DNS代理作用, 将查询报文转发到域名服务器登记结构中。
2.4 域名解析过程
递归查询:
主机向本地域名服务器的查询一般是递归查询, 即本地域名服务器不知道被查询域名的IP地址时, 本地域名服务器以DNS客户的身份向某个根域名服务器发出查询请求报文(替该主机查询)。
迭代查询
本地向根域名服务器发出请求后, 根域名服务器将顶级域名服务器的IP 地址告诉本地服务器,由本地服务器再向顶级服务器发出查询, 以此类推,直到向权威服务器查询到结果。
高速缓存域名服务器:
缓存最近查询过的域名。重复查询相同域名时, 不必在向根域名服务器发起请求。
由于IP 地址的绑定可能会发生变化, 缓存的域名会内置计时器(一般是48小时), 到时后将删除缓存。
增加时间值可以减少网络开销, 减少此时间值可提高域名解析的准确性。
三 万维网 WWW (World Wide Web)
3.1 概念
万维网是一个大规模、联机式的信息储存所, 是运行在因特网上的一个分布式应用。万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网。
万维网是欧洲粒子物理实验室最初于1989年提出。1993年第一个图形化界面浏览器(Browser)开发成功, 叫做Mosaic。
万维网以客户端/服务器方式工作。
超文本: 带有链接的文本,也叫超链接。
超媒体: 包含文本信息及其他多媒体对象, 如图形、声音、视频等。
超文本传送协议: HTTP
超文本标记语言: HTML
3.2 统一资源定位符 URL (Uniform Resource Locator)
URL本质上就是一种应用层地址
URL的格式:
<协议>://<主机>:<端口>/<路径>
3.3 超文本传送协议 HTTP
默认端口: 80,使用TCP传输层协议
无状态协议: HTTP是无状态服务, 即同一个客户上一次对服务器的访问不影响下一次的访问结果
非持续与持续连接:
一个万维网页面可能包含多个对象, 浏览器在解释并显示HTML文件时, 发现文件所引用的其他对象, 将又会向服务器发送请求。
1) HTTP/1.0 协议:
采用非持续连接方式, 即一次请求/响应对应一次TCP连接(三次握手)。当 RTT (网络时延)值较大时, 时间开销便大。请求多个对象时, 新建立的TCP连接都要分配缓存和变量并初始化各种状态, 使万维网服务器负担很重。
2) HTTP/1.1 协议:
使用持续连接, 即响应后仍然保持这条连接。此协议还可以使用流水方式工作, 即收到HTTP的响应报文前,就可以连续发送多个请求报文。
HTTP的报文格式:
1)请求报文
2)响应报文
HTTP请求报文的方法:
状态码:
Cookie: 对无状态的HTTP进行状态话的技术
Cookie原理图:
万维网缓存与代理服务器:
web缓存: 即万维网缓存, 可位于客户机或中间系统, 在中间系统称为代理服务器。当请求到达时,若主机此请求的缓存, 则返回缓存的响应报文。
web缓存命中率较高时,可减少访问因特网的时延, 代理服务器另一个作用是可以用来隔离内外网络。
实际上web 对象可能被缓存在从浏览器到原始服务器路径的多个地方, 服务器为每个响应的对象设定一个修改时间和有效时间, 对象到期前, 可以直接返回缓存对象, 到期之后,缓存会使用条件GET请求向原始服务器验证对象是否存在最新版, 若修改则返回新版本对象。
3.4 万维网的文档
静态文档: 用户浏览过程, 内容不会改变
动态文档: 访问万维网服务器时动态创建,浏览器不断向万维网请求新页面, 也叫服务器活动文档
活动文档: 一段程序嵌入了程序脚本的HTML文档,程序可在浏览器运行, 无需向服务器不断请求页面, 提高响应速度
B/S应用程序结构: 一种特殊的C/S结构, 即浏览器/服务器应用程序结构。
万维网搜索引擎:
基于B/S结构的网络应用软件系统, 在网上自动dfs/bfs收集大量页面后, 建立关键词索引,再进行重要性排序。
垂直搜索引擎: 一个行业中进行主题过滤分类
元搜索引擎: 接受用户查询请求时, 同时在其他多个搜索引擎上进行搜索
四 电子邮件
发件人把邮件发送到收件人使用的ISP的邮件服务器,
收件人可上网到ISP的邮件服务器中读取。
电子邮件采用客户端/服务器体系结构, 采用 SMTP 简单邮件传送协议、POP3 邮局协议。
用户代理: 用户与电子邮件系统的接口, 又称电子邮件客户机软件
原理图:
两种不同通信方式:
推: 发件人通过 STMP 协议将邮件 "推" 给用户代理, 用户代理将邮件 "推" 接受方服务器。
拉: 收件人通过 POP3 把邮件从服务器中 "拉" 过来。
TCP/IP体现的电子邮件地址格式:
收件人@邮箱所在邮件服务器的域名
IMAP与POP3:
POP3: 邮件协议第三版, 提供下载并删除和下载并保留的两种工作方式。
IMPA: 因特网邮件访问协议, 在POP3的工作方式基础上, 可以管理服务器上的邮件。
基于HTTP的电子邮件:
使用相同邮件服务器时, 发送和接受都是使用 HTTP 协议。
使用不同邮件服务器时, 客户端到服务器使用 HTTP, 而不同服务器间使用 SMTP 协议。
五 文件传送协议 FTP (File Transfer Protocol)
FTP基于客户/服务器体系结构, 主进程, 负责接受请求; 若干个从属进程, 负责处理单个请求, 由此两大部分组成。
两个从属进程:
控制进程: 控制连接在整个会话期间一直保持,接受客户端发出的各种命令。
数据传输进程: 数据连接是非持续的, 即上传完一个文件后就关闭连接。
原理图:
六 动态主机配置协议 DHCP (Dynamic Host Configuration Protocol)
允许一台计算机加入新的网络和获取IP地址而不用手工参与,称为即插即用连网。
DHCP中继代理:
通常运行在一台路由器, DHCP中继代理收到主机的DHCP发现报文后, 以单播方式向DHCP服务器转发此报文。
原理:
DHCP 使用客户端/服务器方式。
需要自动获取IP地址的主机启动时在本网用UDP广播发送一个DHCP发现报文,其目的IP地址为255.255.255.255,自己的IP 地址默认为全0。
通过DHCP 中继代理转发DHCP发现报文。
DHCP 服务器通过UDP回应DHCP中继代理一个DHCP提供报文, 包含IP地址等配置信息。
DHCP 中继代理在将此DHCP提供报文发回给主机。
附图:
七 P2P 文件共享
7.1 对等体间的文件分发
通过分片, 即把文件分成很多等长的小数据快进行分发, 相比整体按顺序分发可以进一步加快文件分发速度。
每个对等方都拥有来自该文件的子集, 为避免所有对等方都缺少同一个快, 每个对等方都优先下载被复制最少的那些快。
对等体之间交换数据块:
7.2 在P2P对等方中搜索对象
集中目录式:
提供一个集中目录式目录服务器, 该服务器目录保存所有对等方IP地址及其共享文件的名称。这是一个客户端/服务器结合P2P的混合结构, 服务器成为整个系统的性能瓶颈和故障点。
查询洪泛:
在应用层把所有对等方组织成一个逻辑的网络, 即称为覆盖网络。
当一个对等方查找某个文件时, 就向覆盖网络中所有相邻对等方发生查询报文, 相邻对等方查看是否有此文件, 存在则沿查询报文反向路径发回一条查询响应报文, 不存在则转发给相邻结点。
在一个打的覆盖网络进行查询洪泛, 会在网络上产生大量流量, 因此可以在报文的对等方记数字段中设置转发次数。
原理图:
分布式散列表:
略
八 多媒体应用
多媒体网络应用往往数据量巨大, 要求更高的网络带宽, 对端到端时延和时延抖动高度敏感, 但可容忍少量数据丢失。
8.1 改善因特网服务
8.1.1 音/频压缩:
网络上传送多媒体信息无一例外采用各种信息压缩技术, 减少传输时延。
8.1.2 时延抖动消除:
实时音频/视频源以恒定速率产生并发生分组, 因而这些分组是等时的。但由于端到端的时延抖动, 通过因特网到达接收方的分组是非等时的。
因此可以在接收方设置适当大小的播放缓存, 当缓存的分组到达一定数量后, 再以恒定速率按顺序将这些分组数据进行播放, 这就是延迟播放。
因为数据压缩等原因, 实际上流媒体源发送的分组大小不一样(到达目标主机时间不同)。为了能等时播放流媒体, 在发送分组时,每个分组打上一个时间戳, 通过时间戳,播放器可以准确知道什么时间播放那个分组。
利用缓存消除时延抖动的代价是增大了播放时延, 播放时延短,则某个分组的时延太大迟与播放时间, 就被丢弃。实际中需要在播放时延和分组丢失率之间进行折中。
8.1.3 丢失分组恢复
1) 前向纠错
每发生n个数据块之后, 发送一个冗余编码块, 即前n个数据块的异或, 这个冗余编码块可以找回这n个块中任意一个丢失的块。代价就是增大了一定的带宽消耗和播放时延。
2) 数据恢复
当少了数据丢失时, 接收方可以用收到的相邻数据来估算丢失数据的近似值。
3) 数据交织
一个大的间隙的数据丢失对音频质量影响较大, 而多个小间隙的数据丢失对音频质量影响较小也更容易恢复。
交织技术基本思想是打乱原始流中数据单元顺序, 当单个分组丢失时, 仅导致重建流中多个小的间隔。
原理图:
8.2 流式存储音频/视频
是一些经过压缩并存储在服务器中的多媒体文件, 所谓流式指的是可以在下载文件的同时连续播放。
为了实现边下载边播放, 实际的音频文件存储在另一个媒体服务器上, 万维网服务器只存储一个元文件, 即一个描述音频文件相关信息的小文件。
媒体播放器根据元文件中提供的URL与媒体服务器建立连接, 在下载的同时进行播放。
原理图:
内容分发网络 CDN
由于音频文件较大, 直接从服务器上下载视频会产生较大的时延和丢包率, 对于热播视频, 大量用户重复下载消耗大量带宽。
CDN可以提前将多媒体数据直接推送到靠近用户部署的多个冗余服务器上(CDN公司), 使用户都可以从靠近自己的服务器上获取数据。
原理图:
8.3 流式实况音频/视频
与流式存储音频相比, 流式实况音频不再事先存储在服务器, 客户机不能实现快进。
由于不是按需点播, 一个实况直播节目可能有大量用户同时收听, 特别适合使用多播技术来实现流式实况音频。
基于IP多播:
在因特网范围内广泛应用IP多播的前提是所有路由都要具有复杂的IP多播功能。这增加了路由器的负担和实现复杂度。
原理图:
基于P2P应用层多播:
客户机接受其他对等方转发的媒体流数据, 并进行播放;
作为转发结点, 将接收的流数据转发给其他对等方。
原理图:
附常用知名端口号:
九 网络应用编程接口
暂略