6.2 ネットワークで提供されているサービス
サーバとクライアント
コンピュータネットワークを使ってサービスを行う方式の代表的なものに,サーバ/クライアント方式があります.サーバ(server)は,ネットワークを通じて他のコンピュータから要求を受け,それを処理するコンピュータやプログラムのことです.そしてクライアント(client)はサーバに要求を出し,サーバが提供しているサービスを受ける側のことを言います.
手紙のやりとりを例にして,もう少し詳しく見てみましょう.今,古くからの友達に久しぶりに手紙を書くことを考えます.
- まず,あなたは文面を考え,手紙を実際に書きます.
- その後,封筒に友達の住所を書きます.
- そして,切手を貼って,郵便ポストに投函します.
- 郵便ポストに入れられた手紙は,郵便局へと集められて,手紙に書かれた住所のところへと届けられます.
ここで,手紙を書いたあなたが,クライアントです.そして,手紙を届けてくれる郵便局がサーバです.あなたが受けているサービスというのは,「手紙を届けてもらう」というものです.ただし,そこには約束事があって,「手紙に切手を貼る」,「住所を書く」などをしないと手紙は相手には届かない,つまりサービスは受け付けられなかった,ということになります.こういった通信における約束事をプロトコル(protocol)といいます.ネットワークのいろいろなレベルで,いろいろなプロトコルが使われます.詳しくは概念編を参照して下さい.
● 練習問題
ここで挙げた例以外のサーバ・クライアント方式の例を日常生活で考えてみましょう.
CNS には次のようなサーバ専用ホストがあります.括弧の中がホスト名です.
- ファイルサーバ(fs05, fs06 など): ホームディレクトリ内のファイルを保存しています.ログインすると自動的にファイルサーバと接続し,自分のホームディレクトリ内のファイルが使えるようになります.プロトコルは NFS (Network File System) です.
- メールサーバ(mail): 電子メールの送受信と一時的な保存を行います.他のメールアドレスへの転送や,メーリングリストの設定ができます.プロトコルは送受信が SMTP (Simple Mail Transfer Protocol) ,受信して貯えられているメールを取り出すのが POP (Post Office Protocol) です.
- ウェブサーバ(www): ウェブによる情報発信を行います.プロトコルは HTTP (HyperText Transfer Protocol) です.
リモートログイン
現在ログインしているホストとは別のホストにログインする方法を紹介します.以下の練習で,
- κの教室の学生はccz00へ
- εの教室の学生はccz01へ
- ιの教室の学生はccz02へ
- οの教室の学生はccz03へ
ログインしてください.
別のホストにログインするためには ssh コマンドを使います.
% ssh 上で指定された ccz0? のどれか The authenticity of host 'ccz00 (133.27.4.210)' can't be established. RSA1 key fingerprint is 14:c2:5e:ec:89:cc:f8:e9:ea:33:d8:4d:b2:22:58:22. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ccz00,133.27.4.210' (RSA1) to the list of known host s. t01000tf's passwd: |
と入力してください.そうするとしばらくしてから上のように何か聞かれますから, yes と答えてください.そうするとパスワードを聞かれますので,自分のパスワードを入力してください.
そうすると,他のホストにログインできます.こういったログインの仕方をリモートログイン(Remote Login)といいます.
● 練習問題
自分のもともとログインしたホストと,違うホストに現在ログインしていることを確認しましょう.どうすれば確認できるでしょうか?
CNSでは,どのホストでも同じホームディレクトリが使えるので,あまり必要はありませんが,次のような場合はリモートログインします.
- ホストによっては使えないアプリケーションがあるが,別のホストのところへ行くのが面倒.
- 直接ログインできないホスト(ccz01など)を使いたい.
- CNS 以外のホスト(研究室所有や自宅のコンピュータ)から CNS のホストを使いたい.
コンピュータを使った後は,必ずログアウトしなければいけないのと同様,リモートログインしているホストでも使い終わった時にはログアウトする必要があります.ログアウトするには,リモートログインをした端末ウィンドウで logout と入力します.
% logout Connection to ccz00 closed. |
そうすると上のようにホストへの接続が終了したというメッセージが表示されます.
現在そのホストにログインしているユーザを表示させることもできます.例えば,リモートログインしている最中に, who と入力すると,そのホストにログインしているユーザの一覧が表示されます.
% who s01000hf pts/1 5月 15日 12:48 (zz100) t99000tf pts/2 5月 15日 15:40 133.27.4.232 t00999xx pts/3 5月 14日 00:31 (impc002) |
表示されるのは,ユーザ名,端末名,ログインした時刻,リモートログインの場合は元のホスト(ホスト名ではなくIPアドレスで表示される場合がある)です.
他にもいろいろなサービスがあります.例えば,ファイル転送プロトコル(FTP)というものです.このプロトコルについては,Windows の回で詳しく勉強します.
また,CNSにログインしている他のユーザと会話することもできます.詳しくはCNSガイドを参照してください.
ポート番号
現在の時間を知りたいときには,普通は date コマンドを使うことでしょう. しかし,他にも方法があります.
% telnet localhost 13; date |
% grep daytime /etc/services |
● 練習問題
注意
telnet> と表示されて何をしたらいいか分からない時には, help と入力して調べましょう.