划分子网 子网分组转发算法

  1、从两级IP地址到三级IP地址

现在随着因特网的普及和技术的发展,早期ARPANET的设计之缺陷显露无疑:
(1)IP地址空间的利用率有时会很低:一个A类IP地址网络可连接超过1000万台主机,而每个B类IP地址网络可连接超过6万台。可是有些网络对连接在网络上的主机数有限制,甚至远小于这样的数量。
(2)给每个物理网络分配一个网络号会使路由表变得庞大臃肿,降低网络性能。
(3)两级IP地址不够灵活:只能在申请完IP地址后才能进行下一步工作,而无法按自己的需求变更。
为了解决这个问题,从1985年起,在IP地址中又增加了一个“子网号字段”,使两级IP地址变为三级IP地址。这种做法叫作划分子网,或子网寻址或子网路由选择~

划分子网的基本思路如下
(1)一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网(subnet)。划分子网只是单位内部的事情,本单位以为无法得知这个网络具体的子网数及组成,这个单位对外仍然只表现为一个网络
(2)划分子网的方法是从网络的主机号借用若干位作为子网号subnet-id,与此同时主机号也减少相应位数(总位数32位不变)。由此两级IP地址可变为三级IP地址:    IP地址 ::= {<网络号>,<子网号>,<主机号>}
(3)从外部网络发送给本单位某主机的IP数据报仍根据目的网络号找到连接在本单位网络上的路由器。但随后在本网络内部,路由器根据目的网络号和子网号找到目的子网,将IP数据报交付目的主机。
注意:划分子网只是把IP地址的主机号这部分进行再划分,并不改变IP地址原来的网络号~

2、子网掩码

子网掩码是干什么的呢?我们知道,从IP数据报的首部无法看出源主机和目的主机所连接的网络是否进行了子网划分,所以机智的人们想到了子网掩码(subnet mask)的方法~
做法:将三级IP地址的子网掩码(根据子网划分而变)和收到的数据报的目的IP地址逐位“与”(AND),就可得出所要找的子网的网络地址~即主机号对应的位置为0,其他位均为1~

子网掩码是一个网络或一个子网的重要属性,路由器的路由表中除了有目的网络地址,还有该网络的子网掩码,这是现在因特网的标准规定~

A类地址的默认子网掩码是255.0.0.0;
B类地址的默认子网掩码是255.255.0.0;
C类地址的默认子网掩码是255.255.255.0。

使用子网时分组的转发

使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。

在划分子网的情况下,路由转发分组的算法如下:
(1)从收到的数据报的首部提取目的IP地址D。
(2)先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相“与”(AND操作),看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(还需把D转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行(3)。
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4)对路由表中的每一行(目的网络地址、子网掩码、下一跳地址),用其中的子网掩码和D逐位相“与”(AND),其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5)。
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6)报告转发分组出错。

Ps:可以和没划分子网的情况比较下,发现大体的流程是不变的:提取IP地址、判断是否在同一网络、判断是否有特定路由、判断间接交付、判断是否有默认路由。
只是没有和子网掩码的“与”操作而已~

时间: 2024-10-25 07:28:42

划分子网 子网分组转发算法的相关文章

【网络基础】路由表,分组转发算法

前提: IP数据报的首部中没有地方可以用来指明"下一跳路由器的 IP 地址". 那么,当路由器接受到一个待转发的报文时,是如何确定将该报文的传向呢?在此,我们引入"路由表"概念. 路由表如图所示: 当一个IP报文传到路由器R2时,则会通过查询R2所维护的路由表,根据IP报文段中的目的地址进行匹配.得到相应的下一跳地址.这样, IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付). 只有到达最后一个路由器时,才试图向目的主机进行直接交

分组转发算法

1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址N(子网掩码和IP地址做与运算可得出网络地址). 2)若N就是于此路由器直接相连的某个网络地址,则进行直接交付,不需要在经过其他路由器,直接把数据报交付给目的主机(这里包括把目的IP地址D转换为具体的MAC地址(ARP协议),把数据报封装成MAC帧,在发送此帧):否则就是间接交付. 3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器. 4)若路由表中有达到网络N的路由,则把数据报传送给路由表中所指明

【网络基础】子网划分、基于子网掩码的分组转发

为什么需要子网划分? 1.我们知道,Internet组织机构定义了五种IP地址用于主机的有A.B.C三类地址.其中A类网络有126个,每个A类网络可能有 16 777 214台主机,它们处于同一广播域.而在同一广播域中有这么多结点是不可能的,网络会因为广播通信而饱和,结果造成16 777 214个地址大部分没有分配出去,形成了浪费. 2.随着互连网应用的不断扩大,IP地址资源越来越少.为了实现更小的广播域并更好地利用主机地址中的每一位,可以把基于类的IP网络进一步分成更小的网络,每个子网由路由器

IP数据报格式 及路由转发算法

ip数据报分首部和数据两部分组成: 首部分为固定部分和可变部分 版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 首部长度——占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是 60 字节. 区分服务——占 8 位,用来获得更好的服务 在旧标准中叫做服务类型,但实际上一直未被使用过. 1998 年这个字段改名为区分服务. 只有在使用区分服务(DiffServ)时,这个字段才起作用. 在一般的情况下都不

IP数据报转发算法 or 路由器转发分组的过程

首先我们来了解以下几个基本概念: 1.转发:表示的是为分组选择路径的过程 2.IP转发:其传统称法是IP路由选择(IP routing),IP转发它是为要发送的数据报选择路径. 3.分组:(大多数计算机网络都不能连续地传送任意长的数据,所以实际上网络系统把数据分割成小块,然后逐块地发送,这种小块就称作分组(packet).也有些书籍把分组定义为网络层的协议数据单元) 4.分组转发(forwarding):是指在互联网络中路由器转发IP分组的物理传输过程与数据报转发机制.根据分组的目的Ip地址与源

软考 -&gt; 子网172.6.32.0/20被划分成子网172.6.32.0/26

为了复习一下计算机知识,响应公司号召参加软考,看书过程中发现好多知识都忘却了... 比如,下面这道题目,我是真不会啊. 如果子网172.6.32.0/20被划分成子网172.6.32.0/26,则下面的结论中正确的是() A. 被划分成62个子网 B. 每个子网有64个主机地址 C. 被划分成32个子网 D. 每个子网有62个主机地址 172.6.32.0/20中的20表示网络号的位数. 172.6.32.0 = (10101100,00000110,00100000,00000000)2 而1

路由器使用子网掩码进行分组转发的过程

背景: 1. 子网划分:从主机号借几位作为子网号,划分后的 ip 地址变成三级结构:IP 地址 = { 网络号,子网号,主机号 }. 2. 子网掩码:由于子网划分是单位内部的事情,路由器需要知道子网号才能找到主机,因此通过子网掩码(32位二进制串,由一串的 1 和连续的 0 组成) 告诉路由器目的 IP 地址的子网号( IP 地址与子网掩码相与得到子网的网络地址) 3. 路由表项有三部分组成:目的网络地址.目的网络的子网掩码.下一条地址 路由器进行分组路由的过程: 1. 路由器从分组的首部中提取

[Spark传奇行动] 第34课:Stage划分和Task最佳位置算法源码彻底解密

本課主題 Job Stage 划分算法解密 Task 最佳位置算法實現解密 引言 作业调度的划分算法以及 Task 的最佳位置的算法,因为 Stage 的划分是DAGScheduler 工作的核心,这也是关系到整个作业有集群中该怎么运行:其次就是数据本地性,Spark 一舨的代码都是链式表达的,这就让一个任务什么时候划分成 Stage,在大数据世界要追求最大化的数据本地性,所有最大化的数据本地性就是在数据计算的时候,数据就在内存中.最后就是 Spark 的实现算法时候的略的怎么样.希望这篇文章能

【IP层分组转发的流程】划分子网的情况下,分组转发的算法。

首先,参考了一张谢希仁老师的书里的一个示例: 主机H1向H2发送分组的过程: 首先,跟本子网内的子网掩码:255.255.255.128与目标主机H2的IP地址:128.30.33.128 相与得到网络号 :128.30.33.128.显然这与子网1的网络号:128.30.33.0不匹配. 然后,数据报交由子网1的默认路由R1,由其转发.此时,R1会查找自己的路由表.将H2的主机地址与子网掩码想与,当想与的结果与某一目的网络地址相同时,就将数据报投送给这个子网(即子网2). 那么问题来了,我们知