网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
网络层不提供服务质量的承诺。
网际协议 IP
IP 地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的 32 位的标识符(IPv4)。
IP 地址现由 因特网名字和数字分配机构ICANN(Internet Corporation for Assigned Names and Number) 进行分配。
两级IP 地址 ::= {<网络号>, <主机号>}
- | 32 位 |
---|---|
A 类地址 | (0网络号)8 位+(主机号)24 位 |
B 类地址 | (10网络号)16 位+(主机号)16 位 |
C 类地址 | (110网络号)24 位+(主机号)8 位 |
D 类地址 | (1110)多播地址 |
E 类地址 | 保留为今后使用 |
网络号字段为全 0 的 IP 地址是个保留地址,意思是“本网络”。
网络号为 127(01111111)保留作为本地软件环回测试(loopback test)本主机的进程之间的通信之用。
一般不使用的特殊 IP 地址
网络号 | 主机号 | 源地址使用 | 目的地址使用 | 代表意思 |
---|---|---|---|---|
0 | 0 | 可以 | 不可 | 在本网络上的本主机(DHCP协议) |
0 | host_id | 可以 | 不可 | 在本网络上的某个主机 host_id |
全1 | 全1 | 不可 | 可以 | 只在本网络上进行广播(各路由器不转发) |
net_id | 全1 | 不可 | 可以 | 对net_id 上的所有主机进行广播 |
127 | 大于0 | 可以 | 可以 | 用作本地软件环回测试 |
地址解析协议 ARP(Address Resolution Protocol)
已经知道了一个机器(主机或路由器)的 IP 地址,需要找出其相应的硬件地址 MAC。ARP 是解决同一局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
地址解析协议 ARP 在主机 ARP 高速缓存(ARP cache)中存放一个从 IP 地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)。
如果不使用 ARP 高速缓存,那么任何一个主机只要进行一次通信,就必须在网络上用广播方式发送 ARP 请求分组,这就使网络上的通信量大大增加。ARP 把已经得到的地址映射保存在高速缓存中,这样就使得该主机下次再和具有同样目的地址的主机通信时,可以直接从高速缓存中找到所需的硬件地址而不必再用广播方式发送 ARP 请求分组。
生存时间(例如,10~20分钟)。若目标 IP 地址上的硬件地址失效(网络适配器坏了或移除),那么将无法通信。目标修复了网络适配器,过来一段不长的生存时间,本机删除了目标原先的硬件地址,于是本机重新广播发送 ARP 请求分组,又找到了目标主机,又可以通信了。
Q:既然在网络链路上传送的帧最终是按照硬件地址找到目的主机的,那么为什么我们不直接使用硬件地址进行通信,而是使用抽象的 IP 地址并调用 ARP 来寻找相应的硬件地址呢?
A:由于全世界存在这各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此由用户或用户主机来完成这项工作几乎是不可能的事。但统一的 IP 地址把这个复杂的问题解决了。连接到因特网的主机只需拥有统一的 IP 的地址,它们之间的通信就像连接在同一网络上那样简单方便。
总结:
源主机不需知道目的主机的硬件地址,源主机根据 IP 地址找到目的主机并进行通信。若在同一网络(网络号相同),且 ARP高速缓存 的映射表里有该 IP 地址 到某硬件地址,则可进行源主机与目的主机的通信。若不在同一网络,则由路由器进行转发查找所在网络。
网际控制报文协议 ICMP(Internet Control Message Protocol)
为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP(Internet Control Message Protocol)。ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
网际组管理协议 IGMP(Internet Group Management Protocol)
用于探寻、转发本局域网内的组成员关系。