网络层协议

网络层协议,OSI参考模型的第三层。它控制通信子网进行工作,提供建立、保持和释放连接的手段,保证传输层实体之间进行透明的数据传输。

网络层有四个协议:ARP协议IP协议ICMP协议IGMP协议。ARP协议为IP协议提供服务,IP协议为ICMP协议提供服务,ICMP协议为IGMP协议提供服务。

ARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

物理地址也叫MAC地址,是一个直接烧录在网卡上的数据,也是一个不变的真实地址。

主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

每一个主机都有一个ARP高速缓存,此缓存中记录了最近一段时间内其它IP地址与其MAC地址的对应关系。如果本机想与某台主机通信,则首先在ARP高速缓存中查找此台主机的IP和MAC信息,如果存在,则直接利用此MAC地址构造以太帧;如果不存在,则向本网络上每一个主机广播一个ARP请求报文,其意义是”如果你有此IP地址,请告诉我你的MAC地址”,目的主机收到此请求包后,发送一个ARP响应报文,本机收到此响应后,把相关信息记录在ARP高速缓存中,以下的步骤同上。

arp报文格式

wirshark抓取

arp协议的缺点–arp欺骗

可以看出,ARP协议是有缺点的,第三方主机可以构造一个ARP欺骗报文,而源主机却无法分辨真假。如果发送者硬件地址字段填入攻击者的硬件地址,而发送者IP地址填入被假冒者的IP地址,那么就构造出了一个用于欺骗的ARP请求报文。那么被欺骗主机的ARP高速缓存,被假冒者的IP地址与其MAC地址的对应关系就会更改为欺骗者的,从而达到ARP欺骗的目的。特别的,如果攻击者冒充网关,将转发子网内到外网的所有通信量,以达到捕获其他主机的通信量,从而破坏数据传输的保密性。

IP协议

IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。

设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。

作用的范围不同也是IP协议和ARP协议的区别,一般ARP协议只可以作用在一个子网之中;而IP协议是可以作用在不同网络之间的。

ICMP协议

ICMP(Internet Control Message Protocol),全称为Internet控制报文协议。

它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通主机是否可达路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。

以前的关于ICMP协议的具体描述:https://qidangge.github.io/2021/10/24/%E4%BD%9C%E4%B8%9A2.2%20ping%E6%93%8D%E4%BD%9C%E4%B8%8Eicmp/

IGMP协议

互联网组管理协议(IGMP,Internet Group Management Protocol)是因特网协议家族中的一个组播协议。

TCP/IP协议族的一个子协议,用于IP主机向任一个直接相邻的路由器报告他们的组成员情况。允许Internet主机参加多播,也是IP主机用作向相邻多目路由器报告多目组成员的协议。多目路由器是支持组播的路由器,向本地网络发送IGMP查询。主机通过发送IGMP报告来应答查询。组播路由器负责将组播包转发到所有网络中组播成员。 

互联网组管理协议(IGMP)是对应于开源系统互联(OSI)七层框架模型中网络层的协议。在互联网工程任务组(The Internet Engineering Task Force,简称IETF)编写的标准文档(RFC)2236.中对Internet组管理协议(IGMP)做了详尽的描述。附上链接:https://datatracker.ietf.org/doc/html/rfc2236