• 沒有找到結果。

第5章 网络层 

N/A
N/A
Protected

Academic year: 2022

Share "第5章 网络层 "

Copied!
329
0
0

加載中.... (立即查看全文)

全文

(1)

5章 网络层

  网络层主要解决的问题

  路由选择

  网络互连

  拥塞控制

  为上层提供服务

(2)

5章 网络层

  网络层设计的相 问题

  路由算法

  拥塞控制

  服务质量

  网络互联

  因特网中的网络层

(3)

网络层的设计

 

存储转发的数据包交换

 

为传输层提供的服务

 

面向无连接服务的实现

 

面向连接服务的实现

 

虚电路子网和数据报子网的比较

(4)

存储转发的数据包交换

 

数据包 Packet

 

存储转发 Store and Forward

 

路由器 Router

 

交换 Switching

 

通信子网 Communication Subnet

 

资源子网 Resource Subnet

(5)

网络层协议环境

A

B

C

D

E F

Router Carrier’s equipment

LAN Packet

H1 H2

Process P1

Process P1

Tnbm P344 Fig. 5-1 网络层协议环境

(6)

网络层的设计

 

存储转发的数据包交换

 

为传输层提供的服务

 

面向无连接服务的实现

 

面向连接服务的实现

 

虚电路子网和数据报子网的比较

(7)

为传输层提供的服务

  服务应与路由器技术无

  路由器的数量、类型和拓扑结构对 于传输层来说应是不可见的

  传输层所能获得的网络地址应采用

统一的编址方式,并允许跨越多个

LAN和WAN

(8)

网络层提供的服务类型

  面向无连接服务:网络是不可靠的,网络服务不应面向 连接,分组的排序和流控制应不属于网络层,每个分组 都单独寻径,所以必须携带完整的目的地址

Internet

  面向连接的服务:网络应该提供可靠的、面向连接的服 务,否则服务质量将无从谈起,尤其对于多媒体应用

对于网络层提供的服务有 观点:

(9)

网络层的设计

 

存储转发的数据包交换

 

为传输层提供的服务

 

面向无连接服务的实现

 

面向连接服务的实现

 

虚电路子网和数据报子网的比较

(10)

面向无连接服务的实现 (数据报子网)

路由器A按左边的

路由表运行,后 来发现如到E和F

应该走B才更好,

于是更新路由表

A

B

C

D

E F

Router Carrier’s equipment

LAN Packet

H1 H2

Process P1

Process P1

1

A - B B C C D B E C F C

A - B B C C D B E B

A A B A C - D D E E F E

A C B D C C D D E - F F

A的路由表 C的路由表 E的路由表

(11)

网络层的设计

 

存储转发的数据包交换

 

为传输层提供的服务

 

面向无连接服务的实现

 

面向连接服务的实现

 

虚电路子网和数据报子网的比较

(12)

面向连接服务的实现 (虚电路子网)

H1和H2已建立

1#连接

H3要和H2建立

连接只能是

2#

H1 1 H3 1

入口

F 1 F 2

出口 E 1

E 2 出口 C 1

C 2 出口 A的路由表

Tnbm P348 Fig. 5-3 虚电路子网中分组的寻径

A

B

C

D

E F

Router Carrier’s equipment

LAN Packet

H1 H2

Process P1

Process P1

1 H3

Process P3

A 1 A 2

入口

C的路由表

C 1 C 2

入口

E的路由表

(13)

网络层的设计

 

存储转发的数据包交换

 

为传输层提供的服务

 

面向无连接服务的实现

 

面向连接服务的实现

 

虚电路子网和数据报子网的比较

(14)

虚电路子网和数据报子网的比较

数据报子网 虚电路子网 建立电路连接 不需要 需要

寻址 每个分组包含完整的源

和目的地址 每个分组包含一个很短的虚电路号 状态信息 路由器不保留连接的状

态信息

每条虚电路要求为每个连接提供路 由表空间

寻径 路由器为每个分组独立 寻径

寻径在虚电路建立时完成,此后,

所以分组按此路径传输 路由器故障的

影响

除路由器崩溃,所以分 组丢失,否则无影响

所有通过该故障路由器的虚电路全 部终止

服务质量 困难 对每条虚电路,沿途的路由器如有 的资源可分配,则很容易实现 拥塞控制 困难 对每条虚电路,沿途的路由器如有

的资源可分配,则很容易实现

(15)

虚电路子网 /数据报子网的比较 (续)

 

虚电路子网

 

通过路径选择后建立连接

 

分组按序传输

 

服务质量能得到保证

 

通信后撤销连接

 

适合于实时传输

 

数据报子网

 

每个分组分 选择最佳路径,健壮性较好

 

整个网络系统的信道利用率高,成本低

 

差错控制和排序工作由协议高层(主机)完成

 

适合于非实时传输

(16)

5章 网络层

  网络层设计的相 问题

  路由算法

  拥塞控制

  服务质量

  网络互联

  因特网中的网络层

(17)

路由算法

 

路由算法是网络层软件的一个重要部分,

它决定进入的分组应从 一根输出线传输

 

如果是数据报子网,将在每一个分组到达 时作此决定

 

如果是虚电路子网,是在虚电路建立时决 定,该连接上所有分组都将沿此线路传输

 

路由与转发:路由是寻径,转发是当一个

分组到达时发生的动作

(18)

路由算法 (续)

  路由算法设计必须考虑的问题

简单性 健壮性 稳定性 公平性 最优性

  路由算法中的度量标准

  路径长度

  hop数

  延迟时间

(19)

路由算法 的分类

  静态算法

  自适应算法

  拓扑相 的路由算法

  移动节点的路由

  Ad-hoc网络的路由

(20)

静态算法 static routing)

  最短路径算法( Dijkstra)

  扩散法( flooding)

为路由器配置一张最优的路由表

(21)

最短路由选择( Dijkstra) !

 

Dijkstra算法(1959):通过用边的权值作为 距离的度量来计算最短路径,有最少边数的路 径不一定是最短路径

1

6 7

4 2 3

9

11

5

3 2

8 6

3

5

如下图:

5和4之间边数最少的路径是5234但最短路径是523674

(22)

采用的数据结构

  集合 S:尚未找到最短路径的节点 的集合

  数组 R:R[i]为从指定源点去节点i 的路径上,节点i的前一个 节点

  数组 D:D[i]为从指定源点到节点i

的最短距离

(23)

算法的初始化

 

初始化集合 S为除源节点外的所有节点

 

初始化数组 D:如果从源节点到节点v的边存 在,则 D(v)为该边的权值,否则为无穷大

 

初始化数组 R:如果从源节点到节点v的边存

在,则 R(v)为源节点,否则为0

(24)

算法

WHILE(集合S非空)

{ 从S中选一节点u,使D[u]最小;

如果(D[u]为无穷大)

{错误!无路径存在,退出}

把u从S中删去;

对(u,v)是边的每个节点v { 如果(v仍在S中)

C=D[u]+weight(u,v);

如果 (C<D[v]) /*v找到了一条更短的路径*/

{R[v]= u; /*替换v的最短路径及长度*/

D[v]=C;

}

}

(25)

5出发到各个节点的最短路径

S R1 D1 R2 D2 R3 D3 R4 D4 R6 D6 R7 D7 u

{1,2,3,4,6,7} 5 9 5 6 0 ∞ 0 ∞ 0 ∞ 0 ∞ 2

{1,3,4,6,7} 5 9 5 6 2 9 0 ∞ 2 14 0 ∞ 1

{3,4,6,7} 5 9 5 6 2 9 0 ∞ 2 14 0 ∞ 3

{4,6,7} 5 9 5 6 2 9 3 20 3 11 0 ∞ 6

{4,7} 5 9 5 6 2 9 3 20 3 11 6 16 7

{4} 5 9 5 6 2 9 7 19 3 11 6 16 4

(26)

静态算法 static routing)

  最短路径算法( Dijkstra)

  扩散法( flooding)

为路由器配置一张最优的路由表

(27)

扩散法( flooding)

  不计算路径,有路就走

1

5 6 7

4 3

2

9

11

5

3 2

8 6

3

如从

5出发到4:

数据包从

5→1,2;2→3,6;3→6,4;6→3,7;7→4

要解决的问题:数据包重 到达某一节点,如

3,6

(28)

扩散法 (续) !

  解决方法

  在数据包头设一计数器初值,每经过一个节 点自动 1,计数值为0 时,丢弃该数据包

  在每个节点上建立登记表,则数据包再次经 过时丢弃

缺点:重 数据包多,浪费带宽

优点:可靠性高,路径最短,常用于军事

(29)

路由算法 的分类

  静态算法

  自适应算法

  拓扑相 的路由算法

  移动节点的路由

  Ad-hoc网络的路由

(30)

 

自适应算法是动态的、分布式的算法

 

实现分布式算法的三要素:

 

The measurement process(测量)

 

The update protocol(更新协议)

 

The calculation(计算)

自适应算法 adaptive algorithm)

(31)

自适应算法 adaptive algorithm)

  距离矢量算法( D-V)

  链路状态算法( L-S)

路由器动态建立和维护一张最优的路由表

(32)

D-V算法的工作原理

  每个路由器用 个向量 D iS i 来表 示该点到网上所有节点的路径距离 及其下一个节点

  相邻路由器之间交换路径信息

  各节点根据路径信息更新路由表

(33)

Di =

di1 di2 di3

din

Si =

si1 si2 si3

sin

s

i1:从节点i到节点1的一条最小时延路径上的下一个节点

s

i2:从节点i到节点2的一条最小时延路径上的下一个节点

其中:

n —网络中的节点数 Di—节点i的时延向量

dij—节点i到j的最小时延的当前估计值 Si—节点i的后继节点向量

(34)

路由表的更新

d ij = min(d ix + d xj ) ( x ∈ A )

(从

i到j的时延取途经每个节点时的时延的最小值)

S ij = x (从

i到j途经的下一个节点为x)

其中: A —与i相邻的所有节点的集合 d ij —i到j 的最短距离

d ix —i到x的最短距离

d —x到j 的最短距离

(35)

A 0 24 20 21 B 12 36 31 28 C 25 18 19 36 D 40 27 8 24 E 14 7 30 22 F 23 20 19 40 G 18 31 6 31 H 17 20 0 19 I 21 0 14 22 J 9 11 7 10 K 24 22 22 0 L 29 33 9 9

J到A 延时

8

J到I 延时 为 10

J到H 延时 为 12

J到K 延时

6

8 A 20 A 28 I 20 H 17 I 30 I 18 H 12 H 10 I

0 - 6 K 15 K

节点J的 新路由表

注意: A’I为21;I’A为24

因为:往和返的信道流量不 一定相同,节点 A和I也并非 在同一时刻测得,且线路状 态是动态变化的

所谓节点即路由器 当前节点为

J

E

I

G H F

L J K

(36)

D-V算法的缺点

  交换的路径信息量大

  路径信息不一致

  收敛速度慢(坏消息)

  不适合大型网络

(37)

无穷计算问题

  好消息传播得快,坏消息传播得慢

A B C D E

∞ ∞ ∞ ∞ 初始时

1

∞ ∞ ∞ 第1次交换后

1 2

∞ ∞ 第2次交换后

1 2 3

∞ 第3次交换后

1 2 3 4

4次交换后

A B C D E

1 2 3 4

初始时

3 2 3 4

1次交换后 3 4 3 4

2次交换后 5 4 5 4

3次交换后 5 6 5 6

4次交换后 7 6 7 6

5次交换后 7 8 7 8

6次交换后

… … … …

∞ ∞ ∞

A下网了

Tnbm P359 Fig. 5-10 无穷计算问题

(38)

克服收敛速度慢的方法

 

水平分裂

同距离矢量法,只是到

X的距离并不是真正的距离,对

下方点通知真正的距离,对上方点,给出无穷大

如上图中的

C点,它向D通知到A的是真正距离,而向 B通知到A的距离是无穷大

 

Holddown

当发现不通时,不重新选路径,而是把它设成无穷大

这些方法尚在研究之中

(39)

自适应算法 adaptive algorithm)

  距离矢量算法( D-V)

  链路状态算法( L-S)

路由器动态建立和维护一张最优的路由表

(40)

链路状态算法( L-S )

Link State Routing)

基本思想:

 

发现它的邻接节点,并得到其网络地址

 

测量它到各邻接节点的延迟或 销

 

组装一个分组以告知它刚知道的所有信息

 

将这个分组发给所有其他路由器

 

计算到每个其他路由器的最短路径

(41)

发现邻接节点 !

  当一个路由器启动后,向每个点到点线

路发送 HELLO分组(携带自己的网络地

址),另一端的路由器发送回来一个应

答来说明它是谁,即通报其网络地址

(42)

链路状态算法( L-S )

Link State Routing)

基本思想:

 

发现它的邻接节点,并得到其网络地址

 

测量它到各邻接节点的延迟或 销

 

组装一个分组以告知它刚知道的所有信息

 

将这个分组发给所有其他路由器

 

计算到每个其他路由器的最短路径

(43)

测量线路 销 !

  发送一个 ECHO分组要求对方立即响应,

通过测量一个来回时间再除以 2,发送

方就可以得到一个延迟估计值,想要更

精 些,可以重 这一过程,取其平均

(44)

链路状态算法( L-S )

Link State Routing)

基本思想:

 

发现它的邻接节点,并得到其网络地址

 

测量它到各邻接节点的延迟或 销

 

组装一个分组以告知它刚知道的所有信息

 

将这个分组发给所有其他路由器

 

计算到每个其他路由器的最短路径

(45)

构造分组!

子网及其节点到其邻节点(路由器)的线 路 销测量值(即延时,假设以 ms计)

A B C D E F 序号 序号 序号 序号 序号 序号 年龄 年龄 年龄 年龄 年龄 年龄 B 4 A 4 B 2 C 3 A 5 B 6 E 5 C 2 D 3 F 7 C 1 D 7 F 6 E 1 F 8 E 8 A

E

3 2

4

F

D C

B

5 1 6 8

7

子网的链路、状态及分组情况:

节点 A仅与节点B和E相邻 A → B的时延为4ms

Tnbm P363 Fig. 5-13 L-S算法的路由表更新

(46)

链路状态算法( L-S )

Link State Routing)

基本思想:

 

发现它的邻接节点,并得到其网络地址

 

测量它到各邻接节点的延迟或 销

 

组装一个分组以告知它刚知道的所有信息

 

将这个分组发给所有其他路由器

 

计算到每个其他路由器的最短路径

(47)

发布链路状态分组 !

 

用扩散法(向邻接的节点)发布链路状态分组

(以 B为例,B的邻接点有A、C、F)

源 序号 年龄 A C F A C F 数据 A 21 60 0 1 1 1 0 0

F 21 60 1 1 0 0 0 1 E 21 59 0 1 0 1 0 1 C 20 60 1 0 1 0 1 0 D 21 59 1 0 0 0 1 1

源节点

E的链路状态分组经A和F到节点B,节点B必须

再将

E的状态分组转送到C,并向A和F发ACK

发送标志 ACK标志

(48)

存在的问题 !

 

状态分组的重 到达

 

如果序号循环使用,就会发生重

 

如果一个路由器被重起,序号将从 0 始重新 计数,但这些分组会被当成过时分组

 

如果序号发生错误(如序号用 32位表示,4被

看成 65540, 16位的0被误传成了1 ),则很多分

组将被看成过时分组(此时 5~65539均为过时

分组,因为当前的分组序号是 65540)

(49)

解决办法

  使用一个 32位序号,即使每秒钟发送一 个分组, 137年才会循环一次

  在每个分组中加一年龄字段(如初值为

60),每秒钟将年龄 1,为0后该分组

将被丢弃 ,否则不会被认为是过时分组

(50)

链路状态算法( L-S )

Link State Routing)

基本思想:

 

发现它的邻接节点,并得到其网络地址

 

测量它到各邻接节点的延迟或 销

 

组装一个分组以告知它刚知道的所有信息

 

将这个分组发给所有其他路由器

 

计算到每个其他路由器的最短路径

(51)

计算新路由 !

  用 Dijkstra算法计算到每个节点的路由

得到该节点到每个节点的最短路径

(52)

L-S路由算法的优缺点

 

LSR的优点

  路由信息的一致性好,坏消息也一样传播得快

  状态分组的长度较短,仅包含到邻接点的距离、序号 和年龄等,与网络规模 系不大,传输所耗用的网络 带宽不大,此外,状态分组的扩散,由于年龄参数的 设定,不会无限制扩散,所以可适用于大型网络

 

LSR的缺点

  每个路由器需要有较大的存储空间,用以存储所收到 的每一个节点的链路状态分组

  计算工作量大,每次都必须计算最短路径

(53)

路由算法 的分类

  静态算法

  自适应算法

  拓扑相 的路由算法

  移动节点的路由

  Ad-hoc网络的路由

(54)

拓扑相 的路由算法

  分层路由

  广播路由

  多址传输路由选择

  Peer-to-Peer网的节点查找

(55)

分层路由

 

随着网络规模的增长,存储和处理路由表所需 的资源也急剧增长,从拓扑上分层是解决问题 的一个方法

 

分层的概念:将路由器分成组,每一路由器知

道到组内任何一台路由器的路由,以及到其他

组的路由,因此可把其他组中所有的路由器抽

象成一个,以 少路由表的长度

(56)

分层实例

不分层时1A的路由表

目的地 下一跳 跳数

1A -- --

1B 1B 1

1C 1C 1

2A 1B 2

2B 1B 3

2C 1B 3

2D 1B 4

3A 1C 3

3B 1C 2

4A 1C 3

4B 1C 4

4C 1C 4

5A 1C 4

5B 1C 5

5C 1B 5

分层时1A的路由表

目的地 下一跳 跳数

1A -- --

1B 1B 1

1C 1C 1

2 1B 2

3 1C 2

4 1C 3

5 1C 4

Tnbm P367 Fig. 5-15 分层路由

5D 5A

5B

5C 4A 5E

4B 4C 3A

3B 1A

1B 1C

2A 2B 2C 2D

区域1

区域5 区域3

区域2

区域4

(57)

分层的层数

  Kamoun和Kleinrock发现:N个

路由器的最优层次数是 lnN,每个

路由器需要 elnN个路由表项

(58)

拓扑相 的路由算法

  分层路由

  广播路由

  多址传输路由选择

  Peer-to-Peer网的节点查找

(59)

广播路由

  逐个向所有节点分 发送报文

缺点:发送量大

需知道网上所有节点的地址

  扩散法

缺点:流量大,消耗大量带宽

某些节点还可能收到重 的报文

(60)

广播路由算法

  多目的地路由

  生成树算法

  逆向路径传送

(61)

多目的地路由

 

分组中包含需到达的多个目的地的地址表

 

到一个节点时,路由器检查所有的目的地址表,

定输出线路集合,路由器为每一条输出线路 制一个新的分组,每个分组中仅含有要用此 线路的目的地址表

优点:流量小,节约带宽

缺点:费用承担不公平

(62)

广播路由算法

  多目的地路由

  生成树算法

  逆向路径传送

(63)

生成树算法

 

路由器将分组沿生成树发送 (除进入线路之外)

优点:带宽得到最佳利用

缺点:每个路由器必须知道其可用生成树

如链路状态路由算法可得到生成树,距离矢量路由

算法却不能得到

(64)

广播路由算法

  多目的地路由

  生成树算法

  逆向路径传送

(65)

逆向路径传送

  基本原理:当某一广播分组到达路由器时,路由器对 它进行检查,如该分组来自通常向广播源发送分组的 线路,则将该分组转发到除进线以外的其它线路,否 则丢弃

(a) 一个子网 A

B C

D E

H

F G

I

J K

L

M N O

A

B C

D E

H

F G

I

J

K L

M N O (b) 一 汇集树

Tnbm P369 Fig.

(66)

逆向路径传送说明

(a)的子网中,每个节点都已生成了一张 路由表,假设当前每个节点的路由表中到 节点 I去的路径中的下一跳分 为:

当前节点 A B C D E F G H J K L M N O

I去的下一节点 F C D F A I J I I M K N I J

(67)

逆向路径传送说明 (续 1)

  根据上述逆向路径转发的原则,可构造如下一 树

(c) 由逆向路径转发构造的树

M

H

K

J I

H

G F

D E C B

A O

N

O

E G K

L L

D N

Tnbm P369 Fig. 5-16 逆向路径传送 B

H M

H

K

J I

H

G F

D E C B

A O

N

O

E G K

L L

D N

Tnbm P369 Fig. 5-16 逆向路径传送 B

H

(68)

逆向路径传送说明 (续 2)

  如节点

F收到一个从I来的分组,则立即向节点A和节

D转发

  当节点

D收到一个经F来的节点I的分组,它意识到如

它有分组要送给

I的话,是走节点F的,所以立即向节

C和G转发

  当节点

G收到一个经D来的节点I的分组,它意识到如

它有分组要送给

I的话,是走节点J而不是走节点D的,

所以它不再转发

所以:经过 5个站点共24个分组的转发后,广播算法结束

优点:算法合理,容易实现

(69)

拓扑相 的路由算法

  分层路由

  广播路由

  多址传输路由选择

  Peer-to-Peer网的节点查找

(70)

多址传输路由选择

(Multicast Routing)

  多址传输路由选择 使用IP的D类地址

  生成树法

  核心树 (core-based tree)

0 前缀 后缀

8 16 31

1 1 1 1 保留将来使用

1 1 1 0 多址传送地址

1 1 0 前缀 后缀

1 0 前缀 后缀

A类 B类 C类 D类 E类

大规模网络 中规模网络 小规模网络

Tnbm P437 Fig. 5-55 IP地址格式

(71)

生成树法

 

组中的每个成员都必须以自己作为出发点建立 一 生成树,根据自己所在小组对生成树进行 修剪,得到一 本小组修剪过的生成树,并告 诉同组的其他成员

 

多址传输时仅沿相应的生成树转发

缺点:存储量大

如一个网络有

n个组,每个组平均有m个成员,

则要存储

m*n 生成树

(72)

多址传输路由选择

(Multicast Routing)

  多址传输路由选择 使用IP的D类地址

  生成树法

  核心树 (core-based tree)

0 前缀 后缀

8 16 31

1 0 前缀 后缀

1 1 1 1 保留将来使用

1 1 1 0 多址传送地址

1 1 0 前缀 后缀

A类 B类 C类 D类 E类

大规模网络 中规模网络 小规模网络

Tnbm P437 Fig. 5-55 IP地址格式

(73)

核心树 (core-based tree)

  每个组只有一 生成树,它的树根靠近

组的中心部位,要发送一个分组给这个

组成员,则发给树根,由树根将该分组

沿核心树发往各成员,这样,每组只有

一 核心树,节约了存储空间

(74)

拓扑相 的路由算法

  分层路由

  广播路由

  多址传输路由选择

  Peer-to-Peer网的节点查找

(75)

Peer-to-Peer网中节点的查找

 

对等网:一组织中大量用户通过固定线路 接入Internet,共享资源

 

对等网的特点:

  全分布:所有节点都是对称的,没有控制中 心或分层的概念

  每个节点都有一些其他用户感 趣的信息

 

对等网的路由:没有一个中心数据库,如

何发现要寻找的信息

(76)

Chord算法

假设:

  系统中有

n个用户

  每个用户都有可提供的信息资源,并且都已作了 索引供其他用户使用

  每个用户都有一个

IP地址,并可被散列成m位的

一个数字,称为节点标识符(

Chord用SHA-1算

法来散列),节点标识符为

0 ~ 2m-1

  所有

2m

个标识符按递增次序链接成一个环,而不 管节点是否存在

  定义函数

successor(k):找出节点k后面的第一

(77)

Chord算法 (续)

  信息资源名称

(name)同样被散列为一个m位的数

字,称为键值

key(key=hash(name))

  信息索引的存储:信息的索引在所有节点上是随 机分布的,当一个节点要提供信息

name时,它首

先构造一个二元组(

name, IP地址),然后调用 successor(hash(name))去存储该二元组,不同

节点上的同名信息,其索引将被存在同一节点

  信息的查找:当某个用户需要查找名称为

name的

信息时,向

successor(key)发一个请求,要求返

回拥有信息

name的节点的IP地址

(78)

Chord算法优化

 

每个节点保存其直接前趋和直接后继,那 么请求可以顺时针传递,也可以逆时针传 递,可以在 者之间选择一条较短的路径

 

每个节点保存一张表,称为 finger table,

该表有 m个表项,编号从0到m-1

(79)

Chord算法优化 (续 1)

 

finger table表的内容

每个表项指向一个实际存在的节点,每个 表项有 个字段:

start 和 successor(start)

IP地址,节点k中第i个表项的值为:

Start [ i ] = [ k + 2 i ] mod ( 2 m )

[i=0…m-1]

Successor (start [ i ] ) 的IP地址

(80)

Chord算法优化 (续 2)

 

在节点 k上查找键值key的过程:

  如果

k < key < successor (k)之间,那么包含key

信息的节点是

successor (k) ,查找结束

  否则,查找

finger表,找出小于key但最接近key

start值,并直接发一请求给successor(start)

IP地址,请求它继续查找

(81)

Chord算法实例

2 4 3 4 5 7 9 12 17 20

节点

1

0 1

7

12 20

27

4

10 9 8 6 5 2 3

11

16 15 14 13 19 18 17

21 22 23 24

26 25

29 30 28

31

i=4

4 4

2 0,1

2,3

2,3

0,1

0,1 3

当前在线的节点

i = 0 1 2 3 4

5 7 6 7 8 12 12 12 20 20

节点

4

8 12 9 12 11 12 15 15 23 27

节点

7

13 15 14 15 16 20 20 20 28 1

节点

12

16 20 17 20 19 20 23 27 31 1

节点

15

i = 0 1 2 3 4

21 27 22 27 24 27 28 1

4 4

节点

20

28 1 29 1 31 1 3 4 11 12

节点

27

(82)

Chord算法实例

2 4 3 4 5 7 9 12 17 20

节点

1

i = 0 1 2 3 4

5 7 6 7 8 12 12 12 20 20

节点4

8 12 9 12 11 12 15 15 23 27

节点

7

13 15 14 15 16 20 20 20 28 1

节点

12

16 20 17 20 19 20 23 27 31 1

节点15

21 27 22 27 24 27 28 1

4 4

节点

20

28 1 29 1 31 1 3 4 11 12

节点27

1:在节点1上查找key=3(key=hash(name)=3)

对于节点1,successor(1)=4, key在(1,4)中,返回4,即资源名为name的索

引在节点4上

2:在节点1上查找key=14

由于key不在(1,4)中,于是查节点1的finger table,小于14并最接近14的节

点是

9,successor(9)=12;于是到节点12查找,successor(12)=15,key

(12,15)中,于是返回15

3:在节点1上查找key=16

key不在(1,4)中,于是查节点1的finger table,小于16并最接近16的节点是

9, successor(9)=12,于是到节点12查找,successor(12)=15,key不在

(12,15)中,于是查节点12的finger table,小于16并最接近16的节点是14,

(83)

节点的动态添加和删除

  初始化:假设 始时节点很少,因此通过节点之间直 接交换信息建立初始的环和

finger表

  添加节点

r:

 

向任一节点询问successor(r)的地址s

 

s询问它的直接前趋p

 

s和p申请加入环

 

节点s将p+1到r的信息转储到r上,添加即告结束

 

其他

finger

表中的问题由定时执行一个后台进程完成

  删除节点

r

 

r的信息转储到后继s

通知前趋p,它的后继变为s

(84)

节点的动态添加举例

2 4 3 4 5 7 9 12 17 20

节点

1

0 1

7

20 12 27

4

10 9 8 6 5 2 3

11

16 15 14 13 19 18 17

21 22 23 24

26 25

29 30 28

31

i=4

4 4

2 0,1

2,3

2,3

0,1

0,1 3

当前在线的节点

i = 0 1 2 3 4

5 7 6 7 8 12 12 12 20 20

节点

4

8 12 9 12 11 12 15 15 23 24

节点

7

13 15 14 15 16 20 20 20 28 1

节点

12

16 20 17 20 19 20 23 24 31 1

节点

15

i = 0 1 2 3 4

21 24 22 24 24 24 28 1

4 4

节点

20

25 27 26 27 28 1

0 1 8 12

节点

24

28 1 29 1 31 1 3 4 11 12

节点

27

(85)

路由算法 的分类

  静态算法

  自适应算法

  拓扑相 的路由算法

  移动节点的路由

  Ad-hoc网络的路由

(86)

移动IP(rfc2002)

  移动

IP技术,是移动用户在跨网络随意移动和漫游中,

不用修改计算机配置的

IP地址,享有原网络中一切权限。

  支持主机移动或漫游的协议是

Mobile IP协议

 

Mobile IP协议中定义了三 功能实体:

 

移动节点:一个移动的计算机,它改变位置时无需更改其 IP设 置,仍然可以通过其固定的 IP地址进行通信。

 

主代理:一个移动节点本地网络的主机或路由器,它保存有移 动节点的位置信息,当移动节点离 主网络时能 将发往移动 节点的数据包传给移动节点。

 

客代理:移动节点当前所在的外地网络上的一个主机,它能

(87)

移动 IP的工作机制

 

代理周期性地发送广播,宣告他们与链路之间 的 系

 

移动节点收到这些广播后,判断自己是在本地 网还是在其他网。

 

如在其他网

  移动节点向客代理注册,递交自己的

IP地址,

MAC地址和一些安全信息

  客代理与主代理联系,报告自己的网络地址

  主代理告诉客代理接收此消息

(88)

数据包的转发

 

首先,该包会路由到主网络

 

主代理查找到了移动主机的新住址,以及客代 理的地址。

  把此包再封装在一个

IP包中,发给客代理

  告诉发送者将包直接发给客代理

 

客代理解封装数据包,把此数据包用数据链路 层协议传给移动主机

当有一个包发给移动主机时

(89)

安全问题

  采用优化路由的主要障碍是安全问题。

  当通信对端直接通过隧道与移动节点通信时,对端必 须知道移动节点当前的优化地址,这个问题与移动

I P

注册相似。移动

I P注册的目的就是通知家乡代理移动

节点当前的转交地址。一个

“坏家 ”只需送一个伪造

的注册给通信对端就可以中断移动节点和对端的通信,

这对移动

I P中任何试图优化路由的努力来说都是一个

挑战。

(90)

移动 IPv6

  无客代理

  同时支持隧道和源路由技术

  主要内容

  移动主机在外地网上获取一个转交地址

  将转交地址通知主代理和他的通信 伴

  知道转交地址的 伴和直接发送信息

  不知道转交地址的 伴可发送给主代理,

由主代理在发送到转交地址

(91)

Ethernet 因特网 CN

8000::1234:4567:89AB:CDEF

MN

8000::123:0:2100:0D4D

MN

8000::123:0:2100:0D4D(HAddr)

隧道

1

2

3

外地子网1 8000::80:x:x:x

外地子网2 8000::688:x:x:x HA

8000::123:0:0:1 8000::123:x:x:x

MN:移动主机(Mobile Node)

HA:原地代理(Home Agent)

CN:通信主机(Correspondent Node)

HAddr:原地地址(Home Address)

CCOA:联合定位关照地址(Co-located Care-of-Addre

ss

)

(92)

路由算法 的分类

  静态算法

  自适应算法

  拓扑相 的路由算法

  移动节点的路由

  Ad-hoc网络的路由

(93)

Ad-Hoc模式!

  早期的

Ad-Hoc模式用于

多个移动主机(无线站点)

之间的直接通信,毋需接 到有线网络,每个站点必 须

“看”到其它所有站点

  现在的

Ad-Hoc,移动主

机并不要求相互都能

“看”到,但,源主机到目

的主机之间至少存在一条

通路,途中的站点(移动

主机)同时也将兼作路由

器用,也可以与有线网络

(94)

Ad-Hoc的路由!

  主动路由

(表驱动):每个节点都周期性广播路由信息,

主动地发现并维护路由表

 

DSDV(Destination Sequenced Distance Vector)

  按需路由

(事件驱动):只有在需要发送数据时,源站

点才寻找路由

 

AODV (Ad Hoc On-demand Distance Vector)

 

DSR(Dynamic Source Routing)

(95)

主动路由 DSDV

 

DSDV(Destination Sequenced Distance Vector)是一 采用距 离矢量算法的路由协议

 

网络中每个节点都维护一张路由表,路由表包含所有可能的目的节 点、距离信息以及下一跳等

 

每个节点都周期地广播其全部的路由信息(对于拓扑变化相对较慢 的网络只需广播其更新的路由信息),每个节点都依据所收到的信 息来维护它们的路由表

 

DSDV算法依赖于每个节点路由信息周期性的广播,在Ad-Hoc网络

中,由于其网络拓扑是动态变化的,维护一张路由表意味着耗用大

量的带宽和 CPU资源

(96)

Ad-Hoc的路由!

  主动路由

(表驱动):每个节点都周期性广播路由信息,

主动地发现并维护路由表

 

DSDV(Destination Sequenced Distance Vector)

  按需路由

(事件驱动):只有在需要发送数据时,源站

点才寻找路由

 

AODV (Ad Hoc On-demand Distance Vector)

 

DSR(Dynamic Source Routing)

(97)

按需路由 AODV说明

 

AODV (Ad Hoc On-demand Distance Vector)

 

AODV是DSDV算法的改进,与DSDV的区 在于只是在需要时

on-demand)才寻找路由,而不必如DSDV一样需随时维护 一张包含全部节点的路由表

 

当源节点想发送信息给某个目的节点时,如当前没有路径,则启 动 Path Discovery过程,广播一个Route Request

RREQ) 路 径请求分组给相邻节点,收到此请求分组的邻节点再转发给它的 相邻节点并建立到源节点的反向路径,直到一个知道目的节点路 由信息的中间节点或目的节点本身 ,然后回 Route Reply

RREP) 路径应答包给源节点

 

AODV假设每一条链路都是双向对称的(Symmetric)

(98)

按需路由 AODV算法!

  AODV的请求分组和应答分组

  AODV的Path Discovery过程

  AODV的路径维护

(99)

AODV中的请求分组和应答分组

 

AODV中的请求分组

 

AODV中的应答分组

Source Add

Request ID

Destination Add

Source Seq. #

Destination

Seq. # Hop Count

Source Add

Destination Add

Destination

Seq. # Hop Count LifeTime

Tnbm P378 Fig. 5-22 Route Reply分组的格式 Tnbm P377 Fig. 5-21 Route Request分组的格式

(100)

按需路由 AODV算法!

  AODV的请求分组和应答分组

  AODV的Path Discovery过程

  AODV的路径维护

(101)

AODV算法举例—环境

A的广播范围

F

E G

H I

D

C

A B

  图中每个节点都是一台具 有路由功能的移动主机

  图为A~I九个节点当前的位 置及其相互的连接状态

  节点A的广播范围覆盖了节

B和节点D,所以A和B

以及

A和D之间有连接,其

它节点间的连接 系如图,

并假设连接是双向的

  当 前 A 准 备 向 I 发 送 分 组,

并且当前没有到达I的表项

  于是A发送一个RREQ广播 分组,分组中包含源和目 的地址(

A和I的IP地址)

(102)

路径发现过程 —Route Request1

  当B和D接收到A的RREQ 广播分组,于是查各自的 路由表,首先判断是否重

,然后查找是否有较新 的到达目的端的路径信息

  如果有,则向源节点回送 一个

RREP分组

  如果没有,则继续广播该

RREQ分组,并建立一逆

向路由的表项,以备返回

RREP分组途经本节点

时使用,同时启动一个定 时器(届时如果不是逆向 路径的途经节点,则丢弃)

F

E G

H I

D

C A B

可能的 逆向路径

參考文獻

相關文件

[r]

第六章 探索性研究設計 :

本書總共分成六個章節: 〈第一章、擁有自信〉 ; 〈第二章、設定願景〉 ; 〈第三章、掌握行動力〉 ; 〈第四 章、建立人際關係〉 ;

第三節 研究方法 第四節 研究範圍 第五節 電影院簡介 第二章 文獻探討 第一節 電影片映演業 第二節 服務品質 第三節 服務行銷組合 第四節 顧客滿意度 第五節 顧客忠誠度

在第一章我們已瞭解一元一次方程式的意義與解法,而在本章當中,我們將介紹

中華人民共和國於 1949 年建立。建國初期,政府提出建設社會主義的目標,推 行不同的政治、經濟和社會的規劃與建設;但在 1966 年至

第四章: 中學報稅的設計 第五章: 初中諒程主建議 第六章: 高中諒我建議,..

關於宋代寺院的合法性,日本的高雄義堅先生《宋代教史の研究》第三章的第一節、竺