IP详解(二)

划分子网和构造超网

  • 划分子网
    • 从两级IP地址到三级IP地址
    • 为什么呢?
      • 第一:有时的IP地址利用率比较低。
      • 第二:给每一个物理网络分配一个网络号会使路由表变的太大因而会使网络性能变差
      • 第三:两级的IP地址不够灵活。
    • 那么我们需要划分子网,划分子网的方法的基本思路是:
      • 1、一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网,划分子网纯属于公司或者单位内部的事情。本公司或者本单位以外的网络看不见这个网络是由多少个子网组成,因为这个公司或者单位仍然对外表现为一个网络。
      • 2、划分子网的方法就是从网络的主机号借用若干位作为子网号,当然主机号也就相应的减少了同样的位数,于是两级IP地址在本单位内部就变成了三级IP地址:网络号、子网号、主机号。
      • 3、凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接到本单位网络上的路由器。但此路由器收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付给目的主机。
  • 子网掩码
    • 使用子网掩码的好处:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位与运算,就立刻得出网络地址来。这样在路由器处理到来的分组时就可采用相同的算法。
    • 现在互联网的标准规定:所有网络都必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。
    • 但是有一个问题:划分子网增加了灵活性,但却减少了能够在网络上的主机总数。
  • 使用子网时分组的转发
    • 使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码、下一跳地址。
      • 1、从收到的数据报首部提取目的IP地址D。
      • 2、先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相与,看结果是否和相应的网路地址匹配。若匹配,直接交付(当然还要把D转换成 物理地址,把数据报封装成帧发送出去),转发任务结束。否则就间接交付,执行3.
      • 3、若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器。否则,就执行4.
      • 4、对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D逐位相与,其结果为N。若N与该行的目的网络地址相匹配,则把数据报传送给该行的下一跳路由器。否则,执行5.
      • 5、若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器。否则,执行6.
      • 6、报告转发分组出错。
  • 无分类编址CIDR(构造超网)

    • 无分类编址:正式名字是无分类域间路由选择CIDR
    • CIDR消除了传统的A类、B类、C类地址以及划分子网的概念。前面部分是网络前缀,后面部分是主机前缀。因此CIDR使IP地址从三级编址(使用子网掩码)到两级编址。CIDR还使用斜线记法,即在IP地址后面加上斜线 / ,然后写上网络前缀所占的位数。
    • CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。
    • 由于一个CIDR地址块有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合,它使的路由表中的一个项目可以表示原来传统分类地址的很多个路由。路由聚合也称构成超网。
    • 每个项目由网络前缀和下一跳地址组成。但是在查找路由表时可能会得到不止一个匹配结果。这样我们应当从这些匹配结果中选择那一条路由呢?  应当从匹配结果中选择具有最长网络前缀的路由。这就叫最长前缀匹配,这是因为网络前缀越长,其地址块就越小,因而路由就越具体。最长前缀匹配又称为最长匹配或最佳匹配。
    • 如何寻找最长前缀匹配,我们采用二叉线索树查找路由表。
      • 为了简化二叉线索数的结构,可以先找出对应于每一个IP地址的唯一前缀。所谓唯一前缀就是在表中所有的IP地址中,该前缀是唯一的。这样就可以用这些唯一前缀来构造二叉线索。在进行查找时,只要能够和唯一前缀匹配就行了。
      • 为了提高二叉线索的查找速度,广泛使用各种压缩技术。比如:前N位是相同的,那么就从N+1位查找。
  • 网际控制报文协议ICMP

    • 为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP。ICMP允许主机或者路由器报告差错情况和提供有关异常情况的报告。因为ICMP报文是封装在IP数据报中,作为其中的数据部分,因此是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
    • ICMP的前4个字节是统一的格式。8位的类型、8位的代码、16位的校验和。接下来4个字节取决于ICMP报文的类型。接下来 ICMP的数据部分(长度取决于类型)
    • ICMP报文的种类:ICMP差错报告报文和ICMP询问报文
      • 几种常用的ICMP报文类型
    • ICMP报文种类类型的值ICMP报文的类型
      差错报告报文3终点不可达
      差错报告报文11时间超时
      差错报告报文12参数问题
      差错报告报文5改变路由
      询问报文8 或 0回送请求或回答
      询问报文13 或 14

      时间戳请求或回答

      ICMP报文的代码字段是为了进一步区分某种类型中的几种不同情况。检验和字段用来检验整个ICMP报文。我们应该还记得,IP数据报首部的检验和并不检验IP数据报的内容,因此不能保证经过传输的ICMP报文不产生差错。

    • ICMP差错报告报文共有4种:

      • 1、终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。

      • 2、时间超时:当路由器收到生存时间为零的数据报时,除丢弃数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。

      • 3、参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。

      • 4、改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)

        • 下面对改变路由报文进行简短的解释。我们知道,在互联网的主机中也要有一个路由表。当主机要发送数据报时,首先是查找主机自己的路由表,看应当从哪一个接口把数据报发送出去。在互联网中主机的数量远大于路由器的数量,处于效率的考虑,这些主机不知连接在网络上的路由器定期交换路由信息。在主机刚开始工作时,一般都在路由表中设置一个默认路由器的IP地址。不管数据报要发送到那个目的地址,都一律先把数据报传送给这个默认路由器,而这个默认路由器知道每一个目的网络的最佳路由(通过和其他路由器交换路由信息)。如果默认路由器发往某个目的地址的数据报的最佳路由应当经过网络上的另一个路由器R时,就用改变路由报文把这情况告诉主机。于是,该主机就在其路由表中增加一个项目:到某某目的地址应经过路由器R(而不是默认路由器)。

      • 所有的ICMP差错报文中的数据字段都具有同样的格式。把收到的需要进行差错报告的IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数据字段。再加上相应的ICMP差错报告报文的前8个字节,就构成了ICMP差错报告报文。提取收到的数据报的数据字段前8个字节是为了得到运输层的端口号(对于TCP和UDP)以及运输层报文的发送序号(对于TCP)。这些信息对源点通知高层协议是有用的。整个ICMP报文作为IP数据报的数据字段发送给源点。

  • 不应发送ICMP差错报告报文的几种情况

    • 对ICMP差错报告报文,不再发送ICMP差错报告报文
    • 对第一个分片的数据报片的所有后续数据报片,都不发送ICMP差错报告报文。
    • 对具有多播地址的数据报,都不发送ICMP差错报告报文
    • 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报,不发送ICMP差错报告报文
  • 常用的ICMP询问报文

    • 1、回送请求和回答:ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
    • 2、时间戳请求和回答:ICMP时间戳请求报文是某台主机或路由器回答当前的日期和时间。在ICMP事假戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。时间戳请求与回答可用于时钟同步和时间测量。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值