Skip to the content.

はじめに

超くだらないプロトコルです。Merry Christmas! Chicken Art Protcol 略してMCCAPです。Merry Christmas! Chicken Art Protcol は、クリスマスにフライドチキンを食べるという日本の文化を世界に広めるために作られたプロトコルです。MCCAPは、クリスマスにチキンを食べることを目的としています。 TCPをベースにとっても安全にチキンを配送します。

MCCAPプロトコルver2023

プロトコルの概要は以下です。

Protocol

All messages are encoded in UTF-8 & send via TCP. No encryption, no compression, no security. If not specified, all messages are ended with ‘\n’ character.

Request & Response Request to server with ‘Merry’. Server response with ‘Christmas!’. Request to server with ‘Chicken’. Server response with fried chicken art with “C” delimiter. End of protocol, close connection.

ね?とっても簡単でしょ?

クライアントとサーバーの実装

リポジトリ を見てもらえたら分かると思います。今年はGoで実装してみました。せっかくだからテストまで書きたかったけど時間切れ。来年はテストも書きます。
実行例が見たいそこのあなたにクライアントのスクリーンショットをプレゼントします。
image

真面目な話とまとめ

まあこんなくだらないプロトコルを作ったところで、去年のキャリッジリターンの記事とたいして何も変わらないわけですが、普段Webエンジニアとしてサーバーサイドだったりクライアントサイドだったりのコーディングをしていますが、その間に立つプロトコルについては中々目を向けなかったりします。 今回は、そんなプロトコルについて考えるきっかけになればと思い、この記事を書きました。例えば、このMCCAP2023 は当たり前ですが平文の通信なので誰でも盗聴できます。大事なチキンを盗まれてしまうかもしれません(リレーしてくれれば減りはしませんが)。しかしTCPをベースに実装しているため、UDPのようにチキンが途中で消えることはありません。また、順序が保証されているため、チキンの順番が入れ替わることもありません。だって「持つところ」が真ん中にあったら嫌じゃないですか。普段一番お世話になっているHTTP(S)、SSHといったプロトコルでは、暗号化のオプションがあったり、順序制御、ソケット、セッション、Cookie、その他の様々な機能が実装されています。しかしそれもプロトコルの実装者がそのように作ってくれているから当たり前にそれらを享受できているのであって、魔法のように存在するわけではありません。この記事を読んだエンジニアの中には、プロトコルについて普段深く考えたことがなかったり、そもそもあまり深くは学んでこなかったという方もいるかもしれません。そんな方に、MCCAPを機にプロトコルについて少しでも興味を持ってもらえたら嬉しいです。

来年は暗号化とか認証追加して安全にチキン配送できるようにしようかな… MCCAP2024 のロードマップ考えないと…
それでは、Merry Christmas! 2023のクリスマスはみんなでチキンを食べましょう(FYI:KFCをクリスマスに食べるのは日本独自の文化らしいです)。