第268章 两个技术疯子吵翻天,老板娘竟然带着骨汤来了?
深夜十一点。
星辰科技的办公室里,三台显示器的蓝光把整个房间切成几块阴影。
顶灯是惨白的日光灯管,亮得有点过分,像牙科诊所。
空气是实体的。
泡面桶、咖啡纸杯、沈初微喝了一半就忘记的大麦茶——几种气味搅在一起。
键盘声是这个房间里唯一有节奏的东西。
三个频率,此起彼伏,活像三台永动机在互相较劲。
沈初微的状态是最惨的那种。
她的眼睛里有血丝,那种从眼角往里爬的红,不是睡眠不足那种淡粉色,而是实打实的出血点。
她盯着屏幕,屏幕上是opus编码库的源文件,旁边开着三个终端窗口,一个跑模拟丢包测试,一个在实时输出延迟日志,还有一个……她已经忘了开来做什么的,但不敢关,怕关了有什么东西跟着没了。
她在解决一个很具体的问题:
在极端丢包环境下——丢包率30%,延迟200毫秒——opus编码的帧间补偿算法会产生“断断续续”的音频撕裂感。
她需要让这个撕裂感消失。不是掩盖,是真正消失。
这个问题本身不难,难的是在8kbps的带宽上限下让它消失。
8kbps。
沈初微第一次看到这个数字的时候,她以为王辰写错了。
她后来意识到他没写错。
所以她现在坐在这里,两天半没怎么睡,试图让代码服从一个违背物理直觉的要求。
她草稿纸上写满了参数,左上角有一个用力过猛戳穿纸面的圆圈,那是她上次算错的时候气到失手的痕迹。
她旁边,阿哲在做另一件事。
他屏幕上全是指针和内存地址,密密麻麻,他手速很快,敲代码的时候手腕几乎不动,只有手指在动,像在弹钢琴。
他在优化服务器的内存调度,目标是再压榨出5%的性能空间——这5%在外人看来毫无意义,但阿哲不这么认为。
他安静的时候比较难判断他是在想事情还是在生气。
此刻他是在想事情。
然后沈初微听到他忽然停下了键盘,哼了一声。
是那种发现了什么的声音。
"怎么了?"
沈初微下意识地问。
"没事。"
"你刚才哼了一声。"
"我哼什么了?"
阿哲没有回头。
"我只是在呼吸。"
沈初微:
"……好,行,自便。"
她转回去继续盯她的补偿算法。
三秒钟后,阿哲的键盘声又响了,比刚才快了一点。
王辰没有参与这段对话。
他坐在靠窗的位置,屏幕对着墙,沈初微和阿哲都看不见他在写什么。
他在重构p2p穿透模块的伪装协议——把数据包的特征抹干净,让运营商的流量识别系统看不出这是什么。
这件事需要足够细心。
每一个协议头的字段,每一个握手包的时序,都不能有规律。有规律就会被识别,被识别就会被封。
他已经推翻重来过两次了。
第一版太依赖tls握手模拟,特征太明显。
第二版在传输层做了混淆,但负载太高,在移动网络上跑不起来。
第三版……他刚开了个头。
他现在的思路是把数据包做成跟普通http请求一模一样的东西——不是模仿,是在结构层面完全重写一套协议,让它天然长得像http流量,而不是套一层外衣。
这需要时间。
他低着头,把一行注释写完,停了一下,看了看时钟。
十一点零七分。
白板上,阿哲之前画的系统架构图还在。
那些潦草的线条在日光灯下显得更乱,但王辰看一眼就能把整张图的逻辑转换成代码结构,这是他一直保留的本能。
他转回屏幕。
手指重新落在键盘上。
他们三个人就这样坐着。
没有人说话。