admin管理员组

文章数量:1531958

2024年2月6日发(作者:)

IP(IPv4)路由详解

来源:

前面在局域网详解中 讲到,在局域网中,一台主机与另一台主机通信是通过MAC地址寻址来找到另外一台主机。那么在广域网中,一个网络和另一个网络之间要通信,又如何来寻址。 现在我们就来了解,在广域网中的寻址方法——路由。路由的原理很简单,就是通过查询一张路由表来确定数据包下一跳应该发向哪个地方。我们来详细了解如何通 过路由表来判断数据包下一跳应该发给谁。

首先我们来看一下我们平时windows主机所用的路由表。

这张图是一张单网卡windows主机的路由表,也是一张非常简单的路由表,通过这张路由表,我们可以了解最简单基本的通过路由表进行路由寻址的方法。

windows路由表的查表顺序是由下到上,优先级依次降低,数据包来了之后由下到上依次查表决定数据表发往哪里。

我们来一条一条的了解这些数据代表的意思。

首先来看横轴的标题

Network Destination:目标网络,也就是我们的IP数据包的目的IP地址。

Netmask:子网掩码,用来计算目标IP地址是否属于当前路由的网段。

Gateway:网关,IP数据包下一个需要经过的目的地址。

Interface:接口,用来发送该IP包的物理网卡。

Metric:跃点数,通常用于衡量数据包从源地址到目的地址所需要经过的路径长度。

在路由表中如何表示匹配上一条路由呢?

首先我们假设目标IP为X,如果满足以下公式表示X匹配上一条路由规则:

X & netmask = Network Destination

&:二进制与运算

下面我们就来一条一条的解释每条路由所代表的意义,以及如何去匹配这条路由。

第一条:

255.255.255.255 255.255.255.255 192.168.1.105 192.168.1.105 1

X & 255.255.255.255 = 255.255.255.255

255.255.255.255翻译成二进制为11111111 11111111 11111111 11111111,在计算机里面十六进制表示为FF FF FF FF(也就是2的32次方,所以在32位计算系统,刚好一个无符号整形数可以表示一个IP地址)

由上面的计算公式得到X只有等于255.255.255.255时才能满足上面的等式。翻译一下就是当发往目标IP地址为 255.255.255.255的IP数据,通过本机IP地址为192.168.1.105网卡发送出去,发送到IP地址为192.168.1.105的 设备上。由于192.168.1.105就是本机IP地址,也就表示这个数据包可以不用经过中间路由,直接达到目的主机。这个目标IP地址为广播地址。

第二条:

224.0.0.0 240.0.0.0 192.168.1.105 192.168.1.105 20

X & 240.0.0.0 = 224.0.0.0

240.0.0.0 翻译成二进制 11110000 0 0 0

224.0.0.0 翻译成二进制 11100000 0 0 0

X就是从11100000~11101111开始任意IP地址(因为后面的都全为0,0与任何数据相与都等于 0,所以和任何数据都能匹配上)。发向目标IP地址为~的IP数据包由IP地址为192.168.1.105的网卡 发出,不经过中路由,直接到达目标主机。

第三条:

192.168.1.255 255.255.255.255 192.168.1.105 192.168.1.105 20

X & 255.255.255.255 = 192.168.1.255

X也只有等于192.168.1.255的时候才满足这个等式,这条路由也一样是说发向目的IP地址为192.168.1.255的IP包由IP地址为192.168.1.105 的物理网卡发出,这个目的IP也是本网段的广播地址。

第四条:

192.168.1.105 255.255.255.255 127.0.0.1 127.0.0.1 20

X & 255.255.255.255 = 192.168.1.105

X为192.168.1.105,这条路由表示发给本机的IP包不用向外发送,直接本地环回。

第五条:

192.168.1.0 255.255.255.0 192.168.1.105 192.168.1.105 20

X & 255.255.255.0 = 192.168.1.0

X为192.168.1.1~192.168.1.255的所有IP,发给这些目的IP的数据包由192.168.1.105 发出并直接到达目的地址。这里X实际表示与本机同局域网内的所有主机地址。如何直接送到目的主机,前面局域网详解已 经有介绍,首先通过ARP请求获得对方MAC地址,然后通过MAC寻址就可以找到目的主机。(有人可能会疑问,我们局域网的主机都是连接在同一个路由器上 面的,怎么会不经过路由直接达到对方主机,实际上局域网的数据只是经过了路由器的上的网桥设备,并未进行路由寻址,我们这里讲的路由,是协议上IP层的一 个概念)

第六条:

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

本地环回路由,这里不多讲,可以试一下ping 127.127.127.127看看效果。

第七条:

0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.105 20

目的网络与子网掩码都为0的一条路由我们称之为默认路由。

前面六条路由都是需要特定网段IP地址的数据才能匹配上的,所以当前面六条路由都匹配不上的时候会找到这条默认路由,因为任意IP地址与0相与都等于0,也就是任意IP地址都能匹配上这条路由。

这条路由描述是说发给这些目的IP的数据包由192.168.1.105的网卡发出,发向IP地址为192.168.1.1的设备,192.168.1.1就是我们的网关地址了,当数据到达网关之后,网关再做一些处理就达到广域网,广域网再进行路由寻址就达到目的网络。

通过以上简单介绍,大家应该明白路由寻址是怎么完成的了吧~~

本站原创文章,转载请注明出处:

本文标签: 路由IP地址目的数据包地址