📅  最后修改于: 2020-11-10 00:56:17             🧑  作者: Mango
网络层协议
TCP / IP支持以下协议:
ARP
- ARP代表地址解析协议。
- 它用于将IP地址与MAC地址相关联。
- 网络上的每个设备都可以通过NIC上标记的MAC地址来识别。因此,可以说设备需要MAC地址才能在局域网上进行通信。 MAC地址可以轻松更改。例如,如果特定计算机上的NIC发生故障,则MAC地址会更改,但IP地址不会更改。当知道Internet地址时,ARP用于查找节点的MAC地址。
注意:MAC地址:MAC地址用于标识实际设备。 IP地址:用于在网络上定位设备的地址。
ARP如何工作
如果主机想知道其网络上另一个主机的物理地址,则它会发送一个包含IP地址的ARP查询数据包,并通过网络对其进行广播。网络上的每个主机都接收并处理ARP数据包,但是只有目标接收者可以识别IP地址并发回物理地址。持有数据报的主机将物理地址添加到缓存和数据报标头中,然后发送回发送方。
ARP协议采取的步骤
如果一台设备要与另一台设备通信,则该设备将执行以下步骤:
- 设备将首先查看其Internet列表(称为ARP缓存),以检查IP地址是否包含匹配的MAC地址。它将使用命令arp-a检查命令提示符下的ARP缓存。
- 如果ARP缓存为空,则设备将消息广播到整个网络,要求每个设备提供匹配的MAC地址。
- 具有匹配IP地址的设备随后将使用其MAC地址响应发件人
- 设备接收到MAC地址后,便可以在两个设备之间进行通信。
- 如果设备接收到MAC地址,则MAC地址将存储在ARP缓存中。我们可以使用命令arp -a在命令提示符下检查ARP缓存。
注意:ARP缓存用于提高网络效率。
在上面的屏幕截图中,我们观察到IP地址与MAC地址的关联。
ARP条目有两种类型:
- 动态条目:当发送者将其消息广播到整个网络时自动创建的条目。动态条目不是永久性的,它们会定期删除。
- 静态条目:有人使用ARP命令实用程序手动输入IP到MAC地址关联的条目。
RARP
- RARP代表反向地址解析协议。
- 如果主机想知道其IP地址,则它将包含其物理地址的RARP查询数据包广播到整个网络。网络上的RARP服务器会识别RARP数据包并以主机IP地址进行响应。
- 用于从服务器获取IP地址的协议称为反向地址解析协议。
- RARP协议的消息格式类似于ARP协议。
- 与ARP帧一样,RARP帧从一台机器发送到另一台机器,并封装在帧的数据部分中。
ICMP
- ICMP代表Internet控制消息协议。
- ICMP是主机和路由器使用的网络层协议,用于将IP数据报问题的通知发送回发送方。
- ICMP使用echo测试/答复来检查目标是否可访问并作出响应。
- ICMP同时处理控制消息和错误消息,但其主要函数是报告错误而不是纠正错误。
- IP数据报包含源地址和目标地址,但它不知道其通过的前一个路由器的地址。由于这个原因,ICMP只能将消息发送到源,而不能发送到直接路由器。
- ICMP协议将错误消息传达给发送者。 ICMP消息导致错误返回给用户进程。
- ICMP消息在IP数据报中传输。
ICMP消息的格式
- 第一个字段指定消息的类型。
- 第二个字段指定特定消息类型的原因。
- 校验和字段覆盖整个ICMP消息。
错误报告
ICMP协议将错误消息报告给发送方。
ICMP协议处理五种类型的错误:
- 无法到达目的地
- 源淬火
- 超过时间
- 参数问题
- 重新导向
- 无法到达目的地:当无法到达目的地时,从接收方向发送方发送“无法到达目的地”消息,或者当无法到达目的地时,将数据包丢弃。
- 源淬火:源淬火消息的目的是拥塞控制。从拥塞路由器发送到源主机的消息,以降低传输速率。 ICMP将获取丢弃的数据包的IP,然后将源终止消息添加到IP数据报中,以通知源主机降低其传输速率。源主机将降低传输速率,从而使路由器免于拥塞。
- 超过时间:超过时间也称为“生存时间”。它是一个参数,用于定义数据包在丢弃之前应保留的时间。
可以使用两种方法生成超时消息:
有时,由于某些错误的路由实现而导致数据包被丢弃,这会导致循环问题和网络拥塞。由于循环问题,TTL的值一直在递减,并且当它达到零时,路由器将丢弃数据报。但是,当数据报被路由器丢弃时,超出时间的消息将由路由器发送到源主机。
当目标主机在一定时间内没有收到所有片段时,接收到的片段也将被丢弃,目标主机会向源主机发送“时间已超过”消息。
- 参数问题:当路由器或主机在IP数据报中发现任何丢失的值时,路由器将丢弃该数据报,并将“参数问题”消息发送回源主机。
- 重定向:当主机包含一个小的路由表时,将生成重定向消息。当主机由数量有限的条目组成时,主机会将数据报发送到错误的路由器。接收到数据报的路由器将把数据报转发到正确的路由器,还将“重定向消息”发送到主机以更新其路由表。
IGMP
- IGMP代表Internet组消息协议。
- IP协议支持两种通信类型:
- 单播:这是一个发送方和一个接收方之间的通信。因此,可以说这是一对一的交流。
- 组播:有时,发件人希望将同一条消息同时发送给大量接收者。此过程称为多播,具有一对多通信。
- 主机和路由器使用IGMP协议来支持多播。
- 主机和路由器使用IGMP协议来识别LAN中属于组成员的主机。
- IGMP是IP层的一部分,并且IGMP具有固定大小的消息。
- IGMP消息封装在IP数据报中。
IGMP消息的格式
哪里,
类型:决定IGMP消息的类型。 IGMP消息有三种类型:成员资格查询,成员资格报告和离开报告。
最长响应时间:此字段仅由成员资格查询消息使用。它确定主机可以响应成员资格查询消息而发送成员资格报告消息的最长时间。
校验和:它确定将IGMP消息封装在其中的IP数据报的整个有效负载。
组地址:此字段的行为取决于发送的消息的类型。
- 对于“成员资格查询” ,对于“常规查询”,组地址设置为零,对于特定查询,其组地址设置为多播组地址。
- 对于“成员资格报告” ,将组地址设置为多播组地址。
- 对于“离开组” ,将其设置为多播组地址。
IGMP消息
- 会员查询消息
- 该消息由路由器发送到局域网上的所有主机,以确定该主机已加入的所有多播组的集合。
- 它还确定连接的接口上的主机是否已加入特定的多播组。
- 查询中的组地址为零,因为路由器希望主机上包含该主机上一个或多个成员的每个组都有一个响应。
- 会员报告消息
- 主机用成员资格报告消息响应成员资格查询消息。
- 当主机希望加入多播组时,主机也可以生成成员资格报告消息,而不必等待来自路由器的成员资格查询消息。
- 成员资格报告消息由路由器以及连接的接口上的所有主机接收。
- 每个成员资格报告消息都包含主机要加入的单个组的多播地址。
- IGMP协议并不关心哪个主机已加入该组或一个组中存在多少个主机。它只关心一个或多个连接的主机是否属于一个多播组。
- 路由器发送的成员资格查询消息还包括“最大响应时间”。在收到成员资格查询消息之后,在发送成员资格报告消息之前,主机将等待从0到最大响应时间的随机时间。如果主机发现某个其他连接的主机已发送了“最大报告消息”,则它将丢弃其“最大报告消息”,因为它知道连接的路由器已经知道一个或多个主机已加入一个多播组。此过程称为反馈抑制。它提供了性能优化,从而避免了不必要的“成员资格报告消息”传输。
- 离开报告当主机未发送“成员资格报告消息”时,表示主机已离开组。主机知道该组中没有成员,因此即使接收到下一个查询,它也不会报告该组。