本内容是虚构创作,与文中所提到的人物、事件、网站、机构、协议、端口没有任何关系。

近日某校援引条例,关闭了所有未经审核IP的TCP端口(尽管如此,那些常年暴露着弱密码登录端口的服务器却仍然门户大开,令人感慨)。尽管仍然能够从校内访问,但这一下子给一些那些常年开着远程桌面、安全shell的网络环境破坏分子宣判了死刑。这些人并不把网络作为优质信息的交流工具,而是动起了公器私用的歪脑筋,妄想随身带个平板电脑、手机,通过远程连接就能随时随地享受寝室里配置顶尖但很难移动的工作站、游戏本体验。

但有着悠久历史的交大葡萄却面临了灭顶之灾。当然,生活在移动互联网年代的新交大人们可能很难理解交大葡萄这个PT站是什么(论坛这种过气的互联网产物也已经式微了)。富有版权意识的同学可能会发现,这个网站似乎并不太尊重作品版权,但由确确实实是运行在交大官方的网域和服务器上的。我们希望以解析这次某校关闭TCP端口的一个可能原因入手,来帮助大家对交大葡萄的诞生与淡出有一定的了解。

互联网

早期的网络通讯是建立在已有的电话网络上的。想必各位都对“猫” modem这个词语有印象。modem是调制解调器,最早的目的,是在电话的声音信号与计算机网络的电子信号间转换。这样信息就可以在电话线上传输。早期美国大学间建立的消息网络,就是通过每天晚上固定和其他几个大学拨上几个小时的长途来传达(因此实验室的电话费很吓人)。

随着计算机的进一步普及,电话公司就占据了得天独厚的优势。这和电话的布设过程非常相似:以前要想打电话,得在每对打电话人之间两两牵一根电话线,而电话公司则起到中转的作用,只需要每个人和电话公司牵一根电话线,就能够和所有与电话公司相连接的人打电话。而以前通过一对一的网络业务也类似延展到用户——电话公司的网络连线:只需要与电话公司的中转服务相连,就能访问所有连接到电话公司的网络。美国的美国电话电报公司、中国的电信联通移动都做这个服务,大家平时在家上网,也应该知道自己用的是哪一家的宽带。

使用过拨号上网的同学都知道,以前上网得拨一个实实在在的电话号码。(169、 163、 96163等)这些就是不同电话公司提供的网络中转业务。当时拨号上网的话,不仅网费高,电话还会占线。后来这些电话公司引入了话音分离等技巧,才能实现边上网边打电话。

得益于我国对于网络基础设施建设的重视,上面提到的以电话线网络为基础,以一个划分出来的小部分(通常是高频率段)提供网络服务模式逐渐被以光纤通信为基础,以一个划分出来的小部分提供电话服务的模式所取代,大家的网速也与日俱增。小学的时候玩穿越火线,一个2GB的更新得下载三个小时,而现在的网速完成这样的更新已经几乎不用等待了。

教育网

大家家里的宽带基本上都是电信联通移动网通这些传统电话服务提供商(以及广电、铁通、长城这种二级服务提供商)。但稍有用心的同学就能发现,我们学校使用的并不是上面这些提供商提供的服务,而是“教育网”。

教育网建立于1994年,是为了满足高等教育与科研的需要而建立的第一个全国性TCP/IP互联网。而各大电信服务运营商开始接入互联网,是在1995年。教育网作为国家网络基础设施建设的先锋,近年来也承担了IPv6的试验与普及任务,但因为其目的的局限性,处在一个相对独立的状态,对于准入条件等限制更高。

我们仍然以电话为例。我有一个移动的号码,给电信的号码打电话。语音会先传到移动的交换机,再通过移动与电信之间建立的一条跨运营商交换通道,再通过电信的交换机传到电信的号码。这就涉及到付费的问题:收话费都是移动在收,但是在电信那部分的运营成本怎么办?因此运营商引入了“网际结算”:移动向电信转发,要给电信付钱。早期的网费是包在电话费里面的,网费自然也得按此付费。

这个费用通常并不重要,因为有移动向电信打电话,也有电信向移动打电话,两项的结算基本等同。为了打压其他的市场竞争,尽管通信费用一降再降,这个结算费用并没有降低,这样新的竞争者想要进入这个市场,为了获取已有市场的网络服务资源,就要付出非常高的结算费用。

教育网倒是五雷轰顶,本来就是一个公益性的网络,也不能直接放开商业化,主流的网络服务资源又都在三巨头手上,网际结算费用就变得非常夸张。当时的网络环境实际上基本缺乏版权意识,大家下的都是盗版电影游戏,同质性比较强。教育网网内流量的成本远远低于网际流量成本,因此各大高校受到鼓励,开始搭建PT站。交大也搭建了类似的网站交大葡萄。

交大葡萄

PT,或者说BitTorrent技术,是怎样缓解教育网的流量压力的呢?

现在我们上爱奇艺,视频的内容是存储在爱奇艺的服务器上,并由爱奇艺的服务器传给你的。但是葡萄不同。他不保存视频内容本身,只保存一个列表:谁保存了这个视频的哪一部分。当用户想要下载视频时,就会咨询葡萄服务器谁有这个视频的这个部分,并从有这个视频的另一个用户处下载。相比于公开的BT服务器,葡萄是私有服务器,他还会记录用户的上传量和下载量,并限制那些只下载不传输给其他用户的“坏”用户。

葡萄的用户,或是说教育网PT站的用户,(在当时)自然是教育网网内用户较多。这些用户成为了隐形的“网络资源”,对于那些不在教育网环境下而从教育网下载的用户,就能够平衡一部分网际结算流量。更重要的是,文件可能只需要下载一份,就能够通过上传而分享到整个网络,这对于降低网际请求是天大的好事,而对于带宽本就不足的高校,也能够享受较快的内网传输便利,是一个双赢的过程。截止当前,葡萄的总数据量是113PB,上传下载比是60倍以上,对于带宽的影响是可观的。

TCP阻断

TCP/IP协议栈是葡萄下载的基础。这是一种网络通讯协议,为复杂多变的网络连接环境提供了一个相对稳定的连接基础。我们仍然以打电话为例子。IP协议规定了一种电话号码(地址)——分机号码(端口)结构,而TCP协议则可以理解为建立在IP协议上的一种电话礼仪。通常人打电话的礼仪是:

  • 打电话的人说“喂” (SYN)
  • 对方听到后回“喂,你好,这里是鲍勃” (SYN + ACK)
  • 打电话的人说“你好,这里是爱丽丝” (ACK)

然后开始对话。这被称作TCP协议的三次握手。此次对于TCP协议的阻断相当常见,想必经常上一些学术网站的同学也深有体会:接线员会全程听所有人的电话,一旦听到打进来的人只说一个“喂”的就直接挂断,只允许从里面往外面打电话。而这对于葡萄来说则是遭到了灭顶之灾:这意味着,校外将无法再从校内的同学的电脑上下载到他们想要的文件。

通常运营商也会阻断一些TCP的端口,但通常都是为了合规与安全的目的。比如阻断25/465端口,防止恶意计算机投递垃圾邮件,破坏运营商网络;阻断80/443端口防止私自搭建非法网站(网站备案制);阻断445端口以预防ipc$攻击等。但对全部TCP入口进行阻断,这一看似令人不解的行为,客观上能够降低葡萄带来的流量,为全校的普通网络使用者提供更好的网络体验。

随着带宽的单价越来越低(包括学校买了一条联通线路,也减少了对教育网的带宽需求),工信部去年出台了相关规定,取消教育网与主要运营商网络的网际结算费用,教育网的主要矛盾从网际结算变成带宽本身的成本了。交大也在推进校园千兆网覆盖,但想必大家也都能够察觉到,除了校内几个测速网站能结结实实跑满千兆,一旦跨网最高也就150-200M左右(~20MB/s)的网速(还是加速缓存服务器修到出口跟前的结果),教学区的网越来越慢,几个大教室甚至连8M(~1MB/s)的网速都无法保证。这使得原来双赢的葡萄一下子变成了带宽累赘。由此看来,阻断所有TCP端口,一下子变得合理了。

黄昏

葡萄本身也面临着很多问题:随着旧的葡萄用户毕业,葡萄不可避免地会增加更多的内外交换流量;nexusPHP也使用了目前看来非常陈旧的技术栈,缺乏更新和维护;葡萄自己也面临着侵犯版权的问题。不少学校的PT站已经关闭,或者转向纯IPv6这一目前还是免死金牌的新技术,但这一注定会淘汰的旧互联网产物,自然无法与运营精良、版权丰富的新时代互联网资本抗衡。飞鸟尽,良弓藏。狡兔死,走狗烹。葡萄作为特定历史时期的产物,自然有退出历史舞台的一刻。

想必葡萄最终也会变成comic这样,只剩下一个空壳和一个测速网页的怀旧网站吧。看了看现在赫然1PB大小的种子总量,如此的庞然大物因无法承受自重而一步步走向毁灭,也令人唏嘘。