主要讲解网络层的功能以及网络层当中几个重要的协议,如ip、icmp、arp
IP数据包格式
目录
网络层的功能,定义了基于工P协议的逻辑地址,就是ip地址连接不同的媒介类型选择数据通过网络的最佳路径,完成逻辑地址寻址。
数据封装的时候在网络层会封装ip地址的头部,形成ip数据包,那么ip数据包是怎样的格式呢,里面包含哪些内容?
(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分)
1、版本(Version):指IP协议版本号,4比特。并且通信双方使用版本必须一致,目前ip版本为IPV4(地址空间不知足),下个版本是IPV6(但也不能解决IP地址缺乏问题)首部长度(Header Length):IP数据包头长度,4比特。IP数据包头最短为20字节,具体长度取决于可选项字段的长度。
2、优先级与服务类型(Priority & Type of Service):8比特,该字段表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现Qos(服务质量)的要求。总长度(Total Length):表示整个IP数据包的长度,16比特。最长为65535字节,包括包头和数据。
3、标识符(Identification):盖字段用于表示IP数据包的标识符,16比特。当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误的重组,标识符字段用于标志一个数据包,以便接收点可以重组被分片的数据包。
4、标志(Flags):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出,3比特。段偏移量(Fragment Offset):在一个分片序列中如何将各分片连接起来,按什么顺序连接起来
5、TTL生命周期(Time to Live):可以防止一个数据包在网络中无限循环的转发下去,每经过一个路由器-1,当TTL的值为0时,该数据包将被丢弃,8比特协议号(Protocol):封装的上层哪个协议,TCMP:1, TCP:6 ,UDP:17,8比特
6、首部校验和(Header Checksum):这个字段只检验数据包的首部,不包括数据不分,16比特。这是因为数据包每经过一次路由器,都要重新计算一下首部校验和(因为,一些字段如生存时间、标志、片偏移等可能发生变化)
7、源IP地址(Source IP Address):表示发送数据包的设备的(网络地址)源地址,32比特。
8、目标IP地址(Destination IP Address):表示接收数据包的(网络地址)目的地址,32比特
9、可选项(Options):选项字段根据实际情况可变长,可以好IP一起使用的选项有多个。例如可以输入创建该数据包的时间等
10、数据(Information):上层数据
ICMP协议
Icmp是一个“错误侦测与回馈机制” 通过IP数据包封装的,用来发送错误和控制消息(协议)
ICMP两种报文:差错报告报文、查询报文
ICMP协议的封装
ICMP协议属于网络层协议
ICMP数据的封装过程
ICMP头部、ICMP数据
↓
IP头部、上层数据(ICMP报文)
↓
帧头部 上层数据 帧尾部
Ping命令
当我们pingy一台主机时,本地计算机发出的就是一个典型的ICMP数据包,用来测试两台主机是否能顺利连通。Ping命令能够检测两台设备之间的双线连通性,即数据包能够达对端,并能够返回。
PING不通的几种情况
1.当主机有一个默认网关时,如果它ping其他网段的地址,到不了显示request timeout(此时它把icmp包发给网关,至于后面的事它不管,如果没有包回应,就显示request timeout)
2.当一个主机没有默认网关时或者配置了网关但是和网关不通时,显示的是Destination host unreachable(此时它发送arp请求包请求网关的mac地址)
3.当一个路由器ping他路由器表中没有的地址时,显示的是request timeout(此时不发任何包)
4.当路由器pingyg1路由器表中存在地址时,如果没有回应,则显示的也是reuqest timeout(此时发送arp请求包,请求目标ip的mac地址)
PING命令的用法:结合具体在什么场景使用什么选项
-t 在Windows操作系统中,默认情况下发送4个包,加上-t,则会一直ping,(Ctrl+c)暂停
-a显示主机名
-l 一般情况下,ping包的大小为32字节,有时为了检测大数据包的通过情况,可以使用参数改变ping包的大小 (192.168.1.1 -l 666)
在Linux系统下为 -S(大写)
-n指定发送包的个数 -c
-s指定源IP去ping -I
tracert命令:
在命令行中输入“tracert”并在后面加入一个IP地址,可以查询从本机到该IP地址所在的电脑要经过的路由器及其IP地址
Linux:traceroute IP/域名
小结:IP数据包的格式、ICMP的作用、PING命令的使用方法
ARP协议概述
局域网中主机的通信,IP(逻辑)地址与MAC(物理)地址
什么是ARP协议(Address Resolution Protocol),地址解析协议,将一个已知的IP地址解析成MAC地址(物理地址,网卡)
ARP攻击原理
- 欺骗其他所有计算机、2、欺骗被攻击计算机
ARP攻击发送的是arp应答,但是应中的mac地址为虚假地址,所以在其他主机想要进行通信时,会将目的MAC地址设置成此虚假mac地址导致无法正常通信。
例如:如果希望被攻击主机无法访问互联网,就需要对网关发送或被攻击主机发送虚假的ARP应答。当网关接收到虚假的ARP应答更新arp条目后,如果网关再发生数据给PC1时,就会发送到虚假的mac地址导致通信故障。
此处举例说明,例如张三要给李四打电话,张三首先要知道李四的电话号码,这时有人告诉他李四的电话号码是12345678(不存在的号码),于是张三就把电话打到12345678,这样就无法找到李四了。
ARP欺骗的原理和ARP攻击原理基本相同,但效果不一样。ARP攻击最终的结果是导致网络中断,而ARP欺骗的最终结果是使得流量通过自身达到监控或控制的目的。
利用ARP欺骗原理网络
通过长角网络监控机软件管理网络
设置监控范围、进行网络管理、验证效果
ARP报文(抓包分析)
源ip目标ip和源mac和目标mac
1、目的MAC地址:54:89:98:0F:2B:BE
2、源MAC地址 54:89:98:5B:5B:BE
3、帧类型:0X0806 --长度为2字节,0X0806代表为ARP packe
4、硬件类型:0X001 --长度为2字节,表示网络类型;以太网取值为1
5、协议类型:0X0800 --长度为2字节,表示要映射的协议地址类型.取值为0X800,表示根据IP地址来进行映射
6、硬件地址长度:0X06 --长度为1字节,表示硬件地址长度;取值为0X06,以太网中表示MAC地址长度为6字节
7、协议地址长度:0X04 --长度为1字节,表示协议地址长度;取值为0X04.以太网中表示IP地址长度为4字节
8、OP:0X0002 --长度为1字节。表示ARP报文的种类;取值1,表示请求报文;取值2,表示ARP应答报文发送端
9、发送端(源)MAC地址:59:89:98:5B:5B:8A (信息体的发起端)
10、发送端(源)IP地址: 0A:00:00:02 (转换即为10.0.0.2)
11、目的端MAC地址:54:89:98:0F:2B:BE
目的端IP地址:0A:00:00:01 (转换即为10:0:0:1)
总结:
IP数据包格式重点理解各字段的含义
ICMP用来发送错误和控制消息(差错报告报文、查询报文)
ARP协议用于实现IP到MAC地址的解析、ICMP封装
ARP协议通过广播查询目标主机MAC地址
ARP攻击是通过伪造ARP应答进行欺骗攻击