第2話 TCP/IP

「じゃあ、お前が脳死でコピペしてる『ssh-keygen -t rsa』」って、何してるの。」

某ゼミ所属の先輩が言う。「先輩」というのは「学部の先輩」という広い意味での呼称であって、狭い方の「ゼミの先輩」という解釈は誤りであるとだけ断っておく。


「なんで僕に構うんですか。お忙しいのでは。」

縋りついてくる先輩は、ついさっきまで左手で髪をかきむしりながらパソコンとお戯れになっていたおかげで、かなり斬新なヘアスタイルをしていらっしゃる。


「初歩的なミスをやらかして、心が折れたからさあ。後輩で遊ぶの。」

僕はおもちゃか。まあ、あからさまに「ふっー」と息を吐いて、下を向いて目を閉じて、いかにも「切り替えました」という雰囲気をだしてやってきたので、想定の範囲内ではある。


「ええと、SSH/TSLの、RSA暗号化形式のキーの生成、ですかね。」

「あながち。で、SSH/TSLとは。一般名詞でどうぞ。」

「暗号化形式的な。」

「解像度が低い。」

そのへんの雑誌で頭をはたかれた。いや、何かびしょってしたんですけど。


「習っただろ。復習な。」


「三段論法で言うならさ。魔法はイマジネーションである。『パソコンは魔法の箱じゃない』とかいうけど俺はそう思わない。ならば、プログラミングだってイマジネーションである。というわけで、概念理解大事。」

たぶんド正論なのだけれども、あのゼミ特有の言い回しに遠い目をした。

「そうかもしれませんね。」


「『パソコンは魔法の箱じゃない』というわけでもない」は例の教授が好きな表現だ。「パソコンは魔法の箱じゃない」は本来、「インターネットは何でも叶えてくれるわけではなくて、道具一般と同じく使用にはリスクがあるのだと忘れてはいけない」という意味だったはず。中学で、わざわざ体育館に集められて聞かされてきた記憶がある。教授曰く、AIに「心」はあるか、云々の倫理的課題の答えは、つまるところ認知しきれないレベルでの複雑さに尽きる。自然を崇めるのも理解不能だからだし、「妖怪」も「わからないもの」を概念化したもの。情報科学の進歩はすさまじく、手元で動いているパソコン一つとっても、「とりあえず動けばいい」と割り切ってしまわなければやっていけないほどだ。それなら、「人智を超えるレベルで複雑怪奇な代物=魔法」とも言えるだろう、とのこと。僕の中では、理解はできるが納得はできない系理論第一位だ。



「さてと。さっき話していた暗号化ですが、やってるのはOSI基本参照モデルで言うとどこでしょう。」

「HTTPSの階層的に、アプリケーション層。」

「はい、アウト。何言ってんの。ひっかけです。現行のシステムはTCP/IPベースで作られているので、この問いには答えはない。おまけに、厳密にいうならまあHTTPよりは下層だな、って感じなので、輪をかけてアウトです。期末前でよかったな。いい機会だから、最上層からレイヤ言ってみ。」

「アプセトネデ物(ブ)なんで、アプリケーション層、プレゼンテーション層、セション層、トランスポート層、データリンク層、物理層かと。」

「正解。では、ランダムに聞いていきます。当てはまるレイヤを答えてください。」


「文字コードや圧縮の種類を規定する。」

「プレゼンテーション層。」

「IPアドレスを使う。」

「ネットワーク層。」

「MACアドレスを使う。」

「データリンク層。」

「ポート番号を使う。」

「トランスポート層。」


まじか、全問正解です、と言って、やっと先輩が笑った。

「続きまして、たぶん一生使わない抽象度の高いお話をします。OSI基本参照モデルで、それぞれの階層をN層と呼ぶ。話題にしていた階層の一つ上はN+1層。で、『プロトコル』でつながるハードウェアを『エンティティ』。下位層が持つ、上位層を支える機能を『サービス』、その窓口となるところを『サービスアクセスポイント』と呼んでいます。」

ちゃんと知ってたの、と問う声は優しい。


「あー、やっとここまで来た。先ほど申し上げた『プロトコル』ですが、これと関連して『プロトコルスイート』というものがあります。『TCP/IPプロトコルスイート』が有名ですね。では、これについて説明してください。」

「相性のいいプロトコルの組み合わせが『プロトコルスイート』。TCP/IPプロトコルスイートでは、OSI基本参照モデルの上位層の3つをまとめて『アプリケーション層』、物理層とデータリンク層をまとめて『ネットワークインターフェース層』、ネットワーク層を『インターネット層』としているという点が特徴。windows95の普及で覇権を取った。」

すい、と見上げてみる。

「概ね正解。なお、これだけ普及したのには、WWWで使われたという点も大きい。」

先輩の目線は、さっきから足元に落ちていて、こちらの視線には気づかない。


「じゃあ、最後に。階層化のメリットは、何。」

沈黙が落ちる。

「共通言語ができること、とか。」

「あながち。でも、技術が進歩したときに、その階層だけ入れ替えたら楽だから、が模範解答な。障子に穴をあけたとして、一枚まるごと張り替えるより、枠一つ分だけ張り替えるほうがささっとできるのと同じようなもん。」


真面目な話をしてたら、頑張らなきゃ、ってなってきた。そう言って先輩が背筋を伸ばす。

「githubにあげるなら、.envじゃなくて、.env.localにしとけ!」

そう言い捨てて、去っていった。


え。暗号化キーからDBのパスワードまで全公開か。セキュリティがばがばじゃん。それはへこむわ、と心中で呟いて、僕も席を立った。


  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

「プログラマならばリアリストである」は偽である @wasuregai

★で称える

この小説が面白かったら★をつけてください。おすすめレビューも書けます。

フォローしてこの作品の続きを読もう

この小説のおすすめレビューを見る