コンピュータネットワーク基礎
2005.06.03

Back to index page

  1. 本日の作業内容



  2. 出席確認

    電子メールで出席確認をします.宛先など以下の情報を用いてメールを作成し, 出席申告してください.なお,キーワードは授業中に紹介します.

    提出形式

    宛先 justice@mag.shimane-u.ac.jp
    件名 AttendA_06-03_net_s0340** Aクラス
    AttendB_06-03_net_s0340** Bクラス
    本文 学生番号
    氏名
    キーワード
     
    (改行)
    (改行)
    キーワードは授業中に紹介
    注意 「件名」の**をそのままにしないで,必ず自分の学生番号 に修正して下さい.また,ABクラス別は指示にしたがって下さい.

  3. 電子メールの基本

    • ヘッダについて

      電子メールの構成は,教科書p.102に示されるようにヘッダ・フィールド群とボ ディと呼ばれる本文からなります. また,書類を添付するときには,p.104の拡張形式を利用して本文がさらにいく つかに分割されます.まず,配送にとって不可欠なヘッダについて紹介します.

      ヘッダ というのは,メールを封書にたとえると封筒に記載されている宛名や差出人,消 印のような情報に相当します.すなわち,誰が誰に宛ててどこから送信し,受信 はどのような経路でなされたかが記述してあります.宛先や差出人は,作成者が 指定しますが,それ以外は配送に関与するサーバが情報を追記していきます.郵 便局が消印を押して,郵便を配達するのと同じような仕事をメールサーバが担当 しています.

      では,実際のヘッダの例を見てみましょう.例にあげるのは,もっとも単純な教 室内だけで配送作業が行われた場合のものです.

      From b0399  Tue Apr 16 10:01:16 2003
      Received: (from b0399@localhost)
              by sv001.ecs-riko.shimane-u.ac.jp (8.9.2+3.1W/3.7W) id KAA07208
              for nawate; Tue, 16 Apr 2003 10:01:16 +0900 (JST)
      Date: Tue, 16 Apr 2002 10:01:16 +0900 (JST)
      From: b0399
      Message-Id: <200204160101.KAA07208@sv003.ecs-riko.shimane-u.ac.jp>
      To: nawate
      Subject: attend
      X-UIDL: 5d8ff71205929df6baaea08e6c052859
      

      最初に差出人と作成日付が表示され,次の行から配送に関する経路が新しい順に 示されています.今の例ではサーバ上で直接配送されたため,一つの履歴しかあ りませんが,実際のメールではたどってきた経路が記録されます. Message-Idは通常はメールサーバが付与するユニークなIDであり,メー ル一つごとに異なるIDがつけられるため,返信や転送の際にその元になるメー ルを特定することができます.

      最後にあるX-UIDLのようにX- で始まるもの (このような行 単位の情報を「フィールド」と言います.) はメールソフト (Mail User Agent MUA) が独自につけることを認められているフィールドであり,ソフトの仕様に よって様々なものがあります.また,「メーリングリスト」という同報メールを 活用した意見交換の手段では,リストサーバが独自にフィールドをつけているこ とがよくあります.

      このように,メールのヘッダには重要な情報が記入されているので,必要に応じ て見てみることは重要ですし,ヘッダというものが存在していてそれを見ること ができることを知っていることも重要です.

      では,自分で実際に試してみましょう.メールをどれでも良いので開いてみて下さい.すると,メールの本文 を表示するウィンドウの最初に,教科書図10.1にあるようなフィールドが見えるはずで す.フィールド名は太字で表記されています.教室で使用するSylpheedは教科書 とは掲載順が異なっていますが,最初の4項目は同じです.教科書では「その他 のオプション行」とされている部分に実際にいくつか表示されるかも知れません. 環境設定で自分の所属する組織を記入した人は例えば,

      Organaization: Shimane University

      のように表示されますし,Sylpheedのデフォルトのままであれば上述のXフィー ルドである

      X-Mailer: Sylpheed version 0.8.5 (GTK+ 1.2.10; i386-vine-linux)

      が入っています.これは差出人が使用しているMUA(メーラー)の種類を表示して います.

      図1に示すようにメニューバーにある「表示」から「全てのヘッダを表示」を選 択すると,上で紹介したような配送経路を含むヘッダ情報が見えるようになりま す.教科書の図10.4にある拡張形式のフィールドも表示されます.

      図1 全てのヘッダを表示するためのメニュー操作

      最後に,教科書のp.102の真中あたりに書いてある「最初の空行がヘッダ・フィー ルド群の終わりを示す」ですが,図10.1にも書かれています.これは,上のよう に全てのヘッダを表示させた状態で確認することも出来ますが,メールそのもの を見てみる方が良いかも知れません.コマンドライン操作で実行してみましょう.

      まず,ターミナルを起動します.パネル(タスクバー)にある画面にGのアイコン をクリックしてGNOME 標準の仮想端末である「Gnomeターミナル」を起動します.画面には,コマンド プロンプト(コマンド入力待ち受け記号)である $ がありますので, そこがコマンド入力位置です.次のようにコマンドを実行してメールの一覧 を見てみます.

      $ ls ~/Mail/inbox

      未整理のまま受信箱にこれまでのメールが残っていればいくつかの数字が表示さ れます.その数字一つ一つがメールの保存されている名前に相当しますので, どれか適当なものを画面に開いてみます.

      $ cat ~/Mail/inbox/適当な数字

      適当な数字の部分は先ほどのコマンドで表示された数字を入力します.すると, メールの中身がずらずらと画面に表示されます.一画面ずつ表示されないで, 最後まで一気に表示されるので上の方の部分は見えません.それを一画面に表 示できる長さごとに区切って表示してくれる「ページャ」を使ってやり直して みましょう.

      $ less ~/Mail/inbox/適当な数字

      コマンドの名前が cat から less に変わりました.このコ マンドは1ページ分表示すると動作が止まります.次を見るには,スペース キーを押します.↑↓キーで1行ずつスクロールできます.終了するときには,Qのキーを押します.QはQuit (終了する)の略として良く使われます.さて,最初の空行が見つかったでしょ うか.

    • 本文

      Slypheedでメールを受信すると,メールに関する情報一覧がサマリウィンドウに 表示され,選択されたメールの本文が,メールウィンドウに表示されます.そこ には,自分で設定した簡単なヘッダも表示されていますが,デフォルトでは配送 経路などは含まれていません.メールを読むときに参考になる差出人やサブジェ クトなどが表示されているはずです.

      本文に関しては,相手に読みやすいようにすることが一番重要です.が,「読み やすい」とはどのようなことを言うのかについては個人差があるので一概には言 えません.もちろん,文体や表現,漢字とひらがなの比率など,文章能力に依存 する部分もありますが,ここでは形式的な点について紹介しておきます.

      • 1行の文字数

        最近のメールソフト Mail User Agent (MUA) はどんどん高機能化され,メール の表現力を向上させてきています.しかし,基本的に,電子メールは文字で情報 を交換する方法であり,端末やOSを選ばないのが特徴です.PDAと呼ばれる電子 手帳や携帯電話でも電子メールは利用できますし,場合によっては,遠方からサー バに接続してメールを読む場合もあります.その際に重要なのは,通常の端末の ウィンドウの横幅に収まる程度に1行の文字数を制限することです.

        具体的には,かつてのUNIX系の仮想端末の1行に表示できる文字数が80文字であっ たことから,半角英数文字で80字以内,日本語では40字以内とすることが推奨さ れています.メールを引用する際には,引用符を使うことも多いので,そのため のスペースも考慮して,76文字以内とすることが伝統的に行われてきています. 皆さんも,だいたい70字程度を目安に自分で改行を行うよう習慣づけましょう. 便利なことに,Sylpheedではメール作成ウィンドウのテキスト入力部分の上部に 目盛がついています.そこに示されている80という目盛が先ほどの半角英数字80 文字に相当しますので,70あたりで改行を入れましょう.

        ただし,携帯電話宛てに送る際には改行をつけない場合の 方が見やすい場合もありますし,PDAであれば20字くらいで改行するべき 時もありますので,受け取る人の環境を気にかけると言うことが重要で す.

      • 引用

        電子メールを返信する際に重要なのは「適切な引用」です.メールで意見交換を するわけですから,相手の文章に対して反論やコメントをつけることが ありますが,その際には,必要な部分だけを残して引用する癖をつけま しょう.先ほどのネットワーク負荷のところと関係しますが,不必要な 文章は削除するのが礼儀です.ただし,必要な部分はしっかり残して引 用しなければなりません.その辺りの状況はなれてくるとわかると思い ます.また,引用は,引用であることを示すために自分が書いた文章と 違うことを明確に見せなければなりません.そのために,引用部分には 行頭に記号がつけられることが一般的です.半角の > が使われること が多いのでそれが基本ですが,自分の好きな記号にしてもかまいません.

        Sylpheed では,「設定」→「全般の設定」とメニューから選択していき,「送 信」タブを選択して表示されるウィンドウに引用符の設定項目があります.皆さ んはデフォルトの > のままでかまわないでしょう.

    • 配送の仕組

      教科書の10.2ではメールの配達の仕組が説明されています.「プロトコル」と呼 ばれる約束事にしたがってコンピュータどうしが通信を行って配送し,最終的に はメールサーバまで届いたメールを自分のパソコンから取り込みに行きます.配 送の部分は先ほどヘッダに記述されているのを見ましたが,メールサーバとのや りとりは別に記録されていますので,そちらを見てみましょう.図2のように, 「ツール」メニューから「ログウィンドウ」を選択します.すると,教科書の図 10.6のようなやりとりが記録されています.エラーが発生したときなどはこのロ グが参考になります.Windowsで良く利用されているMUAではこのような詳細なロ グがとれないものが多くあり,障害発生時に原因特定に苦労することが多くあり ますが,LinuxのようなUNIX系の環境ではユーザが豊富な知識を持っていること を前提としている場合が多く,詳細なログを残すものが多いようです.

      図2 ログウィンドウを表示させるためのメニュー操作

      自分のメールアドレスの shimane-u.ac.jp の部分を設定ウィンドウで わざと間違ったように編集すると送受信がおかしくなりますが,そのような場合 にこのログウィンドウを見るとどのようにサーバからエラーが伝わっているのか がわかります.

  4. 電子メール配送 (SMTPとPOP3)

    電子メールの送受信をRubyスクリプトにより直接コマンド操作で実習します.こ れにより,実際にメールソフトが行っている動作を自分で確認します.

    • OSの機能の利用

      この授業ではメールの送受信にSylpheedを利用していますが,教科書の 10.3(p.108)にあるように,UNIXでは初期にはOSの機能を利用してメールの送受 信を行うことが普通でした.そのため,今でもその環境は残っています.ここで, 試してみましょう.ターミナルで,

      $ mail s0340**@matsu.shimane-u.ac.jp -s "Test mail"

      のようにコマンド入力してみましょう.アドレスは自分宛としてください.メー ル本文記入モードになります.適当な文字を入力して改行します.なお,このモードでは文字の修正などの編集はできません.間違え たら諦めましょう.文章入力が終わったら,最後に半角文字でピリオド だけを入力する行をおきます.

      教科書の図10.6の中の「最後の行」の次の行のピリオドがこれに対応します.

      次にCc:を聞かれますが,ここではそのままEnterキーを押します.これで送信が 完了しますので,Sylpheedで受信をしてみましょう.また,ヘッダの確認も行い ましょう.

    • メールサーバ

      メールサーバがメールの送受信を行う際,やっていること自体は非常に単純なも のです.サーバ宛に送られてきたメールの差出人と宛先を調べ,そのメールを外 部に送り出すのか,自分のサーバ内のユーザに届けるのか,その判断の繰り返し です.しかし,実際に行われている作業はかなり複雑になってきています.それ は,メールの差出人が配達すべき適正なアドレスであるか,とか,宛先に示され ているアドレスへはどう送るのか,その判断が非常にややこしいからです.

      電子メールを利用した広告が近年非常に多くなっています.メールの宛先がたと えば何万人という大規模なものでも,クライアントからサーバに配送を依頼する 段階では単なる一通のメールです.サーバまで届くと,サーバがアドレスを分析 して,指定してあるアドレスに一通ずつ送ります.すなわち,無差別に近い広告 メールや迷惑メールも悪意を持って出す人間にとってはただの一通のメールであ り,サーバがその負担を負うという仕組みになっているため,サーバは配送を認 めるべきアドレスかどうかをきちんと見極める必要があるわけです.商用プロバ イダの多くは,そのために,自分の管理するメールアカウントでも,自分のドメ イン内からしか配送を認めないという設定を多く利用しています.メールサーバ を外部から不正に利用されるのを防ぐ目的です.

      また,配送先を調べるのもそれなりに手順が必要です.この授業の宿題提出用の アドレスである justice@mag.shimane-u.ac.jp ですが, mag.shimane-u.ac.jp というサーバは大学内に存在しません. ネットワークの経路制御 (これを「ルーティング」といいます)は,IPア ドレスという数字記号で判断しますが,サーバの名前とアドレスの対応 を調べてどこに送信するかを判断するのですが,メールのドメインは必 ずしもサーバそのものではありません.次のコマンド nslookup を用いて調べてみましょう.

      
      $ nslookup www.ecs.shimane-u.ac.jp
      Server:  ifse1.riko.shimane-u.ac.jp
      Address:  10.70.240.140
      
      Name:    ecs.riko.shimane-u.ac.jp
      Address:  10.183.50.6
      Aliases:  www.ecs.shimane-u.ac.jp
      
      

      ここでは,このテキストが置いてある www.ecs.shimane-u.ac.jp とい うwebサーバのIPアドレスを調べています.すると, www.ecs.shimane-u.ac.jp というのは ecs.riko.shimane-u.ac.jp というサーバの「エイリアス」であることが報 告されています.このように,ネットワーク上にはサー バの名前そのものではないものが流通しているのです. 先ほどの,mag.shimane-u.ac.jp を同様に 調べると,

      
      Server:  ifse1.riko.shimane-u.ac.jp
      Address:  10.70.240.140
      
      Name:    mag.shimane-u.ac.jp.
      

      となって,サーバのIPアドレスが判明しませんでした.メールサーバのアドレス そのままでは長くて覚えにくかったりするので,このようなアドレスを簡略化す ることが行われています.そのような情報の記録をMXレコードと呼び,これも, ネームサーバが管理するのですが,いずれにしても,アドレスが適正であり送信 先として認められるかどうかをメールサーバはひたすらチェックし続けるのです. 送信先が実在しないものであれば,基本的に,差出人にその旨を告げるメールを 送信します.そのような作業もメールサーバの仕事です.

    • メールの送信方法

      電子メールの送信にはSMTP (Simple Mail Transfer Protocol) が利用されます. このプロトコルはユーザの認証を必要としないため,差出人が適正かどうかを調 べるように通常は設定されています.すなわち,自分の組織内のホストから出さ れた自ドメインのメールならば送信を認める,と言うようになっています.HTTP などと同じように,クライアントから特定のコマンドで要求を行い,サーバが返 答を返す仕組みを使っています.クライアントから要求できるコマンドの一例を 以下に示しておきます.

      HELOドメイン名を通知
      MAIL FROM:差出人を指定
      RCPT TO:宛先の指定
      DATAメール本文の送信
      QUITセッション終了

      また,クライアントからのコマンド要求に対してサーバが返答しますが,それは, 以下のようなコード (レスポンスコード) で行われます.

      220準備完了
      221セッション終了
      250アクション完了
      354メール本文の送信待ち
      400番台システムのエラー
      500番台コマンドのエラー

      実際にはサーバとクライアントの間で対話的に処理が進められるので,教科書の 図10.6のようなやりとりが行われます.

      これらのコマンドはSylpheedでメールを送信した後,「ツール」メニューの「ロ グウィンドウ」を開くと見ることが出来ます.送信がうまく行っていないときに は,この「ログウィンドウ」を開いて,どこに問題があるのかを確認するように してください.以下に示すのは,私の環境からテストメールを送信したときのロ グの例です.

      
      SMTPサーバ: mag2.riko.shimane-u.ac.jp に接続中...
      SMTP< 220 mag2.riko.shimane-u.ac.jp ESMTP Sendmail 8.9.3/3.7W; Mon, 27 May 2002 00:47:14 +0900
      SMTP> HELO plat
      SMTP< 250 mag2.riko.shimane-u.ac.jp Hello susc3012.riko.shimane-u.ac.jp [10.183.50.8], pleased to meet you
      SMTP> MAIL FROM: 
      SMTP< 250 ... Sender ok
      SMTP> RCPT TO: 
      SMTP< 250 ... Recipient ok
      SMTP> DATA
      SMTP< 354 Enter mail, end with "." on a line by itself
      SMTP> . (EOM)
      SMTP< 250 AAA12133 Message accepted for delivery
      SMTP> QUIT
      SMTP< 221 mag2.riko.shimane-u.ac.jp closing connection
      

      上述のコマンドが使用されているのが分かると思います.また,コマンドの一つ 一つについてサーバ側が確認して「OK」を出しているのも分かるでしょう.DATA コマンドで送り始めたメール本文は「.」によりそのファイルが終りであること を示します.最後はQUITで終わります.

    • 手動によるメール送信

      では,今度は実際に教科書の図10.6のやりとりを自分で実行しながら確かめてみ ましょう.ターミナルから作業します.以前に学習した25番ポート(SMTP)を利用 して学生用メールサーバのmatsuにアクセスして作業します.次のようなコマン ドおよびデータの入力を行って下さい.

      $ telnet matsu.ipc.shimane-u.ac.jp 25

      サーバからの応答メッセージは例えば次のようになりますが,これらはピンクの 背景で示すことにします.レスポンスコードを確認しながら作業してください. 例えば,下のコードは220となっていますので,準備完了と言うことです.

      Trying 10.10.10.101...
      Connected to matsu.ipc.shimane-u.ac.jp.
      Escape character is '^]'.
      220-InterScan Version 3.81-Build_1022 $Date: 12/19/2003 17:51:0017$: Ready
      220 matsu.ipc.shimane-u.ac.jp ESMTP Sendmail 8.11.6/3.7W; Thu, 2 Jun 2005 17:10:08 +0900
      

      HELO riko.shimane-u.ac.jp

      250 matsu.ipc.shimane-u.ac.jp Hello localhost.localdomain [127.0.0.1], pleased to meet you
      

      MAIL FROM: s0340**@matsu.shimane-u.ac.jp

      のようにレスポンスコードを確認しながら入力を続けます.入力の間違いは修正 できない場合があるので,修正が必要であればEnterキーを押してエラーを発生 させた後でやり直して下さい.また,時間がたつとサーバ側から接続を解除 されることがありますので,注意して下さい.後は,宛先(自分宛),データと入力を続 けます.

      RCPT TO:s0340**@matsu.shimane-u.ac.jp

      DATA
      Subject: test mail
      test
      .

      QUIT

      で完了です.Sylpheedでメールを受信してみて下さい.

      メール送信プログラム

      Sylpheedを使うとメールの送信など簡単に行えて,自分では何が行われているの か気にすることもなかったのですが,先ほどのように自分で実際にやるとかなり 面倒です.ここでは,今度はRubyのスクリプトを用いてやってみます. サーバとやり取りするプログラムを使ってみましょう.ここにあげてある例は, 原信一郎著,「Rubyプログラミング入門」(オーム社,2000)の p.299に紹介され ているものです.スクリプトは長いので自分で入力するとたぶん間違いが多くな ると思いますので,コピーしてください.

      ダウンロード用ファイルも用意しました.右クリックで保存してください.

      
      #!/usr/bin/ruby
      
      require "socket"
      require "kconv"
      require "timeout"
      
      class Client
        def initialize(host, port)
          @host, @port = host, port
        end
        def open
          timeout(60) do
            @sock = TCPSocket.open(@host, @port)
          end
        end
        def close
          @sock.close
        end
        def puts(x)
          $stdout.puts x if $DEBUG
          @sock.print x, "\r\n"
        end
        def wait(regex, sec = 60)
          timeout(sec) do
            line = @sock.gets
            $stdout.puts line if $DEBUG
            unless regex =~ line
      	raise "Response line not matches #{regex.inspect}"
            end
          end
        end
      end
      
      class SmtpMail < Client
        attr_accessor :domain, :from, :to, :subject, :contents
        def initialize(host, from, to, subject, contents)
          @from, @to, @subject, @contents = from, to, subject, contents
          (myname, @domain), = @from.scan(/(.+)@(.+)/)
          super(host, 25)
        end
        def open
          super
          wait(/^220\s/)
          puts("HELO #@domain"); wait(/^250\s/)
        end
        def send
          puts("MAIL FROM:#@from"); wait(/^250\s/)
          puts("RCPT TO:#@to");     wait(/^250\s/)
          puts("DATA");             wait(/^354\s/)
          puts("Subject: #@subject") if @subject
          puts("")
          @contents.each do |line|
            puts Kconv.tojis(line.sub(/^\./, '..')).sub(/\r?\n?\z/, "")
          end
          puts("."); wait(/^250\s/)
        end
        def quit
          puts("QUIT"); wait(/^221\s/)
        end
      end
      
      host, to, from, subject = ARGV
      unless subject
        puts "Example: mail.rb server her@her.domain me@my.domain SUBJECT < mail.txt"
        exit
      end
      
      contents = $stdin.readlines
      mail = SmtpMail.new(host, to, from, subject, contents)
      mail.open
      mail.send
      mail.quit
      mail.close
      

      スクリプトの途中に先ほどのコマンドが随時登場してくるのが分かるでしょう. 処理としては,メソッドを定義している部分が多くて時系列で並んでいないので 分かりにくいかも知れませんが,HTTPクライアントと同様にソケットを開いてコ マンドを送っているだけです.ただし,サーバから送られてくるレスポンスコー ドを待って処理を進めるために,wait で返答を待ち,それが正規表現 で指定された正しいコードであるかを判断しています.

      このスクリプトの利用は,コマンドライン引数として,サーバ名,差出人,宛先, 件名を取り,リダイレクトとして本文を書いたファイルの名前を使用します.た とえば,以下のようにして,自分もしくは知り合いにメールを送信してください.

      $ ruby mail.rb mag2.riko.shimane-u.ac.jp s0340**@matsu.shimane-u.ac.jp s0340**@matsu.shimane-u.ac.jp Script-test < mail.rb

      このスクリプト自体をメールの本文としていますので,スクリプトのあるディレ クトリでコマンドを実行するか,適切なパスを記述するかしてください.また, 上のコマンドは一行で入力してく ださい.

  5. 拡張形式

    この授業では,テストや宿題の提出に「書類の添付」という形式を利用していま す. これには,ASCII文字しか送受信できない電子メールにバイナリーデータや日本語 文字列を取り込むための拡張形式,MIMEを利用しています.ここでは,バイナリー データのコード化について確認しましょう.

    • いくつかの形式

      利用されているコンピュータの種類によっていくつかの形式が利用されてきました. 代表的なものとして,uuencode,binhex,base64があります.uuencodeとbinhexは,それぞ れUNIX,MacOSで主として利用されるもので今でも使用されていますが,相手の 利用環境が不明な場合などプラットフォームに依存しない形式としては最後の base64が適していると言えます.

    • base64

      この方式は,MIMEに適応するために開発されたものです.もともとのバイナリー データは8ビット符号化が行われていることが普通ですが,文字コードのときに 学習したように電子メールでは7ビット符号化が必要とされています.そこで,次のような方法によって コード化します.

      1. 3バイトずつの読み込み

        バイナリーデータ列の情報を読み込む際に,3バイトずつに区切って取り込みま す.

      2. 6ビットデータへの変換

        3バイトのデータ(24ビット)を6ビットずつ4つのデータに分けます.

      3. 文字変換

        6ビットのデータを変換表に従い,文字に変換します.

        十進
        表記
        変換
        文字
        十進
        表記
        変換
        文字
        十進
        表記
        変換
        文字
        十進
        表記
        変換
        文字
        0 A 16Q 32g 48w
        1 B 17R 33h 49x
        2 C 18S 34i 50y
        3 D 19T 35j 51z
        4 E 20U 36k 520
        5 F 21V 37l 531
        6 G 22W 38m 542
        7 H 23X 39n 553
        8 I 24Y 40o 564
        9 J 25Z 41p 575
        10K 26a 42q 586
        11L 27b 43r 597
        12M 28c 44s 608
        13N 29d 45t 619
        14O 30e 46u 62+
        15P 31f 47v 63/

      上記の作業をくり返して全てのデータをASCIIコードの範囲内の文字に変換しま す.3バイトずつデータを読み込むために,最後に2バイトや1バイトしかデータ が残っていなければ = で代用します.

      実際に試してみましょう.例えば,abc という文字をbase64で変換し ます.それぞれの文字コードは hexdump コマンドで求めることができ るのは,以前に実習したので分かると思いますが,それぞれ16進表記で, 0x61, 0x62, 0x63 です.

      ASCII文字だけであれば,http://www.psl.ne.jp/perl/pdojo00b.htmlのようなサイトが利用できることも以前に示しました.

      これを2進数表記にすると,

      01100001 01100010 01100011

      になります.この3バイトを6ビットずつの4つに区切り直すと,

      011000 010110 001001 100011

      になります.2進表記のままでは分かりにくいので10進表記に直すと,

      24 22 9 35

      ですから,上の変換表に従って文字を割り当てると,結局以下のようになります.

      Y W J j

      原理から分かるように,base64を利用すると変換後のデータは変換前のデータの 4/3倍の容量になってしまいます.

  6. 小テスト

    授業の終了20分前くらいに小テストを実施します.アナウ ンスに注意してください.また,提出は電子メールにより行いますので,メール の送信準備は忘れないでいて下さい.

    Aクラス小テスト
    Bクラス小テスト

  7. 宿題

    授業の終りに宿題の説明をしますので,アナウンスに注意してください.

    Aクラス宿題
    Bクラス宿題


目次ページへ戻る