计算机网络——网络层(概念及IP地址)

news2024/11/14 23:11:30

 

网络层概念 

网络层向上层提供的两种服务 

        在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。

        争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?

虚电路 

一种观点:让网络负责可靠交付

  • 这种观点认为,应借助于电信网的成功经验,让网络负责可靠交付,计算机网络应模仿电信网络,使用面向连接的通信方式·
  • 通信之前先建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源。
  • 如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点,不丢失﹑不重复 

         这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确((无差错按序到达、不丢失、不重复)到达接收方。


虚电路是逻辑连接,并不等同之前所述的电路交换

  • 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
  • 请注意,电路交换的电话通信是先建立了一条真正的连接。
  • 因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。

 网络提供数据报服务

另一种观点:网络提供数据报服务

  • 互联网的先驱者提出了一种崭新的网络设计思路。
  • 网络层向上只提供简单灵活的﹑无连接的﹑尽最大努力交付的数据报服务。
  • 网络在发送分组时不需要先建立连接·每一个分组(即IP数据报)独立发送,与其前后的分组无关(不进行编号)·
  • 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。

        网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序


  • 将复杂的网络处理功能置于因特网的边缘(即用户主机和其内部的运输层)
  • 将相对简单的尽最大努力(即不可靠)的分组交付功能置于因特网核心

虚电路服务与数据报服务的对比 

网络层的两个层面 

        我们已经讲过,不同网络中的两个主机之间的通信,要经过若干个路由器转发分组来完成,分组查找路由器中的转发表,从指明的接口转发到下一个路由器。

        但转发表是怎样得出的呢?是从路由表导出的而路由表又是由互联网中许多的路由器,按照共同选定的路由选择协议,通过许多次的相互交换路由信息而产生的。(具体看分组传送到路由器的运作)

        网络层的主要任务就是将分组从源主机经过多个网络和多段链路传输到目的主机,可以将该任务划分为分组转发路由选择两种重要的功能。

  • 分组转发:第一类是转发源主机和目的主机之间所传送的数据,把源主机所发送的分组,像接力赛跑那样从一个路由器转发到下一个路由器,最后把分组传送到目的主机。
  • 路由选择:第二类则是传送路由信息,是根据路由选择协议所使用的路由算法,彼此不断地交换路由信息分组,目的是为了在路由器中创建路由表,并由此导出为转发分组而用的转发表。这一类信息的传送是为第一类数据的传送服务的。

分组传送到路由器的运作

先绘制链路图如下: 

路由器的运作


         那么R1是如何知道应从自己的哪个接口转发该分组呢

 对网络层进行分层

        可以把网络层抽象地划分为数据层面和控制层面。

         

在数据层面中:

● 路由器根据本路由器生成的转发表,把收到的分组从查找到的对应接口转发出去。

● 每个路由器独立工作。

● 采用硬件进行转发,速度快。

        

在控制层面中:

● 根据路由选择协议所用的路由算法计算路由器,创建出本路由器的路由表。

● 许多路由器协同动作。

● 采用软件计算,速度慢。

         

        路由器的路由选择和分组转发分别处于上述控制层面和数据层面之中(实际上这两种的实现都是在路由器内部完成)。

        这里用 ” 控制层面和数据层面 “ 这种概念进行划分,是因为最近网络界提出的:软件定义网络SDN

        上面这两张图区别在于前者每个路由器既有转发表又有路由选择软件【图中可以看出】,后者所有路由器都变得更加简单了(它的路由选择软件不存在),因此路由器之间不在交换路由信息(路由表由远程控制器生成)。当然这种集中控制的网络好处有些,但传统的前者分散控制的网络也有它所不及的优点,因此相铺相成吧。

网际协议IP 

        

        网际协议 IP (Internet Protocol) 是 TCP/IP 体系结构中两个最主要的协议之一。与 IP 协议配套使用的还有三个协议:

  • (1) 地址解析协议 ARP (Address Resolution Protocol)
  • (2) 网际控制报文协议 ICMP (Internet Control Message Protocol)
  • (3) 网际组管理协议 IGMP (Internet Group Management Protocol)

        这三个协议和网际协议IP的关系。在这一层中,ARP画在最下面,因为IP经常要使用这个协议。ICMP和 IGMP画在这一层的上部,因为它们要使用协议IP。

        由于网际协议IP是用来使互连起来的许多计算机网络能够进行通信的,因此TCP/IP体系中的网络层常常被称为网际层(internetlayer),或IP层。

        

        因此TCP/IP 体系中的网络层常常被称为网际层(internetlayer),或IP层。使用“网际层”这个名词的好处,是强调了这是由很多网络构成的互连网络。目前比较普遍使用“网络层”这个名词。

虚拟互联网络 

        我们知道,如果要在全世界范围内把数以百万计的网络都互连起来,并且能够互相通信,那么这样的任务一定非常复杂。其中会遇到许多需要解决的问题,如:不同的寻址方案、不同的最大分组长度、不同的网络接入机制不同的超时控制、不同的差错恢复方法。

        从上可知,没有一种单一网络能够适应所有用户的需求。

        从一般概念来讲,将网络互相连接起来要使用一些中间设备,根据中间设备所在的层次,可以有以下四种不同的中间设备:

  • (1)物理层使用的中间设备叫作转发器(repeater)。
  • (2)数据链路层使用的中间设备叫作网桥或桥接器(bridge),以及交换机(switch)。
  • (3)网络层使用的中间设备叫作路由器(router)。
  • (4)在网络层以上使用的中间设备叫作网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换。

        

        我们知道:当中间设备是物理层或数据链路层设备时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,在网络层看来仍然是一个网络。而网络互连是指用路由器将不同的网络连接起来。

        当参加互连的计算机网络都使用相同的网际协议IP时,可以把互连以后的计算机网络看成一个虚拟互连网络——各种物理网络的差异性被屏蔽,在网络层上看起来好像是一个统一的网络。

        而这种使用IP协议的虚拟互连网络又称为虚拟IP网。现在的互联网(Internet)就是这种虚拟IP网(上层使用TCP协议)。

         

        当很多异构网络通过路由器互连起来时,如果所有的网络都使用相同的协议IP,那么在网络层讨论问题就显得很方便。现在用一个例子来说明。

         分组从源主机H1发送到目的节点H2,若中间必须经过一个或几个路由器(这表示A和B不在同一个网络上),则是间接交付。但若不需要经过路由器(这表示A和B在同一个网络上),则是直接交付。

        我们还可注意到,在R4和R5之间使用了卫星链路,而R5所连接的是个无线局域网(R5和主机H2都在同一个局域网中)。在R1到R4之间的三个网络则可以是任意类型的网络。总之,这里强调的是:互联网可以由多种异构网络互连组成。


        有时可以把问题简化。我们可以想象IP数据报就在网络层中传送,传输路径可省略路由器之间的网络以及连接在这些网络上的许多无关主机。

        在互联网的词汇中,分组在传送途中的每一次转发都称为一“跃点(hop)”。

        对于本例,H1向H2发送分组需要经过6跳。我们还注意到,每一跳两端的两个节点都必定直接连接在同一个网络上。

IP地址 

        在TCP/IP体系中,IP地址是一个基本概念。一个连接在互联网上的设备,如果没有IP地址,就无法和网上的其他设备进行通信。 

IP地址及其表示方法

        整个互联网是一个单一的、抽象的网络,IP 地址就是给每个连接在互联网上的主机(或路由器)的每一个接口,分配的一个在全世界范围内唯一的 32 位的标识符。

        IP 地址由互联网名字和数字分配机构 ICANN (Internet Corporation for Assigned Names and Numbers) 进行分配。

         为了便于人的书写和记忆,我们常采用点分十进制记法表示:

IP地址的计算方式 

 二进制转化为十进制

十进制转化为二进制

IP地址的结构 

IP 地址采用两级结构,由两个字段组成:

        第一个字段是网络号,它标志主机(或路由器)所连接到的网络;第二个字段是主机号,它标志该主机(或路由器)。 

        一个主机号在所连接的网络(即前面的网络号所指明的网络)中必须是唯一的。由此可见,一个IP地址在整个互联网范围内是唯一的。因此,IP地址可以记为:


        上式子中的符号“::=”表示“定义为”。IP地址中包含网络号就表明,不连网的主机就没有IP地址。一定要记住,IP地址指明了连接到某个网络上的一个主机(或路由器)

分类的IP地址

         图4-9表示P地址中的网络号和主机号的位置。具体的规定是:IP地址中的前n位是
主机所连接的网络号,而IP地址中后面的(32 - n)位是主机号。

        

        现在的问题是,当我们找到一个IP地址时,怎样知道它的网络号的位数n是多少?下面我们就来讨论这个问题。

        32位的IP地址空间共有2^{32}(即4294967296,接近43亿)个地址。它们各自的地址数量占比如图所示。

  • A类、B类和C类地址都是单播地址,只有单播地址可以分配给网络中的主机(或路由器)的各接口。
  • 主机号为“全0”的地址是网络地址,不能分配给主机(或路由器)的各接口。
  • 主机号为“全1”的地址是广播地址,不能分配给主机(或路由器)的各接口

A类地址的细节 

B类地址的细节 

C类地址的细节 

特殊的IPV4地址
 

练习

下面网络应如何分配网络型号?


分配网络型号如下:

CIDR地址 

        无分类编址的全名是无分类域间路由选择 CIDR,它把 IP 地址划分为前后两个部分,前面部分是“网络前缀”(network-prefix),用来指明网络;后面部分是主机号,用来指明主机。  

        在使用 CIDR 编址时,IP 地址的定义及示意图如下:

         在 CIDR 编址,网络前缀的位数 不固定,可以在 0 ~ 32 之间任意选取

斜记线法 

        CIDR 使用“斜线记法”(slash notation),或称为 CIDR 记法,即在 IP 地址后面加上一个斜线“/”,斜线后面写上网络前缀所占的位数。

地址块 

        CIDR把网络前缀都相同的所有连续的IP地址组成一个“CIDR地址块”。一个CIDR地址块包含的IP地址数目,取决于网络前缀的位数。

        IP地址由网络部分和主机部分组成,而网络前缀的长度决定了地址块的大小以及所包含的IP地址数量

        该图比较详细解释了地址块与地址的关系,这与后文内容划分网络相关。

         使用CIDR的一个好处是,可以根据客户的需要分配适当大小的CIDR地址块,因此可以更加有效地分配IPv4的地址空间。

        采用CIDR后,仅从斜线左边的IP地址已无法知道其网络地址了。 

  • 128.14.32.7是IP地址,但未指明网络前缀长度,因此不知道网络地址是什么。
  • 128.14.32.7/20也是IP地址,但同时指明了网络前缀为20位,由此可导出网络地址。

地址掩码 

        CIDR使用斜线记法可以让我们知道网络前缀的数值。但是计算机看不见斜线记法,而是使用二进制来进行各种计算时就必须使用32位的地址掩码address mask)能够从IP地址迅速算出网络地址。

        它的主要功能是分离出IP地址中的网络部分和主机部分,从而确定两台设备是否处于同一子网中。 

        地址掩码(常简称为掩码)由一连串1和接着的一连串0组成,而1的个数就是网络前缀的长度。地址掩码又称为子网掩码。在CIDR记法中,斜线后面的数字就是地址掩码中1的个数。

● 对于 /20 地址块,它的地址掩码是 20 个连续的 1 和 12 个连续的 0。这个掩码用点分十进制表示就是 255.255.240.0。

 练习

构造超网  

        使用CIDR的另一个好处是路由聚合(也称为构造超网)。 

        在路由器的转发表中,如果几个连续的、小的 CIDR 地址块具有相同的下一跳路由器,则可以把这几个小的地址块合并成一个大的地址块,并用一个转发表项代替原来的多个转发表项。

        这种方法称为路由聚合(也称为构造超网),可以大大压缩转发表所占的空间,减少查找转发表所需的时间

1、网络前缀越长,地址块越小,路由越具体:

  • 网络前缀的长度:这个长度决定了网络的大小和可以包含的主机数量。
  • 地址块的大小:网络前缀的位数越多,表示网络部分越大,而主机部分就越小。这意味着该子网内的可用IP地址范围更小,地址块自然也就越小。
  • 路由的具体性:网络前缀越长,说明该子网在互联网中的划分越详细,对应的路由就能更精确地指向特定的小范围网络。这种具体的路由有助于优化网络流量和提高路由效率

2、若路由器查表转发分组时发现有多条路由条目匹配,则选择网络前缀最长的那条路由条目,这称为最长前缀匹配,因为这样的路由更具体:

  • 路由表的查找过程:当路由器需要将数据包转发到其目的地时,会在路由表中查找与数据包目的IP地址匹配的路由条目。这个过程涉及到对多个可能匹配的路由条目的筛选。
  • 最长前缀匹配原则:在有多个匹配的路由条目时,路由器会选择网络前缀最长(即子网掩码中“1”的数量最多)的那个条目,因为这表明这条路由描述的网络范围更小、更具体。
  • 提高效率和精确性:通过最长前缀匹配,可以确保数据包被发送到最准确的目的地,避免错误地发送到可能是部分匹配的、范围更大的网络中。这种方法提高了网络的效率和减少了不必要的网络流量

子网划分 

        定长子网掩码和变长子网掩码都是基于CIDR地址块。 大致区别如下:

IP地址的应用规划——使用定长子网掩码划分子网
 



向主机号借用对应比特作为子网号



分配网络地址如下:

 IP地址的应用规划——使用变长子网掩码划分子网

仍然使用之前相同的网络举例 ,但注意申请到的网络发生变化

 

 IP地址的特点

        (1)IP地址的结构使之管理方便,转发便捷:
        每一个IP地址都由网络前缀和主机号两部分组成。从这个意义上说,IP地址是一种分等级的地址结构。
        分两个等级的好处是:第一,IP地址管理机构在分配IP地址时只分配网络前缀(第一级),而剩下的主机号(第二级)则由得到该网络前缀的单位自行分配。这样就方便了IP地址的管理;第二,路由器根据目的主机所连接的网络前缀(即地址块)来转发分组(而不考虑目的主机号),这样就可以使转发表中的项目数大幅度减少,从而减少转发表所占的存储空间,缩短查找转发表的时间

        (2)主机同时连接两个网络会有两个网络地址,路由器应当也有两个IP地址:
        实际上IP地址是标志一台主机(或路由器)和一条链路的接口。当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络前缀必须是不同的
        这种主机称为多归属主机(multihomed host)。由于一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的IP地址。

        (3)用转发器或交换机连接起来的局域网仍为一个网络:
        按照互联网的观点,一个网络(或子网)是指具有相同网络前缀的主机的集合,因此,用转发器或交换机连接起来的若干个局域网仍为一个网络,因为这些局域网都具有同样的网络前缀。具有不同网络前缀的局域网必须使用路由器进行互连

        (4)分到网络前缀的网络会被互联网平等对待:

        在IP地址中,所有分配到网络前缀的网络(不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网)都是平等的。所谓平等,是指互联网同等对待每一个IP地址。

 

题外话:二叉树划分变长子网与定长子网 

 

定长子网用二叉树划分 

 

 

变长子网用二叉树划分 

 

进一步解释为啥各分支不能重复堵 

 

 

练习

        在堵住5个出水口的同时,保证生成树最深 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1909902.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

rfid资产管理系统解决方案 rfid固定资产管理系统建设方案

在现代化的仓库储备中,仅仅完成对货物进出的简单批次处理已经不再足够,对库内货品的种类、数量、生产属性、垛位等信息的清晰记录变得至关重要。然而,传统的资产管理方式如条形码在长期使用中逐渐暴露出不耐脏、数据存储量小、读取间隔短、不…

js吸顶导航

吸顶导航 当我们浏览页面篇幅较大,浏览过半的时候想回到导航位置,只能通过往回滚动或通过”回到顶部”重新滚动到导航位置,这样的操作显得繁琐与不便。于是便有了吸顶式导航的交互方式,吸顶条导航最大的好处是将最常用或者设计者最…

WAIC | 穿越千年!华院计算AIGC技术实现刘徽、祖冲之和毕达哥拉斯跨时空对话

祖冲之利用刘徽的割圆术,将圆周率π的近似计算精确到小数点后七位,这不仅是数学史上的一项重要突破,也是对无理数逼近问题的早期探索。在现代人工智能中同样能观察到数值逼近的思想,例如模型的训练通常依赖随机优化算法等数值方法…

2.贪心算法.基础

2.贪心算法.基础 基础知识题目1.分发饼干2.摆动序列3.最大子序和4.买股票的最佳时机24.2.买股票的最佳时机5.跳跃游戏5.1.跳跃游戏26.K次取反后最大化的数组和7.加油站8.分发糖果 基础知识 什么是贪心? 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 贪…

Studying-代码随想录训练营day33| 动态规划理论基础、509.斐波那契函数、70.爬楼梯、746.使用最小花费爬楼梯

第33天,动态规划开始,新的算法💪(ง •_•)ง,编程语言:C 目录 动态规划理论基础 动态规划的解题步骤 动态规划包含的问题 动态规划如何debug 509.斐波那契函数 70.爬楼梯 746.使用最小花费爬楼梯 总结 动态…

MSPM0G3507——时钟配置(与32关系)

先将32端时钟配置分为1,2,3如图 1是PSC左边未经分频的时钟源(HZ) 2是经过PSC分频的时钟信号(HZ) 3是最终的输出信号(HZ) 3输出的是一个定时器周期的HZ,可以转换成时间 …

哨兵系统:一套实时灵活可配置化的业务指标监控系统

简介: 在KOO分期的线下业务中,需要对很多关键业务指标进行实时监控,并需要根据一定的数据格式,通过企微机器人发往对应的企微群,因此KOO分期技术团队在KOO业务指标库之上,搭建了一套KOO分期业务指标监控系统&#xff…

ppt接单渠道大公开‼️

PPT 接单主要分两种:PPT 模板投稿和PPT 定制接单,我们先从简单的 PPT 模板投稿说起。 PPT 模板投稿 利用业余时间,做一些 PPT 模板上传到平台,只要有人下载你的模板,你就有收入。如果模板质量高,简直就是一…

Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析

章节内容 上一节我们完成了内容: Flume 启动测试Flume Conf编写Flume 测试发送和接收数据 背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经在 VM 虚拟机上搭建过一次,但…

高德API接入安卓相关问题说明

高德API接入安卓相关问题说明 我们都在怀念过去,失去后我们才懂得珍惜,有些人或事早已经远去,可是还是会想起曾经拥有的岁月,会是一种喜悦,会是一种遗憾…… 目前Android开发已经普遍使用Android Studio,开…

优思学院|当今的丰田精益生产模式落伍了吗?

丰田曾经是全球销量最大的汽车制造商,不过现在却被挖苦为可能会成为下一个汽车界的“诺基亚”。 丰田的前CEO丰田章男对于电动汽车的前景持极度怀疑态度,今年4月他下台,由年轻14岁的佐藤恒治接任。这一变动反映了丰田对电动汽车态度的180度大…

streamlit table转置显示

streamlit table转置显示,并且原始的表头放在最左侧 原始表格 代码 import streamlit as st import pandas as pd# 创建一个示例 DataFrame data {Column1: [1, 2, 3],Column2: [4, 5, 6],Column3: [7, 8, 9] } df pd.DataFrame(data)# 转置 DataFrame transposed_df df.T…

进程,进程的调度,进程的调度算法(详解)ฅ( ̳• · • ̳ฅ)

目录 😇进程的概念: 😚进程的组成: 🥰进程的调度: 一.进程调度的概念: 二.进程调度的方式: 三.进程调度的时机: 🤪进程的调度算法: 一.先…

如何通过运动改善老年人的腿部肌肉力量?

老年人腿部肌肉力量的重要性 随着年龄的增长,肌肉自然会逐渐萎缩,特别是腿部肌肉。腿部肌肉的强弱直接影响到老年人的行走能力、平衡能力和日常生活的自理能力。因此,通过适当的运动来改善和增强腿部肌肉力量对于老年人来说至关重要。 适合老…

1Panel安装教程:使用Linux服务器安装1Panel面板全流程

使用阿里云服务器安装1Panel面板全流程,云服务器操作系统为CentOS 7.9,安装1Panel非常简单,先执行1Panel安装命令,然后在云服务器安全组中开通1Panel默认端口号、安全入口、用户名和密码等操作,阿里云百科整理详细安装…

前端八股文 跨域

前端跨域和常见解决方案 一、什么是跨域 同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的 资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。 有一点必须要注意:跨域并不是请求发不…

Unity插件 Unitask学习日志

Unity插件 Unitask学习日志 下载地址 https://github.com/Cysharp/UniTask点击这里可以查阅中文文档 在Unity 2020,2021 中使用UPM下载会找不到,可以使用2022版本的unity可以在upm中找到。 安装方式: 下载zip之后解压, 复制Plugins 到Uni…

化工厂定位系统有哪些功能?

有伙伴了解化工厂定位系统吗?相信很多小伙伴都没有听说过,感觉离我们的生活比较远,事实上化工厂定位系统也是默默的在保护我们的安全。今天新锐科创就给大家介绍一下这个系统,让大家简单的了解一下。 大家都知道化工厂一直是一个比…

【LLM大模型】如何在LlamaIndex中使用RAG?

如何在LlamaIndex中使用RAG 什么是 Llama-Index LlamaIndex 是一个数据框架,用于帮助基于 LLM 的应用程序摄取、构建结构和访问私有或特定领域的数据。 如何使用 Llama-Index ? 基本用法是一个五步流程,将我们从原始、非结构化数据导向基于该数据生成…

本地部署 SenseVoice - 阿里开源语音大模型

本地部署 SenseVoice - 阿里开源语音大模型 1. 创建虚拟环境2. 克隆代码3. 安装依赖模块4. 启动 WebUI5. 访问 WebUI 1. 创建虚拟环境 conda create -n sensevoice python3.11 -y conda activate sensevoice 2. 克隆代码 git clone https://github.com/FunAudioLLM/SenseVoic…