网络层1~2.2.2

讲一下上章节的一些心得吧:

在数据链路层有两种信道因而产生了对应信道的两种协议(PPP协议和CSMA/CD协议),PPP协议用来通过拨号或者专线方式建立点对点连接发送数据。CSMA/CD协议的基本原理是:每一个节点都共享网络传输信道,在每一个站点发送数据之前,都会检测信道是否空闲,如果空闲则发送,否则就等待;在信息发送之后,则对于冲突进行检测,当发现冲突的时候,就取消发送。最后交换机的出现解决了物理层因为总线共享而造成的冲突问题。虚拟局域网为了安全方面的考虑,将一个较大的局域网分割成为了一些较小的局域网,但是数据链路层一旦划分了VLAN标签之后,让接口带上不同的Vlan标签,无法使得A3、B4(不同标签的两个接口)相互通信了(起码你是在数据链路层解决不了了)。

本章节最重要的内容是:

(1)虚拟互连网络和两种服务、两个层面的概念。

(2)IP地址和MAC地址的关系。

(3)传统分类的IP地址和无分类间路由选择CIDR(后者是重点)。

(4)路由选择协议的工作原理。

网络层

4.1 网络层的几个重要概念

4.1.1 网络层提供的两种服务

在计算机网络领域,网络层应该向着运输层提供怎样的服务(“面向连接”还是“无连接”)曾经引起长期的争论。争论焦点实质就是:在计算机通信中,可靠交付应该由谁来负责?是网络还是端系统?

1、虚电路服务

  • 电信网使用昂贵的程控交换机,用面向连接的通信方式,使电信网络能够向用户(实际上就是电话机)提供可靠传输的服务。当两个计算机进行通信的步骤:

    (1)应当先建立连接(但在分组交换中是建立一条虚电路VC),以保证通信双方所需的一切网络资源。
    (2)然后双方就沿着已建立的虚电路发送分组。
    (3)这样的分组的首部就不需要填写完整的目的主机地址,而只需填写这条虚电路的编号(一个不大的整数),因而减少了分组的开销。
    (4)如果这种通信方式再使用可靠传输的网络协议,就可使所发送的分组无差错按序地到达终点,当然也不丢失、不重复。
    (5)在通信结束后,要释放建立的虚电路。

2、数据报服务

  • 因特网在设计上就采用了和电信网完全不同的思路。
    由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。

    (1)网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每个分组(也就是IP数据报)独立发送,与其前后的分组无关(不进行编号)。
    (2)网络层不提供服务质量的承诺。也就是说所传送的分组,可能出错、丢失、重复或失序,当然也不保证分组交付的时限。
    这种设计思路的好处:
    (1)网络的造价大大降低。
    (2)运行方式灵活。
    (3)能够适应多种应用。

4.1.2 网络层的两个层面

不同网络的两个主机相互通信,要经过若干个路由器转发分组得来,分组查找路由器的转发表,指明从接口转发到下一个路由器,按照共同选择的路由协议,通过多次交换路由信息而产生的。由此可见在路由器之间传送的信息有以下两大类:

第一类转发源主机和目的主机之间所传送的数据,把源主机所发送的分组,像接力赛跑那样从一个路由器转发到下一个路由器,最后将分组转发到目的主机。

第二类则是传送路由信息,根据路由协议所选择的路由算法,彼此不断地交换路由信息分组,目的是为了在路由器中创建路由表,由此导出为转发分组而用的转发表。这一类信息的传送是为了第一类数据传送而服务的。

​ 使用图4-2的方法进行描述就是将网络抽象的划分为数据层面(或者转发层面)和控制层面

数据层面,每一个路由器根据本路由器生成的转发表,将查到的分组,从查找的对应的接口转发出去。为了提高转发效率,现在的路由器一般都通过硬件进行转发。

但是在控制层面则不同,路由器必须和相邻的路由器 交换信息,然后才能创建出本路由器的路由表。根据路由协议所使用的路由算法计算路由要使用软件 ,这就慢多了根据以上不难看出数据层面的问题比较单纯,因为路由器在转发分组的时候,是独立的根据本路由器的转发表转发分组的,但是在控制层面就比较复杂了因为路由器要创建路由表,就必须依靠许多路由器协同合作。

控制层面是各种协议工作的层面,他的作用是通过控制和管理各协议的运行使得路由器或交换机能够对整个网络的设备、链路和运行的协议有一个准确的了解,并在网络发生变化时也能及时感知并调整

4.2 网际协议IP

网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一,也是最重要的互联网标准协议之一。

与 IP 协议配套使用的还有三个协议:

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

下图画出了这三个协议和网际协议 IP 的关系。在这一层中, ARP 画在最下面,因为 IP 经常要使用这个协议。 ICMP 和 IGMP 画在这一层的上部,因为它们要使用 IP 协议。这三个协议将在后面陆续介绍。由于网际协议 IP 是用来使互连起来的许多计算机网络能够进行通信的,因此 TCP/IP体系中的网络层常常被称为网际层(internet layer),或 IP 层。使用“网际层”这个名词的好处是强调。

4.2.1 虚拟互联网络

我们知道,如果要在全世界范围内把数以百万计的网络都互连起来,并且能够互相通信,那么这样的任务一定非常复杂。其中会遇到许多需要解决的问题,如:

  • 不同的寻址方案;
  • 不同的最大分组长度;
  • 不同的网络接入机制;
  • 不同的超时控制;
  • 不同的差错恢复方法;
  • 不同的状态报告方法;
  • 不同的路由选择技术;
  • 不同的用户接入控制;
  • 不同的服务(面向连接服务和无连接服务);

能不能让大家都使用相同的网络,这样可使网络互连变得比较简单。答案是不行的。因为用户的需求是多种多样的,**没有一种单一的网络能够适应所有用户的需求 **。另外,网络技术是不断发展的,网络的制造厂家也要经常推出新的网络,在竞争中求生存。因此在市场上总是有很多种不同性能、不同网络协议的网络,供不同的用户选用。

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

(1)物理层使用的中间设备叫做转发器(repeater)。

(2)数据链路层使用的中间设备叫做网桥或桥接器(bridge)交换机

(3)网络层使用的中间设备叫做路由器(router)。

(4)在网络层以上使用的中间设备叫做网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换。

所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。这种使用 IP 协议的虚拟互连网络可简称为 IP 网(IP 网是虚拟的,但平常不必每次都强调“虚拟”二字)。

其实上述图片强调的是互联网可以由多种异构网络构成

如果我们只从网络层考虑问题,那么 IP 数据报就可以想象是在网络层中传送, 其传送路径是:

这样就不必画出许多完整的协议栈,使问题的描述更加简单。

有了虚拟互连网络的概念后,我们再讨论在这样的虚拟网络上如何寻址。

沿着协议栈向下封装,向上解封的一个过程,通信向上层提供服务

4.2.2 IP地址

整个的互联网就是一个单一的、抽象的网络。 IP 地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的 32 位的标识符。 IP 地址的结构使我们可以在互联网上很方便地进行寻址。 IP 地址现在由互联网名字和数字分配机构ICANN (Internet Corporation for Assigned Names and Numbers)进行分配 。

1、IP地址及其表示方法

IP 地址的编址方法共经过了三个历史阶段。

(1)分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。

(2)子网的划分。这是对最基本的编址方法的改进,其标准 RFC 950 在 1985 年通过。

(3)构成超网。这是比较新的无分类编址方法。 1993 年提出后很快就得到推广应用。

所谓“分类的 IP 地址”就是将 IP 地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,其中第一个字段是网络号(net-id),它标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。第二个字段是主机号(host-id),它标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。 由此可见,一个 IP 地址在整个互联网范围内是唯一的

这种两级的 IP 地址可以记为:

1
IP地址 ::== {<网络号>,<主机号>}

2、分类的IP地址

从上图可以看出:

  • A 类、 B 类和 C 类地址的网络号字段(在图中这个字段是灰色的)分别为 1 个、 2 个和 3 个字节长,而在网络号字段的最前面有 1∼3 位的类别位,其数值分别规定为0, 10 和 110。
  • A 类、 B 类和 C 类地址的主机号字段分别为 3 个、 2 个和 1 个字节长。
  • D 类地址(前 4 位是 1110)用于多播(一对多通信)。
  • E 类地址(前 4 位是 1111)保留为以后用。

从 IP 地址的结构来看, IP 地址并不仅仅指明一台主机,而是还指明了主机所连接到的网络。

把 IP 地址划分为 A 类、 B 类、 C 类三个类别,当初是这样考虑的。各种网络的差异很大,有的网络拥有很多主机,而有的网络上的主机则很少。把 IP 地址划分为 A 类、 B 类和C 类是为了更好地满足不同用户的要求。当某个单位申请到一个 IP 地址时,实际上是获得了具有同样网络号的一块地址。其中具体的各台主机号则由该单位自行分配,只要做到在该单位管辖的范围内无重复的主机号即可。

对主机或路由器来说, IP 地址都是 32 位的二进制代码。为了提高可读性,我们常常把32 位的 IP 地址中的每 8 位插入一个空格(但在机器中并没有这样的空格)。为了便于书写,可用其等效的十进制数字表示,并且在这些数字之间加上一个点。这就叫做点分十进制记法(dotted decimal notation)。下图是一个 B 类 IP 地址的表示方法。显然, 128.11.3.31 比10000000 00001011 00000011 00011111 书写起来要方便得多。

这种分类的IP地址由于网络号的位数是固定的,因此管理简单、使用方便、转发分组迅速,完全可以满足当时需求。后来,为了更加灵活地使用IP地址,出现了划分子网的方法,在IP地址的主机号中,插入一个子网号,把两级的IP地址变为三级的IP地址。但是,谁也没有预料到,互联网在20世纪90年代突然迅速地发展起来了。互联网从美国专用的科研实验网演变到世界范围开放的商用网!互联网用户的猛增,使得IP地址的数量面临枯竭的危险。这时,人们才注意到原来分类的IP地址在设计上确实有很不合理的地方。例如,一个A类网络地址块的主机号数目超过了1677 万个!当初美国的很多大学都可以分配到一个A类网络地址块。一个大学怎么会需要这样多的IP地址?但在互联网出现早期,人们就是认为IP地址是用不完的,不需要精打细算地分配。又如,一个 C类网络地址块可指派的主机号只有254个。但不少单位需要有300个以上的卫地址,那么干脆申请一个B类网络地址块(可以指派的主机号有6554个), 宁可多要些卫地址,把多余的地址保留以后慢用。这样就浪费了不少的地址资源。即使后来采用了划分子网的方法,也无法解决IP地址枯竭的问题。

于定,在20世纪90年代当发现IP地址在不久后将会枯竭时,种新的无分类编址方法就何世了。这种方法虽然也无法解决IP地址枯竭的问题,但可以推迟IP地址用尽的日子。下一节就介绍现在已普遍采用的这种编址方法。

3. 无分类编址CIDR

它的正式名字是无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。

(1)网络前缀
  • CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
  • CIDR 使用各种长度的 “网络前缀” ( network-prefix ) 来代替分类地址中的网络号和子网号。
  • IP 地址从三级编址(使用子网掩码)又回到了两级编址。

无分类的两级编址的记法是:

CIDR 使用 “斜线记法” (slash notation),它又称为 CIDR 记法,即在 IP 地址后面加上一个斜线 “/” ,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。例如CIDR表示的一个IP地址128.14.35.7/20二进制IP地址的前20位是网络前缀(相当于原来的网络号),剩下的后面12位是主机号。

(2)地址块

CIDR 把网络前缀都相同的连续的 IP 地址组成 “CIDR 地址块”。

128.14.32.0/20

③ 最小地址 : 最小地址就是主机号全0; 也就是地址块地址 ;

10000000 00001110 00100000 00000000

④ 最大地址 : 最大地址就是主机号全1 ;

10000000 00001110 00101111 11111111

⑤ 子网掩码 : 又称为“地址掩码” , 网络前缀对应的前20位为1,主机号对应的位数为0;

11111111 11111111 11110000 00000000

转为十进制为 : 255.255.240.0

(3)地址掩码

128.14.32.0/20

⑤ 子网掩码 : 又称为“地址掩码” , 网络前缀对应的前20位为1,主机号对应的位数为0;

11111111 11111111 11110000 00000000

转为十进制为 : 255.255.240.0

将二进制的IP地址和地址掩码按位AND运算,即可得出网络地址。

CIDR地址中还有三个特殊的地址块,即:

  • 前缀n = 32,即32位IP地址都是前缀,没有主机号。这其实就是一个IP地址。这其实就是一个IP地址。这个特殊地址用于主机路由
  • 前缀n = 31,这个地址块中只有两个IP地址,其主机号分别为0和1。这个地址快用于点对点链路
  • 前缀n = 0,同时IP地址也全是0,即0.0.0.0/0。这用于默认路由

一个大的CIDR地址块中往往包含很多小地址快,所以在路由器的转发表中就利用较大的一个CIDR地址快来替代许多小的地址快。这种方法称为路由聚合

4. IP地址的特点

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

(2)实际上IP地址是标志台主机(或路由器)和一条链路的接口。当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络前缀必须是不同的。这种主机称为多归属主机(multihomed hos).由于一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的IP地址。这好比一一个建 筑正好处在北京路和上海路的交叉口上,那么这个建筑就可以拥有两个门牌号码。例如,北京路4号和上海路37号。

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

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


网络层1~2.2.2
http://example.com/2024/03/18/cn_网络层01,02.2.2/
作者
nianjx
发布于
2024年3月18日
许可协议