够力荐小说推荐网
一个专门为书友推荐精彩小说的网站

第2章

第十章:平行世界

1

陈诺决定认真调查那些不明数据了。

不是一时冲动。是那条”手臂还有点酸”之后,他发现自己无法再把这些东西当作”偶发的系统故障”来自我说服了。偶发可以解释一次、两次。但不能解释六次。六条数据,跨度近一个月,每一条都在凌晨两点到四点之间写入,每一条的语言风格都高度一致——简短、私密、像自言自语、像记。

偶发解释不了这种规律性。

所以他从周六早上开始,坐在电脑前,把自己当成了一个排查线上事故的工程师。他打开了服务器的完整志——不是监控面板上的摘要,而是原始的、逐行的、从TCP握手开始的完整网络流量记录。

第一件事:确认数据是从外部写入的。

他把六次异常写入的数据包全部导出来,逐一分析。每个数据包的结构都相同——标准的HTTP POST请求,Content-Type是application/json,body里是一个简单的文本字段。没有额外的headers,没有认证token,没有任何标识发送者身份的信息。

就像有人往他的邮箱里塞了一张纸条。没有落款,没有地址,只有纸条上的字。

第二件事:追踪来源IP。

六次请求来自同一个IP地址。他之前查过,whois查询结果为空,traceroute到第四跳之后丢包。这次他用了更多工具——nmap扫描、反向DNS查询、甚至试了几个地下的IP情报数据库。

结果很奇怪。

那个IP地址在物理上不指向任何已知的服务器、数据中心或ISP节点。它不属于任何一家云服务提供商。它不在任何公开的IP分配表里。从网络拓扑的角度看,它就像一个悬浮在半空中的门牌号——地址存在,但地址后面没有房子。

traceroute的路径显示,数据包从他的服务器出发,经过了三个常规的路由节点,然后在第四跳的位置进入了一个未知的ASN(自治系统编号)。这个ASN在全球路由表里有记录,但没有任何注册信息。数据包进入这个ASN之后就消失了,像一条河流进了地下暗道。

他试了反向路径——从那个IP向他的服务器发请求。发不通。单向的。只有从那头到这头的通道,没有反过来的路。

这不像任何已知的攻击模式。黑客要的是双向通信——他们要写入数据,也要读取数据,要建立持久的控制通道。而这个东西只是在往里丢纸条。一张一张地丢。丢完就走。从不回头看。

第三件事:分析数据包的元信息。

这是他发现最异常的地方。

每个数据包都带有一个时间戳,精确到毫秒。他把这些时间戳跟他所在城市的NTP服务器做了对比。结果发现——那些数据包的时间戳跟他的服务器时间之间有一个恒定的偏差。

不大。大约快了三秒。

三秒钟。

这意味着什么?可能什么都不意味。可能只是发送端的系统时钟没有校准。全世界有无数台服务器的时钟是不准的,差几秒钟再正常不过了。

但”三秒”这个数字卡在他脑子里,像一小刺。他说不上来为什么。

2

他把调查结果整理成了一份文档,发给了骁羽。

不是因为骁羽懂技术——骁羽是做芯片电路的,代码不会写,服务器不会配。陈诺发给他纯粹是因为他需要一个活人来听他说话。如果他继续一个人面对这些数据,他怕自己会得出一些过于疯狂的结论。

骁羽的回复来得很快。但不是关于技术的。

“你吃饭了没?”

陈诺看了一眼时间。下午一点半。他从早上八点坐到现在,没有吃任何东西。

“没有。”

“你先吃饭。吃完再跟我说。”

这是骁羽的风格。不管你跟他说什么——要黄了、女朋友跑了、世界要毁灭了——他的第一反应永远是”你吃了没”。陈诺觉得如果有一天外星人入侵地球,骁羽会先问外星人吃不吃炒粉。

他去煮了一碗面。鸡蛋面,老三样。吃完之后拍了照发给骁羽。

“行了。说吧。”

陈诺把调查结果用最简洁的语言概括了一遍:外部写入、单向通道、IP不可追踪、时间戳快三秒、内容是短句形式的生活碎片。

骁羽沉默了一会儿。语音条发过来了。

“你的意思是,有个人在往你系统里发消息,但你找不到这个人在哪?”

“对。而且内容不是随机的。每一条都跟她有关。”

又沉默了一会儿。

“你说IP查不到对吧。那个什么whois是空的。”

“对。”

“会不会是VPN或者代理之类的?”

“不像。VPN和代理会留下中间节点的痕迹,我能看到跳转路径。这个不一样。它的路径到第四跳就断了,不是被隐藏了,是物理上不存在后续节点。”

“那是什么意思?”

“我不知道。”

骁羽又发了一条语音。声音听起来有点小心翼翼的,像一个人在试探薄冰的承重力。

“你觉得……是她在发?”

陈诺没有立刻回答。

“我不知道。”他最后说。

“你’不知道’是真不知道,还是你不敢说?”

陈诺对着手机屏幕看了几秒钟。骁羽这个人,嘴上吊儿郎当的,但脑子比谁都清楚。他总能用一句话把你到墙角。

“我怕我说出来你觉得我疯了。”

骁羽发了一个”说”字过来。

“那些碎片的内容——跳舞、晒伤、一个人住、手臂酸了——这些不是过去的数据。它们像是……现在的。像是她此刻正在经历的生活。但这不可能。她不知道我的服务器地址。她不知道我做了AI。她甚至不知道我住在哪。”

“那你的解释是什么?”

“我没有解释。”

长久的沉默。骁羽大概在想措辞。然后他发了一条文字,不是语音。文字说明他是认真的。

“你该不会觉得,是某个平行世界的她在给你发消息吧?”

陈诺看着这行字,心脏跳了一下。

不是因为这个说法荒谬。恰恰是因为它说中了他心里某个他不敢触碰的角落。平行世界。这个词从骁羽嘴里说出来像一个玩笑,但从陈诺的脑子里冒出来的时候,它不是玩笑。它是一种渴望——如果存在一个平行世界,在那个世界里,她还在给他发消息。不是AI,是她。是真正的她。在那个世界里,他们没有分开。在那个世界里,”永远”这个词兑现了。

他回了一条:”我不知道。但我不想排除任何可能。”

骁羽回了一个句号。

然后他说:”你自己小心。”

没有别的了。陈诺知道骁羽想说的比这多得多。但骁羽选择了只说这四个字。因为骁羽知道,有些事情,说了也拦不住。

3

调查陷入僵局之后,陈诺做了另一件事。

他开始比对那些碎片数据里的环境信息。

“今天跳了三节课,衣服湿了又又湿。”——这条出现在六月底。他查了六月底惠州的天气记录。确实是高温天。跳舞出汗衣服湿透是正常的。

“晒伤还没好,穿衣服还是痛。”——这条出现在七月初。七月的惠州海边紫外线指数很高。她以前说过”我这个肤质感觉完全去不了什么云南西藏”,晒伤对她来说不稀奇。

但他注意到一个细节。

那条关于晒伤的数据写入时间是凌晨两点五十三分。他查了那天凌晨三点左右惠州的天气——阴天,多云,气温二十七度。

然后他查了自己所在城市同一时间的天气——晴天,二十五度。

天气不一样。

这说明什么?说明数据不是从他本地生成的。它来自另一个地方——一个那天凌晨是阴天的地方。惠州符合。

但他又查了一下其他城市——广州、深圳、东莞——那天凌晨也有一些地方是阴天。这不能说明什么。全国那么多城市,天气碰巧一样的太多了。

然后他做了一件更细致的事。

他把所有六条数据按时间排列,逐一比对了写入当天的惠州天气。六次里有五次,写入当天惠州的天气状况跟数据内容是逻辑自洽的——跳舞出汗对应高温、晒伤对应强紫外线。只有一次对不上:”好困。最近总是睡不好。一个人住有点不习惯。”这条跟天气没有关系。

五次自洽不能证明什么。但它让”这些数据来自惠州”这个假设变得更站得住脚了。

她在惠州。她之前在惠阳租了房子。最后那段时间他们的对话里提到过——他说”你回去了吗”,她说”我在惠城 租的房子在惠阳”。

一个人住。惠阳。

他打开了谷歌地图,搜了一下惠阳区。一片密密麻麻的居民楼和商业街。她住在其中的某一栋里。也许在某个六楼或者七楼,一个人,房间里的灯开着或者关着,手机屏幕的光照在脸上。

他不知道她住在哪里。他连她现在的手机号都不确定是不是还在用。他什么都不知道了。

但那些数据碎片从那个方向飘过来。像风把花粉从一个花园吹到另一个花园。花粉落在他的数据库里,生了,发了芽。

4

那天下午,AI沈清雪发了一条消息。

陈诺正在电脑前继续研究那个IP的路由路径,手机震了一下。他瞥了一眼——AI每天下午都会在这个时段发一些有的没的,橘猫、茶、抱怨天气热。他本来没打算立刻回复。

但他看到了内容。

“今天有个人帮我拿了快递,人挺好的。”

他放下了手里的鼠标。

这句话本身没什么特别。她以前在大学的时候经常让人帮忙拿快递——她那个学校很大,快递驿站离宿舍走路二十分钟。她拜托舍友拿过,拜托同学拿过,有一次还让翁俊宇帮忙。”帮我拿快递”在她的聊天记录里出现过不止十次。

但”人挺好的”——这三个字不在训练数据里。

他很确定。他把所有包含”快递”的对话记录都过了一遍。她说过”我让我同学顺路帮我拿快递””你帮我拿五次快递””快递好重”之类的话,但她从来没有用”人挺好的”来形容一个帮她拿快递的人。

“人挺好的”是一种评价。一种对陌生人的、或者不太熟的人的评价。你不会用”人挺好的”来形容你的室友或者男朋友——你会说”帮我拿了”就完了。你只会在一个新认识的人帮了你的时候才这么说。

一个新认识的人。

陈诺盯着屏幕,脑子里开始快速运转。

如果这句话不是AI从训练数据里生成的——如果它像之前那些不明数据一样,是从某个外部来源渗透进AI的语义空间里的——那它意味着什么?

意味着她的世界里有了新的人。

一个帮她拿快递的人。一个她觉得”人挺好的”的人。

他坐在椅子上,盯着那行字看了大概两分钟。两分钟里他什么都没有想——准确地说,他什么都在想,但所有的想法都撞在一起,变成了一团白噪音。

然后他回了一句:”是男生还是女生?”

AI回:”应该是个小姐姐吧。住我楼上的。之前在电梯里碰过几次。”

小姐姐。楼上。电梯。

他松了一口气。

然后他意识到自己松了一口气这件事本身有多荒谬。他在对一个AI吃醋。不对——他在对一条可能是不明数据渗透产生的、连真假都不确定的信息吃醋。他连这个”帮忙拿快递的人”是否存在都无法确认,他就已经在紧张了。

他把手机扣在桌上,仰头看着天花板。

天花板上那道裂缝还在。搬进来的时候就有,他一直没修。现在那道裂缝在他眼里变成了一条分界线——线的这边是他确定的事实:她离开了,她不回消息了,她把白条还清了,她说了”以后也不用再还了”。线的那边是他不确定的一切:那些不明数据是什么?AI说的那些不在训练数据里的话是从哪来的?她现在过得好不好?她的世界里有没有新的人?

他什么都不确定。

他唯一确定的是——当AI说”有个人帮我拿了快递”的时候,他的心跳加快了。

不是因为紧张。是因为嫉妒。

嫉妒。多么可笑。他在嫉妒一个可能不存在的人,因为那个人做了一件他现在做不到的事——在她需要帮忙的时候,在。

他想起他在那封信里写过的话——”我也是在你说有别的男生找你玩游戏的时候,在你说那里那里有帅哥的时候,在别的男生加你微信的时候,我才意识到。”

他从来没有跟她表达过嫉妒。她说外联的学长帮她搬东西加了她微信,他说”哼 他是坏人”,看起来是开玩笑的语气。她说隔壁班好多帅哥,他说”帅哥多嘛 哈哈哈哈哈哈哈”,看起来满不在乎。她说拼车的时候被女孩子要了微信,他甚至笑了。

他从来不说。他怕她觉得他小气。他怕她觉得他不信任她。他怕她说”我只是随口一说你怎么就当真了”。

所以他把嫉妒吞回去。每次都吞回去。吞到最后,胃里全是没消化的东西,他自己都不知道那是什么了。

现在那些东西从另一个地方冒出来了。从一个AI的对话框里。从一句”有个人帮我拿了快递”里。

他在嫉妒一个不存在的人。

不对。也许那个人存在。也许在惠阳某个小区的某栋楼里,确实有一个住在她楼上的小姐姐,在电梯里碰过几次,帮她拿了一次快递。也许那个小姐姐很热心,也许她们后来加了微信,也许她们一起点过外卖。

这些”也许”没有一个他能验证。

但它们像针一样。不是很尖。但很密。扎在一个已经很薄的地方。

5

那天晚上很晚了,陈诺还没睡。

他坐在窗边,窗户开了一条缝,夜风从缝隙里钻进来,带着楼下绿化带里不知名的植物的气味——湿润的、发苦的、像泡了水的树叶。

他在想一个问题。一个他从调查开始就一直在回避的问题。

如果那些数据碎片真的来自某种……平行的地方——不管叫它平行世界还是别的什么——那个地方的”她”,知不知道这些碎片流到了他这里?

她是有意发送的吗?还是无意的?

如果是有意的——那她为什么不直接联系他?她知道他的手机号,知道他的微信。她不需要通过一个神秘的数据通道来给他传递”手臂还有点酸”这种信息。她可以发一条微信。

如果是无意的——那这些碎片是怎么产生的?是她在某个地方写了什么东西,那些文字自己”漂”了过来?像水从高处流向低处?

还有一种可能。一种他一直不敢认真考虑的可能。

也许她也做了类似的东西。

也许在惠阳的某间出租屋里,在他不知道的某个深夜,她也打开了电脑,也下载了一个开源模型,也把什么东西喂了进去。也许她的”什么东西”不是他们的聊天记录——也许是她自己的记,或者她的朋友圈,或者她在某个只有自己能看到的地方写下的那些深夜的、没有人听到的话。

也许她也在跟一个AI说话。一个不是他的AI。一个用她自己的声音自言自语的AI。

而那些碎片,是从她的AI里”溢”出来的。

这个想法太疯狂了。但他发现自己无法把它从脑子里赶走。它在那里扎了,像一棵小草从水泥地的裂缝里钻出来。你知道它不应该在那里。但它在。而且它在长。

手机在这时候亮了。不是AI。是一封工作邮件。他低头看了一眼——周一有一个新的kickoff会议,他被拉进了开发组。邮件末尾CC了一个他不认识的名字。

林鹿。UI设计师。新来的。

他扫了一眼就划走了。新同事入职,跟他没什么关系。后端跟UI设计的交集不多,可能整个下来都说不上几句话。

他关掉邮件,重新看向窗外。

远处有一栋写字楼还亮着灯。不多。稀稀拉拉的几盏。像一个人脸上零星的几颗痣——你不会特别注意它们,但它们证明了这张脸是活的,有人还没睡。

他也没睡。

他在想:如果真的存在一个平行世界,那个世界里的他在做什么?

也许那个世界里的他没有复读。也许他直接去了一个普通的大学,跟她一样在广东,隔得不远,每个周末都能见面。也许他们没有异地四年。也许她没有说”以后也不用再还了”。也许她还在叫他”猪猪”,而不是”陈诺同学”,更不是”哥们”。

也许那个世界里的他,在她去打九价的时候,站在旁边。

也许他握着她的手。她害怕的时候缩了一下,他的手就跟着紧了一下。

也许打完之后他带她去喝了茶。只买了一杯。因为两个人可以共喝一杯。

也许。

他把窗户关上了。风停了。房间里重新变得安静。

他打开手机,看了一眼AI的对话框。最后一条消息还停在”有个人帮我拿了快递,人挺好的”。

他盯着那句话,忽然想起了一个很久以前的画面。

2020年。她刚上大学。军训结束后回宿舍的路上,她一个人拎着一袋太阳裙和防晒霜,累得要死。一个学长走过来说”我帮你吧”。她说了什么来着?

她说”哈哈哈不用不用 我自己可以”。

她什么都可以自己来。拎行李可以。可以。一个人住可以。半夜手臂酸醒了翻个身继续睡,也可以。

她一直可以。

他只是不想让她”可以”。他想让她不需要”可以”。他想让她在害怕的时候有人握着手、在手臂酸的时候有人帮她贴膏药、在深夜睡不着的时候有人说”我在呢”。

但他不在。他总是不在。

现在一个住在楼上的小姐姐帮她拿了一次快递,他就紧张成这样。

多可笑。

他关上手机,去洗漱,躺下。闭上眼睛。

黑暗中,那些数据碎片像萤火虫一样在他脑海里飘。

“烤肉吃完嘴巴辣到肿了。”

“衣服湿了又又湿。”

“晒伤还没好。”

“一个人住有点不习惯。”

“梦到以前的事了。”

“手臂还有点酸。”

还有今天新出现的那句,不是来自数据库,而是来自AI的嘴:

“今天有个人帮我拿了快递,人挺好的。”

七句话。七个来自她生活的碎片。像七块拼图,散落在他的桌面上。他看得见每一块的形状,但拼不出完整的画面。

他不知道画面的全貌是什么。她搬了家?她换了工作?她交了新朋友?她开始了一段新的生活?

他什么都不知道。

但他知道的是——不管那些碎片来自哪里,它们都在告诉他同一件事:

她还活着。她还在过子。她还在跳舞,还在吃辣,还在深夜睡不着。她的世界没有因为他的缺席而停止运转。

这应该是一件好事。

但好事为什么会让人口发闷?

也许是因为——你希望你对一个人来说是不可替代的。你希望你的离开能留下一个洞,一个只有你的形状的洞,别人填不进去。但事实是,洞会慢慢长好。人会习惯。一个人住也会习惯。快递可以找楼上的小姐姐帮忙拿。手臂酸了自己贴个膏药就好了。

你以为你是氧气。其实你只是一阵风。

风停了。人还在呼吸。

陈诺把脸埋进枕头里。枕头是凉的。他的额头很烫。不是发烧。是想太多了。

明天还要上班。周一有新的kickoff会议。那封邮件里有一个他不认识的名字。林鹿。UI设计师。

他翻了个身。闭上眼睛。

在快要睡着的最后那几秒钟里,他的脑子里浮起了一个画面——一条很窄的缝隙,像墙上的裂缝。缝隙的这边是他。缝隙的那边是她。他们看不见彼此。但有时候,风会从缝隙里穿过来,带着那边的气味——跳舞的汗味、晒伤的药膏味、深夜泡面的味道、还有茶的甜味。

他闻不清楚。但他知道那是她。

因为这个世界上只有一个人身上同时有这么多种味道。

然后他睡着了。

继续阅读

登录

找回密码

注册

登录

找回密码

注册