TCP/IP上的每台主机都需要用一个子网屏蔽号。它是一个4字节的地址,用来封装或“屏蔽”IP地址的一部分,以区分网络号和主机号。当网络还没有划分为子网时,可以使用缺省的子网屏蔽;当网络被划分为若干个子网时,就要使用自定义的子网屏蔽了。
缺省值
我们来看看缺省的子网屏蔽值,它用于一个还没有划分子网的网络。即使是在一个单段网络上,每台主机也都需要这样的缺省值。
它的形式依赖于网络的地址类型。在它的4个字节里,所有对应网络号的位都被置为1,于是每个八位体的十进制值都是255;所有对就主机号的位都置为0。例如:C类网地址192.168.0.1和相应的缺省屏蔽值255.255.255.0。
确定数据包的目的地址
我们说把屏蔽值和IP地址值做“与”的操作其实是一个内部过程,它用来确定一个数据包是传给本地还是远程网络上的主机。其相应的操作过程是这样的:当TCP/IP初始化时,主机的IP地址和子网屏蔽值相“与”。在数据包被发送之前,再把目的地址也和屏蔽值作“与”,这样如果发现源IP地址和目的IP地址相匹配,IP协议就知道数据包属于本地网上的某台主机;否则数据包将被送到路由器上。
注:我们知道“与”操作是将IP地址中的每一位与子网屏蔽中相应的位按逻辑与作比较。
建立子网
1、 子网简介
一个网络实际上可能会有多个物理网段,我们把这些网段称之为子网,其使用的IP地址是由某个网络号派生而得到的。
将一个网络划分成若干个子网,需要使用不同的网络号或子网号。当然了,划分子网有它的优点,通过划分子网,每个单位可以将复杂的物理网段连接成一个网络,并且可以:
(1) 混合使用多种技术,比如以太网和令牌环网。(最流行的两种接口都支持了哦)
(2) 克服当前技术的限制,比如突破每段主机的最大数量限制。
(3) 通过重定向传输以及减少广播等传输方式以减轻网络的拥挤。
实现子网划分
在动手划分子网之前,我们一定要先分析一下自己的需求以及将来的规划。一般情况下我们遵循这样的准则:
(1) 确定网络中的物理段数量。(就是子网个数嘛)
(2) 确定每个子网需要的主机数。注意一个主机至少一个IP地址。
(3) 基于此需求,定义:整个网络的子网屏蔽、每个子网唯一的子网号和每个子网的主机号范围。
子网屏蔽位
在定义一个子网屏蔽之前,确定一下将来需要的子网数量及每子网的主机数是必不可少的一步。因为当更多的位用于子网屏蔽时,就有更多的可用子网了,但每个子网中的主机数将减少。(这和定义IP地址的概念正好相反)
TCP/IP基础----为Linux做准备(7)
==============================
2、定义子网屏蔽
将网络划分成若干个子网时,必须要定义好子网屏蔽。我们来看看定义的步骤:
(1)确定物理网段也就是子网的个数,并将这个数字转换成二进制数。比如B类地址,分6
个子网就是110。
(2)计算物理网段数(子网数)的二进制位数,这里是110,所以需要3位。
(3)以高位顺序(从左到右)将这个反码转换成相应的十进制值,因为需要3位,就将主机号前3位作为子网号,这里是11100000,所以屏蔽就是255.255.254.0。
3、定义子网号
子网号与子网屏蔽的位数相同。
(1)列出子网号按高到低的顺序使用的位数。例如子网屏蔽使用了3位,二进制值是11100000。
(2)将最低的一位1转换成十进制,用这个值来定义子网的增量。这个例子中是1110,所以增量是32。
(3)用这个增量迭加从0开始的子网号,直到下一个值为256。这个例子中就是w.x.32.1-
w.x.63.254、w.x.64.1-w.x.127.254等。
4、定义子网中的主机号
从上面的例子看出,一旦定义了子网号,就已经确定了每个子网的主机号了。我们在做每次增量后得出的值表明了子网中主机号范围的起始值。确定每个子网中的主机数目
(1)计算主机号可用的位数。例如在B类网中用3位定义了网络号,那么余下的13位定义了主机号。
(2)将这个余下的位数也就是主机号转换为十进制,再减去1。例如13位值1111111111111转换为十进制的话就是8191,所以这个网络中每个子网的主机数就是8190了。
实现IP路由
1、IP路由简介
路由就是选择一条数据包传输路径的过程。当TCP/IP主机发送IP数据包时,便出现了路由,且当到达IP路由器还会再次出现。路由器是从一个物理网向另一个物理网发送数据包的装置,路由器通常被称为网关。对于发送的主机和路由器而言,必须决定向哪里转发数据包。在决定路由时,IP层查询位于内存中的路由表。
(1)当一个主机试图与另一个主机通信时,IP首先决定目的主机是一个本地网还是远程网。
(2)如果目的主机是远程网,IP将查询路由表来为远程主机或远程网选择一个路由。
(3)若未找到明确的路由,IP用缺省的网关地址将一个数据传送给另一个路由器。
(4)在该路由器中,路由表再次为远程主机或网络查询路由,若还未找到路由,该数据包将发送到该路由器的缺省网关地址。
每发现一条路由,数据包被转送下一级路由器,称为一次“跳步”,并最终发送至目的主机。若未发现任何一个路由,源主机将收到一个出错信息。
TCP/IP基础----为Linux做准备(8)
==============================
静态IP和动态IP路由
路由器采用的路由方式决定它如何获得路由信息。静态路由是IP协议的函数实现,它需要创建路由表并进行人工刷新。若路由改变,则静态方式的路由器并不通知彼此的变化,也不会与动态方式的路由器进行交换。
而动态路由是路由协议的函数实现,相关的协议如:路由信息协议RIP和开放式最短路径协议OSPF等。这些协议周期性地在采用动态方式的路由器之间进行交换彼此已知的路由信息,包括信息的变化也能自动通知。
2、静态IP路由