- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 Android系统中定位被占用端口号的进程
端口13400被占用导致DOIP通信失败。因生产版Android无法root,常规查进程方法受限。通过netstat -apne | grep 13400定位到UID为10088,使用top -u 10088确认为iqy进程(u0_a88)。杀掉该进程并清除数据后,再次检查确认端口已释放,通信恢复正常。
2026-11-08 17:05:23
12
原创 [TC8测试]ARP_48
本测试验证DUT动态ARP缓存条目在空闲超时后能否正确删除并触发重查。通过清空ARP表、学习映射、等待超时后发送UDP报文,检测DUT是否重新发起ARP请求。非UT方法中,调整内核邻居参数并监控ARP状态变化,结合ping与iperf交互,Wireshark捕获显示超时后确有ARP请求发出,证实老化机制符合RFC 826要求。
2026-11-08 16:34:08
23
原创 [TC8测试]TCP_UNACCEPTABLE_04/006
测试验证TCP在ESTABLISHED状态下,接收到序列号超出窗口或ACK不可接受的数据段时,能否正确发送空ACK并维持连接。通过UT及非UT方法,分别模拟不可接受ACK与窗口外SYN场景,结果均显示DUT能返回正确ACK且连接状态保持不变,符合RFC 793要求,测试通过。
2026-11-08 15:59:01
25
原创 [TC8测试]TCP_PROBING_WINDOWS_05
本测试旨在验证DUT在接收方窗口长期为零时,能否在等待一个RTO周期后主动发送首个零窗口探测包。通过使DUT进入ESTABLISHED状态并发送数据后,测试端通告窗口为0,观察DUT是否启动持续定时器,定期发送含1字节数据的探测报文。根据RFC 793要求,窗口归零后发送方必须发起零窗口探测,确保连接状态检测。非自动化测试中,通过Ubuntu配置网络环境、编译服务端程序并使用Wireshark抓包分析,验证DUT行为符合规范。
2026-11-02 10:50:34
167
原创 [TC8测试]TCP_OUT_OF_ORDER_02
本测试旨在验证DUT是否实现TCP延迟确认(Delayed ACK)机制,且延迟时间不超过0.5秒。通过UT与非UT两种方法,在DUT处于ESTABLISHED状态时,连续发送两个数据段,观察其是否合并回复单个ACK。结果符合RFC 1122要求:延迟确认生效且延迟小于0.5秒,证明DUT正确实现了该机制。
2026-11-01 15:37:54
130
原创 [TC8测试]TCP_FLAGS_PROCESSING_06
本测试验证TCP在TIME-WAIT状态下对重传FIN段的响应能力。通过模拟ACK报文被丢弃,使DUT持续收到重传的FIN+ACK,结果表明:DUT在2MSL超时后仍能正确回复ACK,且2*MSL计时器被重新启动。报文分析与netstat监控均证实该行为符合TC8规范,证明了TCP在TIME-WAIT状态下的健壮性。
2026-11-01 15:24:40
123
原创 [TC8测试]TCP_FLAGS_INVALID_13_Flag SYN,ACK
本测试验证DUT在LAST-ACK状态下收到非法SYN+ACK(序列号越界)时的处理行为。通过构造特定网络环境,使DUT进入LAST-ACK状态后,发送非法SYN+ACK报文,预期DUT应回复正确ACK确认序列号,并保持在LAST-ACK状态,符合RFC 793及TC8要求。测试涵盖UT与非UT两种方法,确保协议栈实现合规性。
2026-11-01 14:51:20
164
原创 [TC8测试]TCP_CALL_ABORT_03_03
测试验证DUT在TIME-WAIT状态下执行ABORT命令时,能否立即关闭连接。根据RFC 793,ABORT应立即发送RST并进入CLOSED状态。UT测试中DUT未发送RST,不符合要求;非UT测试中,通过Ubuntu与DUT通信,Wireshark抓包显示DUT在ABORT后正确发送RST,进入CLOSED状态,符合TC8规范。结论:DUT在特定场景下可正确响应ABORT,但需确保实现符合标准。
2026-10-03 15:57:12
230
原创 Realtek ACL配置——丢弃双tag报文实测总结
<think>我们只需要根据内容生成摘要,≤150字。内容关于ACL规则测试双Tag报文,不同ComboIndex对应不同TPID组合,结论是00C0掩码匹配外层0x8100内层非标准,0080掩码匹配外层非标准内层0x8100,00C0不能覆盖外层非标准内层标准。摘要需简洁概括。</think>根据实测,ACL规则通过Field 7和Customized字段组合,可精确过滤不同TPID的双Tag报文。其中,00C0掩码匹配外层标准0x8100、内层非标准(如0x88A8/0x9100)的报文;0080掩码
2026-09-06 21:30:00
327
原创 Realtek ACL配置——UDF深度解析与配置总结
<think>我们根据要求生成≤150字的摘要。内容是关于Realtek ACL配置中UDF的解析与总结。摘要需概括核心机制、偏移单位、有效性标志、示例要点等。字数限制严格。</think>本文解析Realtek ACL中UDF机制:从报文任意位置提取2字节匹配,偏移值单位为“字”(×2得字节数),并用Offset Valid防止短包误匹配。通过示例说明IPv4偏移100字节、内层标签穿越外层4字节等配置,强调槽位号与偏移量区别及设置有效性标志的重要性。
2026-09-06 15:48:46
234
原创 fdbus4.2 timer的使用
文章介绍了fdbus中的定时器实现,主要包括三个类:CSysLoopTimer、CBaseLoopTimer和CMethodLoopTimer。CSysLoopTimer是基础定时器类,提供enable()和config()方法管理定时器状态和时间参数,定时器按到期时间排序。CBaseLoopTimer继承前者,简化了定时器使能/禁用接口,并区分单次/重复定时模式。CMethodLoopTimer进一步封装,允许直接绑定类成员函数作为定时回调。关键机制包括定时器列表管理、重复触发标志处理和回调执行流程。
2025-07-24 21:00:00
570
原创 [FDBUS 4.2]fdbus消息发送失败后的流程处理
本文梳理了fdbus消息发送失败后的处理流程。消息以CFdbMessage封装并通过CBaseJob队列处理,发送失败达到重试上限后会设置错误标志位。CFdEventLoop据此标志位触发CSysFdWatch删除,导致CFdbSession析构。若客户端设置了重连标志,则重新向name_server请求服务端地址并建立连接,完成自动重连机制。整个流程实现了消息发送失败后的自动恢复处理。
2025-07-20 17:00:00
313
原创 [FDBUS4.2] watcher的使用
本文分析了fdbus框架中watcher机制的工作原理,重点介绍了三种watcher的实现方式。首先阐述了CFdbContext线程通过poll()方法触发消息收发的机制,详细描述了pollfds的构建过程。然后分别分析了三种核心watcher:CServerSocket负责服务端绑定和监听,CFdbSession处理消息收发和回调触发,CNotifyFdWatch用于任务队列通知。文章通过时序图和代码片段展示了watcher的初始化、事件注册和处理流程,特别是flags标志位在poll触发中的关键作用,以
2025-07-18 21:00:00
998
原创 [FDBUS 4.2]CFdEventLoop和CThreadEventLoop类的功能
本文分析了CFdEventLoop和CThreadEventLoop两种事件循环的实现机制及其关联关系。CFdEventLoop由FDB_CONTEXT创建,通过poll方法触发I/O处理,包含数据接收(CFdbSession)和发送(CNotifyFdWatch)两种处理流程。CThreadEventLoop由工作线程创建,通过轮询dispatch()处理任务队列和定时器。两种事件循环通过异步消息进行协作,其中客户端回调方法从CFdEventLoop迁移到工作线程的CThreadEventLoop执行,避
2025-07-17 20:00:00
972
原创 QNX端bridge网桥转发功能
摘要 本文探讨了在QNX系统中限制ARP Announcement报文传播范围的方法。通过建立网桥(bridge)配置,验证了不同网桥之间的报文隔离效果。实验采用Ubuntu主机连接QNX系统,通过tcpdump抓包分析发现:同一网桥内的网卡(emac0、vp0_la0、vp3_la0)会泛洪接收ARP报文,而不同网桥的网卡(vp4_la0)则不会收到该报文。结果表明,利用QNX的网桥功能可以有效控制ARP报文的传播范围,实现不同网桥间的报文隔离。
2025-07-16 20:00:00
354
原创 MSS、MTU、TSO的关系
摘要: MTU(最大传输单元)指数据链路层允许的最大数据包大小(以太网默认1500字节),影响IP层数据传输是否需要分片。MSS(最大报文段长度)是TCP协议确定的应用层最大数据分段,计算方式为MTU减去IP和TCP首部(通常1460字节)。TCP连接时会协商双方MSS最小值作为传输标准。TSO(TCP分段卸载)技术将数据分段任务交由网卡处理,降低CPU负载。可通过ifconfig或ethtool命令查看和调整MTU、MSS及TSO开关状态,优化网络性能。
2025-07-15 20:00:00
1100
原创 Android以太网mDNS协议
MDNS全称Multicast DNSMDNS协议是一种在局域网内实现设备和服务自动发现的协议。具体来说,它允许设备在无需依赖中央服务器或配置文件的情况下,通过组播地址发送和接收DNS查询和响应,从而发现局域网中的其他设备和服务。MDNS协议基于DNS(协议,但使用组播地址来进行通信,因此能够在局域网中快速且高效地实现服务发现。当设备启动时,它会发送一个MDNS查询,询问局域网中是否有其他设备或服务可用。如果其他设备知道所需的名称,它们会回复一个MDNS响应,提供相应的IP地址。通过这种方式,
2025-07-12 18:00:00
800
原创 TCP keep-alive机制
keep-alive顾名思义是tcp连接保持连接活跃状态的一种机制,在QNX系统中, 有3个参数与之相关,分别是:net.inet.tcp.keepidle=3。
2024-03-13 15:54:18
850
原创 strcpy()函数崩溃解决
2、char * 类型的value一开始指向了一块字符串常量(“test”),本质上指向的是字符串常量第一个字符的地址,并未分配内存,因此调用带内存操作的strcpy()方法时会崩溃。3、char [50] value将value定义为长度为50的数组,本质上给value分配了一段连续分配的地址。今天在运行如下代码时出现了崩溃现象,定位到时strcpy()函数崩溃。1、strcpy()函数只对已分配内存的字符串变量有效。
2024-03-05 16:44:15
602
原创 以太网基础知识——PHY,MAC,MII,switch
在以太网开发中,常常会听到一些专业名词,例如PHY,MAC,MII,switch,下面是解释。
2023-09-03 14:10:02
7292
原创 Wireshark的Window,Calculated window size,Window size scaling factor
3.所以window size value表示报文的值,calculated window size表示放大后的值,也就是实际可用的值,由于TCP的头部窗口字段只有16bit,最多表示64k(65535),为了表示更大的窗口,使用了可选的放大倍数。1.在TCP三次握手的时候在SYN或SYN,ACK包中,通知options可选信息,告知对方将使用放大倍数。之后抓包发现,首次握手连接的SYN包的win大小依旧是65535(默认值),之后的包中的win会变大。然后通过点击包的详情,发现如下。
2023-03-23 14:40:27
4549
2
原创 AIDL开发指南
一、AIDL基本介绍AIDL意思即Android Interface Definition Language,翻过来就是Android接口定义语言,是用于定义服务端和客户端通信接口的一种描述语言,可以拿来生产IPC代码,从某种意义上说AIDL其实就是一个模板,因为在使用过程中,实际起作用的并不是AIDL文件,而是据此生产的一个Interface的实例代码,AIDL其实是为了避免我们重复写代码而出现的一个模板。设计AIDL这门语言的目的就是为了实现进程间通信。在Android系统中,每个进程都运行在一块独
2022-05-25 18:18:51
1800
原创 安卓HAL开发指南
安卓HAL开发指南1、介绍HIDL的全称是HAL interface definition language(硬件抽象层接口定义语言),在此之前Android 有AIDL,架构在Android binder 之上,用来定义Android 基于Binder通信的Client 与Service之间的接口。HIDL也是类似的作用,只不过定义的是Android Framework与Android HAL实现之间的接口。2、实现方式2.1 旧版传统HAL层Android 7.x和更早的版本中,hal
2022-05-25 17:06:34
13890
1
原创 wireshark的简单使用
1、wireshark介绍(1)、使用wireshark打开一个pcap文件时,可以讲time改变成实际时间(2)、数据过滤<1>、点击表头即可按照此条件排序(默认按照No.排序)<2>、使用过滤器使用Ctrl + F 快捷键,选择字符串,即可搜索(3)、一些小tips<1>、左侧实线表示一次会话的不同阶段<2>、√ 表示对应的请求/响应<3>、数据包大致结构链路层网络层传输层<4>、左侧小圆
2022-05-12 21:49:26
7481
原创 TCP/IP的层次结构及数据封装过程
1.什么是协议分层??拿打电话举个栗子:当我们在打电话的时候不同的地区有不同的语言,而不同地方的人进行通话时我们就形成了同一种语言–普通话这就是我们的语言协议;而在通信设备层,我们进行打电话的过程中通信设备读取数据就会有电话协议,实现相互交流;因此协议分层实质就是一种协议封装;对服务,接口,协议进行明确的划分,形成标准,便于使用;在这个例子中, 我们的协议只有两层;但是实际的网络通信会更加复杂, 需要分更多的层次;分层最大的好处在于 “封装” 。2.IOS七层参考模型:(1)什么是IOS七层参考模
2022-05-09 23:38:04
8000
原创 在gerrit上cherry pick多笔提交到一个仓库中
我们的要求是在dvr_service仓库上从其他分支cherry pick 两笔提交到release/b03chn_rel_sop_3_nobo分支这两笔提交分别如图所示如图所示,B02-5746的提交顺序在V35-68464前面所以我们先cherry pick B02-5746再cherry pick V35-68464点击CHERRY PICK按钮后出现了代码冲突这是正常的,因为是在同一笔仓库中提交了2笔,而前一笔还未入库,后一笔必然与前一笔冲突解决方法是将后一笔的base co
2022-04-26 00:31:22
4310
2
原创 Oracle VM VirtualBox虚拟机安装教程
文章目录前言一、Oracle VM VirtualBox在本文中的用途二、安装步骤1.准备2.使用Oracle VM VirtualBox设置虚拟机配置总结前言Oracle VM VirtualBox 是全球广受欢迎的开源跨平台虚拟化软件。使用该软件,开发人员能够在一台设备上运行多个操作系统,更快地交付代码。IT 团队和解决方案提供者可以使用 VirtualBox 来降低运营成本,缩短在本地和云端安全部署应用所需的时间。一、Oracle VM VirtualBox在本文中的用途用于编译gstre
2022-04-09 17:06:21
22453
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅