网络层的协议(主要是IP协议、ICMP协议和ARP协议)与应用详情

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/CN_TangZheng/article/details/102653796

前言

网络层是OSI参考模型中的第三层,介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。

网络层的协议有:IP 、ICMP 、IGMP 、ARP 、RARP .

我们主要学习IP 、ICMP 、 和ARP的原理与应用。

一:IP数据包格式

1.1:网络层的功能

1:定义了基于IP协议的逻辑地址,逻辑地址可以改。

2:连接不同的媒介类型

3:选择数据通过网络的最佳路径。

1.2:数据包格式结构

mark

版本:

该字段包含的是IP的版本号,4比特。目前IP的版本为4(即IPv4),现在无论是在局域网还是在广域网中,使用的都是IPv4。目前IPv4所面临的最大问题是IP地址空间不足,即使使用的IPv6是IP的下一个版本,但也不能解决IP地址缺乏的问题。

首部长度:

该字段用于表示IP数据包头长度,4比特。IP数据包头最短为20字节,但是其长度是可变的,具体长度取决于可选字段的长度。

优先级与服务类型:

该字段用于表示数据包的优先级和服务类型,8比特。用来区分哪些数据包优先级高和哪些数据优先级低。例:同时迅雷下载和聊QQ,其中QQ的优先级就比迅雷下载的优先级高,否则就需要等待迅雷下载完毕才能进行QQ聊天。

总长度:

该字段用以指示整个IP数据包的长度,16比特。最长为65535(2^16-1)字节,包括包头和数据。

标识符:

该字段用于表示IP数据包的标识符,16比特。当IP对上层数据分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误的重组。标识符字段用于标识一个数据包,以便接收节点可以重组被分片的数据包。

标志:

标志字段,3比特。标志和分片一起被用来传递信息。例如,当数据包从一个以太网发送到另一个以太网时,指示对当前的包不能进行分片或者一个包被分片后指示在一系列的分片中最后一个分片是否已发出。

段偏移量:

该字段用于表示段偏移量,13比特。段偏移量中包含的信息是在一个分片序列中如何将分片重新连接起来。

TTL:

该字段用于表示IP数据包的生命周期,8比特。该字段包含的信息可以防止一个数据包在网络中无限循环的转发下去。即防止路由环路。

TTL值的意义是一个数据包在被抛弃前在网络中可以经历的最大周转时间。数据包经过的每一个路由器都会检查该字段中的值,当TTL的值为0时,数据包将被丢弃。

TTL对应一个数据包通过路由器的数目。一个数据包经过每一个路由器,TTL将减去1。

协议号:

协议字段,8比特。该字段用以指示在IP数据包中封装的是哪一个协议,是TCP还是UDP,TCP的协议号为6,UDP的协议号为17.

首部校验和:

该字段用于表示校验和,16比特。校验和是16位的错误检测字段。目的主机和网络中的每个网关都要重新计算包头的校验和,就如同源主机做的一样。如果数据包没有被改动过,两个计算结果应该是一样的。

源IP地址:

该字段用于表示数据包的源地址,32比特。这是一个网络地址,指的是发送该数据包设备的网络地址。

目标IP地址:

该字段用于表示数据包的目的地址,32比特。这也是一个网络地址,但指的是接收节点的网络地址。

可选项:

可选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。

数据:

上层数据。

二:ICMP协议介绍

2.1:ICMP协议概述

作为网络管理员,必须要知道网络设备之间的连接情况,因此就需要有一种机制来侦测或通知网络设备之间可能发生的各种各样的情况,这就是ICMP协议的作用。

ICMP协议(Internet Control Message Protocol)的全程是“Internet控制消息协议”,主要用于在IP网络中发送控制消息,提供在通信环境中可能发生的各种问题的反馈。

在路由器上也广泛使用ICMP协议来检查设备之间的连接及运行情况。如果没有ICMP协议,那我们看到的就只是一些单纯的设备的堆叠,至于他们的工作情况则一无所知。所以ICMP协议对于管理网络设备,监控网络状态都有着非常重要的作用。

2.2:ICMP协议的主要功能

ICMP采取“错误侦测与回馈机制”,通过IP数据包封装,用来发送错误和控制消息。器目的是使管理员能够掌握网络的连通状况。例:当路由器接收到一个不能被送到最终目的地的数据包时,路由器会向源主机发送一个主机不可达的ICMP消息。

mark

2.3:ICMP协议的封装

ICMP属于网络层协议(也有高于网络层协议的说法),因为传输ICMP信息时,要先封装网络层的IP报头,再交给数据链路层,即ICMP报文对应IP层的数据。

mark

2.4:ICMP的基本使用

在网络中,ICMP协议的使用是靠各种命令来实现的。以ping为例。

2.4.1:ping命令的返回信息

1.连通的应答

mark

2.不能建立连接的应答

mark

3.连接超时的应答

PS:如果目标计算机启用了防火墙的相关设置,即使网络正常也可能会返回“请求超时”信息。

mark

2.4.2:ping命令的常用参数

1.-t:在window系统中,默认情况会发送4个ping包,如果在ping命令后面加上参数“-t”,系统会一直不停的ping下去。按ctrl+c结束。

mark

mark

2.-a :在windows系统中,在ping命令中加入“-a”参数,可以返回对方主机的主机名。

mark

mark

3.-l :一般情况下,ping包的大小为32字节,有时为了检测大数据包的通过情况,可以使用参数改变ping包的大小。

mark

mark

三:ARP协议介绍

3.1:ARP协议概述

在局域网中,交换机通过MAC地址进行通信,要获得目标主机的MAC地址就需要使用ARP协议将目的IP地址解析成目的MAC地址。所以,ARP(Address Resolution Protocol,地址解析协议)的基本功能是负责将一个已知的IP地址解析成MAC地址,以便在交换机上通过MAC地址进行通信。

ARP实际上是一个广播。

mark

3.2:ARP工作原理

3.2.1:ARP缓存表概述

老化时间:120s(绑定的不受老化时间影响)

ARP缓存表是主机存储在内存中的一个IP地址和MAC地址对应表。在windows系统中可以使用命令“arp-a”来显示ARP缓存表。

如果要查找的MAC地址不再表中,ARP会发送一个广播,从而找到目的地的MAC地址。

ARP会将收到的数据帧中IP地址和MAC地址添加到自己的ARP缓存表中。来者不拒!!

3.2.2:环境

初始化状态的四台主机和交换机。

假设PC1 发送数据给PC2,需要知道PC2 的MAC地址,可是PC1 如何知道PC2 的MAC地址呢?所以当PC1 访问PC2 之前就需要询问PC2 的IP地址所对应的MAC地址是什么,这时候就需要通过ARP请求广播实现。

mark

3.2.3:工作过程

1.PC1想要发送数据给PC2,它检查自己的ARP缓存表。发现并没有PC2的MAC地址,这是,PC1会初始化ARP请求过程(发送一个ARP请求广播),用于发现目的地的MAC地址。

2.PC1发送ARP请求信息,信息包含四要素(1.源IP,2.源MAC,3.目标IP,4.目标MAC)。请求信息目标MAC地址为FF-FF-FF-FF-FF-FF(称作广播数据帧),从而保证所有设备都能收到此请求。

3.交换机收到广播地址后,发现是MAC地址广播,所以将数据帧从除了接收口之外的所有接口转发出去。

PC3 和PC4 收到数据帧后,进行和自己的IP地址比较,发现与自己的IP地址不同,便会丢弃此数据包,并不做回应。但是它们的ARP缓存表中会记录PC1的IP地址和MAC地址。

而PC2接收到数据震后,进行和自己的IP地址比较,发现数据帧中的目标IP地址就是自己,所以会发送一个ARP应答,来告诉PC1自己的MAC地址(这个数据帧是单播)。并且会在自己的ARP缓存表中添加PC1的IP地址和MAC地址的对应关系。

PC1收到PC2的回应数据帧后,将PC2的IP地址和MAC地址的对应关系添加到自己的ARP缓存表中。

在这个过程中,交换机(Switch)已经学习到了PC1和PC2的MAC地址,之后传输数据时,PC1 和PC2 之间将采用单播方式。

3.2.4:PS

其实,路由器像其他网络设备一样收发数据,也保存着一张将IP地址映射到MAC地址的ARP缓存表。路由器连接不同的网络,通常的网络只具有本网络内部的IP地址到MAC地址的映射关系,对于其他网络的信息则知之甚少。而在路由器上会建立与之相连接的所有网络的ARP表,显示将不同网络上的IP地址映射为MAC地址的对应情况。

3.3:ARP相关命令

mark

mark

四:ARP攻击与ARP欺骗的原理与应用

4.1:ARP攻击原理

4.1.1:ARP攻击目的

一般情况下,ARP攻击的主要目的是使网络无法正常通信,

4.1.2:主要攻击行为

1.欺骗其他所有计算机

攻击主机制造假的ARP应答,并发送给局域网中除被攻击主机之外的所有主机。ARP应答中包含被攻击主机的IP地址和虚假的MAC地址。

2.欺骗被攻击计算机

攻击主机制造假的ARP应答,并发送给被攻击主机。ARP应答中包含除被攻击主机之外的所有主机的IP地址和虚假的MAC地址。

只要执行上述ARP攻击行为中的任一种,就可以实现被攻击主机和其他主机无法通信。

如图:例如,如果希望被攻击主机无法访问互联网,就需要向网关发送或向被攻击主机发送虚假的ARP应答。当网关接收到虚假的ARP应答更新ARP条目后,网关再发送数据给PC1时,就会发送到虚假的MAC地址,从而导致通信故障的发生。

mark

4.2:ARP欺骗的原理

4.2.1:ARP欺骗的目的

一般情况下,ARP欺骗并不会使网络无法正常通信,而是通过冒充网关或者其他主机使达到网关或主机的流量通过攻击主机转发。

通过转发流量可以对流量进行控制和查看,从而可以控制流量或得到机密信息。

4.2.2:ARP欺骗原理

如图:攻击主机发送ARP应答给网关和PC1,网关和PC1更新ARP条目后,所有数据都要经过PC2进行转发。此时PC2就达到目的了。

mark

4.3:ARP攻击和ARP欺骗应用

4.3.1:利用ARP攻击和ARP欺骗应用实例

网络管理员可以利用ARP欺骗的原理来控制局域网内主机的通信。所以现在一般都应用在网管系统中。

平常自己电脑的360杀毒都会有ARP绑定的功能,所以现在利用ARP攻击和ARP欺骗已经可能性很小,所以现在一般都用于网管系统,例如网吧,大学计算机室等。

4.3.2:ARP攻击和ARP欺骗应用软件

长牛角网络监控机

收费的,有兴趣的自行查找体验。

猜你喜欢

转载自blog.csdn.net/CN_TangZheng/article/details/102653796