分类 默认分类 下的文章

聊聊 GCC 中的 int 类型和字节对齐


目录 [隐藏]I. -m64II. -fpack-structIII. _attrribute_IV. 结论 聊聊 GCC 中的对齐最近看到一个问题,在 64 位操作系统中。实际测试环境 Ubuntu 22.04,GCC 11。struct test{ long a int b; char c }问 sizeof(stuct test) =?当然我知道这道题想考察的 int/long 定义以及对齐问题,之前编码也不会太在意这类似问题,直接打印出来就行,但是作为考题这里有诸多不严谨地方。我们好好探索下。不管三七二十一,直接编译打印。$ gcc te...

Thread 路由协议


目录 [隐藏]I. 5.9.1 路由数据库5.9.1.1 路由器 ID 集5.9.1.2 链路集5.9.2 路由集5.9.3 Leader 数据库5.9.4 链路裕量和链路指标5.9.5 路由成本和下一跳5.9.6 循环和循环检测5.9.7 发送 Advertisement5.9.8 处理 Route64 TLVs5.9.9 路由器 ID 管理5.9.10 路由器 ID 分配5.9.11 在链路超时之前发送链路请求II. 5.10.1 Thread 网络内的单播数据包转发5.10.1.1 完整 Thread 设备转发5.10.1.2 简化 Thread 设备转发5.10.1.3 使...

Wi-Fi 6 OFDMA 测试报告


目录 [隐藏]I. 你的 Wi-Fi 6 路由器缺少什么? OFDMA介绍什么阻碍了 Wi-Fi 6 的发展?更多关于 RUs 的信息OFDMA 测试总结II. OFDMA 究竟是否有效?第一部分介绍测试平台 V2是否支持 OFDMA?最佳情况无限比特率改变优先级III. OFDMA 究竟是否有效?第2部分介绍延迟效率吞吐量总结 免责申明:本文翻译自 smartnetbuilder 系列 OFDMA 测试文档,建议直接查看原文。What’s Missing From Your Wi-Fi 6 Router? OFDMA、Does OFDMA Really Work? Pa...

跨源资源共享(CORS)


目录 [隐藏]I. 简单请求II. 预检请求III. 结论IV. origin 和referer 跨源资源共享(CORS)这里来聊聊跨源资源共享CORS(Cross Origin Resouce Share)。开局一张图,很多人错误理解跨源资源共享就是浏览器在访问服务器A(domain-a.com)获取的资源如果包含跨源服务器B(domain-a.com)资源的时候那么此时就需要跨源资源共享,所以我们需要配置我们的访问控制策略Access-Control-Allow-Origin 运行所有站点访问。但是为什么这里跨源资源共享是被服务器B控制的?原来这里这里跨源资源共享是...

GCC 未使用函数、变量和文件优化策略


目录 [隐藏]I. 样例II. 探索III. 结论 GCC 优化过于复杂,这里探索 GCC 对未使用的代码和变量以及文件的优化策略。3.10 Options That Control Optimization6.3.3 Reducing Size of Executables with Unused Subprogram/Data EliminationI. 样例如下两个文件。$ tree ├── main.c └── unused.cmain.c 文件内容如下。#include <stdio.h> // __attribute__((used, sect...

Linux capabilities


Linux capabilities对于权限细节参考man 7 capabilities;对于-+= eip操作符参考 man 3 cap_from_text;文档中命令setcap、getcap等都可以通过man命令查看;我需要在VS Code 调试NuttX应用,它的Sim应用需要cap_net_raw,cap_net_admin权限,否则就无法正常操作HCI设备。当然网上有一些帖子尝试将VS Code或者GDB运行在root用户,显然这样操作是非常不优雅的。所以这里尝试给需要调试的应用利用linux capabilities直接给可执行文件设置权限。$ sudo setcap 'c...

udp发送ip端口发送不可达


众所周知,udp是无连接的,所以忽略udp接收方状态,是否监听对应udp端口以及ip是否存在,直接向udp发送数据,会发生什么?为了搞清楚这个问题,我们尝试在局域网建立收发设备,然后抓包分析。端口不可达从抓包来看,udp数据正常发出。对端设备回复icmp指示端口不可达。ip 不可达当我们把接收端设备关机,此时udp数据正常发出,直到arp连续三次请求失败。此时抓包显示udp包已经不发送了。此时,我们跟踪sytem call 确定,发用户空间的sendto 接口仍然显示成功。sendto(3, "012345679abcdef\0", 16, 0, {sa_family...

一次无效的运维


目录 [隐藏]I. 恢复快照后不能上网II. 防火墙规则变化III. mac地址变化导致服务认证失败IV. 设备连接失败 这里记录一次无效的运维,称之为无效,更多的是我人为原因引起的。1月2号阿里云提示服务器执行恶意脚本,当时正在休元旦,直接忽略。1月4号上班的时候查看了完整提示,分析了启动上下文,确定服务器被redis恶意注入矿机脚本。能够被注入原因很简单,把无认证的redis直接暴露了在公网,因为该服务器是从其他公司过户过来,稳定运行了5年,接手后保持原来的端口安全策略也没有注意。http://65.108.48.150/f2201rr/f.sh第一时间分析了该脚本...

OpenID over OAuth2.0 详解


目录 [隐藏]I. OAuth2.0Spring Authorization ServerAccess TokensecurityII. OpenID OpenID over OAuth2.0 详解需要在Thingsboard上面加OAuth Server功能。如上是一开始的需求,但是随着深入理解,这里的OAuth Server并不正确,所以需要先科普知识。I. OAuth2.0对于OAuth ,参考OAuth2.0,里framework里面并没有定义OAuth Server 角色。它定义了4个角色Resource Ower;资源拥有者;Resource Server;资...

socat


目录 [隐藏]I. 地址规范地址关键字地址选项II. 样例远程访问目标机器的unix-domain socket监听unix socket重定向串口 socathttp://www.dest-unreach.org/socat/。提示:如下翻译来自 man 1 socat,未完待续……概述socat 是一个命令行工具,用以建立一个双向字节流交换数据。该字节流又可以被构造成不同地址类型,大量的地址选项也同样可以被作用于该流,因此socat非常强大。filan 是一个打印文件描述符的工具,已经被重构用以调试socat,当然,也可以另做它用。procan 是一个打印进程信息的工具...