网络层
概述
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。 传输单位是数据报
功能: 1. 路由选择与分组转发 2. 异构网络互联 3. 拥塞控制 拥塞是所有节点都来不及接收分组而需要丢弃数据,是一种全局状态。 有两种解决方式: 开环控制(静态)、闭环控制(动态)
数据交换方式
电路交换
建立连接(呼叫/电路建立) -- 通信 -- 释放连接(拆除电路)
特点: 建立连接后就要占用信道,哪怕不说话(即独占资源)
优点:
1. 通信时延小
2. 有序传输
3. 没有冲突
4. 实时性强
缺点:
1. 建立连接时间长
2. 线路独占,使用效率低
3. 灵活性差(有一个交换设备错则整体崩溃)
4. 无差错控制能力
报文交换
不建立连接,利用交换设备(交换机)的存储转发功能,将报文(即信息整体)从源
主机发送到目的主机。(报文传输过程路径不固定,动态随机)
优点:
1. 无需建立连接
2. 存储转发,动态分配线路
3. 线路可靠性较高
4. 线路利用率高
5. 多目标服务(一个报文可以有多个目的地址)
缺点:
1. 有存储转发时延
2. 报文大小不定,需要网络节点有较大缓存空间
分组交换
把大的数据块分割成小的数据块,在传输时依次发送每个分组(不必等上一个分组的确认就可以发下一个分组
可以认为是连续发送分组)
优点:
1. 无需建立连接
2. 存储转发,动态分配线路
3. 线路可靠性高
4. 线路利用率高
5. 相对于报文交换,存储管理更容易(因此每个分组数量块小)
缺点:
1. 有存储抓发时延
2. 需要传输额外的信息量(分组编号等信号)
3. 乱序到目的主机时,要对分组配许重新组,需要一定时间
分组交换是并行传输,要比报文交换效率高,总体时延要小
总结:
1. 报文交换和分组交换都采用存储转发
2. 传送数据量大,且传送时间远大于呼叫时,采用==电路交换==。电路交换传输时延最小。
3. 从信道利用率看,报文交换和分组交换优于电路交换,其中分组交换时延更小。
分组交换又分为数据报方式和虚电路方式:
- 数据报方式为网络层提供无连接服务
不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径不同
无连接、每个分组携带目的地址、路由器根据分组的目的地址转发分组,每个分组独立选路、不保证有序
不可靠、网络故障适应性强
- 虚电路方式为网络层提供连接服务
首先为分组的传输确定传输路径(建立连接),然后沿该路径传输系列分组,系列分组传输路径相同,
传输结束后拆除路径。
有连接、仅在连接建立时使用目的地址之后使用虚电路号、同一虚电路的分组按同一路由转发、保证有序到达
网络古装适应性差
几种传输单元名词辨析
应用层 报文
传输层 报文段(根据什么标准分割)
网络层 IP数据报,分组
链路层 帧
物理层 比特流
路由算法
路由表/转发表
目的网络地址| 子网掩码 | 下一跳IP地址 | 接口
(路由算法会得到一个最佳路由,填到路由表中)
路由算法分为静态路由算法、动态路由算法
- 静态路由算法(非自适应路由算法) 手工配置路由信息
- 动态路由算法(自适应) 路由器直接彼此交换信息,优化出路由表项
动态路由算法又分为 全局性和分散性
- 全局性,链路状态路由算法,如OSPF协议,所有路由器掌握完整的网络拓扑和链路费用信息
- 分散性,距离向量路由算法,如RIP协议,路由器只掌握物理相连的邻居及链路费用
为了减少路由表项,对外隐藏本网的路由协议,则使用分层次的路由选择协议。
在单一的技术管理下的一路路由器,称为一个自治系统AS。
路由选择协议则可分为内部网关协议(AS内部使用,如RIP、OSPF协议)和外部网关协议(AS之间使用,如BGP协议)
路由选择协议
内部网关协议(RIP 基于距离向量算法,小网络, OSPF 基于链路状态,大网络)
RIP协议和距离向量算法
基于距离向量的的路由选择协议,最大优点是简单。
RIP协议要求每个路由器都维护一个**从它自己到每个目的网络的唯一最佳距离记录**,这里的距离为“跳数”,
即从源端口到目的端口所经过的路由个数,最大值15,16表示不可达。
和谁交换?多久交换一次?交换什么?
1. 仅和**相邻路由器**交换信息
2. 交换的信息是**自己的路由表**
3. 每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s还没收到相邻路由器的通告,
则判定邻居没了,并更新自己路由表(将原来通过邻居的表项删除)。
刚开始时路由器只知道自己直连的网络,经过若干次更新,所有路由器最终都会知道到达本自治系统
任何一个网络的最短距离和吓一跳路由器的地址。
距离向量算法的主要思路
1. 修改相邻路由器发来的RIP报文中的所有表项
对地址为X的相邻路由表发来的RIP报文,把“下一跳”字段中的地址改为X,并把所有的距离字段+1
2. 对修改后的RIP报文(格式: 网络Net3, 距离2+1, 下一跳X),进行筛选和比对
(1)R1路由表中没有Net3,则该项目填入路由表
(2)R1中有Net3,则查看下一跳路由器地址
如果是X,则用收到的项目替换路由表中的项目
如果不是X,如果收到的项目距离更短则更新,否则不作处理
3. 若180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16(路由表中下一条为X的记录都已经不可达了?)
RIP协议是应用层协议,使用UDP传送数据;最多可包括25条路由表项,超过时需要发送多次
RIP协议好消息传的快,快消息传的慢(即标记为16不可达的消息)
OSPF协议
基于链路状态路由算法,适用于大网络
和谁交换?交换什么?多久交换?
1. 使用泛洪法向自治系统内所有路由器发送信息,方法是向相邻路由器发送信息,而每一个相邻路由器再一次将此消息发送到它自身的相邻路由器
(有点像广播?)
最终整个区域内所有路由器都得到了这个信息的一个副本
2. 交换的信息是本路由器**相邻的所有路由器的链路状态(本路由器和哪些路由相邻,以及该链路的度量/代价--费用、距离、时延、带宽等)**
ps:RIP协议交换的是路由表表项
3. 只有**链路状态发生变化时**, 路由器才向所有路由器泛洪发送此信息。
最终,所有路由器都能建立一个**链路状态数据库**,即全网拓扑图。
链路状态路由算法主要思路
1. 每个路由器发现相邻节点【hello问候分组】,了解相邻节点的玩了过地址
2. 设置到它的每个邻居的成本度量metric
3. 构造【DD数据库描述分组】,向邻站给出自己链路状态数据库中所有项目的摘要信息
4. 邻站收到后,对于其中的摘要,如果自己有则不做处理;如果没有,则发送【LSR链路状态请求分组】,请求自己没有的信息
5. 收到LSR分组后,发送【LSU链路状态更新分组】
6. 接收LSU并更新完成后,发送【LSAck链路状态确认分组】
则每个路由器的链路状态发生变化时,直接泛洪发送更新分组,收到此分组的站点恢复确认分组进行确认
7. 使用Djjkstra算法根据自己的链路状态数据库构造出 到每个站点的最短路径
OSPF使用IP数据报传送,属于网络层协议。
特点:
1. 每隔30min,刷新数据库中的链路状态
2. 互联网规模大是,OSPF协议比RIP协议要好
3. 不存在坏消息传的慢问题,其收敛速度快
BGP协议
外部网关信息,用于AS之间交换信息
和谁交换?交换什么?多久交换?
与其他AS的BGP发言人交换信息;交换网络可达性的信息,即要到达某个网络所要经过的一系列AS;发生变化时才会更新有变化的部分
BGP报文项是各AS的路径向量,和RIP类似。
BGP是应用层协议,使用tcp传输。
三个协议的区别,见图表整理
|