网络层设计思路:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。(网络层不提供服务质量的承诺)
网络层提供的两种服务
虚电路服务和数据报服务
如果主机(端系统)中的进程之间的通信需要是可靠的,那么由网络的主机中的运输层负责(包括差错处理、流量控制)。这样的好处是网络造价大大降低,运行方式灵活,能够适应多种应用。
虚拟电路服务与数据报服务的对比
网际协议IP
网际IP协议又称Kahn-Cerf协议。
IP协议的第四个版本是IPv4。
与IP协议配套使用的还有三个协议:
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
网际协议IP及其配套协议:
虚拟互连网络
将网络互连起来依靠一些中间设备,比如:
- 物理层使用转发器
- 数据链路层使用网桥或桥接器
- 网络层使用路由器
- 网络层以上的是网关
使用IP协议的虚拟互连网络可简称为IP网。(IP网是虚拟的)
使用IP网的好处:当IP网上的主机进行通信时,就好像在一个单个网络上通信,它们看不见互连的各网络的具体细节。如果在这种覆盖全球的IP网的上层使用TCP协议,那么就是现在的互联网。(互联网是可以由多种异构网络互联而成)
分类的IP地址
1.IP地址及其表示方法
IP地址编址方法分三个阶段:
(1)分类的IP地址
(2)子网的划分
(3)构成超网
分类的IP地址:
将IP地址划分为若干个固定类,每一类地址都有两个固定长度的字段组成,其中第一个字段是网络号,它标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。第二个字段是主机号,它标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个IP地址在整个互联网范围内是唯一的。
这种两极的IP地址可以记为:
IP地址 ::={<网络号>, <主机号>}
- A类、B类和C类地址的网络号字段分别为1个、2个和3个字节长,而在网络号字段的最前面有1-3位的类别位,其数值分别规定为0,10和110
- A类、B类和C类地址的主机号字段分别为3个、2个和1个字节长
- D类地址(前4位是1110)用于多播(一对多通信)。
- E类地址(前四位是1111)保留为以后使用
近年来已经广泛使用无分类IP地址进行路由选择,上面的方式已成为历史。
采用点十分进制法可以提高IP地址的可读性
2.常用的三种类别的IP地址
A、B、C类地址的IP地址指派范围
一般不使用的特殊IP地址
IP地址具有以下重要特点:
(1)每一个IP地址都由网络号和主机号两部分构成,这类似一种分等级的地质结构。好处是:
- IP地址管理机构在分配IP地址的时候只分配网络号(第一级),而剩下的主机号(第二级)则由得到该网络号的单位自行分配。
- 路由器仅根据目的主机所连接的网络号来转发分组,这样可以大幅度减少路由表中的项目,减少查表时间
(2)多归属主机:当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必不相同。
(3)用转发器或网桥连接起来的若干个局域网仍是一个网络。
- 在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的
- 用网桥(它只在链接层工作)互连的网段仍然是一个局域网,只能有一个网络号
- 路由器总是具有两个或两个以上的IP地址。
- 当两个路由器直接相连时,在连接两端的接口处,可以分配也可以不分配IP地址。若分配IP地址,则这段线就构成了一种只包含一段线路的特殊“网络”,这种“特殊网络”叫无编号网络或无名网络。
IP地址与硬件地址
IP地址与硬件地址是不同的
IP地址与硬件地址的区别
从层次的角度看,物理地址是数据链路层和物理层使用的地址,而IP地址是使用网络层和以上各层使用的地址,是一种逻辑地址。
IP地址放在IP数据报的首部,硬件地址放在MAC帧的首部。
从不同层次看IP地址和硬件地址
由上图可归纳出不同层次、不同区间的源地址和目的地址
需要注意的是:
- 在IP层抽象的互联网上只能看到IP数据报。虽然IP数据报经过多个路由转发,但它的首部的源地址和目的地址始终没变。
- 虽然IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址的网络号进行路由选择。
- 在局域网的链路层,只能看见MAC帧。
- IP层抽象的互联网屏蔽了下层复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机和主机,主机和路由器之前的通信。
地址解析协议ARP
作用:将IP地址转为硬件地址。
ARP协议属于网络层
ARP协议要点:
- 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
- 每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
- 如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
- 如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存
对于查不到B主机的硬件地址,就采用以下方法找出B的硬件地址:
- ARP请求分组:包含发送方硬件地址 / 发送方 IP 地址 / 目标方硬件地址(未知时填 0) / 目标方 IP 地址。
- 本地广播 ARP 请求(路由器不转发ARP请求)。
- ARP 响应分组:包含发送方硬件地址 / 发送方 IP地址 / 目标方硬件地址 / 目标方 IP 地址。
- ARP 分组封装在物理网络的帧中传输。
ARP 高速缓存的作用
- 存放最近获得的 IP 地址到 MAC 地址的绑定,以减少 ARP 广播的数量。
- 为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。
- 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了
ARP 注意的问题
- ARP 用于解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
- 如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
- 从 IP 地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。
- 只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。
使用 ARP 的四种典型情况
- 发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
- 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。
不直接使用硬件地址进行通信
原因:
- 由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。
- IP 编址把这个复杂问题解决了。连接到互联网的主机只需各自拥有一个唯一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为上述的调用 ARP 的复杂过程都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。因此,在虚拟的 IP 网络上用 IP 地址进行通信给广大的计算机用户带来了很大的方便。