一、网络层概述
网络层关注的是如何将分组从源主机沿着网络路径送达目的主机。网络中每台主机和路由器都必须具有网络层功能,其中网络层最核心的功能就是:分组转发 和 路由选择。
- 网络层的数据传输单元叫IP分组/数据报
- 路由与交换
路由就是为传输的数据单元选择一条优化的可达的传输路径;
交换就是根据路由选择的下一跳,由链路层完成交换; - 网络层应该向运输层提供怎样的服务(曾有长期的争论)
可靠交付服务(面向连接)
不可靠交付服务(无连接,尽力传输)
虚电路的(可靠交付)服务
- 电信网络(电话网)的成功经验:让网络层负责可靠交付服务
如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点。 - 虚电路只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
- 电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
数据报的(不可靠交付)服务
- 网络层向上(运输层)只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
- 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
- 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
不可靠(尽最大努力)交付的好处
路由器可以做得比较简单,价格低廉(与电信网的交换机相比较)。
如果主机(端系统)中进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。
采用这种服务方式其网络的造价大大降低,运行方式灵活,能够适应多种应用(三网融合)。
因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。
二、网络层的主要协议
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议:
地址解析协议 ARP (Address Resolution Protocol)
逆地址解析协议 RARP (Reverse Address Resolution Protocol)
网际控制报文协议 ICMP (Internet Control Message Protocol)
网际组管理协议 IGMP (Internet Group Management Protocol)
中间设备又称为中间系统或中继(relay)系统。
物理层中继系统:转发器或集线器(repeater)。
数据链路层中继系统:网桥或二层交换机(bridge)。
网络层中继系统:路由器(router)或三层交换机。
网络层以上的中继系统:网关(gateway)。
说明:
1、当中继系统是转发器或网桥(交换机)时,一般并不称之为网络互连,它仅仅是把一个网络扩大了,仍然是一个网络。
2、互联网都是指用路由器进行互连的网络。
3、历史原因,许多文献仍将网络层的路由器称为网关。
虚拟互连网络
- 虚拟互连网络也就是逻辑互连网络。它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。使用 IP 协议的虚拟互连网络可简称为 IP 网。
- 优点:
当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。
如用3G/4G移动网络手机上网络, 用WiFi无线网络手机上网.
分类的 IP 地址
- 整个因特网是一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个全世界范围唯一的 32 位的标识符。
- IP 地址现在由因特网名字与号码指派公司ICANN (Internet Corporation for Assigned Names and Numbers)进行分配 ;32位的IP地址是网络层地址,48位的MAC地址是链路层地址。
- IP 地址的编址方法(有3种)
分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。
子网的划分。这是对最基本的编址方法的改进,其标准[RFC 950]在 1985 年通过。
无分类编址(构成超网)。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。
- 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。
- 两级的 IP 地址可以记为( ::= 代表“定义为”):
IP 地址 ::= { <网络号>, <主机号>}
- 常用的三种类别的 IP 地址 :
网络类别 | 最大网络数 | 第一个可用的网络号 | 最后一个可用的网络号 | 每个网络中最大的主机数 |
---|---|---|---|---|
A | 126 (27 – 2) | 1 | 126 | 16,777,214 |
B | 16,383(214 - 1) | 128.1 | 191.255 | 65,534 |
C | 2,097,151 (221 - 1) | 192.0.1 | 223.255.255 | 254 |
-
IP地址的特例
网络号和主机号全为0表示本网络上的本主机
网络号全为0,表示本网络上的某一台主机
主机号部分为全0的地址保留用于网络地址,标识网络
网络号和主机号全为1表示本网络上的广播地址
主机号部分为全1的地址表示网络号所标识网络上的广播地址
回送地址:127.X(X为主机号)(该地址一般为127.0.0.1,指本地主机) - 分类IP 地址的一些重要特点
方便 IP 地址的管理
IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。在同一个局域网上的主机或路由器的IP 地址中的网络号是一样的。
简化路由器寻址
路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样路由表中的项目数大幅度减少,减小了路由表所占的存储空间,加快了路由条目的搜索。
IP 地址是标志一个主机(或路由器)和一条链路的接口。
所有分类网络号是平等的
不管是主机数目多的A类网络号,还是主机数目小的C类网络号。
两个路由器直接相连的接口处,可指明也可不指明 IP 地址。如指明 IP 地址,则这一段连线就构成了一种只包含一段线路的特殊“网络” 。现在常不指明 IP 地址。
IP 地址是标志一个主机(或路由器)和一条链路的接口。
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。
由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。
IP 地址与硬件地址
- 在 IP 层抽象的互联网上只能看到 IP 数据报,两个路由器的 IP 地址并不出现在 IP 数据报的首部中
- 路由器只根据目的站的 IP 地址的网络号进行路由选择
- 在具体的物理网络的链路层只能看见 MAC 帧而看不见 IP 数据报
- IP层抽象的互联网屏蔽了下层很复杂的细节,在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或主机和路由器之间的通信
地址解析协议 ARP
- 在网络层使用的是IP地址寻址,在链路层(局域网)传送数据帧时是使用硬件地址转发。
- 每一个主机都有一个 ARP 高速缓存(ARP cache),存放所在局域网上各主机和路由器的 IP 地址和硬件地址对应表。
在命令行窗口中运行: arp -a
- 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址:
若有,查出其对应的硬件地址,将此硬件地址写入 MAC 帧头,通过局域网将该 MAC 帧发送出去。
若无,广播ARP分组,询问谁使用该IP地址,其硬件地址是多少。
ARP 高速缓存的作用
为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。
当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。
注意:
- ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
- 如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
- 从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。
- 只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。
使用 ARP 的四种典型情况:
- 发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
- 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
什么不直接使用硬件地址进行通信?
网络可能不同:
由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。
地址可配置:
连接到因特网的主机都拥有可配置 IP 地址,而硬件地址相对固化在硬件中。
ARP是自动进行的,无需用户参与。
逆地址解析协议 RARP
- 逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。
- 此协议工作在无盘工作站。 因此 RARP协议目前已很少使用。