网络层功能:
1. 定义了基于IP协议的逻辑地址
2. 连接不同的媒介类型
3. 连接数据通过网络最佳路径,完成逻辑地址选址
IP数据包
数据在封装的过程中,在网络层封装IP头部形成IP数据包
IP数据格式包分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分
版本号(4bit):指IP协议版本,双方通信使用的版本必须一致,目前我们使用的是IPv4
首部长度(4):IP数据包的包头长度(不包括数据)
优先级与服务类型(8):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现 QOS(服务质量)的要求。
总长度(16):IP数据包的总长度,最长为 65535 字节,包括包头和数据。
标识符(16):该字段用于表示IP数据包的标识符。 当IP对上层数据进行分片时,它将给所有的分片数据 分配一组编号,然后将这些编号放入标识符字段中, 保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包
标志(3):和标识符一起传递,指示不可以被分片 或者最后一个分片是否发出(完整)
段偏移量(13):在一个分片序列中如何将各分片连 接起来,按什么顺序连接起来 TTL(time to live)
生命周期(8):防止一个数据包在网络中无限循环的转发下去,每经过一个路由器(255) -1,当TTL的值为0时,该数据包将被丢弃
协议号(8):封装的上层哪个协议,ICMP:1 TCP:6 UDP:17
首部校验和(16):这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一次路由器,都要重新计算一下首部校验(因为一些字段可能发生变化,如生存时间、标志、片偏移等可能发生变化)
源地址(32):源IP地址,表示发送端的IP地址
目标地址(32):目标IP地址,表示接收端的IP地址
可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据
注:根据实际情况可变长,例如创建时间等上层数据
ICMP协议
ICMP作用:检查网络的双线联通性
ping检查网络联通性:
1. 先ping自己主机地址(127.0.0.1)
2. 看双方地址是否有问题
3. 看网关是否有问题
4. 防火墙策略是否有问题
常见ICMP报文格式
| Type | Code | 描述 |
|---|---|---|
| 0 | 0 | Echo Reply |
| 3 | 0 | 网络不可达 |
| 3 | 1 | 主机不可达 |
| 3 | 2 | 协议不可达 |
| 3 | 3 | 端口不可达 |
| 11 | 0 | 超时 |
| 8 | 0 | Echo Reest |
Ping命令基本使用
1. 显示自己ip地址 ipconfig
2. Ping –-help 显示帮助命令
3. –t 长ping
4. 1. -a 将地址解析主机名
- -l size 发送缓冲区大小 如 ping –l 1600
- –w 超时等待时间 如:ping –w 2
- –n 指定ping几次 如ping –n 5
8.追踪经过几个设备 tracent IP地址 如 tracent 192.168.1.154
冲突域
如果两台设备同时发送消息时,互相干扰,那它们就处于同一个冲突域
广播域
一台设备发送广播,能收到消息的设备都是在同一广播域
ARP协议
什么是ARP协议
就是将已知IP协议转化为MAC协议,并且进行地址检测
无故ARP
检测地址冲突:
当一个设备获取了一个IP地址,会自动发送一个ARP,检测是否有设备使用了这个IP地址
工作原理
以两台局域网主机互相通信为例,讲解ARP原理解析过程
1. 当PC1想发送数据给PC2,首先在自己的ARP缓存表上查找是否有PC2的MAC地址
2. 如果PC1在缓存表上没有找到,它将询问PC2的MAC地址。从而会将ARP请求帧广播到本地网络中的所有主机,帧中包括源主机的IP、MAC地址,本地网络都会收到ARP请求,检查是否与自己的IP地址相匹配,如果不匹配,则丢弃ARP请求、
3. PC2确定与自己的IP地址相匹配,会将PC1的IP和MAC地址添加到缓存表中
4. PC2将包括MAC地址的ARP消息发送给PC1(通过单播的方式)
5. PC1接受到PC2回复消息,会将PC2的IP和MAC地址添加到自己的缓存表中,本机缓存生命周期为120S,超过120S后要重新操作上述操作。
windows当中如何查看arp缓存表(静态arp和动态 arp)
arp -a 查看arp缓存表
arp -d 不加ip清除所有
arp -d IP 删除arp缓存表
arp -s IP MAC 删除arp静态绑定
ARP攻击原理:
- ARP攻击发送的是ARP应答,但是ARP应答中的MAC地址为虚假地址,所以在其他主机想要进行通信时,会将目的MAC地址设置成此虚假MAC地址导致无法正常通信。
- 例如,如果希望被攻击主机无法访问互联网,就需要对网关发送或被攻击主机发送虚假的ARP应答。当网关接收到虚假的ARP应答更新ARP条目后,如果网关再发生数据给PC1时,就会发送到虚假的MAC地址导致通信故障。
ARP欺骗原理
- ARP 欺骗就是非法的宣称自己是某个 IP 的 MAC 地址,使询问者错误地更新 ARP 缓存表,这样被欺骗主机发送的数据就会发送到发起攻击的主机,而不是理想的目的 IP 主机。
- 如果攻击者将目的主机也欺骗,就可以实现对两台主机之间数据传输的控制。
ARP欺骗的原理和ARP攻击基本相同,但是效果不一样。ARP攻击最终的结果是导致网络中断,而ARP欺骗的最终结果是使得流量通过自身达到监控或控制的目的。