关于
我的公众号
QQ群:934149291
请喝杯饮料微信:
支付宝:
VLAN网络协议之802.1Q
VLAN网络协议之802.1Q概述802.1Q 全称为“IEEE 802.1Q - Virtual Bridged Local Area Networks”,是由 IEEE 定义的以太网 VLAN(虚拟局域网)标准协议,主要用于在以太网帧中插入一个 VLAN 标签(Tag),从而实现在同一物理网络基础设施上创建多个逻辑网络,每个逻辑网络彼此隔离,同时共享同一物理设备(如交换机、路由器等)。
背景与目的
背景:传统的以太网将所有设备连接到同一个广播域中,这会导致以下问题:
广播风暴:所有设备都会接收到广播流量,导致网络效率低下。
安全性不足:所有设备处于同一个网络中,容易受到攻击或未经授权的访问。
管理复杂:无法灵活地对不同部门或功能的设备进行隔离。
目的:通过引入 VLAN 技术,IEEE 802.1Q 协议解决了上述问题,实现了以下目标:
将一个物理网络划分为多个逻辑网络(VLAN),每个 VLAN 形成独立的广播域。
提高网络安全性,限制不同 VLAN 之间的通信,隔离敏感数据。
增强网络管理的灵活性,支持动态调整 VLAN 配置,方便网络策略配置(如访问控制、QoS 等) ...
Linux移动宽带之ModemManager
Linux移动宽带之ModemManager概述
ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections.
ModemManager provides a unified high level API for communicating with mobile broadband modems, regardless of the protocol used to communicate with the actual device (Generic AT, vendor-specific AT, QCDM, QMI, MBIM…).
官方仓库:https://github.com/linux-mobile-broadband/ModemManager/
ModemManager 是一个用于管理各种调制解调器(modems)的守护进程,它使得在Linux系统上操作和管理移动宽带设备变得更加容易。ModemManager 支持 ...
USB网络通信协议与驱动模型
USB网络通信协议与驱动模型ECM、MBIM、RNDIS 和 NCM 是用于通过USB接口进行网络通信的不同协议或模型。它们各自有不同的用途和应用场景,主要用于实现设备(如移动电话、嵌入式系统等)与主机(如计算机)之间的网络连接。以下是这四种技术的详细介绍:
1. ECM (Ethernet Control Model)
概述: ECM 是 USB 通信设备类(CDC)下的一个子类,专门设计用来模拟以太网接口。它允许USB设备像标准的以太网适配器一样工作。
特点:
提供了一个简单的方法来通过USB传输以太网帧。
支持大多数操作系统无需额外驱动即可工作(即类驱动支持)。
主要适用于需要稳定且低延迟的数据传输场景。
ECM是为USB全速设备设计的,特别是支持DOCSIS 1.0电缆调制解调器。
2. MBIM (Mobile Broadband Interface Model)
概述: MBIM 是由微软和其他一些厂商提出的规范,旨在提供一种标准化的方式管理移动宽带设备(例如4G/5G调制解调器)与PC端的连接方式。
特点:
提供了对移动宽带服务(如数据连接管理、SMS消息处理等)的 ...
Linux下C语言检测WiFi连接的几种方法
Linux下C语言检测WiFi连接的几种方法在Linux系统中,使用C语言检测WiFi是否已连接通常涉及到对网络接口的状态进行检查。以下是一些常用的方法和示例代码:
方法一:使用ioctl系统调用检查网络接口状态#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <arpa/inet.h>
int is_wifi_connected(const char *interface) {
int sock;
struct ifreq ifr;
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0) {
perror("socket");
return -1;
}
memset(&a ...
无线局域网标准之WAPI
无线局域网标准之WAPIWAPI概述
WAPI (Wireless LAN Authentication and Privacy Infrastructure) 是无线局域网鉴别和保密基础结构,是一种安全协议,同时也是中国无线局域网安全强制性标准,最早由西安电子科技大学综合业务网理论及关键技术国家重点实验室提出。
当前全球无线局域网领域仅有的两个标准,分别是美国行业标准组织提出的IEEE 802.11系列标准(包括802.11a/b/g/n/ac等),以及中国提出的WAPI标准。WAPI是我国首个在计算机宽带无线网络通信领域自主创新并拥有知识产权的安全接入技术标准。本方案已由国际标准化组织ISO/IEC授权的机构IEEE Registration Authority(IEEE注册权威机构)正式批准发布,分配了用于WAPI协议的以太类型字段,这也是中国在该领域唯一获得批准的协议。
与WIFI的单向加密认证不同,WAPI双向均认证,从而保证传输的安全性。WAPI安全系统采用公钥密码技术,鉴权服务器AS负责证书的颁发、验证与吊销等,无线客户端与无线接入点AP上都安装有AS颁发的公钥证 ...
网络802.1X协议简介
网络802.1X协议简介802.1X是一种基于端口的网络接入控制协议。基于802.1X协议的用户认证方式叫做802.1X认证。802.1X认证被广泛应用在信息安全要求严格的网络中。
802.1X协议的背景早期的IEEE 802 LAN协议中,只要用户可以接入局域网的控制设备(例如接入交换机),就可以访问局域网中的设备或资源,这无疑是存在安全隐患的。为解决无线局域网的安全问题,IEEE 802委员会提出了802.1X协议。802.1X协议可以控制用户的网络访问权限,防止身份不明或未经授权的用户传输和接收数据。由于802.1X协议的普适性,因此后来也广泛应用于有线局域网。
与其他接入控制机制不同,802.1X协议是通过控制接入端口,实现用户级的接入控制。在802.1X协议中,物理接入端口被划分为“受控端口”和“非受控端口”这两个逻辑端口,用于实现业务与认证的分离。非受控端口主要用于传递EAPOL协议帧,始终处于双向连通状态,保证客户端始终能够发出或接收认证报文;而受控端口用于传递业务报文,因此在授权状态下处于双向连通状态,在非授权状态下不从客户端接收任何报文。
换言之,基于802.1X协议 ...
Linux之virt_wifi驱动
Linux之virt_wifi驱动简介
A fake implementation of cfg80211_ops that can be tacked on to an ethernet net_device to make it appear as a wireless connection.
一种可附加到以太网网络设备上的虚假的 cfg80211_ops 实现,使其看起来像无线连接。
该模块通过实现 cfg80211 接口和网络设备操作,模拟了一个完整的无线网络接口,使其对上层表现为真实的 WiFi 设备,支持扫描、连接、数据传输等操作。
主要功能其主要功能是:
模拟无线硬件: 在无需物理无线设备的情况下,提供虚拟的无线接口,在纯软件环境中模拟无线网络行为。
支持测试和容器化: 允许在虚拟环境中测试无线功能,或为容器提供隔离的无线网络接口。
协议栈兼容性: 通过 mac80211 框架提供标准的无线设备接口,支持标准工具(如 iw、wpa_supplicant)操作。
典型应用场景
开发与测试
驱动开发:在无物理硬件时模拟无线设备,测试 mac80211 驱动逻辑。
协议测 ...
Linux之irqbalance
Linux之irqbalance关于Irqbalance官方介绍:
Irqbalance is a daemon to help balance the cpu load generated by interrupts across all of a systems cpus. Irqbalance identifies the highest volume interrupt sources, and isolates each of them to a single unique cpu, so that load is spread as much as possible over an entire processor set, while minimizing cache miss rates for irq handlers
Irqbalance 是一个守护进程,用于帮助在系统的所有 CPU 之间平衡由中断产生的 CPU 负载。Irqbalance 识别出最高的中断源,并将它们每一个隔离到单个独特的 CPU 上,以尽可能在整个处理器集中分散负载,同时最小化 IRQ ...
关于网络MAC地址
关于网络MAC地址一个MAC地址问题经常会遇到客户反馈这样的问题:在进行以太网MAC地址设置测试(随便写的MAC地址),发现有时候MAC地址会变成随机的MAC地址。
原因: MAC地址的第一个字节的最后一位是用来区分是多播还是单播的,0为单播,1为多播,我们的电脑或是设备的网卡都是单播的,所以不能为1。一般网卡驱动都会去校验,如果校验为多播地址则认为是不符合规范的地址,就会生成一个随机MAC。
相关代码如下(include/linux/etherdevice.h):
static inline bool is_multicast_ether_addr(const u8 *addr)
{
#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
u32 a = *(const u32 *)addr;
#else
u16 a = *(const u16 *)addr;
#endif
#ifdef __BIG_ENDIAN
return 0x01 & (a >> ((sizeof(a) * 8) - 8));
#el ...
Linux之kmod
Linux之kmod背景最近在解决某些问题的时候,发现了内核模块很多以前没怎么接触的配置和用法,所以想深入了解下modinfo、depmod等这些内核模块工具,想简单看看其背后一些原理,但是发现这些工具的路径都指向了/bin/kmod。
$ ls -all $(which modinfo)
lrwxrwxrwx 1 root root 9 7月 5 2021 /usr/sbin/modinfo -> /bin/kmod
可能很多人听到kmod会很陌生,但是像insmod、modprobe、lsmod等工具会很熟悉。没错,这些工具都是属于kmod包的,所以就会发现上面的现象。
关于kmodkmod 是 Linux 系统中用于管理内核模块(kernel modules)的工具包。它提供了一组用户空间工具,用于加载、卸载、列出和查询内核模块、解决依赖关系和别名等。kmod 是 module-init-tools 的替代品,与与 module-init-tools 项目的工具、配置和索引保持兼容,自 Linux 内核 3.0 版本以后成为默认的内核模块管理工具。
这些工具基于 libkm ...
Linux之udev热插拔规则
Linux之udev热插拔规则背景udev 是 Linux 系统中用于管理设备节点的工具,它可以根据设备的属性动态地创建设备文件,并执行特定的命令,通常用来处理热插拔。udev 规则用于指定这些行为,它们一般存储在 /etc/udev/rules.d/ 目录下的 .rules 文件中。
udev规则语法简单介绍udev 规则的语法如下:
ACTION=="action", KERNEL=="kernel", ATTR{attribute}=="value", ... , RUN{command}
以下是 udev 规则中各个部分的详细说明:
ACTION:触发规则的事件类型,例如 add、remove、change 等。
KERNEL:设备的内核名称,通常是 /dev 下设备文件的名称,不包括 /dev/ 前缀。
ATTR{attribute}:设备的属性,通常与 sysfs 文件系统中的属性相对应。
VALUE:属性的值。
RUN{command}:当规则匹配时要执行的命令。
规则文件中的每一行通常是 ...