网络层协议介绍

网络层协议介绍

一、IP数据包格式

IP地址(网络互联协议 Internet Protocol )属于网络层(Network Layer),网络层负责定义数据通过网络流动所经过的路径。接下来我为大家介绍一下网络层的主要功能:

  • 定义了基于IP协议的逻辑地址
  • 连接不同的媒介类型
  • 选择数据通过网络的最佳路径

1.IP协议字段

数据封装的时候在网络层会封装IP地址的头部,形成IP数据包,那么IP数据包是什么样的格式? 里边包含什么内容呢?

版本号( Version): 4bit 指IP协议版本。并且通信双方使用的版本必须保持一致,目前我们使用的是IPv4,表示为0100

首部长度(Header Length): 4bit IP数据包的包头长度。

优先级与服务类型(Priority & Type of Service): 8 该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现Qos(服务质量)的要求。

总长度(Total Length): 16 IP数据包的总长度,最长为 65535 字节,包括包头和数据。

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

标志(Flags): 4bit 和标识符一起传递,指示不可以被分片或者最后一个分片是否发出

段偏移量(Fragment Live): 13bit 在一个分片序列中如何将各分片连接起来,按什么顺序连接起来。

TTL生命周期(Time of Live): 8bit 该字段用于表示IP数据包的生命周期。该字段包含的信息可以防止一个数据包在网络中无限循环的转发下去。(数据包经过的每一个路由器都会检查该字段的值,TTL对应一个数据包通过路由器的数目,一个数据包每经过一个路由器,TTL将减0,。当TTL等于0时,数据包将丢弃)

协议号(Protocol ): 8bit 协议字段 。 ICMP :1 TCD:6 UDP:17

首部校验和(Header Checksum): 16bit 该字段用于表示校验和。校验和是16位的错误检测字段。

源地址(Source IP Address): 32bit 该字段表示一个源地址。 这是一个网络地址,指的是发送该数据包的设备的网络地址。

目标地址(Destination IP Address): 32bit 该字段用于表示数据包的目的地址。接收节点的网络位置。

可选项(Options): 可选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。

上层数据

《网络层协议介绍》

二、ICMP协议介绍

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

1.ICMP主要功能介绍

ICMP采用“错误侦测与回馈机制”,通过IP数据包封装,用来发送错误和控制消息。其目的是使管理员能够掌握网络的联通情况

《网络层协议介绍》
ICMP属于网络层协议(也有高于网络层的说法),因为传输ICMP信息时,要先封装网络层的IP报头,再交给数据链路层,就是ICMP报文对应IP层的数据,如图:
《网络层协议介绍》

2.ICMP的基本使用

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

C:>ping [-t] [-1 字节数] [-a] [-i] IP_Address|target_name

其中 [ ]中的参数为可选参数

(1)ping命令的返回信息

在检查网络连通性时,ping命令是用的最多的。本地计算机发出的就是一个典型的ICMP数据包,用来测试两台主机是否能够顺利连通:
a.连通的应答

《网络层协议介绍》
b.不能建立连接的应答

《网络层协议介绍》
c.应答为未知主机名
ICMP返回信息为“找不到主机”,说明DNS无法进行解析。

d.连接超时的应答
《网络层协议介绍》

(2)ping 命令的常用参数

-t :参数会一直不停地执行ping
在Windows操作系统中,默认情况下发送4个ping包,如果在ping命令后面加上参数 “-t”,如下图所示,系统会一直不停地ping下去:
《网络层协议介绍》
“Ctrl + C’即可停止

-a: 参数可以显示主机的主机名
在Windows操作系统上,在ping命令中加入“-a” 参数,可以返回对方主机的主机名,如下图所示:
《网络层协议介绍》
-l:参数可以设定ping包大小
一般情况下,ping包的大小有32字节,有时为了检测大数据包的情况,可以使用参数改变ping包大小,如图,ping包的大小为10000字节:

《网络层协议介绍》
-n:指定发送包的个数
《网络层协议介绍》
-s: 指定源IP去ping
《网络层协议介绍》

在Linux系统下为:
1、-s:参数可以设定ping包的大小
2、-c:指定发送包的个数
3、-I:指定源IP去ping

(3)跟踪路由路径命令:

tracert命令:
在命令行中输入“tracert” 并在后面加入一个IP地址,可以查询从本机到该IP地址所在的电脑要经过的路由器及其IP地址
《网络层协议介绍》

三、ARP协议

1.ARP协议概述:

ARP(Address Resolution Protocol)协议全称是地址解析协议,是通过解析IP地址来得到MAC地址的,是一个在网络包中极其重要的网络传输协议,它与网卡有着及其密切的关系,即链路层,那么就需要将这些地址转换成链路层可以识别的东西,在所有的链路中都有着一套自己的寻址机制,如:在以太网中使用Mac地址进行寻址,以标识不同的主机,那么就需要有一个协议将IP地址转换为Mac地址,由此就出现了ARP协议,所有ARP协议在网络层被采用,它是网络层和链路层连接的重要枢纽,每当有一个数据要发送时,都需要通过ARP协议将IP地址转换成MAC地址,在IP及其以上的层次看来,它们只标识IP地址,从不跟硬件打交道。

2.ARP的工作原理:

《网络层协议介绍》
1.PC1想发送数据给PC2,先检查自己的ARP缓存表有没有主机PC2的MAC地址。
2.如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的Mac地址。 ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)。
3. 交换机受到广播后做泛洪处理 ,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答, 并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
4.主机PC2确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。 同时将主机PC2的IP地址和MAC地址作为源地址,将PC1的IP地址和MAC地址作为目标地址发送一个ARP应答,来告诉PC1自己的MAC地址(这个数据帧是单播)。
5.**PC1接受到这个回应的数据帧后,在自己的ARP表中添加PC2的IP地址和MAC地址的对应关系。**在这个过程中,Switch(交换机)以及学习到了PC1和PC2的MAC地址,之后传输数据时,PC1和PC2之间将使用单播方式。

3.ARP的相关命令:

(1)Windows系统中的ARP命令

   arp -a             ###查看arp缓存表
   arp -d[IP]         ###清除arp缓存表
   arp -s IP MAC      ###arp静态绑定

动态学习到的ARP的老化时间是120s,并且静态绑定的ARP条目在计算机关机或重启后会消失。
(2)华为系统中的ARP命令

[Huawei]dis mac-adress  ##查看MAC地址信息
[Huawei]arp static<IP><MAC>
[Huawei]undo arp static <IP><MAC>
<Huawei>reset arp all 

四、ARP攻击与ARP欺骗原理和应用

ARP攻击原理

一般情况下,ARP攻击主要目的是使网络无法正常通信,主要包括以下两种攻击行为:

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

ARP欺骗原理

一般情况下,ARP欺骗并不会使网络无法正常通信,而是通过冒充网关或其他主机使到达网关或主机的流量通过攻击主机进行转发。通过转发流量可以对流量进行控制和查看,从而可以控制流量或得到机密信息。

《网络层协议介绍》

    原文作者:Kiro君
    原文地址: https://blog.csdn.net/m0_61744194/article/details/121512998
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞