主要内容:

  • 虚拟互联网络的概念。
  • IP 地址与物理地址的关系。
  • 传统的分类的 IP 地址(包括子网掩码)和无分类域间路由选择 CIRD。
  • 路由选择协议的工作原理。

网络层提供的两种服务

在计算机网络领域,网络层应该向传输层提供怎样的服务曾引起长期的争论,焦点的实质就是:在计算机通信中,可靠交付应当由谁负责?有的人认为应当借助电信网的成功经验,让网络负责可靠交付(虚电路服务)。

但因特网的先驱者却提出了一种崭新的网络设计思路。他们认为,电信网提供的端到端可靠传说的服务对电话与业务无疑是很合适的,因为电信网的终端(电话机)非常简单,没有智能,也没有差错处理能力。但计算机网络的端系统是有智能的计算机,有很强的差错处理能力(这点和传统的电话机有本质的区别)。因此因特网在设计上就采用了和电信网完全不同的思路:网络层只向上提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络层不提供服务质量的承诺。 采用这种思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。

网络层提供的两种服务:

网络层提供的两种服务.jpeg

虚电路服务和数据报服务的对比:

虚电路服务和数据报服务的对比.png

网际协议 IP

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

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

关系图:

网际协议IP及其配套协议

在讨论网际协议 IP 之前,必须了解什么是虚拟互联网络。

虚拟互连网络

如果在全世界范围内把数以百万计的网络都连接起来,并且能够相互通信,那么这样的任务一定非常复杂。能不能让大家都使用相同的网络,这样可使网络互连变得比较简单。答案是不行的,因为用户的需求是多种多样的,没有一种单一的网络能够使用所有用户的需求

将网络互连的一些 中间设备

  • 物理层使用的中间设备叫做转发器(repeater)。
  • 数据链路层使用的中间设备叫做网桥或桥接器(bridge)。
  • 网络层使用的中间设备叫做路由器(router)。
  • 网络层以上使用的中间设备叫做网关(gateway)

所谓的虚拟互连网络也就是逻辑互连网络,他的意思就是互连起来的各种物理网络的易购性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络 在网络层上看起来好像是一个统一的网络。使用 IP 网上的主机进行通信时,就好像在一个单个网络上通信一样,他们看不见互联的各网络的具体的异构细节(如编制方案、路由选择协议等)。

IP网的概念:

IP网的概念.jpg

互联网可以由多种异构网络互连而成

分类的 IP 地址

IP 地址及其表示方法

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

  • 分类的 IP 地址。
  • 子网的划分。
  • 构成超网。

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。一个IP地址在整个因特网范围内是唯一的。

两级的IP地址可以表示成如下的形式:
IP地址 ::= {<网络号>,<主机号>}

IP地址中的网络号字段和主机号字段

其中第一个字段是网络号,标志着主机所连接到的网络,一个网络号在整个因特网范围必须是唯一的。第二个字段是主机号,它标志着主机,一个主机号在它前面所指明的网络范围内必须是唯一的。从 IP 地址的结构来看,IP 地址并不仅指明一个主机,而且还指明主机所连接到的网络

常用的三种类别的 IP 地址

IP地址的指派范围:

IP地址的指派范围

一般不使用的特殊IP地址:

一般不使用的特殊IP地址

IP 地址具有以下重要特点:

  • 每一个 IP 地址都是有网络号和主机号组成的
  • 实际上 IP 地址是标记一个主机(或路由器)和一条链路的接口
  • 用转发器或网桥连接起来的若干个局域网仍是一个网络
  • 因特网平等对待每一个 IP 地址

IP 地址与硬件地址

在学习 IP 地址时,很重要的一点就是要弄懂主机的 IP 地址与硬件地址的区别(在局域网中,由于硬件已经固化在网卡上的 ROM 中,因此常常将硬件地址成为物理地址)。

区别图示:

IP地址与硬件地址的区别.png

从层次角度看,物理地址是数据链路层和物理层使用的地址,而IP是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的)。

总之,IP地址放在IP数据报的首部,而硬件地址则放在 MAC帧的首部。在网络层和是网络层以上的是 IP 地址,而数据链路层以下使用的是硬件地址。上图中,当 IP 数据报放入数据链路层的 MAC 帧中以后,整个的 IP 数据报就成为 MAC帧的数据,因而在数据链路层看不见数据报的 IP 地址。

强调:

  • 在 IP 层抽象的互联网上只能看到 IP 数据报。
  • 虽然在IP数据报首部有源站 IP 地址,但路由器只根据目的站的 IP 地址的网络号进行路由选择。
  • 在局域网的链路层,只能看见 MAC 帧。
  • 尽管互连在一起的网络的硬件体系各不相同,但IP层抽象的互联网却屏蔽了下层这些很复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或路由器之间的通信

但是,好像还有两个问题没有解决:

  • 1、主机或路由器怎么知道在 MAC 帧的首部填入什么样的硬件地址?
  • 2、路由器的路由表是怎么得出的?

第一个问题接下来解决,第二个问题在【因特网的路由选择协议】章节讨论。

地址解析协议 ARP

在实际应用中我们会遇到这样的问题:已经知道了一个机器(主机或路由器)的 IP 地址,需要找出其相对应的硬件地址。地址解析协议 ARP 就是用来解决这个问题的。下图说明 ARP 协议的作用。

ARP协议的作用

要点:

我们知道,网络层使用的是 IP 地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址。但 IP 地址和下面的网络的硬件地址之间由于格式不同而不存在简单的映射关系(例如,IP地址有32位,而局域网的硬件地址是48位)。此外,在一个网络上可能会有新的主机加入,或撤走一些主机,更换网络适配器也会是主机的硬件地址发生改变。地址解析协议 ARP 解决这个问题的方法是在主机ARP高速缓存中存放一个IP地址到硬件地址的映射表,并且这个映射表还经常更新(新增或超时删除)。

IP 数据报的格式

  • IP 数据报首部的固定部分中的各字段
    • 1、版本
    • 2、首部长度
    • 3、区分服务
    • 4、总长度
    • 5、标识
    • 6、标志
    • 7、片偏移
    • 8、生存空间
    • 9、协议
    • 10、首部检验和
    • 11、源地址
    • 12、目的地址
  • IP 数据报首部的可变部分

IP层转发分组的流程

下图a是一个路由表的简单的例子。有四个 A 类网络通过三个路由器连接在一期。每个网络上都有可能有成千上万个主机。可以想象,若按目的主机号来制作路由表,则所得出的路由表就会过于庞大(如果每一个网络有1万台主机,四个网络就有4万台主机,因而每个路由表就有4万个项目,也就是4万行。每一行对应一个主机)。但若按主机所在的网络地址来只做路由表,那么每个路由器的路由表就只包含4个项目。以路由器 R2 的路由表为例,由于 R2 同时连接在网络2和网络3上,因此只要目的站在这两个网络上,都可以通过接口0或1由路由器R2直接交付(当然还要利用地址解析协议 ARP 才能找到这些主机相应的硬件地址)。但目的主机在网络1中,则下一跳路由器应为R1,IP地址为 20.0.0.7。路由器R2和R1由于同时连接在网络2上,因此路由器R2把分组转发到路由器R1上是很容易的。同理,若目的主机在网络4中,则路由器R2应把分组转发给IP为 30.0.0.1 的路由器R3。

路由表举例

可以把整个的网络拓扑简化为图b所示那样。这样的简化图强调来了在互联网上转发分组时,是 从一个路由器转发到下一个路由器。总之,在路由表中,对每一条路由最主要的两个信息: (目的网络地址,下一跳地址)

于是,我们根据目的网络地址确定下一跳路由器,作出以下结果。

  • IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
  • 只有到达最后一个路由器时,才试图向目的主机进行直接交付。

TODO: 分组转发算法

划分子网和构造超网

划分子网

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

在今天看来,在 ARPANET 的早期,IP 地址的设计确实不够合理。

  • 第一,IP 地址空间的利用率有时很低。
  • 第二,给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
  • 第三,两级 IP 地址不够灵活。

为了解决上述问题,从1985年在IP地址中又增加了一个“子网号字段”,使两级IP地址变为三级IP地址,它能够较好地解决上述问题,并且使用起来也很灵活。这种做法叫做划分子网(subnetting),或子网寻址或子网路由选择。划分子网已成为因特网的正是标准协议。

划分子网的基本思路如下:

  • 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网。划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍表现为一个网络。
  • 划分子网的方法是从网络的主机号借用若干单位作为子网号,当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变成了三级IP地址:网络号、子网号和主机号。也可以用以下记法来表示:

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

  • 凡是从其他网络发给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到 IP 数据报后,再按目的的网络和子网号找到目的子网,吧 IP数据报交付目的主机。

一个 B 类网络 145.13.0.0

一个 B 类网络 145.13.0.0

把上图划分为三个子网,但对外仍是一个网络

把上图划分为三个子网,但对外仍是一个网络

当没有划分子网时,IP地址是两级结构。划分子网后 IP 地址变成了三级结构。划分子网只是把 IP 地址的主机号这部分进行再划分,而不改变 IP 地址原来的网络号。

子网掩码

使用子网时分组的转发

无分类编织 CIDR(构成超网)

【TODO】

网际控制报文协议ICMP

【TODO】

因特网的路由选择协议

IP多播

【TODO】

虚拟专用网VPN和网络地址转换NAT

【TODO】

相关笔记: