计网L9
主要内容
- packets(包)是如何从源地址传送到目标地址的
- 如何选择路径
- Routing protocol, Router
- Routed protocol: IPv4,IPv6
- Others
- Outline of network layer
- Outline of Routing algorithm
- Learn Dijkstra algorithm
- Distance-vector algorithm :Rip
- Link state routing algorithm :OSPF
- Multi-level routing, broadcast routing, mobile routing, adhoc routing, p2p, and et al.
第一部分
- Main function of network layer
- Routing algorithm
- Static routing algorithm
- Dijkstra
- flooding
- Dynamic routing algorithm
- DV
- LS
- Static routing algorithm
- Learn Dijkstra algorithm
网络层 network layer
网络层的位置

网络层的主要作用
将数据包从源头一直传输到目的地。

Service types provided by network layer 服务类型
- Connection oriented service 面向连接:X.25, ATM 虚电路
- Connectionless service 无连接:IP 数据报


- Virtual-circuit subnet 虚电路子网
- Select a path when connection is established
- 建立连接时选择路径
- Each packet has a connection-number
- 每个数据包都有一个连接号
- Connection is removed when communication is over
- 通信结束后连接被删除
- Select a path when connection is established
- Datagram subnet 数据报子网
- Each datagram has destination-address
- 每个数据报都有目的地址
- Each datagram look for path independently
- 每个数据报独立寻找路径
- Each datagram has destination-address



IPv4协议
介绍
- 网际协议版本4
- 一种无连接的协议,是互联网的核心
- 也是使 用最广泛的网际协议版本,其后继版本为IPv6
基本功能
internet协议执行两个基本功能
- 寻址(addressing)
- 分片(fragmentation)
IPv4数据报格式

数据报分片



总结

IP地址

IP地址的分类

一些特殊的地址

子网的划分

Routing table
Static routing
- Configured by administrator: ip route
Dynamic routing
- Routing algorithm
- Distance vector routing(D-V)
- Link state routing(L-S)
- Routing algorithm
由管理员配置的路由表项称为静态路由
- 适合小而稳定的网络,成本更低
- 默认路由:目的网络地址和子网掩码均为0.0.0.0,如:

可以使用Windows:route print, check routing table
通过路由协议获得的路由表项称为动态路由
- 适合大型变分网络,成本更高
Routed protocol和Routing protocol的区别
- Routed protocol 直接连接用户的
- example:IP、IPX
- Routing protocol 维持路由间的表格
- Distance vector routing
- Link state routing
- Hybrid routing

Routing algorithm
- 路由算法设计必须考虑以下问题:
- 正确性、简单性、鲁棒性、稳定性、公平性和最优性(矛盾、权衡)
- Correctness, simplicity, robustness, stability, fairness, and optimality (contradictory、trade-off)
- 路由算法分类
- 静态算法(非自适应路由选择)(not self-adaptive)
- 动态算法(自适应路由选择)( self-adaptive )
路由算法中的度量
- Alias:cost,量度、代价、开销、成本
- Common metric
- Path length:hop (跳数)
- reliability:error rate on line
- delay
- bandwidth
- Load of router
- Communication cost
最优化原则 Optimization principle
- 如果路由器 J 在从路由器 I 到路由器 K 的最优路径上,那么从 J 到 K 的最优路径也落在同一条路径上

- 从所有源到给定目的地的一组最优路由形成以目的地为根的树(称为sink tree)
Sink tree(汇集树)
- 汇集树不一定是唯一的
- 所有路由算法的目标都是发现并使用所有路由器的汇集树

Shortest path routing
定义
- 用于计算一个节点到其他所有节点的最短路径,主要特点是以起始点为 中心向外逐层扩展,直到扩展到终点为止
Dijkstra算法
compute shortest path using weight on communication-line

带有最少行的路径可能不是最短路径
最短的路可能不是最快的

步骤


例子


Flooding
- Every incoming packet is sent out on every outgoing line except the
one it arrived on
- 不计算路径,有路就走

problem:duplicate packets,such as 3,6
解决:
- 在packet-header中加一个计数器,通过节点时减1,计数器为零时丢包
- 每个节点建立一个寄存器表,数据包再次到达节点时被丢弃
- 选择性地Flooding
缺点:重复数据包有两个,浪费带宽
优点:可靠性高,路径短,军事上使用频繁
Dynamic Routing algorithm
- Distance vector routing algorithm
- For example: RIP
- Link state routing algorithm
- For example: OSPF
- Hybrid routing 混合路由
- For example: IGRP
动态的实现
- 如果路由器需要通信,他们必须说相同的语言,即相同的路由协议
- 一个新的路由器必须主动介绍自己(问好)
- 定期发送 hello 数据包以了解其他人的健康状况(保持活动状态)
Distance Vector Routing 距离矢量路由
- 距离矢量路由选择:
- 通过让每个路由器维护一个表(即矢量)来操作
- 给出到每个目的地的最佳已知距离以及使用哪条线路到达那里。
- D-V 算法是动态的和分布式的。 常用于小型网络,RIP是D-V的典型例子
- RIP:路由信息协议,路由选择信息协议,1988,RFC1058
Working principle of DV -- DV算法的工作原则
- 每个路由器使用两个向量 $D_i $和 \(S_i\)
- $D_i $表示从一个节点到所有其他节点的距离
- \(S_i\) 表示下一个节点(跳)
- 在邻居路由器之间交换路径信息
- 每个节点根据路径信息更新自己的路由表

更新表
- 交换向量后
- 更新距离
- 更新下一个节点


练习


D-V算法的特点
- 优势
- 算法很简单
- 坏处
- 交换的信息太大
- 路径信息传播缓慢,路径信息可能不同
- 收敛速度慢,导致无穷计数问题。
- 不适合大网络
Main features of RIP
- RIP 是一种 D-V 路由协议
- RIP 使用 hop(跳数)作为度量(metric)
- 当metric大于15时,认为目的地不可达
- 默认发送周期为 30 秒
Disadvantage of RIP
- 当目标网络的度量大于 15(如此小)时无法到达
- RIP的度量是hop,一路都是router的编号,不太合理
- 实际中,常数到无穷大,收敛缓慢
The problems induced by DV
- Representation
- routing loop(路由环路)
- Count to infinite(计数到无穷问题)
- slow Convergence (收敛慢的问题)
- Cause
- Trust wrong routing information
Main problem of DV
It reacts rapidly to good news, but leisurely to bad news(好消息跑得快,坏消息传得慢)

Link State Routing OSPF
- 距离矢量路由一直在 ARPANET 中使用,直到 1979 年它被链路状态路由取代。
- 链路状态路由的变体现在被广泛使用。
- 链路状态路由背后的思想由五个部分组成:
- 发现它的邻居并了解他们的网络地址。
- 测量每个邻居的延迟或成本。
- 构造一个分组,分组中包含刚收到的所有信息
- 将此分组发送给其他的路由器
- 计算到所有其他路由器的最短路径。
Learning about the Neighbors
- 当路由器启动时,它会在每条点对点线路上发送一个特殊的 HELLO 数据包。
- 期望另一端的路由器发回一个回复,告诉它是谁(使用全局唯一名称)。
- 当两个或多个路由器通过 LAN 连接时,LAN 可以建模为一个节点。


Measuring Line Cost 设置到每个邻居的成本度量
为了确定线路的成本,路由器发送一个特殊的 ECHO 数据包,并且要求对方立即发回。
通过测量往返时间,发送路由器可以获得对延迟的合理估计。
- 为了获得更好的结果,可以多次进行测试,并使用平均值。
为了将负载考虑在内,往返计时器必须在 ECHO 数据包排队时启动。
要忽略负载,应在 ECHO 数据包到达队列前端时启动计时器。
测量延迟时是否应考虑负载?
- 论证可以通过两种方式进行。


Building Link State Packets
- 链路状态包被构造为发送到其他路由器。 数据包中包含的信息是:
- ID of the sender
- sequence number
- age
- list of neighbors
- delay to each neighbor
- 什么时候建立?
- 状态数据包可能会定期构建,或者在某些重要事件发生时构建,例如线路或邻居断开或再次恢复。

- A subnet. (b) The link state packets for this subnet.
Distributing The Link State Packets 将LSP分组发送给其他的路由器
- 基本算法:
- 每个状态数据包都包含一个序列号,该序列号随着每个新数据包的发送而递增。
- 路由器会跟踪它们看到的所有(源路由器、序列)对。
- 当一个新的链路状态数据包进来时,它会根据已经看到的数据包列表进行检查。
- 如果它是新的,它将在除到达的那条线路之外的所有线路上转发(即,flooding)。
- 如果它是重复的,则将其丢弃--discarded
- 如果一个序列号低于迄今为止看到的最高序列号的数据包到达,则它被视为已过时而被拒绝。

- 基本算法的问题:
- 序列号可能会环绕,导致混淆。
- 解决方案:使用 32 位序列号。 每秒一个数据包,需要 137 年才能环绕。
- 如果路由器崩溃,它将失去对自己序列号的跟踪。 如果它再次从序列号 0 开始,新的数据包将被其他路由器拒绝为过时/重复。
- 如果序列号被破坏并且接收到 65,540 而不是 4(1 位错误),则数据包 5 -- 65540 将被拒绝为已过时。
- 序列号可能会环绕,导致混淆。
00000000000000100 10000000000000100
路由器崩溃和序列号损坏的解决方案是将age(例如,60)与来自任何路由器的每个状态数据包相关联,并每秒递减一次年龄。
当年龄达到zero时,来自该路由器的信息将被丢弃。
通常每 10 秒就会有一个新数据包出现,因此路由器信息仅在路由器关闭时才会超时(或连续丢失 6 个数据包,这种情况不太可能发生)。
对基本算法的一些改进使其更加健壮。
- 当一个状态包进入路由器进行flooding时,它首先被放置在一个保持区(保留区)中等待一小会。
- 如果来自同一源的另一个状态数据包在传输之前进入,则比较它们的序列号。
- 如果它们相等,则丢弃重复项。
- 如果它们不同,则较旧的将被丢弃。
- 为了防止线路上的错误,所有状态数据包都被确认。
- 当一条线路空闲时,保持区被循环扫描以选择要发送的数据包或确认。

Computing the New Routes
- 一组完整的链路状态数据包允许路由器构建整个子网的图。
- 我们现在可以使用 Dijkstra 算法来计算路由器之间的最短路径。
- 我们可以在路由器中安装这些信息来引导数据包。 (设置路由表)

Characteristics of L-S routing algorithm
- 好处
- 每个路由器的一致性好
- 收敛性好
- 适合大网络
- 缺点
- 每个路由器需要更大的存储空间
- 计算工作量很大
OSPF
- 先开最短路径
- 用图代替真实网络
- 每个路由器都是一个节点
- 计量成本(公制)
- 可能有几张图
- 计算最短路径
BGP(border gateway protocol)(边界网关协议)
- 不同的协议 - AS 之间需要 BGP(边界网关协议),因为内部网关协议和外部网关协议的目标不同。
- BGP 的定义在 RFCs 1771 到 1774 中。

- 外部网关协议路由器的典型策略涉及政治、安全或经济方面的考虑。
- 鉴于 BGP 对传输流量的特殊兴趣,网络被分为三类之一。
- 存根网络 stub networks
- 多连接网络 multiconnected networks
- 过境网络 transit networks

- BGP 路由器对通过建立 TCP 连接相互通信。
- BGP 从根本上说是一种距离矢量协议,但与大多数其他协议(如
RIP)截然不同。
- BGP 路由器会跟踪准确的路径。

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yeの博客!