网络协议系列之四:IGMP、ICMP和ARP

简介:

前言

IGMP协议是一个组管理协议,它帮助多播路由器创建以及更新与每一个路由接口相连的忠实成员列表(就是与该路由接口连接频率较高)。ICMP协议实际上就是差错控制协议,弥补了IP协议没有差错纠正机制以及差错报告的缺憾。ARP是一个地址映射协议,可以把一个IP地址映射为MAC地址。

IGMP协议

1、IGMP是管理组成员关系的协议
2、IGMP报文分为成员关系报告报文和成员关系查询报文。成员关系查询报文是为了查找网络中活跃的组成员而发送的报文,而成员关系报告报文是为了记录响应者在网络中的成员关系而发送的报文
3、IGMP在路由器上的应用:当路由器收到一个成员关系的查询报文后,路由器会等待接收一个多个报告,报告到达后路由器根据当前以及到达报告中的记录更新路由器的状态
4、IGMP能够为某个源点并且以某个多播组作为终点的分组做出是否转发的决定。根据IGMP协议,有三种情况IGMP协议会做出转发:
1)如果该网络中至少有一台主机希望接收这种类型的数据,会做出转发
2)如果源地址在不在过滤列表中,意味着IGMP认为网络中有主机希望接收这种类型的数据分组,所以也会转发
3)如果源地址在过滤列表中,但是源点计时器还没有超时,所以IGMP仍然会进行转发

ICMP协议

1、ICMP报文是一种差错控制协议。ICMP报文分为差错报告报文和查询报文。差错报告报文报告了路由器或者主机在处理IP数据报过程可能遇到的问题,查询报文总是成对成双出现的,主要帮助主机或者网络管理人员获取特定的信息
2、ICMP报文的首部为8字节,ICMP数据报要被封装成IP数据报才能传到下一层进行传输。所以任何一个ICMP报文都包括IP首部和数据报的前8个字节(为什么是8字节?书上说是包括了端口号和序号信息,但不知道在TCP是怎么处理的。还是继续往后看吧)
3、ICMP总是把出错信息发送给最初的数据源(可以发送其他数据源吗?答案是不能。因为在数据报中唯一可用的地址信息就是发送地址以及目的地址)
4、差错报告报文进行差错报告,差错高高报文会处理5种类型的信息:终点不可达、源点抑制、超时、参数问题和改变路由
终点不可达:当路由器无法为一个数据找到路由或者主机无法交付一个数据的时候,会报告一个终点不可达报文
源点抑制:源点抑制报文通知源点,由于路由器或者目的主机的拥塞,数据报已被丢弃,源点必须放慢发送速度,知道拥塞缓解为止
超时:当路由器将数据报的生存时间减为0就丢弃这个数据报,并向源点发送一个超时报文;当最后的终点没有在规定的时间收到全部的分片的时候,就丢弃已收到的分片,并给源点发送一个超时报文
参数问题:当数据报的首部出现二义性的时候会给源点发送一个参数问题报文
改变路由:发送改变路由报文可以更新主机的路由表
5、查询报文主要用来进行网络诊断有回送请求与回答和时间戳请求与回答。回送请求与回答报文可以用来测试两台机器能否彼此通信。一般会使用ping命令测试两台主机的可达性。时间戳请求与回答可以确定报文的往返时间,在计算的时候可以使用下面公式计算单向时间以及往返时间:

发送时间 = 接收时间戳 - 原始时间戳
接收时间 = 分组返回时间戳 - 发送时间戳
往返时间 = 发送时间 + 接收时间

6、在以下集中情况不会产生ICMP差错报文:
1)已经能够携带ICMP报文的数据报
2)对于分片的数据报,如果不是第一个分片那么就不产生ICMP差错数据报
3)对于具有多播地址的数据报不产生ICMP报文
4)具有特殊地址的数据报不产生ICMP报文

ARP协议

1、ARP把目的主机的IP地址映射为MAC地址,这样把IP数据报封装成帧(以太网上对01串的分组定义)后才能通过物理网络,这时就需要目的主机的MAC地址,而ARP协议正是这样的作用
2、为了找到接收主机的MAC地址,发送方会给同一个网络的所有主机发送一个ARP查询分组,网络上的主机收到该ARP分组后,只有期待接收的主机才会返回一个ARP响应分组。这个分组包括发送方的物理地址以及接收方的物理地址(当然还有IP地址),这个ARP响应分组是单独发给源主机的。
3、如果接收主机与源主机不是一个网络,源主机需要查找它的路由表,找到下一个路由器的IP地址。如果源主机中没有路由表,则会交给默认路由器处理ARP查询分组,这个路由器的IP地址必须是被映射为MAC地址的逻辑地址
4、如果源主机是路由器,该路由器收到要发送不同网络的数据报后,会先检查自己的路由表,找到下一个路由器的IP地址。下一个路由器的IP就是必须被映射为MAC地址的逻辑地址

目录
相关文章
|
7天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
26 4
|
1月前
|
存储 缓存 网络协议
|
16天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
【10月更文挑战第27天】计算机主机网关的作用类似于小区传达室的李大爷,负责将内部网络的请求转发到外部网络。当小区内的小不点想与外面的小明通话时,必须通过李大爷(网关)进行联系。网关不仅帮助内部设备与外部通信,还负责路由选择,确保数据包高效传输。此外,网关还参与路由表的维护和更新,确保网络路径的准确性。
40 2
|
18天前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
|
2月前
|
缓存 网络协议 网络架构
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
本文详细介绍了如何使用网络抓包工具Wireshark进行网络抓包分析,包括以太网v2 MAC帧、IP数据报、ICMP报文和ARP报文的格式,以及不同网络通信的过程。文章通过抓包分析展示了IP数据报、ICMP数据报和ARP数据报的具体信息,包括MAC地址、IP地址、ICMP类型和代码、以及ARP的硬件类型、协议类型、操作类型等。通过这些分析,可以更好地理解网络协议的工作机制和数据传输过程。
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
|
4月前
|
人工智能 缓存 网络协议
网络层之三层交换、icmp协议、arp协议
网络层之三层交换、icmp协议、arp协议
|
6月前
|
网络协议 Linux Android开发
计算机网络:MAC地址 & IP地址 & ARP协议
计算机网络:MAC地址 & IP地址 & ARP协议
291 7
|
6月前
|
缓存 网络协议 网络架构
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
127 1
|
1月前
|
缓存 网络协议 Linux
Python渗透测试之ARP毒化和协议应用
Python渗透测试之ARP毒化和协议应用
|
3月前
|
网络协议
用户态协议栈04-定时arp-table的实现
用户态协议栈04-定时arp-table的实现