计算机网络复习
计算机网络
通信网络
网络提供信息传递服务(端用户角度)
通信介质:电子和光子,传输介质:fiber……,交换方式,协议,算法,功能,应用
通信网络分类
-
广播网络:一个节点发出的信息其他节点都可以收到
-
交换网络:信息通过一组特定功能的节点进行转发
-
电路交换
-
分组交换
- 数据报分组交换(每个分组单独交换,不需要预先分片资源,不按序到达,存储转发)
- 虚电路分组交换(预先建立虚电路传输,按序到达)MPLS
-
Baran思想——烫土豆算法:当一个分组到来时,节点必须尽快脱手,将其放入输出队列最短的方向上排队,而不管该方向通向何方。(孤立动态路由选择算法,不一定是最短路径)
计算机网络逻辑功能分层:
- 资源子网:主计算机系统、终端、连网外设、各种软件资源与信息资源
- 通信子网:通信控制处理机、通信线路与其他通信设备
计算机网络定义
一个自主的互连的计算机系统的集合
特征:节点有独立内存和CPU,需要网络协议支持
计算机网络的分类
按照覆盖范围分类
- 广域网WAN
- 都市网MAN
- 局域网LAN
按照服务类别分类
- 传输网:提供各种数据传输信道
- 数据网:使用传输网,提供各种数据传输业务
- 计算机网:使用传输网或数据网,提供面向网络应用的传输服务
按照隔离模式分类
- 公用网
- 专用网(专用信道上或公用数据网VPN)
- 合作网
计算机网络的拓扑结构
两级结构的计算机网络
资源子网(用户子网)和通信子网
信道连接方式
- 点-点信道
- 广播信道
拓扑结构
- 总线:结构简单;单点故障可能影响全网
- 星型:扩展方便;对中心节点依赖较大
- 树型:扩展方便;对给叶子节点依赖大
- 环型:结构简单,扩展方便;单点故障可能影响全网
- 网状:扩展方便;冗余太多
云计算
定义:是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够按需获取计算力、存储空间和信息服务。
云计算服务的部署形式
SaaS应用云——salesforce的CRM
PaaS平台云——Google App Engine
Iaas基础设施云——亚马逊S3
Google云计算
云计算思路
- 应用向互联网迁移
- 数据向互联网迁移
- 计算能力向互联网迁移
- 存储空间向互联网迁移
云计算平台技术架构
- 分布式文件系统GFS
- 并行数据处理MapReduce
- 分布式锁Chubby
- 结构化数据表BigTable
GFS
设计原则:
- 机器失效不能视为异常现象
- 能应付大型/超大型文件处理
- 支持大量用户同时访问
组成:
GFS集群:一个Master和多个ChunkServer(块服务器)组成,并可以多客户端Client访问
设计要点:
- 每个文件拆成若干64M文件Chunk组成
- 每个Chunk都有Master根据其创建时间指定Chunk Handle(64)
- 文件块被保存在ChunkServer本地磁盘中
- 缺省情况下3处热备份Chunk块文件
Client职责:
- 包含文件系统的API
- 负责和ChunkServer和Master通信
- 负责应用程序进行读写操作
- Client和Mater进行元数据操作
- Client和ChunkServer进行文件数据操作
Master职责:
- 负责管理所有文件系统的元数据
- 元数据包括:命名空间、访问控制信息、文件到Chunk的映射信息等
ChunkServer职责:
- 负责存储Chunk文件块
- Linux文件系统
Q:为什么文件要被划分成为64M
Answer
- 可以减少Client和Master之间的交互,减少Mater的负载
- 客户端可以在一个Chunk中完成许多操作
- 可以减少TCP三次握手时间。另外这些信息都要被Master管理
缺点:有冗余
架构特点:
-
采用中心服务器模式Master
- 方便增加Chunk Server
- Master张问系统内所有Chunk Serve的情况,方便负载均衡
- 不存在元数据的一致性问题
-
不缓存数据
- 必要性:Client流式读取,非重复读取
- 可行性:Mater本身管理多个Server,很复杂
容错机制
Chunk Server容错
- 每个Chunk有多个存储副本(默认3个),分别存储于不同服务器上
- 每个Chunk又划分若干Block(64KB),每个Block对应一个32bit的校验码,保证数据正确(若某个Block错误,则转移到其他Chunk副本)
Mater容错
- 三类元数据:命名空间(目录结构)、Chunk与文件名的映射以及Chunk副本的位置信息
- 前两类通过日志提供容错,Chunk副本信息存储于其他Chunk Server。这样Master出现故障时可恢复。
MapReduce
由普通PC组成的集群来处理超大规模的数据
容错机制
Worker容错
Master周期性的ping每个worker
Master容错
- Master周期性的将Master的数据结构写入磁盘,级检查点checkpoint
- Master数据结构包括:Map和Reduce任务的状态(空闲、工作中或完成)以及Worker机器(非空闲任务的机器)的标识
网络体系结构
什么是
网络为什么要分层
- 简化网络设计的复杂层度
- 网络协议分成若干层
- 每层完成确定的功能
- 下层为上层提供服务,上层利用下层的服务
- 两个系统对应层之间按对等协议进行通信
优缺点
优点:
- 模块化好:协议便于管理和维护
- 功能抽象好:可以单独改变某个层次的实现
- 可复用:上层可以复用第层提供的功能
缺点:信息隐藏:实现效率降低
结构化的分层及各层通信协议的总和就是计算机网络的体系结构
对于分层的系统,通常协议也是分层的,此种协议是双方同层实体在通信时使用的规则
协议通常包括所传输数据的格式、使用哪些协议控制信息、差错控制方案及在计时与时序上的有关的约定
ISO/OSI RM
可以提供面向连接和无连接的服务
物理层:规定了介质与插接件的规格、信号的制式、收发与转发设备的性能、插接件各针的功能定义以及建立连接、传送位流和拆除连接的操作规程在物理媒体上透明地传输比特流(Bit)
传输数据单位:比特流
不是传输媒体
- 机械特性
- 电气特性
- 功能特性
- 规程特性
数据链路层:无差错地传输帧:组建数据帧、实现帧同步、按帧进行检错、重发出错帧、根据需要进行流量和顺序控制等在链路上无差错的传送帧
传输数据单位:帧frame
停等协议
点对点可靠通信
网络层:如何将分组从源传送到目的地分组传送,路由选择和流量控制
数据传输单位:分组packet
传输层:计算机与通信子网间的界面,提供有效、可靠且价格合理的端对端的通信服务,从端到端(主机到主机)经网络透明地传输报文端到端可靠的数据传输
传输数据单位:报文
可以提供面向连接和无连接的服务
会话层:不同主机的不同进程间的通信会话管理与数据传输的同步
表示层:为通信双方的应用层实体提供共同的表达手段,使双方能正确地理解所传送的信息数据格式转换
应用层:与最终用户的接口
TCP/IP RM
数据链路层:采用现成的局域网协议
网络层:四个协议
- IP
- ICMP
- ARP
- RARP
传输层:
- TCP
- UDP
应用层:
- SMTP
- DNS
- FTP
- HTTP
- Telnet
缺点
- 没有区分服务、接口、协议
- 不通用,不能用于描述任何其他协议栈
- 没有区分物理层和数据链路层
TCP/IP与OSI的对比
网络体系结构的基本概念
服务:说明一层做什么
接口:如何获取服务
协议:服务是如何实现的
实体:任何可以发送或接收信息的硬件/软件进程,每一层中的活跃元素
局域网技术
LAN
以太网Ethernet和IEE802.3
包括数据连接层(LLC、MAC)和物理层,LAN对LLC子层透明,仅在MAC子层才可见LAN的标准
LAN标准的区别在MAC子层
不同局域网的差异是在物理层和MAC层
以太网解决多台主机共享信道的方法是载波侦听多路存取(Carrier Sense Multi Access,CSMA)。
在CSMA/CD中,发送者边发送边监听(listen while talking),只要检测到冲突,则立即停止发送数据,并发出一个特殊信号,通知其他主机发生了冲突。然后等待一段时间重新开始。载波监听、冲突检测、多路访问
数据最小帧长度
10Mbit/s以太网是半双工,最短帧长是64字节,即512比特,曼彻斯特编码
百兆以太网,最小帧长依旧是64字节,编码使用4B/5B
千兆以太网GE,修改了帧长度,增加了扩展字段
万兆以太网10Gbit/s,光纤链路技术,全双工
MAC帧
IEEE802.3 MAC标准只处理地址(各6字节)、长度(2字节)、数据/填充(46~1500字节)和FCS(4字节,使用CRC校验)字段,而前导(preamble)和帧开始定界符(Start of Frame Delimiter,SFD)字段由物理层处理,前导和SFD不是MAC帧的字段,它们和MAC帧构成以太网帧。
物理层使用它们把MAC帧封装到物理层的数据结构中
网卡
功能:串并转换
计算机到网卡是并行,网络传输是串行
IEEE802.3适合轻负载
以太网适合轻负载、长报文
IEEE802.5:令牌环
适合重负载
数据优先级高于令牌优先级的才能抓住
转一圈优先级降低
IEEE802.4:令牌总线
物理上是总线网,逻辑上是令牌网
网络连接
网卡
属于数据链路层/物理层
- 实现MAC
- 数据封装和解封
- 设备物理MAC地址
- 链路管理
- 部分物理层功能
- 编码、译码
- 发送和接收网络信号并转换
中继器
物理信号的放大和再生
集线器和集中设备
hub物理层
路由器属于网络层
交换机可以用于网络层互联
网桥与以太网交换机
网桥工作在数据链路层,具有过滤帧功能
数据链路层互联设备包括网桥和交换机
快速局域网
快速以太网
- 100M
- 相同帧结构
- 相同介质访问控制方法CSMA/CD
- 相同组网方法,双绞线、星型
4B/5B、8B/6T、PAM5*5
千兆以太网Gigabit
以便解决服务器瓶颈问题、网络中链路交汇点拥塞问题
- 1000M
- 相同帧格式
- 相同介质访问控制方法
- 相同组网方法
8B/10B、PAM5
增加扩展字段,帧最大长度由1518字节到1966字节,最小帧长度依旧是64字节
全双工
交换机连接计算机或其他交换机时,无冲突
半双工
交换机连接集线器时
流量控制
数据接收端发现接收缓冲区快用完,向对端发送PAUSE帧;(帧类
型Ox8808)
- (1)在时间槽之后检测到冲突时,放弃发送,不重传。因为在时间槽内有效数据已经发送完毕,如果重传,会导致接收方收到重复帧。
- (2)为提高载波扩展导致的效率降低,千兆以太网采用了帧突发(bursting)技术
帧突发
- 要发送一个帧时,突发定时器同时被启动。
- 当这个帧发送完毕之后,若突发定时器计时时间没到(此时介质仍然被发送方控制着),则还可以继续发送后续帧,这时后续帧就不需要进行载波扩展
10G以太网
只支持全双工
头部添加了长度(2字节,MAC帧长度)和头部差错校验字段HEC(CRC-16校验)
前导字段由7字节到5字节
编码方式:8B/10B、64B/66B
广域网
64B/66B,使用PCM脉冲编码调制
反射内存网络
交换技术
局域网分段
分段设备:bridge、router、switch
透明网桥
选路方法:网桥收到来自LANx的帧,查站表
- 若目的LAN=LANx,则丢弃此帧
- 若目的LAN在站表中,则向目的LAN转发(不是来源的端口)
- 若目的LAN不在站表中,则用洪泛法(即向除x之外的所有端口)转发
逆向学习
源站选路网桥
由源站选择路由,路由信息放在帧首
- 源站向目的站发送探测帧,该帧在扩展的LAN中沿所有可能路由传送
- 每个探测帧都记录下它所经过的路由
- 探测帧到达目的站后,再沿各自路由返回源站
- 由源站选择其中的最佳路由,作为发送帧中的路由
网桥:冲突域是端口,广播域是所有网端
集线器/路由器:广播域/冲突域是所有网络和端口
Vlan
Vlan划分策略
基于端口
基于MAC地址
IP地址
数据的协议类型
Vlan链路类型
干道链路Trunk-link
接入链路Access-link
以太网交换机端口分类
Access端口:接用户计算机,只能属于1个Vlan,缺省ID是所在的Vlan
Trunck端口:一般用于交换机之间连接,可以属于多个Vlan,缺省是Vlan1
Hybrid端口:可以交换机之间连接,也可以接用户的计算机,可以属于多个Vlan,缺省是Vlan1
在同一个交换机hybrid端口和Trunk端口不能并存
IEEE802.1Q
转发原则——Access link
- 接受帧
- 不含802.1Q tag header,打上端口PVID;如果包含802.1Q tag header,交换机不作处理,直接丢弃
- 发送帧
- 剥离802.1Q tag header,发出的帧为普通以太网帧
转发原则——Trunk link
- 接受帧
- 不含802.1Q tag header,打上端口PVID;如果包含802.1Q tag header,交则不改变
- 发送帧
- 该帧Vlan ID与端口PVID不同时,直接透传;否则剥离802.1Q tag header
转发原则——Hybird link
-
接受帧
- 不含802.1Q tag header,打上端口PVID;如果包含802.1Q tag header,交则不改变
-
发送帧
- 判断VLAN在本端口的属性。用“dis interface”可看到该端口对哪些VLAN是untag,哪些VLAN是tag,如果是untag则剥离802.1Q tag header 再发送,如果是tag则直接透传。
IEEE802.1Q优点:
- 标准化,任何支持该标准的设备都能够互相兼容
- 灵活性,在现有的以太网帧上添加VLAN标签,使得在不修改现有网络设备和协议的情况下,可以实现VLAN的部署和管理
缺点:额外数据开销,每个VLAN帧都需要添加额外的VLAN标签信息,这增加了帧的大小和网络开销。
ISL优点:
- 封装完整,ISL可以将整个以太网帧封装在一个新的封装帧中,包括帧头、帧数据和帧尾。这使得ISL非常适合在不同品牌或不同型号的设备之间传递以太网帧,不用算两次CRC
- VLAN识别,ISL帧中包含了VLAN标识信息,使得交换设备能够快速准确地根据VLAN标签来识别帧所属的VLAN。
缺点:
-
非标准化,ISL是一个思科专有的协议,不像IEEE 802.1Q协议那样被广泛支持于各种网络设备。因此,使用ISL可能会面临设备兼容性的问题。
-
额外开销,ISL封装会增加帧的大小,增加了网络带宽的消耗。
GVRP应用
GARP和GVRP不给VLAN打标签,802.1Q和ISL给VLAN打标签
GARP通用属性注册协议,只是载体,协议框架
产生原因:过渡交换机必须知道全局VLAN信息,否则无法实现VLAN间通信
GCPR为处于同一个交换网内的交换成员之间提供了动态分发、传播、注册,注销VLAN信息的一种手段
GVRP在交换机上启动,每个GVRP的Trunk端口对应一个GVRP应用实体
GVRP注册类型
Normal
允许在该聚合端口动态创建、注册和注销VLAN
注册:连接的交换机,Vlan1默认有
声明:除port连接的交换机
fixed
允许手工创建和注册VLAN,并且防止VLAN的注销和在其它trunk端口注册此端口所知的VLAN
只有静态属性可以通过
FORBIDDEN
注销除VLAN 1之外的所有VLAN,并且禁止在该端口上创建和注册任何其它VLAN
Vlan路由
vlan的缺点:VLAN隔离了二层广播域,也严格地隔离了各个VLAN之间的任何流量,分属于不同VLAN的用户不能互相通信。
每个VLAN一个物理连接
使用VLAN Trunking
交换和路由集成
三层交换机功能模型
MPLS
push:Ingress接收分组,判定分组所属的FEC,给分组加上Label
swap:在MPLS域中只依据标签和标签转发表通过转发单元转发
pop:Egress将标签去掉,继续转发
倒数第二跳弹出(PHP):最后一跳,最外层标签已没有意义,因此可在倒数第二跳将标签弹出,减少最后一跳的负担
MPLS协议
不用可变长度的IP地址前缀来查找转发表中的匹配项目,而是给每个IP数据报打上固定长度的“标签”,对打上标签的IP数据报用硬件转发(标签交换),不用上升到第三层,大大加快了IP数据报的转发速度
链路层如何判断MPLS报文
- 在以太网中,使用值type的0x8847单播和0x88848组播来表示承载的是MPLS报文,0x0800是IP报文
- PPP中,增加一种新的NCP:MPLSCP,使用0x8281来标识
LDP
动态生成标签的协议,与动态路由协议OSPF相像
主要功能:
- 发布Label-FEC映射
- 建立与维护标签交换路径
使用TCP连接
标签分配和管理
标签分配模式
- DoD:downstream-on-demand 下游按需标记分配
- DU:downstream unsolicited 下游自主标记分配
- 上游与下游:在一条LSP上,沿数据包传送的方向,相邻的LSR分别叫上游LSR和下游LSR。下游是路由的始发者。
标签控制模式
有序
只有收到它的下游返回的标签映射消息后才向其上游发送标签映射消息
独立
不管有没有收到它的下游返回的标签映射消息都立即向其上游发送标签映射消息
标签保持方式
保守模式
只保留来自下一跳邻居的标签,丢弃所有非下一跳邻居发来的标签。
- 优点:节省内存和标签空间。
- 缺点:当IP路由收敛、下一跳改变时LSP收敛慢
自由模式
保留来自邻居的所有发送来的标签
优缺点与上面相反
标签转发表
标签转发表中的IN和OUT,是相对于标签转发而言,不是相对于标签分配的IN和OUT:
- 入标签是我分给别人的,出标签是别人分给我的
- 我写入的标签是给别人用的
VPN概述
- CE(Custom Edge):直接与服务提供商相连的用户设备
- PE(Provider Edge Router):指骨干网上的边缘路由器,
与CE相连,主要负责VPN业务的接入 - P(Provider Router):指骨干网上的核心路由器,主要
完成路由和快速转发功能。
BGP/MPLS VPN
BGP用于解决地址冲突问题,BGP是唯一支持大量路由的路由协议,基于TCP建立连接,CE内部的VPN路由信息
属于Network-based VPN、Peer-to-Peer VPN
工作原理
- 路由信息发布
- 本地CE到入口PE路由信息交换
- 入口PE到出口PE路由信息交换
- 出口PE到出口CE路由信息交换
- VPN报文转发
- 封装两层标签
- 外层标签用于报文在公网上的转发
- 内层标签用于指示报文到达哪个Site
VRF
有一个site就有一个VRF,公网路由表
区分不同VPN中相同IP地址前缀
RD,Route Distinguisher 64bit前缀
VPNV4 Address=RD+IPV4和内层标签相关
RD唯一,VPNV4地址唯一
如何判断将VPNV4路由注入到VRF中
在PE收到邻居的VPNv4路由后,由于VPNv4路由通告中通过扩展团体属性携带了Export RT值,可以根据本地VRF的Import RT值将路由导入到相应的VRF中,路由被注入时RD值会被移除变成IPv4路由
网络层
传输协议:IP
NAT端口映射
IP+Port(16位)
违反了IP的结构模型:每个IP地址均唯一标识一台计算机,端口16位,限制了可以被映射的机器数
CIDR
全 0 和全 1 的主机号地址一般不使用
路由聚合
使得路由表中的一个项目可以表示很多个传统分类地址的路由。
最长前缀匹配
IPv6
源地址只能是单播
目的地址类型:
- 单播
- 多播
- 任播
扩展地址扩展到128位
写法:
- 点分十进制
- 冒号16进制
- 一长串0可以用一对冒号(只能有一个)
IPv4报头
IP数据报首部长度:20B~60B
标识:DF(禁止分片),MF(还有分片)
片偏移为数据长度/8
到IP层前的数据分片需要是2的倍数
网络IP数据报分片则不需要,但是注意首部
IPv6报头
IPV6没有首部检验和,优点是首部处理简单,缺点是可能遇到数据链路层检测不出差错
IPv6扩展报头
分片只源点进行(加快网络种IP数据报的转发速度),资源预分配,即插即用
双栈协议用于过渡/隧道技术
IPv6安全性
认证报头的设计目的是保证报文的安全性和完整性,并提供身份验证功能
分组转发
IP路由协议
动态路由:
- 向量-距离V-D算法
- 链路-状态L-S算法
向量-距离V-D
- 相邻路由器之间周期性地相互交换各自的路由表备份。
- 当网络拓扑结构发生变化时,路由器之间及时相互通知有关变更信息
解决路由环路问题:
- 定义最大跳数
- 水平分割:不会接受由自身传出去的路由信息
- 毒性逆转:将该路由信息的条数标记为无限大
- Hold-Down计时
- 触发更新
RIP
封装在UDP报文中,运行在520端口,Bellman-ford算法使每个路由器到每个目的网络得路由是最短的,“坏消息传的慢”
对于每个相邻路由器发送来得RIP报文,执行以下步骤:
- 对于地址为X得相邻路由器发来得RIP报文,先修改此报文中得所有项目:把“下一跳”字段中得地址改为X,并把所有得“距离”字段+1。每个项目队友三个关键数据,即:到目的网络Net,距离是d,下一跳路由器是X。
- 对修改后得RIP报文中得每个项目执行以下步骤:
- 若原来得路由表中没有目的网络Net,则把该项目添加到路由表中
- 否则(即在路由表中有目的网络Net,这时再查看下一跳路由器地址)若下一跳路由器地址是X,则把收到得项目替换原路由器中得项目(因为这是最新得消息)
- 否则(即:到目的网络Net,但下一跳路由器不是X),若收到得项目中得距离d小于路由表中得距离,则进行更新
- 否则什么也不做
- 若3分钟没有收到相邻路由器得更新路由表,则把相邻路由器记为不可达,即把距离设置为16
- 返回
链路-状态算法
链路状态网络发现机制
- 发现邻节点及它们的地址
- 计算到各邻节点的COST
- 将收集到的信息组装成LSP
- flooding LSP
- 路由计算
如何保证所有路由器收到所有必需的LSP
- 延长LSP的发送周期;
- 以多播发送LSP代替广播发送。在由多个LAN互连组成的网络中,以指定路由器存放各路由器发送的LSP,其它路由器通过这些指定路由器获得一致的拓扑数据;
- 在大型网络中,设定由不同区域组成的层次结构。某一级区域中的路由器不必存储和处理来自所有不同区域路由器的LSP;
- 使用LSP时间戳、顺序号等手段来解决LSP发送过程中的顺序问题。
OSPF
IP
层次化的路由选择协议
OSPF 支持的三种网络连接
- 两个路由器之间的点对点连接
- 具有广播功能的局域网,需要选举DR和BDR
- 无广播功能的广域网 ,需要手动指定DR和BDR
边界网关协议BGP
BGP 是在自治系统间使用的协议确保交换无环路的路由信息
只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
BGP邻居
任何两个建立了TCP连接以交换BGP路由信息的路由器称为peers 或 neighbors
当 BGP neighbors 属于同一个 AS,IBGP Neighbors 不需要直接连接
当BGP neighbors 属于不同的AS,EBGP Neighbors 必须直接连接
BGP属性
Well-konw属性:
- Well-known attributes必须通过所有兼容的 BGP 应用的验证被通告给其他的 neighbors
- Well-known mandatory attributes必须能被所有的更新信息表达
- Well-known discretionary attributes能被更新信息表达
BGP路径属性:
- Origin * : 起源
- AS_PATH * : AS路径
- NEXT_HOP * : 下一跳
- MULTI_EXIT_DISC: 多出口鉴别
- LOCAL_PREF:本地优先
- AGGREGATOR:聚合者
- COMMUNITY:团体
BGP路由
BGP 有自己的路由表, 独立于 IGP 路由表可以在路由表之间交换路由
在一个AS内的BGP不属于IGP
IGP是内部网关协议,在AS内部实现路由信息的交换;BGP是边界网关协议,在AS之间实现路由信息的交换
IGP:
- 每台路由器上都改变目的网络的下一跳地址
- 自动发现并形成邻居关系
IBGP:
- 不改变目的网络的下一跳属性
- 需要手工配置
路径偏好度分配的度量标准:
AS计数越小,路径越佳
- 策略的考虑
- 路径来源:完全由BGP获得的路径比部分有EGP或其他协议获得的要好
- AS路径子集
- 动态链路:稳定的路径优先
- 如果下一跳节点无法访问,不考虑该路径;
- 优先BGP管理权重高的路径;
- 优先考虑有较高偏好度的路径;
- 本地偏好度相同,选择本地路由器产生的路径;
- 若AS所有路径长度相同,选有较低起源的路径(IGP<EGP<Incomplete)
- 起源相同,且所有路径来自同一AS,选MED低的路径;
- 若MED相同,较之内部路径,优先选外部路径;
- 若IGP同步关闭,且只有内部路径,选最近邻居.
路由决策前提:
- 下一跳不可达
- 路径未同步,但同步功能被启用了
- 路径被入境BGP策略拒绝,且路由器配置了soft reset温和重置
- 路由被惩罚dampened
路由选择过程:
- Cisco设备先选WEIGHT值最高的(本地始发为32768,其他路径0);
- LOCAL_PREF值最高的路径优先(默认100);
- 基于始发地评估,本地始发的路径优先,然后依次是default-originate(针对每个邻居配置), default-information-originate (针对每种地址簇配置), network, redistribute ,aggregate-address;
- AS_PATH列表最短的优先
- ORIGIN类型最低的优先;
- MED小的优先;
- 到下一跳的IGP度量最低的路径优先;
- 当两条路径都是外部路径时,优先最先收到的路径;
- 优先具有最低路由器ID的BGP路由器的路径;
- 优先cluster_list长度最短的路径;
IP多播
多播网络的体系结构
- 多播地址
- 多播树
- 多播协议
多播源和接收者以及两者之间的下层网络都必须支持多播:
- 主机的TCP/IP实现支持发送和接收IP多播
- 主机的网络接口(网卡)支持多播
- 主机加入、离开、查询的组管理协议IGMP-v1,v2,v3
- 支持IP多播的应用软件
- 介于多播源和接收者之间的路由器、集线器、交换机、TCP/IP栈、防火墙均需支持多播
多播地址分配方案
IPv4:D类地址
- 预留多播地址(永久)224.0.0.0-224.0.0.255用于全球范围或网络协议
- 用户多播地址(临时)224.0.1.0-238.255.255.255可用于公网
- 本地管理多播地址239.0.0.0-239.255.255.255组织内部使用,用户限制多播范围
多播树
泛洪法Flooding
向前传送多播路由算法,不构造分布树
当多播路由器收到发往某个多播地址的数据包后,首先判断是否是首次收到该数据包
- Yes:则将其转发到所有接口上,以确保其最终能到达所有接收者
- No:则抛弃该数据包
有源树
多播源作为root
共享树
RP树
为每个多播组选定一个共用根(RP或核心),以RP为根建立的多播树
有核树CBT (Core Based Trees)
有核树由根到所有组成员的最短路径合并而成
Steiner树
- Steiner树是总代价最小的分布树,它使连接特定图中的特定组成员所需的链路数最少
- Steiner树相当不稳定,树的形状随组中成员关系的改变而改变,且对大型网络缺少通用的解决方案
多播协议
IGMP负责建立并维护路由器直联网段(局域网内部)的组成员关系信息
IGMP
- IGMP 并非在互联网范围内对所有多播组成员进行管理的协议。
- IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。
- IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。
- 主机可以用IGMP加入/退出某个多播组
- 路由器可以用IGMP查询本地包含的多播组
多播路由协议
多播路由选择实际上就是要找出以源主机为根结点的多播转发树。
- 密集模式协议
- 通常用于多播成员较为集中、数量较多-网络的大部分用户、并且有足够带宽的网络环境
- DVMRP:距离向量多播协议
- PIM-DM:协议无关多播-密集模式
- MOSPF:开放式多播最短路径优先
- 稀疏模式协议
- 稀疏分布、也没有充足带宽环境,如广域网
- PIM-SM:协议无关多播-稀疏模式
- CBT:有核树多播协议
DVMRP
由单播路由协议RIP扩展而来
逆向转发检查RPF
MOSPF
基于链路状态的路由协议,单播OSPF协议应用于多播
PIM
CBT
传输层
基于端口的复用和分用
UDP
用户数据报协议UDP是面向报文的,无连接,尽最大努力交付,没有拥塞控制,支持单播、多播、广播,不提供可靠交付,首部开销小
UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界
对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文
- 复用和分用
- 差错检测
TCP
传输控制协议,支持点对点单播,提供可靠服务
- TCP 是面向连接的运输层协议。
- 每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点
对点的(一对一)。 - TCP 提供可靠交付的服务。
- TCP 提供全双工通信。
- 面向字节流
首部最小长度是20字节
以字节为单位的滑动窗口
TCP如何保证端到端的可靠传输
- 建立连接:通过三次握手建立连接,保证连接实体真实存在
- 序号机制:保证数据是按序、完整到达
- 合理分片:tcp会按最大传输单元(MTU)合理分片,接收方会缓存未按序到达的数据,重新排序后交给应用层。
- 数据校验:TCP报文头有校验和,用于校验报文是否损坏
- 超时重传:如果发送一直收不到应答,可能是发送数据丢失,也可能是应丢失,发送方再等待一段时间之后都会进行重传。
- 流量控制:当接收方来不及处理发送方的数据,能通过滑动窗口,提示发送方降低发送的速率,防止包丢失。
- 拥塞控制:网络层拥堵造成的拥塞,包括慢启动,拥塞避免,快速重传三种机制
利用滑动窗口可以在TCP连接上实现流量控制
拥塞控制
基于窗口进行拥塞控制
真正的发送窗口值=Min(接收方窗口值,拥塞窗口值)
- 慢开始
- 拥塞避免
- 快重传
- 快恢复
慢开始门限 ssthresh 的用法如下:
- 当 cwnd < ssthresh 时,使用慢开始算法。
- 当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥
塞避免算法。 - 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使
用拥塞避免算法
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(重传定时器超时):
- ssthresh = max (cwnd/2,2)
- cwnd = 1
- 执行慢开始算法
发送方只要一连收到三个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传(即“快重传”)
快恢复算法 FR (Fast Recovery) 算法:
- 慢开始门限 ssthresh = 当前拥塞窗口 cwnd / 2 ;
- 新拥塞窗口 cwnd = 慢开始门限 ssthresh ;
- 开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大。
可靠传输
停止等待协议
- 超时重传
- 编号
- 确认丢失
- 确认迟到
连续ARQ协议
- 发送方一次可以发出多个分组。
- 使用滑动窗口协议控制发送方和接收方所能发送和接收的分组的数
量和编号。 - 每收到一个确认,发送方就把发送窗口向前滑动。
- 接收方一般采用累积确认的方式。
- 采用回退N(Go-Back-N)方法进行重传。
TCP连接
QUIC
快速UDP网络连接,基于UDP协议的
QUIC的功能上相当于:TCP的可靠传输 + TLS的安全加密
- 首次建链需要1-RTT来交换加密秘钥信息
- 后续的交互只能0-RTT就能完成:建链的同时发送数据
无队列头阻塞
连接迁移
QUIC底层使用的UDP,本身就不需要连接,而QUIC的连接是基于ID来识别唯一的,ID保存在用户手机和对端上,所以网络切换时,不需要另外重新建立连接。
前向纠错
FEC(Forward error correction)是指在发送数据包时,提前多发一个或多个数据包,通过编码技术,将多发的包和原始包编码后一起发送。如果原始的数据包丢了一个,就能通过多发的包恢复回来。
SDN
主要特征:
-
转控分离:网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上。
-
开放接口:第三方应用只需通过控制器提供的开放接口,通过编程方式定义的网络功能,在控制器上运行即可。
-
集中控制:设备网元通过控制器集中管理和下发流表,不需要对设备进行逐一操作,只需要对控制器进行配置。
网络部署方式:
- 基于专用接口:硬件和软件紧耦合
- 基于叠加网络:Overlay
- 基于开放协议:硬件和软件松耦合
网络体系架构模型
OpenFlow
协议用于控制器与交换机之间下发流表
流表匹配规则:
- 当报文进入Switch后,必须从最小序号的流表开始依次匹配;
- 流表可以按次序从小到大越级跳转,但不能从某一流表向前跳转至编号更小的流表;
- 成功匹配一条流表项后,先更新该表项的统计数据(更改计数器) ,再根据表项中的指令进行操作;
- 当报文处于最后一个流表时,其对应的动作指令集合中的所有动作指令都被执行完成,包括转发至某一端口,修改某一字段,丢弃报文等。
- 每个流表都包含一个Table Miss流表项,用于定义没有匹配的报文的处理方式,该表项的匹配域为通配,即匹配任何报文,优先级为0,Instructions
与正常表项相同。 - 如果Table-Miss表项不存在,默认行为是丢弃报文。
网络安全概述
网络受到威胁的原因
协议自身缺陷
- 网络协议的弱点
- 网络操作系统的漏洞
- 应用系统设计的漏洞
- 网络系统设计的漏洞
恶意攻击
- 来自合法用户的攻击
- 互联网的开放性
应用软件漏洞
网络安全定义
保护在公用通信网络中传输、交换和存储的信息的机密性、完整性和真实性,并对信息的传播及内容有控制能力
- 机密性
- 完整性
- 真实性
- 可用性
网络攻击
攻击的一般步骤:
- 探测
- 扫描
- 查看目标主机信息
- 渗透
- 巩固权力
- 消除痕迹
网络防护技术
身份认证
访问控制
防火墙
内部网络和外部网络的隔离
集中式防火墙
-
包过滤防火墙
-
双重宿主主机防火墙
-
屏蔽主机防火墙
-
屏蔽子网防火墙
分布式防火墙
嵌入式防火墙
VPN
专用虚拟网,使一个机构中分布在不同场所的主机能够像一个本机构的专用网那样通信
类型
- 远程访问VPN:外地员工使用
- 内部网VPN:本机构内部网络构成的
- 外部网VPN:有外部机构参加
隧道技术
优点是价格上比专用网便宜
缺点是技术复杂,安全性问题
入侵检查系统IDS
分类
- 基于主机的入侵检测
- 基于网络的入侵检测
检测分析技术
- 异常检测技术
- 误用检测技术
软件松耦合