以梦为马,诗酒趁年华
孟梦
01
缘分,妙不可言
第一次听说华为是大二的时候,我所在的社团会协助很多企业在学校里进行招聘宣讲以及笔试、面试等活动。那时的华为还不是如今这般因消费者业务而家喻户晓,招聘会上最热门的还是IBM、Intel等外企,或是中广核这样的电力能源公司。
一次,社团的朋友问我:“毕业以后想去哪里?”
我手中刚好拿着华为招聘会宣传单,于是半开玩笑的说:“华为吧,专业也对口!”
朋友不可思议地看着我:“为什么要去华为啊?外企不好吗?”
我扬了扬手中的宣传单:“名字很好,大有所为!”
说实话,当时对华为并不是很了解。
读博士时,华为的消费者业务异军崛起,2012实验室在学术界名声大噪。大多数公司是需求驱动或者应用驱动,少有像华为一样投入纯粹基础科学研究的。我觉得,华为投入大量资金给2012实验室做基础科学研究,这是大企业的气量,值得敬佩。
在计算机网络、无线通信领域的各类国际会议里,华为也是我见过赞助最多的公司之一。2014年,我中了一篇顶级会议的Poster(作者贴一张海报,有人感兴趣会到该作者的海报前讨论),但学校一般只会报销论文的参会费。本已打算自费参会,这时,导师给我转发了一个链接,说华为有提供学生交通赞助费。填写申请表单后,很快便收到了批准邮件。虽然因签证原因最后未能成行,但是我一直对华为心怀感激。
找工作的时候,互联网行业如日中天,很多人劝我换个方向:“现在做AI算法不香吗?”诚然,AI算法是大热,但我心中真正想要做的是,坚持多年的研究方向,去更大地发挥自己的价值为万物互联时代的到来而努力。于是,华为成为了我最终的选择。
2019年初,我加入了华为上海研究所,进入终端通信协议技术部,从事旗舰手机的Wi-Fi算法研发工作。
02
“孟氏”猜测大法
新员工时期是短暂而快乐的,一切都充满了新鲜感,但是之后却是一段略微迷茫的时光。
2019年,华为手机在销售榜上一骑绝尘。项目需求一个连着一个,每个人都处于忙碌的状态,而我却显得有些“清闲”,与周围的同事相比显得格格不入。
从预研到方案落地,注定不是个短期的过程。看着周围同事的需求实现纷纷在产品中落地,而我还在各种各样的协议分析和算法分析中摸索,内心也渐渐充满了不安与焦虑。
我的第一个绩效考评不会很差吧?
纯粹学术研究的部门会不会更适合我的节奏?
……
但这些想法转瞬即逝。我很清楚自己的长期任务是什么——做Wi-Fi的抗干扰算法预研,让华为手机的Wi-Fi功能在干扰场景下有更好的体验。我也知道,自己在做有价值的事情,还有很多知识需要我去探索。我选择华为的初心是希望能够将所学在实际中应用,适配到更多的产品中,哪能这样轻易放弃?我不再纠结即将到来的绩效考评结果会是什么,而是沉静下来去学习、去沉淀。
在这个过程中,我慢慢发现了更多“新大陆”。博士期间,我读过很多Wi-Fi协议,学习过大量Wi-Fi通信或无线系统相关的论文,也做过小规模的仿真或系统,但是我却未曾知道,产品中的Wi-Fi是如何运作的。没想到这样的机会很快来了。由于和海思深度合作的机会,部门对我开放了相关文档和源代码。得以近距离接触驱动代码,我就像一只落入米缸的小老鼠一样快乐,获取新知识的满足感和兴奋感快速弥补了焦虑和迷茫。
不过,从零开始啃Wi-Fi Driver(驱动)代码属实不易,太多的目录、海量的文件,令人眼花缭乱。最开始是因为业务需要,去阅读抗干扰相关的算法代码,从已知的结果一步步反推代码中的每一步操作,从而梳理清楚代码是如何组织的,比如重要结构体的定义、各种模块之间的调用关系。这就像推门进入了一间伸手不见五指的漆黑房间里,点亮一盏盏小灯,慢慢看清了部分的细节。
出于浓厚的兴趣,我开始在工作之余对代码进行了更进一步地精读。通过代码的目录结构和每个源码的文件名推敲其大致的功能,并与Wi-Fi协议一一对照。整理出一些感兴趣的模块,比如帧的发送与接收、消息命令的传递机制、低功耗协议等等,然后分模块进行阅读和梳理。
当然,过程中我也会有很多问题。感谢海思的同事有问必答,但频繁请教,会打扰到他们工作,我也非常不好意思。关于这些问题,我自己能做什么?
我开始尝试着在阅读代码时使用“孟氏”猜测大法,猜文件名、函数名、变量名的意图,猜某个分支的意图,猜某段代码的意图,并结合实际的手机调试打印日志信息来验证猜测。
读得越多,猜得越多,经验越多,代码阅读的效率越高。渐渐,房间里的小灯被逐步点亮,基本上能够照亮大半个房间了。阅读过程中的问题、猜想、重点都被记录下来,不知不觉已经写了上百页的笔记。
最后,我跳出了一句一句的分析,开始画整体的框架图和流程图,将原来笔记里零散的模块系统串联起来,输出了对于整个Wi-Fi MAC(媒体接入控制)层代码的分析和总结。原来漆黑房间,此刻亮如白昼。
这段学习经历,为我后续能主导负责Wi-Fi全连接自研技术项目奠定了坚实的基础。不由感叹:认真做过的每一件事情都不会是多余的,都会在未来发挥它的价值。
03
机遇偏爱踏踏实实的工作者
我是抱着“发挥自己价值”的心愿加入华为,而华为把我小小的希望具化成宏大的愿景:“把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界”。
那我研究的Wi-Fi通信方向还能进一步做什么?
大家说的Wi-Fi一般是指终端设备(如手机)与路由器的连接,例如,我们的手机可以通过路由器上网听音乐。但随着万物互联概念的兴起,我们更关注各个终端设备之间的通信:手机与手机之间通信,如分享传输文件;手机与平板之间通信,如手机投屏到平板;手机与智能家居间的通讯,如通过手机控制家里的智能台灯……这种通信方式我们一般称为Wi-Fi的点对点通信。
安卓系统的终端设备一般通过P2P(点到点)协议来实现这种点对点的通信机制,但是这种通信机制的角色限制,会导致通信非常不灵活。举个例子,假设你和同事在会议室,都将手机内容通过多屏协同应用投屏到平板或者PC上办公,这意味着你们的手机分别和平板建立了P2P连接。这时,如果你需要给同事通过“Huawei share”分享一份文件,基于目前P2P的协议框架是无法实现的,你们必须先断开多屏协同,才能分享文件,再重新进行投屏,这无疑是非常不方便的。
有一次,TDT(技术发展团队)经理段文杰组织家庭媒体传输协议研讨会,探讨智能化家庭媒体(大屏、音箱)的方向和技术,并提到了目前Wi-Fi组网的局限性,他问:“你们体验过友商的全场景特性吗?几乎是无感连接,非常流畅。”
TDT经理提到的痛点和我之前意识到的问题不谋而合,虽然当时我没有深入研究,但会议后,我回想到了之前看过的一篇论文。这是国外研究所对于友商点对点通信技术的介绍。不同于安卓系统所使用的标准P2P协议,友商自主设计了点对点私有协议,相比P2P协议具有更灵活的组网机制,这也是友商打造其娱乐、办公生态的重要基石。我立即分享了这篇论文,并谈了自己的一些理解和想法。
不久之后,我进入了Wi-Fi全连接自研技术的预研小组,开始了对Wi-Fi私有点对点新协议的探索。
当然,Wi-Fi全连接技术的预研并不是起于我的分享。事实上,很久之后我才知道,领导层未雨绸缪,布局各种业务连续性方案,全面提升Wi-Fi体验就是其中一项重要方案。这主要是因为:其一,Wi-Fi芯片相比蜂窝 Soc(系统芯片)来说,对半导体制程工艺要求较低;其二,Wi-Fi作为近场通信的首选技术,在全场景智慧生活中是必不可少的纽带。但是,我能够有机会进入预研小组,可能是源于对这篇论文的分享。
经过深入分析,我们发现,友商技术只有比较大的协议框架,算法基础相对薄弱,只给了我们一个对于全连接的思考方向,但仅仅实现全连接功能是远远不够的,突破创新,我们超越的方式就是要将性能做到极致。
一个好的Wi-Fi点对点通信协议必须要能够满足低时延、低功耗和抗干扰的要求,因此我们全组针对这三个性能要求分别展开了专项的技术研究:对于低时延,我们逐层分解了数据报文从应用层到物理层的时延,与业务层同事进行联合设计,设计各种自适应优化算法;针对低功耗,我们探索业务流量模型,实现了网络中设备灵活的休眠唤醒机制;而针对抗干扰,我们则对环境中的wifi干扰进行了检测分析,对于不同的干扰场景各个击破,解决组网内部和外部的无线干扰……
我们给自己定了一个小目标,那就是:让Wi-Fi连接真正做到Any Time,Any Where,Any Device,即用户可在任何时间、任何地点,采用任何终端设备连接Wi-Fi。
04
如何打动“天使投资人”?
一个技术项目就像是一个初创公司,当我们的方案成型之后,需要用Demo(原型)来演示我们的收益,来寻找“天使投资人”,也就是让产品线认可项目价值,并落地商用。因此,在基本完成技术方案的设计后,我们启动了对于技术方案的Demo演示计划。
“看你平时Wi-Fi驱动代码讲解得很好。你来主导负责Demo的软件设计和开发工作,怎么样?”PL杨建华征求我的意见。
一年前花费大量精力来学习研究Wi-Fi代码时,我并未想到,有一天,这段积累能够让我有能力站出来负责一个项目。接到这个任务后,我深感压力和责任重大。我们需要在不到一个月的时间内完成Demo,而组里的同事大多是刚从蜂窝转型Wi-Fi,对于Wi-Fi代码不甚熟悉。
首先,要解决demo如何演示的问题。如何深入浅出地让大家理解我们的思想?
Wi-Fi全连接自研技术项目,目标是要能够实现终端设备之间的任意互联。关于Demo,我们最初的想法非常朴实:通过投屏业务来展现这种连接关系,根据抗干扰方案的设计,集中式地对近场内(比如一间会议室内)的所有点对点通信进行合理的信道分配,让它们都能够互不干扰地稳定通信。于是,我们计划演示一个会议室场景的8路投屏,投屏过程中每路都不会发生卡顿。
然而,部门主管们听过我们的Demo剧本汇报后泼了冷水。
“这样的演示,首先没有重点,非常平淡。对于不了解Wi-Fi空口传输的人来说,可能认为即使没有这个方案,投屏也不会发生卡顿?其次,也不能展示出我们方案的技术点。”
“除Huawei设备之间的相互干扰外,如果有来自其他设备的Wi-Fi干扰外会怎么样?也能保证无卡顿吗?”
当Demo方案被打回来时,我们已经开发了50%,而距离演示时间只剩2周。重新设计方案意味着之前大部分工作都成为无用功。
但是我们没有气馁,而是痛定思痛,重新开会讨论方案,反复琢磨。
“怎么展示我们的信道评分算法呢?太抽象了啊!”
“要不搞个APP显示窗?把每个信道的质量分数实时地显示出来?就像频谱分析仪一样,实时滚动一定很炫。”有人提议。
“可以啊,还可以在APP上加个开关控制算法,关闭时算法不生效,打开后生效,这样还可以对比效果。”大家顿时来了精神。
“完美,那么问题来了,谁会做APP?”
……
大家群策群力,在离演示汇报还有10天时,最终定稿了Demo的演示剧本。
我们先演示两部手机向一个平板分别投屏,视频流畅,展现多路投屏技术。同时,在投屏过程中通过一个小窗口,展示每个信道的信道质量,这是对于信道建模和干扰检测算法的演示。
接下来,我们在投屏所在的信道上叠加一路干扰,这时投屏视频出现了明显的卡顿,模拟用户在实际使用过程中可能发生的状态;而当我们打开抗干扰方案开关后,投屏迅速恢复流畅,这是因为算法对于投屏信道进行了新的分配,投屏切换到了一路没有干扰的信道上。
这样的Demo故事简单易懂,深入浅出,实际地解决了用户的痛点问题,得到了部门主管的赞许。
吸取上一次盲目开发而被迫返工的教训,尽管截止时间近在眼前,我们没有着急启动开发,而是花费了大量时间讨论Demo的软件详细设计。每一次讨论,反复迭代,对齐时序、流程、数据结构。正所谓“磨刀不误砍柴工”,这些细节的讨论,使得每个人都非常明确自己分工的代码流程,后续高效地完成了开发工作。
我们的演示涉及到多个领域。当时,商用交付工作的节奏也很紧张,要调度其他领域资源协同参与我们技术项目Demo调试不太现实。这逼得我们不得不主动地去拉通解决端到端全流程的问题:看临近的日志,看蓝牙的日志,看固件的日志,分析UDP(用户数据报协议)的报文,分析物理层的报文……
“投屏又失败了呀,心态崩了!”
“别慌,稳住!我们一定能赢!”
大家相互鼓励。
很多次,我们半夜一起在上研所东门打车回家,筋疲力尽。若干年后,也许我不再记得当时的艰辛,但却忘不了那时头顶的星光。
个人的力量是有限的,团队的力量却可以无限。我们完成了Demo设计、代码开发和调试,并在各产品线的汇报中都获得了好评。目前,该技术项目已经落地HarmonyOS 3.0,我们的全连接技术将成为鸿蒙OS分布式软总线的重要通信基石,为“1 8 N”的全场景智慧生活提供高品质的通信体验,非常期待大家能在Harmony 3.0和相关产品中体验到“Any Time,Any Where,Any Device”的Wi-Fi连接,多设备、无感流畅切换和连接的Wi-Fi体验!
05
写在最后
如果让我总结这段经历,我想了很久,还是觉得老板在《致新员工书》中说的两段话非常贴切:
第一,“实践再实践,尤其对青年学生十分重要。只有实践后善于用理论去归纳总结,才会有飞跃的提高。要摆正自己的位置,不怕做小角色,才有可能做大角色。”通过入职后不断学习和实践,理解算法在实际产品中的应用,让我完成了从一个学术型博士到工程师的转身。
第二,“做任何一件事,对您都是一个学习和提高的机会,都不是多余的,努力钻进去兴趣自然在。机遇偏爱踏踏实实的工作者。”即使在最初漫长的预研探索中,我也没有放弃自己,而是坚持学习各种知识,坚持阅读论文,坚持总结积累,这也让我能够获得一些宝贵的机会,更能够以充分的技术准备来拥抱机会。
在全连接技术项目后,我们对于极致通信体验的追逐仍未停止。为了让用户更灵活、更便捷地使用周围的智能设备,目前我们正致力于探索更多的交互方式,比如声音、手势、动作、口型等,赋予智能设备更多的智慧,让它们能更好地理解用户的意图。
以梦为马,诗酒趁年华,我会永不停歇地奔跑在追梦路上。
作者 / 孟梦
来源 / 华为人
转载需注明作者及出处
,