自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 无线空中包抓包教程:使用vmware虚拟机的ubuntu系统,通过tcpdump抓取无线空中包

在实际抓取空中包的过程中,对应网卡的windows驱动往往不支持抓包(或者只能购买购物网站上的性能不大行的所谓windows专用抓包工具,其实这从底层上看是不合理的,就算找客服问,他们往往也无法准确回答),而这种抓包的方式在linux系统上更容易开发,也更容易使用(甚至原生就支持),所以本文介绍如何通过ubuntu系统抓包。1、一般情况下,一个ubuntu的linux系统具有市面上卖的大多数无线网卡的对应驱动,只不过需要注意的是,并不是全部都有,而且有些就算有驱动,也有可能不支持抓取空中包。

2024-01-01 23:25:11 2112 1

原创 linux临界区

在Linux中,"临界区"通常指的是Critical Section的概念,它是多线程或多进程编程中的一个重要概念,用于描述一段代码或一段程序,只能被一个线程或进程同时执行,临界区的目的是保护共享资源,以避免竞争条件(Race Condition)和数据不一致性问题。需要注意的是,入口和出口点的位置应该根据具体的需求和共享资源的访问模式来确定,确保共享资源在临界区内受到适当的保护。临界区的范围应该足够小,以最小化锁的持有时间,从而降低竞争和锁冲突的可能性,但同时必须确保共享资源得到适当的保护。

2023-09-08 21:45:04 845 1

原创 linux原子操作

在这个示例中,使用了互斥锁pthread_mutex_t来保护临界区,确保对atomic_counter的递增操作是原子的。原子操作函数:Linux内核提供了一些原子操作函数,可以用于执行不可中断的原子操作。与Linux内核中的原子操作不同,用户空间的原子操作不是由硬件提供的原子指令,而是通过特殊的软件库函数或编译器内置函数来实现的。以下例子展示如何在Linux内核模块中使用原子操作函数来执行一个原子的计数器递增操作。Linux内核中的原子操作是一种操作,它是不可中断的,不会被其他处理器中断或调度的操作。

2023-09-03 13:02:24 1103

原创 linux用户空间下的锁介绍

与互斥锁不同,读写锁允许多个线程同时读取共享资源(只要它们是读操作),但只允许一个线程写入共享资源,一旦有一个线程试图执行写操作,其他所有线程都将被阻塞,直到写操作完成。Linux用户空间的屏障(Barrier)是一种同步机制,用于协调多个线程或多进程应用在执行过程中的同步点,同步一组线程,确保它们在达到某个点之前都不会继续执行。总之,Linux用户空间的自旋锁是一种用于保护临界区的同步机制,通过忙等待方式尝试获取锁,适用于对临界区的竞争非常短暂的情况。此外,CAS操作需要小心处理循环,以防止无限自旋。

2023-09-02 21:32:39 654 1

原创 linux内核空间下的锁介绍

需要注意的是,自旋锁不适用于长时间的临界区,因为在等待锁的过程中,线程会持续占用CPU资源,浪费CPU时间。在 Linux 内核空间,自旋信号量(Spinlock Semaphore)是一种同步原语,类似于标准信号量,但不同之处在于自旋信号量使用自旋方式等待资源的可用性,而不是将线程置于休眠状态。在 Linux 内核空间,自旋读写锁(Spin Read-Write Lock)是一种同步机制,它结合了自旋锁和读写锁的特点,允许多个线程同时读取共享资源,但只允许一个线程进行写操作。

2023-09-02 18:25:26 1264 1

原创 物理内存和虚拟内存

当内核代码不再需要通过 get_free_pages() 分配的物理页面块时,它会调用 free_pages(unsigned long addr, unsigned int order) 函数,其中 addr 参数是指向要释放的物理页面块的起始物理地址,而 order 参数是与分配时使用的 order 参数相同,用于指示要释放的页面数量。综上,虚拟内存是一种操作系统的关键特性,它允许程序访问比物理内存更大的地址空间,并提供了一种灵活的内存管理机制,以提高系统的性能、稳定性和多任务处理能力。

2023-08-31 01:18:09 3729

原创 讲述无线MAC层的工作原理的相关书籍

6、《IEEE 802无线标准:无线局域网、城域网和个人区域网》(IEEE 802 Wireless Standards: A Practitioner’s Perspective: A. S. Tanenbaum)这本书深入探讨了无线通信网络的各个方面,包括无线局域网(WLAN)和无线个人区域网(WPAN)的MAC层。这本书提供了广泛的无线通信知识,包括无线网络的MAC层设计和原理。这本书提供了广泛的无线通信和网络知识,包括MAC层的介绍和原理。

2023-08-29 20:46:32 81 1

原创 WIFI连接之WPA3-SAE介绍

连接设备选择安全组参数(Group Formation):连接设备收到AP广播的公开参数后,会选择最适合自己的一个安全组参数(例如密码),并生成一个临时的Diffie-Hellman公私钥对。无线访问点公开参数广播(AP广播):无线访问点(AP)会广播一些公开参数,包括一个组公开参数元素(GPK),用于向连接的设备提供一些安全相关的信息。响应(Probe Response):WiFi接入点回复客户端设备的请求,并传输网络的基本信息,包括WiFi名称(SSID)和支持的加密方式。

2023-08-28 20:28:23 2994 1

原创 WIFI连接之WPA2-PSK介绍

通过上述步骤,WPA2-PSK密钥交换过程确保了连接设备和AP之间的通信的安全性。PSK密钥仅在连接设备和AP之间共享,因此密钥不会被非授权的第三方获取。WPA2-PSK是一种Wi-Fi连接的加密方式,它使用预共享密钥(Wi-Fi Protected Access II)(Pre-Shared Key,PSK)来保护通信的安全性。在EAPOL四次握手完成后,客户端和AP会共享一个PTK,该PTK将用于加密和解密数据传输过程中的数据包。这样,双方之间建立了安全的连接,可以进行数据的加密和保护。

2023-08-28 19:55:46 1887 1

原创 网络协议栈介绍

在发送方,驱动程序将数据包封装到适当的数据链路层帧中,并添加必要的控制信息,如源MAC地址、目标MAC地址、帧类型等。总的来说,Linux内核中的网络协议栈实现了完整的TCP/IP协议栈,并提供了丰富的网络协议支持和接口。在数据帧封装过程中,每个协议层都会在上一层的数据基础上添加自己的头部或尾部,并可能进行一些校验和控制信息的计算和添加。数据链路发送和接收:在数据链路层,会添加源和目的MAC地址以及数据链路层协议类型等信息,数据包被封装成数据链路层帧,并在发送端发送到物理介质上。

2023-08-28 16:21:06 2578 1

原创 红黑树介绍和示例,以及在linux内核中的一些应用

红黑树的自平衡特性确保了定时器事件的高效处理,提高定时器查找和触发的效率。每个运行中的进程都有一个进程控制块(进程描述符struct task_struct),这些块通过红黑树进行组织和调度,进程们都在进程调度器的红黑树中维护一个节点,通过对红黑树进行适当的旋转和平衡,这样可以根据进程的优先级和其他因素轻松地查找和选择下一个要运行的进程。虽然红黑树的查找操作在平均情况下具有较好的性能(O(log n)),但对于大量的读取操作而言,与无序数组相比,它可能有较高的性能开销,因为它需要维护平衡。

2023-08-27 02:46:45 1008 1

原创 wifi传输block ack介绍

这意味着每个数据帧都需要一个往返的确认帧,这会增加通信的时延,特别是在拥挤的网络中,这种确认帧的数量会显著增加,降低了网络的吞吐量。它用于提高Wi-Fi网络性能和效率的机制,通过减少确认帧的数量和降低时延,可以更有效地传输数据,特别是在高吞吐量Wi-Fi网络中。减少确认帧数量:由于多个数据帧可以用一个Block Ack帧来确认,减少了确认帧的数量,降低了信道上的冲突和干扰。Block Ack确认:接收方接收到请求后,发送一个单个的Block Ack确认帧,确认块中的所有数据帧的接收。

2023-08-25 13:19:21 843 1

原创 wifi连接WPA3加密介绍

WPA3是一项非常重要的无线网络安全改进,旨在提供更强大的加密和更好的网络安全性。它采用先进的密码学算法,增加了密码破解的难度,并提供了更高级别的数据隐私和保护,以确保无线网络的安全性和用户隐私。这增加了数据的隐私和安全性,因为即使攻击者成功解密了一个设备的流量,他们无法轻松地解密其他设备的流量。它是WPA2的继任者,旨在提供更强大的安全性和更好的保护,以满足不断增加的网络威胁。5、192位加密密钥:WPA3支持192位的加密密钥,相对于WPA2的128位密钥,提供了更高级别的安全性。

2023-08-24 20:56:27 1154 1

原创 无线网络通过mac层接入信道的原理

4、时分多址(TDMA)和频分多址(FDMA):除了竞争型接入,还有其他方法,如时分多址(TDMA)和频分多址(FDMA)。3、帧交互和ACK:在CSMA/CA中,设备发送数据帧后,接收方设备会发送一个确认帧(ACK)来确认接收。为了避免碰撞和冲突,MAC层通常使用竞争型接入机制,其中设备在发送数据之前先监听信道的状态,以确定是否有其他设备正在发送。在无线通信中,MAC(Medium Access Control)层的主要任务是协调多个设备在共享的无线信道上进行访问,以确保有效的数据传输。

2023-08-24 15:58:18 465 1

原创 无线网络传输ampdu的原理

一旦决定要聚合数据帧,发送端将这些数据帧合并成一个较大的AMPDU。这是通过将多个数据帧的内容连接在一起而实现的,但是帧头信息通常只保留在聚合的AMPDU的开头,从而减少了帧头的重复。通过将多个数据帧合并成一个AMPDU,可以减少帧头信息的冗余传输,降低了通信开销,从而提高了吞吐量和性能。6、帧解聚合:接收端根据AMPDU帧头中的信息,将AMPDU中的数据帧解聚合成单独的数据帧。3、AMPDU帧头:AMPDU的帧头包含有关整个聚合帧的信息,例如聚合帧的长度、传输速率和接收器地址。

2023-08-24 15:38:38 973 1

原创 linux 内核网络Publisher-Subscriber Pattern学习

Linux内核中的发布者-订阅者模式(Publisher-Subscriber Pattern)是一种用于实现事件通知和处理的机制。它通常用于内核模块之间的通信和事件处理,以及用户空间应用程序与内核之间的交互。该模式使得不同的组件能够松散地耦合,以便它们能够以一种高效且灵活的方式共享信息。在这个模式中,发布者负责生成事件或消息,而订阅者则注册以接收感兴趣的事件,并在事件发生时执行相应的操作。

2023-08-24 04:34:13 80 1

原创 Linux内核RCU锁学习

在读操作中,我们使用rcu_read_lock()获取读取许可,并在完成后使用rcu_read_unlock()释放。在写操作中,我们使用synchronize_rcu()来确保写操作的同步,以便在写操作完成之前不会执行读操作。在Linux内核中,RCU(Read-Copy-Update)不是一种传统的锁,而是一种并发控制机制,用于实现读多写少的情况下的高性能并发操作。synchronize_rcu():这个函数用于等待所有已经开始的RCU读操作完成,以确保写操作的数据更新不会被读操作引用。

2023-08-24 04:02:23 588 1

原创 802.11e EDCA介绍

QoS支持: 802.11e引入了四个不同的访问类别(Access Categories,ACs),分别是Background(BK)、Best Effort(BE)、Video(VI)和Voice(VO),用于区分不同类型的数据流。这些不同的AC允许不同级别的服务质量,例如实时音频和视频流可以获得更低的延迟和更高的带宽。总之,802.11e EDCA是一种在802.11 WLAN中实现QoS支持的机制,它通过引入不同的访问类别、竞争窗口控制和抢占权来确保不同类型的数据流能够获得适当的服务质量。

2023-08-24 03:07:18 733 1

原创 linux学习,使用socket在同一个main函数里进行进程间通信

pthread_join 函数是 POSIX 线程库中的一个函数,它的主要作用是等待一个指定的线程结束执行,然后将该线程的退出状态(返回值)返回给调用者。1、等待线程的结束:当一个线程在执行完毕后,通常会保持在"已终止"状态,不会立即释放相关资源。下面是一个示例,在这个示例中,主线程创建一个新线程,然后使用 pthread_join 等待新线程的结束。2、获取线程的返回值:线程在执行结束时可以返回一个值,这个值可以由 pthread_join 返回给主线程或其他等待线程。这允许线程之间传递信息和结果。

2023-08-23 01:33:53 55

原创 用C语言编写的广播包收发程序

这两个程序分别用于发送和接收UDP广播消息。client端将一条消息发送到指定的广播地址和端口,而server端则监听该端口,等待接收广播消息。在实际应用中,还需要确保网络配置允许广播通信。下面是使用C语言编写的一个发送UDP广播包的程序和一个接收UDP广播包的程序。这两个程序可以在Linux环境下运行。

2023-08-22 18:44:08 733 1

原创 wifi射频校准需要用到的设备

wifi射频校准需要用到的设备

2023-08-22 13:35:26 514

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除