我是一个SDN控制器

2016-04-18 by muzi

“醒醒!”朦胧中有一个人叫醒了我。

“跟我走”,那个身穿Linux制服,胖得像企鹅一样的大叔拉着我就走。

“你谁啊?去哪里?”, 我惊恐的问,完全不知道到底发生了什么。

“我是操作系统,负责给你安排工作。你是一个SDN控制器,是Ryu族人,就给你分配代号9527吧。”,那大叔显得有些不耐烦地回答。

“看到没有,前面办公楼里的6633房间就是你的办公室,你的工作就是处理信件和包裹,门房的卡大爷负责收发信件,你记得找他取信就可以了,过期他会丢掉的”。大叔边走边说,一转眼已经到了门口。门房果然有一个大爷,正在忙着处理堆积如山的包裹,胸口的工作证沾了好多灰尘,不过隐隐约约还是可以辨出“网卡”两个字。

但我依然不知道我要具体做什么,所以忍不住又问:“操作系统大哥,我来这里干什么啊?”

“你这么叫不累?叫我Linux就好了。你是新来的员工,要做什么可以看你胸前的说明书”。

我低头一看,我的天啊!我贴着这么大的说明书和路过的5个美女打了招呼,她们还对我笑了。我拿下说明书,发现上面赫然写着“README”,怪不得刚才有个小孩一直跟着我,还碎碎念着什么SDN,我还以为他只是脑子发育有些迟缓。羞愧之余,我慢慢往下读。

原来我被任命为因特奈特国金银岛的快递主管。因特奈特国很贫穷,民众普遍文化水平都不高,识字的人并不多。为了实现远距离的通信和物流,快递业务急需文化水平高的员工。所以快递员们都是从培训机构里面毕业出来的,都是读书人。

培训机构的培训项目五花八门,有数据链路层语言和网络层语言等多种项目。但是学习语言需要天赋,有的人智商高,CPU更强大,能理解和运用三层甚至更高层级语言的语法,

能找到更好的工作,一般都在关键物流节点上工作。而那些只会普通二层语言的快递员,也就勉勉强强能在村里当一个邮递员,业务能力差强人意。

培训学院课程特色十分鲜明,有时不同机构对同一件货物的处理流程截然不同,所以不同机构的快递员之间很难合作。为了和其他学院毕业生合作,学生要学好几套技能,所以学费也相应增加了。但掌握多项技能的毕业生,可以找到很好的工作。但对于快递公司而言,人力成本就水涨船高了。快递公司希望所有培训机构的课程都一样,或者他们能快速接受入职培训重新学习,这样就可以节省很多成本了。

在工作中,快递员学员们都各自为战,并不清楚整体的物流情况。所以就有可能出现这样的情况:发货地点和收货地点之间有多条物流通道,但是物流都拥挤在一条通道上,处理不过来的包裹不断被丢弃,但有的通道却门可罗雀,快递员在岗位上打盹,导致整体资源的利用率很低。而且随着因特奈特国推行改革开放,经济快速发展,信息和物资开始大量流通,也对物流系统提出了更高的要求。

后来,遥远的西方传来了“深度改革”的呼声,他们对快递公司进行了改革,聘请了一个特别聪明的人担任快递业务主管来统一管理物流业务。而快递员的学习标准也都统一了,他们不需要学习多种语言,只需要识字,能按照工作手册转发货物就行。 遇到不懂处理的货物时,快递员们只需要按照语法书的规则把问题提交给快递主管。快递主管就会利用他聪明才智指导快递员处理包裹,给快递员一条转发类似货物的指令,这样快递员就可以查手册直接处理类似的货物,而不必再问主管。西方的快递主管都是牛仔,很忙的。

再后来,改革的春风吹到了因特奈特国,所以我就成了因特奈特国金银岛的第一任快递主管。

“你不识字?读这么久?” Linux一脸鄙视地看了我一眼。

“赶紧开始工作,不然我就把房间没收了,送你去垃圾场处理掉!”Linux突然面露杀气, 吓得我三步并作两步跑进了6633房间,关上房门。

还没等我观察房间内部的摆设,门被敲开了,进来了几个穿着工服的人。

“领导好!我们是帮你完成工作的协程”那个大众脸的人,一脸憨厚地开始自我介绍,“我是帮您取快递的小曲,她是帮您处理二层包裹的阿楚,他是帮您检查包裹安全的大健。”

我定睛一看,小曲还好,长相正常,3分吧。阿楚倒是还挺可爱的,但拿着盾和大宝剑的大健实在让气氛有些尴尬。

“那开始干活吧。”我假装经常当领导的样子,不动声色地抛下一句,然后拿起桌子上的工作手册独自读了起来,深藏功与名。

小曲的工作比较简单,只是不断地检查房门口有没有包裹。突然,他兴高采烈地抱进来一堆信件,放在我桌子上之后像发现新大陆一样兴奋地说:“还有其他信,您等着。”

打开信件一看才发现,原来都是一些来自快递员们的hello信件,看来他们开始工作了。Hello信的内容很简单,无非就是和我商量一些要采用那个版本的语法进行通信。我给他们发了Hello回信,然后再写了一封要求他们发简历的Feature_request信。作为领导,了解员工能力是很有必要的。

很快,小曲又抱着一堆新的信件进来了。这次的信有点厚,打开才发现是快递员们的Features_reply,这些信里面有他们的简历,可以知道他们都会些什么技能。我查了一下工作手册,并没有什么要特殊设置的,就按照标准的流程,给他们回复了标准的配置信。

一转眼,小曲又大汗淋淋地扛着一个大包裹进来了。我忙不迭地打开查看,这次是一个Packet_in包裹。“阿楚,赶紧处理一下”。我冲一直在边上无聊抠脚的阿楚喊。

阿楚驾轻就熟地把包裹打开,把上面的信息记录到小本子上,比如包裹是哪个快递员送过来,从他的哪一个快递窗口进来的,还有一些包裹里的具体内容。阿楚也是上过小学的人,在培训学校里学过二层语言。她是这里唯一的实习生。

“我不知道这个怎么处理,没有见过这种包裹,在我的小本本上没有记录,就让他给所有出口都发一份吧。”阿楚面露难色地告诉我。我最开始是拒绝的,但又只能无奈接受。“那就这样吧。”

很快的,其他快递员也把这个包裹的处理请求上报给我了,但阿楚依然不知道怎么办,只能继续泛洪发送。

可喜的是,阿楚的小本子上面很快就记录了很多记录。我仔细一看,小姑娘还挺聪明,还学会数据结构了。她画了个表格,每条数据项有三列数据:快递员的工作证号:dpid,从哪一个快递窗口送到快递员手里的和包裹的主人地址。

“这个包裹我知道怎么处理耶!”阿楚兴奋地跳了起来,面色潮红。根据之前的记录,阿楚知道寄给这个“66:66:66:66:66:66”的包裹是应该要从一号快递员的快递窗口3发送出去的。她赶忙写了一封Flow_mod挂号信,信里告诉快递员关于这个特别6的客户的包裹都往3端口发。

“啊,糟了!我忘记给他发一个Packet_out信了!Packet_in消息里有提到buffer_id是NO_BUFFER的。”阿楚还没有坐稳就惊呼了一句。她赶紧写了一封Packet_out信,里面提到了要把Packet_out中的包裹发到3端口,然后把信贴到包裹上,交给了小曲。

工作就这么有条不紊地进行着,大家都低头忙着自己的事情。仿佛时间并没有流动,只是在不断地重复播放,没有什么波澜。每次包裹到的时候,大健也会机械地抬头看一眼是不是给自己的。他总是恶狠狠地盯着盾牌上记录的坏人名字和处理规则,咬牙切齿的样子让气氛格外尴尬。无聊地时候,大健也喜欢在空中比划着什么。听阿楚提起过,大健好像是情意绵绵剑的传人,只是一直加班,没时间找女朋友,所以一直找不到搭档练剑。

“终于等到你!还好我没放弃!”大健两眼放光地盯着手中的信件。原来大健收到了程序员上帝写给他的一封规则信,信里提到要把IP是192.168.8.24的包裹全部丢掉。大健面露杀气地举起手中的大宝剑,在盾上深深地刻下了这行规则。然后他立刻写了几封Flow_mod信,把这个丢包规则发送给那些相关的快递员。作为一名安检员,大健始终保持着警惕,尽职尽责地保护着金银岛的物流安全。

工作的日子总是单调的,像一次函数那样单调而笔直地前行着。大家都机械地处理着手上的业务。阿楚还是那么萌,大健还是疾恶如仇,而小曲还是像流行歌曲的高潮部分那样,不断地周期往返着。

平静而平凡的生活终于被打破,犹如平静的贝加尔湖面丢进了一个石头。原因是新来的快递员的传递路线和其他快递员的传递路线形成了环路。

那一天,乌云密布,雷雨交加。快递员收到了一个新用户的包裹,他查半天规则手册都不知道怎么处理这个新用户的包裹,只能请求我。我让阿楚处理,结果她按照自学习那一套,让大家泛洪发送,结果就产生了广播风暴。

那是黑暗的一天,我记得是星期五,我目睹了5起交通事故和3次情侣吵架,但都没有广播风暴带来的结果严重。所有环路上的快递员都不断转发着那个货物,最后竟活活累死了!在快递行业中,丢个包已经是工作事故,而累死多名员工的事,已经不能算事故,它是灾难!

因为这件事,差一点让我们快递部门倒闭了。还好问题发现得及时,切断了快递业务路线。处理完后事之后,公司开始追究责任。可怜的阿楚,就这么被开除了。到离开她都不知道为什么会把快递员活活累死,毕竟她只上过小学,只知道自学习转发,并不了解这个做法在环路中可能产生致命的环路风暴。

阿楚离开后的第二天,快递系统还没有恢复运作,办公室堆积着好多事没人处理,我并没有打算处理它们,只想放空自己,从噩梦中走出来。 突然Linux敲开了我的房门,还带着一个漂亮的姑娘。

“9527,程序员托我给你带新人来了”。程序员上帝发现这个惨案之后,很快让操作系统把这个新员工安排过来。

“谢谢Linux。那个,你自我介绍一下吧。”“谢过操作系统大哥之后,我转头问这个很有御姐范儿的姑娘。

“Ryu领导好,我叫露露,我读过本科,专业是大数据处理,后来去思科学院学习了快递技术。我会收集快递员的连接信息,然后做数据分析,可以计算出最短路径来转发或者路由快递包裹,绝对不会累死人!”露露语速很快,很自信,是我喜欢的类型。

“啊,小露露很厉害啊!听你这么一说我就放心了。快上班吧,不然你没响应要被带回去了。”我满脸堆笑地对露露说。眼前这个聪明又漂亮的员工,比那个小学生不知道高到哪里去了。

露露果然雷厉风行。上班之后就周期让快递员们发送携带dpid和出货窗口的LLDP报给邻居。 收到包裹的邻居快递员会按照规则把这个包裹上报给我。露露利用上报包裹外面的Packet_in信的快递员的dpid和收货窗口以及包裹中的信息,可以建立两个快递员之间的连接。然后她把所有的连接组织起来,竟然把全局的物流拓扑图画出来了。我不由心里一惊:小露露不仅长得漂亮,还很能干啊。哦不!我怎么能这么想呢!应该是小露露不仅能干,还长得这么漂亮呢!

正在我神游的时候,小曲不识趣地打开门,扯起嗓子热情地说:“露露妹妹,你的包裹”。我注意到小曲放下包裹的时候比阿楚在的时候多停留了3ms,也比之前干活更精神了。

露露很熟练地解开包裹,然后提取出里面的关键信息。“是从绿茂花园的王大爷家到大柳树村老刘婶的包裹。绿茂花园到大柳树村需要先经过西土城站,然后去西直门站,再经过国家图书馆站,最后到万泉河站的大柳树村。”露露照着手中的Dijkstra书和物流图,竟然把快递转发路径给计算出来了。

“干得好,露露,午饭加一个鸡腿!”我激动得语无伦次,却也不敢多说,怕她知道我读书少。

但是就算有最短路径转发,我还是发现快递员的工作强度差异太大。有的快递员无所事事,而其他快递员加班加点。明明有的快递员可以帮忙的,但是货物总是到不了他那里。我仔细观察了一下,终于发现了问题。露露计算的路径虽然是最短的,但是当所有货物都按照最短的路径发货的话,可能就拥堵了,而另一条次优的路径并没有使用到。所以我应该还需要了解物流的压力情况。怎么才能了解呢?

正在我百思不得其解的时候,年度优秀快递员张伟终于不堪重负,病倒了。他那个快递收发点的货物已经堆积如山。我查遍了所有的手册都没有解决办法,只能给发出一个警告,没想到程序员很快就派来了新员工来处理这件事。

他叫夏留,听名字估计是父母喜欢夏天,希望夏天能停留,应该是一种美好的希冀,只是读音让人浮想联翩。

“我学过数据挖掘,但是没找到工作,后来去学挖掘机,但是没学成,所以就去学快递技术了”。这是我印象最深的自我介绍词。我对他毫无理由的没有好感,也许是因为他比较帅吧。

他和露露一样聪明,他专门整理快递网中的物流流量信息,然后和露露合作。露露其实也去学习进修了,掌握了基于物流流量信息计算最优货物转发路径的方法。所以快递员们的负载才得到了均衡,才少了许多抱怨。

但是我总觉得夏留和露露整天黏在一起不太好,年轻人在办公室还是要克制一些。传数据快一些,多一些产出,少一些对视,少一些寒暄。

生活又恢复了平静,就像经过暴风雨洗礼的早晨。每天的工作都大同小异,因为新流量不多,所以大家都不是很忙。但是夏留需要不断收取一些快递员送上来的快递收发货统计报表,露露也周期地和所有的快递员联系着。集智慧和美丽一身的露露是所有快递员的梦中情人。

遇到节假日的时候,大家就会忙得不可开交,有时候难免会病倒。这时候我就会特别羡慕临省新上任的ODL和ONOS。ODL家族的人声势最浩大,它多才多艺,精明能干,部门员工也很多。而ONOS也比我要先进,他们是多胞胎共同作战,不像我Ryu族人还在孤军作战。ONOS他们家有好多孪生兄弟姐妹,一起管理他们省的快递物流,资源和信息都共享,每个人分别只负责区域的管理。如果其中一个兄弟生病了,可以把他的业务交给其他兄弟代理,等病好了再接着干。这样就不用担心快递主管病倒导致业务中断的事了。

不过我听说有个叫Distance的程序员上帝开发了Open eXchange语言,可以架设一个层级式的部门架构。有了这样的语言,我不但可以我的族人一起工作了,还可以和不同家族的人一起工作。希望改革快一些,我知道其他人的办公室还有欣欣和丽丽。

我坐在桌子前,一手撑着下巴,一手握着桌子上的杯子,幻想着美好的未来。耳边是露露和夏留的窃窃私语、小曲忙碌的脚步声,还有大健那频率不变的磨剑声,自然而和谐。

突然,大门被撞开了,进来了Linux和几个凶神恶煞般的人。

“大、大哥……怎么了?”我吓得唰一下站起来,杯子也被碰掉,碎了一地。

“这些人都带走,那个姑娘轻点抓,挺好看的”。Linux并没有理会我,指挥小弟们把我的露露,夏留和小曲,还有一直在角落磨剑的大健五花大绑了起来。

“我收到程序员上帝的通知,由于业务整改,你们部门所有资源回收,都给我去垃圾回收站,走!”

Linux露出我从未见过的凶狠眼神。我明白了,我不该对未来充满幻想,我不该有任何怨念。但是我要做完我该做的事,我转身写在最后一封告别信:“Ryu is going down!”

“交给程序员,告诉他我干得很好”,我把信交给操作系统,慢慢闭上了眼睛。在去往垃圾回收站黑暗而崎岖的路上,我听到露露拼命的呼喊,还有夏留,还有……

“我想我没有做错”,我想到这里,嘴角颤了一下,掠过一丝转瞬即逝的微笑。

黑暗中,我睁开眼睛,仿佛看见了未来。

作者简介:

李呈,2014/09-至今,北京邮电大学信息与通信工程学院未来网络理论与应用实验室(FNL实验室)攻读硕士研究生。

个人博客:http://www.muzixing.com


Comments