这也是实验最基本的核验原则:可复现性。
机器启动后,施耐德教授开始写代码,安德烈亚斯在旁边打下手。
相对而言,施耐德教授不需要建立一个完整的技术标准体系,只需要针对性地建立一个连接,所以代码量要小了很多。
? 第292章 上帝总会把机会留给这样的人
安德烈亚斯在一旁打下手,换软盘、换打印纸、登记机时。
他其实很想问问这实验到底在干什么,可教授一脸严肃,进机房起就没怎么说话,
他也一直没找到合适的机会。
不过安德烈亚斯到底还是没忍住,找了个机会小声问:
“教授,这实验是什么项目啊?”
“一个命名系统。”施耐德教授头也不抬,“分布式主机名解析。”
安德烈亚斯“哦”了一声,没听懂。
主机名解析?不就是Hosts.txt文件吗?
这有什么好研究的?
就在这时,机房门口响起一阵敲门声。
安德烈亚斯跑过去开门,来的是施耐德教授的学生米夏埃尔·克鲁格。
“教授,您找我?”米夏埃尔问道。
“米夏埃尔,你来了,上午好。我需要您帮我做个实验。”施耐德教授微微颔首。
随后,他朝着10号机和11号机扬了扬下巴:
“那两台是解析客户端。你照着这张单子做,区域文件格式我写在背面了。”
米夏埃尔连忙接过单子,他扫了一眼,随后一头雾水。
SOA、NS、A记录、TTL、委派关系……
这是什么?
他满脸疑惑地看向教授,但教授却专心致志地盯着屏幕,飞快地写着代码。
米夏埃尔只得把疑问咽了回去。
施耐德教授做事向来如此,实验过程中不爱解释,而是希望学生自己做,在做的过程中自己领悟。
实在领悟不了的,才会在事后进行解释。按教授的说法,只有先做过,解释起来才会事半功倍。
米夏埃尔按照施耐德给的单子,走到十号机面前坐下,开始录入。
配置这些不算难,米夏埃尔毕竟在计算机中心帮教授维护实验床快一年了。
虽然上面写的全是陌生名词,他看着一头雾水,但具体到操作还是没问题的。
但录到一半,他还是好奇地用笔尖点着单子上的一个词,侧头低声问身边的安德烈亚斯:
“安德烈亚斯,你见过这个没有?SOA、NS、TTL,这些,都是什么意思?”
安德烈亚斯闻言,凑过来看了一眼,也压着嗓子说:
“我也是早上临时才被教授叫过来的,完全不懂教授在干什么,别问我。教授只说这是一个什么主机名解析的项目。”
“主机名解析?”米夏埃尔听了更是满腹疑窦:
“命名系统不就是一个 Hosts表吗?有什么好研究的?”
两人对视了一眼,都咧了咧嘴,又赶紧收住——
难道教授又搞了个什么新项目?
而且看教授这副如临大敌的模样,这个项目恐怕还不简单。
快到中午,施耐德教授终于开口安排。
“时间紧,我简单说一下分工。”教授从公文包里抽出一张折了几折的纸,展开铺在台面上,说道:
“7号机做根服务器,8号、9号做两个区的权威服务器,10号、11号做解析客户端,12号做观察节点。我负责服务器端和协议主体,米夏埃尔你负责客户端配置和区文件录入,安德烈亚斯负责测试记录,再就是每天7点前的维护窗口,提前提醒我。”
米夏埃尔和安德烈亚斯对视了一眼,根服务器、权威服务器、观察节点……
这些名词一个比一个陌生。
但两人也没有多问。
因为按照教授的习惯,等这个实验做完后,他才会详细给学生们详细讲解,所以他们只是齐声应下。
此后几天,施耐德教授师生三人一直沉浸在地下机房里,复现陆怀民的实验。
前几天主要是写代码。
一连写了三天,米夏埃尔逐渐也品出了点名堂。
他帮教授核对表头地址的偏移量,一个字节一个字节地数,数到第三遍,忍不住问道:
“教授,这个TTL86400为什么偏偏是86400?”
施耐德教授停了手,难得地解释了一句:
“86400?这是一天的秒数。它告诉解析器,这个应答可以在本地缓存一天的时间。”
“缓存?主机名还要缓存?”米夏埃尔本来已经品出了点名堂,听到这又有些迷惑了。
“要。”教授点点头。“而且一个名字被确认不存在,这个'不存在'本身也要被缓存。”
米夏埃尔似懂非懂地“哦”了一声。
他忽然隐隐感觉,教授正在做的这个东西,似乎要颠覆之前的主机名解析规则。
可这个念头还是太模糊了,就像门缝里飘出来的一阵风,怎么也抓不住。
就这样,三个人专心致志地写了三天。
到了第四天上午,最后一个模块写完,六台机器的程序也全部编译通过。
“可以进行测试了。”施耐德教授说着,站起身,一台一台机器过了一遍。
他把每台机器的区文件、后缀关系、路由参数全部都核了一遍,亲自核了一遍。
随后他对米夏埃尔说:
“米夏埃尔,你负责10号机,准备发送查询,查mail.cn。”
米夏埃尔应了一声,说:“好。”
米夏埃尔在控制台前坐下,随后查询开始。
query sent。
随后,分区服务器发出应答:
ANSWER: mail.cn, A, 10.9.0.20, TTL 86400
第一次查询成功。
安德烈亚斯好奇地问道:“这是成了吗?”
施耐德教授点点头,继续说道:
“继续测试,跨区查询。”
第二条查询发往.DE区。
委派递归应答,整条链路走通,9号机的区文件里返回了预制的记录。
紧接着是缓存命中,再接着是否定缓存。
很快,第二次查询同样完成。
“区域查询。”教授继续吩咐道。
米夏埃尔敲下命令。
8号机和9号机的区文件开始同步。
屏幕上一行行滚动SOA记录序列号、资源记录条目。
传输完毕,检验一致。
“最后一项,故障演练。”施耐德教授站起身,走到8号机面前:
“我将8号机强制关机,看看解析器怎么反应。米夏埃尔准备好了吗?”
“准备好了,教授。”
“好。”施耐德教授点点头,将8号机强制关机,米夏埃尔立刻用.CN区发了一条新查询,屏幕上跳出提示:服务器暂时无法应答。
解析机没有崩溃,只是返回了一条明确的错误信息。
“重启8号机。”施耐德教授说着,将8号机重新启动。
随后区文件重新加载,米夏埃尔再查,一切照常。
至此,复现实验全部完成。
而此时,施耐德教授却突然长长地吐了一口气,猛地瘫坐在椅子上。
米夏埃尔见状有些疑惑:
教授明明很重视这个项目。似乎这个项目很重要,但这副模样,似乎并不像是完成一个项目时激动的表现。
他正想上前问问,这究竟是个什么项目?
忽然,施耐德教授毫无征兆地一拍大腿,懊悔道:
“Verdammt!(该死!)我真是……我差点……”
一旁的米夏埃尔和安德烈亚斯顿时吓了一跳。
“教授,怎么了?”米夏埃尔连忙问道。
“没事。”施耐德教授摇摇头:
“我是有些懊恼。这么重要的东西,我居然差点用‘太边缘’三个字差点耽误了他。”
“耽误了他?”米夏埃尔和安德烈亚斯对视了一眼,有些不明所以。
“米夏埃尔,”施耐德教授突然问道,“你说我们搞了这么多年网络,最近进展最大的技术是什么?”
米夏埃尔一愣,然后想了想说道:
“传输和路由吧。TCP/IP明年元旦就要切换,各家的网关协议也已经换了好几版了。”
“对,协议换了一版又一版,全世界网络研究者都在往这个方向下力气,可主机名呢,还是十年前的Hosts TXT。通过斯坦福的人手抄,每周记一次,然后全世界跟着改。可我们可以设想一个问题:假如这个世界上联网的主机越来越多,这个表还跟得过来吗?”
米夏埃尔闻言,顿时若有所思。
施耐德教授顿了顿,继续说道:
“我上个学期还在课堂上跟学生讲,主机名问题可以靠中央主机表管理。现在我证明,我觉得我当时想得太简单了,可以说是错得离谱。”