- 博客(27)
- 资源 (1)
- 收藏
- 关注
转载 IEEE802.11协议帧详解(转载)
省电模式:工作站处于休眠状态(信号发射功率放大器关闭),基站为工作站暂存帧,然后定时发送Beacon(信标)帧,休眠的工作站定时醒来,获取信标帧,然后解析即可知道自己在基站中是否有暂存帧。如果有,则发送PS-poll帧,而且一个PS-poll只对应一个暂存帧,工作站会一直发送PS-poll帧,直至所有暂存帧全部取出。该帧会记载帧的源MAC地址。区分源与发送端是必要的,因为802.11MAC会将应答发送给帧的transmitter(发送端AP),而较上层协议会将应答发送给帧的source(源)。
2023-11-18 14:01:46
7126
原创 生成coredump文件调试程序,排查程序段错误
当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。例如在一个嵌入式开发环境中,各方面的资源都是非常紧缺的,对于开启文件描述符的数量,分配堆栈的大小,CPU 时间,虚拟内存大小,等等,都有非常严格的要求。资源的合理限制和分配。不仅仅是保证系统可用性的必要条件,也与系统上软件运行的性能有着密不可分的联系。
2023-08-11 20:10:20
607
原创 内核ebpf基础知识
2014 年初,Alexei Starovoitov 实现了 eBPF(extended Berkeley Packet Filter)。经过重新设计,eBPF 演进为一个通用执行引擎,可基于此开发性能分析工具、软件定义网络等诸多场景。
2023-08-03 23:45:51
968
原创 内核Ftrace使用案例
用来跟踪 Linux 进程执行时的系统调用和接收所接收的信号,可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。:是一个 Linux 内核函数跟踪器,function tracer,旨在帮助开发人员和系统设计者可以找到内核内部发生的事情,从 Linux-2.6 内核就支持了。:Android tracer,使用 ftrace 来跟踪 Android 上层的函数调用。:Android 的 trace 数据分析工具,将 atrace 采集上来的数据,以图形化的方式展现出来。
2023-08-03 23:40:07
666
转载 Ubuntu用gparted给/空间和home空间扩容
今天拷贝资料,提醒home空间不足,用df -h 命令查看电脑发现当时装系统的时候,给home分配了371G然后现在已经用了98%了,而给/分配了275G,才用了30G,于是决定把/目录多余的空间分一点给home目录。
2023-08-01 22:54:21
2305
1
原创 基于SSH协议的内网穿透,访问内部笔记本电脑
1、公网服务器(本文选择阿里云服务器)2、内网笔记本电脑一台3、外网笔记本电脑一台4、在各个机器上安装ssh工具,外网电脑上本文采用MobaXterm软件5、保证ssh可以开机自启动。
2023-08-01 22:45:06
878
原创 TCP/IP协议基础知识整理
TCP传送的数据单元称为报文段,TCP报文段既可以用来运载数据,又可以用来建立连接,释放连接和应答,一个TCP报文段分为首部和数据部分,整个TCP报文段作为IP数据报的数据封装在IP数据报中,其首部的前20B是固定的,TCP首部最短为20B,后面有4N字节是根据需要而增加的选项,长度为4B的整数倍。(1): 各占2B,端口是传输层与应用层的服务接口,运输层的复用和分用功能都要通过端口实现。(2)
2022-08-19 20:38:23
2673
原创 内核网络数据结构-SKB
一个封包就存储在这里,所有网络分层都会使用这个结构来储存其报文,有关用户数据的信息(有效载荷),以及用来协调其工作的其他内部信息。这个结构体是Linux网络代中最重要的数据结构,代表已接收或者正要传输的数据包头,此结构定义在include/linux/skbuff.h头文件中,由巨大的变量堆(head)组成,试图满足所有人的需求。...
2022-08-18 19:40:38
2464
1
原创 linux内核更换与patch等常识
假如补丁头是使用p0 表示在当前目录下查找src/a/b/c/d/file使用p1 表示在当前目录下查找a/b/c/d/file使用p2 表示在当前目录下查找b/c/d/file使用p3 表示在当前目录下查找c/d/file使用p4 表示在当前目录下查找d/file使用p5 表示在当前目录下查找file不使用pn表示忽略所有斜杠,在当前目录下查找file。...
2022-08-13 20:56:56
1883
原创 Mellanox驱动加载与RoCE & soft-RoCE(RDMA)
处理器(cpu) 内存 I/o设备(外设)三者之间的关系(1)没有DMA参与的访问方式:假设I/O设备为一个普通网卡,为了从内存拿到需要发送的数据,然后组装数据包发送到物理链路上,网卡需要通过总线告知CPU自己的数据请求。然后CPU将会把内存缓冲区中的数据复制到自己内部的寄存器中,再复制到I/O设备的存储空间中。如果数据量比较大,那么很长一段时间内CPU都会忙于搬移数据,而无法投入到其他工作中去。CPU的最主要工作是计算,而不是进行数据复制,这种工作属于白白浪费了它的计算能力。......
2022-08-12 13:47:00
4141
原创 内核通知链(网络子系统为例)
1.Linux内核中各个子系统相互依赖,当其中某个子系统状态发生改变时,就。为满足这样的需求,内核实现了2.通知链只能用在各个子系统之间,而。组成内核的核心系统代码均位于kernel目录下,通知链表位于kernel/notifier.c中,对应的头文件为include/linux/notifier.h。3.事件通知链表是,,进行相应的处理。(类似于设计模式中的观察者模式,解耦)...
2022-08-05 19:33:14
1316
原创 堆栈基础常识
参考网站:安装教程方法2:补充内容动态开辟内存的几种方式C语言动态开辟的管理方式(malloc,calloc,realloc)相同点:malloc只是开空间,参数是要申请空间的字节大小calloc:1.开辟空间后空间会被初始化为0.(这个很关键)2.参数有两个,一个是申请元素的个数num,另一个表示单个元素类型的大小sizerealloc:realloc是进行空间大小调整的操作。(新的大小要大于原来的大小,否则会导致数据丢失)功能:先判断当前的指针是否有足够的连续空间,如果有,扩
2022-08-05 10:32:52
252
原创 Linux常用小知识(1)
服务管理方式有两种service和systemctl,systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动,systemd对应的进程管理命令是systemctl,systemctl命令兼容了service(即sytemctl也会去/etc/init.d目录下,查看,执行程序)/dev/null是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。所以,2>/dev/null的意思就是将标准错误stderr删掉。...
2022-07-16 14:35:36
488
原创 cmake学习笔记
cmake 是一个跨平台的自动构建工具(除了 cmake 之外,还有一些其它的自动构建工具,常用的譬如 automake、autoconf 等),cmake 的诞生主要是为了解决直接使用 make+Makefile 这种方式无法实现跨平台的问题,所以 cmake 是可以实现跨平台的编译工具,这是它最大的特点 。安装完成之后可以通过 cmake --version 命令查看 cmake的版本号。cmake 官方也给大家提供相应教程,链接地址如下所示:文档总链接地址: https://cmake.org/d
2022-07-11 19:29:51
315
1
原创 Linux 虚拟设备-docker网络通信原理与分析-网络命令空间
查看网络命令空间添加网络命令空间删除网络命令空间进入命令空间查看ip信息启动命令空间网络创建一对vethveth绑定到命令空间veth添加ip地址例子(直接相连):参考网站:Bridge与OVS网站(https://www.cnblogs.com/bakari/p/10613710.html)veth pair实战(https://blog.youkuaiyun.com/weixin_42758299/article/details/124499618)新增条目删除条目替换条目显示条目...
2022-07-09 19:46:21
369
原创 Linux 虚拟设备-docker网络通信原理与分析
命令清单:docker原理docker 让 veth1与veth2在同一个局域网内(bridge 充当二层交换机作用)docker1与docker2通信过程如下:实验拓扑创建veth-pair设备给veth0添加IP通过ifconfig可以查看到创建的veth设备路由表发送ping包第一次ping 10.70.2.11这个IP,此时arp表中没有相应记录,所以会发送一个ARP包当ARP包通过socket到达协议栈后,查询目的地址和系统路由,知道去10.70.2.11的数据包需要从1
2022-07-09 14:33:06
943
原创 kubernetes集群节点多网卡,指定特定网卡
部署kubernetes环境+网络组件flannel,没有选择指定的网卡, 导致flannel绑定到默认网卡,以至于kubernetes集群不能跨节点传输(ping 不通,可以通过bridge fdb show查看cnio维护的转发表,查看flannel.1的转发条目),为了确保转发到制定网卡上, 需要对kube-flannel.yaml文件修改......
2022-07-08 20:27:54
1759
原创 查看ubuntu 无线网卡名及加载的驱动
查看 ubuntu 上 pci的设备或usb的设备, 例如查看笔记本上是PCI接口的无线网卡,使用lspci 即可以查看, 查看无线网卡驱动,ethtool -i 无线接口名
2022-01-12 20:04:41
3361
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人