【计算机网络】网络层 & 数据链路层知识点总结

在这里插入图片描述

  1. 数据链路层:负责分配 MAC 地址(以太网是根据 MAC 地址来区分不同设备的)。概念上划分为 逻辑链路控制子层(LLC)和 媒体访问控制子层(MAC)。
  2. 网络层:负责对数据包进行路由选择和存储转发。数据单位称作 分组 / 数据包
  3. 传输层:是第一个端到端,即进程到进程的层次。由于一个主机可以同时运行多个进程,因此传输层有复用和分用的功能。数据单位称作 报文 / 数据段
  4. 应用层:为操作系统或网络应用程序提供访问网络服务的接口。

物理层设备:中继器、集线器
数据链路层设备:网桥(交换机)
网络层中继系统:路由器
网络层以上的中继系统:网关

一、网络层

网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括 寻址和路由选择、连接的建立、保持和终止 等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。

传输层和网络层的区别:

  • 传输层提供应用进程间的逻辑通信,即端到端的通信。
  • 网络层提供一台机器到另一台机器间的通信,属于点到点的通信,不会涉及进程或程序的概念。

1. 网际互连协议:IP

IP(Internet Protocol,网际互连协议)是 TCP/IP 体系中的 网络层协议。对上可载送传输层各种协议的信息,例如 TCP、UDP 等;对下可将 IP 信息包放到链路层,通过以太网、令牌环网络等各种技术来传送。IP 只为主机提供一种 无连接、不可靠的、尽可能交付 的数据报传输服务。

IP 协议的目的:

  1. 为每台计算机分配 IP 地址,为数据包的传送提供地址
  2. 确定哪些地址在同一个子网络

设计 IP 的目的是 提高网络的可扩展性

  1. 实现大规模、异构网络的互联互通;
  2. 分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。

1.1 IPv4 地址

IP 地址的 编码方法 有三种:1)分类的 IP 地址;2)子网的划分;3)CIDR

分类的 IP 地址:属于传统 IP 地址,分为 A~E 五类,都由 网络号 + 主机号 两部分组成。网络号代表主机所连接的网络,主机号代表该主机或路由器在网络中的地址。通过 子网掩码 可以获得 IP 地址的网络号。

网络地址转换(NAT):通过将专用网络地址转换为公用地址,从而对外隐藏了内部管理的 IP 地址。

子网划分:A、B、C 类地址默认子网掩码分别为 255.0.0.0255.255.0.0255.255.255.0

1.2 IPv6 地址

地址表示方法:128 位,使用冒号十六进制记法表示,每个 16 位的值用 4 位十六进制值表示,各值之间使用冒号分隔。

相比 IPv4,IPv6 有更大的地址空间,灵活的首部格式,允许协议继续扩充,支持即插即用,支持资源的预分配,增加了安全性。

1.3 网络层其他协议

ICMP(Internet Control Message Protocol)网际控制报文协议:使主机或路由器可以报告差错和异常情况,提高 IP 数据报成功交付的机会。

2. 网络常用测试工具

ping:用于检查网络是否通常或网络的连接速度。原理:利用网络上 IP 地址的唯一性,给目标 IP 地址发送一个数据报,要求对方也返回一个同样大小的数据报来确定两台机器网络是否连通、时延情况。

ping www.baidu.com

ping 命令工作在应用层,它直接使用网络层的 ICMP 协议,没有使用传输层的 TCP 或 UDP 协议。

tracert:路由跟踪应用程序,用于确定 IP 数据包访问目标所采取的路径。

tracert www.baidu.com   // 打印从当前主机到目的主机所经过的路由地址

telnet:可以用于网络测试。

telnet www.baidu.com 80   // 测试80端口的Web服务器是否正常工作
GET / HTTP1.1  

若 Web 服务器正常工作,就会返回服务器响应头,以便确认服务器情况。

netstat:监控 TCP/IP,可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

二、数据链路层

ARP(Address Resolution Protocol)地址解析协议:完成从 IP 地址到 MAC 地址的转换。
RARP(Reverse Address Resolution Protocol)协议:完成从 MAC 地址到 IP 地址的转换。

1. ARP 协议

地址解析协议,ARP(Address Resolution Protocol),是根据 IP 地址获取物理地址(MAC 地址)的一个 TCP/IP 协议。

【1】ARP 有什么用

在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的 MAC 地址(因为 MAC 才是真正的主机的唯一标识符)。比如局域网中实际传输的是 “帧”,帧里面是有目标主机的 MAC 地址的。由于数据传输依赖的是 MAC 地址而不是 IP 地址,所以将已知的 IP 地址转换为 MAC 地址就要由 ARP 协议来完成。“地址解析” 就是主机在发送帧前将目标 IP 地址转换成目标 MAC 地址的过程。ARP 协议的基本功能就是通过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的顺利进行

【2】ARP 工作原理 - 请求 & 应答

ARP 请求:

  • 静态映射:主机 A 在本地 ARP 缓存表中查找主机 B 的对应 MAC 地址,若找到了则解析完成;
  • 动态映射:若静态映射失败,即主机 A 的本地 ARP 缓存表中没有主机 B 的 MAC 地址,则主机 A 发送一个 ARP 请求报文,该报文包含了发送方(主机 A)的 MAC 地址、IP 地址以及目的主机(主机 B)的 IP 地址。因为发送方(主机 A)不知道目的主机的 MAC 地址,所以这个请求报文在网络层以广播的形式发送。

关于 ARP 缓存表:其实就是一张 IP 和 MAC 进行映射的表,当 ARP 协议被询问一个已知 IP 地址节点的对应 MAC 地址时,会先在 ARP 缓存表中查询,若存在,就直接返回与之对应的 MAC 地址,若不存在,才发送 ARP 请求向局域网查询。

ARP响应:

局域网中的每一台主机都会接收来自主机 A 的 ARP 请求报文并对比自己的 IP 地址和请求报文中的目的主机 IP 地址是否匹配,若不匹配则直接丢弃该请求;否则,目的主机将发送方的 IP 和 MAC 地址写入本地 ARP 映射表中,再返回一个 ARP 响应报文,该响应报文包含目的主机的 IP 地址和 MAC 地址。由于此时目的主机知道发送方机的 MAC 地址,可以直接通过单播的方式将响应报文传回发送方。

最后,发送方接收到目的主机发来的 MAC 地址,将目的主机的 IP 和 MAC 地址写入本地 ARP 映射表中。

注意:目的主机会先完成 ARP 缓存,源主机后完成 ARP 缓存

【图 1:局域网中只有两台主机,请求 & 响应】
在这里插入图片描述
【图 2:局域网中有多台主机,请求 & 响应】
在这里插入图片描述
图片来源:ARP原理和ARP攻击

【例】

主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;

当主机 A 要与主机 B 通信时,ARP 协议可以将主机 B 的 IP 地址(192.168.1.2)解析成主机 B 的 MAC 地址(0A-11-22-33-44-02),以下为工作流程:

  1. 根据主机 A 的路由表内容,确定用于访问主机 B 的转发 IP 地址是192.168.1.2,主机 A 在自己的本地 ARP 缓存中查找主机 B 的对应 MAC 地址;
  2. 如果主机 A 在 ARP 缓存中没有找到映射,它将 ARP 请求广播到本地网络上的所有主机,以询问 192.168.1.2 的硬件地址。
  3. 源主机 A 的 IP 地址和 MAC 地址都包括在 ARP 请求中。本地网络上的每台主机都接收到 ARP 请求并且检查是否与自己的 IP 地址匹配。如果主机发现请求的 IP 地址与自己的 IP 地址不匹配,它将丢弃ARP请求。
  4. 主机 B 确定 ARP 请求中的 IP 地址与自己的 IP 地址匹配,则将主机 A 的 IP 地址和 MAC 地址映射添加到本地 ARP 缓存中。主机 B 将包含其 MAC 地址的 ARP 响应直接发送回主机 A。
  5. 当主机 A 收到从主机 B 发来的 ARP 响应消息时,会用主机 B 的 IP 和 MAC 地址映射更新 ARP 缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机 B 的 MAC 地址一旦确定,主机 A 就能向主机 B 发送 IP 通信了。

【3】ARP协议报文格式

ARP 报文的总长度为 64 字节。

ARP 报文信息说明
Hardware type硬件类型,标识链路层协议
Protocol type协议类型,标识网络层协议
Hardware size硬件地址大小,标识MAC地址长度
Protocol size协议地址大小,标识IP地址长度
Opcode操作代码,标识ARP数据包类型,1表示请求,2表示回应
Sender MAC address发送主机的 MAC 地址
Sender IP address发送主机的 IP 地址
Target MAC address目标主机 MAC 地址,此处全 0 表示在请求
Target IP address目标主机 IP 地址

【4】ARP 攻击

ARP 协议是建立在网络中各个主机互相信任的基础上的,ARP 请求以广播形式发送,网络上的主机可以自主发送 ARP 应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的 ARP 缓存表中,这样攻击者就可以向目标主机发送伪 ARP 应答报文,从而篡改主机的本地 ARP 缓存表。ARP 攻击会导致主机间通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器,因此存在极大的安全隐患。

在 PC 间通信时,交换机会基于 PC 的 MAC 地址建立一个 CAM 缓存表,即 MAC 地址和 Port 的映射,之后交换机就可以根据目的 MAC 地址选择相应的 Port 进行转发。

PC1 对 PC2 正常通信过程:PC2、PC1 先后在本地 ARP 映射表中写入对方的 IP 和 MAC 地址映射,而非目的 PC 会把 PC1 的广播包丢弃

非正常通信过程:如果 hacker 是 PC3,此时 PC3 接收 PC1 的广播包,同时回复一个虚假的响应包,告诉 PC1 我就是 PC2,即将 hacker 的 MAC 地址(MAC3)发送给 PC1。 而 PC1 会受到来自 PC2(正确的 PC2-MAC2)和 PC3(虚假的 PC2-MAC3)的响应包,但 PC1 不知道哪一个是正确的,只是简单地判断后到达的包为真,所以 PC3 只要连续不断地发送响应包,就总能把正确的响应包覆盖掉。

PC1 在本地 ARP 缓存中写入错误的 IP2-MAC3 映射,当 PC1 给 PC2 发送消息时,数据帧中目的 MAC 地址为 MAC3,送到交换机后,交换机查询 CAM 表,发现存在映射 MAC3-Port3,就将信息通过 Port3 转发、交付到了 PC3,从而截取到信息。
在这里插入图片描述
如果 ARP 攻击严重,会导致同一个局域网(也是同一个广播域)的所有主机的 ARP 缓存表中都存放着错误的 IP-MAC 映射,查询每台主机的 ARP 缓存表,不论什么 IP,都会映射到攻击者的 MAC 地址上,这样该局域网内的所有主机的消息都会发送到 Hacker 的主机上。
在这里插入图片描述
【5】ARP 攻击的防御

参考:ARP攻击,如何防御?

防御思路有二:

  1. 保证主机接收不到欺骗包:当黑客发起ARP欺骗包时,会经过局域网里面的交换机或无线路由器等网络设备,如果网络设备能够识别这种欺骗包,并且提前丢弃掉,则电脑/手机端就不会被欺骗。该思路属于在网络设备上进行防御
  2. 保证主机接收到欺骗包后不相信:如果网络设备没有拦截这种欺骗包,则电脑/手机端需要做安全防御,然后再丢弃。该思路属于在用户端进行防御

也就是说,ARP防御可以在网络设备上实现,也可以在用户端实现,更可以在网络设备和用户端同时实现。

1. 网络设备上的防御技术

DAI 技术(动态 ARP 检测,Dynamic ARP Inspection):

  • 1)交换机记录每个接口对应的 IP 地址和 MAC,即 port<->mac<->ip,生成 DAI 检测表;
  • 2)交换机检测每个接口发送过来的 ARP 回应包,根据 DAI 表判断是否违规,若违规则丢弃此数据包并对接口进行惩罚。

PC3 在交换机 DAI 表中的对应表项是 <port3-mac3-ip3>,而 PC3 发送的欺骗包内容是 <port3-mac3-ip2>,交换机便可以判断这个包是虚假的欺骗包,对其进行丢弃,并对接口做出惩罚(不同设备惩罚方式不同,可以直接将 port3 接口“软关闭”,直接对攻击者断网;也可以“静默处理”,即仅丢弃欺骗包,其他通信正常)。

关于如何生成 DAI 表,可以手工静态绑定,即用户接入网络后,管理员根据此用户主机的 MAC 和 IP 地址,在接口上绑死,缺点是比较麻烦。另一种方式是在交换机上开启 DHCP 侦听技术,当用户第一次通过 DHCP 获取地址时,交换机就把用户主机的 IP、MAC、Port 信息记录在 DHCP 侦听表,后面动态 ARP 检测时直接调用这张侦听表即可。

2. 用户端的防御技术

比较方便的是下载一些安全产品(但真不想用),其次可以通过 “ARP双向绑定” 技术实现。

双向绑定即通信双方都静态绑定对方的 IP 和 MAC 映射,即便收到 ARP 欺骗包,由于静态绑定的 ARP 映射条目优先级高于动态学习的,就可以保证不被欺骗。但缺点是比较麻烦,如果一个局域网内主机太多,工作量就很大了。

Windows ARP 绑定方法:运行 cmd

# 执行 arp -s ip地址 mac地址,比如:
arp -s 192.168.1.1 00-11-22-a1-c6-09

【6】其他补充

关于 ARP 的映射方式,为什么不直接维护一张静态的 ARP 映射表?

静态的 ARP 映射表把逻辑(IP)地址和物理(MAC)地址关联起来,它存储在网络中的每一台机器上。但静态映射有一定的局限性,因为 MAC 地址可能发生变化:

  • 1)机器可能更换 NIC(网络适配器 / 网卡),结果变成一个新的物理地址。(因为每个网卡都有唯一的 MAC 地址,更换网卡时本机的物理地址也会发生改变,除非手动修改 MAC 地址)
    2)电脑可能从一个物理网络转移到另一个物理网络,这样会时物理地址改变

要避免这些问题出现,必须定期维护更新ARP表,比较麻烦而且会影响网络性能。


参考:

ARP原理和ARP攻击
ARP攻击,如何防御?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃饭就会放大招

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值