目录
知识梗概
IP地址
子网划分
IP包头格式
路由
网络层协议
ARP病毒/ARP欺骗
知识梗概
IP地址
IP相关介绍:机器之间需要交流,必须要一个地址才能找到对应的主机,IP地址是主机的一种表示,保证主机之间的正常通信;它是一种网络编码,用来确定网络中的节点;
IPv4:32位,大概42亿个IP地址,随着全球的网民不断飙升,出现了IPv6,IPv6具有128位,可以提供更多的地址。
IP地址的组成:主机部分+网络部分。主机部分和网络部分占的位数不同,分出来ABCDE五类地址:
A类:1~126开头,127开头的地址给本地的loopback(环回)接口使用了,主要用于TCP/IP协议在本机的测试使用;
B类:128~191开头
C类:192~223开头
私有地址:
公有ip:在互联网中使用,不可以重复
私有ip:在局域网中使用,可以重复
NAT技术:公司内部网使用私有ip---路由器--->转换成公网ip--->访问互连网(该技术后面会重点说,这里先有个印象,想想大家平时连自己家里的网,IP地址总是192.168什么什么的开头,难道没有一样的嘛?为什么不会冲突?)
子网掩码:
用来确定ip的网络地址,也就是这个IP是哪个网段的 ,不同的网段一般不能直接通信,需要通过路由器转发的。通过子网掩码和IP地址,就能算出网段是什么?
32个二进制位:对应ip地址的网络部分用1表示,对应ip地址的主机部分用0表示;
IP地址和子网掩码做逻辑与运算得到网络地址;
所以我们来尝试计算一下对应IP所处的网段地址:
那我们如何查看自己的IP地址呢?
windows:ipconfig /all--查看ip地址、物理地址
windows:nslookup www.qq.com--查看解析域名对应的ip地址
linux:ip route:查看网关和直连路由及其接口
ip add:显示接口名称,MTU,接口状态、ip地址、以太网mac地址等
Linux中还可以使用ifconfig来查看ip以及mac地址
子网划分
子网划分是干什么呢?
大网划为小网,满足不同网络对ip地址的需求,实现网络的层次性;
子网划分不再是有类地址A、B、C类,而是无类地址;
网络部分向主机部分借位,主机部分的能容纳的主机就会变少;
一个子网的有效的ip地址段:去除全0和全1的ip地址
最多借位到/30,此时有效的ip地址是两个;
出现/32,表示一个ip地址是一个网段,这是一个主机路由
IP包头格式
IP包头:前面我们说到,数据在网络层会添加一个IP头部,也就是这里的IP包头:
对IP包头格式的介绍:
版本:IPV4或IPV6;
首部长度:ip包头的长度,因为长度可变,因此需要定义;
总长度:IP数据包的总长度;
标识符、标志、偏移量:保证数据包重组时不会出错;
TTL:生命周期字段,经过一个路由器值就-1,为0时,数据包被丢弃。防止一个数据包在网络中无限循环下去;
源IP地址4字节
目的IP地址4字节
可选项:其他东西
路由
路由的原理:跨越从源主机到目的主机的一个互联网络来转发数据包的过程
接下来就要介绍网络层最最最重要的机器--路由器。
路由器是什么?-->能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备;
将一个网段的数据转发到另一个网段,实现跨网段通信;路由器里面存储信息的东西叫路由表,路由表里有很多路由信息,一条路由信息就叫一个路由条目;
路由器工作简单来说就是:收到数据包-->根据目的ip查找路由表-->转发
简单介绍一下路由表的路由类型:
提到路由器就不得不提两个重要的协议:ARP协议
1、ARP协议-->地址解析协议,得到IP地址对应的mac地址。在网络层用IP交流,但是数据包到达数据链路层时还是要得到mac地址的,这个时候要用到这个ARP协议拿到对应IP的mac地址,数据才能传输下去。
2、动态路由协议-->
动态路由协议是路由器之间用于交换、计算和维护路由表的协议。它的基本工作原理包括以下四个阶段:
邻居发现阶段:运行了相同动态路由协议的路由器之间,首先需要建立一个用于交换路由的对等点关系,这些路由器又称为邻居路由器。
路由交换阶段:发现邻居后,每个路由器会主动通过广播或单播的方式把自己的路由信息发送给邻居路由器。经过一段时间后,每个建立了对等点关系的路由器都拥有了整网的路由信息。
路由选择阶段:路由器根据收到的路由信息,结合自身的路由算法,选择出到达目标网络的最佳路径,并生成路由表。
维护路由阶段:为了感知突发的网络故障(如设备故障或线路中断等),邻居路由器之间会发送周期性的心跳包。当心跳包超时时,就会认为邻居关系失效,此时路由器需要自动维护路由表的更新,将故障路径移除。
动态路由协议的主要作用包括维护路由信息、建立路由表和决定最佳路由。它的优点在于可以自动适应网络状态的变化,并自动维护路由信息而不需要网络管理员的参与。然而,由于需要相互交换路由信息,动态路由协议会占用一定的网络带宽和系统资源,并且其安全性不如静态路由。
在动态路由协议中,目的网络是否可达取决于网络状态。动态路由协议按照寻址算法的不同,可以分为距离矢量路由协议和链路状态路由协议。距离矢量路由协议采用距离矢量算法,是相邻的路由器之间互相交换整个路由表,并进行矢量的叠加,最后学习到整个路由表。而链路状态路由协议则采用链路状态算法,路由器不是简单的从相邻的路由器学习路由,而是把路由器分成区域,收集区域内的路由信息,生成网络拓扑结构图,从而计算出最佳路径。
OSPF(开放最短路径优先)是一种典型的链路状态路由协议,被广泛应用于企业内部网络、云计算环境、校园网络和互联网接入网络等场景。它支持路由聚合和路由器冗余,提高网络的可伸缩性和可靠性,并可以通过动态地适应网络拓扑的变化,提供灵活的、可扩展的路由服务。同时,OSPF还支持ECMP(等价多路径)负载均衡,从而能够更好地利用多个路径,提高网络的负载能力。
查看路由表的命令:
linux : ip route
windows : route print
路由器转发数据包的封装过程:
mac地址在局域网中使用,IP地址在整个互联网中使用;
NAT技术:网络地址转换技术,将公网和私网地址进行转换,解决了IPV4地址不足的问题,所有的局域网都可以使用相同的网段IP地址,每个路由器的WAN口具有一个公网IP地址,出去的时候路由器会修改IP包里的源IP为公网IP;
想要知道到达一个指定的地址,比如说要访问www.baidu.com,要经过哪些路由器?
这就涉及到路由追踪的知识:可以使用:tracepath www.baidu.com命令。
通过最多30个跃点追踪,用一个循环,每次TTL+1,最多加到30,能探测到www.baidu.com经过了哪些路由器。
网络层协议
arp协议---->
地直接写协议,主要是在局域网中使用,将已知的IP地址解析为mac地址;
arp缓存表:
arp -n查看缓存表;
arping 192.168.1.1发送广播包得到该IP(在使用的IP)的mac地址;还可以检查一个ip是否有冲突(有相同的IP)
Icmp协议---->
网络控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
Icmp协议没有自己的IP地址,所以要借用IP协议(网际协议)
抓包工具
简单介绍一下,可以下载使用一下,上手比较简单:
ARP病毒/ARP欺骗
相关思维导图可分享!关注后台私