jonka Helen 刘 11 vuotta sitten
498
Lisää tämän kaltaisia
分组转发部分
路由选择部分
外部网关协议 BGP
BGP 使用的环境却不同
一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,
因特网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。 当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价是不太可能的。 比较合理的做法是在 AS 之间交换“可达性”信息。 自治系统之间的路由选择必须考虑有关策略。 因此,边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
内部网关协议 OSPF (Open Shortest Path First)
特征
“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。 “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。 是分布式的链路状态协议。
内部网关协议 RIP (Routing Information Protocol)
RIP 协议的优缺点
问题 当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。 优点 实现简单,开销较小。 RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
三个要点
仅和相邻路由器交换信息。 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 按固定的时间间隔交换路由信息,例如,每隔 30 秒。
距离向量算法
收到相邻路由器(其地址为 X)的一个 RIP 报文: (1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。 (2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤: 若项目中的目的网络不在路由表中,则把该项目加到路由表中。 否则 若下一跳字段给出的路由器地址是同样的,则把收到的项 目 替换原路由表中的项目。 否则 若收到项目中的距离小于路由表中的距离,则进行更新, 否则,什么也不做。 (3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。 (4) 返回。
距离
从一路由器到直接连接的网络的距离定义为 1。 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。即跳数
RIP 是一种分布式的基于距离向量的路由选择协议。 RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
分组转发算法
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。 (2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。 (4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。
特殊
特定主机路由
默认路由表
根据目的网络地址就能确定下一跳路由器
只有到达最后一个路由器时,才试图向目的主机进行直接交付。
IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
后面是一些可选字段,其长度是可变的。
首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
划分子网
最长前缀匹配
使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。 选择具有最长网络前缀的路由:最长前缀匹配(longest-prefix matching)。 网络前缀越长,其地址块就越小,因而路由就越具体(more specific) 。 最长前缀匹配又称为最长匹配或最佳匹配。
无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。 IP地址 ::= {<网络前缀>, <主机号>}
CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。
CIDR “斜线记法”(slash notation),即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。
CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。 IP 地址从三级编址(使用子网掩码)又回到了两级编址。
子网掩码
不同的子网掩码得出相同的网络地址。 但不同的掩码的效果是不同的。
(IP 地址) AND (子网掩码) =网络地址
使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。
在划分子网的情况下路由器转发分组的算法
(1) 从收到的分组的首部提取目的 IP 地址 D。 (2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和 相应的网络地址匹配。若匹配,则将分组直接交付。 否则就是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则将 分组传送给指明的下一跳路由器;否则,执行(4)。 (4) 对路由表中的每一行的子网掩码和 D 逐位相“与”, 若其结果与该行的目的网络地址匹配,则将分组传送 给该行指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则将分组传送给路由表 中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。
基本思路
仍然是 IP 数据报的目的网络号 net-id→→→找到连接在本单位网络上的路由器。→→→此路由器按目的网络号 net-id 和子网号 subnet-id 找到目的子网。→→→将 IP 数据报直接交付目的主机。
两级IP地址→三级IP地址
从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。
构成超网
前缀长度不超过 23 位的 CIDR 地址块都包含了多个 C 类地址合起来就构成了超网。 CIDR 地址块中的地址数一定是 2 的整数次幂。
一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,也叫构成超网
分类的 IP 地址
IP 地址与硬件地址
特性
所有分配到网络号 net-id 的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。
实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。
IP 地址是一种分等级的地址结构。
好处
路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),使路由表中的项目数减少,从而减小路由表存储空间。
地址管理机构只分配网络号,主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。
每一类地址都由两个固定长度的字段组成 IP 地址 ::= { <网络号>, <主机号>}
IP地址位数相同 不同类型网络网络号所占字节不同
网络号占字节数越多 最大可指派网络数越多 但网络中最大主机数越小 因为主机号所占字节变少
主机号 ,它标志该主机(或路由器)。
网络号 ,它标志主机(或路由器)所连接到的网络
IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。
逻辑互连网络,互连起来的各种物理网络的异构性本来是客观存在的,但是利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。
注意
ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。 如果不在同一个局域网上,要通过 ARP 找到一个位于本局域网上路由器的硬件地址,把分组发送给这个路由器,让路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。 从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。 只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。
功能
当主机 A 欲向本局域网上的主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
种类
ICMP 询问报文。
分类
时间戳请求和回答报文
回送请求和回答报文
ICMP 差错报告报文
不发送情况
对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。 对具有多播地址的数据报都不发送 ICMP 差错报告报文。 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
终点不可达 源点抑制(Source quench) 时间超过 参数问题 改变路由(重定向)(Redirect)
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。