zoukankan      html  css  js  c++  java
  • 网络层详解2

    划分子网

    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,与此同时主机号也减少相应位数。由此两级IP地址可变为三级IP地址:    IP地址 ::= {<网络号>,<子网号>,<主机号>}
    3. 从外部网络发送给本单位某主机的IP数据报仍根据目的网络号找到连接在本单位网络上的路由器。但随后在本网络内部,路由器根据目的网络号和子网号找到目的子网,将IP数据报交付目的主机。

      注意:划分子网只是把IP地址的主机号这部分进行再划分,并不改变IP地址原来的网络号

    2.子网掩码

      子网掩码是干什么的呢?我们知道,从IP数据报的首部无法看出源主机和目的主机所连接的网络是否进行了子网划分,所以想到了子网掩码(subnet mask)的方法:将三级IP地址的子网掩码(根据子网划分而变)和收到的数据报的目的IP地址逐位"与"(AND),就可得出所要找的子网的网络地址。子网掩码是一个网络或一个子网的重要属性,路由器的路由表中除了有目的网络地址,还有该网络的子网掩码,这是现在因特网的标准规定。

      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. 报告转发分组出错。

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

  • 相关阅读:
    服务注册发现Eureka之二:高可用服务注册中心
    可重入锁 公平锁 读写锁、CLH队列、CLH队列锁、自旋锁、排队自旋锁、MCS锁、CLH锁
    红黑树(Red-Black tree)
    fuser 命令小结
    客户端负载均衡Ribbon之三:AvailabilityFilteringRule的坑(Spring Cloud Finchley.SR2)
    mysql重复记录的查询删除方法
    innodb的锁、update单条记录的花费时间压测
    被kill问题之1:进程物理内存远大于Xmx的问题分析
    服务注册发现Eureka之三:Spring Cloud Ribbon实现客户端负载均衡(客户端负载均衡Ribbon之三:使用Ribbon实现客户端的均衡负载)
    十二、jdk工具之jcmd介绍(堆转储、堆分析、获取系统信息、查看堆外内存)
  • 原文地址:https://www.cnblogs.com/wxgblogs/p/5622575.html
Copyright © 2011-2022 走看看