Cisco系列路由技术基础知识详解


最简单的网络可以想象成单线的总线 , 各个计算机可以通过向总线发送分组以互相通信 。但随着网络中的计算机数目增长 , 这就很不可行了 , 会产 生许多问题:
1、带宽资源耗尽 。
2、每台计算机都浪费许多时间处理无关的广播数据 。
3、网络变得无法治理 , 任何错误都可能导致整个网络瘫痪 。
4、每台计算机都可以监听到其他计算机的通信 。
把网络分段可以解决这些问题 , 但同时你必须提供一种机制使不同网段的计算机可以互相通信 , 这通常涉及到在一些ISO网络协议层选择性地在网段间传送数据 , 我们来看一下网络协议层和路由器的位置 。
我们可以看到 , 路由器位于网络层 。本文假定网络层协议为IPv4 , 因为这是最流行的协议 , 其中涉及的概念与其他网络层协议是类似的 。
一、路由与桥接
路由相对于2层的桥接/交换是高层的概念 , 不涉及网络的物理细节 。在可路由的网络中 , 每台主机都有同样的网络层地址格式(如IP地址) , 而无论它是运行在以太网、令牌环、FDDI还是广域网 。网络层地址通常由两部分构成:网络地址和主机地址 。
网桥只能连接数据链路层相同(或类似)的网络 , 路由器则不同 , 它可以连接任意两种网络 , 只要主机使用的是相同的网络层协议 。
二、连接网络层与数据链路层
网络层下面是数据链路层 , 为了它们可以互通 , 需要“粘合”协议 。ARP(地址解析协议)用于把网络层(3层)地址映射到数据链路层(2层)地址 , RARP(反向地址解析协议)则反之 。
虽然ARP的定义与网络层协议无关 , 但它通常用于解析IP地址;最常见的数据链路层是以太网 。因此下面的ARP和RARP的例子基于IP和以太网 , 但要注重这些概念对其他协议也是一样的 。
1、地址解析协议
网络层地址是由网络治理员定义的抽象映射 , 它不去关心下层是哪种数据链路层协议 。然而 , 网络接口只能根据2层地址来互相通信 , 2层地址通过ARP从3层地址得到 。
并不是发送每个数据包都需要进行ARP请求 , 回应被缓存在本地的ARP表中 , 这样就减少了网络中的ARP包 。ARP的维护比较轻易 , 是一个比较简单的协议 。
2、简介
假如接口A想给接口B发送数据 , 并且A只知道B的IP地址 , 它必须首先查找B的物理地址 , 它发送一个含有B的IP地址的ARP广播请求B的物理地址 , 接口B收到该广播后 , 向A回应其物理地址 。
注重 , 虽然所有接口都收到了信息 , 但只有B回应该请求 , 这保证了回应的正确且避免了过期的信息 。要注重的是 , 当A和B不在同一网段时 , A只向下一跳的路由器发送ARP请求 , 而不是直接向B发送 。接收到ARP分组后处理 , 注重发送者的对被存到接收ARP请求的主机的本地ARP表中 , 一般A想与B通信时 , B可能也需要与A通信 。
3、IP地址冲突
ARP产生的问题中最常见的是IP地址的冲突 , 这是由于两个不同的主机IP地址相同产生的 , 在任何互联的网络中 , IP地址必须是唯一的 。这时会收到两个ARP回应 , 分别指出了不同的硬件地址 , 这是严重的错误 , 没有简单的解决办法 。
为了避免出现这类错误 , 当接口A初试化时 , 它发送一个含有其IP地址的ARP请求 , 假如没有收到回应 , A就假定该IP地址没有被使用 。我们假定接口B已经使用了该IP地址 , 那么B就发送一个ARP回应 , A就可以知道该IP地址已被使用 , 它就不能再使用该IP地址 , 而是返回错误信息 。这样又产生一个问题 , 假设主机C含有该IP地址的映射 , 是映射到B的硬件地址的 , 它收到接口A的ARP广播后 , 更新其ARP表使之指向A的硬件地址 。为了解决这个错误 , B再次发送一个ARP请求广播 , 这样主机C又更新其ARP表再次指向B的硬件地址 。这时网络的状态又回到先前的状态 , 有可能C已经向A发送了应该发送给B的IP分组 , 这很不幸 , 但是因为IP提供的是无保证的传输 , 所以不会产生大的问题 。

推荐阅读