【计算机网络】网络层(四)—— 网络层协议总结(ARP、ICMP、IGMP)

  • TCP/IP协议栈

在这里插入图片描述

一、IP 地址与硬件地址

地址是网络层使用的地址,它是分层次等级的。硬件地址是数据链路层使用的地址(如 MAC地址),它是平面式的。在网络层及网络层之上使用 IP地址,IP 地址放在 IP数据报的首部,而 MAC地址放在 MAC帧的首部。通过数据封装,把 IP数据报分组封装为MAC帧后,数据链路层看不见数据报分组中的 IP地址。

  1. 在 IP层抽象的互联网上只能看到 IP数据报。
  2. 虽然在 IP数据报首部中有完整的源IP地址和目的IP地址,但路由器只根据目的IP地址的网络号进行路由选择。
  3. 在局域网的数据链路层,只能看见 MAC帧。而通过路由器转发 IP分组时,此 IP分组在个网络中都被路由器解封装和重新封装。因此 IP数据报在被路由器转发时,其数据链路层封装所使用的MAC地址是不断改变的。这也决定了无法使用 MAC地址跨网络通信。

注意:路由器由于互联多个网络,因此它不仅有多个P地址,也有多个硬件地址

由于路由器的隔离,IP网络中无法通过广播方式依靠 MAC地址来完成跨网络的寻址,因此在 IP网络的网络层只使用 IP地址来完成寻址。寻址时,每个路由器依据其路由表(依靠静态路由或动态路由协议生成)选择到目标网络(即主机号全为 0的网络地址)需要转发到的下一跳(路由器的物理端口号或下一网络地址),而 IP分组通过多次路由转发到达目标网络后,改为在目标LAN中通过数据链路层的 MAC地址以广播方式寻址。这样可以提高路由选择的效率。

二、地址解析协议(ARP)

无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成 IP地址到 MAC地址的映射,这就是地址解析协议(Address ResolutionProtocol,ARP)。

每台主机都设有一个 ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表,称 ARP表。使用 ARP来动态维护此ARP表。

ARP协议使用过程:

检查 ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。

在这里插入图片描述

注意:ARP用于解决同一个局域网上的主机或路由器的P地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做,尽管ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。

ARP协议4种典型情况:

  1. 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
  2. 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;
  3. 路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
  4. 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。

三、动态主机配置协议(DHCP)

主机如何获得 IP 地址?

  • 静态配置:通过手动设置 IP地址、子网掩码、默认网关
  • 动态配置:通过DHCP服务器

动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)常用于给主机动态地分配 IP地址,它提供了即插即用的联网机制,这种机制允许一台计算机加入新的网络和获取 IP地址而不用手工参与,主机可以从服务器动态获取 IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。。DHCP是应用层协议,它是基于 UDP的。

注:DHCP的应用场景:(局域网)机房网络 IP地址的分配

DHCP 的工作原理

DHCP的工作原理如下:使用客户/服务器方式。需要 IP地址的主机在启动时就向DHCP 服务器广播发送发现报文,这时该主机就成为 DHCP客户。本地网络上所有主机都能收到此广播报文,但只有 DHCP服务器才回答此广播报文。DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的P地址池中取-一个地址分配给该计算机。DHCP服务器的回答报文称为提供报文。

DHCP客户端申请 IP过程

DHCP 服务器聚合 DHCP客户端的交换过程如下:

  1. 主机广播 DHCP 发现报文,试图找到网络中的 DHCP服务器,以便从DHCP 服务器获得一个 IP地址。
  2. DHCP服务器收到“DHCP 发现”消息后,向网络中广播“DHCP提供”消息,其中包括提供 DHCP客户机的 IP地址和相关配置信息。
  3. DHCP客户机收到“DHCP提供”消息,如果接收 DHCP服务器所提供的相关参数,那么通过广播 “DHCP请求” 消息向DHCP服务器请求提供P地址。
  4. DHCP服务器广播“DHCP确认”消息,将 IP地址分配给DHCP客户机。

DHCP 允许网络上配置多台DHCP服务器,当DHCP客户机发出DHCP 请求时,有可能收到多个应答消息。这时,DHCP客户机只会挑选其中的一个,通常挑选最先到达的。

DHCP服务器分配给DHCP客户的P地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的P地址。DHCP称这段时间为租用期。租用期的数值应由DHCP服务器自己决定,DHCP客户也可在自己发送的报文中提出对租用期的要求。

DHCP的客户端和服务器端需要通过广播方式来进行交互,原因是在DHCP执行初期,客户端不知道服务器端的P地址,而在执行中间,客户端并未被分配P地址,从而导致两者之间的通信必须采用广播的方式。采用UDP而不采用TCP的原因也很明显:TCP需要建立连接,如果连对方的地址都不知道,那么更不可能通过双方的套接字建立连接。

四、网际控制报文协议(ICMP)

为了提高 IP数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol,ICMP)来让主机或路由器报告差错和异常情况ICMP报文作为 IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP是 IP层协议。

在这里插入图片描述

ICMP报文的种类有两种,即 ICMP差错报告报文和 ICMP询问报文。

(一)、ICMP差错报告报文

ICMP 差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。共有以下5种类型:

  1. 终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
  2. 源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
  3. 时间超过。当路由器收到生存时间(TTL)为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
  4. 参数问题。当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
  5. 改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。

不应发送ICMP差错报告报文的几种情况如下:

  1. 对 ICMP差错报告报文不再发送 ICMP差错报告报文。
  2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
  3. 对具有组播地址的数据报都不发送 ICMP差错报告报文。
  4. 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。

(二)、ICMP询问报文

ICMP询问报文有4种类型

  1. 回送请求和回答报文
  2. 时间戳请求和回答报文
  3. 掩码地址请求和回答报文
  4. 路由器询问和通告报文

最常用的是前两类。

  • 回送请求和回答报文:

主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态。

  • 时间戳请求和回答报文

请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。

(三)、ICMP的应用

ICMP的两个常见应用是分组网间探测PNG(用来测试两台主机之间的连通性)和Traceroute(UNIX中的名字,在Windows 中是Tracert,可以用来跟踪分组经过的路由)。

PING 测试两个主机之间的连通性,使用了ICMP回送请求和回答报文

Traceroute (Tracert) 跟踪一个分组从源点到终点的路径,使用了 ICMP时间超过报文

注意:PNG工作在应用层,它直接使用网络层的 ICMP,而未使用传输层的TCP或UDP。Traceroute/Tracert 工作在网络层。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何为xl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值