第一章:网络复习概述
1.1什么是计算机网络
从构成的角度来看:
(1) 点:(端系统,网络应用)+路由器等网络交换设备
(2) 边:链路
(3) 协议:对等层实体在通信过程中所遵循的规则的集合:语法+语义+时序
从服务的角度来看:
(1) 能够为应用提供通信服务的通信架构(有连接可靠的服务和无连接的不可靠服务)
(2) 使用通信服务相互配合工作的分布式应用
1.2网络边缘
(1) 网络的结构=网络边缘(应用,主机)+网络核心(路由器等网络交换设备及链路)+接入网络与通信链路
(2) 网络边缘:运行应用的端系统(端系统中的应用交互方式)
C/S模式,特点:资源在服务器,客户端主动,方便管理,不便扩展
P2P模式,特点:资源在各个Peer,管理困难,扩展性强
(3) 利用网络的服务:TCP,UDP
1.3网络核心
(1) 网络核心
组成:网络交换设备如:路由器+链路
功能:数据交换(全局的路由+局部的转发)
(2) 数据交换方式及比较
线路交换(独享线路):不适合计算机之间的通信
FDM TDM WDM
线路建立时间长、不可靠、不适合突发式的计算机之间的通信
分组交换:存储转发方式,统计复用
VC,Datagram
1.4网络接入与物理媒介
(1) 将端系统连接到边缘路由器的链路或网络
(2) 住宅接入:点到点接入
(3) 机构接入:LAN,以太网络,WLAN
(4) 物理链路
导向型介质,非导向型介质
(5) 常用介质:TP双绞线,同轴电缆,光纤
1.5互联网络结构与ISP
(1) 近似层次结构
T-1ISP,T-2 ISP(Regional ISP),Local ISP
(2) ISP之间的连接
POP,对等连接,IXP
(3) 内容提供商网络(ICP )
1.6分组交换网络中的延迟与丢失
(1) 延迟的4个原因
处理延迟,排队延迟,传输延迟,传播延迟
(2) 流量强度:La/R
排队延迟依赖流量强度的公式
(3) 丢失原因:缓冲区溢出+出错没通过校验
(4) 吞吐量
瞬间吞吐量
平均吞吐量
瓶颈链路决定了主机之间的吞吐量
1.7协议层次与服务模型
(1) 为什么要分层:网络比较复杂,分层实现比较容易设计、调试、实现
(2) 分层:将复杂的网络功能划分成功能明确的层次,上层利用下层提供的服务来实现本层的协议,从而为上层提供更复杂的功能
(3) 一些术语和概念
实体:实现某个协议的软件或者硬件模块
服务、服务访问原语、服务访问点
面向连接的服务,无连接的服务
协议,协议数据单元PDU
服务和协议之间的关系(区别与联系)
(4) 互联网分层模型及每一层的功能
应用层:按照应用协议交换报文,实现各类应用
传输层:进程到进程的报文段
网络层:主机到主机的分组传输
链路层:点到点帧传输
物理层:bit序列和物理信号转换
(5) 封装和解封装
源主机的大的封装
中间交换节点的小的解封装和封装
目标主机的大的解封装
第二章:应用层
2.1网络应用原理
(1) 原理+应用实例+SCOKET编程
(2) 应用部署
1,只集中在端系统上,对网络核心的路由器没有任何改变
2,互联网架构鼓励应用创新
3,互联网成功的重要原因之一
(3) 应用架构:C/S P2P混合
(4) 进程之间通信
同主机:操作系统定义
不同主机:利用网络提供的架构交换报文
(5) SOCKET
一个整数,OS用于标示应用通信关系所采用的本地标示
TCP:连接的本地标示
UDP:端节点的本地标示
(6) 进程编址:IP+PORT(本质上在传输层上引入端口号,用于区分应用,TCP和UDP使用端口号方式不同)
(7) 应用所需服务考虑的因素(网络基础设施所提供服务的主要指标)
丢失率可靠性;延迟、延迟差(抖动);带宽;安全性
(8) 传输层协议
TCP提供的服务特性:可靠字节流服务,面向连接,流量控制,拥塞控制
UDP提供的服务特性:无连接,不可靠的服务
都能提供进程的标识,区分不同的进程
2.2 WEB和HTTP
(1) WEB应用包括:HTTP协议,HTML,CLIENT,SERVER
(2) 术语:网页、对象、引用URL
(3) HTTP协议:
1,定义了C和S之间通信的报文格式,解释和时序
2,HTTP连接:持续性连接1.0 1.1 非持续连接2.0 3.0
3,往返延迟RTT和对象的抓取时间
2.3Email
(1) 电子邮件应用的构成:用户代理+邮件服务器+SMTP
(2) 邮件报文格式解析
报文头,报文体
MIME:邮件多媒体扩展,可以在邮件中编解码多媒体内容
(3) 邮件存取协议
作用:邮件客户端从服务器上将发送给自己的邮件拉取回来
常用:IMAP+POP3+http
2.4DNS
(1) DNS作用:完成域名到IP地址的转换(还包括,别名->正规名字;邮件服务器名字->正规名字转换等)
(2) 应用层面的基础设施,其他应用使用的应用
(3) DNS的概念:分布式、层次数据库
(4) DNS的构成:解析器(本地应用)+域名服务器+DNS协议
2.5视频流化服务和CDN
(1) 下载播放和流化播放
(2) 服务器向客户端进行流化的方式
(3) DASH流化的过程
1,客户端获取告示文件
2,客户端按照情况,向(可能是不同的)服务器请求不同视频质量的内容块
3,智能表现在客户端,根据当时缓存的播放数据块的情况,各服务器通往它自己的网络情况,决定什么时候向那个服务器请求哪些块
(4) CDN
1,单个服务器,或者服务器群向客户端提供海量内容并发服务的问题:扩展性差
2,CDN原理:
2.1:应用层面的协作服务网络(与DNS一样部署在应用层)
2.2:在全网部署缓存节点,内容预先部署到CDN缓存节点上
2.3:用户请求通过域名解析重定向向自己“最近的节点”请求内容
3,缓存节点放置的方式:
Enter Deep:深入到各叶子ISP,离客户很近,效果好,数量很多,代价大,管理困难
Bring Home:在关键点,到各ISP的距离都比较近,通常在比较高层次,代价少,效果一般
第三章:传输层
3.1传输层服务
(1) 传输服务:使端系统应用之间进行逻辑通信
(2) 传输协议:运行于端系统的2个对等传输层实体相互通信应该遵守的规则集合
(3) 传输服务和网络服务的区别
网络服务:主机到主机的通信
传输服务:进程到进程的通信,更细的端到端
(4) 互联网传输层协议:TCP,UDP
3.2复用与解复用
(1) 复用:源端(TCP或者UDP实体)从多个上层应用收集数据:应用报文,封装报文
(2) 解复用:接收端将数据按照端口号(结合IP)给相应的SOCKET对应的应用
(3) 复用和解复用的工作原理:IP PORT
3.3无连接传输协议UDP
(4) UDP的必要性:
1,应用对实时性要求高,对可靠性要求不高
2,或者某些应用需要可靠性,但是基于TCP之上,应用受不了TCP为了实现可靠性付出的延迟大于成本,基于UDP在应用层自己实现可靠性:QUIC
开销小:8B头部
事务性应用:一次交互完成的应用
(5) UDP报文(无连接的,因此叫作UDP数据报)格式
UDP报文校验和的计算:有进位回滚的和,然后求补
校验:校验范围和校验和之和(有进位回滚的)位全1
3.4可靠数据传输原理
(1) 协议演进的方式讲解如何进行RDT
1,加入一些假设,简单的协议可以提供可靠数据传递
2,一次去掉一些假设,需要协议实体做相应的变化从而能够进行RDT
(2) 技术机制
校验和,正向确认,反向确认
序号:检查重复,乱序,gap
只有正向确认的机制
检测重发和超时重发:处理丢失(滑动窗口)
(3) 利用率:单位时间内* %时间用于有效数据的传递
(4) 停止等待技术:链路带宽延迟积(容量)高的时候信道利用率低
管道技术:在未经对方确认的情况下,可以连续发送多个PDU
GBN:发送窗口大于1,接受窗口=1
SR:发送窗口大于1,接收窗口大于1
3.5面向连接的传输层协议:TCP
(1) TCP服务特性
点-点;可靠保序字节流;管道;缓冲;全双工;面向连接;流控制; 拥塞控制
(2) TCP段结构
1,各个字段的作用
2,连接建立时协商好双方的起始序号,随机或者和时钟有关
放置老的连接上的数据对新的连接上的数据造成影响
3,序号是首字节在字节流的偏移量
4,确认:是对顺序收到的最后一个字节+1,对于那个字节及以后的期待
(3) RTT时间估计和重发超时时间估计
移动平均计算:平均往返延迟
移动平均计算:当前往返延迟采样值与平均值的标准差
RTO=平均值+4标准差
(4) 快速重传:在没有超时的情况下,收到对方对于某一个段的重复三次(一共4个)ACK
(5) 流量控制
目的:放置淹没接收方
手段:反馈将接收窗口大小捎带方式传递给发送端
(6) TCP连接管理
连接建立:3次握手,对双方选择的初始序号给予确认,准备好缓冲区
连接:资源准备、控制变量置位,为通信做好准备
连接拆除:对称,存在2军问题不完美(也不存在完美释放连接的方案,用定时器凑合解决,心跳)
连接状态及其变迁
3.6拥塞控制原理
(1) 拥塞的概念,什么是拥塞,为什么会发生拥塞
传输速度超过链路和节点的处理能力,导致排队延迟高,丢包率高。拥塞窗口/RTT
(2) 拥塞表现:延迟大、丢包多。总体上看吞吐量随着注入的速率增加输出不再增加或者下降,加速变坏
(3) 目的:恢复到不拥塞状态,不拥塞情况下尽量传得快(吞吐量大)+延迟小
(4) 拥塞控制手段
端到端的拥塞控制:传统TCP采用这种方式
网络辅助的拥塞控制,ATM网络标志和携带拥塞信息,反馈给主机,升级TCP的ECN
3.7 TCP的拥塞控制原理
(1) 传统TCP拥塞控制原理
检测拥塞:三个冗余ACK(轻微拥塞),超时(拥塞,存在误判的可能,但是概率小)
拥塞控制机制:AIMD慢启动,超时之后的保守策略
(2) TCP拥塞控制的两种算法
Tahoe:(3个ACK和超时都当做拥塞,最开始为1 ,慢启动指数增长,当发生拥塞时,把当前的窗口大小的一半当做警戒值,最新的窗口变为1,开始慢启动,到警戒值时,开始拥塞避免状态线性增长)
Reno算法:(最开始慢启动指数增长,当触发3个冗余时,将警戒值设为当前的一半,把当前窗口大小变为最新的警戒值+3MSS,之后开始线性增长
(3) 后续:New Reno,Sack,ECN,CUBIC,BBR
第四章:网络层数据平面
4.1网络层的功能简介
(1) 网络层的主要服务和功能
服务:向传输层提供主机到主机的段传输服务
功能1-全局的路由功能,控制平面的功能;决定从源到目的的路径
功能2-局部的转发功能,数据平面功能:从路由器的一个端口入,从另外一个端口流出
以上两个功能相互配合将数据报从源传送到目标主机,从而实现网络核心的交换功能,关联是转发表(路由表)、流表
(2) 实现网络层功能的两种方式
1,传统方式:
控制平面和数据平面垂直集成在每个设备上(路由器)
控制平面功能:路由协议实体分布式地计算路由表
数据平面的功能那个:IP一些按照路由表进行分组的转发
2,SDN通用转发方式
控制平面和数据平面分离,在不同设备上实现
sdn控制器集中式计算,下发流表实现控制平面功能
sdn分组交换机按照流表对到来的分组进行转发,实现数据平面的功能
(3) 网络层提供服务的一些重要指标:带宽;延迟,延迟差;丢包与否,丢包率
4.2传统路由器结构与工作原理
(1) 路由器的2大功能
路由协议:结果形成路由表(转发表)
转发分组:使用转发表转发分组,交换
(2) 构成
输入端口:线路终端实现物理层功能、链路协议实体实现链路层功能,网络层功能实现分布式分组转发;最长前缀匹配
交换结构:基于内存的,基于bus的,基于Crossbar的
输出端口三个层面的功能
1,网络层可以实现分组的调度:FIFO,RR,WFQ
2,调度支持对多媒体分组等优先级分组的传输支持
3,网络层、链路层和物理层实体协议处理,将分组形成的帧对应的bits形成物理信号打出去
路由器处理:控制各部分协调工作
4.3互联网网络层协议
(1) IP网络提供的服务模型:尽力而为
包括含义:丢包、乱序、不可靠、(可能包括重复)
(2) 网络层构成
IP协议、路由选择协议、ICMP协议等
转发表
(3) IP数据报格式
各个字段的作用:分组有ID,头部要校验
分片和重组
1,一个分组的总体大小超过了转发链路的MTU,因此要切片
2,到目标主机重组
(4) IP编址
IP地址:主机或路由器和网络接口的标识
子网:在一个子网内的设备之间的通信有两个特点
1,通信无需借助路由器
2,子网前缀一样
地址层次性支持路由器以子网为单位,而不是以主机IP为单位(代价大)
IP地址分类:ABCDE
特殊IP地址:回环地址
子网掩码和CIDR
(5) NAT(内网映射外网)
(6) DHCP协议:上网主机获得IP、掩码、默认网关
(7) 路由聚集:
1,连续的子网前缀的子网可达信息可以做聚集,减少向外部传输路由的数量,减少路由计算的负担
2,支持大概路由聚集,与此对应的是最长前缀匹配
(8) IPV6
1,IPV6格式(固定头部长度40B),地址128bits
2,IPV6的变化
3,IPV4到IPV6的迁移:隧道
4.4通用转发和SDN
(1) SDN方式控制平面和数据平面分离的优点
1,集中在控制器上实现控制逻辑,网络可编程,可以实现各种复杂的网络功能、新功能(一次部署,持续升级)、方便管理
2,形成开发生态(控制器,分组交换机,网络应用,在一个开放的框架下协作)
3,SDN分组交换机按照计算出的流表进行分组转发、通用、便于升级
(2) 分组交换机工作原理
1,模式匹配+行动(action不仅仅是转发,还可以组播,泛洪,修改字段和阻塞)
2,进来分组,按照多字段match流表,按照表项的action对分组作用
3,如果多个流表匹配上,按照优先权进行判断
4,统计计数
第五章网络层控制平面
路由选择算法
(1) 路由目标:根据收集到的路由信息(拓扑,链路代价等)计算出源到目标较好的路径,代价比较低的路径
主机间的路径=子网之间的路由=路由器间的路径
由于IP地址是由层次
路有目标实际上是计算出路由节点的汇集树
路由原则:完整正确,简单,健壮,稳定公平,最优
(2) 路由分类
静态合动态(自适应)
局部和全局的
(3) LS算法:全局的路由选择算法,工作原理
1,每个节点收集邻居信息,生成LS;LS全AS泛洪
2,节点收集各LS状态分组,形成网络拓扑
3,按照最短路径算法算出到其他节点的最优路径(迪杰斯拉算法)
(4) DV算法:局部的路由选择算法,工作原理i
1,每个节点维护到所有其他节点的下一跳和代价值
2,邻居节点之间定期交换DV
3,按照Bellman-Ford不断迭代生成到所有目标的代价和相应的下一跳
分布式算法,存在环路问题和无穷收敛问题
(5) 层次路由
1,一个平面解决路由的问题:计算、传输和存储路由信息的量太大,不具备可扩展性,也不满足不同网络运营放不同的管理需求
2,分成一个个AS
AS内部之间的节点路由有内部网关协议解决:OSPF,RIP,IGRP
AS之间的路由,由外部网关协议解决:BPG
路由到网关,有网关(经过内部网关协议穿过一个个AS,穿过AS网关之间路由靠外部网关协议)路由到目标网关,到了目标AS内部,采用AS内部的路由解决
3,分层路由的优势
规模性问题:每个AS的子网数量有限,路由计算传输代价小
管理性问题:不同AS可以采用自己的协议
(6) 路由协议分类
1,内部网关协议IGP
RIP;OSPF:AS内部支持分层路由,同时支持多种代价;IGPR
2,外部网关协议EGP;BGP
ICMP协议
作用:包括错误,echo请求和应答
报文类型有echo,Tracert等
第六章:数据链路层和局域网
6.1引论
(1) 链路层的服务:点到相邻节点的以帧为单位的数据
1,成帧、链路存取控制(链路访问控制)
2,在相邻节点间进行可靠数据传递(有些,如无线网络)
3,流量控制
4,检错,纠错
5,全双工和半双工
(2) 链路层网络节点的连接方式
1,点到点方式:比较适合广域网,联网复杂,但是链路层功能简单
2,多点连接的方式:比较适合局域、联网方便,但需要解决MAC问题,复杂
6.2检错与纠错
(1) 检错原理:D和EDC之间符合某种约定的差错
控制编码关系,源端编码,目标端校验
奇偶校验
CRC
1,发送接收方约定的生成多项式:G,r次
2,发送端按照G对数据D进行CRC编码:左移r位,除以G得到余数
3,D左移r为+R,一起传输
4,接收方进行解码:D左移r为+R,能否被G整除
6.3多路访问协议
(1) MAC的必要性:多点连接网络协调各节点对共享式信道的使用
(2) MAP
1,信道划分
TDMA,FDMA,CDMA
2,RAY:随机访问协议
3,轮转协议:令牌协议
6.4链路层编地址
(1) MAC地址
格式:48位平面地址,标示一个具体的网卡
分配:IEEE
(2) MAC地址和网络层地址的区别
层次不同,
MAC是地址平面的,标示一个物理网络的不同站点
IP是层次的,可聚集的,便于计算路由
(3) ARP协议
目的:物理网络范围内IP地址到MAC地址的转换
工作原理:广播查询,单播应答
6.5 以太网络
(1) IEEE802.3标准,链路层和相应的物理层
(2) 以太网络的帧结构:前导码头部,目标地址在前
(3) 向上提供服务的特点:无连接,不可靠
因为比较可靠了,在链路层上做可靠工作效率低
(4) 访问控制技术:CSMA/CD,指数后退
(5) 编码:Manchester编码+4b5b编码+8b10b编码,物理层技术
(6) WLAN介质访问控制技术:CSMA/CA
6.6HUB和交换机
(1) HUB连接方式的问题:
1,物理层设备,信号整形放大
2,一个端口进,所有端口处,处在一个碰撞域之内
3,无法隔离冲突
(2) 交换机的工作原理
选择性转发:SW
自学习:学习MAC地址和交换机端口的捆绑关系
流量隔离:选择性发转发
专用接入:交换机端口直接解主机
(3) 路由器和交换机的区别:2层工作、3层工作
第七章:多媒体网络应用
涉及到音视频等多媒体的网络应用
CBR:以固定速度编码
VBR:视频编码速率随时间的变化而变化
多媒体:音频
(1) 非压缩编码的PCM过程:采样、量化和编码
(2) 采样:已固定采用频率采样模拟音频信号
电话:8000采样/sec
CD音乐:44,100采样/sec
(3) 量化编码:每个采用被量化编码
如:2^8 = 256可能的量化,量化误差
每个量化值被若干比特表示
如:8bits
(4) 音频:码率低
人对音频的质量比较敏感
多媒体网络:3中应用类型
1,流化、存储音视频
1,存储(在服务器、非实时产生的数据):
数据以前生产并存储
可以按照比正常音视频播放所需速度更快的速度传输,意味着可在客户端进行缓存/预取
2,流化(单向):在下载整个文件前就可以播放
网络带宽够且服务器已经存储(相反实时音视频不可以)
(1) ’e.g.,YouToBe
(2) 流化存储音视频特点:流化、交互性、连续播放
(3) 对网络的需求:平均带宽》播放带宽,延迟10s可接受
路径带宽变化,缓存平滑吞吐的变化,但本质上从长期来看,路径平均吞吐>播放所需要带宽
(4) 所使用的技术:缓存、预取、自适应带宽质量和CDN
2,IP交互式音频/视频
(1) 交互式音频:互联网电话VoIP
(2) 交互式视频:Skype,微信
(3) 特点:数据实时产生、流化、双(多)向
(4) 对网络的需求:
有带宽要求,延迟要小150ms,人-人交互特性限制了延迟容忍度
抖动要小,对于丢失不是很敏感
(5) 使用的技术:自适应播放,FEC,错误掩盖
3,流化、实时音视频
(1) 网络视频直播、网络广播:e.g.,实况赛事
(2) 2中实现方式:网络层组播、应用层组播
(3) 数据实时产生,流化,单向(用户多),直播平台支持交互
(4) 对网络的要求:带宽要求,延迟10s可接受
(5) 使用技术和流式存储视频技术类似
初始缓存、自适应带宽、CDN分发
流式存储视频
挑战
(1) 连续播放限制:一旦客户端开始播放,消费速率=原始速度
1,到点该播放某帧了,该帧的数据就应该收到
2,否则以后到了也没有用
3,但网络延迟是变化的(抖动),有可能某些帧延后到,因此需要客户端缓存
第一个帧收到不是立即放,而是延迟一段时间再放
(2) 其它挑战:
客户交互行为:暂停、前进、倒退、在视频内部跳转
视频分组可能丢失,重传(需要时间代价)
(3) 缓冲的作用:
1,吸收端到端延迟的变化:某帧延后到达,只要缓冲中还有数据,就可以连续播放;靠增加总体播放延迟作为代价来你补延迟变化
2,补偿端到端带宽的波动:瞬间路径吞吐<播放码率,进来的速率<消耗的速率,只要缓冲中还有数据,就可以连续播放;条件:路径平均吞吐>=播放带宽
(4) 流化视频技术:UDP流化,HTTP流化,自适应HTTP流化
(5) 都需要客户端缓冲:因为网络延迟是变化的,路径平均吞吐是变化的
(6) 客户端缓存和播放延迟:补偿网络增加的延迟,以及延迟抖动,增加播放延迟换取播放的连续性
流式多媒体技术:DASH
DASH:Dynamic, Adaptive Streaming over HTTP
(1) 服务器:
将视频文件分割成多个块
每个块独立存储,编码于不同码率(8-10中)
货物清单:提供不同块的URL
(2) 客户端:
先获取货物清单
周期性地测量服务器到客户端的带宽
查询货物清单,在一个时刻请求一个块,HTTP头部指定字节范围
如果带宽足够,选择最大码率的视频块
会话中的不同时刻,可以切换请求不同的编码块
(3) DASH的优点
动态估计带宽情况,当前缓存情况,DASH通常能够做到持续播放
减轻服务器的负担,可扩展性强
Content Distribution Networks(内容分发网络)
(1) 挑战:服务器如何通过网络向上百万用户同时流化视频内容
(2) 选择1:单个的、大的超级服务中心
1,服务器到客户端路径上跳数较多,瓶颈链路的带宽小导致停顿
2,“二八规律”决定了网络同时充斥着同一个视频的多个拷贝,效率低
3,单点故障点,性能瓶颈
4,周边网络的拥塞
评述:相当简单,但是这个方法不可扩展
(3) 选项二:通过CDN,全网部署缓存节点,存储服务内容,就近为用户提供服务,提高用户体验
enter deep:将CDN服务器深入到许多接入网
1,更接近用户,数量多,离用户进,管理困难
bring homr:部署在少数(10个左右)关键位置,如将服务器簇安装于POP附近
采用租用线路将服务器簇连接起来
CDN内容复制策略
(1) 不需要将所有内容复制到所有缓存节点中
(2) 内容复制策略决定什么内容存储在缓存节点中
(3) 非热点内容会被替换(替换策略)掉,以腾出空间
Voice-over-IP(VoIP)
概述:
(1) VoIP:网络上传输实时产生的音频,应用需求:
1,延迟不能够太大,<400ms否则会影响交互性
应用处理不能够增加太多延迟,采用UDP(传输层不加太多延迟)
2,少量丢失允许,但如丢失太多,会听不清,EFC
3,抖动太大,变调,(需要缓冲处理,持续播放;需要编号排序)
(2) IP提供的服务:尽力而为(丢失;延迟;抖动)
(3) 在应用层上做哪些工作,对抗网络的问题,从而能够很好地运行VoIP
都是IP分组,网络层不单独为某种类型应用优化
问题1:丢失
延迟区满、出错校验没有通过
延迟超大(超过人工播放延迟),错过了播放时间到达
采用TCP不可行
1,超时重发机制会让整体增加延迟,影响实时性
2,无法利用TCP尽力传输后面产生的数据,数据实时产生
应用层利用编码或掩盖部分丢失,小于1-10%的丢失都没有关系
问题2:延迟
所有延迟:各链路的传输,传播延迟,应用层缓冲和处理等
策略是:无法减少必要的网络延迟,在应用层不能够人工增加延迟:处理,缓冲
1,采用UDP,而不是采用TCP
2,引入的播放延迟,使得总体延迟最好限制在400ms以内
在保证最大化连续播放情况下,最小化播放延迟
问题3:抖动
原因:分组延迟不同,不同路径,有的链路重传
后果:分组之间延迟有差,分组间间隔变化;甚至先发后到->直接播放效果差(变调,不可理解)
措施:
1,发送端分组打时戳和编号,接收端排序
序号+1,序号在静默期不发数据时不增加
时戳+,时戳在静默期仍然增加
2,在接收端引入缓冲,引入播放延迟消除(吸收)抖动(固定或者自适应 )
(4) VoIP架构
(1),说话者的音频:分成突发期和静默期
会话突发期:64kbps
只是在会话突发期产生分组
20msec生产一个数据块,8000B/sec:160B/20mes
2,在每一块语音数据上加上应用层报头
3,应用报文(头+语音数据)封装在UDP或TCP段中
4,在会话突发期,应用程序每隔20ms发送一个段
(2)自适应播放延迟
(5) Voip:从分组丢失中恢复
挑战:从分组丢失中恢复,在给定小的可容忍延迟内
1,利用重传:每个ACK/NCK将会耗时~1RTT
2,其他选择:Forward Error Correction(FEC)
发送足够的bits允许从丢失中恢复,无需重传
简单FEC
1,对于每组n个数据块,用n块数据的异或创建一个冗余块
2,发送n+1数据块,增加带宽约合1/n
3,至多一组中一块数据丢失的情况下,可以重构该丢失的数据块,无需重传
另外一种FEC方案
1,捎带低质量码流
2,将低质量码率当做冗余信息传递
3,e.g.,PCM码流64kbps,冗余码GSM速率13kbps
非连续的丢失:接收方可以掩盖丢失
一般化方法:也可以附加(n-1)st和(n-2)nd低码率数据块
交织掩盖丢失
1,音频数据块分割成小的单元,e.g. ,4个5msec数据块(每20ms数据块)
2,分组包含不同数据块的小单元
3,如果分组丢失,仍然拥有每个原始数据块的绝大多数小单元
4,没有冗余信息,但增加了播放延迟
实时交互式应用的协议
(1) ### Real-Time Protocol (RTP)
RTP规范了用于携带音频和视频数据的分组结构
RFC 3550
RTP分组提供(负载类型标示,分组序号,时戳)
RTP运行在端系统
RTP分组封装在UDP的段中
互操作性:如果两个VoIP应用运行在RTP上,他们可以协同工作
(2) RTP运行在UDP上
RTP库提供传输层接口,扩展了UDP
1,端口号,IP地址
2,负载类型标示
3,分组序号
4,时戳
(3) RTP和QoS
1,RTP不提供任何按时交互以及其他QoS保证的机制
2,RTP封装仅在端系统中能够看到
路由器提供尽力而为的服务,没有确保RTP分组能够按时到达目标端的额外努力
(4) Real-Time Control Protocol(RTCP)
1,与RTP协同工作
2,RTP会话的每个参与方定期发送RTCP控制分组,到所有其他的参与方
3,每个RTCP 分组包含发送方和/或接收方的报告
4,反馈信息用于控制性能(发送方可能会根据反馈调整其传输)
(5) SIP:Session Initiation Protocol
SIP目标
1,所有的电话呼叫,视频会议都可以通过互联网展开
2,用户被名字或者email地址标示,而不是电话号码
3,你可以接通被叫,不管被叫是不是在漫游,也不管被叫目前采用的IP地址是什么
SIP服务
1,建立一个呼叫,SIP提供机制
对于主叫来说,让被叫知道有人要和他建立呼叫
主叫-被叫协商媒体类型和具体编码参数
结束呼叫
2,确定被叫当前所使用的IP地址
将命名标示映射到当前被叫使用的IP地址
3,呼叫管理:
在会话过程中加入一个新的媒体流类型
在会话过程中改变编码
邀请其他方加入会话
转移、保持会话
(6) ### SIP proxy
1,SIP服务器另外一个功能是:proxy
2,Alice发送invite报文给她自己的代理服务器
包含地址:SIP:bob@domain.com
代理负责路由SIP报文到被叫,可能需要经过多个代理
3,Bob经过相同的SIP代理集合发送响应报文,返回
4,代理得到Bob的SIP响应报文,返回给Alice(包含Bob的IP地址)
5,SIP代理类比于local DNS server +TCP setup
(7) H.323
1,H.323是另外一套为实时、交互性通信服务的信令协议
2,H.323是针对多媒体会议一个完整、垂直集成的协议族
3,SIP是一个单个的协议,需要和RTP协议配合,但是也不一定,也可以和其他的协议和服务组合使用
4,H.323来自ITU
5,SIP来自IETF:借鉴了很多HTTP协议的概念(SIP协议具有Web风格,H.323具有电信风格)
6,SIP采用KISS原则:Keep it simple and stupid
多媒体的网络支持
应用层vs网络层 支持多媒体应用
(1) ,前几节:在尽力而为网络上开展网络媒体服务的有效方法
1,网络不做任何变化,在边缘端系统应用层做工作
2,应用层技术:客户端缓存、预取、自适应媒体质量、自适应播放、丢失掩盖
3,应用层系统级方法:CDN分发网络媒体内容
(2) 网络层机制:支持多媒体应用(提供对网络多媒体有效支持)
网络层机制部署现状
(1) 还没有广泛应用,不同ISP网络部署情况不同
(2) 原因1:应用程序或者应用基础设施+尽力而为服务:足够好
(3) 原因2:部署网络级的机制复杂,要对网络增加复杂的功能,不是很划算
1,互联网的收费模式,让ISP不愿意投入太多
2,ISP投入多,ICP和服务运营商会受益更多,ISP很难分一杯羹
3,单个ISP部署一些网络层的特性,但如果其他ISP没有部署,多媒体效果并不好
(4) 网络机制
1,扩容带宽
2,区分服务–类分组在路由器得到的服务(标记,调度,监管)
3,每连接Qos保证,建立时,预约网络资源(如带宽)保证端到端的性能
硬保证:连接的性能确定得到保证
软保证:比较高的可能性得到性能保证
技术:标记,调度,监管,呼叫准入
网络管理
网络管理的现实例子
(1) 飞机控制是、DCS控制系统
(2) 设别管理的功能
1,监测系统各部件的运行状态(输入)
管理人员查询设备(查询,定期)
设备在异常时主动上报
2,根据状态和目标,干涉系统的运行,发出执行动作(输出)
(3) 最终目的:监控各设备运行状态,保证系统正常运行
网络管理的功能举例
(1) 监测主机或路由器的网卡故障(网卡发去的帧错误增加)
(2) 自动监测主机的活跃程度
(3) 监测流量:
某网段的流量增加,可以将服务器迁到另外一个网段
某网段的流量超过阕值,在用户感知之前,升级带宽
(4) 路由表格的快速变化,配置问题,在网络发生问题前发生并修复
(5) SLA监测:掉线率,延迟,吞吐量,达到下限报警
(6) 入侵检测:攻击行为,检测和报警
网络管理的5大功能
(1) 性能管理
1,性能(利用率、吞吐量)量化、测量、报告、分析和控制不同网络部件的性能
2,涉及到的部件:单独部件(网卡,协议实体),端到端的路径
(2) 故障管理:记录、检测和响应故障
1,性能管理为长期监测设备性能
2,故障管理:突然发生的强度大的性能降低,强调对故障的响应
(3) 配置管理:跟踪设备的配置,管理设备配置信息
(4) 账户管理:定义、记录和控制用户和设备访问网络资源
限额使用、给予使用的收费,以及分配资源访问权限
(5) 安全管理:定义安全策略,控制对网络资源的使用
网络管理的实质·
(1) 实质:远程(分布式)监测(查询、定期上报,以及异常异步报告)和控制
(2) 实例:集团和分支机构
1,分支定期报告,产量等信息
2,分支主动报告异常
3,总部文分支:上报信息(指标)
4,总部发出指令,让分支动作
网络安全
什么是安全安全
(1) 机密性:只有发送方和指定的接收方能否理解传输的报文内容
发送方加密报文
接收方解密报文
(2) 认证:发送方和接收方需要确认对方的身份
(3) 报文完整性:发送方、接收方需要确认报文在传输的过程中或者事后没有被改变
(4) 访问控制和服务的可用性:服务可以接入以及对用户而言是可用的
加密原理
加密术语
m=Kb(Ka(m));m:明文,Ka(m)密文,采用Ka进行加密
对称秘钥加密
发送方和接收方共享相同的秘钥(对称)
简单对称加密方案:将一个字母换成另外一个字母
加密秘钥:26个字母和26字母的映射关系
###AES
每128bits进行加密
密码块链
(1) 密码块:如果输入块重复,将会得到相同的密文块
(2) 密码块链:第i轮输入m(i),与前一轮的密码c(i-1)做异或
公开密钥加密算法
要求:
1,Kb-(Kb+(m))=m:kb-私钥,kb+公钥
2,戈丁公钥Kb+,导出私钥Kb-计算上不可行
预先知识
a mod n + b mod n = (a+b) mod n
a mod n - b mod n = (a-b) mod n
a mod n * b mod n = (a*b) mod n
因此:
(a mod n)^d mod n = a^d mod n
##RSA
RSA :准备
(1) 报文:就是一个bit模式
(2) bit模式可以唯一的用整数来表示
(3) 因此,加密一个报文就等于加密一个整数
RSA:创建公钥/私钥对
(1) 选择2个很大的质数p,q
(2) 计算n=pq,z=(p-1)(q-1)
(3) 选择一个e(要求e<n)和z没有一个公共因子,互素
(4) 选择d使得ed-1正好能够被z整除(也就是ed mod z =1)
(5) 公钥(n,e),私钥(n,d)
RSA加密和解密
(1) 给定按照上诉算法得到的(n,e)和(n,d)
(2) 加密报文m(<n),加密算法
c = m^e mod n
(3) 对接收到的密文c解密,如此计算
m = c^d mod n
(4)
数字签名
数字签名类似于手写签名
(1) 发送方数字签署了文件,前提是他是文件的拥有者/创建者
(2) 可验证性,不可伪造性:接收方可以向其他人证明一定是发送方而不是其他人签署了该报文
(3) 报文m的简单数字签名
发送方使用其私钥对m进行了签署,创建数字签名的Kb-(m)
报文摘要
对长报文进行公开秘钥加密算法的运行需要耗费大量的时间
Goal:固定长度,容易计算的指纹对m使用散列函数H,获得固定长度的报文摘要H(m)
散列函数的特性
1,多对1
2,结果固定长度
3,给定一个报文摘要x,反向计算出原报文在计算上是 不可行的
公钥认证中心(CA)
(1) certification authority(CA):将一个公钥和拥有它的实体E做个捆绑
(2) E(person,router)到CA那里注册他的公钥(带外的),E提供给CA,自己身份的证据"proof of identity"
CA 创建了一个证书,捆绑了E实体信息和他的公钥
Certificate包括了E的公钥,而且是被CA签署的(被CA用自己的私钥加了密的)–CA说这是E的公钥
(3) 当A拿到B的公钥
1,获得B的证书certificate
2,使用CA的公钥来验证B的证书
前提是之前需要可靠地获得CA的公钥,CA的证书
CA证书获得带外方式:安装系统带的,或者直接信赖的这个公钥
CA证书一般是自己用自己的私钥签署自己的公钥
安全电子邮件(应用层 )
机密性
A需要发送机密的报文m给B
A:
产生随机的对称秘钥,Ks
使用Ks对报文加密(为了效率)
对Ks使用B的公钥进行加密
发送Ks(m)和Kb+(Ks)给B
B:
使用自己的私钥解密Ks
使用Ks解密Ks(m)得到报文
完整性和可认证性
A数字签署文件(采用自己的私钥签署报文的散列)
发送报文(明文)和数字签名
机密性,可认证性和报文的完整性
A用3个keys:自己的私钥,B的公钥,新产生的对称式密钥
TCP的连接安全TLS(Transport-layer security)
TLS密钥生成
(1) 在多个加密操作中采用同一个密钥:不安全
采用不同的密钥用于:报文认证(MAC)和加密
(2) 4keys
Kc = 客户端到服务端的加密密钥
Mc = 客户端到服务器的MAC密钥
Ks = 服务器到客户端的加密密钥
Ms = 服务器到客户端的MAC密钥
(3) 密钥有密钥key derivation function(KDF)导出函数导出
KDF创建密钥的输入:主密钥MS+(可能的)一些附加随机数据
破除主密钥MS和4Keys的固定对应关系
t-tls:加密数据
(1) 流式加密,完整性校验的MAC只能在最后,那么只有所有数据都被传输完毕才能够进行完整性校验
(2) 如:对于即时通信(持续时间很长),在终端显示这些字符之前,如何对所有字节进行完整性校验?
(3) 方案:将字节流分割成一个个的记录
1,每个记录C-S携带该记录的MAC,hash(采用Mc)
2,接收端可以对每一个到达的记录进行完整性校验
(4) 攻击者可能会修改TCP的头部,比如修改头部中的序号,方案就是讲序号放入MAC中
TLS加密套件
(1) “加密套件”:密钥生成算法,加密算法,MAC算法,数字签名算法(并不捆绑具体算法)
IPSec:网络层的安全
IPSec协议:位置
(1) 在2个网络(主机或路由器)
(2) IP之上、传输层协议之下
(3) 发送实体加密数据报载荷,载荷可以是:
1,原IP的所有载荷都可以是IPSec的载荷
2,TCP段、UDP数据报、ICMP报文、OSPF报文等
(4) 层次较低,所有从发送端实体到其他接收方的数据都可以被隐藏
(5) 地毯覆盖(IP的载荷(如TCP段)是经过加密,认证,完整性检查的)
IPSec的2个模式
(1) 传输模式
1,主机之间
2,只有数据报载荷被加密和认证(头部明文)
(2) 隧道模式
1,路由器之间
2,整个数据报都被加密和认证
3,加密的数据报被封装在一个新的数据报中,新的IP头部
4,2个路由器之间就像有个隧道一样,将2个网络连接起来:VPN
IPSec总结
(1) IKE交换报文用于:协商算法(加密套件),生成和交换keys,生成SPI,自动建立SA
(2) AH或者ESP协议
1,AH提供完整性,源端的可认证性
2,ESP(相对于AH来说)提供附加的机密性
(3) IPSec对可以是2个网络实体间的安全同行关系
1,2个路由器/防火墙
2,1个路由器/防火墙,另外一个是端系统
3,2个端系统之间
#防火墙
将组织内部网络和互联网隔离开来,按照规则允许某些分组通过(进出),或者阻塞掉某些分组
防火墙的必要
(1) 阻止拒绝服务攻击
SYN flooding:攻击者建立很多伪造TCP连接,对于真正用户而言由于服务器的资源被耗尽,他们的访问被拒绝
(2) 阻止非法的修改/对非授权内容的访问(e.g. 攻击者替换CIA的主页)
(3) 只允许认证的用户能访问内部网络资源
(4) 2种类型的防火墙
1,无状态分组过滤器
2,有状态分组过滤器
3,应用网关
无状态分组过滤:例子
例1:阻塞进出的数据包:只要拥有IP协议字段=17,而且源/目标端口号=23
结果:所有的进出UDP流,以及TCP上Telnet连接分组都被阻塞掉
例2:阻塞进入内网的TCP段:它的ACK=0
结果:阻止外部客户端主动和内部的主机建立TCP连接,但允许内部网络的客户端主动和外部服务器建立TCP连接;
有状态分组过滤器:跟踪每个TCP连接的状态
(1) 跟踪TCP连接建立(SYN),拆除(FIN);然后才让相应后续分组通过
(2) 防火墙上的非活跃连接会超时,不再允许相应的分组通过防火墙
IDS:入侵检测系统
(1) 分组过滤:
1,对TCP/IP头部字段进行检查
2,不检查会话分组间的相关性
(2) IDS:intrusion detection system
1,深入分组检查:检查分组的内容
2,检查分组间的相关性,判断是否是有害的分组
端口扫描,网络映射,Dos攻击
无线链路和移动网络
无线链路
无线链路特征
与有线链路的重要差别表现在:
(1) 衰减的信号强度:无线电磁波信号在通过物体(即使是开放空间时)时衰减(路径损耗)
1,随着距离的平方成反比,和物体材料性质、频率有关
2,而在有线导引型介质中,任何2点的信号强度变化不是那么大
(2) 来自其他信号源的干扰
1,标准无线网络频率(e.g. ,2.4GHz)与其它设备如无绳电话共享频段,相互干扰
2,环境中的电磁噪声(motors)干扰
(3) CDMA
###无线局域网
IEEE 802.11 Wireless LAN
WIFI4,WIFI5,WIFI6
1,不同点:带宽、频率、范围和物理编码技术不同
2,共同之处:在共享无线信道中使用CSMA/CA介质访问控制方式,而且都有基站模式和自组织模式