mu*index
阅读方式
纯文本
主题

协议

MSSP

Mud Server Status Protocol——一个游戏如何向爬虫讲述自己。它报告的一切都是自述而非实测,本站把这两者分得清清楚楚。

https://www.mudhalla.net/tintin/protocols/mssp/

实测采用情况

318 在886个已列出的游戏中——35.9%

未算进这里的游戏,并不是没有这个协议的游戏。一个游戏被算进这里,条件是我们观测到它的服务器在一次握手中提供了这个选项;其余的既包括没有向我们提供它的服务器,也包括我们还没有读到过握手的服务器,而我们说不出是哪一种。

在一次握手中被观测到提供 MSSP 的游戏,按我们识别出的其运行代码库分组。
代码库 已提供 已识别
FluffOS 28 28
PennMUSH 28 34
CoffeeMUD 18 32
CircleMUD 15 47
ROM 12 55
Evennia 11 11
DikuMUD 6 35
SMAUG 5 20
MUCK 4 24
tbaMUD 4 5
AresMUSH 3 18
CobraMUSH 0 2
RhostMUSH 0 40
TinyMUSH 0 9

MSSP 是 telnet 选项 70。爬虫发送 IAC DO MSSP,支持它的服务器就回一张描述自己的名值对表格—— 名称、在线人数、代码库、运行时长、主机名、端口、题材,以及它愿意公布的其他任何东西。

它是这个圈子里最接近“机器可读的目录条目”的东西,也是好几个目录站点得以存在的原因。

MSSP 报告里的每一项都是一句断言

本站与所有既有站点的分歧就在这一点上。一份 MSSP 报告是游戏在告诉你它自己的情况。 MSSP 表里的 GMCP 1 意味着有人在某个配置文件里敲了个 1,也许是在 2011 年。 它不是服务器提供 GMCP 的证据,而两者对不上的次数,多到足以让人感兴趣。

所以来自 MSSP 的事实在这里标为自述;凡是同一项事实我们也能实测的——比如一项能力, 去看这个选项是否真的被协商了——两者都会并排显示,各自带着一个时间。一个游戏的 MSSP 自述支持 GMCP 已有六年,却从未在任何一次握手中提供过它,这是个值得知道的事实,而且别处找不到。

有一个字段我们刻意完全不予采信:CREATED。它只是一行手敲的文字, 把它计入任何东西,都会让那样东西轻易地被人做手脚。

谁会应答它

MSSP 是 Diku 和 LP 那边的答案。在我们自己那份涵盖 38 个代码库的调查中, 有 28 个通过 MSSP 公布在线人数,7 个通过登录画面上的 WHO 公布,两样都做的只有 2 个—— 这两个家族几乎完全不相交。AresMUSH、TinyMUX、MUCK、RhostMUSH、CobraMUSH 和 TinyMUSH 完全不提供 MSSP。

这就是要探测四个层次而不是一个层次的实证理由:只建立在 MSSP 之上的爬虫, 看不见 MUSH 家族的大部分,而那是这个圈子里很大的一块,也是本站预期读者中的大多数。

主动索取,不要干等

有相当多完全支持 MSSP 的服务器从不主动给出它——它们会应答 IAC DO MSSP,除此之外一言不发。 于是,一个上来先发 IAC WILL NAWS 然后等着的爬虫,会把这些游戏报成什么都没公布, 而这是拿爬虫自己的沉默去下一句关于服务器的断言。我们在连接时就发送 IAC DO MSSP

纯文本形式

还有一种更老的变体:客户端在登录画面上直接发送 MSSP-REQUEST 这一行字面文本。我们实测过: 在试过的二十个游戏里,有三个作了应答——而这三个同样也应答 telnet 选项 70, 所以它没能触及任何选项 70 触及不到的东西。有八台服务器把这个请求读成了一个角色名并如此回复, 白白花掉了一个陌生人被允许的登录尝试次数中的一次。我们不发送它。

另见

  • GMCP Generic Mud Communication Protocol——与文本并行的结构化 JSON 消息,也是当下多数客户端所面向的带外通道。
  • DikuMUD 战斗类 MUD 家族的根。等级、职业、装备和区域文件——以及一份塑造了整整一代衍生代码库的许可协议。
  • PennMUSH 部署最广的 MUSH 服务器。softcode、一段很长的发布史,以及在我们的调查中仅有的两个既回应 MSSP 又回应登录前 WHO 的代码库之一。