分享
 
 
 

路由器原理介绍

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

最简单的网络可以想象成单线的总线,各个计算机可以通过向总线发送分组以互相通信。但随着网络中的计算机数目增长,这就很不可行了,会产 生许多问题:

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 分组后的处理,注意发送者的 <IP address, hardware address> 对被存到接收 ARP 请求的主机的本地 ARP 表中,一般 A 想与 B 通信时, B 可能也需要与 A 通信。

三、 IP 地址

在可路由的网络层协议中,协议地址必须含有两部分信息:网络地址和主机地址。存贮这种信息最明显的方法是用两个分离的域,这样我们必须考虑到两个域的最大长度,有些协议 ( 如 IPX) 就是这样的,它在小型和中型的网络里可以工作的很好。

另一种方案是减少主机地址域的长度,如 24 位网络地址、 8 位主机地址,这样就有了较多的网段,但每个网段内的主机数目很少。这样一来,对于多于 256 个主机的网络,就必须分配多个网段,其问题是很多的网络给路由器造成了难以忍受的负担。

IP 把网络地址和主机地址一起包装在一个 32 位的域里,有时主机地址部分很短,有时很长,这样可以有效利用地址空间,减少 IP 地址的长度,并且网络数目不算多。有两种将主机地址分离出来的方法:基于类的地址和无类别的地址。

1 、主机和网关

主机和网关的区别常产生混淆,这是由于主机意义的转变。在 RFC 中 (1122/3 和 1009) 中定义为:

主机是连接到一个或多个网络的设备,它可以向任何一个网络发送和从其接收数据,但它从不把数据从一个网络传向另一个。

网关是连接到多于一个网络的设备,它选择性的把数据从一个网络转发到其它网络。

换句话说,过去主机和网关的概念被人工地区分开来,那时计算机没有足够的能力同时用作主机和网关。主机是用户工作的计算机,或是文件服务器等。现代的计算机的能力足以同时担当这两种角色,因此,现代的主机定义应该如此:

主机是连接到一个或多个网络的设备,它可以向任何一个网络发送和从其接收数据。它也可以作为网关,但这不是其唯一的目的。

路由器是专用的网关,其硬件经过特殊的设计使其能以极小的延迟转发大量的数据。然而,网关也可以是有多个网卡的标准的计算机,其操作系统的网络层有能力转发数据。由于专用的路由硬件较便宜,计算机用作网关已经很少见了,在只有一个拨号连接的小站点里,还可能使用计算机作为非专用的网关。

2 、基于类的地址

最初设计 IP 时,地址根据第一个字节被分成几类:

0: 保留

1-126: A 类 ( 网络地址 :1 字节,主机地址 :3 字节 )

127: 保留

128-191: B 类 ( 网络地址 :2 字节,主机地址 :2 字节 )

192-223: C 类 ( 网络地址 :3 字节,主机地址 :1 字节 )

224-255: 保留

3 、子网划分

虽然基于类的地址系统对因特网服务提供商来说工作得很好,但它不能在一个网络内部做任何路由,其目的是使用第二层 ( 桥接 / 交换 ) 来导引网络中的数据。在大型的 A 类网络中,这就成了个特殊的问题,因为在大型网络中仅使用桥接 / 交换使其非常难以管理。在逻辑上其解决办法是把大网络分割成若干小的网络,但在基于类的地址系统中这是不可能的。为了解决这个问题,出现了一个新的域:子网掩码。子网掩码指出地址中哪些部分是网络地址,哪些是主机地址。在子网掩码中,二进制 1 表示网络地址位,二进制 0 表示主机地址位。传统的各类地址的子网掩码为:

A 类: 255.0.0.0

B 类: 255.255.0.0

C 类: 255.255.255.0

如果想把一个 B 类网络的地址用作 C 类大小的地址,可以使用掩码 255.255.255.0 。

用较长的子网掩码把一个网络分成多个网络就叫做划分子网。要注意的是,一些旧软件不支持子网,因为它们不理解子网掩码。例如 UNIX 的 routed 路由守护进程通常使用的路由协议是版本 1 的 RIP ,它是在子网掩码出现前设计的。

上面只介绍了三种子网掩码: 255.0.0.0 、 255.255.0.0 和 255.255.255.0 ,它们是字节对齐的子网掩码。但是也可以在字节中间对其进行划分,这里不进行详细讲解,请参照相关的 TCP/IP 书籍。

子网使我们可以拥有新的规模的网络,包括很小的用于点到点连接的网络(如掩码 255.255.255.252 , 30 位的网络地址, 2 位的主机地址:两个主机的子网),或中型网络(如掩码 255.255.240.0 , 20 位网络地址, 12 位主机地址: 4094 个主机的子网)。

注意 DNS 被设计为只允许字节对齐的 IP 网络 ( 在 in-addr.arpa. 域中 ) 。

4 、超网 (supernetting)

超网是与子网类似的概念 --IP 地址根据子网掩码被分为独立的网络地址和主机地址。但是,与子网把大网络分成若干小网络相反,它是把一些小网络组合成一个大网络 -- 超网。

假设现在有 16 个 C 类网络,从 201.66.32.0 到 201.66.47.0 ,它们可以用子网掩码 255.255.240.0 统一表示为网络 201.66.32.0 。但是,并不是任意的地址组都可以这样做,例如 16 个 C 类网络 201.66.71.0 到 201.66.86.0 就不能形成一个统一的网络。不过这其实没关系,只要策略得当,总能找到合适的一组地址的。

5 、可变长子网掩码 (VLSM)

如果你想把你的网络分成多个不同大小的子网,可以使用可变长子网掩码,每个子网可以使用不同长度的子网掩码。例如:如果你按部门划分网络,一些网络的掩码可以为 255.255.255.0( 多数部门 ) ,其它的可为 255.255.252.0( 较大的部门 ) 。

6 、无类别地址 (CIDR)

因特网上的主机数量增长超出了原先的设想,虽然还远没达到 232 ,但地址已经出现匮乏。 1993 年发表的 RFC1519-- 无类别域间路由 CIDR(Classless Inter-Domain Routing)-- 是一个尝试解决此问题的方法。 CIDR 试图延长 IPv4 的寿命,与 128 位地址的 IPv6 不同,它并不能最终解决地址空间的耗尽,但 IPv6 的实现是个庞大的任务,因特网目前还没有做好准备。 CIDR 给了我们缓冲的准备时间。

基于类的地址系统工作的不错,它在有效的地址使用和少量的网络数目间做出了较好的折衷。但是随着因特网意想不到的成长出现了两个主要的问题:

已分配的网络数目的增长使路由表大得难以管理,相当程度上降低了路由器的处理速度。

僵化的地址分配方案使很多地址被浪费,尤其是 B 类地址十分匮乏。

为了解决第二个问题,可以分配多个较小的网络,例如,用多个 C 类网络而不是一个 B 类网络。虽然这样能够很有效地分配地址,但是更加剧了路由表的膨胀(第一个问题)。

在 CIDR 中,地址根据网络拓扑来分配。连续的一组网络地址可以被分配给一个服务提供商,使整组地址作为一个网络地址(很可能使用超网技术)。例如:一个服务提供商被分配以 256 个 C 类地址,从 213.79.0.0 到 213.79.255.0 ,服务提供商给每个用户分配一个 C 类地址,但服务提供商外部的路由表只通过一个表项 -- 掩码为 255.255.0.0 的网络 213.79.0.0-- 来分辨这些路由。

这种方法明显减少了路由表的增长, CIDR RFC 的作者估计,如果 90% 的服务提供商使用了 CIDR ,路由表将以每 3 年 54% 的速度增长,而如果没有使用 CIDR ,则增长速度为 776% 。如果可以重新组织现有的地址,则因特网骨干上的路由器广播的路由数量将大大减少。但这实际是不可行的,因为将带来巨大的管理负担。

四、路由

1、路由表

如果一个主机有多个网络接口,当向一个特定的IP地址发送分组时,它怎样决定使用哪个接口呢?答案就在路由表中。来看下面的例子:

目的

子网掩码

网关

标志

接口

201.66.37.0

255.255.255.0

201.66.37.74

U

eth0

201.66.39.0

255.255.255.0

201.66.39.21

U

eth1

主机将所有目的地为网络201.66.37.0内主机(201.66.37.1-201.66.37.254)的数据通过接口eth0(IP地址为201.66.37.74)发送,所有目的地为网络201.66.39.0内主机的数据通过接口eth1(IP地址为201.66.39.21)发送。标志U表示该路由状态为“up”(即激活状态)。对于直接连接的网络,一些软件并不象上例中一样给出接口的IP地址,而只列出接口。

此例只涉及了直接连接的主机,那么目的主机在远程网络中如何呢?如果你通过IP地址为201.66.37.254的网关连接到网络73.0.0.0,那么你可以在路由表中增加这样一项:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有